|
@@ -216,24 +216,12 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
|
|
|
TBCrmDetail tbCrmDetailDb = tbCrmDetailService.getById(tbCrmDetail.getId());
|
|
|
Objects.requireNonNull(tbCrmDetailDb, "未找到派单sop信息");
|
|
|
|
|
|
- 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("在途流程不支持编辑");
|
|
|
- }
|
|
|
+ FlowStatusEnum flowStatus = tbCrmDetailService.findById(tbCrmDetailDb.getId());
|
|
|
+ if (Objects.nonNull(flowStatus) && (flowStatus == FlowStatusEnum.FINISH
|
|
|
+ || flowStatus == FlowStatusEnum.END)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("流程已结束,无法编辑");
|
|
|
+ } else if (Objects.nonNull(flowStatus) && (flowStatus != FlowStatusEnum.DRAFT)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("在途流程不支持编辑");
|
|
|
}
|
|
|
tbCrmDetail.updateInfo(sysUser.getId());
|
|
|
}
|
|
@@ -325,28 +313,18 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
|
|
|
TBCrmDetail tbCrmDetail = tbCrmDetailService.getById(id);
|
|
|
Objects.requireNonNull(tbCrmDetail, "未找到派单sop信息");
|
|
|
|
|
|
- boolean result = false;
|
|
|
- if (tbCrmDetail.getStatus() == CrmStatusEnum.PUBLISH) {
|
|
|
+ FlowStatusEnum flowStatus = tbCrmDetailService.findById(id);
|
|
|
+ if (Objects.nonNull(flowStatus) && (flowStatus == FlowStatusEnum.FINISH || flowStatus == FlowStatusEnum.END)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("流程已结束,无法删除");
|
|
|
+ } else if (Objects.nonNull(flowStatus) && (flowStatus != FlowStatusEnum.DRAFT)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("在途流程不支持删除");
|
|
|
+ } else if (Objects.nonNull(flowStatus)) {
|
|
|
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());
|
|
|
+ activitiService.flowEnd(tfCustomFlowEntity.getFlowId());
|
|
|
}
|
|
|
+ boolean result = tbCrmDetailService.removeById(tbCrmDetail.getId());
|
|
|
int count = tbCrmDetailService.count(
|
|
|
new QueryWrapper<TBCrmDetail>().lambda().eq(TBCrmDetail::getStatus, CrmStatusEnum.PUBLISH));
|
|
|
if (count == 0) {
|
|
@@ -365,4 +343,30 @@ public class TBCrmDetailServiceImpl extends ServiceImpl<TBCrmDetailMapper, TBCrm
|
|
|
public TBCrmDetail findBySopNo(String sopNo) {
|
|
|
return tbCrmDetailService.getOne(new QueryWrapper<TBCrmDetail>().lambda().eq(TBCrmDetail::getSopNo, sopNo));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id查询流程状态
|
|
|
+ *
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public FlowStatusEnum findById(Long id) {
|
|
|
+ TBCrmDetail tbCrmDetail = tbCrmDetailService.getById(id);
|
|
|
+ Objects.requireNonNull(tbCrmDetail, "未找到派单sop信息");
|
|
|
+
|
|
|
+ TFFlowApprove tfFlowApprove = null;
|
|
|
+ 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 = tfFlowApproveService.getOne(new QueryWrapper<TFFlowApprove>().lambda()
|
|
|
+ .eq(TFFlowApprove::getFlowId, tfCustomFlowEntity.getFlowId()));
|
|
|
+ Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
|
|
|
+ }
|
|
|
+ return Objects.nonNull(tfFlowApprove) ? tfFlowApprove.getStatus() : null;
|
|
|
+ }
|
|
|
}
|