|
@@ -64,6 +64,12 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
|
|
@Resource
|
|
@Resource
|
|
TBSopInfoService tbSopInfoService;
|
|
TBSopInfoService tbSopInfoService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ TFCustomFlowEntityService tfCustomFlowEntityService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ TFFlowApproveService tfFlowApproveService;
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
ActivitiService activitiService;
|
|
ActivitiService activitiService;
|
|
|
|
|
|
@@ -209,7 +215,26 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
|
|
} else {
|
|
} else {
|
|
TBCrmDetail tbCrmDetailDb = tbCrmDetailService.getById(tbCrmDetail.getId());
|
|
TBCrmDetail tbCrmDetailDb = tbCrmDetailService.getById(tbCrmDetail.getId());
|
|
Objects.requireNonNull(tbCrmDetailDb, "未找到派单sop信息");
|
|
Objects.requireNonNull(tbCrmDetailDb, "未找到派单sop信息");
|
|
- //todo 补上流程信息
|
|
|
|
|
|
+
|
|
|
|
+ if (tbCrmDetailDb.getStatus() == CrmStatusEnum.PUBLISH) {
|
|
|
|
+ TFCustomFlowEntity tfCustomFlowEntity = tfCustomFlowEntityService.getOne(
|
|
|
|
+ new QueryWrapper<TFCustomFlowEntity>().lambda()
|
|
|
|
+ .eq(TFCustomFlowEntity::getCode, tbCrmDetailDb.getSopNo()));
|
|
|
|
+ Optional.ofNullable(tfCustomFlowEntity)
|
|
|
|
+ .orElseThrow(() -> ExceptionResultEnum.FLOW_ENTITY_NO_DATA.exception());
|
|
|
|
+
|
|
|
|
+ TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(new QueryWrapper<TFFlowApprove>().lambda()
|
|
|
|
+ .eq(TFFlowApprove::getFlowId, tfCustomFlowEntity.getFlowId()));
|
|
|
|
+ Optional.ofNullable(tfFlowApprove)
|
|
|
|
+ .orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
|
|
|
|
+
|
|
|
|
+ if (tfFlowApprove.getStatus() == FlowStatusEnum.FINISH
|
|
|
|
+ || tfFlowApprove.getStatus() == FlowStatusEnum.END) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("流程已结束,无法编辑");
|
|
|
|
+ } else if (tfFlowApprove.getStatus() != FlowStatusEnum.DRAFT) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("在途流程不支持编辑");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
tbCrmDetail.updateInfo(sysUser.getId());
|
|
tbCrmDetail.updateInfo(sysUser.getId());
|
|
}
|
|
}
|
|
return tbCrmDetailService.saveOrUpdate(tbCrmDetail);
|
|
return tbCrmDetailService.saveOrUpdate(tbCrmDetail);
|
|
@@ -274,6 +299,9 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
|
|
TBCrm tbCrm = tbCrmService.findByCrmNo(tbCrmDetail.getCrmNo());
|
|
TBCrm tbCrm = tbCrmService.findByCrmNo(tbCrmDetail.getCrmNo());
|
|
//发布流程
|
|
//发布流程
|
|
TFCustomFlow tfCustomFlow = tbCrmDetailService.queryCustomFlow(tbCrmDetail.getCrmNo());
|
|
TFCustomFlow tfCustomFlow = tbCrmDetailService.queryCustomFlow(tbCrmDetail.getCrmNo());
|
|
|
|
+ if (tfCustomFlow.getType() == TFCustomTypeEnum.CLOUD_MARK_SOP_FLOW) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("研究生SOP暂不支持发布");
|
|
|
|
+ }
|
|
Map<String, Object> var = new HashMap<>();
|
|
Map<String, Object> var = new HashMap<>();
|
|
var.put(SystemConstant.CRM_DETAIL, tbCrmDetail);
|
|
var.put(SystemConstant.CRM_DETAIL, tbCrmDetail);
|
|
var.put(SystemConstant.PROCESS_VAR, tbCrm.getProcessVar());
|
|
var.put(SystemConstant.PROCESS_VAR, tbCrm.getProcessVar());
|
|
@@ -297,8 +325,34 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
|
|
TBCrmDetail tbCrmDetail = tbCrmDetailService.getById(id);
|
|
TBCrmDetail tbCrmDetail = tbCrmDetailService.getById(id);
|
|
Objects.requireNonNull(tbCrmDetail, "未找到派单sop信息");
|
|
Objects.requireNonNull(tbCrmDetail, "未找到派单sop信息");
|
|
|
|
|
|
- //todo 补上流程信息
|
|
|
|
- return tbCrmDetailService.removeById(tbCrmDetail.getId());
|
|
|
|
|
|
+ boolean result = false;
|
|
|
|
+ if (tbCrmDetail.getStatus() == CrmStatusEnum.PUBLISH) {
|
|
|
|
+ TFCustomFlowEntity tfCustomFlowEntity = tfCustomFlowEntityService.getOne(
|
|
|
|
+ new QueryWrapper<TFCustomFlowEntity>().lambda()
|
|
|
|
+ .eq(TFCustomFlowEntity::getCode, tbCrmDetail.getSopNo()));
|
|
|
|
+ Optional.ofNullable(tfCustomFlowEntity)
|
|
|
|
+ .orElseThrow(() -> ExceptionResultEnum.FLOW_ENTITY_NO_DATA.exception());
|
|
|
|
+
|
|
|
|
+ TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(new QueryWrapper<TFFlowApprove>().lambda()
|
|
|
|
+ .eq(TFFlowApprove::getFlowId, tfCustomFlowEntity.getFlowId()));
|
|
|
|
+ Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
|
|
|
|
+
|
|
|
|
+ tfFlowApprove.setStatus(FlowStatusEnum.DRAFT);
|
|
|
|
+ if (tfFlowApprove.getStatus() == FlowStatusEnum.FINISH || tfFlowApprove.getStatus() == FlowStatusEnum.END) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("流程已结束,无法删除");
|
|
|
|
+ } else if (tfFlowApprove.getStatus() != FlowStatusEnum.DRAFT) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("在途流程不支持删除");
|
|
|
|
+ } else {
|
|
|
|
+ activitiService.flowEnd(tfCustomFlowEntity.getFlowId());
|
|
|
|
+ }
|
|
|
|
+ result = tbCrmDetailService.removeById(tbCrmDetail.getId());
|
|
|
|
+ }
|
|
|
|
+ int count = tbCrmDetailService.count(
|
|
|
|
+ new QueryWrapper<TBCrmDetail>().lambda().eq(TBCrmDetail::getStatus, CrmStatusEnum.PUBLISH));
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ tbCrmService.updateCrmStatus(tbCrmDetail.getCrmNo(), CrmStatusEnum.UN_PUBLISH);
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|