|
|
|
|
@ -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("流程发起异常");
|
|
|
|
|
|