From d57329cf1c082cef5362f9872e23ba03a7f9e590 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Wed, 2 Jul 2025 13:21:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E6=94=BE=E5=BF=83?= =?UTF-8?q?=E7=AD=BE=E7=9A=84=E9=AA=8C=E8=AF=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ExpertFxqController.java | 67 +++++++----- .../module/app/expert/dao/FxqSignDao.java | 9 +- .../expert/domain/entity/FxqSignEntity.java | 6 ++ .../app/expert/service/ExpertFxqService.java | 102 ++++++------------ .../service/MedicalRecordService.java | 29 ++++- .../domain/vo/CaseplatformCaseVO.java | 11 ++ 6 files changed, 124 insertions(+), 100 deletions(-) diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/controller/ExpertFxqController.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/controller/ExpertFxqController.java index f597563..ff087bb 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/controller/ExpertFxqController.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/controller/ExpertFxqController.java @@ -12,14 +12,8 @@ import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; import net.lab1024.sa.admin.extend.fangxinqian.auth.GetAuthorizeResponse; import net.lab1024.sa.admin.extend.fangxinqian.task.GetTaskLinkResponse; import net.lab1024.sa.admin.module.app.expert.admin.*; -import net.lab1024.sa.admin.module.app.expert.dao.ExpertDao; -import net.lab1024.sa.admin.module.app.expert.dao.FxqExpertTaskDao; -import net.lab1024.sa.admin.module.app.expert.dao.FxqTemplateDao; -import net.lab1024.sa.admin.module.app.expert.dao.FxqUserDao; -import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqCompanyEntity; -import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqExpertTaskEntity; -import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqTemplateEntity; -import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqUserEntity; +import net.lab1024.sa.admin.module.app.expert.dao.*; +import net.lab1024.sa.admin.module.app.expert.domain.entity.*; import net.lab1024.sa.admin.module.app.expert.domain.vo.AddFxqVo; import net.lab1024.sa.admin.module.app.expert.domain.vo.GetExpertSignVo; import net.lab1024.sa.admin.module.app.expert.service.ExpertFxqService; @@ -83,6 +77,8 @@ public class ExpertFxqController { @Resource private ExpertDao expertDao; + @Resource + private FxqSignDao fxqSignDao; /** * 获取专家协议签署详情 @@ -96,17 +92,33 @@ public class ExpertFxqController { } GetExpertSignVo g = new GetExpertSignVo(); - g.setTaskStatus(1); + g.setTaskStatus(2); - // 签署任务详情查询 - FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId); - if (fxqExpertTask == null) { - g.setTaskStatus(2); - return ResponseDTO.app_ok(g); + // 获取专家协议签署详情 + LambdaQueryWrapper signQueryWrapper = new LambdaQueryWrapper<>(); + signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId); + FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper); + if (fxqSign == null) { + return ResponseDTO.app_ok(g); } - if (!Objects.equals(fxqExpertTask.getTaskStatus(), "20")) { - g.setTaskStatus(2); + // 已签署 + if (fxqSign.getSignStatus() == 1) { + g.setTaskStatus(1); + g.setTaskFileUrl(fxqSign.getSignLink()); + return ResponseDTO.app_ok(g); + } + + // 签署任务详情查询 + FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(fxqSign.getTaskId()); + if (fxqExpertTask == null) { + return ResponseDTO.app_ok(g); + } + + // 已签署 + if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) { + g.setTaskStatus(1); + g.setTaskFileUrl(fxqExpertTask.getTaskLink()); return ResponseDTO.app_ok(g); } @@ -130,6 +142,14 @@ public class ExpertFxqController { return ResponseDTO.userErrorParam("操作失败"); } + // 获取企业实名认证数据-个人 + LambdaQueryWrapper signQueryWrapper = new LambdaQueryWrapper<>(); + signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId); + FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper); + if (fxqSign != null && fxqSign.getSignStatus() == 1) { + return ResponseDTO.userErrorParam("您已签订协议,无需再次签订"); + } + // 获取企业放心签实名认证数据 FxqCompanyEntity company = expertFxqService.getCompany(); @@ -138,18 +158,9 @@ public class ExpertFxqController { // 签署任务详情查询 FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId); - if (fxqExpertTask != null) { - // 已创建了签署任务 - if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) { - return ResponseDTO.userErrorParam("您已签订协议,无需再次签订"); - } - - if (Objects.equals(fxqExpertTask.getTaskStatus(), "0") || Objects.equals(fxqExpertTask.getTaskStatus(), "10")) { - AddFxqVo g = new AddFxqVo(); - g.setTaskStatus(2); - g.setLinkUrl(fxqExpertTask.getTaskLink()); - return ResponseDTO.app_ok(g); - } + if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) { + // 已签署 + return ResponseDTO.userErrorParam("您已签订协议,无需再次签订"); } // 获取签署的模版数据 diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/FxqSignDao.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/FxqSignDao.java index 4b6840d..39d1552 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/FxqSignDao.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/dao/FxqSignDao.java @@ -4,10 +4,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqCompanyEntity; import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqSignEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import org.springframework.stereotype.Component; @Mapper @Component public interface FxqSignDao extends BaseMapper { - + @Update("UPDATE t_caseplatform_fxq_sign " + + "SET sign_status = #{signStatus}, update_time = NOW() " + + "WHERE expert_id = #{expertId} AND task_id = #{taskId}") + int updateSignStatus(@Param("expertId") Long expertId, + @Param("taskId") Long taskId, + @Param("signStatus") Integer signStatus); } diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/domain/entity/FxqSignEntity.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/domain/entity/FxqSignEntity.java index 076b59b..1fa02df 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/domain/entity/FxqSignEntity.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/domain/entity/FxqSignEntity.java @@ -38,6 +38,12 @@ public class FxqSignEntity { @TableField("sign_status") private Integer signStatus; + /** + * 协议地址 + */ + @TableField("sign_link") + private String signLink; + /** * 创建时间 */ diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/service/ExpertFxqService.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/service/ExpertFxqService.java index b0074c2..544b501 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/service/ExpertFxqService.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/expert/service/ExpertFxqService.java @@ -385,6 +385,17 @@ public class ExpertFxqService { throw new BusinessException("操作失败"); } + // 添加数据库-签署 + FxqSignEntity fxqSignData = new FxqSignEntity(); + fxqSignData.setExpertId(fxqUser.getExpertId()); + fxqSignData.setTaskId(fxqExpertTaskData.getId()); + fxqSignData.setSignStatus(2); + fxqSignData.setCreateTime(LocalDateTime.now()); + res = fxqSignDao.insert(fxqSignData); + if (res <= 0){ + throw new BusinessException("操作失败"); + } + if (Objects.equals(templateTask.getData().getTaskNo(), "")){ throw new BusinessException("操作失败"); } @@ -401,7 +412,22 @@ public class ExpertFxqService { /** * 签署任务详情查询 */ - public FxqExpertTaskEntity getTaskDetail(Long expertId){ + public FxqExpertTaskEntity getTaskDetail(Long taskId){ + // 获取签署任务 +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId); +// queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20"); + FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectById(taskId); + if (fxqExpertTask == null){ + // 未签署 + return null; + } + + // 已完成 + if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) { + return fxqExpertTask; + } + // 获取企业实名认证数据-公司 LambdaQueryWrapper companyQueryWrapper = new LambdaQueryWrapper<>(); companyQueryWrapper.eq(FxqCompanyEntity::getUid, "bjyykxjsfzxh"); @@ -410,21 +436,6 @@ public class ExpertFxqService { throw new BusinessException("操作失败"); } - // 获取签署任务 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId); - queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20"); - FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper); - if (fxqExpertTask != null) { - // 已完成 - if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) { - return fxqExpertTask; - } - }else{ - // 未签署 - return null; - } - GetTaskDetailResponse taskLink = fxqTask.getTaskDetail(fxqExpertTask.getTaskNo(),companyFxqCompany.getUnionId()); if (taskLink.getData() == null) { throw new BusinessException("操作失败"); @@ -441,61 +452,17 @@ public class ExpertFxqService { // 修改状态-签署任务 fxqExpertTask.setTaskStatus(String.valueOf(taskLink.getData().getTaskStatus())); - if (taskLink.getData().getTaskStatus() == 20){ - fxqExpertTask.setSignStatus(1); - } - fxqExpertTaskDao.updateById(fxqExpertTask); - return fxqExpertTask; - } - - /** - * 获取专家协议签署详情 - */ - @Transactional - public boolean getExpertSign(Long expertId){ - try { - // 获取签署任务数据 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId); - queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20"); - FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper); - if (fxqExpertTask == null) { - return false; + // 修改专家签署任务表 + if (taskLink.getData().getTaskStatus() == 20){ + int rows = fxqSignDao.updateSignStatus(fxqExpertTask.getExpertId(), taskId,2); + if (rows == 0) { + throw new BusinessException("更新失败,未找到符合条件的记录"); } - - if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")){ - return true; - } - - // 获取个人实名认证数据 - LambdaQueryWrapper personalQueryWrapper = new LambdaQueryWrapper<>(); - personalQueryWrapper.eq(FxqUserEntity::getExpertId, expertId); - FxqUserEntity fxqUser = fxqUserDao.selectOne(personalQueryWrapper); - if (fxqUser == null) { - return false; - } - - // 获取签署链接 - GetTaskLinkResponse.taskDetailsData fxqLink = getTaskLink(fxqExpertTask.getTaskNo(),fxqUser.getUnionId()); - if (fxqLink == null) { - throw new BusinessException("操作失败"); - } - - // 已签署 - if (Objects.equals(fxqLink.getSignStatus(), "2")){ - // 修改签署任务 - fxqExpertTask.setTaskStatus("20"); - fxqExpertTaskDao.updateById(fxqExpertTask); - - return true; - } - - return false; - } catch (Exception e) { - throw new BusinessException(e.getMessage()); } + + return fxqExpertTask; } /** @@ -513,5 +480,4 @@ public class ExpertFxqService { return result.getData(); } - } diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java index 4f0ba16..d3642e2 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/app/medicalrecord/service/MedicalRecordService.java @@ -6,6 +6,8 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import net.lab1024.sa.admin.module.app.expert.admin.ExpertSignVO; +import net.lab1024.sa.admin.module.app.expert.dao.FxqSignDao; +import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqSignEntity; import net.lab1024.sa.admin.module.app.expert.service.ExpertFxqService; import net.lab1024.sa.admin.module.app.expert.service.ExpertSignService; import net.lab1024.sa.admin.module.app.medicalrecord.dao.*; @@ -66,6 +68,9 @@ public class MedicalRecordService { @Autowired private ExpertSignService expertSignService; + @Resource + private FxqSignDao fxqSignDao; + public PageResult getList(MedicalRecordQueryForm queryForm){ Page page = SmartPageUtil.convert2PageQuery(queryForm); Long expertId = SmartRequestUtil.getRequestUserId(); @@ -95,9 +100,15 @@ public class MedicalRecordService { Long expertId = SmartRequestUtil.getRequestUserId(); - // 验证签名状态 - boolean isSign = expertFxqService.getExpertSign(expertId); - if (!isSign){ + // 获取专家协议签署详情 + LambdaQueryWrapper signQueryWrapper = new LambdaQueryWrapper<>(); + signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId); + FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper); + if (fxqSign == null) { + return ResponseDTO.userErrorParam("请先签署项目协议!"); + } + + if (fxqSign.getSignStatus() == 2) { return ResponseDTO.userErrorParam("请先签署项目协议!"); } @@ -254,6 +265,18 @@ public class MedicalRecordService { return ResponseDTO.error(NO_PERMISSION_EDIT); } + // 获取专家协议签署详情 + LambdaQueryWrapper signQueryWrapper = new LambdaQueryWrapper<>(); + signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId); + FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper); + if (fxqSign == null) { + return ResponseDTO.userErrorParam("请先签署项目协议!"); + } + + if (fxqSign.getSignStatus() == 2) { + return ResponseDTO.userErrorParam("请先签署项目协议!"); + } + /*************************前置 检查*****************************/ ResponseDTO check = check(updateForm, expertId); diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/CaseplatformCaseVO.java b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/CaseplatformCaseVO.java index 15a62e8..335d257 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/CaseplatformCaseVO.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/caseplatformcase/domain/vo/CaseplatformCaseVO.java @@ -50,6 +50,9 @@ public class CaseplatformCaseVO { @ApiModelPropertyEnum(value = CaseStatusEnum.class, desc = "0待审核 1审核通过 2审核不通过") private Integer status; + @ApiModelProperty(value = "审核通过时间") + private LocalDateTime examineTime; + @ApiModelProperty(value = "专家所在城市医院") private String expertHospitalName; @@ -65,4 +68,12 @@ public class CaseplatformCaseVO { @ApiModelProperty(value = "修改时间") private LocalDateTime updateTime; + @ApiModelProperty(value = "签署状态(1:已签署 2:未签署)") + private String signStatus; + + @ApiModelProperty(value = "协议地址") + private String taskLink; + + @ApiModelProperty(value = "签署完成时间") + private LocalDateTime signTime; } \ No newline at end of file