浏览代码

重复数据报错问题修复

wangming 11 月之前
父节点
当前提交
b2f5777476

+ 3 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxInsideInspectionServiceImpl.java

@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.rongwei.bscommon.sys.service.*;
+import com.rongwei.bscommon.sys.utils.BusinessFunUtils;
 import com.rongwei.bscommon.sys.utils.ZhcxCommon;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.bscommon.sys.dao.ZhcxInsideInspectionDao;
@@ -1608,7 +1609,8 @@ public class ZhcxInsideInspectionServiceImpl extends ServiceImpl<ZhcxInsideInspe
             queryWrapper.eq(ZhcxItpProjectNodeStateDo::getPrjid, itpDo.getProjectid())
                     .eq(ZhcxItpProjectNodeStateDo::getMathinecode, mn)
                     .eq(ZhcxItpProjectNodeStateDo::getNodeid, itpDo.getInspectioncontentid());
-            ZhcxItpProjectNodeStateDo stateDo = itpProjectNodeStateService.getOne(queryWrapper);
+            List<ZhcxItpProjectNodeStateDo> stateList = itpProjectNodeStateService.list(queryWrapper);
+            ZhcxItpProjectNodeStateDo stateDo = BusinessFunUtils.getPrjNodeState(stateList);
 
             if(ObjectUtil.isNull(stateDo)) {
                 stateDo = new ZhcxItpProjectNodeStateDo();

+ 4 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxItpProjectNodeStateServiceImpl.java

@@ -3,6 +3,7 @@ package com.rongwei.bscommon.sys.service.impl;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.rongwei.bscommon.sys.utils.BusinessFunUtils;
 import com.rongwei.bsentity.domain.ZhcxItpProjectNodeStateDo;
 import com.rongwei.bscommon.sys.dao.ZhcxItpProjectNodeStateDao;
 import com.rongwei.bscommon.sys.service.ZhcxItpProjectNodeStateService;
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -57,7 +59,8 @@ public class ZhcxItpProjectNodeStateServiceImpl extends ServiceImpl<ZhcxItpProje
             queryWrapper.eq(ZhcxItpProjectNodeStateDo::getPrjid, itpDo.getProjectid())
                     .eq(ZhcxItpProjectNodeStateDo::getMathinecode, mn)
                     .eq(ZhcxItpProjectNodeStateDo::getNodeid, itpDo.getInspectioncontentid());
-            ZhcxItpProjectNodeStateDo stateDo = getOne(queryWrapper);
+            List<ZhcxItpProjectNodeStateDo> stateList = list(queryWrapper);
+            ZhcxItpProjectNodeStateDo stateDo = BusinessFunUtils.getPrjNodeState(stateList);
 
             ZhcxItpProjectNodeStateResultDto dto = new ZhcxItpProjectNodeStateResultDto();
             ZhcxItpProjectNodeStateDo entity = new ZhcxItpProjectNodeStateDo();

+ 32 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/utils/BusinessFunUtils.java

@@ -0,0 +1,32 @@
+package com.rongwei.bscommon.sys.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.rongwei.bsentity.domain.ZhcxItpProjectNodeStateDo;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class BusinessFunUtils {
+
+    /**
+     * 选择不为空的项目节点状态
+     *
+     * @param stateList
+     * @return
+     */
+    public static ZhcxItpProjectNodeStateDo getPrjNodeState(List<ZhcxItpProjectNodeStateDo> stateList) {
+
+        if(ObjectUtil.isEmpty(stateList)) {
+            return null;
+        }
+
+        //找出使用过数据
+        List<ZhcxItpProjectNodeStateDo> nodeStateDos = stateList.stream()
+                .filter(item -> ObjectUtil.isNotEmpty(item.getInstate()) || ObjectUtil.isNotEmpty(item.getOutstate()))
+                .collect(Collectors.toList());
+        if(ObjectUtil.isNotEmpty(nodeStateDos)) {
+            return nodeStateDos.get(0);
+        }
+        return stateList.get(0);
+    }
+}