Browse Source

fix:齐套性检测优化

wang.sq@aliyun.com 1 day ago
parent
commit
63e6a237dc

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

@@ -107,102 +107,115 @@ public class MachineCuttingToolServiceImpl extends SuperCacheServiceImpl<Machine
         if( num == 0 ) return dataList;
         Map<Long, MachineCuttingTool> map = Maps.newConcurrentMap();
 
+        String msg="";
         for(long resourceId : data.getIds()){
-            String paramKey = "hostSystemUrl";
-            String plcUrl = (null == msgUtil.redis_get(ParameterKey.PARAMETERS)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.PARAMETERS)).get(paramKey).toString());
-
-            Productionresource productionresource =  productionresourceviewMapper.selectById(resourceId);
-            // 访问ccs接口查询设备刀具
-            JSONObject jsonObject = new JSONObject();
-            jsonObject.put("url",productionresource.getIp());
-            jsonObject.put("port",productionresource.getPort());
-
-            HttpEntity<String> request = new HttpEntity<>(jsonObject.toJSONString(), headers);
-
-            String synMachineCuttingTolls = "";
-            //String instructionUrl = (null == msgUtil.redis_get(ParameterKey.PARAMETERS)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.PARAMETERS)).get(plcUrl).toString()) + "/api/GetTool";
-            String instructionUrl = plcUrl +"/api/GetTools";
-//             instructionUrl = DictionaryKey.INSTRUCTION_URL + "/api/GetTools";
-            log.info("================机床刀具数据同步instructionUrl================" + instructionUrl);
-            log.info("================机床刀具数据同步jsonParam================" + jsonObject.toJSONString());
-
-            if(imcsTOccsEnable){
-                ResponseEntity<String> postForEntity = restTemplate.postForEntity(instructionUrl, request, String.class);
-                synMachineCuttingTolls = postForEntity.getBody();
-            }else {
-                synMachineCuttingTolls = "[{\"position\":\"1.4\",\"number\":\"22\",\"name\":\"1-LC190202-C5CFOL3507002L-C5L90\",\"warnLife\":\"87\",\"targetLife\":\"2282.88\",\"workPiece\":null,\"workPieceWarn\":null,\"workPieceTarget\":null,\"wear\":null,\"wearWarn\":null,\"wearTarget\":null,\"sisterNo\":null,\"toolEdgeNo\":null,\"toolPosition\":null,\"toolRadius\":null,\"tl\":\"0\",\"doc\":\"\"},{\"position\":\"1.1\",\"number\":\"7\",\"name\":\"XD6\",\"warnLife\":\"87\",\"targetLife\":\"2282.88\",\"workPiece\":null,\"workPieceWarn\":null,\"workPieceTarget\":null,\"wear\":null,\"wearWarn\":null,\"wearTarget\":null,\"sisterNo\":null,\"toolEdgeNo\":null,\"toolPosition\":null,\"toolRadius\":null,\"tl\":\"0\",\"doc\":\"\"},{\"position\":\"1.2\",\"number\":\"3\",\"name\":\"8C-N123E2-C5CFMR35070\",\"warnLife\":\"0\",\"targetLife\":\"8021.45\",\"workPiece\":null,\"workPieceWarn\":null,\"workPieceTarget\":null,\"wear\":null,\"wearWarn\":null,\"wearTarget\":null,\"sisterNo\":null,\"toolEdgeNo\":null,\"toolPosition\":null,\"toolRadius\":null,\"tl\":\"0\",\"doc\":\"\"}]\n";
-            }
-
-            log.info("设备" + productionresource.getName() + "同步刀具返回{},请求参数{}",synMachineCuttingTolls,jsonObject.toString());
-            JSONArray upResult = JSONArray.parseArray(synMachineCuttingTolls);
-            productionresource.setToolSynTime(DateUtil.formatTime(Calendar.getInstance().getTime()));
-            productionresource.setToolNum(upResult.size());
-            productionresourceviewMapper.updateById(productionresource);
-
-            // 查询出来现在表里的数据,比对修改,多余的删除
-            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);
+            try {
+                String paramKey = "hostSystemUrl";
+                String plcUrl = (null == msgUtil.redis_get(ParameterKey.PARAMETERS) ? "" : ((Map<String, String>) msgUtil.redis_get(ParameterKey.PARAMETERS)).get(paramKey).toString());
+
+                Productionresource productionresource = productionresourceviewMapper.selectById(resourceId);
+                // 访问ccs接口查询设备刀具
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("url", productionresource.getIp());
+                jsonObject.put("port", productionresource.getPort());
+
+                HttpEntity<String> request = new HttpEntity<>(jsonObject.toJSONString(), headers);
+
+                String synMachineCuttingTolls = "";
+                //String instructionUrl = (null == msgUtil.redis_get(ParameterKey.PARAMETERS)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.PARAMETERS)).get(plcUrl).toString()) + "/api/GetTool";
+                String instructionUrl = plcUrl + "/api/GetTools";
+                //             instructionUrl = DictionaryKey.INSTRUCTION_URL + "/api/GetTools";
+                log.info("================机床刀具数据同步instructionUrl================" + instructionUrl);
+                log.info("================机床刀具数据同步jsonParam================" + jsonObject.toJSONString());
+
+                if (imcsTOccsEnable) {
+                    ResponseEntity<String> postForEntity = restTemplate.postForEntity(instructionUrl, request, String.class);
+                    synMachineCuttingTolls = postForEntity.getBody();
+                } else {
+                    synMachineCuttingTolls = "[{\"position\":\"1.4\",\"number\":\"22\",\"name\":\"1-LC190202-C5CFOL3507002L-C5L90\",\"warnLife\":\"87\",\"targetLife\":\"2282.88\",\"workPiece\":null,\"workPieceWarn\":null,\"workPieceTarget\":null,\"wear\":null,\"wearWarn\":null,\"wearTarget\":null,\"sisterNo\":null,\"toolEdgeNo\":null,\"toolPosition\":null,\"toolRadius\":null,\"tl\":\"0\",\"doc\":\"\"}," +
+                            "{\"position\":\"1.1\",\"number\":\"7\",\"name\":\"XD6\",\"warnLife\":\"87\",\"targetLife\":\"2282.88\",\"workPiece\":null,\"workPieceWarn\":null,\"workPieceTarget\":null,\"wear\":null,\"wearWarn\":null,\"wearTarget\":null,\"sisterNo\":null,\"toolEdgeNo\":null,\"toolPosition\":null,\"toolRadius\":null,\"tl\":\"0\",\"doc\":\"\"}," +
+                            "{\"position\":\"1.2\",\"number\":\"3\",\"name\":\"8C-N123E2-C5CFMR35070\",\"warnLife\":\"0\",\"targetLife\":\"8021.45\",\"workPiece\":null,\"workPieceWarn\":null,\"workPieceTarget\":null,\"wear\":null,\"wearWarn\":null,\"wearTarget\":null,\"sisterNo\":null,\"toolEdgeNo\":null,\"toolPosition\":null,\"toolRadius\":null,\"tl\":\"0\",\"doc\":\"\"}]\n";
                 }
 
-                CuttingTool cuttingTool = cuttingToolMapper.selectOne(Wraps.<CuttingTool>lbQ().eq(CuttingTool::getCuttingToolNo, cuttingToolNo).eq(CuttingTool::getDeviceId, resourceId));
-
-                machineCuttingTool.setMachineId(resourceId);
-                machineCuttingTool.setCuttingToolId(cuttingToolNo);
-                machineCuttingTool.setCuttingToolName(name);
-                if(null != cuttingTool){
-                    machineCuttingTool.setCuttingToolPicture(cuttingTool.getCuttingToolPicture());
-                    machineCuttingTool.setCuttingToolInstallPicture(cuttingTool.getCuttingToolInstallPicture());
-                }
-                machineCuttingTool.setCuttingToolPosition(position);
-                String cuttingToolType = tool.getString("monitorType");
-                machineCuttingTool.setCuttingToolType(cuttingToolType);
-                machineCuttingTool.setEarlyWarnning(tool.getString("targetLife"));
-                //machineCuttingTool.setUseageCount(tool.getString("workPiece"));
-                machineCuttingTool.setSurplusCount(tool.getString("warnLife"));
-                //machineCuttingTool.setSisterCuttingToolId(tool.getString("sisterNo"));
-                //machineCuttingTool.setKnifeEdgeNumber(tool.getString("toolEdgeNo"));
-                //machineCuttingTool.setCuttingToolRadius(tool.getString("toolRadius"));
-                String tl = tool.getString("tl");
-                machineCuttingTool.setTl(tl);
-                String doc = tool.getString("doc");
-                machineCuttingTool.setDoc(doc);
-                String rd = tool.getString("rd");
-                machineCuttingTool.setRd(rd);
-
-                if(Objects.isNull(machineCuttingTool.getId())){
-                    baseMapper.insert(machineCuttingTool);
-                }else {
-                    baseMapper.updateById(machineCuttingTool);
+                log.info("设备" + productionresource.getName() + "同步刀具返回{},请求参数{}", synMachineCuttingTolls, jsonObject.toString());
+                JSONArray upResult = JSONArray.parseArray(synMachineCuttingTolls);
+                productionresource.setToolSynTime(DateUtil.formatTime(Calendar.getInstance().getTime()));
+                productionresource.setToolNum(upResult.size());
+                productionresourceviewMapper.updateById(productionresource);
+
+                // 查询出来现在表里的数据,比对修改,多余的删除
+                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));
+
+                    machineCuttingTool.setMachineId(resourceId);
+                    machineCuttingTool.setCuttingToolId(cuttingToolNo);
+                    machineCuttingTool.setCuttingToolName(name);
+                    if (null != cuttingTool) {
+                        cuttingTool.setDeviceId(resourceId);
+                        cuttingTool.setCutterNo(Double.parseDouble(cuttingToolNo));
+                        cuttingToolMapper.updateById(cuttingTool);
+
+                        machineCuttingTool.setCuttingToolPicture(cuttingTool.getCuttingToolPicture());
+                        machineCuttingTool.setCuttingToolInstallPicture(cuttingTool.getCuttingToolInstallPicture());
+                    }
+                    machineCuttingTool.setCuttingToolPosition(position);
+                    String cuttingToolType = tool.getString("monitorType");
+                    machineCuttingTool.setCuttingToolType(cuttingToolType);
+                    machineCuttingTool.setEarlyWarnning(tool.getString("targetLife"));
+                    //machineCuttingTool.setUseageCount(tool.getString("workPiece"));
+                    machineCuttingTool.setSurplusCount(tool.getString("warnLife"));
+                    //machineCuttingTool.setSisterCuttingToolId(tool.getString("sisterNo"));
+                    //machineCuttingTool.setKnifeEdgeNumber(tool.getString("toolEdgeNo"));
+                    //machineCuttingTool.setCuttingToolRadius(tool.getString("toolRadius"));
+                    String tl = tool.getString("tl");
+                    machineCuttingTool.setTl(tl);
+                    String doc = tool.getString("doc");
+                    machineCuttingTool.setDoc(doc);
+                    String rd = tool.getString("rd");
+                    machineCuttingTool.setRd(rd);
+
+                    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);
+                    }
                 }
