Jelajahi Sumber

流程增加crm单号

wangliang 1 tahun lalu
induk
melakukan
1f5f2539d7

+ 4 - 2
sop-business/src/main/java/com/qmth/sop/business/activiti/service/impl/ActivitiServiceImpl.java

@@ -178,6 +178,8 @@ public class ActivitiServiceImpl implements ActivitiService {
         Task taskTemp = null;
         FlowResult flowResult = null;
         if (Objects.nonNull(flowApproveParam.getFlowDeploymentId()) && Objects.isNull(flowApproveParam.getTaskId())) {
+            Optional.ofNullable(flowApproveParam.getCrmNo()).orElseThrow(() -> ExceptionResultEnum.CRM_NO_NO_DATA.exception());
+
             TFCustomFlow tfCustomFlow = tfCustomFlowService.getOne(new QueryWrapper<TFCustomFlow>().lambda().eq(TFCustomFlow::getFlowDeploymentId, flowApproveParam.getFlowDeploymentId()));
             Optional.ofNullable(tfCustomFlow.getFlowProcessVar()).orElseThrow(() -> ExceptionResultEnum.FLOW_PROCESS_VAR_NO_DATA.exception());
 
@@ -186,8 +188,8 @@ public class ActivitiServiceImpl implements ActivitiService {
             processFlowId = processInstance.getId();
 
             String code = sequenceService.createFlowCode(tfCustomFlow.getType());
-            tfCustomFlowEntity = new TFCustomFlowEntity(tfCustomFlow.getId(), sysUser.getId(), code);
-            tfFlowApprove = new TFFlowApprove(sysUser.getOrgId(), Long.parseLong(approveUserIds.get(approveUserIds.size() - 1)), FlowStatusEnum.valueOf(flowApproveParam.getApprove().name()), null);
+            tfCustomFlowEntity = new TFCustomFlowEntity(tfCustomFlow.getId(), sysUser.getId(), code, flowApproveParam.getCrmNo());
+            tfFlowApprove = new TFFlowApprove(sysUser.getOrgId(), Long.parseLong(approveUserIds.get(approveUserIds.size() - 1)), FlowStatusEnum.valueOf(flowApproveParam.getApprove().name()), sysUser.getId());
             flowResult = JSONObject.parseObject(tfCustomFlow.getFlowProcessVar(), FlowResult.class);
         } else if (Objects.nonNull(flowApproveParam.getTaskId())) {
             taskTemp = taskService.createTaskQuery().taskId(String.valueOf(flowApproveParam.getTaskId())).singleResult();

+ 15 - 2
sop-business/src/main/java/com/qmth/sop/business/bean/params/FlowApproveParam.java

@@ -18,6 +18,9 @@ import java.util.List;
  */
 public class FlowApproveParam implements Serializable {
 
+    @ApiModelProperty(value = "crm单号")
+    private String crmNo;
+
     @ApiModelProperty(value = "流程部署id")
     private String flowDeploymentId;
 
@@ -45,17 +48,27 @@ public class FlowApproveParam implements Serializable {
 
     }
 
-    public FlowApproveParam(String flowDeploymentId, FlowApprovePassEnum approve, List<String> approveUserIds) {
+    public FlowApproveParam(String flowDeploymentId, FlowApprovePassEnum approve, List<String> approveUserIds, String crmNo) {
         this.flowDeploymentId = flowDeploymentId;
         this.approve = approve;
         this.approveUserIds = approveUserIds;
+        this.crmNo = crmNo;
     }
 
-    public FlowApproveParam(String flowDeploymentId, FlowApprovePassEnum approve, String formProperties, List<String> approveUserIds) {
+    public FlowApproveParam(String flowDeploymentId, FlowApprovePassEnum approve, String formProperties, List<String> approveUserIds, String crmNo) {
         this.flowDeploymentId = flowDeploymentId;
         this.approve = approve;
         this.formProperties = formProperties;
         this.approveUserIds = approveUserIds;
+        this.crmNo = crmNo;
+    }
+
+    public String getCrmNo() {
+        return crmNo;
+    }
+
+    public void setCrmNo(String crmNo) {
+        this.crmNo = crmNo;
     }
 
     public String getFlowDeploymentId() {

+ 9 - 10
sop-business/src/main/java/com/qmth/sop/business/entity/TFCustomFlowEntity.java

@@ -25,6 +25,9 @@ public class TFCustomFlowEntity extends BaseEntity implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long tFCustomFlowId;
 
+    @ApiModelProperty(value = "crm单号")
+    private String crmNo;
+
     @ApiModelProperty(value = "编号")
     private String code;
 
@@ -43,23 +46,19 @@ public class TFCustomFlowEntity extends BaseEntity implements Serializable {
 
     }
 
-    public TFCustomFlowEntity(Long tFCustomFlowId, Long userId, String code) {
+    public TFCustomFlowEntity(Long tFCustomFlowId, Long userId, String code, String crmNo) {
         this.tFCustomFlowId = tFCustomFlowId;
         this.code = code;
+        this.crmNo = crmNo;
         this.insertInfo(userId);
     }
 
-    public TFCustomFlowEntity(Long tFCustomFlowId, String flowProcessVar, Long userId) {
-        this.tFCustomFlowId = tFCustomFlowId;
-        this.flowProcessVar = flowProcessVar;
-        this.insertInfo(userId);
+    public String getCrmNo() {
+        return crmNo;
     }
 
-    public TFCustomFlowEntity(Long tFCustomFlowId, Long flowId, String flowProcessVar, Long userId) {
-        this.tFCustomFlowId = tFCustomFlowId;
-        this.flowId = flowId;
-        this.flowProcessVar = flowProcessVar;
-        this.insertInfo(userId);
+    public void setCrmNo(String crmNo) {
+        this.crmNo = crmNo;
     }
 
     public String getCode() {

+ 11 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingApplyServiceImpl.java

@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.sop.business.activiti.service.ActivitiService;
 import com.qmth.sop.business.bean.params.FlowApproveParam;
 import com.qmth.sop.business.entity.SysUser;
+import com.qmth.sop.business.entity.TBDing;
 import com.qmth.sop.business.entity.TBDingApply;
 import com.qmth.sop.business.entity.TFCustomFlowEntity;
 import com.qmth.sop.business.mapper.TBDingApplyMapper;
 import com.qmth.sop.business.service.TBDingApplyService;
+import com.qmth.sop.business.service.TBDingService;
 import com.qmth.sop.business.service.TFCustomFlowEntityService;
 import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.ExceptionResultEnum;
 import com.qmth.sop.common.enums.FlowApprovePassEnum;
 import com.qmth.sop.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
@@ -18,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.util.Arrays;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * <p>
@@ -36,6 +40,9 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
     @Resource
     ActivitiService activitiService;
 
+    @Resource
+    TBDingService tbDingService;
+
     /**
      * 新增考勤异常补卡申请
      *
@@ -47,7 +54,10 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
     @Transactional
     public Boolean saveDingApply(TBDingApply tbDingApply) throws InterruptedException {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Map<String, Object> map = activitiService.taskApprove(new FlowApproveParam(tbDingApply.getFlowDeploymentId(), FlowApprovePassEnum.START, Arrays.asList(String.valueOf(sysUser.getId()))));
+        TBDing tbDing = tbDingService.getById(tbDingApply.getDingId());
+        Optional.ofNullable(tbDing).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("考勤记录为空"));
+
+        Map<String, Object> map = activitiService.taskApprove(new FlowApproveParam(tbDingApply.getFlowDeploymentId(), FlowApprovePassEnum.START, Arrays.asList(String.valueOf(sysUser.getId())), tbDing.getCrmNo()));
         TFCustomFlowEntity tfCustomFlowEntity = (TFCustomFlowEntity) map.get(SystemConstant.CUSTOM_FLOW_ENTITY);
         tbDingApply.setCode(tfCustomFlowEntity.getCode(), tbDingApply.getAttachmentIdList(), sysUser.getId());
         tfCustomFlowEntity.setObjId(tbDingApply.getId());

+ 1 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBQualityProblemApplyServiceImpl.java

@@ -65,7 +65,7 @@ public class TBQualityProblemApplyServiceImpl extends ServiceImpl<TBQualityProbl
     @Transactional
     public Boolean saveTBQualityProblemApply(TBQualityProblemApply tbQualityProblemApply) throws InterruptedException {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Map<String, Object> map = activitiService.taskApprove(new FlowApproveParam(tbQualityProblemApply.getFlowDeploymentId(), FlowApprovePassEnum.START, tbQualityProblemApply.getFormProperties(), Arrays.asList(String.valueOf(sysUser.getId()))));
+        Map<String, Object> map = activitiService.taskApprove(new FlowApproveParam(tbQualityProblemApply.getFlowDeploymentId(), FlowApprovePassEnum.START, tbQualityProblemApply.getFormProperties(), Arrays.asList(String.valueOf(sysUser.getId())), tbQualityProblemApply.getCrmNo()));
         TFCustomFlowEntity tfCustomFlowEntity = (TFCustomFlowEntity) map.get(SystemConstant.CUSTOM_FLOW_ENTITY);
         tbQualityProblemApply.setCode(tfCustomFlowEntity.getCode(), tbQualityProblemApply.getAttachmentIdList(), tbQualityProblemApply.getUserIdList(), sysUser.getId());
         tfCustomFlowEntity.setObjId(tbQualityProblemApply.getId());

+ 4 - 1
sop-business/src/main/resources/db/log/wangliang_update_log.sql

@@ -513,4 +513,7 @@ ALTER TABLE t_b_product CHANGE COLUMN code code VARCHAR(100)
 ALTER TABLE t_b_session MODIFY COLUMN `type` varchar(500) CHARACTER SET utf8mb4 NOT NULL COMMENT '用户类型';
 
 ALTER TABLE t_b_ding_history ADD date_type varchar(20) NULL COMMENT '日期类型:WEEKDAY("工作日"),WEEKEND("周末"),LEGAL_HOLIDAYS("法定节假日")';
-ALTER TABLE t_b_ding_history CHANGE date_type date_type varchar(20) NULL COMMENT '日期类型:WEEKDAY("工作日"),WEEKEND("周末"),LEGAL_HOLIDAYS("法定节假日")' AFTER sign_date;
+ALTER TABLE t_b_ding_history CHANGE date_type date_type varchar(20) NULL COMMENT '日期类型:WEEKDAY("工作日"),WEEKEND("周末"),LEGAL_HOLIDAYS("法定节假日")' AFTER sign_date;
+
+ALTER TABLE t_f_custom_flow_entity ADD crm_no varchar(100) NULL COMMENT 'crm单号';
+ALTER TABLE t_f_custom_flow_entity CHANGE crm_no crm_no varchar(100) NULL COMMENT 'crm单号' AFTER t_f_custom_flow_id;

+ 2 - 0
sop-common/src/main/java/com/qmth/sop/common/enums/ExceptionResultEnum.java

@@ -67,6 +67,8 @@ public enum ExceptionResultEnum {
 
     FLOW_PROCESS_VAR_NO_DATA(HttpStatus.INTERNAL_SERVER_ERROR, 5000020, "流程过程变量数据为空"),
 
+    CRM_NO_NO_DATA(HttpStatus.INTERNAL_SERVER_ERROR, 5000021, "crm单号不能为空"),
+
     /**
      * 401
      */