diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java index 51a809ff..e22c0e44 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java @@ -11,12 +11,15 @@ import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.oa.erp.domain.ErpContractInfo; import org.dromara.oa.erp.domain.ErpProjectInfo; import org.dromara.oa.erp.domain.ErpProjectPlan; import org.dromara.oa.erp.domain.ErpProjectPlanStage; import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo; import org.dromara.oa.erp.domain.bo.ErpProjectPlanStageBo; +import org.dromara.oa.erp.domain.vo.ErpContractInfoVo; import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo; +import org.dromara.oa.erp.mapper.ErpContractInfoMapper; import org.dromara.oa.erp.mapper.ErpProjectInfoMapper; import org.dromara.oa.erp.mapper.ErpProjectPlanMapper; import org.dromara.oa.erp.mapper.ErpProjectPlanStageMapper; @@ -50,8 +53,10 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService { private final ErpProjectInfoMapper projectInfoMapper; private final ErpProjectPlanMapper projectPlanMapper; private final ErpProjectPlanStageMapper planStageMapper; + private final ErpContractInfoMapper contractInfoMapper; - @DubboReference(timeout = 30000) + + @DubboReference(timeout = 300000) private RemoteWorkflowService remoteWorkflowService; @DubboReference(timeout = 30000) @@ -84,9 +89,20 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService { // 保存项目信息 ErpProjectInfo projectInfo = MapstructUtils.convert(bo, ErpProjectInfo.class); validEntityBeforeSave(projectInfo); - + + if (StringUtils.isNotNull(bo.getOssId()) && StringUtils.isNotNull(bo.getContractId())) { + ErpContractInfoVo contractInfoVo = contractInfoMapper.selectVoById(bo.getContractId()); + ErpContractInfo contractInfo = new ErpContractInfo(); + contractInfo.setContractId(contractInfoVo.getContractId()); + contractInfo.setSignatureAppendix(Long.valueOf(bo.getOssId())); + contractInfoMapper.updateById(contractInfo); + } + if (StringUtils.isNull(bo.getProjectId())) { // 新增 + String code = remoteCodeRuleService.selectCodeRuleCode("1018"); + assert projectInfo != null; + projectInfo.setProjectCode(code); projectInfoMapper.insert(projectInfo); bo.setProjectId(projectInfo.getProjectId()); } else { @@ -124,10 +140,6 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService { // 先保存项目信息和项目阶段计划 ErpProjectInfoVo vo = saveContractOrder(bo); - if (1==1) { - return vo; - } - // 后端发起需要忽略权限 bo.getVariables().put("ignore", true); RemoteStartProcess startProcess = new RemoteStartProcess(); @@ -136,6 +148,7 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService { startProcess.setVariables(bo.getVariables()); startProcess.setBizExt(bo.getBizExt()); bo.getBizExt().setBusinessId(startProcess.getBusinessId()); + bo.getBizExt().setBusinessCode(bo.getProjectCode()); boolean flagOne = remoteWorkflowService.startCompleteTask(startProcess); if (!flagOne) { throw new ServiceException("流程发起异常");