diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java index d28a71b..d7f2b4d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsSignSealController.java @@ -1,8 +1,10 @@ package com.ruoyi.web.controller.wisdomarbitrate.mscase; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.exception.EsignDemoException; +import com.ruoyi.wisdomarbitrate.domain.dto.mscase.MsSignSealDTO; import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO; import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService; import org.springframework.beans.factory.annotation.Autowired; @@ -28,6 +30,18 @@ public class MsSignSealController extends BaseController { return msSignSealService.sureMediationSeal(caseApplication); } + /** + * 用印申请 + */ + @PostMapping("/sealApply") + public AjaxResult sealApply(@RequestBody MsSignSealDTO dto ) { + if ((dto.getCaseId() == null && StrUtil.isEmpty(dto.getBatchNumber())) + || dto.getCaseFlowId() == null) { + return error("参数校验失败"); + } + return msSignSealService.sealApply(dto); + } + diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java new file mode 100644 index 0000000..2ab8457 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/dto/mscase/MsSignSealDTO.java @@ -0,0 +1,23 @@ +package com.ruoyi.wisdomarbitrate.domain.dto.mscase; + +import lombok.Data; + +@Data +public class MsSignSealDTO { + + /** + * 案件id + */ + private Long caseId; + /** + * 批次号 + */ + private String batchNumber; + /** + * 流程节点id + */ + private Integer caseFlowId; + + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java index 1cf6e9d..9ac04a5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsSignSealService.java @@ -2,6 +2,7 @@ package com.ruoyi.wisdomarbitrate.service.mscase; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.exception.EsignDemoException; +import com.ruoyi.wisdomarbitrate.domain.dto.mscase.MsSignSealDTO; import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO; public interface MsSignSealService { @@ -9,4 +10,5 @@ public interface MsSignSealService { AjaxResult sureMediationSeal(MsCaseApplicationVO caseApplication) throws EsignDemoException, InterruptedException; + AjaxResult sealApply(MsSignSealDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java index 579ff23..e87d2f6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.wisdomarbitrate.service.mscase.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; @@ -8,12 +10,16 @@ import com.google.gson.JsonObject; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.EsignHttpResponse; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.enums.YesOrNoEnum; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SmsUtils; import com.ruoyi.common.utils.file.SaaSAPIFileUtils; +import com.ruoyi.system.domain.entity.flow.MsCaseFlow; +import com.ruoyi.system.mapper.flow.MsCaseFlowMapper; import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify; import com.ruoyi.wisdomarbitrate.domain.dto.dept.SealManage; +import com.ruoyi.wisdomarbitrate.domain.dto.mscase.MsSignSealDTO; import com.ruoyi.wisdomarbitrate.domain.dto.mscase.SealSignRecord; import com.ruoyi.wisdomarbitrate.domain.entity.dept.MsSealSignRecord; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAffiliate; @@ -26,12 +32,15 @@ import com.ruoyi.wisdomarbitrate.mapper.dept.SealManageMapper; import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAffiliateMapper; import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseApplicationMapper; import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAttachMapper; +import com.ruoyi.wisdomarbitrate.service.mscase.MsCaseApplicationService; import com.ruoyi.wisdomarbitrate.service.mscase.MsSignSealService; +import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils; import com.ruoyi.wisdomarbitrate.utils.SignAward; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -48,10 +57,17 @@ public class MsSignSealServiceImpl implements MsSignSealService { private DeptIdentifyMapper deptIdentifyMapper; @Autowired private SealManageMapper sealManageMapper; + @Autowired + MsCaseFlowMapper caseFlowMapper; @Autowired private MsSealSignRecordMapper sealSignRecordMapper; + @Resource + private MsCaseApplicationService applicationService; + @Autowired + private MsCaseApplicationMapper caseApplicationMapper; + @Override @Transactional @@ -287,7 +303,41 @@ public class MsSignSealServiceImpl implements MsSignSealService { return AjaxResult.success(); } + @Override + @Transactional + public AjaxResult sealApply(MsSignSealDTO dto) { + // 根据流程id查找下一个流程节点 + MsCaseFlow nextFlow = caseFlowMapper.nextFlow(dto.getCaseFlowId()); + if (nextFlow == null) { + return AjaxResult.error("未找到下一个流程节点"); + } + if (StrUtil.isNotEmpty(dto.getBatchNumber())) { + // 批量操作 + // 查询该批号下该流程的案件 + List applicationList = applicationService.listByBatchNumber(dto.getBatchNumber(), dto.getCaseFlowId()); + if (CollectionUtil.isEmpty(applicationList)) { + return AjaxResult.error("该批号下未找到案件"); + } + for (MsCaseApplication application : applicationList) { + application.setCaseFlowId(nextFlow.getId()); + application.setCaseStatusName(nextFlow.getCaseStatusName()); + caseApplicationMapper.updateByPrimaryKeySelective(application); + CaseLogUtils.insertCaseLog(application.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(),"用印申请"); + } + } else { + // 单独 + MsCaseApplication application = new MsCaseApplication(); + application.setId(dto.getCaseId()); + application.setLockStatus(YesOrNoEnum.YES.getCode()); + application.setCaseFlowId(nextFlow.getId()); + application.setCaseStatusName(nextFlow.getCaseStatusName()); + caseApplicationMapper.updateByPrimaryKeySelective(application); + CaseLogUtils.insertCaseLog(application.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(),"用印申请"); + } + return AjaxResult.success("用印申请成功"); + + } }