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