瀏覽代碼

fix:优化采集机床数据信息

wang.sq@aliyun.com 3 月之前
父節點
當前提交
33bbab4231

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

@@ -46,10 +46,8 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -141,13 +139,26 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
             productionresource.setToolNum(upResult.size());
             productionresourceviewMapper.updateById(productionresource);
 
-            baseMapper.delete(Wraps.<MachineCuttingTool>lbQ().eq(MachineCuttingTool::getMachineId, resourceId).eq(MachineCuttingTool::getStatus,"0"));
+            // 查询出来现在表里的数据,比对修改,多余的删除
+            List<MachineCuttingTool> machineCuttingTools = baseMapper.selectList(Wraps.<MachineCuttingTool>lbQ().eq(MachineCuttingTool::getMachineId, resourceId));
+            Map<String, List<MachineCuttingTool>> collect = machineCuttingTools.stream().collect(Collectors.groupingBy(MachineCuttingTool::getCuttingToolPosition));
+
             for(int i = 0; i<upResult.size(); i++){
                 JSONObject tool = upResult.getJSONObject(i);
                 String cuttingToolNo = tool.getString("number");
                 String name = tool.getString("name");
+                String position = tool.getString("position");
+
+                MachineCuttingTool machineCuttingTool= new MachineCuttingTool();
+                if(!collect.isEmpty() && collect.get(position)!=null){
+                    collect.get(position).get(0);
+                    machineCuttingTool.setStatus(collect.get(position).get(0).getStatus());
+                    machineCuttingTool.setId(collect.get(position).get(0).getId());
+                    collect.remove(position);
+                }
+
                 CuttingTool cuttingTool = cuttingToolMapper.selectOne(Wraps.<CuttingTool>lbQ().eq(CuttingTool::getCuttingToolNo, cuttingToolNo).eq(CuttingTool::getDeviceId, resourceId));
-                MachineCuttingTool machineCuttingTool = new MachineCuttingTool();
+
                 machineCuttingTool.setMachineId(resourceId);
                 machineCuttingTool.setCuttingToolId(cuttingToolNo);
                 machineCuttingTool.setCuttingToolName(name);
@@ -155,7 +166,7 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
                     machineCuttingTool.setCuttingToolPicture(cuttingTool.getCuttingToolPicture());
                     machineCuttingTool.setCuttingToolInstallPicture(cuttingTool.getCuttingToolInstallPicture());
                 }
-                machineCuttingTool.setCuttingToolPosition(tool.getString("position"));
+                machineCuttingTool.setCuttingToolPosition(position);
                 String cuttingToolType = tool.getString("monitorType");
                 machineCuttingTool.setCuttingToolType(cuttingToolType);
                 machineCuttingTool.setEarlyWarnning(tool.getString("targetLife"));
@@ -170,12 +181,22 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
                 machineCuttingTool.setDoc(doc);
                 String rd = tool.getString("rd");
                 machineCuttingTool.setRd(rd);
-                baseMapper.insert(machineCuttingTool);
+
+                if(Objects.isNull(machineCuttingTool.getId())){
+                    baseMapper.insert(machineCuttingTool);
+                }else {
+                    baseMapper.updateById(machineCuttingTool);
+                }
                 //刀具报警 调用天轨 目标去刀具上下料站
                 if(!map.containsKey(resourceId) && (doc.equals("FDJ") || doc.equals("HD"))){
                     map.put(resourceId, machineCuttingTool);
                 }
             }
+
+            // 判断collect是否还有数据,如果有进行删除,说明机床已经没有这些数据
+            ArrayList<String> needDel = new ArrayList<>(collect.keySet());
+            baseMapper.deleteBatchIds(needDel);
+
         }
         dataList = new ArrayList<MachineCuttingTool>(map.values());
         return dataList;

+ 1 - 1
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/MachineCuttingTool.java

@@ -206,7 +206,7 @@ public class MachineCuttingTool extends Entity<Long> {
     @ApiModelProperty(value = "锁定运行状态(0-未运行 1-运行中)")
     @TableField(value = "status", condition = EQUAL)
     @Excel(name = "锁定运行状态")
-    private String status;
+    private String status = "0";
 
     /**
      * 锁定运行状态