diff --git a/sa-admin/src/main/java/net/lab1024/sa/admin/extend/fangxinqian/task/FxqTask.java b/sa-admin/src/main/java/net/lab1024/sa/admin/extend/fangxinqian/task/FxqTask.java index fc6625c..95b6be1 100644 --- a/sa-admin/src/main/java/net/lab1024/sa/admin/extend/fangxinqian/task/FxqTask.java +++ b/sa-admin/src/main/java/net/lab1024/sa/admin/extend/fangxinqian/task/FxqTask.java @@ -87,9 +87,9 @@ public class FxqTask extends Base { } /** - * 获取签署链接 + * 签署任务详情查询 */ - public GetTaskLinkResponse getTaskDetail(String taskNo, String unionId){ + public GetTaskDetailResponse getTaskDetail(String taskNo, String unionId){ String url = getClientUrl() + "sign/task/detail"; Map requestData = new HashMap<>(); @@ -100,7 +100,7 @@ public class FxqTask extends Base { log.info("获取app数据参数:{}",jsonBody); String response = postJson(url,jsonBody,null); - GetTaskLinkResponse result = JSONUtil.toBean(response, GetTaskLinkResponse.class); + GetTaskDetailResponse result = JSONUtil.toBean(response, GetTaskDetailResponse.class); if (result.getCode() != 10000){ if (!Objects.equals(result.getMessage(), "")){ throw new BusinessException(result.getMessage()); 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 1fdb30e..eb4e6ba 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,6 +12,7 @@ import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; 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.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; @@ -31,6 +32,7 @@ import net.lab1024.sa.admin.module.system.login.service.LoginService; import net.lab1024.sa.common.common.annoation.NoNeedLogin; import net.lab1024.sa.common.common.constant.RequestHeaderConst; import net.lab1024.sa.common.common.domain.ResponseDTO; +import net.lab1024.sa.common.common.exception.BusinessException; import net.lab1024.sa.common.common.util.Sha256Util; import net.lab1024.sa.common.common.util.SmartBeanUtil; import net.lab1024.sa.common.common.util.SmartRequestUtil; @@ -73,6 +75,9 @@ public class ExpertFxqController { @Resource private FxqUserDao fxqUserDao; + @Resource + private FxqTemplateDao fxqTemplateDao; + /** * 获取专家协议签署详情 */ @@ -85,24 +90,15 @@ public class ExpertFxqController { } GetExpertSignVo g = new GetExpertSignVo(); - g.setTaskStatus(2); - // 获取签署任务数据 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId); - FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper); - if (fxqExpertTask == null) { - return ResponseDTO.app_ok(g); - } - - if (fxqExpertTask.getTaskStatus() == 20){ + // 获取专家协议签署状态 + boolean res = expertFxqService.getExpertSign(expertId); + if (!res){ + g.setTaskStatus(2); + }else { g.setTaskStatus(1); - g.setTaskFileUrl(fxqExpertTask.getTaskLink()); } - // 获取协议签署情况 - - return ResponseDTO.app_ok(g); } 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 a77fd6a..69f1d8d 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 @@ -12,6 +12,7 @@ import net.lab1024.sa.admin.module.app.expert.admin.ExpertEntity; 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.common.common.domain.ResponseDTO; import net.lab1024.sa.common.common.exception.BusinessException; import org.springframework.stereotype.Service; @@ -131,7 +132,7 @@ public class ExpertFxqService { throw new BusinessException("操作失败"); } - // 获取企业实名认证数据-个人 + // 获取个人实名认证数据 LambdaQueryWrapper personalQueryWrapper = new LambdaQueryWrapper<>(); personalQueryWrapper.eq(FxqUserEntity::getExpertId, expertId); FxqUserEntity fxqUser = fxqUserDao.selectOne(personalQueryWrapper); @@ -210,7 +211,6 @@ public class ExpertFxqService { // 获取数据库模版数据 LambdaQueryWrapper templateQueryWrapper = new LambdaQueryWrapper<>(); templateQueryWrapper.eq(FxqTemplateEntity::getCompanyId, companyId); - templateQueryWrapper.eq(FxqTemplateEntity::getId, 1); FxqTemplateEntity fxqTemplate = fxqTemplateDao.selectOne(templateQueryWrapper); if (fxqTemplate == null) { // 获取企业模版数据 @@ -306,63 +306,65 @@ public class ExpertFxqService { return g; } + // 10待签署 0发起签署 if (fxqExpertTask.getTaskStatus() == 10 || fxqExpertTask.getTaskStatus() == 0){ - taskNo = fxqExpertTask.getTaskNo(); + g.setTaskStatus(2); + g.setLinkUrl(fxqExpertTask.getTaskLink()); + return g; } } - if (Objects.equals(taskNo, "")){ - AddTemplateTaskRequest r = new AddTemplateTaskRequest(); - r.setUnionId(company.getUnionId()); - r.setTemplateNo(fxqTemplate.getTemplateNo()); + // 需创建模版任务 + AddTemplateTaskRequest r = new AddTemplateTaskRequest(); + r.setUnionId(company.getUnionId()); + r.setTemplateNo(fxqTemplate.getTemplateNo()); - // 初始化 signers 列表 - List signersList = new ArrayList<>(); + // 初始化 signers 列表 + List signersList = new ArrayList<>(); - AddTemplateTaskRequest.signersData signer = new AddTemplateTaskRequest.signersData(); - signer.setSignerNo(fxqTemplate.getCompanySignerNo()); - signer.setSignerUnionId(company.getUnionId()); - signersList.add(signer); + AddTemplateTaskRequest.signersData signer = new AddTemplateTaskRequest.signersData(); + signer.setSignerNo(fxqTemplate.getCompanySignerNo()); + signer.setSignerUnionId(company.getUnionId()); + signersList.add(signer); - signer = new AddTemplateTaskRequest.signersData(); - signer.setSignerNo(fxqTemplate.getPersonalSignerNo()); - signer.setSignerUnionId(fxqUser.getUnionId()); - signersList.add(signer); + signer = new AddTemplateTaskRequest.signersData(); + signer.setSignerNo(fxqTemplate.getPersonalSignerNo()); + signer.setSignerUnionId(fxqUser.getUnionId()); + signersList.add(signer); - r.setSigners(signersList); + r.setSigners(signersList); - // 初始化 components 列表 - List componentsList = new ArrayList<>(); - AddTemplateTaskRequest.componentsData components = new AddTemplateTaskRequest.componentsData(); - components.setFileKey("doctorName"); - components.setFileValue(fxqUser.getName()); - componentsList.add(components); - r.setComponents(componentsList); + // 初始化 components 列表 + List componentsList = new ArrayList<>(); + AddTemplateTaskRequest.componentsData components = new AddTemplateTaskRequest.componentsData(); + components.setFileKey("doctorName"); + components.setFileValue(fxqUser.getName()); + componentsList.add(components); + r.setComponents(componentsList); - AddTemplateTaskResponse templateTask = fxqTask.addTemplateTask(r); - if (templateTask.getData() == null) { - throw new BusinessException("操作失败"); - } - - if (templateTask.getData().getTaskNo() == null || templateTask.getData().getTaskNo().isEmpty()) { - throw new BusinessException("操作失败"); - } - - // 添加数据库 - FxqExpertTaskEntity fxqExpertTaskData = new FxqExpertTaskEntity(); - fxqExpertTaskData.setExpertId(fxqUser.getExpertId()); - fxqExpertTaskData.setTaskNo(templateTask.getData().getTaskNo()); - fxqExpertTaskData.setTemplateId(fxqTemplate.getId()); - fxqExpertTaskData.setTaskStatus(0); - fxqExpertTaskData.setCreateTime(LocalDateTime.now()); - int res = fxqExpertTaskDao.insert(fxqExpertTaskData); - if (res <= 0){ - throw new BusinessException("操作失败"); - } - - taskNo = templateTask.getData().getTaskNo(); + AddTemplateTaskResponse templateTask = fxqTask.addTemplateTask(r); + if (templateTask.getData() == null) { + throw new BusinessException("操作失败"); } + if (templateTask.getData().getTaskNo() == null || templateTask.getData().getTaskNo().isEmpty()) { + throw new BusinessException("操作失败"); + } + + // 添加数据库 + FxqExpertTaskEntity fxqExpertTaskData = new FxqExpertTaskEntity(); + fxqExpertTaskData.setExpertId(fxqUser.getExpertId()); + fxqExpertTaskData.setTaskNo(templateTask.getData().getTaskNo()); + fxqExpertTaskData.setTemplateId(fxqTemplate.getId()); + fxqExpertTaskData.setTaskStatus(10); + fxqExpertTaskData.setCreateTime(LocalDateTime.now()); + int res = fxqExpertTaskDao.insert(fxqExpertTaskData); + if (res <= 0){ + throw new BusinessException("操作失败"); + } + + taskNo = templateTask.getData().getTaskNo(); + if (Objects.equals(taskNo, "")){ throw new BusinessException("操作失败"); } @@ -389,4 +391,77 @@ public class ExpertFxqService { throw new BusinessException(e.getMessage()); } } + + /** + * 签署任务详情查询 + */ + public FxqExpertTaskEntity getTaskDetail(String taskNo, String unionId,FxqExpertTaskEntity fxqExpertTask){ + GetTaskDetailResponse taskLink = fxqTask.getTaskDetail(taskNo,unionId); + if (taskLink.getData() == null) { + throw new BusinessException("操作失败"); + } + + // 修改签署状态 + if (taskLink.getData().getTaskNo() == null || taskLink.getData().getTaskNo().isEmpty()) { + throw new BusinessException("操作失败"); + } + + if (!taskLink.getData().getTaskNo().equals(fxqExpertTask.getTaskNo())){ + throw new BusinessException("操作失败"); + } + + // 修改状态 + fxqExpertTask.setTaskStatus(taskLink.getData().getTaskStatus()); + 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 (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()); + } + } }