|
@@ -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;
|