From d583272ee68f3f80e11fddf17769eea773ff9053 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期三, 09 四月 2025 17:41:03 +0800
Subject: [PATCH] 解决批量启动流程死锁问题,增加点检后异常保修

---
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java |    8 ++------
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java            |    4 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java                         |   17 ++++++++++++++++-
 3 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
index a9ac0fc..d97a6e7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -5,9 +5,12 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.shiro.SecurityUtils;
 import org.flowable.engine.TaskService;
 import org.flowable.task.api.Task;
+import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.vo.LoginUser;
@@ -76,7 +79,7 @@
         }else {
             eamInspectionOrder.setInspectionStatus(InspectionStatus.INIT.getCode());
         }
-        save(eamInspectionOrder);
+
         //澶勭悊鏄庣粏鏁版嵁
         if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
             eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
@@ -85,6 +88,18 @@
             });
             eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
         }
+        //澶勭悊闄勪欢
+        if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) {
+            FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0);
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                String referenceFile = mapper.writeValueAsString(fileUploadResult);
+                eamInspectionOrder.setImageFiles(referenceFile);
+            } catch (JsonProcessingException e) {
+                log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+            }
+        }
+        save(eamInspectionOrder);
         if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){
             triggerProcess(eamInspectionOrder);
         }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java
index bc0fda2..7880ff5 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
 import org.jeecg.modules.flowable.domain.dto.FlowTaskDto;
@@ -31,4 +32,7 @@
      */
     IPage<FlowMyBusinessDto> PageList(@Param("page") Page page, @Param("flowMyBusinessDto") FlowMyBusinessDto flowMyBusinessDto);
 
+    @Select("SELECT * FROM flow_my_business WITH (INDEX(idx_data_id)) \n" +
+            "WHERE data_id = #{dataId}")
+    FlowMyBusiness selectByDataId(String dataId);
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
index 3216cf9..793799f 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java
@@ -14,7 +14,6 @@
 import org.jeecg.modules.flowable.util.TimeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
@@ -58,13 +57,10 @@
         return null;
     }
 
-    @Transactional(isolation = Isolation.READ_COMMITTED)    // 闄嶄綆闅旂绾у埆
+    @Transactional   // 闄嶄綆闅旂绾у埆
     public FlowMyBusiness getByDataId(String dataId) {
-        LambdaQueryWrapper<FlowMyBusiness> flowMyBusinessLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        flowMyBusinessLambdaQueryWrapper.eq(FlowMyBusiness::getDataId,dataId)
-        ;
         //濡傛灉淇濆瓨鏁版嵁鍓嶆湭璋冪敤蹇呰皟鐨凢lowCommonService.initActBusiness鏂规硶锛屽氨浼氭湁闂
-        FlowMyBusiness business = this.getOne(flowMyBusinessLambdaQueryWrapper);
+        FlowMyBusiness business = flowMyBusinessMapper.selectByDataId(dataId);
         return business;
     }
 

--
Gitblit v1.9.3