-                //刀具报警 调用天轨 目标去刀具上下料站
-                if(!map.containsKey(resourceId) && (doc.equals("FDJ") || doc.equals("HD"))){
-                    map.put(resourceId, machineCuttingTool);
-                }
-            }
 
-            // 判断collect是否还有数据,如果有进行删除,说明机床已经没有这些数据
-            if(!collect.isEmpty()){
-                List<Long> collect1 = collect.values()
-                        .stream()
-                        .flatMap(Collection::stream)
-                        .map(MachineCuttingTool::getId)
-                        .collect(Collectors.toList());
-                baseMapper.deleteBatchIds(collect1);
+                // 判断collect是否还有数据,如果有进行删除,说明机床已经没有这些数据
+                if (!collect.isEmpty()) {
+                    List<Long> collect1 = collect.values()
+                            .stream()
+                            .flatMap(Collection::stream)
+                            .map(MachineCuttingTool::getId)
+                            .collect(Collectors.toList());
+                    baseMapper.deleteBatchIds(collect1);
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+                msg +="设备采集异常:"+resourceId+e.getMessage();
             }
-
         }
         dataList = new ArrayList<MachineCuttingTool>(map.values());
         return dataList;

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

@@ -101,9 +101,9 @@ public class CuttingTool extends Entity<Long> {
     @TableField(value = "tool_set_to_check_parameter", condition = LIKE)
     @Excel(name = "刀具组刀参数合理范围,多个需求用;分开")
     private String toolSetToCheckParameter;
-    @ApiModelProperty(value = "实时变动,安装到机床的刀号")
+    @ApiModelProperty(value = "实时变动,安装到机床的刀号")
     @TableField(value = "cutter_no", condition = LIKE)
-    @Excel(name = "实时变动,安装到机床的刀号")
+    @Excel(name = "实时变动,安装到机床的刀号")
     private double cutterNo;
 
     @ApiModelProperty(value = "设备ID")