Browse Source

行政收文流程id固化规则节点

大数据与最优化研究所 5 months ago
parent
commit
fbaca8cf14

+ 51 - 0
src/main/java/com/xjrsoft/module/liteflow/node/ODRTaskIdPersistNode.java

@@ -0,0 +1,51 @@
+package com.xjrsoft.module.liteflow.node;
+
+import cn.hutool.core.convert.Convert;
+import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
+import com.xjrsoft.module.hikvision.util.FaceImportUtil;
+import com.xjrsoft.module.personnel.entity.TeacherFaceProcess;
+import com.xjrsoft.module.personnel.service.ITeacherFaceProcessService;
+import com.xjrsoft.module.teacher.mapper.FaceImportMapper;
+import com.yomahub.liteflow.core.NodeComponent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 行政收文流程ID固化
+ */
+@Component("odr_taskId_persist_node")
+public class ODRTaskIdPersistNode extends NodeComponent {
+
+    @Autowired
+    private ITeacherFaceProcessService teacherFaceProcessService;
+
+    @Autowired
+    private HikvisionDataMapper hikvisionDataMapper;
+
+    @Autowired
+    private FaceImportMapper faceImportMapper;
+
+    @Override
+    public void process() throws Exception {
+        // 获取表单中数据编号
+        Map<String, Object> params = this.getFirstContextBean();
+        Object value = util.getFormDatKey(params, "id");
+        Long formId = Convert.toLong(value);
+        if (formId != null) {
+
+            String fileUrl = faceImportMapper.GetTeacherHikvisionImgById(formId);
+
+            // 数据处理
+            TeacherFaceProcess dataObj = teacherFaceProcessService.getById(formId);
+            dataObj.setStatus(1);
+            dataObj.setExamStatus(1);
+            String reslut = FaceImportUtil.ImportTeacherFace(hikvisionDataMapper.getTeacherHikvisionId(dataObj.getUserId()), fileUrl);
+            dataObj.setHikvisionResult(reslut);
+            teacherFaceProcessService.updateById(dataObj);
+
+            teacherFaceProcessService.clearHistory(dataObj);
+        }
+    }
+}

+ 4 - 0
src/main/java/com/xjrsoft/module/oa/entity/OfficialDocumentReceived.java

@@ -139,5 +139,9 @@ public class OfficialDocumentReceived implements Serializable {
     @ApiModelProperty("落实负责人")
     private Long handleDutyUserId;
 
+    @ApiModelProperty("流程ID")
+    private String taskId;
 
+    @ApiModelProperty("部门审核人主键id")
+    private Long deptReviewerId;
 }

+ 7 - 0
src/main/java/com/xjrsoft/module/oa/service/IOfficialDocumentReceivedService.java

@@ -21,4 +21,11 @@ public interface IOfficialDocumentReceivedService extends MPJBaseService<Officia
     Boolean noticeHandleDutyUser(Long formId);
 
 
+    /**
+     * 行政收文流程ID固化
+     *
+     * @param id
+     * @return
+     */
+    void taskIdPersist(Long id);
 }

+ 23 - 0
src/main/java/com/xjrsoft/module/oa/service/impl/OfficialDocumentReceivedServiceImpl.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.oa.service.impl;
 
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.module.oa.entity.OfficialDocumentReceived;
 import com.xjrsoft.module.oa.mapper.OfficialDocumentReceivedMapper;
@@ -11,8 +12,13 @@ import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.mapper.UserMapper;
 import com.xjrsoft.module.organization.service.IWeChatService;
+import com.xjrsoft.module.teacher.entity.WfTeacherleave;
+import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
+import com.xjrsoft.module.workflow.service.IWorkflowFormRelationService;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -31,6 +37,8 @@ public class OfficialDocumentReceivedServiceImpl extends MPJBaseServiceImpl<Offi
     private final IWeChatService weChatService;
     private final UserMapper userMapper;
 
+    private final IWorkflowFormRelationService workflowFormRelationService;
+
     @Override
     public String getMaxReceivedNumber() {
         Integer maxReceivedNumber = officialDocumentReceivedMapper.getMaxReceivedNumber();
@@ -74,5 +82,20 @@ public class OfficialDocumentReceivedServiceImpl extends MPJBaseServiceImpl<Offi
         return true;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void taskIdPersist(Long id) {
+        // 根据当前表单数据获取流程信息
+        LambdaQueryWrapper<WorkflowFormRelation> wrapper = new LambdaQueryWrapper<>();
+        wrapper
+                .eq(WorkflowFormRelation::getFormKeyValue, id)
+        ;
+        WorkflowFormRelation workflowFormRelation = workflowFormRelationService.getOne(wrapper);
 
+        if(ObjectUtils.isNotEmpty(workflowFormRelation)){
+            OfficialDocumentReceived update = new OfficialDocumentReceived();
+            update.setId(id);
+            update.setTaskId(workflowFormRelation.getProcessId());
+        }
+    }
 }