Bläddra i källkod

fix:齐套性检测优化

wang.sq@aliyun.com 1 vecka sedan
förälder
incheckning
4255b7a596

+ 1 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/CuttingToolMapper.java

@@ -34,5 +34,6 @@ public interface CuttingToolMapper extends SuperMapper<CuttingTool> {
     List<String> getToolCategory(@Param("list") List<Long> cuttingToolId);
 
     CuttingTool getToolId(String code);
+    void updateByListId(@Param("list") List<Long> cuttingToolId);
 
 }

+ 29 - 3
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/MachineCuttingToolServiceImpl.java

@@ -1,6 +1,7 @@
 package com.github.zuihou.business.productionReadyCenter.service.impl;
 
 
+import cn.hutool.log.Log;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -147,6 +148,17 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
                 List<MachineCuttingTool> machineCuttingTools = baseMapper.selectList(Wraps.<MachineCuttingTool>lbQ().eq(MachineCuttingTool::getMachineId, resourceId));
                 Map<String, List<MachineCuttingTool>> collect = machineCuttingTools.stream().collect(Collectors.groupingBy(MachineCuttingTool::getCuttingToolPosition));
 
+
+                // 查询所有得基础刀具信息,为下面采集得数据进行覆盖,以为采集数据为准
+                List<CuttingTool> cuttingTools = cuttingToolMapper.selectList(Wraps.<CuttingTool>lbQ());
+                Map<Long, List<CuttingTool>> cutterDataAll = cuttingTools.stream().collect(Collectors.groupingBy(CuttingTool::getCuttingToolNo));
+
+                // 查询此设备下所有刀具信息,比较采集得数据,删除采集数据中没有得数据
+                List<CuttingTool>  cuttingTools2= cuttingToolMapper.selectList(Wraps.<CuttingTool>lbQ().eq(CuttingTool::getDeviceId, resourceId));
+                Map<Long, List<CuttingTool>> cutterDataDevice = cuttingTools2.stream().collect(Collectors.groupingBy(CuttingTool::getCuttingToolNo));
+
+
+
                 for (int i = 0; i < upResult.size(); i++) {
                     JSONObject tool = upResult.getJSONObject(i);
                     String cuttingToolNo = tool.getString("number");
@@ -161,16 +173,23 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
                         collect.remove(position);
                     }
 
-                    CuttingTool cuttingTool = cuttingToolMapper.selectOne(Wraps.<CuttingTool>lbQ().eq(CuttingTool::getCuttingToolNo, cuttingToolNo));
+                    // CuttingTool cuttingTool = cuttingToolMapper.selectOne(Wraps.<CuttingTool>lbQ().eq(CuttingTool::getCuttingToolNo, cuttingToolNo));
 
                     machineCuttingTool.setMachineId(resourceId);
                     machineCuttingTool.setCuttingToolId(cuttingToolNo);
                     machineCuttingTool.setCuttingToolName(name);
-                    if (null != cuttingTool) {
+                    if (!cutterDataAll.isEmpty() && null != cutterDataAll.get(Long.parseLong(cuttingToolNo))) {
+                        // 删除设备有得数据
+                        if(!cutterDataDevice.isEmpty() && null !=cutterDataDevice.get(Long.parseLong(cuttingToolNo))){
+                            cutterDataDevice.remove(Long.parseLong(cuttingToolNo));
+                        }
+                        CuttingTool cuttingTool = cutterDataAll.get(Long.parseLong(cuttingToolNo)).get(0);
                         cuttingTool.setDeviceId(resourceId);
-                        cuttingTool.setCutterNo(Double.parseDouble(cuttingToolNo));
+                        cuttingTool.setCutterNo(Double.parseDouble(position.replace("1.","")));
+
                         cuttingToolMapper.updateById(cuttingTool);
 
+
                         machineCuttingTool.setCuttingToolPicture(cuttingTool.getCuttingToolPicture());
                         machineCuttingTool.setCuttingToolInstallPicture(cuttingTool.getCuttingToolInstallPicture());
                     }
@@ -203,6 +222,13 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
                     }
                 }
 
+                // 移除采集设备没有得数据与刀架数据
+                if(!cutterDataDevice.isEmpty()){
+                    List<Long> collect1 = cutterDataDevice.values().stream().flatMap(Collection::stream).map(CuttingTool::getId).collect(Collectors.toList());
+
+                    cuttingToolMapper.updateByListId(collect1);
+                }
+
                 // 判断collect是否还有数据,如果有进行删除,说明机床已经没有这些数据
                 if (!collect.isEmpty()) {
                     List<Long> collect1 = collect.values()

+ 13 - 0
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/CuttingToolMapper.xml

@@ -79,4 +79,17 @@
     <select id="getToolId" resultType="com.github.zuihou.business.productionReadyCenter.entity.CuttingTool" parameterType="String">
         select * from imcs_cutting_tool where cutter_code=#{code}
     </select>
+
+
+
+    <update id="updateByListId" parameterType="Long">
+        UPDATE imcs_cutting_tool
+        SET device_id = NULL,
+        cutter_no = '0'
+        WHERE
+        id in
+        <foreach close=")" collection="list" item="id" open="(" separator=",">
+            #{id}
+        </foreach>
+    </update>
 </mapper>