From 22ff161288e5387bbc3cf234c2991eb31f025cb9 Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Wed, 30 Nov 2022 12:51:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mes/hd/logPath_IS_UNDEFINED/2022-10-17.0.log | 0 mes/hd/logPath_IS_UNDEFINED/2022-10-21.0.log | 0 .../pdm/service/WorkProcedureService.java | 2 +- .../impl/WorkProcedureServiceImpl.java | 2 + .../wms/ext/acs/rest/WmsToAcsController.java | 8 + .../wms/ext/acs/service/WmsToAcsService.java | 7 + .../acs/service/impl/AcsToWmsServiceImpl.java | 7 +- .../acs/service/impl/WmsToAcsServiceImpl.java | 6 + .../impl/ManualProductServiceImpl.java | 121 ++ .../mps/rest/ProduceshiftorderController.java | 35 + .../mps/service/ProduceshiftorderService.java | 24 + .../mps/service/dto/ProduceshiftorderDto.java | 3 + .../impl/ProduceshiftorderServiceImpl.java | 435 +++++-- .../org/nl/wms/mps/wql/MPS_PRODUCEDURE001.wql | 39 +- .../org/nl/wms/pdm/rest/DeviceController.java | 8 + .../org/nl/wms/pdm/service/DeviceService.java | 2 + .../pdm/service/impl/DeviceServiceImpl.java | 6 + .../src/main/java/org/nl/wms/pdm/wql/pdm.xls | Bin 254464 -> 256000 bytes .../src/main/java/org/nl/wms/sch/AcsUtil.java | 6 +- .../main/resources/config/application-dev.yml | 4 +- .../resources/config/application-prod.yml | 14 +- .../src/main/resources/config/application.yml | 2 +- .../src/api/wms/basedata/pdm/workProcedure.js | 1 + mes/qd/src/api/wms/mps/produceshiftorder.js | 33 +- mes/qd/src/api/wms/pdm/device.js | 9 +- .../src/views/wms/mps/produce/AddDialog.vue | 2 +- .../wms/mps/produce/ReplaceDeviceDialog.vue | 183 +++ .../views/wms/mps/produce/UploadDialog.vue | 116 ++ .../src/views/wms/mps/produce/bigScreen.vue | 49 +- mes/qd/src/views/wms/mps/produce/index.vue | 66 +- wcs/hd/logPath_IS_UNDEFINED/2022-10-21.0.log | 0 wcs/hd/nladmin-system/pom.xml | 26 + .../acs/agv/server/impl/AgvServiceImpl.java | 88 +- .../device/device_driver/DriverTypeEnum.java | 4 +- .../agv/ndcone/AgvNdcOneDeviceDriver.java | 61 +- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 63 +- .../HailiangAutoCacheLineDeviceDriver.java | 77 +- .../HailiangCleaningFeedingLineDriver.java | 39 +- .../HailiangCleaningMachineDeviceDriver.java | 64 +- ...ningMachineStorageStationDeviceDriver.java | 40 +- .../HailiangElevatorWiringDeviceDriver.java | 20 +- .../HailiangEngravingCacheDeviceDriver.java | 34 +- .../HailiangEngravingMachineDeviceDriver.java | 264 +++-- .../HailiangFoldingDiscSmartDeviceDriver.java | 24 +- .../HailiangPackerStationDeviceDriver.java | 219 ++-- .../HailiangPaintLineDeviceDriver.java | 24 +- .../HailiangSmartplcTestDeviceDriver.java | 20 +- .../HailiangSpecialDeviceDriver.java | 291 ++--- ...iliangSpecialEmptyStationDeviceDriver.java | 49 +- ...ailiangSpecialFullStationDeviceDriver.java | 90 +- ...ailiangSpecialPickStationDeviceDriver.java | 36 +- ...ailiangSpecialPourStationDeviceDriver.java | 67 +- .../HailiangStackingStationDefination.java | 61 + .../HailiangStackingStationDriver.java | 436 +++++++ .../ItemProtocol.java | 228 ++++ ...HailiangThreestationSmartDeviceDriver.java | 39 +- ...HailiangHailiangxjplcTestDeviceDriver.java | 15 +- .../StandardOrdinarySiteDeviceDriver.java | 34 +- .../acs/ext/wms/rest/WmsToAcsController.java | 7 + .../acs/ext/wms/service/WmsToAcsService.java | 7 + .../wms/service/impl/AcsToWmsServiceImpl.java | 1040 +++++++++-------- .../wms/service/impl/WmsToAcsServiceImpl.java | 122 +- .../org/nl/acs/log/rest/LogsController.java | 42 - .../main/java/org/nl/acs/log/service/1.txt | 0 .../log/service/DeviceExecuteLogService.java | 27 + .../org/nl/acs/log/service/LogServer.java | 52 - .../nl/acs/log/service/dto/DeviceLogDto.java | 24 - .../org/nl/acs/log/service/dto/LogDto.java | 56 - .../impl/DeviceExecuteLogServiceImpl.java | 40 + .../acs/log/service/impl/LogServerImpl.java | 168 --- .../service/dto/ProduceshiftorderDto.java | 6 + .../impl/ProduceshiftorderServiceImpl.java | 46 +- .../task/service/impl/TaskServiceImpl.java | 53 +- .../java/org/nl/annotation/RateLimiter.java | 39 + .../java/org/nl/aspect/RateLimiterAspect.java | 55 + .../org/nl/modules/log/LogMarkerTypeEnum.java | 33 - .../org/nl/modules/log/LogMarkerUtil.java | 9 - .../nl/modules/log/MongoDBAppenderBase.java | 59 - .../modules/log/rest/RootLogController.java | 55 - .../modules/log/service/RootLogService.java | 36 - .../log/service/impl/RootLogServiceImpl.java | 128 -- .../nl/modules/loki/rest/LokiController.java | 46 + .../nl/modules/loki/service/LokiService.java | 30 + .../loki/service/impl/LokiServiceImpl.java | 81 ++ .../modules/quartz/task/AutoCleanUpLogs.java | 40 - .../quartz/task/AutoCreateAGVOneInst.java | 3 - .../quartz/task/AutoCreateAGVTwoInst.java | 8 +- .../nl/modules/quartz/task/CleanUpThread.java | 40 - .../quartz/task/NdcAutoReconnection.java | 2 +- .../main/resources/config/application-dev.yml | 12 +- .../resources/config/application-prod.yml | 3 + .../src/main/resources/config/application.yml | 2 +- .../src/main/resources/log/AcsToErp.xml | 27 +- .../src/main/resources/log/AcsToWms.xml | 25 +- .../resources/log/AgvFeedbackServiceImpl.xml | 25 +- .../main/resources/log/AgvLeaveServlet.xml | 25 +- .../src/main/resources/log/AutoCreateInst.xml | 27 +- .../log/NDCSocketConnectionAutoRun.xml | 25 +- .../main/resources/log/QueryAgvTaskStatus.xml | 25 +- .../resources/log/QueryXZAgvTaskStatus.xml | 28 +- .../src/main/resources/log/WmsToAcs.xml | 46 +- .../src/main/resources/logback-spring.xml | 137 ++- .../src/test/java/org/nl/Test3.java | 1 - wcs/qd/package.json | 5 +- wcs/qd/src/api/monitor/loki.js | 26 + wcs/qd/src/views/acs/device/config.vue | 3 +- .../hailiang_stacking_station.vue | 423 +++++++ wcs/qd/src/views/acs/order/index.vue | 16 +- wcs/qd/src/views/monitor/logback/index.vue | 458 ++++++++ 109 files changed, 4922 insertions(+), 2374 deletions(-) create mode 100644 mes/hd/logPath_IS_UNDEFINED/2022-10-17.0.log create mode 100644 mes/hd/logPath_IS_UNDEFINED/2022-10-21.0.log create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/ManualProductServiceImpl.java create mode 100644 mes/qd/src/views/wms/mps/produce/ReplaceDeviceDialog.vue create mode 100644 mes/qd/src/views/wms/mps/produce/UploadDialog.vue create mode 100644 wcs/hd/logPath_IS_UNDEFINED/2022-10-21.0.log create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDefination.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/rest/LogsController.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/1.txt create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/DeviceExecuteLogService.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/LogServer.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/DeviceLogDto.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/LogDto.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/DeviceExecuteLogServiceImpl.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/LogServerImpl.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/annotation/RateLimiter.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/aspect/RateLimiterAspect.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerTypeEnum.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerUtil.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/rest/RootLogController.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/RootLogService.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/impl/RootLogServiceImpl.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java create mode 100644 wcs/qd/src/api/monitor/loki.js create mode 100644 wcs/qd/src/views/acs/device/driver/hailiang_one/hailiang_stacking_station.vue create mode 100644 wcs/qd/src/views/monitor/logback/index.vue diff --git a/mes/hd/logPath_IS_UNDEFINED/2022-10-17.0.log b/mes/hd/logPath_IS_UNDEFINED/2022-10-17.0.log new file mode 100644 index 00000000..e69de29b diff --git a/mes/hd/logPath_IS_UNDEFINED/2022-10-21.0.log b/mes/hd/logPath_IS_UNDEFINED/2022-10-21.0.log new file mode 100644 index 00000000..e69de29b diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/WorkProcedureService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/WorkProcedureService.java index 980caf5a..202ab059 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/WorkProcedureService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/WorkProcedureService.java @@ -80,7 +80,7 @@ public interface WorkProcedureService { JSONArray downSelect(); /** * 查询所有数据不分页 - * @param whereJson 条件参数 + * @param * @return List */ List queryWorkprocedure(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WorkProcedureServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WorkProcedureServiceImpl.java index a05ee95c..4cac785a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WorkProcedureServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/pdm/service/impl/WorkProcedureServiceImpl.java @@ -17,6 +17,7 @@ import org.nl.utils.SecurityUtils; import org.nl.wms.basedata.pdm.service.WorkProcedureService; import org.nl.wms.basedata.pdm.service.dto.WorkProcedureDto; import org.nl.wms.st.out.service.dto.WorkprocedureDto; +import org.nl.wql.WQL; import org.nl.wql.core.bean.ResultBean; import org.nl.wql.core.bean.WQLObject; import org.nl.wql.util.WqlUtil; @@ -155,6 +156,7 @@ public class WorkProcedureServiceImpl implements WorkProcedureService { JSONArray resultJSONArray = workProcedureTab.query("is_delete = '0' and is_used ='1'", "workprocedure_code").getResultJSONArray(0); return resultJSONArray; } + @Override public List queryWorkprocedure() { WQLObject wo = WQLObject.getWQLObject("pdm_bi_workprocedure"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java index eec803cd..775b0643 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java @@ -72,5 +72,13 @@ public class WmsToAcsController { return new ResponseEntity<>(wmsToAcsService.orderStatusUpdate(arr), HttpStatus.OK); } + @PostMapping("/replaceDevice") + @Log("更换工单设备") + @ApiOperation("更换工单设备") + public ResponseEntity replaceDevice(@RequestBody Map whereJson) { + JSONArray arr = JSONArray.parseArray(JSON.toJSONString(whereJson.get("data"))); + return new ResponseEntity<>(wmsToAcsService.replaceDevice(arr), HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java index 0b34d752..c1706a72 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java @@ -49,4 +49,11 @@ public interface WmsToAcsService { * @return */ Map orderStatusUpdate(JSONArray arr); + + /** + * 更换工单设备 + * @param arr + * @return + */ + Map replaceDevice(JSONArray arr); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 01d760ba..d29890e6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -222,8 +222,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String order_code = param.getString("order"); String real_qty = param.getString("real_qty"); WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); + JSONObject jsonObject = wo.query("produceorder_code = '" + order_code + "'").uniqueResult(0); + String report_qty = jsonObject.getString("report_qty"); + int i = Integer.parseInt(report_qty); + int j = Integer.parseInt(real_qty); + int k = i + j; JSONObject map = new JSONObject(); - map.put("real_qty", real_qty); + map.put("real_qty", k); wo.update(map, "produceorder_code = '" + order_code + "' and order_status != '04'"); } catch (Exception e){ result.put("status", 400); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index c602b0af..0650cf29 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -48,4 +48,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return AcsUtil.notifyAcs(api, arr); } + @Override + public Map replaceDevice(JSONArray arr) { + String api = "api/wms/replaceDevice"; + return AcsUtil.notifyAcs(api, arr); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/ManualProductServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/ManualProductServiceImpl.java new file mode 100644 index 00000000..ba1d9b04 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/bigScreen/service/impl/ManualProductServiceImpl.java @@ -0,0 +1,121 @@ +package org.nl.wms.ext.bigScreen.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.ext.bigScreen.service.ProductService; +import org.nl.wql.WQL; + +import java.text.DecimalFormat; +import java.util.HashMap; +import java.util.Map; + +/** + * @author: geng by + * @createDate: 2022/10/24 + */ +public class ManualProductServiceImpl implements ProductService { + + //今日计划量 + private Integer todayWTPlan = 0; + private Integer todayZHPlan = 0; + private Integer todayCPPlan = 0; + //月计划量 + private Integer monWTPlan = 0; + private Integer monZHPlan = 0; + private Integer monCPPlan = 0; + //今日完成量 + private Integer todayWTFinish = 0; + private Integer todayZHFinish = 0; + private Integer todayCPFinish = 0; + //月完成量 + private Integer monWTFinish = 0; + private Integer monZHFinish = 0; + private Integer monCPFinish = 0; + + + @Override + public Map planReached(Map param) { + DecimalFormat df = new DecimalFormat("0.00"); + todayWTFinish = todayWTFinish + ((todayWTPlan / 12 / 60 / 60) * 5); + todayZHFinish = todayZHFinish + ((todayZHPlan / 12 / 60 / 60) * 5); + todayCPFinish = todayCPFinish + ((todayCPPlan / 12 / 60 / 60) * 5); + //计算当天的计划达成 + //01-弯头工段、02-综合工段、03-成品工段 + JSONObject jo1 = new JSONObject(); + jo1.put("real_qty",todayWTFinish); + jo1.put("plan_qty",todayWTPlan); + jo1.put("finish_rate",df.format((float)(todayWTFinish / todayWTPlan))); + JSONObject jo2 = new JSONObject(); + jo2.put("real_qty",todayZHFinish); + jo2.put("plan_qty",todayZHPlan); + jo2.put("finish_rate",df.format((float)(todayZHFinish / todayZHPlan))); + JSONObject jo3 = new JSONObject(); + jo3.put("real_qty",todayCPFinish); + jo3.put("plan_qty",todayCPPlan); + jo3.put("finish_rate",df.format((float)(todayCPFinish / todayCPPlan))); + JSONObject dayResult = new JSONObject(); + dayResult.put("jo1", jo1); + dayResult.put("jo2", jo2); + dayResult.put("jo3", jo3); + + //计算一个月的计划达成 + JSONObject monthResult = new JSONObject(); + JSONObject joo1 = new JSONObject(); + joo1.put("real_qty",monWTFinish); + joo1.put("plan_qty",monWTPlan); + joo1.put("finish_rate",df.format((float)((monWTFinish + todayWTFinish) / monWTPlan))); + JSONObject joo2 = new JSONObject(); + joo2.put("real_qty",monZHFinish); + joo2.put("plan_qty",monZHPlan); + joo2.put("finish_rate",df.format((float)((monZHFinish + todayZHFinish) / monZHPlan))); + JSONObject joo3 = new JSONObject(); + joo3.put("real_qty",monCPFinish); + joo3.put("plan_qty",monCPPlan); + joo3.put("finish_rate",df.format((float)((monCPFinish + todayCPFinish) / monCPPlan))); + + monthResult.put("joo1", joo1); + monthResult.put("joo2", joo2); + monthResult.put("joo3", joo3); + JSONObject returnjo = new JSONObject(); + returnjo.put("code", "1"); + returnjo.put("desc", "操作成功!"); + returnjo.put("dayResult", dayResult); + returnjo.put("monthResult", monthResult); + return returnjo; + } + + @Override + public Map productSchedule(Map param) { + return null; + } + + @Override + public Map output(Map param) { + return null; + } + + @Override + public Map worksectionHarvest(Map param) { + return null; + } + + @Override + public Map topHarvest(Map param) { + return null; + } + + @Override + public Map monthHarvest(Map param) { + return null; + } + + @Override + public Map unfinishOrder(Map param) { + return null; + } + + @Override + public Map monthOrder(Map param) { + return null; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java index 95863ed3..8b7b1d4b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceshiftorderController.java @@ -1,6 +1,8 @@ package org.nl.wms.mps.rest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -14,7 +16,9 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -154,4 +158,35 @@ public class ProduceshiftorderController { return new ResponseEntity<>(produceshiftorderService.getDtl(param), HttpStatus.OK); } + @PostMapping("/excelImport") + @Log("excel导入") + @ApiOperation("excel导入") + public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request) { + produceshiftorderService.excelImport(file, request); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getNotWorkDeviceByWorkproceduceId") + @Log("根据工序查询没有工单的设备") + @ApiOperation("根据工序查询没有工单的设备") + //@PreAuthorize("@el.check('WorkProcedure:add')") + public ResponseEntity getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.getNotWorkDeviceByWorkproceduceId(param),HttpStatus.CREATED); + } + + @PostMapping("/replaceDevice") + @Log("更换工单设备") + @ApiOperation("更换工单设备") + public ResponseEntity replaceDevice(@RequestBody JSONObject param) { + produceshiftorderService.replaceDevice(param); + return new ResponseEntity<>( HttpStatus.OK); + } + + @GetMapping("/getUser") + @Log("查询操作人员") + @ApiOperation("查询操作人员") + public ResponseEntity getUser() { + + return new ResponseEntity<>(produceshiftorderService.getUser(), HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java index ab70e94d..3f0eeca2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceshiftorderService.java @@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.wms.mps.service.dto.ProduceshiftorderDto; import org.springframework.data.domain.Pageable; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -121,4 +123,26 @@ public interface ProduceshiftorderService { * @return */ JSONArray getDtl(JSONObject param); + + /** + * excel工单批量导入 + * @param file + * @param request + */ + void excelImport(MultipartFile file, HttpServletRequest request); + + /** + * 更换设备时根据工单所属工序 查询所有工单中没有生产的设备 + * @param param + * @return + */ + JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param); + + /** + * 更换设备 + * @param param + */ + void replaceDevice(JSONObject param); + + JSONArray getUser(); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceshiftorderDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceshiftorderDto.java index 06f65c9c..6afed02f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceshiftorderDto.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceshiftorderDto.java @@ -103,5 +103,8 @@ public class ProduceshiftorderDto implements Serializable { private Long device_id; private Long sale_id; + /** 操作人员 */ + private Long jockey_id; + private Integer orderNum; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java index eba3d3bc..1864947a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java @@ -1,11 +1,15 @@ package org.nl.wms.mps.service.impl; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -14,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.exception.BadRequestException; import org.nl.modules.security.service.dto.JwtUserDto; import org.nl.modules.system.service.UserService; +import org.nl.modules.system.service.dto.RoleSmallDto; import org.nl.modules.system.service.dto.UserDto; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SecurityUtils; @@ -28,9 +33,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.io.InputStream; import java.util.List; import java.util.Map; +import java.util.Set; /** * @author qinx @@ -91,22 +100,22 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { } WQLObject wo = WQLObject.getWQLObject("mps_bd_macoperaterecord"); JSONObject jsonObject = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ShiftOrder.update_time desc"); - JSONArray jsonArray = jsonObject.getJSONArray("content"); - for (int i = 0; i < jsonArray.size(); i++) { - JSONObject arrayJSONObject = jsonArray.getJSONObject(i); - String produceorder_id = arrayJSONObject.getString("produceorder_id"); - JSONArray resultJSONArray = wo.query("produceorder_id = '" + produceorder_id + "'", "operatetime_start desc").getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(resultJSONArray)){ - JSONObject resultJSONArrayJSONObject = resultJSONArray.getJSONObject(0); - String jockey_id = resultJSONArrayJSONObject.getString("jockey_id"); - UserDto user = userService.findById(Long.valueOf(jockey_id)); - String nick_name = ""; - if (ObjectUtil.isNotEmpty(user)){ - nick_name = user.getNickName(); - } - arrayJSONObject.put("jockey_name",nick_name); - } - } +// JSONArray jsonArray = jsonObject.getJSONArray("content"); +// for (int i = 0; i < jsonArray.size(); i++) { +// JSONObject arrayJSONObject = jsonArray.getJSONObject(i); +// String produceorder_id = arrayJSONObject.getString("produceorder_id"); +// JSONArray resultJSONArray = wo.query("produceorder_id = '" + produceorder_id + "'", "operatetime_start desc").getResultJSONArray(0); +// if (ObjectUtil.isNotEmpty(resultJSONArray)){ +// JSONObject resultJSONArrayJSONObject = resultJSONArray.getJSONObject(0); +// String jockey_id = resultJSONArrayJSONObject.getString("jockey_id"); +// UserDto user = userService.findById(Long.valueOf(jockey_id)); +// String nick_name = ""; +// if (ObjectUtil.isNotEmpty(user)){ +// nick_name = user.getNickName(); +// } +// arrayJSONObject.put("jockey_name",nick_name); +// } +// } return jsonObject; } @@ -131,7 +140,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { @Override public ProduceshiftorderDto findByCode(String code) { WQLObject wo = WQLObject.getWQLObject("mps_bd_produceshiftorder"); - JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); + JSONObject json = wo.query("produceorder_code ='" + code + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(json)) { return json.toJavaObject(ProduceshiftorderDto.class); } @@ -149,7 +158,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { JwtUserDto currentUser = (JwtUserDto) SecurityUtils.getCurrentUser(); Long deptId = currentUser.getDeptId(); String newCode = CodeUtil.getNewCode("PDM_SHIFTORDER"); - dto.setProduce_date(dto.getProduce_date().substring(0,10)); + dto.setProduce_date(dto.getProduce_date().substring(0, 10)); dto.setProduceorder_id(IdUtil.getSnowflake(1, 1).nextId()); dto.setProduceorder_code(newCode); dto.setProducedeviceorder_code(newCode); @@ -236,30 +245,41 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { public JSONArray getTable(JSONObject param) { //获取当前登录用户下的所有设备 Long currentUserId = SecurityUtils.getCurrentUserId(); - JSONObject map1 = new JSONObject(); - map1.put("flag", "2"); - map1.put("jockey_id", currentUserId + ""); - JSONArray devices = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map1).process().getResultJSONArray(0); - //根据当前用户下的所有设备查询所属工序 +// JSONObject map1 = new JSONObject(); +// map1.put("flag", "2"); +// map1.put("jockey_id", currentUserId + ""); +// JSONArray devices = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map1).process().getResultJSONArray(0); +// //根据当前用户下的所有设备查询所属工序 +// JSONObject map = new JSONObject(); +// map.put("flag", "3"); +// StringBuilder sb = new StringBuilder(); +// if (ObjectUtil.isNotEmpty(devices)) { +// sb.append("("); +// for (int i = 0; i < devices.size(); i++) { +// JSONObject device = devices.getJSONObject(i); +// String workprocedure_id = device.getString("workprocedure_id"); +// if (devices.size() - 1 == i) { +// sb.append("'" + workprocedure_id + "')"); +// } +// if (devices.size() - 1 != i) { +// sb.append("'" + workprocedure_id + "',"); +// } +// } +// map.put("workprocedure_ids", sb.toString()); +// } else { +// map.put("workprocedure_ids", "('-1')"); +// } + UserDto userDto = userService.findById(currentUserId); +// Set roles = userDto.getRoles(); +// boolean b = roles.contains(""); + Boolean isAdmin = userDto.getIsAdmin(); + String jockey_id = String.valueOf(currentUserId); + if (isAdmin) { + jockey_id = ""; + } JSONObject map = new JSONObject(); map.put("flag", "3"); - StringBuilder sb = new StringBuilder(); - if (ObjectUtil.isNotEmpty(devices)) { - sb.append("("); - for (int i = 0; i < devices.size(); i++) { - JSONObject device = devices.getJSONObject(i); - String workprocedure_id = device.getString("workprocedure_id"); - if (devices.size() - 1 == i) { - sb.append("'" + workprocedure_id + "')"); - } - if (devices.size() - 1 != i) { - sb.append("'" + workprocedure_id + "',"); - } - } - map.put("workprocedure_ids", sb.toString()); - } else { - map.put("workprocedure_ids", "('-1')"); - } + map.put("jockey_id", jockey_id); //根据当前用户的设备所属的工序查询属于自己的工单表 JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); return resultJSONArray; @@ -268,15 +288,19 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { @Override @Transactional(rollbackFor = Exception.class) public void openStart(JSONObject param) { + WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getNickName(); String now = DateUtil.now(); - String device_id = param.getString("device_id"); - WQLObject wo_device = WQLObject.getWQLObject("pdm_bi_device"); - JSONObject device = wo_device.query("device_id = '" + device_id + "'").uniqueResult(0); - String device_code = device.getString("device_code"); + //获取前台传入的开工的工单信息 JSONObject row = param.getJSONObject("row"); + String device_id = row.getString("device_id"); String produceorder_id = row.getString("produceorder_id"); + + JSONObject result = wo.query("device_id = '" + device_id + "' and (order_status = '02' or order_status = '03') and produceorder_id != '" + produceorder_id + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(result)) { + throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); + } String workprocedure_id = row.getString("workprocedure_id"); String produceorder_code = row.getString("produceorder_code"); String material_id = row.getString("material_id"); @@ -286,17 +310,19 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { String is_needmove = row.getString("is_needmove"); String plan_qty = row.getString("plan_qty"); String order_status = row.getString("order_status"); + //根据设备id获取设备编码 传给acs用 + WQLObject wo_device = WQLObject.getWQLObject("pdm_bi_device"); + JSONObject device = wo_device.query("device_id = '" + device_id + "'").uniqueResult(0); + String device_code = device.getString("device_code"); //开工时修改生产班次工单表 生产设备、以及工单状态 - WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); JSONObject jsonObject1 = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); JSONObject produceorderMap = new JSONObject(); produceorderMap.put("produceorder_id", produceorder_id); - produceorderMap.put("device_id", device_id); produceorderMap.put("order_status", "02"); produceorderMap.put("update_optid", currentUserId); produceorderMap.put("update_optname", nickName); produceorderMap.put("update_time", now); - if (order_status.equals("01")){ + if (order_status.equals("01")) { produceorderMap.put("realproducestart_date", now); } wo.update(produceorderMap); @@ -316,20 +342,24 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { //同时向acs系统下发工单 问题是现在一个工单分多次执行,现在是每开工一次,向acs发送一次工单 //acs那边就会新增多个工单 //如果是第一次开工,就向acs下发工单 - // TODO JSONArray array = new JSONArray(); JSONObject acsObj = new JSONObject(); - acsObj.put("ext_order_id",produceorder_id); - acsObj.put("is_needmove",is_needmove); - acsObj.put("order_code",produceorder_code); - acsObj.put("qty",plan_qty); - acsObj.put("material_uuid",material_id); - acsObj.put("material_code",material_code); - acsObj.put("material_name",material_name); - acsObj.put("material_spec",material_spec); - acsObj.put("device_code",device_code); + acsObj.put("ext_order_id", produceorder_id); + acsObj.put("is_needmove", is_needmove); + acsObj.put("order_code", produceorder_code); + acsObj.put("qty", plan_qty); + acsObj.put("material_uuid", material_id); + acsObj.put("material_code", material_code); + acsObj.put("material_name", material_name); + acsObj.put("material_spec", material_spec); + acsObj.put("device_code", device_code); array.add(acsObj); - wmsToAcsService.order(array); + Map resp = wmsToAcsService.order(array); + String status = String.valueOf(resp.get("status")); + String message = (String) resp.get("message"); + if (!status.equals("200")) { + throw new BadRequestException(message); + } } else { Integer sum = 0; //如果生产过了,就获取记录表中的报工数量,用计划数量减去生产过的报工数量的和,为这次的生产数量 @@ -345,10 +375,15 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { // TODO JSONArray array = new JSONArray(); JSONObject map = new JSONObject(); - map.put("ext_order_id",produceorder_id); - map.put("type","2"); + map.put("ext_order_id", produceorder_id); + map.put("type", "2"); array.add(map); - wmsToAcsService.orderStatusUpdate(array); + Map resp = wmsToAcsService.orderStatusUpdate(array); + String status = String.valueOf(resp.get("status")); + String message = (String) resp.get("message"); + if (!status.equals("200")) { + throw new BadRequestException(message); + } } recordMap.put("operatetime_start", now); recordMap.put("jockey_id", currentUserId); @@ -368,12 +403,12 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); JSONObject jsonObject = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); JSONObject produceorderMap = new JSONObject(); - produceorderMap.put("produceorder_id",produceorder_id); - if (row.getString("report_qty").equals("0") || StrUtil.isEmpty(row.getString("report_qty"))){ - produceorderMap.put("report_qty",report_qty); - }else { + produceorderMap.put("produceorder_id", produceorder_id); + if (row.getString("report_qty").equals("0") || StrUtil.isEmpty(row.getString("report_qty"))) { + produceorderMap.put("report_qty", report_qty); + } else { Integer sum = Integer.parseInt(row.getString("report_qty")) + Integer.parseInt(report_qty); - produceorderMap.put("report_qty",sum); + produceorderMap.put("report_qty", sum); } produceorderMap.put("order_status", "03"); produceorderMap.put("update_optid", currentUserId); @@ -383,20 +418,20 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { //同时修改这条工单对应的记录表中最新的一条数据的报工数量 WQLObject wo_record = WQLObject.getWQLObject("MPS_BD_MacOperateRecord"); //获取最新的工单的对应记录信息 - JSONObject newRecord = wo_record.query("produceorder_id = '"+produceorder_id+"' and (operatetime_end is null or operatetime_end = '')").uniqueResult(0); - newRecord.put("report_qty",report_qty); - newRecord.put("finish_qty",jsonObject.getString("real_qty")); + JSONObject newRecord = wo_record.query("produceorder_id = '" + produceorder_id + "' and (operatetime_end is null or operatetime_end = '')").uniqueResult(0); + newRecord.put("report_qty", report_qty); + newRecord.put("finish_qty", jsonObject.getString("real_qty")); Integer finishproduct_qty = Integer.parseInt(jsonObject.getString("real_qty")) - Integer.parseInt(newRecord.getString("init_qty")); - newRecord.put("finishproduct_qty",finishproduct_qty); - newRecord.put("operatetime_end",now); + newRecord.put("finishproduct_qty", finishproduct_qty); + newRecord.put("operatetime_end", now); wo_record.update(newRecord); //wms向acs发送请求 工单暂停 // 报工的时候同时向acs发送工单暂停状态 // TODO JSONArray array = new JSONArray(); JSONObject map = new JSONObject(); - map.put("ext_order_id",produceorder_id); - map.put("type","1"); + map.put("ext_order_id", produceorder_id); + map.put("type", "1"); array.add(map); wmsToAcsService.orderStatusUpdate(array); } @@ -411,9 +446,10 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { //强制完成时修改工单状态 String produceorder_id = row.getString("produceorder_id"); WQLObject wo = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); + ProduceshiftorderDto produceshiftorderDto = this.findById(Long.parseLong(produceorder_id)); JSONObject produceorderMap = new JSONObject(); - produceorderMap.put("produceorder_id",produceorder_id); - produceorderMap.put("order_status","04"); + produceorderMap.put("produceorder_id", produceorder_id); + produceorderMap.put("order_status", "04"); produceorderMap.put("update_optid", currentUserId); produceorderMap.put("device_id", null); produceorderMap.put("update_optname", nickName); @@ -422,26 +458,29 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { wo.update(produceorderMap); JSONObject jsonObject = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); String real_qty = jsonObject.getString("real_qty"); - if (StrUtil.isEmpty(real_qty)){ + if (StrUtil.isEmpty(real_qty)) { real_qty = "0"; } //同时修改工单记录表中的期末数量及完成数量 WQLObject wo_record = WQLObject.getWQLObject("MPS_BD_MacOperateRecord"); JSONObject result = wo_record.query("produceorder_id = '" + produceorder_id + "' and (operatetime_end = '' or operatetime_end is null) ").uniqueResult(0); - if (ObjectUtil.isNotEmpty(result)){ - result.put("finish_qty",real_qty); - result.put("finishproduct_qty",real_qty); - result.put("operatetime_end",now); + if (ObjectUtil.isNotEmpty(result)) { + result.put("finish_qty", real_qty); + result.put("finishproduct_qty", real_qty); + result.put("operatetime_end", now); wo_record.update(result); } - //wms向acs发送请求 工单强制完成 + //工单开工以后需要向acs强制完成 wms向acs发送请求 工单强制完成 // TODO - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("ext_order_id",produceorder_id); - map.put("type","3"); - array.add(map); - wmsToAcsService.orderStatusUpdate(array); + String order_status = produceshiftorderDto.getOrder_status(); + if (!order_status.equals("00") && !order_status.equals("01")) { + JSONArray array = new JSONArray(); + JSONObject map = new JSONObject(); + map.put("ext_order_id", produceorder_id); + map.put("type", "3"); + array.add(map); + wmsToAcsService.orderStatusUpdate(array); + } } @Override @@ -451,11 +490,11 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { JSONObject jsonProduceShiftOrder = wo.query("produceorder_id = '" + produceorder_id + "'").uniqueResult(0); WQLObject wo_record = WQLObject.getWQLObject("MPS_BD_MacOperateRecord"); //获取最新的工单的对应记录信息 - JSONObject jsonObject = wo_record.query("produceorder_id = '"+produceorder_id+"' and (operatetime_end is null or operatetime_end = '')").uniqueResult(0); + JSONObject jsonObject = wo_record.query("produceorder_id = '" + produceorder_id + "' and (operatetime_end is null or operatetime_end = '')").uniqueResult(0); String finish_qty = jsonProduceShiftOrder.getString("real_qty"); - jsonObject.put("finish_qty",finish_qty); + jsonObject.put("finish_qty", finish_qty); Integer finishproduct_qty = Integer.parseInt(finish_qty) - Integer.parseInt(jsonObject.getString("init_qty")); - jsonObject.put("finishproduct_qty",finishproduct_qty); + jsonObject.put("finishproduct_qty", finishproduct_qty); return jsonObject; } @@ -469,10 +508,222 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { public JSONArray getDtl(JSONObject param) { final String produceorder_id = param.getString("produceorder_id"); JSONObject map = new JSONObject(); - map.put("flag","5"); - map.put("produceorder_id",produceorder_id); + map.put("flag", "5"); + map.put("produceorder_id", produceorder_id); JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); return resultJSONArray; } + @Override + @Transactional(rollbackFor = Exception.class) + public void excelImport(MultipartFile file, HttpServletRequest request) { + if (file.isEmpty()) { + throw new BadRequestException("文件为空,请添加数据后重新导入"); + } + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getNickName(); + String now = DateUtil.now(); + // 1.获取上传文件输入流 + InputStream inputStream = null; + try { + inputStream = file.getInputStream(); + } catch (Exception e) { + e.printStackTrace(); + } + //工单表 + WQLObject wo_order = WQLObject.getWQLObject("MPS_BD_ProduceShiftOrder"); + //物料表 + WQLObject wo_material = WQLObject.getWQLObject("md_me_materialbase"); + //设备表 + WQLObject wo_device = WQLObject.getWQLObject("pdm_bi_device"); + //工序表 + WQLObject wo_workprocedure = WQLObject.getWQLObject("pdm_bi_workprocedure"); + //人员表 + //WQLObject wo_user = WQLObject.getWQLObject("sys_user"); + + // 调用用 hutool 方法读取数据 默认调用第一个sheet + ExcelReader excelReader = ExcelUtil.getReader(inputStream); + // 从第二行开始获取数据 excelReader.read的结果是一个2纬的list,外层是行,内层是行对应的所有列 + List> read = excelReader.read(1, excelReader.getRowCount()); + // 循环获取的数据 + for (int i = 0; i < read.size(); i++) { + List list = read.get(i); + JSONObject param = new JSONObject(); + //按照列获取 + param.put("produceorder_id", IdUtil.getSnowflake(1, 1).nextId()); + param.put("produceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); + param.put("producedeviceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); + param.put("order_status", "00"); + param.put("order_type_scode", "01"); + + //物料 + String material_code = list.get(12).toString(); + JSONObject json_material = wo_material.query("is_delete = '0' and material_code = '" + material_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(json_material)) { + throw new BadRequestException("第'" + (i + 2) + "'行,物料编码不存在"); + } + param.put("material_id", json_material.getString("material_id")); + + //工序 + String workprocedure_code = list.get(13).toString(); + JSONObject jsonWorkprocedure = wo_workprocedure.query("is_delete = '0' and workprocedure_code = '" + workprocedure_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonWorkprocedure)) { + throw new BadRequestException("第'" + (i + 2) + "'行,工序编码不存在"); + } + String workprocedure_id = jsonWorkprocedure.getString("workprocedure_id"); + param.put("workprocedure_id", workprocedure_id); + + //设备 + String device_code = list.get(14).toString(); + JSONObject json_device = wo_device.query("is_delete = '0' and device_code = '" + device_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(json_device)) { + throw new BadRequestException("第'" + (i + 2) + "'行,设备编码不存在"); + } + if (!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { + throw new BadRequestException("第'" + (i + 2) + "'行,设备与所属工序不匹配"); + } + param.put("device_id", json_device.getString("device_id")); + + //单重 + param.put("material_weight", list.get(5).toString()); + param.put("plan_qty", list.get(7).toString()); + + //生产人员 + String username_code = list.get(15).toString(); + UserDto jsonUser = userService.findByName(username_code); + //JSONObject jsonUser = wo_user.query("is_delete = '0' and username = '" + username_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonUser)) { + throw new BadRequestException("第'" + (i + 2) + "'行,生产人员编码不存在"); + } + param.put("jockey_id", jsonUser.getId()); + + //生产日期 + String produce_date = list.get(16).toString(); + if (StrUtil.isEmpty(produce_date)) { + throw new BadRequestException("第'" + (i + 2) + "'行,生产日期不能为空"); + } + param.put("produce_date", produce_date); + + //班次类型 + String shift_type_scode = list.get(17).toString(); + String type_scode = "01"; + if (shift_type_scode.equals("夜班")) { + type_scode = "02"; + } + param.put("shift_type_scode", type_scode); + + //允许修改报工数量 + String is_canupdate_update = list.get(18).toString(); + String is_canupdate = "0"; + if (is_canupdate_update.equals("是")) { + is_canupdate = "1"; + } + param.put("is_canupdate_update", is_canupdate); + + //是否agv搬运 + String is_needmove = list.get(19).toString(); + String needmoce = "0"; + if (is_needmove.equals("是")) { + needmoce = "1"; + } + param.put("is_needmove", needmoce); + + String planproducestart_date = ""; + String planproduceend_date = ""; + if (type_scode.equals("01")) { + planproducestart_date = produce_date + " 07:30:00"; + planproduceend_date = produce_date + " 18:30:00"; + } else { + planproducestart_date = produce_date + " 18:30:00"; + DateTime dateTime = DateUtil.parse(produce_date, "yyyy-MM-dd"); + DateTime time = DateUtil.offset(dateTime, DateField.DAY_OF_MONTH, 1); + String format = DateUtil.format(time, "yyyy-MM-dd"); + planproduceend_date = format + " 07:30:00"; + } + param.put("planproducestart_date", planproducestart_date); + param.put("planproduceend_date", planproduceend_date); + param.put("create_id", currentUserId); + param.put("create_name", nickName); + param.put("create_time", now); + wo_order.insert(param); + } + } + + @Override + public JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param) { + final String workproceduce_id = param.getString("workproceduce_id"); + JSONObject map = new JSONObject(); + map.put("flag", "6"); + map.put("workproceduce_id", workproceduce_id); + JSONArray devices = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); + StringBuilder sb = new StringBuilder(); + if (ObjectUtil.isNotEmpty(devices)) { + sb.append("("); + for (int i = 0; i < devices.size(); i++) { + JSONObject device = devices.getJSONObject(i); + String device_id = device.getString("device_id"); + if (devices.size() - 1 == i) { + sb.append("'" + device_id + "')"); + } + if (devices.size() - 1 != i) { + sb.append("'" + device_id + "',"); + } + } + param.put("device_ids", sb.toString()); + } else { + param.put("device_ids", "('-1')"); + } + param.put("flag", "7"); + param.put("workprocedure_id", workproceduce_id); + JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(param).process().getResultJSONArray(0); + return resultJSONArray; + } + + @Override + @Transactional + public void replaceDevice(JSONObject param) { + String produceorder_code = param.getString("produceorder_code"); + String device_id = param.getString("device_id"); + String device_code = param.getString("device_code"); + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getNickName(); + String now = DateUtil.now(); + ProduceshiftorderDto produceshiftorderDto = this.findByCode(produceorder_code); + produceshiftorderDto.setDevice_id(Long.parseLong(device_id)); + produceshiftorderDto.setUpdate_optid(currentUserId); + produceshiftorderDto.setUpdate_optname(nickName); + produceshiftorderDto.setUpdate_time(now); + String order_status = produceshiftorderDto.getOrder_status(); + if (!order_status.equals("03") && !order_status.equals("01") && !order_status.equals("00")) { + JSONArray array = new JSONArray(); + JSONObject acsObj = new JSONObject(); + acsObj.put("order_code", produceorder_code); + acsObj.put("device_code", device_code); + array.add(acsObj); + Map resp = wmsToAcsService.replaceDevice(array); + String status = String.valueOf(resp.get("status")); + String message = (String) resp.get("message"); + if (!status.equals("200")) { + throw new BadRequestException(message); + } + } + this.update(produceshiftorderDto); + } + + @Override + public JSONArray getUser() { + List userDtos = userService.queryAll(null); + JSONArray re = new JSONArray(); + for (int i = 0; i < userDtos.size(); i++) { + UserDto userDto = userDtos.get(i); + String id = String.valueOf(userDto.getId()); + String nickName = userDto.getNickName(); + JSONObject map = new JSONObject(); + map.put("id", id); + map.put("nickName", nickName); + re.add(map); + } + return re; + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEDURE001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEDURE001.wql index bb37ba63..955d8e9e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEDURE001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEDURE001.wql @@ -28,6 +28,7 @@ 输入.product_series TYPEAS f_string 输入.workprocedure_ids TYPEAS f_string 输入.unFinish TYPEAS s_string + 输入.device_ids TYPEAS f_string [临时表] @@ -65,13 +66,15 @@ classstandard.class_id, classstandard.class_name, device.device_code, - device.device_name + device.device_name, + user.nick_name as jockey_name FROM MPS_BD_ProduceShiftOrder ShiftOrder left join pdm_bi_device device on ShiftOrder.device_id = device.device_id LEFT JOIN md_me_materialbase material ON material.material_id = ShiftOrder.material_id LEFT JOIN PDM_BI_WorkProcedure WorkProcedure ON WorkProcedure.workprocedure_id = ShiftOrder.workprocedure_id LEFT JOIN md_pb_classstandard classstandard ON classstandard.class_id = material.product_series + LEFT JOIN sys_user user ON user.user_id = ShiftOrder.jockey_id WHERE ShiftOrder.is_delete = '0' OPTION 输入.order_type_scode <> "" @@ -145,7 +148,9 @@ left join pdm_bi_device device on device.device_id = shiftOrder.device_id WHERE shiftOrder.is_delete = '0' and shiftOrder.order_status in ('01', '02', '03') - and shiftOrder.workprocedure_id in 输入.workprocedure_ids + OPTION 输入.jockey_id <> "" + ShiftOrder.jockey_id = 输入.jockey_id + ENDOPTION order by shiftOrder.update_time desc ENDSELECT @@ -186,3 +191,33 @@ ENDQUERY ENDIF + IF 输入.flag = "6" + QUERY + SELECT + shiftorder.device_id + from + mps_bd_produceshiftorder shiftorder + where + order_status <> '04' + and + shiftorder.workprocedure_id = '1535144427977314304' + and + (shiftorder.device_id <> null or shiftorder.device_id <> '') + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "7" + QUERY + SELECT + device.* + FROM + pdm_bi_device device + WHERE + device.is_delete = '0' + and device.workprocedure_id = 输入.workprocedure_id + and device.device_id not in 输入.device_ids + ENDSELECT + ENDQUERY + ENDIF + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/rest/DeviceController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/rest/DeviceController.java index b49c14bd..18c3c6c8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/rest/DeviceController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/rest/DeviceController.java @@ -108,4 +108,12 @@ public class DeviceController { return new ResponseEntity<>(HttpStatus.OK); } + @GetMapping("/queryById/{device_id}") + @Log("查询生产设备") + @ApiOperation("查询生产设备") + //@PreAuthorize("@el.check('device:list')") + public ResponseEntity queryById(@PathVariable("device_id") String device_id){ + return new ResponseEntity<>(deviceService.queryById(device_id),HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/DeviceService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/DeviceService.java index cde190bd..0526e5be 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/DeviceService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/DeviceService.java @@ -78,4 +78,6 @@ public interface DeviceService { Map getItemByDeviceId(JSONObject param); void copyAdd(JSONObject param); + + DeviceDto queryById(String device_id); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/DeviceServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/DeviceServiceImpl.java index 699334d7..948b3744 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/DeviceServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/DeviceServiceImpl.java @@ -273,4 +273,10 @@ public class DeviceServiceImpl implements DeviceService { } } + @Override + public DeviceDto queryById(String device_id) { + DeviceDto deviceDto = this.findById(Long.parseLong(device_id)); + return deviceDto; + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index 155ba657d8278aa9598995ae17b06deed396e1a2..ce79e1debdc0663d2b5c5b25357bb5c1929b8e5e 100644 GIT binary patch delta 39510 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�^Y|Fdf>c}cB#N;yKQJ^uUuRmnSp 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 E0Ly_oHvj+t delta 39019 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 W*(kcpE$>RkMpK*AEY*K3nf?#C7)WCP diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java index 3930d30d..89ca2a40 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java @@ -33,14 +33,16 @@ public class AcsUtil { .body(String.valueOf(list)) .execute().body(); result = JSONObject.parseObject(resultMsg); - + if (!String.valueOf(result.get("status")).equals("400")){ + result.put("status",200); + } } catch (Exception e) { String msg = e.getMessage(); //ConnectException: Connection refused: connect //网络不通 System.out.println(msg); result.put("status", HttpStatus.BAD_REQUEST); - result.put("message", "网络不通,操作失败!"); + result.put("message", msg); result.put("data", new JSONObject()); } //acs抛异常这里 diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml index bb6caeb9..1991217d 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -75,8 +75,8 @@ spring: #数据库索引 database: ${REDIS_DB:1} - host: ${REDIS_HOST:127.0.0.1} -# host: ${REDIS_HOST:localhost} + #host: ${REDIS_HOST:127.0.0.1} + host: ${REDIS_HOST:localhost} port: ${REDIS_PORT:6379} password: ${REDIS_PWD:} #连接超时时间 diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml b/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml index ee130584..7490b80b 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml @@ -8,16 +8,16 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false username: ${DB_USER:root} password: ${DB_PWD:123456} #password: ${DB_PWD:Root.123456} # 初始连接数 - initial-size: 5 + initial-size: 15 # 最小连接数 - min-idle: 15 + min-idle: 45 # 最大连接数 - max-active: 30 + max-active: 90 # 是否自动回收超时连接 remove-abandoned: true # 超时时间(以秒数为单位) @@ -57,14 +57,14 @@ spring: multi-statement-alagvslow: true data: mongodb: - host: 192.168.46.5 + host: 127.0.0.1 port: 27017 database: nlacs redis: #数据库索引 database: ${REDIS_DB:6} - host: ${REDIS_HOST:192.168.46.5} + host: ${REDIS_HOST:127.0.0.1} #host: ${REDIS_HOST:localhost} port: ${REDIS_PORT:6379} password: ${REDIS_PWD:} @@ -162,5 +162,5 @@ jetcache: maxIdle: 200 maxTotal: 1000 uri: - - redis://192.168.46.5:6379 + - redis://127.0.0.1:6379 diff --git a/mes/hd/nladmin-system/src/main/resources/config/application.yml b/mes/hd/nladmin-system/src/main/resources/config/application.yml index 334120a2..dcd1458c 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application.yml @@ -43,7 +43,7 @@ rsa: private_key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A== logging: file: - path: C:\logs\nlwms\ + path: E:\logs\nlwms\ demo: monitor: server-url: https://www.demo-monitor.com diff --git a/mes/qd/src/api/wms/basedata/pdm/workProcedure.js b/mes/qd/src/api/wms/basedata/pdm/workProcedure.js index 3cc498fc..bd745543 100644 --- a/mes/qd/src/api/wms/basedata/pdm/workProcedure.js +++ b/mes/qd/src/api/wms/basedata/pdm/workProcedure.js @@ -30,4 +30,5 @@ export function downSelect() { }) } + export default { add, edit, del, downSelect } diff --git a/mes/qd/src/api/wms/mps/produceshiftorder.js b/mes/qd/src/api/wms/mps/produceshiftorder.js index 76f7d6cf..5ce55907 100644 --- a/mes/qd/src/api/wms/mps/produceshiftorder.js +++ b/mes/qd/src/api/wms/mps/produceshiftorder.js @@ -104,4 +104,35 @@ export function getDtl(data) { }) } -export default { add, addRows, edit, del, submits, getDevice, getTable, openStart, saveReport, finish, getReportWork, forceFinish, getDtl } +export function excelImport(data) { + return request({ + url: 'api/produceshiftorder/excelImport', + method: 'post', + data + }) +} + +export function getNotWorkDeviceByWorkproceduceId(data) { + return request({ + url: 'api/produceshiftorder/getNotWorkDeviceByWorkproceduceId', + method: 'post', + data + }) +} + +export function replaceDevice(data) { + return request({ + url: 'api/produceshiftorder/replaceDevice', + method: 'post', + data + }) +} + +export function getUser() { + return request({ + url: 'api/produceshiftorder/getUser', + method: 'get' + }) +} + +export default { add, addRows, edit, del, submits, getDevice, getTable, openStart, saveReport, finish, getReportWork, forceFinish, getDtl, excelImport, getNotWorkDeviceByWorkproceduceId, replaceDevice, getUser } diff --git a/mes/qd/src/api/wms/pdm/device.js b/mes/qd/src/api/wms/pdm/device.js index fc9c05d8..f8181c31 100644 --- a/mes/qd/src/api/wms/pdm/device.js +++ b/mes/qd/src/api/wms/pdm/device.js @@ -63,4 +63,11 @@ export function copyAdd(data) { }) } -export default { add, edit, del, getWorkprocedure, getItemByDevice, savaDeviceItem, getItemByDeviceId, copyAdd } +export function queryById(device_id) { + return request({ + url: 'api/device/queryById/' + device_id, + method: 'get' + }) +} + +export default { add, edit, del, getWorkprocedure, getItemByDevice, savaDeviceItem, getItemByDeviceId, copyAdd, queryById } diff --git a/mes/qd/src/views/wms/mps/produce/AddDialog.vue b/mes/qd/src/views/wms/mps/produce/AddDialog.vue index db929409..f684c06e 100644 --- a/mes/qd/src/views/wms/mps/produce/AddDialog.vue +++ b/mes/qd/src/views/wms/mps/produce/AddDialog.vue @@ -177,7 +177,7 @@ + + diff --git a/mes/qd/src/views/wms/mps/produce/UploadDialog.vue b/mes/qd/src/views/wms/mps/produce/UploadDialog.vue new file mode 100644 index 00000000..8f92e8f8 --- /dev/null +++ b/mes/qd/src/views/wms/mps/produce/UploadDialog.vue @@ -0,0 +1,116 @@ + + + + diff --git a/mes/qd/src/views/wms/mps/produce/bigScreen.vue b/mes/qd/src/views/wms/mps/produce/bigScreen.vue index 28c783a8..9a851f44 100644 --- a/mes/qd/src/views/wms/mps/produce/bigScreen.vue +++ b/mes/qd/src/views/wms/mps/produce/bigScreen.vue @@ -62,35 +62,6 @@ - - - - - - - - - - - { - this.deviceList = res - }) - this.devicedialogVisible = true - this.deviceForm.device_id = this.choice.device_id - }, reportWork() { this.reportdialogVisibler = true this.getReportWork(this.choice.produceorder_id) @@ -286,15 +246,10 @@ export default { this.isDisabled() }) }, - saveDevice() { - if (this.deviceForm.device_id === '' || this.deviceForm.device_id === null || this.deviceForm.device_id === undefined) { - this.notify('请选择要绑定的设备', 'info') - return - } - crudProduceshiftorder.openStart({ device_id: this.deviceForm.device_id, row: this.choice }).then(res => { + openStart() { + crudProduceshiftorder.openStart({ row: this.choice }).then(res => { this.notify('操作成功', 'success') this.getTable() - this.devicedialogVisible = false this.isDisabled() }) }, diff --git a/mes/qd/src/views/wms/mps/produce/index.vue b/mes/qd/src/views/wms/mps/produce/index.vue index fb01b0c1..b5ff120d 100644 --- a/mes/qd/src/views/wms/mps/produce/index.vue +++ b/mes/qd/src/views/wms/mps/produce/index.vue @@ -127,7 +127,7 @@ 复制新增 - 批量新增 + --> + + 导入 + + + + + @@ -406,6 +437,8 @@ import '@riophae/vue-treeselect/dist/vue-treeselect.css' import ViewDialog from '@/views/wms/mps/produce/ViewDialog' import crudClassstandard from '@/api/wms/basedata/master/classstandard' import AddDialog from '@/views/wms/mps/produce/AddDialog' +import UploadDialog from '@/views/wms/mps/produce/UploadDialog' +import ReplaceDeviceDialog from '@/views/wms/mps/produce/ReplaceDeviceDialog' const defaultForm = { produceorder_id: null, @@ -441,11 +474,12 @@ const defaultForm = { is_canupdate_update: '1', material_spec: null, sale_id: null, - orderNum: 1 + orderNum: 1, + jockey_id: '' } export default { name: 'Produceshiftorder', - components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, MaterDtl, Treeselect, ViewDialog }, + components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, MaterDtl, Treeselect, ViewDialog, UploadDialog, ReplaceDeviceDialog }, mixins: [presenter(), header(), form(defaultForm), crud()], dicts: ['PDM_BI_SHIFTTYPE', 'MPS_BD_ORDERSTATUS', 'is_used', 'PDM_BI_ORDERTYPE', 'IS_OR_NOT'], cruds() { @@ -470,13 +504,19 @@ export default { materType: '01', materialShow: false, addShow: false, + replaceShow: false, + uploadShow: false, workprocedureList: [], + userList: [], order_status: ['-1'], permission: {}, rules: { produceorder_code: [ { required: true, message: '生产班次工单编号不能为空', trigger: 'blur' } ], + jockey_id: [ + { required: true, message: '操作人员不能为空', trigger: 'blur' } + ], producedeviceorder_code: [ { required: true, message: '机台工单号不能为空', trigger: 'blur' } ], @@ -516,8 +556,17 @@ export default { created() { this.getworkprocedure() this.initClass3() + this.getUser() }, methods: { + tableChanged3() { + this.crud.toQuery() + }, + getUser() { + crudProduceshiftorder.getUser().then(res => { + this.userList = res + }) + }, initDataPlan() { const date = this.dateFormatter(new Date()) const formatter1 = this.dateFormatter1(new Date()) @@ -652,13 +701,13 @@ export default { if (length > 1) { var flag = false for (let i = 0; i < rows.length; i++) { - if (rows[i].order_status !== '00') { + if (rows[i].order_status !== '00' || rows[i].device_id === '') { flag = true break } } return flag - } else if (length === 1 && rows[0].order_status === '00') { + } else if (length === 1 && rows[0].order_status === '00' && rows[0].device_id !== '') { return false } else { return true @@ -713,6 +762,9 @@ export default { add() { this.addShow = true }, + replaceDevice(workProcedure_id, order_code) { + this.$refs.child4.setForm(workProcedure_id, order_code) + }, copyAdd(data) { this.crud.toCopy(data) }, diff --git a/wcs/hd/logPath_IS_UNDEFINED/2022-10-21.0.log b/wcs/hd/logPath_IS_UNDEFINED/2022-10-21.0.log new file mode 100644 index 00000000..e69de29b diff --git a/wcs/hd/nladmin-system/pom.xml b/wcs/hd/nladmin-system/pom.xml index 17f0292b..16c98696 100644 --- a/wcs/hd/nladmin-system/pom.xml +++ b/wcs/hd/nladmin-system/pom.xml @@ -206,6 +206,32 @@ mysql-connector-java ${mysql.version} + + + + + com.github.loki4j + loki-logback-appender-jdk8 + 1.3.2 + + + org.apache.httpcomponents + httpclient + 4.5.13 + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + com.google.guava + guava + 29.0-jre + diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java index 107d062b..f78e2010 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java @@ -21,7 +21,7 @@ import org.nl.acs.device_driver.basedriver.standard_storage.StandardStorageDevic import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; @@ -31,6 +31,7 @@ import org.nl.exception.BadRequestException; import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import org.nl.start.auto.run.OneNDCSocketConnectionAutoRun; import org.nl.utils.SpringContextHolder; +import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,10 +55,12 @@ public class AgvServiceImpl implements AgvService { @Autowired AcsToWmsService acsToWmsService; - private final LogServer logServer; + @Autowired + DeviceExecuteLogService logServer; Map AGVDeviceStatus = new HashMap(); - + private String log_file_type = "log_file_type"; + private String log_type = "agv接口日志"; /** * 获得之后num个天的时间 * @@ -1360,28 +1363,34 @@ public class AgvServiceImpl implements AgvService { @Override public HttpResponse pause() throws Exception { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.FORKAGV).toString(), "1")) { - String agvurl = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); - String agvport = acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT); + try { + MDC.put(log_file_type, log_type); - agvurl = agvurl + ":" + agvport + "/v1/vehicles/pause"; - log.info("暂停所有agv请求:{}", agvurl); + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.FORKAGV).toString(), "1")) { + String agvurl = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); + String agvport = acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT); - HttpResponse result = HttpRequest.post(agvurl) - .timeout(20000)//超时,毫秒 - .execute(); - log.info("暂停所有agv请求反馈:{}", result); - String type = ""; - if (result.getStatus() == 200) { - type = "info"; + agvurl = agvurl + ":" + agvport + "/v1/vehicles/pause"; + log.info("暂停所有agv请求:{}", agvurl); + + HttpResponse result = HttpRequest.post(agvurl) + .timeout(20000)//超时,毫秒 + .execute(); + log.info("暂停所有agv请求反馈:{}", result); + String type = ""; + if (result.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + return result; } else { - type = "error"; + return null; } - logServer.log("", "pause", type, "", result.body(), String.valueOf(result.getStatus()), agvurl, ""); - return result; - } else { - return null; + }finally { + MDC.remove(log_file_type); } + } @Override @@ -1407,28 +1416,33 @@ public class AgvServiceImpl implements AgvService { @Override public HttpResponse resume() throws Exception { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.FORKAGV).toString(), "1")) { - String agvurl = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); - String agvport = acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT); + try { + MDC.put(log_file_type, log_type); + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.FORKAGV).toString(), "1")) { + String agvurl = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); + String agvport = acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT); - agvurl = agvurl + ":" + agvport + "/v1/vehicles/resume"; - log.info("恢复所有agv请求:{}", agvurl); + agvurl = agvurl + ":" + agvport + "/v1/vehicles/resume"; + log.info("恢复所有agv请求:{}", agvurl); - HttpResponse result = HttpRequest.post(agvurl) - .timeout(20000)//超时,毫秒 - .execute(); - log.info("恢复所有agv请求反馈:{}", result); - String type = ""; - if (result.getStatus() == 200) { - type = "info"; + HttpResponse result = HttpRequest.post(agvurl) + .timeout(20000)//超时,毫秒 + .execute(); + log.info("恢复所有agv请求反馈:{}", result); + String type = ""; + if (result.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + return result; } else { - type = "error"; + return null; } - logServer.log("", "resume", type, "", result.body(), String.valueOf(result.getStatus()), agvurl, ""); - return result; - } else { - return null; + }finally { + MDC.remove(log_file_type); } + } @Override diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java index 5cbae371..9d7f6768 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java @@ -71,7 +71,9 @@ public enum DriverTypeEnum { HAILIANG_ELEVATOR_WIRING(31, "hailiang_elevator_wiring", "海亮-货梯对接线", "conveyor"), - HAILIANG_PAINT_LINE(32, "hailiang_paint_line", "海亮-油漆线", "conveyor"); + HAILIANG_PAINT_LINE(32, "hailiang_paint_line", "海亮-油漆线", "conveyor"), + + HAILIANG_STACKING_STATION(33, "hailiang_stacking_station", "海亮-包装线体", "conveyor"); //驱动索引 private int index; diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index e3a1128c..0e7a8bf6 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -10,16 +10,9 @@ import org.nl.acs.config.server.AcsConfigService; import org.nl.acs.config.server.impl.AcsConfigServiceImpl; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_auto_cache_line.HailiangAutoCacheLineDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_machine_storage_station.HailiangCleaningMachineStorageStationDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_cache.HailiangEngravingCacheDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_machine.HailiangEngravingMachineDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_packer_station.HailiangPackerStationDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_empty_station.HailiangSpecialEmptyStationDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_full_station.HailiangSpecialFullStationDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_pick_station.HailiangSpecialPickStationDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_pour_station.HailiangSpecialPourStationDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_storage.StandardStorageDeviceDriver; import org.nl.acs.device_driver.driver.AbstractDeviceDriver; @@ -28,13 +21,12 @@ import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; -import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import org.nl.start.auto.run.OneNDCSocketConnectionAutoRun; import org.nl.utils.SpringContextHolder; -import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; import java.util.List; @@ -52,7 +44,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic org.nl.acs.agv.server.AgvService AgvService = SpringContextHolder.getBean(AgvService.class); DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + @Autowired + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); int agvaddr = 0; int agvaddr_copy = 0; int weight = 0; @@ -97,7 +90,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if (!ObjectUtil.isEmpty(link_inst)) { link_flag = true; } - logServer.deviceLogToacs(this.device_code,"","","接收AGV上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); + logServer.deviceExecuteLog(this.device_code,"","","接收AGV上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); Device device = null; String old_device_code = null; @@ -128,7 +121,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic inst.setCarno(String.valueOf(carno)); instructionService.update(inst); } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //请求取货 } else if (phase == 0x03) { @@ -136,7 +129,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceLogToacs(this.device_code,"","","agv地址参数有误,phase:" + phase ); + logServer.deviceExecuteLog(this.device_code,"","","agv地址参数有误,phase:" + phase ); return; } device_code = deviceService.queryDeviceCodeByAddress(agvaddr); @@ -157,14 +150,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic device = deviceAppService.findDeviceByCode(device_code); if (ObjectUtil.isEmpty(device_code)) { log.info(agvaddr + "对应设备号为空!"); - logServer.deviceLogToacs(this.device_code,"","",agvaddr+"对应设备号为空"); + logServer.deviceExecuteLog(this.device_code,"","",agvaddr+"对应设备号为空"); return; } for (Instruction inst : insts) { //校验agv上报站点编号与指令起始点相同 if (ObjectUtil.isEmpty(inst)) { log.info("未找到关联编号{}对应的指令", ikey); - logServer.deviceLogToacs(this.device_code,"","","未找到关联编号对应的指令"+ikey); + logServer.deviceExecuteLog(this.device_code,"","","未找到关联编号对应的指令"+ikey); break; } @@ -203,7 +196,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); } else if (phase == 0x65) {//param,重量待定 //1、得到重量信息 @@ -221,7 +214,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } data = AgvService.sendAgvOneModeInst(phase, index, 0); - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //取货完毕/取满框完毕1/点对点取货完毕 } else if (phase == 0x64) {//param,agv货位id待定 @@ -229,7 +222,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = arr[18] * 256 + arr[19]; agvaddr_copy = agvaddr; data = AgvService.sendAgvOneModeInst(phase, index, 0); - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //取货完毕 } else if (phase == 0x05) { @@ -237,7 +230,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceLogToacs(this.device_code,"","","agv地址参数有误,phase:" + phase ); + logServer.deviceExecuteLog(this.device_code,"","","agv地址参数有误,phase:" + phase ); return; } if (agvaddr != 0) { @@ -257,14 +250,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if (ObjectUtil.isEmpty(device_code)) { log.info(agvaddr + "对应设备号为空!"); - logServer.deviceLogToacs(this.device_code,"","","对应设备号为空"+device_code); + logServer.deviceExecuteLog(this.device_code,"","","对应设备号为空"+device_code); return; } for (Instruction inst : insts) { //校验agv上报站点编号与指令起始点相同 if (ObjectUtil.isEmpty(inst)) { log.info("未找到关联编号{}对应的指令", ikey); - logServer.deviceLogToacs(this.device_code,"","","未找到关联编号对应的指令"+ikey); + logServer.deviceExecuteLog(this.device_code,"","","未找到关联编号对应的指令"+ikey); break; } @@ -299,7 +292,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //请求放货 } else if (phase == 0x07) { @@ -307,7 +300,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceLogToacs(this.device_code,"","","agv地址参数有误,phase:" + phase ); + logServer.deviceExecuteLog(this.device_code,"","","agv地址参数有误,phase:" + phase ); return; } if (agvaddr != 0) { @@ -366,7 +359,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //放货完成 } else if (phase == 0x09) { @@ -374,7 +367,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = agvaddr_copy; } if (agvaddr < 1) { - logServer.deviceLogToacs(this.device_code,"","","agv地址参数有误,phase:" + phase ); + logServer.deviceExecuteLog(this.device_code,"","","agv地址参数有误,phase:" + phase ); return; } if (agvaddr != 0) { @@ -435,41 +428,41 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); } else if (phase == 0x71){ x = ikey; if (x != last_x){ - logServer.deviceLog(this.device_code, "x", String.valueOf(x)); + logServer.deviceItemValue(this.device_code, "x", String.valueOf(x)); } } else if (phase == 0x72){ y = ikey; if (y != last_y){ - logServer.deviceLog(this.device_code, "y", String.valueOf(y)); + logServer.deviceItemValue(this.device_code, "y", String.valueOf(y)); } } else if (phase == 0x73){ angle = last_angle; if (angle != last_angle){ - logServer.deviceLog(this.device_code, "angle", String.valueOf(angle)); + logServer.deviceItemValue(this.device_code, "angle", String.valueOf(angle)); } } else if (phase == 0x74){ electric_qty = ikey; if (electric_qty != last_electric_qty){ - logServer.deviceLog(this.device_code, "electric_qty", String.valueOf(electric_qty)); + logServer.deviceItemValue(this.device_code, "electric_qty", String.valueOf(electric_qty)); } } else if (phase == 0x75){ status = ikey; if (status != last_status){ - logServer.deviceLog(this.device_code, "status", String.valueOf(status)); + logServer.deviceItemValue(this.device_code, "status", String.valueOf(status)); } } else if (phase == 0x76){ error = ikey; if (error != last_error){ - logServer.deviceLog(this.device_code, "error", String.valueOf(error)); + logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); } } if (!ObjectUtil.isEmpty(data)) { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); OneNDCSocketConnectionAutoRun.write(data); } } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index c0123e8e..a2ca5b63 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -10,7 +10,6 @@ import org.nl.acs.config.server.AcsConfigService; import org.nl.acs.config.server.impl.AcsConfigServiceImpl; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_auto_cache_line.HailiangAutoCacheLineDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_machine_storage_station.HailiangCleaningMachineStorageStationDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_empty_station.HailiangSpecialEmptyStationDeviceDriver; @@ -23,14 +22,13 @@ import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; -import org.nl.start.auto.run.AutoRunService; import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import org.nl.utils.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; + import java.util.List; @@ -48,7 +46,8 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic AgvService AgvService = SpringContextHolder.getBean(AgvService.class); DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + @Autowired + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); int agvaddr = 0; int agvaddr_copy = 0; int weight = 0; @@ -70,7 +69,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic int last_error = 0; public synchronized void processSocket(int[] arr) throws Exception { device_code = this.getDeviceCode(); - logServer.deviceLogToacs(this.device_code,"","","接收AGV上报信息:" + arr); + logServer.deviceExecuteLog(this.device_code,"","","接收AGV上报信息:" + arr); byte[] data = null; phase = arr[16] * 256 + arr[17]; @@ -96,7 +95,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic link_flag = true; } log.info("接收agv上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); - logServer.deviceLogToacs(this.device_code,"","","接收AGV上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); + logServer.deviceExecuteLog(this.device_code,"","","接收AGV上报信息:" + "phase--" + phase + " index--" + index + " ikey--" + ikey + " agvaddr--" + agvaddr + " Car--" + carno); Device device = null; String old_device_code = null; @@ -130,7 +129,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic inst.setCarno(String.valueOf(carno)); instructionService.update(inst); } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //到达取货点1 } else if (phase == 0x03) { @@ -163,7 +162,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); } else if (phase == 0x65) {//param,重量待定 //1、得到重量信息 @@ -181,7 +180,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } data = AgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //取货完毕/取满框完毕1/点对点取货完毕 } else if (phase == 0x64) {//param,agv货位id待定 @@ -189,7 +188,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic agvaddr = arr[18] * 256 + arr[19]; agvaddr_copy = agvaddr; data = AgvService.sendAgvTwoModeInst(phase, index, 0); - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //取货点1取货完毕 } else if (phase == 0x05) { @@ -224,7 +223,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //到达取货点2 } else if (phase == 0x07) { @@ -257,7 +256,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //取货点2取货完毕 } else if (phase == 0x09) { @@ -289,7 +288,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //自动缓存线--到达送满框1 } else if (phase == 0x0A) { @@ -308,7 +307,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //到达倒料点1 @@ -351,7 +350,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //自动缓存线--送满框完毕1 } else if (phase == 0x0C) { @@ -389,7 +388,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //倒料点1倒料完毕 } else if (phase == 0x0D) { @@ -430,7 +429,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //自动缓存线--到达取空框1 } else if (phase == 0x0E) { @@ -446,7 +445,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info(agvaddr + "对应设备号为空!"); return; } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //到达倒料点2 } else if (phase == 0x0F) { @@ -485,7 +484,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //倒料点2倒料完毕 } else if (phase == 0x11) { @@ -524,7 +523,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //到达送箱点1 } else if (phase == 0x13) { @@ -557,7 +556,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //送箱点1送箱完毕 } else if (phase == 0x15) { @@ -590,7 +589,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //到达送箱点2 } else if (phase == 0x17) { @@ -623,7 +622,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //送箱完毕/送空框完毕2 } else if (phase == 0x19) { @@ -657,7 +656,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } } - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); //自动缓存线--到达送满框1 } else if (phase == 0x0A) { @@ -696,37 +695,37 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (phase == 0x30) { data = AgvService.sendAgvTwoModeInst(143, index, 0); - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + phase + "反馈:"+data); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + phase + "反馈:"+data); } else if (phase == 0x71){ x = ikey; if (x != last_x){ - logServer.deviceLog(this.device_code, "x", String.valueOf(x)); + logServer.deviceItemValue(this.device_code, "x", String.valueOf(x)); } } else if (phase == 0x72){ y = ikey; if (y != last_y){ - logServer.deviceLog(this.device_code, "y", String.valueOf(y)); + logServer.deviceItemValue(this.device_code, "y", String.valueOf(y)); } } else if (phase == 0x73){ angle = last_angle; if (angle != last_angle){ - logServer.deviceLog(this.device_code, "angle", String.valueOf(angle)); + logServer.deviceItemValue(this.device_code, "angle", String.valueOf(angle)); } } else if (phase == 0x74){ electric_qty = ikey; if (electric_qty != last_electric_qty){ - logServer.deviceLog(this.device_code, "electric_qty", String.valueOf(electric_qty)); + logServer.deviceItemValue(this.device_code, "electric_qty", String.valueOf(electric_qty)); } } else if (phase == 0x75){ status = ikey; if (status != last_status){ - logServer.deviceLog(this.device_code, "status", String.valueOf(status)); + logServer.deviceItemValue(this.device_code, "status", String.valueOf(status)); } } else if (phase == 0x76){ error = ikey; if (error != last_error){ - logServer.deviceLog(this.device_code, "error", String.valueOf(error)); + logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); } } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java index b92345d5..14380ccd 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java @@ -14,7 +14,7 @@ import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -58,7 +58,7 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); int mode = 0; int error = 0; @@ -244,87 +244,86 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i stringToascii(material_spec10); if(StrUtil.equals(material_spec,last_material_spec)){ - logServer.deviceLog(this.device_code,"material_spec" ,String.valueOf(material_spec)); - logServer.deviceLogToacs(this.device_code,"","","信号material_spec:" + last_material_spec + "->" + material_spec); + logServer.deviceItemValue(this.device_code,"material_spec" ,String.valueOf(material_spec)); + logServer.deviceExecuteLog(this.device_code,"","","信号material_spec:" + last_material_spec + "->" + material_spec); } if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { if (move == 0) { thingToNothing(); } - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if(task_finish != last_task_finish){ if(task_finish == 1){ writing("item_to_task_finish","1"); } - logServer.deviceLog(this.device_code,"task_finish" ,String.valueOf(task_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号task_finish:" + last_task_finish + "->" + task_finish); + logServer.deviceItemValue(this.device_code,"task_finish" ,String.valueOf(task_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号task_finish:" + last_task_finish + "->" + task_finish); } if (task != last_task) { - logServer.deviceLog(this.device_code,"task" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); + logServer.deviceItemValue(this.device_code,"task" ,String.valueOf(task)); + logServer.deviceExecuteLog(this.device_code,"","","信号task:" + last_task + "->" + task); } if (matching_barcode != last_matching_barcode) { - logServer.deviceLog(this.device_code,"matching_barcode" ,String.valueOf(matching_barcode)); - logServer.deviceLogToacs(this.device_code,"","","信号matching_barcode:" + last_matching_barcode + "->" + matching_barcode); + logServer.deviceItemValue(this.device_code,"matching_barcode" ,String.valueOf(matching_barcode)); + logServer.deviceExecuteLog(this.device_code,"","","信号matching_barcode:" + last_matching_barcode + "->" + matching_barcode); } if (prepare_ready != last_prepare_ready) { - logServer.deviceLog(this.device_code,"prepare_ready" ,String.valueOf(prepare_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号prepare_ready:" + last_prepare_ready + "->" + prepare_ready); + logServer.deviceItemValue(this.device_code,"prepare_ready" ,String.valueOf(prepare_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号prepare_ready:" + last_prepare_ready + "->" + prepare_ready); } if (in_ready != last_in_ready) { - logServer.deviceLog(this.device_code,"in_ready" ,String.valueOf(in_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号in_ready:" + last_in_ready + "->" + in_ready); + logServer.deviceItemValue(this.device_code,"in_ready" ,String.valueOf(in_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号in_ready:" + last_in_ready + "->" + in_ready); } if (in_finish != last_in_finish) { - logServer.deviceLog(this.device_code,"in_finish" ,String.valueOf(in_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号in_finish:" + last_in_finish + "->" + in_finish); + logServer.deviceItemValue(this.device_code,"in_finish" ,String.valueOf(in_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号in_finish:" + last_in_finish + "->" + in_finish); } if (out_ready != last_out_ready) { - logServer.deviceLog(this.device_code,"out_ready" ,String.valueOf(out_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号out_ready:" + last_out_ready + "->" + out_ready); + logServer.deviceItemValue(this.device_code,"out_ready" ,String.valueOf(out_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号out_ready:" + last_out_ready + "->" + out_ready); } if (checking != last_checking) { - logServer.deviceLog(this.device_code,"checking" ,String.valueOf(checking)); - logServer.deviceLogToacs(this.device_code,"","","信号checking:" + last_checking + "->" + checking); + logServer.deviceItemValue(this.device_code,"checking" ,String.valueOf(checking)); + logServer.deviceExecuteLog(this.device_code,"","","信号checking:" + last_checking + "->" + checking); } if (check_finish != last_check_finish) { - logServer.deviceLog(this.device_code,"check_finish" ,String.valueOf(check_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号check_finish:" + last_check_finish + "->" + check_finish); + logServer.deviceItemValue(this.device_code,"check_finish" ,String.valueOf(check_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号check_finish:" + last_check_finish + "->" + check_finish); } if (check_compel_finish != last_check_compel_finish) { - logServer.deviceLog(this.device_code,"check_compel_finish" ,String.valueOf(check_compel_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号check_compel_finish:" + last_check_compel_finish + "->" + check_compel_finish); + logServer.deviceItemValue(this.device_code,"check_compel_finish" ,String.valueOf(check_compel_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号check_compel_finish:" + last_check_compel_finish + "->" + check_compel_finish); } if (matching_barcode_fail != last_matching_barcode_fail) { - logServer.deviceLog(this.device_code,"matching_barcode_fail" ,String.valueOf(matching_barcode_fail)); - logServer.deviceLogToacs(this.device_code,"","","信号matching_barcode_fail:" + last_matching_barcode_fail + "->" + matching_barcode_fail); + logServer.deviceItemValue(this.device_code,"matching_barcode_fail" ,String.valueOf(matching_barcode_fail)); + logServer.deviceExecuteLog(this.device_code,"","","信号matching_barcode_fail:" + last_matching_barcode_fail + "->" + matching_barcode_fail); } if (pause != last_pause) { - logServer.deviceLog(this.device_code,"pause" ,String.valueOf(pause)); - logServer.deviceLogToacs(this.device_code,"","","信号pause:" + last_pause + "->" + pause); + logServer.deviceItemValue(this.device_code,"pause" ,String.valueOf(pause)); + logServer.deviceExecuteLog(this.device_code,"","","信号pause:" + last_pause + "->" + pause); } if (hoist_target_layer != last_hoist_target_layer) { - logServer.deviceLog(this.device_code,"hoist_target_layer" ,String.valueOf(hoist_target_layer)); - logServer.deviceLogToacs(this.device_code,"","","信号hoist_target_layer:" + last_hoist_target_layer + "->" + hoist_target_layer); + logServer.deviceItemValue(this.device_code,"hoist_target_layer" ,String.valueOf(hoist_target_layer)); + logServer.deviceExecuteLog(this.device_code,"","","信号hoist_target_layer:" + last_hoist_target_layer + "->" + hoist_target_layer); } if (task_type != last_task_type) { - logServer.deviceLog(this.device_code,"task_type" ,String.valueOf(task_type)); - logServer.deviceLogToacs(this.device_code,"","","信号task_type:" + last_task_type + "->" + task_type); + logServer.deviceItemValue(this.device_code,"task_type" ,String.valueOf(task_type)); + logServer.deviceExecuteLog(this.device_code,"","","信号task_type:" + last_task_type + "->" + task_type); } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java index 4afbdf32..38f29935 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java @@ -14,7 +14,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; @@ -51,7 +51,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @@ -157,37 +157,36 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i in_pcsn = this.itemProtocol.getItem_in_pcsn(); if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (is_open != last_is_open) { - logServer.deviceLog(this.device_code,"is_open" ,String.valueOf(is_open)); - logServer.deviceLogToacs(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); + logServer.deviceItemValue(this.device_code,"is_open" ,String.valueOf(is_open)); + logServer.deviceExecuteLog(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); } if (in_ready != last_in_ready) { - logServer.deviceLog(this.device_code,"in_ready" ,String.valueOf(in_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号in_ready:" + last_in_ready + "->" + in_ready); + logServer.deviceItemValue(this.device_code,"in_ready" ,String.valueOf(in_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号in_ready:" + last_in_ready + "->" + in_ready); } if (all_ready != last_all_ready) { - logServer.deviceLog(this.device_code,"all_ready" ,String.valueOf(all_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + all_ready); + logServer.deviceItemValue(this.device_code,"all_ready" ,String.valueOf(all_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + all_ready); } if (task_finish != last_task_finish) { - logServer.deviceLog(this.device_code,"task_finish" ,String.valueOf(task_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号task_finish:" + last_task_finish + "->" + task_finish); + logServer.deviceItemValue(this.device_code,"task_finish" ,String.valueOf(task_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号task_finish:" + last_task_finish + "->" + task_finish); } if (allowed_in != last_allowed_in) { - logServer.deviceLog(this.device_code,"allowed_in" ,String.valueOf(allowed_in)); - logServer.deviceLogToacs(this.device_code,"","","信号allowed_in:" + last_allowed_in + "->" + allowed_in); + logServer.deviceItemValue(this.device_code,"allowed_in" ,String.valueOf(allowed_in)); + logServer.deviceExecuteLog(this.device_code,"","","信号allowed_in:" + last_allowed_in + "->" + allowed_in); } if (in_pcsn != last_in_pcsn) { - logServer.deviceLog(this.device_code,"in_pcsn" ,String.valueOf(in_pcsn)); - logServer.deviceLogToacs(this.device_code,"","","信号in_pcsn:" + last_in_pcsn + "->" + in_pcsn); + logServer.deviceItemValue(this.device_code,"in_pcsn" ,String.valueOf(in_pcsn)); + logServer.deviceExecuteLog(this.device_code,"","","信号in_pcsn:" + last_in_pcsn + "->" + in_pcsn); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } @@ -246,7 +245,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i protected void thingToNothing() { log.debug("从有货到无货 清理数据"); - logServer.deviceLogToacs(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); this.setRequireSucess(false); this.setApplySucess(false); diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java index c5b2763d..eb522286 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java @@ -1,9 +1,5 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_machine; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,30 +8,24 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_pour_station.HailiangSpecialPourStationDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; -import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskService; -import org.nl.acs.task.service.dto.TaskDto; -import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SpringContextHolder; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -61,7 +51,7 @@ public class HailiangCleaningMachineDeviceDriver extends AbstractOpcDeviceDriver @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @@ -178,52 +168,44 @@ public class HailiangCleaningMachineDeviceDriver extends AbstractOpcDeviceDriver is_start = this.itemProtocol.getItem_is_start(); pause = this.itemProtocol.getItem_pause(); if (running != last_running) { - logServer.deviceLog(this.device_code,"running" ,String.valueOf(running)); - logServer.deviceLogToacs(this.device_code,"","","信号running:" + last_running + "->" + running); + logServer.deviceItemValue(this.device_code,"running" ,String.valueOf(running)); + logServer.deviceExecuteLog(this.device_code,"","","信号running:" + last_running + "->" + running); } if (prepare != last_prepare) { - logServer.deviceLog(this.device_code,"prepare" ,String.valueOf(prepare)); - logServer.deviceLogToacs(this.device_code,"","","信号prepare:" + last_prepare + "->" + prepare); + logServer.deviceItemValue(this.device_code,"prepare" ,String.valueOf(prepare)); + logServer.deviceExecuteLog(this.device_code,"","","信号prepare:" + last_prepare + "->" + prepare); } if (ready != last_ready) { - logServer.deviceLog(this.device_code,"ready" ,String.valueOf(ready)); - logServer.deviceLogToacs(this.device_code,"","","信号ready:" + last_ready + "->" + ready); + logServer.deviceItemValue(this.device_code,"ready" ,String.valueOf(ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号ready:" + last_ready + "->" + ready); } if (order_finish != last_order_finish) { - logServer.deviceLog(this.device_code,"order_finish" ,String.valueOf(order_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号order_finish:" + last_order_finish + "->" + order_finish); + logServer.deviceItemValue(this.device_code,"order_finish" ,String.valueOf(order_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_finish:" + last_order_finish + "->" + order_finish); } if (open_ready_time != last_open_ready_time) { - logServer.deviceLog(this.device_code,"open_ready_time" ,String.valueOf(open_ready_time)); - logServer.deviceLogToacs(this.device_code,"","","信号open_ready_time:" + last_open_ready_time + "->" + open_ready_time); - } - if (device_running_time != last_device_running_time) { - logServer.deviceLog(this.device_code,"device_running_time" ,String.valueOf(device_running_time)); - logServer.deviceLogToacs(this.device_code,"","","信号device_running_time:" + last_device_running_time + "->" + device_running_time); - } - if (await_time != last_await_time) { - logServer.deviceLog(this.device_code,"await_time" ,String.valueOf(await_time)); - logServer.deviceLogToacs(this.device_code,"","","信号await_time:" + last_await_time + "->" + await_time); + logServer.deviceItemValue(this.device_code,"open_ready_time" ,String.valueOf(open_ready_time)); + logServer.deviceExecuteLog(this.device_code,"","","信号open_ready_time:" + last_open_ready_time + "->" + open_ready_time); } if (order != last_order) { - logServer.deviceLog(this.device_code,"order" ,String.valueOf(order)); - logServer.deviceLogToacs(this.device_code,"","","信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); } if (order_real_time != last_order_real_time) { - logServer.deviceLog(this.device_code,"order_real_time" ,String.valueOf(order_real_time)); - logServer.deviceLogToacs(this.device_code,"","","信号order_real_time:" + last_order_real_time + "->" + order_real_time); + logServer.deviceItemValue(this.device_code,"order_real_time" ,String.valueOf(order_real_time)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_real_time:" + last_order_real_time + "->" + order_real_time); } if (is_start != last_is_start) { - logServer.deviceLog(this.device_code,"is_start" ,String.valueOf(is_start)); - logServer.deviceLogToacs(this.device_code,"","","信号is_start:" + last_is_start + "->" + is_start); + logServer.deviceItemValue(this.device_code,"is_start" ,String.valueOf(is_start)); + logServer.deviceExecuteLog(this.device_code,"","","信号is_start:" + last_is_start + "->" + is_start); } if (pause != last_pause) { - logServer.deviceLog(this.device_code,"pause" ,String.valueOf(pause)); - logServer.deviceLogToacs(this.device_code,"","","信号pause:" + last_pause + "->" + pause); + logServer.deviceItemValue(this.device_code,"pause" ,String.valueOf(pause)); + logServer.deviceExecuteLog(this.device_code,"","","信号pause:" + last_pause + "->" + pause); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } @@ -286,7 +268,7 @@ public class HailiangCleaningMachineDeviceDriver extends AbstractOpcDeviceDriver protected void thingToNothing() { log.debug("从有货到无货 清理数据"); - logServer.deviceLogToacs(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); this.setRequireSucess(false); this.setApplySucess(false); diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java index 55bf62d2..0f3c127b 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java @@ -20,7 +20,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; @@ -63,7 +63,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -170,28 +170,28 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO full_number = this.itemProtocol.getItem_full_number(); silo_material_no = this.itemProtocol.getItem_silo_material_no(); if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (running != last_running) { - logServer.deviceLog(this.device_code,"running" ,String.valueOf(running)); - logServer.deviceLogToacs(this.device_code,"","","信号running:" + last_running + "->" + running); + logServer.deviceItemValue(this.device_code,"running" ,String.valueOf(running)); + logServer.deviceExecuteLog(this.device_code,"","","信号running:" + last_running + "->" + running); } if (is_open != last_is_open) { - logServer.deviceLog(this.device_code,"is_open" ,String.valueOf(is_open)); - logServer.deviceLogToacs(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); + logServer.deviceItemValue(this.device_code,"is_open" ,String.valueOf(is_open)); + logServer.deviceExecuteLog(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); } if (silo_weight != last_silo_weight) { - logServer.deviceLog(this.device_code,"silo_weight" ,String.valueOf(silo_weight)); - logServer.deviceLogToacs(this.device_code,"","","信号silo_weight:" + last_silo_weight + "->" + silo_weight); + logServer.deviceItemValue(this.device_code,"silo_weight" ,String.valueOf(silo_weight)); + logServer.deviceExecuteLog(this.device_code,"","","信号silo_weight:" + last_silo_weight + "->" + silo_weight); } if (full_number != last_full_number) { - logServer.deviceLog(this.device_code,"full_number" ,String.valueOf(full_number)); - logServer.deviceLogToacs(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); + logServer.deviceItemValue(this.device_code,"full_number" ,String.valueOf(full_number)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); } if (silo_material_no != last_silo_material_no) { - logServer.deviceLog(this.device_code,"silo_material_no" ,String.valueOf(silo_material_no)); - logServer.deviceLogToacs(this.device_code,"","","信号silo_material_no:" + last_silo_material_no + "->" + silo_material_no); + logServer.deviceItemValue(this.device_code,"silo_material_no" ,String.valueOf(silo_material_no)); + logServer.deviceExecuteLog(this.device_code,"","","信号silo_material_no:" + last_silo_material_no + "->" + silo_material_no); } } catch (Exception var17) { @@ -237,7 +237,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO agvphase = 0; index = 0; }else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); } } @@ -251,7 +251,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO agvphase = 0; index = 0; }else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); } } @@ -276,7 +276,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO protected void thingToNothing() { log.debug("从有货到无货 清理数据"); - logServer.deviceLogToacs(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); this.setRequireSucess(false); this.setApplySucess(false); @@ -379,7 +379,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO onedto.setUpdate_time(now); onedto.setCreate_time(now); taskserver.create(onedto); - logServer.deviceLogToacs(this.device_code,"","",device_code+":创建任务成功"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":创建任务成功"); } else { //打印日志 continue; @@ -394,11 +394,11 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO //生成任务成功 if(flag){ - logServer.deviceLogToacs(this.device_code,"","",device_code+":专机生成任务成功"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":专机生成任务成功"); requireSucess = true; } else { //前往缓存线 - logServer.deviceLogToacs(this.device_code,"","",device_code+":分配任务缓存线"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":分配任务缓存线"); } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_elevator_wiring/HailiangElevatorWiringDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_elevator_wiring/HailiangElevatorWiringDeviceDriver.java index aea7c06b..fededf43 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_elevator_wiring/HailiangElevatorWiringDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_elevator_wiring/HailiangElevatorWiringDeviceDriver.java @@ -11,7 +11,7 @@ import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; @@ -41,7 +41,7 @@ public class HailiangElevatorWiringDeviceDriver extends AbstractOpcDeviceDriver @Autowired TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl"); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); String container; String container_type_desc; String last_container_type_desc; @@ -128,20 +128,20 @@ public class HailiangElevatorWiringDeviceDriver extends AbstractOpcDeviceDriver if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (action != last_action) { - logServer.deviceLog(this.device_code,"action" ,String.valueOf(action)); - logServer.deviceLogToacs(this.device_code,"","","信号action:" + last_action + "->" + action); + logServer.deviceItemValue(this.device_code,"action" ,String.valueOf(action)); + logServer.deviceExecuteLog(this.device_code,"","","信号action:" + last_action + "->" + action); } } catch (Exception var17) { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java index 64c97340..13ee4947 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java @@ -22,7 +22,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -68,7 +68,7 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -155,16 +155,16 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver move = this.itemProtocol.getItem_move();//光电信号 mode = this.itemProtocol.getItem_mode();//模式 if (mode != last_mode) { - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { if (move == 1) { thingToNothing(); } this.setRequireSucess(false); - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move(取反):" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } @@ -203,9 +203,9 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "move=" +move + ",等待反馈,inst:"+inst); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "move=" +move + ",等待反馈,inst:"+inst); } } @@ -221,9 +221,9 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); } } @@ -238,9 +238,9 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); } } @@ -259,22 +259,22 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver writing("to_cache_write", "2"); this.setMaterial(inst.getMaterial()); next_device.setMaterial_type(inst.getMaterial()); - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "起点位置刻字机,缓存位解锁成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "起点位置刻字机,缓存位解锁成功"); } if (start_device.getDeviceDriver() instanceof HailiangPackerStationDeviceDriver){ writing("to_cache_write", "1"); this.setMaterial(""); next_device.setMaterial_type(""); - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "起点位置包装机,缓存位解锁成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "起点位置包装机,缓存位解锁成功"); } byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0); OneNDCSocketConnectionAutoRun.write(data); agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); } } @@ -352,7 +352,7 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, value); - logServer.deviceLogToacs(this.device_code,"","","下发信号:" + key + ",value:"+value); + logServer.deviceExecuteLog(this.device_code,"","","下发信号:" + key + ",value:"+value); ReadUtil.write(itemMap, server); } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java index 691223ab..75de4429 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java @@ -15,14 +15,13 @@ import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_cache.HailiangEngravingCacheDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_pour_station.HailiangSpecialPourStationDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -39,7 +38,6 @@ import org.nl.utils.SpringContextHolder; import org.nl.wql.core.bean.WQLObject; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.unit.DataUnit; import java.util.Date; import java.util.HashMap; @@ -71,7 +69,7 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -173,7 +171,6 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive Instruction inst = null; //上次指令 Instruction last_inst = null; - //触摸屏手动触发任务 private Boolean is_has_task = false; @@ -224,131 +221,156 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive await_time = this.itemProtocol.getItem_await_time(); //待机时间(S) order = this.itemProtocol.getItem_order(); //工单号 if (mode != last_mode) { - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { thingToNothing(); this.setRequireSucess(false); - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move(取反):" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (status != last_status) { - logServer.deviceLog(this.device_code,"status" ,String.valueOf(status)); - logServer.deviceLogToacs(this.device_code,"","","信号status:" + last_status + "->" + status); + logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status)); + logServer.deviceExecuteLog(this.device_code,"","","信号status:" + last_status + "->" + status); } if (is_open != last_is_open) { - logServer.deviceLog(this.device_code,"is_open" ,String.valueOf(is_open)); - logServer.deviceLogToacs(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); + logServer.deviceItemValue(this.device_code,"is_open" ,String.valueOf(is_open)); + logServer.deviceExecuteLog(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); } if (is_running != last_is_running) { - logServer.deviceLog(this.device_code,"is_running" ,String.valueOf(is_running)); - logServer.deviceLogToacs(this.device_code,"","","信号is_running:" + last_is_running + "->" + is_running); + logServer.deviceItemValue(this.device_code,"is_running" ,String.valueOf(is_running)); + logServer.deviceExecuteLog(this.device_code,"","","信号is_running:" + last_is_running + "->" + is_running); } if (empty_req != last_empty_req) { - logServer.deviceLog(this.device_code,"empty_req" ,String.valueOf(empty_req)); - logServer.deviceLogToacs(this.device_code,"","","信号empty_req:" + last_empty_req + "->" + empty_req); + logServer.deviceItemValue(this.device_code,"empty_req" ,String.valueOf(empty_req)); + logServer.deviceExecuteLog(this.device_code,"","","信号empty_req:" + last_empty_req + "->" + empty_req); } if (full_req != last_full_req) { - logServer.deviceLog(this.device_code,"full_req" ,String.valueOf(full_req)); - logServer.deviceLogToacs(this.device_code,"","","信号full_req:" + last_full_req + "->" + full_req); + logServer.deviceItemValue(this.device_code,"full_req" ,String.valueOf(full_req)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_req:" + last_full_req + "->" + full_req); } if (full_finish != last_full_finish) { - logServer.deviceLog(this.device_code,"full_finish" ,String.valueOf(full_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号full_finish:" + last_full_finish + "->" + full_finish); + logServer.deviceItemValue(this.device_code,"full_finish" ,String.valueOf(full_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_finish:" + last_full_finish + "->" + full_finish); } if (order_finish != last_order_finish) { - logServer.deviceLog(this.device_code,"order_finish" ,String.valueOf(order_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号order_finish:" + last_order_finish + "->" + order_finish); + logServer.deviceItemValue(this.device_code,"order_finish" ,String.valueOf(order_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_finish:" + last_order_finish + "->" + order_finish); } if (engraving_prepare != last_engraving_prepare) { - logServer.deviceLog(this.device_code,"engraving_prepare" ,String.valueOf(engraving_prepare)); - logServer.deviceLogToacs(this.device_code,"","","信号engraving_prepare:" + last_engraving_prepare + "->" + engraving_prepare); + logServer.deviceItemValue(this.device_code,"engraving_prepare" ,String.valueOf(engraving_prepare)); + logServer.deviceExecuteLog(this.device_code,"","","信号engraving_prepare:" + last_engraving_prepare + "->" + engraving_prepare); } if (engraving_ready != last_engraving_ready) { - logServer.deviceLog(this.device_code,"engraving_ready" ,String.valueOf(engraving_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号engraving_ready:" + last_engraving_ready + "->" + engraving_ready); + logServer.deviceItemValue(this.device_code,"engraving_ready" ,String.valueOf(engraving_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号engraving_ready:" + last_engraving_ready + "->" + engraving_ready); } if (line_ready != last_line_ready) { - logServer.deviceLog(this.device_code,"line_ready" ,String.valueOf(line_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号line_ready:" + last_line_ready + "->" + line_ready); + logServer.deviceItemValue(this.device_code,"line_ready" ,String.valueOf(line_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号line_ready:" + last_line_ready + "->" + line_ready); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (order_now != last_order_now) { - logServer.deviceLog(this.device_code,"order_now" ,String.valueOf(order_now)); - logServer.deviceLogToacs(this.device_code,"","","信号order_now:" + last_order_now + "->" + order_now); + logServer.deviceItemValue(this.device_code,"order_now" ,String.valueOf(order_now)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_now:" + last_order_now + "->" + order_now); if (mode == 1 && order > 0){ JSONObject map = new JSONObject(); map.put("order",order); map.put("real_qty",order_now); - acsToWmsService.feedOrderRealQty(map); + try{ + acsToWmsService.feedOrderRealQty(map); + } catch (Exception e){ + log.error("工单数量反馈失败,设备{},原因{}",device_code,e.getMessage()); + } } } if (one_now != last_one_now) { - logServer.deviceLog(this.device_code,"one_now" ,String.valueOf(one_now)); - logServer.deviceLogToacs(this.device_code,"","","信号one_now:" + last_one_now + "->" + one_now); + logServer.deviceItemValue(this.device_code,"one_now" ,String.valueOf(one_now)); + logServer.deviceExecuteLog(this.device_code,"","","信号one_now:" + last_one_now + "->" + one_now); } if (task != last_task) { - logServer.deviceLog(this.device_code,"task" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); + logServer.deviceItemValue(this.device_code,"task" ,String.valueOf(task)); + logServer.deviceExecuteLog(this.device_code,"","","信号task:" + last_task + "->" + task); } if (port_full_num != last_port_full_num) { - logServer.deviceLog(this.device_code,"port_full_num" ,String.valueOf(port_full_num)); - logServer.deviceLogToacs(this.device_code,"","","信号port_full_num:" + last_port_full_num + "->" + port_full_num); + logServer.deviceItemValue(this.device_code,"port_full_num" ,String.valueOf(port_full_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号port_full_num:" + last_port_full_num + "->" + port_full_num); } if (lettering_silo_number != last_lettering_silo_number) { - logServer.deviceLog(this.device_code,"lettering_silo_number" ,String.valueOf(lettering_silo_number)); - logServer.deviceLogToacs(this.device_code,"","","信号lettering_silo_number:" + last_lettering_silo_number + "->" + lettering_silo_number); - } - if (open_ready_time != last_open_ready_time) { - logServer.deviceLog(this.device_code,"open_ready_time" ,String.valueOf(open_ready_time)); - } - if (device_running_time != last_device_running_time) { - logServer.deviceLog(this.device_code,"device_running_time" ,String.valueOf(device_running_time)); - } - if (await_time != last_await_time) { - logServer.deviceLog(this.device_code,"await_time" ,String.valueOf(await_time)); + logServer.deviceItemValue(this.device_code,"lettering_silo_number" ,String.valueOf(lettering_silo_number)); + logServer.deviceExecuteLog(this.device_code,"","","信号lettering_silo_number:" + last_lettering_silo_number + "->" + lettering_silo_number); } if (order != last_order) { - logServer.deviceLog(this.device_code,"order" ,String.valueOf(order)); - logServer.deviceLogToacs(this.device_code,"","","信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); + } + + int realError = 0; + if (!this.itemProtocol.getIsonline()) { + status_type = 01; + } else { + status_type = 02; + if (error == 1 || error == 51) { + status_type = 05; + realError = error; + } else if (mode == 1 && order > 0) { + status_type = 03; + realError = 0; + } else if (mode == 0 && order > 0) { + realError = 0; + status_type = 04; + } + } + if (status_type != last_status_type) { + JSONObject map = new JSONObject(); + map.put("device_code", device_code); + map.put("status_type", "0" + status_type); + map.put("start_time", DateUtil.now()); + map.put("error_code", realError); + try { + acsToWmsService.feedDeviceStatusType(map); + last_status_type = status_type; + }catch (Exception e){ + log.error("设备状态反馈失败,设备{},原因{}",device_code,e.getMessage()); + } } synchronized (this){ - int realError = 0; - long now_feedTime = System.currentTimeMillis(); - if (now_feedTime - last_feedDeviceStatusTime >= 5000){ - heartbeat = this.itemProtocol.getItem_heartbeat(); - if (heartbeat == last_heartbeat){ - status_type = 01; - } else { - status_type = 02; - if (error == 1 || error == 51) { - status_type = 05; - realError = error; - }else if (mode == 1 && order > 0) { - status_type = 03; - realError = 0; - } else if (mode == 0 && order > 0) { - status_type = 04; - realError = 0; - } - } - if (status_type != last_status_type) { - JSONObject map = new JSONObject(); - map.put("device_code", device_code); - map.put("status_type", "0" + status_type); - map.put("start_time", DateUtil.now()); - map.put("error_code",realError); - acsToWmsService.feedDeviceStatusType(map); - last_status_type = status_type; - } - last_heartbeat = heartbeat; - last_feedDeviceStatusTime = now_feedTime; - } +// int realError = 0; +// long now_feedTime = System.currentTimeMillis(); +// if (now_feedTime - last_feedDeviceStatusTime >= 5000){ +// heartbeat = this.itemProtocol.getItem_heartbeat(); +// if (heartbeat == last_heartbeat){ +// status_type = 01; +// } else { +// status_type = 02; +// if (error == 1 || error == 51) { +// status_type = 05; +// realError = error; +// }else if (mode == 1 && order > 0) { +// status_type = 03; +// realError = 0; +// } else if (mode == 0 && order > 0) { +// status_type = 04; +// realError = 0; +// } +// } +// if (status_type != last_status_type) { +// JSONObject map = new JSONObject(); +// map.put("device_code", device_code); +// map.put("status_type", "0" + status_type); +// map.put("start_time", DateUtil.now()); +// map.put("error_code",realError); +// acsToWmsService.feedDeviceStatusType(map); +// last_status_type = status_type; +// } +// last_heartbeat = heartbeat; +// last_feedDeviceStatusTime = now_feedTime; +// } } } catch (Exception var17) { @@ -386,47 +408,47 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive JSONObject param = new JSONObject(); param.put("ext_order_id",ext_order_id); acsToWmsService.feedbackOrderStatus(param); - logServer.deviceLogToacs(this.device_code,"","",device_code+":,对应的工单的外部标识:"+ext_order_id); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,对应的工单的外部标识:"+ext_order_id); }else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,对应的工单的没有外部标识"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,对应的工单的没有外部标识"); } }else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,对应的工单信息为空"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,对应的工单信息为空"); } produceshiftorderService.updateByOrderCode(dto); this.writing("to_confirm_finished","1"); this.writing("to_order", "0"); this.writing("to_clear","1"); this.writing("to_pause","1"); - logServer.deviceLogToacs(this.device_code,"","",device_code+":,任务确认完成,电器信号写入成功"); - }else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,mode:"+mode + ",order_finish>"+ order_finish +",last_order_finish>"+last_order_finish + "order:" + order); - } + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,任务确认完成,电器信号写入成功"); + }/*else { + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,mode:"+mode + ",order_finish>"+ order_finish +",last_order_finish>"+last_order_finish + "order:" + order); + }*/ if(!requireSucess){ // if ( move == 1 && mode == 1 && order > 0 && full_number>0 ) { if ( move == 1 && mode == 1 && full_req == 1 ) { // if ( full_req == 1 ) { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "开始申请任务"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "开始申请任务"); apply_task(); - } else { - logServer.deviceLogToacs(this.device_code,"","","不满足下发满框请求任务条件,mode:"+mode+"move:"+move+"full_req:"+full_req); + }/* else { + logServer.deviceExecuteLog(this.device_code,"","","不满足下发满框请求任务条件,mode:"+mode+"move:"+move+"full_req:"+full_req); - } + }*/ if (move == 0 && mode == 1 && empty_req == 1){ // if (empty_req == 1) { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "开始申请空箱请求任务"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "开始申请空箱请求任务"); apply_empty_task(); - }else { - logServer.deviceLogToacs(this.device_code,"","","不满足下发空框请求任务条件,mode:"+mode+"move:"+move+"empty_req:"+empty_req); + }/*else { + logServer.deviceExecuteLog(this.device_code,"","","不满足下发空框请求任务条件,mode:"+mode+"move:"+move+"empty_req:"+empty_req); - } + }*/ }else { - logServer.deviceLogToacs(this.device_code,"","","是否请求成功:requireSucess:"+requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","是否请求成功:requireSucess:"+requireSucess); } if(agvphase == 0x03) @@ -440,9 +462,9 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); } } @@ -457,9 +479,9 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); } } @@ -474,9 +496,9 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); } } @@ -489,9 +511,9 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,inst为空"); } } @@ -559,7 +581,7 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive Boolean flag = false; List list = routeLineService.getPathLinesByCode(this.device_code, "normal"); if (ObjectUtil.isEmpty(list)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":未找到对应路由"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":未找到对应路由"); throw new BadRequestException(this.device_code + ":未找到对应路由"); } HailiangEngravingCacheDeviceDriver hailiangEngravingCacheDeviceDriver; @@ -600,17 +622,17 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive flag = true; break; } catch (Exception e) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务成功"); } } //生成任务成功 if (flag) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":专机生成任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":专机生成任务成功"); requireSucess = true; } else { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":条件不满足未找到起点设备"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":条件不满足未找到起点设备"); } } return true; @@ -627,17 +649,17 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive Boolean flag = false; List list = routeLineService.getShortPathLinesByCode(this.device_code, "normal"); if (ObjectUtil.isEmpty(list)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":未找到对应路由"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":未找到对应路由"); throw new BadRequestException(this.device_code + ":未找到对应路由"); } String link_device = this.getDevice().getExtraValue().get("link_device_code").toString(); ProduceshiftorderDto order = produceshiftorderService.findOrderByDeviceCode(link_device); if (ObjectUtil.isEmpty(order)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); throw new BadRequestException(this.device_code + ":关联设备" + link_device + "未找到对应设备工单"); } if (order.getIs_needmove().equals("0")){ - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "工单,不需要agv搬运"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":关联设备" + link_device + "工单,不需要agv搬运"); return false; } //查找当前工单对应的物料编号 @@ -695,17 +717,17 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive flag = true; break; } catch (Exception e) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务成功"); } } //生成任务成功 if (flag) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":刻字机满料请求任务生成成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":刻字机满料请求任务生成成功"); requireSucess = true; } else { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":条件不满足未找到起点设备"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":条件不满足未找到起点设备"); } } return true; @@ -761,7 +783,7 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, value); - logServer.deviceLogToacs(this.device_code,"","","下发信号:" + key + ",value:"+value); + logServer.deviceExecuteLog(this.device_code,"","","下发信号:" + key + ",value:"+value); ReadUtil.write(itemMap, server); } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_foldingDisc_smart/HailiangFoldingDiscSmartDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_foldingDisc_smart/HailiangFoldingDiscSmartDeviceDriver.java index e85a3368..06c19777 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_foldingDisc_smart/HailiangFoldingDiscSmartDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_foldingDisc_smart/HailiangFoldingDiscSmartDeviceDriver.java @@ -11,7 +11,7 @@ import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; @@ -41,7 +41,7 @@ public class HailiangFoldingDiscSmartDeviceDriver extends AbstractOpcDeviceDrive @Autowired TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl"); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); //放货准备锁 String putReadyLock = null; @@ -128,24 +128,24 @@ public class HailiangFoldingDiscSmartDeviceDriver extends AbstractOpcDeviceDrive if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (number != last_number) { - logServer.deviceLog(this.device_code,"number" ,String.valueOf(number)); - logServer.deviceLogToacs(this.device_code,"","","信号number:" + last_number + "->" + number); + logServer.deviceItemValue(this.device_code,"number" ,String.valueOf(number)); + logServer.deviceExecuteLog(this.device_code,"","","信号number:" + last_number + "->" + number); } if (container_type != last_container_type) { - logServer.deviceLog(this.device_code,"container_type" ,String.valueOf(container_type)); - logServer.deviceLogToacs(this.device_code,"","","信号container_type:" + last_container_type + "->" + container_type); + logServer.deviceItemValue(this.device_code,"container_type" ,String.valueOf(container_type)); + logServer.deviceExecuteLog(this.device_code,"","","信号container_type:" + last_container_type + "->" + container_type); } } catch (Exception var17) { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java index 38ac5f8f..9860c739 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java @@ -21,7 +21,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -69,7 +69,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -155,7 +155,6 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i private Boolean apply_handling = false; //申请物料 private Boolean apply_material = false; - //暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域 int flag = 0; @@ -190,110 +189,132 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i await_time = this.itemProtocol.getItem_await_time(); //待机时间(S) order = this.itemProtocol.getItem_order(); //工单号 if (mode != last_mode) { - logServer.deviceLog(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { - logServer.deviceLog(this.device_code, "move", String.valueOf(move)); - logServer.deviceLogToacs(this.device_code, "", "", "信号move(取反):" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (packer_ready != last_packer_ready) { - logServer.deviceLog(this.device_code, "packer_ready", String.valueOf(packer_ready)); - logServer.deviceLogToacs(this.device_code, "", "", "信号packer_ready:" + last_packer_ready + "->" + packer_ready); + logServer.deviceItemValue(this.device_code,"packer_ready" ,String.valueOf(packer_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号packer_ready:" + last_packer_ready + "->" + packer_ready); } if (lack_req != last_lack_req) { if (lack_req == 0) { this.setRequireSucess(false); } - logServer.deviceLog(this.device_code, "lack_req", String.valueOf(lack_req)); - logServer.deviceLogToacs(this.device_code, "", "", "信号lack_req:" + last_lack_req + "->" + lack_req); + logServer.deviceItemValue(this.device_code,"lack_req" ,String.valueOf(lack_req)); + logServer.deviceExecuteLog(this.device_code,"","","信号lack_req:" + last_lack_req + "->" + lack_req); } if (hopper_already != last_hopper_already) { - logServer.deviceLog(this.device_code, "hopper_already", String.valueOf(hopper_already)); - logServer.deviceLogToacs(this.device_code, "", "", "信号hopper_already:" + last_hopper_already + "->" + hopper_already); + logServer.deviceItemValue(this.device_code,"hopper_already" ,String.valueOf(hopper_already)); + logServer.deviceExecuteLog(this.device_code,"","","信号hopper_already:" + last_hopper_already + "->" + hopper_already); } if (req_task_empty != last_req_task_empty) { if (req_task_empty == 0) { this.setFullrequireSucess(false); } - logServer.deviceLog(this.device_code, "req_task_empty", String.valueOf(req_task_empty)); - logServer.deviceLogToacs(this.device_code, "", "", "信号req_task_empty:" + last_req_task_empty + "->" + req_task_empty); + logServer.deviceItemValue(this.device_code,"req_task_empty" ,String.valueOf(req_task_empty)); + logServer.deviceExecuteLog(this.device_code,"","","信号req_task_empty:" + last_req_task_empty + "->" + req_task_empty); } if (hopper_removed != last_hopper_removed) { - logServer.deviceLog(this.device_code, "hopper_removed", String.valueOf(hopper_removed)); - logServer.deviceLogToacs(this.device_code, "", "", "信号hopper_removed:" + last_hopper_removed + "->" + hopper_removed); + logServer.deviceItemValue(this.device_code,"hopper_removed" ,String.valueOf(hopper_removed)); + logServer.deviceExecuteLog(this.device_code,"","","信号hopper_removed:" + last_hopper_removed + "->" + hopper_removed); } if (order_finish != last_order_finish) { - logServer.deviceLog(this.device_code, "order_finish", String.valueOf(order_finish)); - logServer.deviceLogToacs(this.device_code, "", "", "信号order_finish:" + last_order_finish + "->" + order_finish); + logServer.deviceItemValue(this.device_code,"order_finish" ,String.valueOf(order_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_finish:" + last_order_finish + "->" + order_finish); } if (error != last_error) { - logServer.deviceLog(this.device_code, "error", String.valueOf(error)); - logServer.deviceLogToacs(this.device_code, "", "", "信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (order_now != last_order_now) { - logServer.deviceLog(this.device_code, "order_now", String.valueOf(order_now)); - logServer.deviceLogToacs(this.device_code, "", "", "信号order_now:" + last_order_now + "->" + order_now); + logServer.deviceItemValue(this.device_code,"order_now" ,String.valueOf(order_now)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_now:" + last_order_now + "->" + order_now); if (mode == 1 && order > 0){ JSONObject map = new JSONObject(); map.put("order",order); map.put("real_qty",order_now); - acsToWmsService.feedOrderRealQty(map); + try { + acsToWmsService.feedOrderRealQty(map); + }catch (Exception e){ + log.error("工单数量反馈失败,设备{},原因{}",device_code,e.getMessage()); + } } } -/* if (open_ready_time != last_open_ready_time) { - logServer.deviceLog(this.device_code, "open_ready_time", String.valueOf(open_ready_time)); - logServer.deviceLogToacs(this.device_code, "", "", "信号open_ready_time:" + last_open_ready_time + "->" + open_ready_time); - }*/ -/* if (device_running_time != last_device_running_time) { - logServer.deviceLog(this.device_code, "device_running_time", String.valueOf(device_running_time)); - logServer.deviceLogToacs(this.device_code, "", "", "信号device_running_time:" + last_device_running_time + "->" + device_running_time); - }*/ - if (await_time != last_await_time) { - logServer.deviceLog(this.device_code, "await_time", String.valueOf(await_time)); - logServer.deviceLogToacs(this.device_code, "", "", "信号await_time:" + last_await_time + "->" + await_time); - } if (order != last_order) { - logServer.deviceLog(this.device_code, "order", String.valueOf(order)); - logServer.deviceLogToacs(this.device_code, "", "", "信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); } - synchronized (this){ - int realError = 0; - long now_feedTime = System.currentTimeMillis(); - if (now_feedTime - last_feedDeviceStatusTime >= 5000){ - heartbeat = this.itemProtocol.getItem_heartbeat(); - if (heartbeat == last_heartbeat){ - status_type = 01; - } else { - status_type = 02; - if (error == 1 || error == 51) { - status_type = 05; - realError = error; - }else if (mode == 1 && order > 0) { - status_type = 03; - realError = 0; - } else if (mode == 0 && order > 0) { - status_type = 04; - realError = 0; - } - } - if (status_type != last_status_type) { - JSONObject map = new JSONObject(); - map.put("device_code", device_code); - map.put("status_type", "0" + status_type); - map.put("error_code",realError); - map.put("start_time", DateUtil.now()); - acsToWmsService.feedDeviceStatusType(map); - last_status_type = status_type; - } - last_heartbeat = heartbeat; - last_feedDeviceStatusTime = now_feedTime; + + int realError = 0; + if (!this.itemProtocol.getIsonline()) { + status_type = 01; + } else { + status_type = 02; + if (error == 1 || error == 51) { + status_type = 05; + realError = error; + } else if (mode == 1 && order > 0) { + status_type = 03; + realError = 0; + } else if (mode == 0 && order > 0) { + realError = 0; + status_type = 04; } } + if (status_type != last_status_type) { + JSONObject map = new JSONObject(); + map.put("device_code", device_code); + map.put("status_type", "0" + status_type); + map.put("start_time", DateUtil.now()); + map.put("error_code", realError); + try { + acsToWmsService.feedDeviceStatusType(map); + last_status_type = status_type; + }catch (Exception e){ + log.error("设备状态反馈失败,设备{},原因{}",device_code,e.getMessage()); + } + } + synchronized (this){ +// int realError = 0; +// long now_feedTime = System.currentTimeMillis(); +// if (now_feedTime - last_feedDeviceStatusTime >= 5000){ +// heartbeat = this.itemProtocol.getItem_heartbeat(); +// if (heartbeat == last_heartbeat){ +// status_type = 01; +// } else { +// status_type = 02; +// if (error == 1 || error == 51) { +// status_type = 05; +// realError = error; +// }else if (mode == 1 && order > 0) { +// status_type = 03; +// realError = 0; +// } else if (mode == 0 && order > 0) { +// status_type = 04; +// realError = 0; +// } +// } +// if (status_type != last_status_type) { +// JSONObject map = new JSONObject(); +// map.put("device_code", device_code); +// map.put("status_type", "0" + status_type); +// map.put("error_code",realError); +// map.put("start_time", DateUtil.now()); +// acsToWmsService.feedDeviceStatusType(map); +// last_status_type = status_type; +// } +// last_heartbeat = heartbeat; +// last_feedDeviceStatusTime = now_feedTime; +// } + } } catch (Exception var17) { return; @@ -332,33 +353,33 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i JSONObject param = new JSONObject(); param.put("ext_order_id", ext_order_id); acsToWmsService.feedbackOrderStatus(param); - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":,对应的工单的外部标识:" + ext_order_id); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单的外部标识:" + ext_order_id); } else { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":,对应的工单的没有外部标识"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单的没有外部标识"); } } else { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":,对应的工单信息为空"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单信息为空"); } produceshiftorderService.updateByOrderCode(dto); this.writing("to_confirm_finished", "1"); this.writing("to_order", "0"); this.writing("to_clear", "1"); this.writing("to_pause", "1"); - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":,任务确认完成,电器信号写入成功"); - } else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,order_finish>"+ order_finish +",last_order_finish>"+last_order_finish + "mode:" + mode + "order:" + order); - } + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,任务确认完成,电器信号写入成功"); + } /*else { + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,order_finish>"+ order_finish +",last_order_finish>"+last_order_finish + "mode:" + mode + "order:" + order); + }*/ if (ObjectUtil.isEmpty(inst)) { if (!requireSucess) { if (mode == 1 && lack_req == 1 && move == 0) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":,move:" + move + ",mode:" + mode + ",requireSucess:" + requireSucess + "开始申请缺料请求任务"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,move:" + move + ",mode:" + mode + ",requireSucess:" + requireSucess + "开始申请缺料请求任务"); apply_task(); } } if (!fullrequireSucess) { if (mode == 1 && req_task_empty == 1 && move == 1) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":,move:" + move + ",mode:" + mode + ",fullrequireSucess:" + fullrequireSucess + "开始申请请求取走空料斗任务"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,move:" + move + ",mode:" + mode + ",fullrequireSucess:" + fullrequireSucess + "开始申请请求取走空料斗任务"); apply_take_empty_task(); } } @@ -376,7 +397,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); /* } else { logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst); @@ -394,9 +415,9 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈,原因move:" + move + ",error:" + error + ",inst" + inst); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈,原因move:" + move + ",error:" + error + ",inst" + inst); } } @@ -410,9 +431,9 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈,原因move:" + move + ",error:" + error + ",inst" + inst); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈,原因move:" + move + ",error:" + error + ",inst" + inst); } } @@ -430,9 +451,9 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈,move:" + move + ",error:" + error + ",inst:" + inst); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈,move:" + move + ",error:" + error + ",inst:" + inst); } } @@ -473,13 +494,13 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i Boolean flag = false; List list = routeLineService.getShortPathLinesByCode(this.device_code, "normal"); if (ObjectUtil.isEmpty(list)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":未找到对应路由"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":未找到对应路由"); throw new BadRequestException(this.device_code + ":未找到对应路由"); } String link_device = this.getDevice().getExtraValue().get("link_device_code").toString(); ProduceshiftorderDto order = produceshiftorderService.findOrderByDeviceCode(link_device); if (ObjectUtil.isEmpty(order)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); throw new BadRequestException(this.device_code + ":关联设备" + link_device + "未找到对应设备工单"); } HailiangEngravingCacheDeviceDriver hailiangEngravingCacheDeviceDriver; @@ -501,7 +522,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i //判断缓存位是否锁定 JSONObject jsonObject = runpointwo.query("device_code = '" + next_device_code + "' and islock = '1'").uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonObject)) { - logServer.deviceLogToacs(this.device_code, "", "", "对应路由设备," + next_device_code + "已锁定"); + logServer.deviceExecuteLog(this.device_code, "", "", "对应路由设备," + next_device_code + "已锁定"); continue; } TaskDto onedto = new TaskDto(); @@ -533,19 +554,19 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i flag = true; break; } catch (Exception e) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } } } //生成任务成功 if (flag) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":取走空料斗任务创建成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":取走空料斗任务创建成功"); fullrequireSucess = true; } else { //如果都没有则调用mes接口申请入缓存线 //生成任务 //前往缓存线 - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":分配任务缓存线"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":分配任务缓存线"); } } return true; @@ -560,18 +581,18 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i Boolean flag = false; List list = routeLineService.getPathLinesByCode(this.device_code, "normal"); if (ObjectUtil.isEmpty(list)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":未找到对应路由"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":未找到对应路由"); throw new BadRequestException(this.device_code + ":未找到对应路由"); } String link_device = this.getDevice().getExtraValue().get("link_device_code").toString(); ProduceshiftorderDto order = produceshiftorderService.findOrderByDeviceCode(link_device); if (ObjectUtil.isEmpty(order)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); throw new BadRequestException(this.device_code + ":关联设备" + link_device + "未找到对应设备工单"); } if (StrUtil.isNotEmpty(order.getIs_needmove()) && order.getIs_needmove().equals("0")) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "工单,不需要agv搬运"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":关联设备" + link_device + "工单,不需要agv搬运"); return false; } //查找当前工单对应的物料编号 @@ -595,7 +616,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i } String material = route_link_device.getMaterial_type(); if (StrUtil.isEmpty(material)) { - logServer.deviceLogToacs(this.device_code, "", "", hailiangEngravingCacheDeviceDriver.getDevice_code() + ":缓存位物料为空"); + logServer.deviceExecuteLog(this.device_code, "", "", hailiangEngravingCacheDeviceDriver.getDevice_code() + ":缓存位物料为空"); continue; } if (material.equals(cpbh)) { @@ -624,7 +645,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i flag = true; break; } catch (Exception e) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } } } @@ -632,13 +653,13 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i //生成任务成功 if (flag) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":缺料请求任务生成成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":缺料请求任务生成成功"); requireSucess = true; } else { //如果都没有则调用mes接口申请入缓存线 //生成任务 //前往缓存线 - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":分配任务缓存线"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":分配任务缓存线"); } } return true; @@ -693,7 +714,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, value); - logServer.deviceLogToacs(this.device_code, "", "", "下发信号:" + key + ",value:" + value); + logServer.deviceExecuteLog(this.device_code, "", "", "下发信号:" + key + ",value:" + value); ReadUtil.write(itemMap, server); } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_paint_line/HailiangPaintLineDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_paint_line/HailiangPaintLineDeviceDriver.java index 2e172188..a2131587 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_paint_line/HailiangPaintLineDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_paint_line/HailiangPaintLineDeviceDriver.java @@ -11,7 +11,7 @@ import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; @@ -41,7 +41,7 @@ public class HailiangPaintLineDeviceDriver extends AbstractOpcDeviceDriver imple @Autowired TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl"); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); //放货准备锁 String putReadyLock = null; @@ -128,24 +128,24 @@ public class HailiangPaintLineDeviceDriver extends AbstractOpcDeviceDriver imple if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (action != last_action) { - logServer.deviceLog(this.device_code,"action" ,String.valueOf(action)); - logServer.deviceLogToacs(this.device_code,"","","信号action:" + last_action + "->" + action); + logServer.deviceItemValue(this.device_code,"action" ,String.valueOf(action)); + logServer.deviceExecuteLog(this.device_code,"","","信号action:" + last_action + "->" + action); } if (number != last_number) { - logServer.deviceLog(this.device_code,"number" ,String.valueOf(number)); - logServer.deviceLogToacs(this.device_code,"","","信号number:" + last_number + "->" + number); + logServer.deviceItemValue(this.device_code,"number" ,String.valueOf(number)); + logServer.deviceExecuteLog(this.device_code,"","","信号number:" + last_number + "->" + number); } } catch (Exception var17) { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java index 2a8ed647..354186fa 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java @@ -17,7 +17,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; @@ -55,7 +55,7 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -218,18 +218,18 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (finish != last_finish) { - logServer.deviceLog(this.device_code,"finish" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + logServer.deviceItemValue(this.device_code,"finish" ,String.valueOf(finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号finish:" + last_finish + "->" + finish); if(finish == 1){ ProduceshiftorderDto deviceInfo = produceshiftorderService.findOrderByDeviceCode(this.device_code); deviceInfo.setOrder_status("2"); @@ -250,7 +250,7 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im protected void thingToNothing() { log.debug("从有货到无货 清理数据"); - logServer.deviceLogToacs(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); this.setRequireSucess(false); this.setApplySucess(false); diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java index d393131c..05f2b817 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java @@ -3,7 +3,6 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_device import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -19,7 +18,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -65,7 +64,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); String container; @@ -79,7 +78,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme int mode = 0; int error = 0; - /* int move = 0;*/ + /* int move = 0;*/ int task = 0; int is_open = 0; int running = 0; @@ -109,7 +108,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme int operation_type = 0; int last_mode = 0; int last_error = 0; -/* int last_move = 0;*/ + /* int last_move = 0;*/ int last_task = 0; int last_is_open = 0; int last_running = 0; @@ -136,9 +135,9 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme int last_line_ready = 0; //线体就绪 int last_device_online = 0; //专机联机 - int heartbeat = 0; - int last_heartbeat = 0; - private long last_feedDeviceStatusTime = 0; + //int heartbeat = 0; + //int last_heartbeat = 0; + //private long last_feedDeviceStatusTime = 0; int status_type = 0; int last_status_type = 0; @@ -147,7 +146,6 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme String message = null; Boolean iserror = false; - boolean hasVehicle = false; boolean isReady = false; protected int instruction_num = 0; @@ -199,7 +197,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme public Device getDevice() { return this.device; } - + @Override public synchronized void execute() throws Exception { @@ -224,171 +222,196 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme device_running_time = this.itemProtocol.getItem_device_running_time(); await_time = this.itemProtocol.getItem_await_time(); order_prod_allnum = this.itemProtocol.getItem_order_prod_allnum(); - empty_is_lack = this.itemProtocol.getItem_empty_is_lack(); - device_is_running = this.itemProtocol.getItem_device_is_running(); - empty_is_finish = this.itemProtocol.getItem_empty_is_finish(); - full_ready_req_agv = this.itemProtocol.getItem_full_ready_req_agv(); - full_out = this.itemProtocol.getItem_full_out(); - device_prepare = this.itemProtocol.getItem_device_prepare(); - device_ready = this.itemProtocol.getItem_device_ready(); - line_ready = this.itemProtocol.getItem_line_ready(); + empty_is_lack = this.itemProtocol.getItem_empty_is_lack(); + device_is_running = this.itemProtocol.getItem_device_is_running(); + empty_is_finish = this.itemProtocol.getItem_empty_is_finish(); + full_ready_req_agv = this.itemProtocol.getItem_full_ready_req_agv(); + full_out = this.itemProtocol.getItem_full_out(); + device_prepare = this.itemProtocol.getItem_device_prepare(); + device_ready = this.itemProtocol.getItem_device_ready(); + line_ready = this.itemProtocol.getItem_line_ready(); if (mode != last_mode) { - this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (empty_is_lack != last_empty_is_lack) { - logServer.deviceLog(this.device_code,"empty_is_lack" ,String.valueOf(empty_is_lack)); - logServer.deviceLogToacs(this.device_code,"","","信号empty_is_lack:" + last_empty_is_lack + "->" + empty_is_lack); + logServer.deviceItemValue(this.device_code,"empty_is_lack" ,String.valueOf(empty_is_lack)); + logServer.deviceExecuteLog(this.device_code,"","","信号empty_is_lack:" + last_empty_is_lack + "->" + empty_is_lack); } if (device_is_running != last_device_is_running) { - logServer.deviceLog(this.device_code,"device_is_running" ,String.valueOf(device_is_running)); - logServer.deviceLogToacs(this.device_code,"","","信号device_is_running:" + last_device_is_running + "->" + device_is_running); + logServer.deviceItemValue(this.device_code,"device_is_running" ,String.valueOf(device_is_running)); + logServer.deviceExecuteLog(this.device_code,"","","信号device_is_running:" + last_device_is_running + "->" + device_is_running); } if (empty_is_finish != last_empty_is_finish) { - logServer.deviceLog(this.device_code,"empty_is_finish" ,String.valueOf(empty_is_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号empty_is_finish:" + last_empty_is_finish + "->" + empty_is_finish); + logServer.deviceItemValue(this.device_code,"empty_is_finish" ,String.valueOf(empty_is_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号empty_is_finish:" + last_empty_is_finish + "->" + empty_is_finish); } if (full_ready_req_agv != last_full_ready_req_agv) { - logServer.deviceLog(this.device_code,"full_ready_req_agv" ,String.valueOf(full_ready_req_agv)); - logServer.deviceLogToacs(this.device_code,"","","信号full_ready_req_agv:" + last_full_ready_req_agv + "->" + full_ready_req_agv); + logServer.deviceItemValue(this.device_code,"full_ready_req_agv" ,String.valueOf(full_ready_req_agv)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_ready_req_agv:" + last_full_ready_req_agv + "->" + full_ready_req_agv); } if (full_out != last_full_out) { - logServer.deviceLog(this.device_code,"full_out" ,String.valueOf(full_out)); - logServer.deviceLogToacs(this.device_code,"","","信号full_out:" + last_full_out + "->" + full_out); + logServer.deviceItemValue(this.device_code,"full_out" ,String.valueOf(full_out)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_out:" + last_full_out + "->" + full_out); } if (device_prepare != last_device_prepare) { - logServer.deviceLog(this.device_code,"device_prepare" ,String.valueOf(device_prepare)); - logServer.deviceLogToacs(this.device_code,"","","信号device_prepare:" + last_device_prepare + "->" + device_prepare); + logServer.deviceItemValue(this.device_code,"device_prepare" ,String.valueOf(device_prepare)); + logServer.deviceExecuteLog(this.device_code,"","","信号device_prepare:" + last_device_prepare + "->" + device_prepare); } if (device_ready != last_device_ready) { - logServer.deviceLog(this.device_code,"device_ready" ,String.valueOf(device_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号device_ready:" + last_device_ready + "->" + device_ready); + logServer.deviceItemValue(this.device_code,"device_ready" ,String.valueOf(device_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号device_ready:" + last_device_ready + "->" + device_ready); } if (line_ready != last_line_ready) { - logServer.deviceLog(this.device_code,"line_ready" ,String.valueOf(line_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号line_ready:" + last_line_ready + "->" + line_ready); + logServer.deviceItemValue(this.device_code,"line_ready" ,String.valueOf(line_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号line_ready:" + last_line_ready + "->" + line_ready); } if (device_online != last_device_online) { - logServer.deviceLog(this.device_code,"device_online" ,String.valueOf(device_online)); - logServer.deviceLogToacs(this.device_code,"","","信号device_online:" + last_device_online + "->" + device_online); + logServer.deviceItemValue(this.device_code,"device_online" ,String.valueOf(device_online)); + logServer.deviceExecuteLog(this.device_code,"","","信号device_online:" + last_device_online + "->" + device_online); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (task != last_task) { - logServer.deviceLog(this.device_code,"task" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); + logServer.deviceItemValue(this.device_code,"task" ,String.valueOf(task)); + logServer.deviceExecuteLog(this.device_code,"","","信号task:" + last_task + "->" + task); } if (is_open != last_is_open) { - logServer.deviceLog(this.device_code,"is_open" ,String.valueOf(is_open)); - logServer.deviceLogToacs(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); + logServer.deviceItemValue(this.device_code,"is_open" ,String.valueOf(is_open)); + logServer.deviceExecuteLog(this.device_code,"","","信号is_open:" + last_is_open + "->" + is_open); } if (running != last_running) { - logServer.deviceLog(this.device_code,"running" ,String.valueOf(running)); - logServer.deviceLogToacs(this.device_code,"","","信号running:" + last_running + "->" + running); + logServer.deviceItemValue(this.device_code,"running" ,String.valueOf(running)); + logServer.deviceExecuteLog(this.device_code,"","","信号running:" + last_running + "->" + running); } if (finish != last_finish) { - logServer.deviceLog(this.device_code,"finish" ,String.valueOf(finish)); - logServer.deviceLogToacs(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + logServer.deviceItemValue(this.device_code,"finish" ,String.valueOf(finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号finish:" + last_finish + "->" + finish); } if (all_ready != last_all_ready) { - logServer.deviceLog(this.device_code,"all_ready" ,String.valueOf(all_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + all_ready); + logServer.deviceItemValue(this.device_code,"all_ready" ,String.valueOf(all_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + all_ready); } if (order_compel_finish != last_order_compel_finish) { - logServer.deviceLog(this.device_code,"order_compel_finish" ,String.valueOf(order_compel_finish)); - logServer.deviceLogToacs(this.device_code,"","","信号order_compel_finish:" + last_order_compel_finish + "->" + order_compel_finish); + logServer.deviceItemValue(this.device_code,"order_compel_finish" ,String.valueOf(order_compel_finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_compel_finish:" + last_order_compel_finish + "->" + order_compel_finish); } if (order != last_order) { - logServer.deviceLog(this.device_code,"order" ,String.valueOf(order)); - logServer.deviceLogToacs(this.device_code,"","","信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); } if (now_order_prod_num != last_now_order_prod_num) { - logServer.deviceLog(this.device_code,"now_order_prod_num" ,String.valueOf(now_order_prod_num)); - logServer.deviceLogToacs(this.device_code,"","","信号now_order_prod_num:" + last_now_order_prod_num + "->" + now_order_prod_num); + logServer.deviceItemValue(this.device_code,"now_order_prod_num" ,String.valueOf(now_order_prod_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号now_order_prod_num:" + last_now_order_prod_num + "->" + now_order_prod_num); JSONObject map = new JSONObject(); - if (mode == 1 && order > 0){ - map.put("order",order); - map.put("real_qty",now_order_prod_num); - acsToWmsService.feedOrderRealQty(map); + if (mode == 1 && order > 0) { + map.put("order", order); + map.put("real_qty", now_order_prod_num); + try { + acsToWmsService.feedOrderRealQty(map); + } catch (Exception e){ + log.error("工单数量反馈失败,设备{},原因{}",device_code,e.getMessage()); + } } } if (full_number != last_full_number) { - logServer.deviceLog(this.device_code,"full_number" ,String.valueOf(full_number)); - logServer.deviceLogToacs(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); + logServer.deviceItemValue(this.device_code,"full_number" ,String.valueOf(full_number)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); } if (now_one_box_num != last_now_one_box_num) { - logServer.deviceLog(this.device_code,"now_one_box_num" ,String.valueOf(now_one_box_num)); - logServer.deviceLogToacs(this.device_code,"","","信号now_one_box_num:" + last_now_one_box_num + "->" + now_one_box_num); + logServer.deviceItemValue(this.device_code,"now_one_box_num" ,String.valueOf(now_one_box_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号now_one_box_num:" + last_now_one_box_num + "->" + now_one_box_num); } if (storage_stock_num != last_storage_stock_num) { - logServer.deviceLog(this.device_code,"storage_stock_num" ,String.valueOf(storage_stock_num)); - logServer.deviceLogToacs(this.device_code,"","","信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); + logServer.deviceItemValue(this.device_code,"storage_stock_num" ,String.valueOf(storage_stock_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); } if (line_stock_num != last_line_stock_num) { - logServer.deviceLog(this.device_code,"line_stock_num" ,String.valueOf(line_stock_num)); - logServer.deviceLogToacs(this.device_code,"","","信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); + logServer.deviceItemValue(this.device_code,"line_stock_num" ,String.valueOf(line_stock_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); } if (open_ready_time != last_open_ready_time) { - logServer.deviceLog(this.device_code,"open_ready_time" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); - } - /* if (device_running_time != last_device_running_time) { - logServer.deviceLog(this.device_code,"device_running_time" ,String.valueOf(device_running_time)); - logServer.deviceLogToacs(this.device_code,"","","信号device_running_time:" + last_device_running_time + "->" + device_running_time); - }*/ - if (await_time != last_await_time) { - logServer.deviceLog(this.device_code,"await_time" ,String.valueOf(await_time)); - logServer.deviceLogToacs(this.device_code,"","","信号await_time:" + last_await_time + "->" + await_time); + logServer.deviceItemValue(this.device_code,"open_ready_time" ,String.valueOf(open_ready_time)); + logServer.deviceExecuteLog(this.device_code,"","","信号open_ready_time:" + last_open_ready_time + "->" + open_ready_time); } + if (order_prod_allnum != last_order_prod_allnum) { - logServer.deviceLog(this.device_code,"order_prod_allnum" ,String.valueOf(order_prod_allnum)); - logServer.deviceLogToacs(this.device_code,"","","信号order_prod_allnum:" + last_order_prod_allnum + "->" + order_prod_allnum); + logServer.deviceItemValue(this.device_code,"order_prod_allnum" ,String.valueOf(order_prod_allnum)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_prod_allnum:" + last_order_prod_allnum + "->" + order_prod_allnum); } - synchronized (this){ - int realError = 0; - long now_feedTime = System.currentTimeMillis(); - if (now_feedTime - last_feedDeviceStatusTime >= 5000){ - heartbeat = this.itemProtocol.getHeartbeat(); - if (heartbeat == last_heartbeat){ - status_type = 01; - } else { - status_type = 02; - if (error == 1 || error == 51) { - status_type = 05; - realError = error; - }else if (mode == 1 && order > 0) { - status_type = 03; - realError = 0; - } else if (mode == 0 && order > 0) { - realError = 0; - status_type = 04; - } - } - if (status_type != last_status_type) { - JSONObject map = new JSONObject(); - map.put("device_code", device_code); - map.put("status_type", "0" + status_type); - map.put("start_time", DateUtil.now()); - map.put("error_code",realError); - acsToWmsService.feedDeviceStatusType(map); - last_status_type = status_type; - } - last_feedDeviceStatusTime = now_feedTime; - last_heartbeat = heartbeat; + + int realError = 0; + if (!this.itemProtocol.getIsonline()) { + status_type = 01; + } else { + status_type = 02; + if (error == 1 || error == 51) { + status_type = 05; + realError = error; + } else if (mode == 1 && order > 0) { + status_type = 03; + realError = 0; + } else if (mode == 0 && order > 0) { + realError = 0; + status_type = 04; } } + if (status_type != last_status_type) { + JSONObject map = new JSONObject(); + map.put("device_code", device_code); + map.put("status_type", "0" + status_type); + map.put("start_time", DateUtil.now()); + map.put("error_code", realError); + try { + acsToWmsService.feedDeviceStatusType(map); + last_status_type = status_type; + }catch (Exception e){ + log.error("设备状态反馈失败,设备{},原因{}",device_code,e.getMessage()); + } + } +// synchronized (this) { +// int realError = 0; +// long now_feedTime = System.currentTimeMillis(); +// if (now_feedTime - last_feedDeviceStatusTime >= 5000) { +// heartbeat = this.itemProtocol.getHeartbeat(); +// if (heartbeat == last_heartbeat) { +// status_type = 01; +// } else { +// status_type = 02; +// if (error == 1 || error == 51) { +// status_type = 05; +// realError = error; +// } else if (mode == 1 && order > 0) { +// status_type = 03; +// realError = 0; +// } else if (mode == 0 && order > 0) { +// realError = 0; +// status_type = 04; +// } +// } +// if (status_type != last_status_type) { +// JSONObject map = new JSONObject(); +// map.put("device_code", device_code); +// map.put("status_type", "0" + status_type); +// map.put("start_time", DateUtil.now()); +// map.put("error_code", realError); +// acsToWmsService.feedDeviceStatusType(map); +// last_status_type = status_type; +// } +// last_feedDeviceStatusTime = now_feedTime; +// last_heartbeat = heartbeat; +// } +// } } catch (Exception var17) { return; } - if(1 != 1){ + if (1 != 1) { // if (!this.itemProtocol.getIsonline()) { // this.setIsonline(false); // this.setIserror(true); @@ -404,46 +427,46 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme // this.setIserror(true); message = "有报警"; //无报警 - } else { + } else { this.setIsonline(true); this.setIserror(false); message = ""; Instruction instruction = null; List toInstructions; - if ( mode == 1 && finish != last_finish && finish == 1 && order > 0){ + if (mode == 1 && finish != last_finish && finish == 1 && order > 0) { ProduceshiftorderDto dto = new ProduceshiftorderDto(); dto.setOrder_code(order + ""); dto.setOrder_status("2"); ProduceshiftorderDto deviceInfo = produceshiftorderService.findOrderByDeviceCode(this.device_code); - if(deviceInfo != null){ + if (deviceInfo != null) { if (StrUtil.isNotEmpty(deviceInfo.getExt_order_id())) { String ext_order_id = deviceInfo.getExt_order_id(); JSONObject param = new JSONObject(); - param.put("ext_order_id",ext_order_id); + param.put("ext_order_id", ext_order_id); acsToWmsService.feedbackOrderStatus(param); - logServer.deviceLogToacs(this.device_code,"","",device_code+":,对应的工单的外部标识:"+ext_order_id); - }else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,对应的工单的没有外部标识"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单的外部标识:" + ext_order_id); + } else { + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单的没有外部标识"); } - }else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,对应的工单信息为空"); + } else { + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单信息为空"); } produceshiftorderService.updateByOrderCode(dto); - this.writing("to_confirm_finished","1"); + this.writing("to_confirm_finished", "1"); this.writing("to_order", "0"); - this.writing("to_clear","1"); - this.writing("to_pause","1"); - } else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,finish>"+ finish +",last_finish>"+last_finish + "mode:" + mode + "order:" + order); - } + this.writing("to_clear", "1"); + this.writing("to_pause", "1"); + }/* else { + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,finish>" + finish + ",last_finish>" + last_finish + "mode:" + mode + "order:" + order); + }*/ } last_mode = mode; last_error = error; - /* last_move = move;*/ + /* last_move = move;*/ last_task = task; last_is_open = is_open; - last_running = running ; + last_running = running; last_finish = finish; last_all_ready = all_ready; last_order_compel_finish = order_compel_finish; @@ -534,12 +557,10 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme Map itemMap = new HashMap(); itemMap.put(to_param, Integer.parseInt(value)); ReadUtil.write(itemMap, server); - logServer.deviceLogToacs(this.device_code,"","","下发信号:" + param + ":" + value); + logServer.deviceExecuteLog(this.device_code, "", "", "下发信号:" + param + ":" + value); } - - public boolean instruction_apply() throws Exception { return false; } @@ -584,7 +605,7 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme dto.setCreate_time(now); WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); + JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.insert(json); requireSucess = false; diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java index 88c5de3b..b4935ae1 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java @@ -20,7 +20,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -65,7 +65,7 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired AgvService agvService = SpringContextHolder.getBean(AgvService.class); @@ -170,44 +170,49 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr hasGoods = this.itemProtocol.getMove(); running = this.itemProtocol.getRunning(); if (mode != last_mode) { - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { if (move == 1) { thingToNothing(); } this.setRequireSucess(false); - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move(取反):" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (status != last_status) { - logServer.deviceLog(this.device_code,"status" ,String.valueOf(status)); - logServer.deviceLogToacs(this.device_code,"","","信号status:" + last_status + "->" + status); + logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status)); + logServer.deviceExecuteLog(this.device_code,"","","信号status:" + last_status + "->" + status); } if (task != last_task) { - logServer.deviceLog(this.device_code,"task" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); + logServer.deviceItemValue(this.device_code,"task" ,String.valueOf(task)); + logServer.deviceExecuteLog(this.device_code,"","","信号task:" + last_task + "->" + task); } if (running != last_running) { - logServer.deviceLog(this.device_code,"running" ,String.valueOf(running)); - logServer.deviceLogToacs(this.device_code,"","","信号running:" + last_running + "->" + running); + logServer.deviceItemValue(this.device_code,"running" ,String.valueOf(running)); + logServer.deviceExecuteLog(this.device_code,"","","信号running:" + last_running + "->" + running); + } if (allready != last_all_ready) { - logServer.deviceLog(this.device_code,"allready" ,String.valueOf(allready)); - logServer.deviceLogToacs(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + allready); + logServer.deviceItemValue(this.device_code,"allready" ,String.valueOf(allready)); + logServer.deviceExecuteLog(this.device_code,"","","信号allready:" + last_all_ready + "->" + allready); + } if (finish != last_finish) { - logServer.deviceLog(this.device_code,"finish" ,String.valueOf(finish)); - logServer.deviceLogToacs(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + logServer.deviceItemValue(this.device_code,"finish" ,String.valueOf(finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + } if (order != last_order) { - logServer.deviceLog(this.device_code,"order" ,String.valueOf(order)); - logServer.deviceLogToacs(this.device_code,"","","信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); + } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); + } if (mode == 2 && move != 0 && task > 0) { @@ -250,7 +255,7 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr agvphase = 0; index = 0; }else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst); } } //放空箱完成 @@ -263,7 +268,7 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr agvphase = 0; index = 0; }else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst); } } } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java index 0f177bb8..3469ff7f 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java @@ -5,7 +5,6 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -17,7 +16,6 @@ import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_auto_cache_line.HailiangAutoCacheLineDeviceDriver; -import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_feeding_line.HailiangCleaningFeedingLineDefination; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_machine_storage_station.HailiangCleaningMachineStorageStationDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_pour_station.HailiangSpecialPourStationDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; @@ -26,10 +24,9 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.WcsConfig; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.route.service.RouteLineService; @@ -40,7 +37,6 @@ import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import org.nl.utils.SpringContextHolder; -import org.nl.wql.core.bean.WQLObject; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; @@ -72,7 +68,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -186,44 +182,46 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + } if (move != last_move) { if (move == 0) { thingToNothing(); } - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); + } if (status != last_status) { - logServer.deviceLog(this.device_code,"status" ,String.valueOf(status)); - logServer.deviceLogToacs(this.device_code,"","","信号status:" + last_status + "->" + status); + logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status)); + logServer.deviceExecuteLog(this.device_code,"","","信号status:" + last_status + "->" + status); + } if (full_number != last_full_number) { - logServer.deviceLog(this.device_code,"full_number" ,String.valueOf(full_number)); - logServer.deviceLogToacs(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); + logServer.deviceItemValue(this.device_code,"full_number" ,String.valueOf(full_number)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); } if (task != last_task) { - logServer.deviceLog(this.device_code,"task" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); + logServer.deviceItemValue(this.device_code,"task" ,String.valueOf(task)); + logServer.deviceExecuteLog(this.device_code,"","","信号task:" + last_task + "->" + task); } if (allready != last_all_ready) { - logServer.deviceLog(this.device_code,"allready" ,String.valueOf(allready)); - logServer.deviceLogToacs(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + allready); + logServer.deviceItemValue(this.device_code,"allready" ,String.valueOf(allready)); + logServer.deviceExecuteLog(this.device_code,"","","信号allready:" + last_all_ready + "->" + allready); } if (finish != last_finish) { - logServer.deviceLog(this.device_code,"finish" ,String.valueOf(finish)); - logServer.deviceLogToacs(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + logServer.deviceItemValue(this.device_code,"finish" ,String.valueOf(finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号finish:" + last_finish + "->" + finish); } if (order != last_order) { - logServer.deviceLog(this.device_code,"order" ,String.valueOf(order)); - logServer.deviceLogToacs(this.device_code,"","","信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } } catch (Exception var17) { @@ -255,13 +253,13 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri // if ( move == 1 && mode == 1 && order > 0 && full_number>0 ) { if ( move == 1 && mode == 1 ) { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "开始申请任务"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "开始申请任务"); apply_task(); } else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "申请任务失败,不符合条件"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":,move:"+move+",requireSucess:" + requireSucess + "申请任务失败,不符合条件"); } } else { - logServer.deviceLogToacs(this.device_code,"","","是否请求成功:requireSucess:"+requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","是否请求成功:requireSucess:"+requireSucess); } @@ -276,9 +274,9 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst+",allready:"+allready+",full_number:"+full_number); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst+",allready:"+allready+",full_number:"+full_number); } @@ -294,10 +292,10 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst+",allready:"+allready+",full_number:"+full_number); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因move:"+move+",error:"+error+",inst"+inst+",allready:"+allready+",full_number:"+full_number); } @@ -325,7 +323,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri protected void thingToNothing() { log.debug("从有货到无货 清理数据"); - logServer.deviceLogToacs(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); this.setRequireSucess(false); this.setApplySucess(false); @@ -388,7 +386,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri //判断是否已经有前往这个工位的任务 List list = routeLineService.getShortPathLinesByCode(this.device_code, "normal"); if (ObjectUtil.isEmpty(list)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":未找到对应路由"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":未找到对应路由"); throw new BadRequestException(this.device_code + ":未找到对应路由"); } //link_device tw 满料位设备关联的设备tw @@ -398,13 +396,13 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri //通过满料位设备关联的设备tw查找订单 ProduceshiftorderDto order = produceshiftorderService.findOrderByDeviceCode(link_device); if (ObjectUtil.isEmpty(order)) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); throw new BadRequestException(this.device_code + ":关联设备" + link_device + "未找到对应设备工单"); } //判断是否需要agv搬运 if (order.getIs_needmove().equals("0")){ requireSucess = true; - logServer.deviceLogToacs(this.device_code,"","","不需要agv搬运,工单号:"+order.getOrder_code()); + logServer.deviceExecuteLog(this.device_code,"","","不需要agv搬运,工单号:"+order.getOrder_code()); return true; } //查找当前工单对应的物料编号 @@ -473,9 +471,9 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri flag = true; break; } catch (Exception e) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务成功"); } else { //打印日志 continue; @@ -525,7 +523,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri taskserver.create(onedto); flag = true; } catch (Exception e) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } } } else { @@ -573,9 +571,9 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri } catch (Exception e) { route_link_device.setMaterial(""); hailiangCleaningMachineStorageStationDeviceDriver.setMaterial(""); - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务成功"); break; } } @@ -626,7 +624,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri } catch (Exception e) { route_link_device.setMaterial(""); hailiangCleaningMachineStorageStationDeviceDriver.setMaterial(""); - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } break; } @@ -636,13 +634,13 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri //生成任务成功 if (flag) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":专机生成任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":专机生成任务成功"); requireSucess = true; } else { //如果都没有则调用mes接口申请入缓存线 //生成任务 //前往缓存线 - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":分配任务缓存线"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":分配任务缓存线"); } } return true; @@ -653,13 +651,13 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri //生成任务成功 if (flag) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":专机生成任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":专机生成任务成功"); requireSucess = true; } else { //如果都没有则调用mes接口申请入缓存线 //生成任务 //前往缓存线 - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":分配任务缓存线"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":分配任务缓存线"); } return true; diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java index e300a5c9..2e3143ba 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java @@ -18,7 +18,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -62,7 +62,8 @@ public class HailiangSpecialPickStationDeviceDriver extends AbstractOpcDeviceDri @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + String container; String container_type_desc; String last_container_type_desc; @@ -163,33 +164,34 @@ public class HailiangSpecialPickStationDeviceDriver extends AbstractOpcDeviceDri if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (status != last_status) { - logServer.deviceLog(this.device_code,"status" ,String.valueOf(status)); - logServer.deviceLogToacs(this.device_code,"","","信号status:" + last_status + "->" + status); + logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status)); + logServer.deviceExecuteLog(this.device_code,"","","信号status:" + last_status + "->" + status); + } if (task != last_task) { - logServer.deviceLog(this.device_code,"task" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); + logServer.deviceItemValue(this.device_code,"task" ,String.valueOf(task)); + logServer.deviceExecuteLog(this.device_code,"","","信号task:" + last_task + "->" + task); + } if (full_number != last_full_number) { - logServer.deviceLog(this.device_code,"full_number" ,String.valueOf(full_number)); - logServer.deviceLogToacs(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); + logServer.deviceItemValue(this.device_code,"full_number" ,String.valueOf(full_number)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); } if (finish != last_finish) { - logServer.deviceLog(this.device_code,"finish" ,String.valueOf(finish)); - logServer.deviceLogToacs(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + logServer.deviceItemValue(this.device_code,"finish" ,String.valueOf(finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号finish:" + last_finish + "->" + finish); } if (order != last_order) { - logServer.deviceLog(this.device_code,"order" ,String.valueOf(order)); - logServer.deviceLogToacs(this.device_code,"","","信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } /* if (mode == 2 && move != 0 && task > 0) { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java index 37ade757..e9413f56 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java @@ -21,7 +21,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.WcsConfig; @@ -66,7 +66,7 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired AgvService agvService = SpringContextHolder.getBean(AgvService.class); @@ -172,49 +172,50 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri full_number = this.itemProtocol.getFull_number(); if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + } if (task != last_task) { - logServer.deviceLog(this.device_code,"task" ,String.valueOf(task)); - logServer.deviceLogToacs(this.device_code,"","","信号task:" + last_task + "->" + task); + logServer.deviceItemValue(this.device_code,"task" ,String.valueOf(task)); + logServer.deviceExecuteLog(this.device_code,"","","信号task:" + last_task + "->" + task); + } if (full_number != last_full_number) { - logServer.deviceLog(this.device_code,"full_number" ,String.valueOf(full_number)); - logServer.deviceLogToacs(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); + logServer.deviceItemValue(this.device_code,"full_number" ,String.valueOf(full_number)); + logServer.deviceExecuteLog(this.device_code,"","","信号full_number:" + last_full_number + "->" + full_number); } if (finish != last_finish) { - logServer.deviceLog(this.device_code,"finish" ,String.valueOf(finish)); - logServer.deviceLogToacs(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + logServer.deviceItemValue(this.device_code,"finish" ,String.valueOf(finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号finish:" + last_finish + "->" + finish); } if (order != last_order) { - logServer.deviceLog(this.device_code,"order" ,String.valueOf(order)); - logServer.deviceLogToacs(this.device_code,"","","信号order:" + last_order + "->" + order); + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (status != last_status) { - logServer.deviceLog(this.device_code,"status" ,String.valueOf(status)); - logServer.deviceLogToacs(this.device_code,"","","信号status:" + last_status + "->" + status); + logServer.deviceItemValue(this.device_code,"status" ,String.valueOf(status)); + logServer.deviceExecuteLog(this.device_code,"","","信号status:" + last_status + "->" + status); } if (storage_stock_num != last_storage_stock_num) { - logServer.deviceLog(this.device_code,"storage_stock_num" ,String.valueOf(storage_stock_num)); - logServer.deviceLogToacs(this.device_code,"","","信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); + logServer.deviceItemValue(this.device_code,"storage_stock_num" ,String.valueOf(storage_stock_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); } if (all_ready != last_all_ready) { - logServer.deviceLog(this.device_code,"all_ready" ,String.valueOf(all_ready)); - logServer.deviceLogToacs(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + all_ready); + logServer.deviceItemValue(this.device_code,"all_ready" ,String.valueOf(all_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + all_ready); } if (line_stock_num != last_line_stock_num) { - logServer.deviceLog(this.device_code,"line_stock_num" ,String.valueOf(line_stock_num)); - logServer.deviceLogToacs(this.device_code,"","","信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); + logServer.deviceItemValue(this.device_code,"line_stock_num" ,String.valueOf(line_stock_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); } if (running != last_running) { - logServer.deviceLog(this.device_code,"running" ,String.valueOf(running)); - logServer.deviceLogToacs(this.device_code,"","","信号running:" + last_running + "->" + running); + logServer.deviceItemValue(this.device_code,"running" ,String.valueOf(running)); + logServer.deviceExecuteLog(this.device_code,"","","信号running:" + last_running + "->" + running); } @@ -246,13 +247,13 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri if(!requireSucess){ if ( mode == 1) { - logServer.deviceLogToacs(this.device_code,"","",device_code+":requireSucess:" + requireSucess + "开始申请任务"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":requireSucess:" + requireSucess + "开始申请任务"); applyOutCacheLineTask(); } else { - logServer.deviceLogToacs(this.device_code,"","",device_code+":requireSucess:" + requireSucess + "申请任务失败,不符合条件"); + logServer.deviceExecuteLog(this.device_code,"","",device_code+":requireSucess:" + requireSucess + "申请任务失败,不符合条件"); } } else { - logServer.deviceLogToacs(this.device_code,"","","是否请求成功:requireSucess:"+requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","是否请求成功:requireSucess:"+requireSucess); } @@ -267,7 +268,7 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri agvphase = 0; index = 0; }else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); } } @@ -281,7 +282,7 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri agvphase = 0; index = 0; }else { - logServer.deviceLogToacs(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); + logServer.deviceExecuteLog(this.device_code,"","","agvphase:" + agvphase + "等待反馈,原因error:"+error+",inst"+inst); } } @@ -358,18 +359,18 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri taskserver.create(onedto); flag = true; } catch (Exception e) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":创建任务失败," + String.valueOf(e.getMessage())); } } //生成任务成功 if (flag) { - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":专机生成任务成功"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":专机生成任务成功"); requireSucess = true; } else { //如果都没有则调用mes接口申请入缓存线 //生成任务 //前往缓存线 - logServer.deviceLogToacs(this.device_code, "", "", device_code + ":分配任务缓存线"); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":分配任务缓存线"); } } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDefination.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDefination.java new file mode 100644 index 00000000..b04d6c2d --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDefination.java @@ -0,0 +1,61 @@ +package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_stacking_station; + +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceType; +import org.springframework.stereotype.Service; + +import java.util.LinkedList; +import java.util.List; + +/** + * 海亮机械手码垛工位/巷道 + */ +@Service +public class HailiangStackingStationDefination implements OpcDeviceDriverDefination { + @Override + public String getDriverCode() { + return "hailiang_stacking_station"; + } + + @Override + public String getDriverName() { + return "海亮-码垛工位/巷道"; + } + + @Override + public String getDriverDescription() { + return "海亮-码垛工位/巷道"; + } + + @Override + public DeviceDriver getDriverInstance(Device device) { + return (new HailiangStackingStationDriver()).setDevice(device).setDriverDefination(this); + + } + + @Override + public Class getDeviceDriverType() { + return HailiangStackingStationDriver.class; + } + + @Override + public List getFitDeviceTypes() { + List types = new LinkedList(); + types.add(DeviceType.conveyor); + return types; + } + + @Override + public List getReadableItemDtos() { + return ItemProtocol.getReadableItemDtos(); + } + + @Override + public List getWriteableItemDtos() { + return ItemProtocol.getWriteableItemDtos(); + } + +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java new file mode 100644 index 00000000..8e4834ab --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java @@ -0,0 +1,436 @@ +package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_stacking_station; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.config.server.AcsConfigService; +import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; +import org.nl.acs.device.service.DeviceService; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; +import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.ext.wms.service.AcsToWmsService; +import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.instruction.service.dto.Instruction; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.order.service.ProduceshiftorderService; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; +import org.nl.acs.route.service.RouteLineService; +import org.nl.acs.task.service.TaskService; +import org.nl.utils.SpringContextHolder; +import org.openscada.opc.lib.da.Server; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 海亮机械手码垛工位/巷道 + */ +@Slf4j +@Data +@RequiredArgsConstructor +public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver { + protected ItemProtocol itemProtocol = new ItemProtocol(this); + @Autowired + DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppService.class); + @Autowired + InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class); + @Autowired + DeviceService deviceservice = SpringContextHolder.getBean(DeviceService.class); + @Autowired + TaskService taskserver = SpringContextHolder.getBean(TaskService.class); + @Autowired + RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class); + @Autowired + AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); + @Autowired + AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); + @Autowired + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + @Autowired + ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); + + String container; + String container_type_desc; + String last_container_type_desc; + String last_container; + //放货准备锁 + String putReadyLock = null; + //有货标记 + protected boolean has_goods_tag = false; + + + + + //线体状态 + int mode = 0; + int last_mode = 0; + //线体开机状态 + int line_power_status = 0; + int last_line_power_status = 0; + //线体就绪 + int line_ready = 0; + int last_line_ready = 0; + //所有设备就绪 + int all_ready = 0; + int last_all_ready = 0; + //线体故障 + int line_error = 0; + int last_line_error = 0; + //巷道有货请求 + int lane_stock_req = 0; + int last_lane_stock_req = 0; + //订单完成 + int finish = 0; + int last_finish = 0; + //巷道1托盘满托 + int lane1_tray_full = 0; + int last_lane1_tray_full = 0; + //巷道2托盘满托 + int lane2_tray_full = 0; + int last_lane2_tray_full = 0; + //巷道1托盘位允许放货 + int lane1_allow_put = 0; + int last_lane1_allow_put = 0; + //巷道2托盘位允许放货 + int lane2_allow_put = 0; + int last_lane2_allow_put = 0; + //巷道故障 + int lane_error = 0; + int last_lane_error = 0; + //巷道1号托盘当前码垛箱数 + int lane1_tray_current_num = 0; + int last_lane1_tray_current_num = 0; + //巷道2号托盘当前码垛箱数 + int lane2_tray_current_num = 0; + int last_lane2_tray_current_num = 0; + //巷道1号托盘模板 + int lane1_tray_template = 0; + int last_lane1_tray_template = 0; + //巷道2号托盘模板 + int lane2_tray_template = 0; + int last_lane2_tray_template = 0; + //订单实时 + int order_now = 0; + int last_order_now = 0; + //托盘实时 + int tray_now = 0; + int last_tray_now = 0; + //码盘巷道工单号 + int order = 0; + int last_order = 0; + + + //出入库模式 + int operation_type = 0; + + + Boolean isonline = true; + int hasGoods = 0; + String message = null; + Boolean iserror = false; + + + boolean hasVehicle = false; + boolean isReady = false; + protected int instruction_num = 0; + protected int instruction_num_truth = 0; + boolean isFold = false; + private String assemble_check_tag; + + protected String current_stage_instruction_message; + protected String last_stage_instruction_message; + Integer heartbeat_tag; + private Date instruction_require_time = new Date(); + private Date instruction_finished_time = new Date(); + private Date instruction_apply_time = new Date(); + private int instruction_require_time_out = 3000; + //请求成功标记 + Boolean requireSucess = false; + //申请指令成功标记 + Boolean applySucess = false; + String inst_message; + + private int instruction_finished_time_out; + + int branchProtocol = 0; + //备注 + String remark; + //数量 + String qty; + //物料 + String material; + //当前指令 + Instruction inst = null; + //上次指令 + Instruction last_inst = null; + + //触摸屏手动触发任务 + private Boolean is_has_task = false; + + //申请搬运任务 + private Boolean apply_handling = false; + //申请物料 + private Boolean apply_material = false; + + //暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域 + int flag = 0; + + String device_code; + + @Override + public Device getDevice() { + return this.device; + } + + + @Override + public void execute() throws Exception { + String message = null; + try { + device_code = this.getDeviceCode(); + mode = this.itemProtocol.getMode(); + line_power_status = this.itemProtocol.getLine_power_status(); + line_ready = this.itemProtocol.getLine_ready(); + all_ready = this.itemProtocol.getAll_ready(); + line_error = this.itemProtocol.getLine_error(); + lane_stock_req = this.itemProtocol.getLane_stock_req(); + finish = this.itemProtocol.getFinish(); + lane1_tray_full = this.itemProtocol.getLane1_tray_full(); + lane2_tray_full = this.itemProtocol.getLane2_tray_full(); + lane1_allow_put = this.itemProtocol.getLane1_allow_put(); + lane2_allow_put = this.itemProtocol.getLane2_allow_put(); + lane_error = this.itemProtocol.getLane_error(); + lane1_tray_current_num = this.itemProtocol.getLane1_tray_current_num(); + lane2_tray_current_num = this.itemProtocol.getLane2_tray_current_num(); + lane1_tray_template = this.itemProtocol.getLane1_tray_template(); + lane2_tray_template = this.itemProtocol.getLane2_tray_template(); + order_now = this.itemProtocol.getOrder_now(); + tray_now = this.itemProtocol.getTray_now(); + order = this.itemProtocol.getOrder(); + + if (mode != last_mode) { + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + } + if (line_power_status != last_line_power_status) { + logServer.deviceItemValue(this.device_code,"line_power_status" ,String.valueOf(line_power_status)); + logServer.deviceExecuteLog(this.device_code,"","","信号line_power_status:" + last_line_power_status + "->" + line_power_status); + } + if (line_ready != last_line_ready) { + logServer.deviceItemValue(this.device_code,"line_ready" ,String.valueOf(line_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号line_ready:" + last_line_ready + "->" + line_ready); + } + if (all_ready != last_all_ready) { + logServer.deviceItemValue(this.device_code,"all_ready" ,String.valueOf(all_ready)); + logServer.deviceExecuteLog(this.device_code,"","","信号all_ready:" + last_all_ready + "->" + all_ready); + } + if (line_error != last_line_error) { + logServer.deviceItemValue(this.device_code,"line_error" ,String.valueOf(line_error)); + logServer.deviceExecuteLog(this.device_code,"","","信号line_error:" + last_line_error + "->" + line_error); + } + if (lane_stock_req != last_lane_stock_req) { + logServer.deviceItemValue(this.device_code,"lane_stock_req" ,String.valueOf(lane_stock_req)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane_stock_req:" + last_lane_stock_req + "->" + lane_stock_req); + } + if (finish != last_finish) { + logServer.deviceItemValue(this.device_code,"finish" ,String.valueOf(finish)); + logServer.deviceExecuteLog(this.device_code,"","","信号finish:" + last_finish + "->" + finish); + } + if (lane1_tray_full != last_lane1_tray_full) { + logServer.deviceItemValue(this.device_code,"lane1_tray_full" ,String.valueOf(lane1_tray_full)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane1_tray_full:" + last_lane1_tray_full + "->" + lane1_tray_full); + } + if (lane2_tray_full != last_lane2_tray_full) { + logServer.deviceItemValue(this.device_code,"lane2_tray_full" ,String.valueOf(lane2_tray_full)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane2_tray_full:" + last_lane2_tray_full + "->" + lane2_tray_full); + } + if (lane1_allow_put != last_lane1_allow_put) { + logServer.deviceItemValue(this.device_code,"lane1_allow_put" ,String.valueOf(lane1_allow_put)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane1_allow_put:" + last_lane1_allow_put + "->" + lane1_allow_put); + } + if (lane2_allow_put != last_lane2_allow_put) { + logServer.deviceItemValue(this.device_code,"lane2_allow_put" ,String.valueOf(lane2_allow_put)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane2_allow_put:" + last_lane2_allow_put + "->" + lane2_allow_put); + } + if (lane_error != last_lane_error) { + logServer.deviceItemValue(this.device_code,"lane_error" ,String.valueOf(lane_error)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane_error:" + last_lane_error + "->" + lane_error); + } + if (lane1_tray_current_num != last_lane1_tray_current_num) { + logServer.deviceItemValue(this.device_code,"lane1_tray_current_num" ,String.valueOf(lane1_tray_current_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane1_tray_current_num:" + last_lane1_tray_current_num + "->" + lane1_tray_current_num); + } + if (lane2_tray_current_num != last_lane2_tray_current_num) { + logServer.deviceItemValue(this.device_code,"lane2_tray_current_num" ,String.valueOf(lane2_tray_current_num)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane2_tray_current_num:" + last_lane2_tray_current_num + "->" + lane2_tray_current_num); + } + if (lane1_tray_template != last_lane1_tray_template) { + logServer.deviceItemValue(this.device_code,"lane1_tray_template" ,String.valueOf(lane1_tray_template)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane1_tray_template:" + last_lane1_tray_template + "->" + lane1_tray_template); + } + if (lane2_tray_template != last_lane2_tray_template) { + logServer.deviceItemValue(this.device_code,"lane2_tray_template" ,String.valueOf(lane2_tray_template)); + logServer.deviceExecuteLog(this.device_code,"","","信号lane2_tray_template:" + last_lane2_tray_template + "->" + lane2_tray_template); + } + if (order_now != last_order_now) { + logServer.deviceItemValue(this.device_code,"order_now" ,String.valueOf(order_now)); + logServer.deviceExecuteLog(this.device_code,"","","信号order_now:" + last_order_now + "->" + order_now); + } + if (tray_now != last_tray_now) { + logServer.deviceItemValue(this.device_code,"tray_now" ,String.valueOf(tray_now)); + logServer.deviceExecuteLog(this.device_code,"","","信号tray_now:" + last_tray_now + "->" + tray_now); + } + if (order != last_order) { + logServer.deviceItemValue(this.device_code,"order" ,String.valueOf(order)); + logServer.deviceExecuteLog(this.device_code,"","","信号order:" + last_order + "->" + order); + } + + } catch (Exception var17) { + return; + } + + if (!this.itemProtocol.getIsonline()) { + this.setIsonline(false); + this.setIserror(true); + message = "信号量同步异常"; + //未联机 + }/* else if (mode == 0) { + this.setIsonline(false); + this.setIserror(true); + message = "未联机"; + //有报警 + }*/ else if (lane_error != 0 || line_error != 0) { + this.setIsonline(false); + this.setIserror(true); + message = "有报警"; + //无报警 + } else { + this.setIsonline(true); + this.setIserror(false); + message = ""; + + if (mode == 1 && finish == 1 && finish != last_finish && order > 0){ + ProduceshiftorderDto dto = new ProduceshiftorderDto(); + dto.setOrder_code(order + ""); + dto.setOrder_status("2"); + ProduceshiftorderDto deviceInfo = produceshiftorderService.findOrderByDeviceCode(this.device_code); + if (deviceInfo != null) { + if (StrUtil.isNotEmpty(deviceInfo.getExt_order_id())) { + String ext_order_id = deviceInfo.getExt_order_id(); + JSONObject param = new JSONObject(); + param.put("ext_order_id", ext_order_id); + acsToWmsService.feedbackOrderStatus(param); + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单的外部标识:" + ext_order_id); + } else { + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单的没有外部标识"); + } + } else { + logServer.deviceExecuteLog(this.device_code, "", "", device_code + ":,对应的工单信息为空"); + } + produceshiftorderService.updateByOrderCode(dto); + this.writing("to_confirm_finished","1"); + } + } + + last_mode = mode; + last_line_power_status = line_power_status; + last_line_ready = line_ready; + last_all_ready = all_ready; + last_line_error = line_error; + last_lane_stock_req = lane_stock_req; + last_finish = finish; + last_lane1_tray_full = lane1_tray_full; + last_lane2_tray_full = lane2_tray_full; + last_lane1_allow_put = lane1_allow_put; + last_lane2_allow_put = lane2_allow_put; + last_lane_error = lane_error; + last_lane1_tray_current_num = lane1_tray_current_num; + last_lane2_tray_current_num = lane2_tray_current_num; + last_lane1_tray_template = lane1_tray_template; + last_lane2_tray_template = lane2_tray_template; + last_order_now = order_now; + last_tray_now = tray_now; + last_order = order; + + } + + public boolean exe_error() { +// if (this.error == 0) { +// return true; +// } else { +// log.debug("设备报警"); +// return false; +// } + return true; + } + + protected void thingToNothing() { + log.debug("从有货到无货 清理数据"); + logServer.deviceExecuteLog(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); + + this.setRequireSucess(false); + this.setApplySucess(false); + this.set_last_container(container, container_type_desc); + } + + public void set_last_container(String barcode, String type_desc) { + this.setInst_message(null); + this.setContainer(null); + this.set_last_container(barcode); + this.set_last_container_type_desc(type_desc); + } + + public void set_last_container(String barcode) { + } + + public void set_last_container_type_desc(String type) { + } + + + public boolean exe_business() { + return true; + } + + protected void executing(Instruction instruction) { + this.executing(1, instruction, ""); + } + + public void executing(int command, Instruction instruction, String appendMessage) { + + } + + public void executing(Server server, Map itemMap) { + ReadUtil.write(itemMap, server); + } + + public void writing(int command) { + + } + + public void writing(String key, String value) { + String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + key; + String opcservcerid = this.getDevice().getOpc_server_id(); + Server server = ReadUtil.getServer(opcservcerid); + Map itemMap = new HashMap(); + itemMap.put(to_command, value); + ReadUtil.write(itemMap, server); + } + + + + public synchronized boolean finish_instruction() throws Exception { + instructionService.finish(inst); + return true; + } + +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java new file mode 100644 index 00000000..15a0fdac --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java @@ -0,0 +1,228 @@ +package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_stacking_station; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Data +public class ItemProtocol { + + //线体状态 + public static String item_mode = "mode"; + //线体开机状态 + public static String item_line_power_status = "line_power_status"; + //线体就绪 + public static String item_line_ready = "line_ready"; + //所有设备就绪 + public static String item_all_ready = "all_ready"; + //线体故障 + public static String item_line_error = "line_error"; + //巷道有货请求 + public static String item_lane_stock_req = "lane_stock_req"; + //订单完成 + public static String item_finish = "finish"; + //巷道1托盘满托 + public static String item_lane1_tray_full = "lane1_tray_full"; + //巷道2托盘满托 + public static String item_lane2_tray_full = "lane2_tray_full"; + //巷道1托盘位允许放货 + public static String item_lane1_allow_put = "lane1_allow_put"; + //巷道2托盘位允许放货 + public static String item_lane2_allow_put = "lane2_allow_put"; + //巷道故障 + public static String item_lane_error = "lane_error"; + //巷道1号托盘当前码垛箱数 + public static String item_lane1_tray_current_num = "lane1_tray_current_num"; + //巷道2号托盘当前码垛箱数 + public static String item_lane2_tray_current_num = "lane2_tray_current_num"; + //巷道1号托盘模板 + public static String item_lane1_tray_template = "lane1_tray_template"; + //巷道2号托盘模板 + public static String item_lane2_tray_template = "lane2_tray_template"; + //订单实时 + public static String item_order_now = "order_now"; + //托盘实时 + public static String item_tray_now = "tray_now"; + //码盘巷道工单号 + public static String item_order = "order"; + + + + //设备开关 + public static String item_to_open = "to_open"; + //码盘信息 + public static String item_to_tray_info = "to_tray_info"; + //当前产量清零 + public static String item_to_clear = "to_clear"; + //确认完成(订单完成状态置零) + public static String item_to_confirm_finished = "to_confirm_finished"; + //巷道箱子长 + public static String item_to_lane_box_l = "to_lane_box_l"; + //巷道箱子宽 + public static String item_to_lane_box_w = "to_lane_box_w"; + //巷道箱子高 + public static String item_to_lane_box_h = "to_lane_box_h"; + //巷道1号托盘强制满托 + public static String item_to_lane1_tray_compel_full = "to_lane1_tray_compel_full"; + //巷道2号托盘强制满托 + public static String item_to_lane2_tray_compel_full = "to_lane2_tray_compel_full"; + //巷道禁用 + public static String item_to_lane_off = "to_lane_off"; + //工单强制完成 + public static String item_to_compel_finish = "to_compel_finish"; + //订单生产总量 + public static String item_to_order_prod_num = "to_order_prod_num"; + //托盘总量 + public static String item_to_tray_num = "to_tray_num"; + //工单号 + public static String item_to_order = "to_order"; + + + private HailiangStackingStationDriver driver; + + public ItemProtocol(HailiangStackingStationDriver driver) { + this.driver = driver; + } + + public int getMode() { + return this.getOpcIntegerValue(item_mode); + } + public int getLine_power_status() { + return this.getOpcIntegerValue(item_line_power_status); + } + public int getLine_ready () { + return this.getOpcIntegerValue(item_line_ready); + } + public int getAll_ready() { + return this.getOpcIntegerValue(item_all_ready); + } + public int getLine_error() { + return this.getOpcIntegerValue(item_line_error); + } + public int getLane_stock_req() { + return this.getOpcIntegerValue(item_lane_stock_req); + } + public int getFinish() { + return this.getOpcIntegerValue(item_finish); + } + public int getLane1_tray_full () { + return this.getOpcIntegerValue(item_lane1_tray_full); + } + public int getLane2_tray_full () { + return this.getOpcIntegerValue(item_lane2_tray_full); + } + public int getLane1_allow_put() { + return this.getOpcIntegerValue(item_lane1_allow_put); + } + public int getLane2_allow_put() { + return this.getOpcIntegerValue(item_lane2_allow_put); + } + public int getLane_error() { + return this.getOpcIntegerValue(item_lane_error); + } + public int getLane1_tray_current_num() { + return this.getOpcIntegerValue(item_lane1_tray_current_num); + } + public int getLane2_tray_current_num () { + return this.getOpcIntegerValue(item_lane2_tray_current_num); + } + public int getLane1_tray_template() { + return this.getOpcIntegerValue(item_lane1_tray_template); + } + public int getLane2_tray_template() { + return this.getOpcIntegerValue(item_lane2_tray_template); + } + public int getOrder_now() { + return this.getOpcIntegerValue(item_order_now); + } + public int getTray_now() { + return this.getOpcIntegerValue(item_tray_now); + } + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } + + + + //是否有货 + public int hasGoods(int move) { + return move; + } + + Boolean isonline; + + public int getOpcIntegerValue(String protocol) { + Integer value = this.driver.getIntegeregerValue(protocol); + if (value == null) { + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + + public static String getField_desc(String item) { + String field_desc = ""; + List readlist = getReadableItemDtos(); + List writelist = getWriteableItemDtos(); + for (int i = 0; i < readlist.size(); i++) { + ItemDto dto = readlist.get(i); +// if(){ +// +// } + } + return field_desc; + } + + + public static List getReadableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_mode, "线体状态", "DB1.B0.0")); + list.add(new ItemDto(item_line_power_status, "线体开机状态", "DB1.B0.1")); + list.add(new ItemDto(item_line_ready, "线体就绪", "DB1.B2.1")); + list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B2.2")); + list.add(new ItemDto(item_line_error, "线体故障", "DB1.W4")); + list.add(new ItemDto(item_lane_stock_req, "巷道有货请求", "DB1.B1.1")); + list.add(new ItemDto(item_finish, "订单完成", "DB1.B2.3")); + list.add(new ItemDto(item_lane1_tray_full, "巷道1号托盘满托", "DB1.B2.5")); + list.add(new ItemDto(item_lane2_tray_full, "巷道2号托盘满托", "DB1.B2.6")); + list.add(new ItemDto(item_lane1_allow_put, "巷道1号托盘位允许放货", "DB1.B3.1")); + list.add(new ItemDto(item_lane2_allow_put, "巷道2号托盘位允许放货", "DB1.B3.2")); + list.add(new ItemDto(item_lane_error, "巷道error", "DB1.W10")); + list.add(new ItemDto(item_lane1_tray_current_num, "巷道1号托盘当前码垛箱数", "DB1.W64")); + list.add(new ItemDto(item_lane2_tray_current_num, "巷道2号托盘当前码垛箱数", "DB1.W66")); + list.add(new ItemDto(item_lane1_tray_template, "巷道1号托盘模板", "DB1.W72")); + list.add(new ItemDto(item_lane2_tray_template, "巷道2号托盘模板", "DB1.DW74")); + list.add(new ItemDto(item_order_now, "订单实时", "DB1.DW84")); + list.add(new ItemDto(item_tray_now, "托盘实时", "DB1.DW88")); + list.add(new ItemDto(item_order, "工单号", "DB1.DW156")); + return list; + } + + public static List getWriteableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4")); + list.add(new ItemDto(item_to_tray_info, "码盘信息", "DB2.W12")); + list.add(new ItemDto(item_to_clear, "当前产量清零", "DB2.W16")); + list.add(new ItemDto(item_to_confirm_finished, "订单确认完成", "DB2.W20")); + list.add(new ItemDto(item_to_lane_box_l, "巷道箱子长", "DB2.W28")); + list.add(new ItemDto(item_to_lane_box_w, "巷道箱子宽", "DB2.W30")); + list.add(new ItemDto(item_to_lane_box_h, "巷道箱子高", "DB2.W32")); + list.add(new ItemDto(item_to_lane1_tray_compel_full, "巷道1号托盘强制满托", "DB2.W40")); + list.add(new ItemDto(item_to_lane2_tray_compel_full, "巷道2号托盘强制满托", "DB2.W42")); + list.add(new ItemDto(item_to_lane_off, "巷道禁用", "DB2.W48")); + list.add(new ItemDto(item_to_compel_finish, "工单强制完成", "DB2.W80")); + list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "DB2.DW84")); + list.add(new ItemDto(item_to_tray_num, "托盘总量", "DB2.DW88")); + list.add(new ItemDto(item_to_order, "工单号", "DB2.DW156")); + return list; + } + +} + diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_threeStation_smart/HailiangThreestationSmartDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_threeStation_smart/HailiangThreestationSmartDeviceDriver.java index 695ef72c..927b30b7 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_threeStation_smart/HailiangThreestationSmartDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_threeStation_smart/HailiangThreestationSmartDeviceDriver.java @@ -1,9 +1,5 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_threeStation_smart; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -15,18 +11,11 @@ import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; -import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceAppServiceImpl; -import org.nl.acs.opc.WcsConfig; import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskService; -import org.nl.acs.task.service.dto.TaskDto; -import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SpringContextHolder; -import org.nl.wql.core.bean.WQLObject; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; @@ -52,7 +41,7 @@ public class HailiangThreestationSmartDeviceDriver extends AbstractOpcDeviceDriv @Autowired TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl"); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); String container_type_desc; String last_container_type_desc; //放货准备锁 @@ -143,28 +132,28 @@ public class HailiangThreestationSmartDeviceDriver extends AbstractOpcDeviceDriv if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (move != last_move) { - logServer.deviceLog(this.device_code,"move" ,String.valueOf(move)); - logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move); + logServer.deviceItemValue(this.device_code,"move" ,String.valueOf(move)); + logServer.deviceExecuteLog(this.device_code,"","","信号move:" + last_move + "->" + move); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } if (action != last_action) { - logServer.deviceLog(this.device_code,"action" ,String.valueOf(action)); - logServer.deviceLogToacs(this.device_code,"","","信号action:" + last_action + "->" + action); + logServer.deviceItemValue(this.device_code,"action" ,String.valueOf(action)); + logServer.deviceExecuteLog(this.device_code,"","","信号action:" + last_action + "->" + action); } if (container_type != last_container_type) { - logServer.deviceLog(this.device_code,"container_type" ,String.valueOf(container_type)); - logServer.deviceLogToacs(this.device_code,"","","信号container_type:" + last_container_type + "->" + container_type); + logServer.deviceItemValue(this.device_code,"container_type" ,String.valueOf(container_type)); + logServer.deviceExecuteLog(this.device_code,"","","信号container_type:" + last_container_type + "->" + container_type); } if (number != last_number) { - logServer.deviceLog(this.device_code,"number" ,String.valueOf(number)); - logServer.deviceLogToacs(this.device_code,"","","信号number:" + last_number + "->" + number); + logServer.deviceItemValue(this.device_code,"number" ,String.valueOf(number)); + logServer.deviceExecuteLog(this.device_code,"","","信号number:" + last_number + "->" + number); } } catch (Exception var17) { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_xj_plc_test/HailiangHailiangxjplcTestDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_xj_plc_test/HailiangHailiangxjplcTestDeviceDriver.java index a1463ea7..f03d47a3 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_xj_plc_test/HailiangHailiangxjplcTestDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_xj_plc_test/HailiangHailiangxjplcTestDeviceDriver.java @@ -20,7 +20,7 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; @@ -63,7 +63,7 @@ public class HailiangHailiangxjplcTestDeviceDriver extends AbstractOpcDeviceDriv @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -226,13 +226,12 @@ public class HailiangHailiangxjplcTestDeviceDriver extends AbstractOpcDeviceDriv if (mode != last_mode) { this.setRequireSucess(false); - logServer.deviceLogToacs(this.device_code,"","","工作模式切换,刷新请求标记:"+this.requireSucess); - logServer.deviceLog(this.device_code,"mode" ,String.valueOf(mode)); - logServer.deviceLogToacs(this.device_code,"","","信号mode:" + last_mode + "->" + mode); + logServer.deviceItemValue(this.device_code,"mode" ,String.valueOf(mode)); + logServer.deviceExecuteLog(this.device_code,"","","信号mode:" + last_mode + "->" + mode); } if (error != last_error) { - logServer.deviceLog(this.device_code,"error" ,String.valueOf(error)); - logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error); + logServer.deviceItemValue(this.device_code,"error" ,String.valueOf(error)); + logServer.deviceExecuteLog(this.device_code,"","","信号error:" + last_error + "->" + error); } } @@ -247,7 +246,7 @@ public class HailiangHailiangxjplcTestDeviceDriver extends AbstractOpcDeviceDriv protected void thingToNothing() { log.debug("从有货到无货 清理数据"); - logServer.deviceLogToacs(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); + logServer.deviceExecuteLog(this.device_code,"","","光电信号切换,刷新请求标记:"+this.requireSucess); this.setRequireSucess(false); this.setApplySucess(false); diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java index 5d4c9ec9..5a446956 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_ordinary_site/StandardOrdinarySiteDeviceDriver.java @@ -1,11 +1,6 @@ package org.nl.acs.device_driver.basedriver.standard_ordinary_site; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -16,28 +11,19 @@ import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.driver.AbstractDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspectSiteDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.log.service.LogServer; -import org.nl.acs.opc.Device; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceAppServiceImpl; -import org.nl.acs.opc.WcsConfig; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskService; -import org.nl.acs.task.service.dto.TaskDto; -import org.nl.modules.system.util.CodeUtil; import org.nl.start.auto.run.OneNDCSocketConnectionAutoRun; import org.nl.utils.SpringContextHolder; -import org.nl.wql.core.bean.WQLObject; import org.springframework.beans.factory.annotation.Autowired; -import java.math.BigDecimal; import java.util.Date; @@ -65,7 +51,7 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple @Autowired AcsConfigService acsConfigService = SpringContextHolder.getBean(AcsConfigService.class); @Autowired - LogServer logServer = SpringContextHolder.getBean(LogServer.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @Autowired ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired @@ -146,9 +132,9 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); } } @@ -162,9 +148,9 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); } } @@ -178,9 +164,9 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); } } @@ -193,9 +179,9 @@ public class StandardOrdinarySiteDeviceDriver extends AbstractDeviceDriver imple agvphase = 0; index = 0; inst = null; - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功"); } else { - logServer.deviceLogToacs(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); + logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈"); } } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index d45d192b..b8bf8d16 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -91,4 +91,11 @@ public class WmsToAcsController { return new ResponseEntity<>(wmstoacsService.queryDeviceDBValue(whereJson), HttpStatus.OK); } + @PostMapping("/replaceDevice") + @Log("工单更换设备") + @ApiOperation("工单更换设备") + public ResponseEntity replaceDevice(@RequestBody String whereJson){ + return new ResponseEntity<>(wmstoacsService.replaceDevice(whereJson), HttpStatus.OK); + } + } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java index 4c001b2d..506b7b32 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java @@ -76,4 +76,11 @@ public interface WmsToAcsService { */ Map queryDeviceDBValue(String whereJson); + /** + * 工单更换设备 + * @param whereJson + * @return + */ + Map replaceDevice(String whereJson); + } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 41d24d02..56b472c8 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -15,18 +15,19 @@ import org.nl.acs.device.address.service.AddressService; import org.nl.acs.device.address.service.dto.AddressDto; import org.nl.acs.device.service.DeviceService; import org.nl.acs.ext.wms.service.AcsToWmsService; -import org.nl.acs.log.service.LogServer; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.exception.BadRequestException; +import org.nl.utils.SpringContextHolder; import org.nl.wql.core.bean.WQLObject; +import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.Map; @@ -49,554 +50,534 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { TaskService taskService; @Autowired - LogServer logServer; + DeviceExecuteLogService logServer; @Value("${acsTowms.token}") public String token; + private String log_file_type="log_file_type"; + private String log_type="ACS请求WMS"; + @Override public String applyTaskToWms(String device_code, String container_code, int height, int weight) { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - AddressDto addressDto = addressService.findByCode("applyTaskToWms"); - String url = wmsurl + addressDto.getMethods_url(); - JSONObject param = new JSONObject(); - param.put("height", height); - param.put("weight", weight); - String parent_device_code = ""; - JSONObject jo = new JSONObject(); - JSONObject device_json = WQLObject.getWQLObject("acs_storage_cell").query("storage_code ='" + device_code + "'").uniqueResult(0); - if (!device_json.isEmpty()) { - parent_device_code = (String) device_json.get("parent_storage_cell") == null ? device_code : (String) device_json.get("parent_storage_cell"); - } - jo.put("device_code", parent_device_code); - jo.put("container_code", container_code); - jo.put("param", param); - log.info("applyTaskToWms-----请求参数{}", jo.toString()); - HttpResponse result2 = null; try { - //{"status":400,"timestamp":"2021-10-22 16:32:22","message":"业务类型不正确!"} - result2 = HttpRequest.post(url) - .header("Authorization", token) - .body(String.valueOf(jo)) - .execute(); - System.out.println(result2); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + AddressDto addressDto = addressService.findByCode("applyTaskToWms"); + String url = wmsurl + addressDto.getMethods_url(); + JSONObject param = new JSONObject(); + param.put("height", height); + param.put("weight", weight); + String parent_device_code = ""; + JSONObject jo = new JSONObject(); + JSONObject device_json = WQLObject.getWQLObject("acs_storage_cell").query("storage_code ='" + device_code + "'").uniqueResult(0); + if (!device_json.isEmpty()) { + parent_device_code = (String) device_json.get("parent_storage_cell") == null ? device_code : (String) device_json.get("parent_storage_cell"); + } + jo.put("device_code", parent_device_code); + jo.put("container_code", container_code); + jo.put("param", param); + log.info("applyTaskToWms-----请求参数{}", jo.toString()); + HttpResponse result2 = null; + try { + //{"status":400,"timestamp":"2021-10-22 16:32:22","message":"业务类型不正确!"} + result2 = HttpRequest.post(url) + .header("Authorization", token) + .body(String.valueOf(jo)) + .execute(); + System.out.println(result2); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + String type = ""; + if (result2.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + log.info("applyTaskToWms-----输出参数{}", result2.body()); + return result2.body(); + }finally { + MDC.remove(log_file_type); } - String type = ""; - if (result2.getStatus() == 200) { - type = "info"; - } else { - type = "error"; - } - logServer.log("", "applyTaskToWms", type, jo.toString(), result2.body(), String.valueOf(result2.getStatus()), url, container_code); - log.info("applyTaskToWms-----输出参数{}", result2.body()); - return result2.body(); } @Override public HttpResponse feedbackTaskStatusToWms(JSONArray data) { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - - String task_code = ""; - for (int i = 0; i < data.size(); i++) { - JSONObject json = (JSONObject) data.get(i); - task_code = json.getString("task_code"); - } - TaskDto taskDto = taskService.findByCode(task_code); - String vehicle_code = taskDto.getVehicle_code(); - - HttpResponse result2 = null; - log.info("feedbackTaskStatusToWms-----请求参数{}", data.toString()); - - AddressDto addressDto = addressService.findByCode("feedbackTaskStatusToWms"); - String methods_url = addressDto.getMethods_url(); try { - result2 = HttpRequest.post(wmsurl + methods_url) - .header("Authorization", token).body(String.valueOf(data)) - .execute(); - System.out.println(result2); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + + String task_code = ""; + for (int i = 0; i < data.size(); i++) { + JSONObject json = (JSONObject) data.get(i); + task_code = json.getString("task_code"); + } + TaskDto taskDto = taskService.findByCode(task_code); + String vehicle_code = taskDto.getVehicle_code(); + + HttpResponse result2 = null; + log.info("feedbackTaskStatusToWms-----请求参数{}", data.toString()); + + AddressDto addressDto = addressService.findByCode("feedbackTaskStatusToWms"); + String methods_url = addressDto.getMethods_url(); + try { + result2 = HttpRequest.post(wmsurl + methods_url) + .header("Authorization", token).body(String.valueOf(data)) + .execute(); + System.out.println(result2); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + + String type = ""; + if (result2.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + + JSONObject jo = JSONObject.parseObject(result2.body()); + log.info("feedbackTaskStatusToWms-----输出参数{}", jo.toString()); + return result2; + }finally { + MDC.remove(log_file_type); } - String type = ""; - if (result2.getStatus() == 200) { - type = "info"; - } else { - type = "error"; - } - - logServer.log(task_code, "feedbackTaskStatusToWms", type, data.toString(), result2.body(), String.valueOf(result2.getStatus()), wmsurl + methods_url, vehicle_code); - JSONObject jo = JSONObject.parseObject(result2.body()); - log.info("feedbackTaskStatusToWms-----输出参数{}", jo.toString()); - return result2; } @Override public Map feedbackPointStatusToWms(Map jsonObject) { - - AddressDto addressDto = addressService.findByCode("feedbackPointStatusToWms"); - String methods_url = addressDto.getMethods_url(); - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - String url = wmsurl + methods_url; - - JSONObject json = new JSONObject(); - json.put("task_uuid", jsonObject.get("device_code")); - json.put("task_code", jsonObject.get("point_status")); - json.put("task_status", jsonObject.get("point_mode")); - json.put("point_error", jsonObject.get("point_error")); - log.info("feedbackPointStatusToWms----请求参数{}", json.toString()); try { - String result2 = HttpRequest.post(url) - .body(String.valueOf(json)) - .execute().body(); - System.out.println(result2); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); + MDC.put(log_file_type, log_type); + AddressDto addressDto = addressService.findByCode("feedbackPointStatusToWms"); + String methods_url = addressDto.getMethods_url(); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + String url = wmsurl + methods_url; + JSONObject json = new JSONObject(); + json.put("task_uuid", jsonObject.get("device_code")); + json.put("task_code", jsonObject.get("point_status")); + json.put("task_status", jsonObject.get("point_mode")); + json.put("point_error", jsonObject.get("point_error")); + log.info("feedbackPointStatusToWms----请求参数{}", json.toString()); + try { + String result2 = HttpRequest.post(url) + .body(String.valueOf(json)) + .execute().body(); + System.out.println(result2); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + + } + + JSONObject resultJson = new JSONObject(); + resultJson.put("status", HttpStatus.OK); + resultJson.put("message", "操作成功"); + resultJson.put("data", new JSONArray()); + log.info("feedbackPointStatusToWms----输出参数{}", resultJson.toString()); + return resultJson; + }finally { + MDC.remove(log_file_type); } - JSONObject resultJson = new JSONObject(); - resultJson.put("status", HttpStatus.OK); - resultJson.put("message", "操作成功"); - resultJson.put("data", new JSONArray()); - log.info("feedbackPointStatusToWms----输出参数{}", resultJson.toString()); - return resultJson; } @Override public JSONArray getDeviceStatusToWms() { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - AddressDto addressDto = addressService.findByCode("getDeviceStatusToWms"); - String methods_url = addressDto.getMethods_url(); - String url = wmsurl + methods_url; - String result = ""; try { - result = HttpRequest.get(url) - .execute().body(); - System.out.println(result); - log.info("getTaskStatusToWms----返回参数{}", result); - } catch (Exception e) { - System.out.println(e.getMessage()); + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + AddressDto addressDto = addressService.findByCode("getDeviceStatusToWms"); + String methods_url = addressDto.getMethods_url(); + String url = wmsurl + methods_url; + String result = ""; + try { + result = HttpRequest.get(url) + .execute().body(); + System.out.println(result); + log.info("getTaskStatusToWms----返回参数{}", result); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + JSONArray jsonArray = JSONArray.parseArray(result); + return jsonArray; + }finally { + MDC.remove(log_file_type); } - JSONArray jsonArray = JSONArray.parseArray(result); - return jsonArray; - } @Override public HttpResponse requestSignalInteraction(String device_code, String vehicle_code, String action) { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - JSONObject json = new JSONObject(); - json.put("device_code", device_code); - json.put("vehicle_code", vehicle_code); - json.put("action", action); - - AddressDto addressDto = addressService.findByCode("requestSignalInteraction"); - String methods_url = addressDto.getMethods_url(); - String url = wmsurl + methods_url; - HttpResponse result = null; - log.info("requestSignalInteraction----请求参数{}", json.toString()); try { - result = HttpRequest.post(url) - .body(String.valueOf(json)) - .execute(); - System.out.println(result); - log.info("requestSignalInteraction----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + JSONObject json = new JSONObject(); + json.put("device_code", device_code); + json.put("vehicle_code", vehicle_code); + json.put("action", action); + AddressDto addressDto = addressService.findByCode("requestSignalInteraction"); + String methods_url = addressDto.getMethods_url(); + String url = wmsurl + methods_url; + HttpResponse result = null; + log.info("requestSignalInteraction----请求参数{}", json.toString()); + try { + result = HttpRequest.post(url) + .body(String.valueOf(json)) + .execute(); + System.out.println(result); + log.info("requestSignalInteraction----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + + } + return result; + }finally { + MDC.remove(log_file_type); } - return result; + } @Override public String requestTaskAgain(String address, String task_id, String vehicle_code) { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - String device_code = deviceService.queryDeviceCodeByAddress(Integer.parseInt(address)); - JSONObject jo = new JSONObject(); - jo.put("device_code", device_code); - jo.put("task_id", task_id); - jo.put("vehicle_code", vehicle_code); - String result2 = null; - - AddressDto addressDto = addressService.findByCode("requestTaskAgain"); - String methods_url = addressDto.getMethods_url(); - String url = wmsurl + methods_url; - log.info("requestTaskAgain----请求参数{}", jo); - try { - result2 = HttpRequest.post(url) - .body(String.valueOf(jo)) - .execute().body(); - System.out.println(result2); - log.info("requestTaskAgain----返回参数{}", result2); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + String device_code = deviceService.queryDeviceCodeByAddress(Integer.parseInt(address)); + JSONObject jo = new JSONObject(); + jo.put("device_code", device_code); + jo.put("task_id", task_id); + jo.put("vehicle_code", vehicle_code); + String result2 = null; + + AddressDto addressDto = addressService.findByCode("requestTaskAgain"); + String methods_url = addressDto.getMethods_url(); + String url = wmsurl + methods_url; + log.info("requestTaskAgain----请求参数{}", jo); + + try { + result2 = HttpRequest.post(url) + .body(String.valueOf(jo)) + .execute().body(); + System.out.println(result2); + log.info("requestTaskAgain----返回参数{}", result2); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result2; + }finally { + MDC.remove(log_file_type); } - return result2; + } @Override public String apply_InEmpty(String device_code, String type, String quantity, String container_code) { - if (StrUtil.isEmpty(container_code)) { - log.info("apply_InEmpty----空盘入库申请校验失败,{}{}", device_code, "设备条码为空"); - throw new BadRequestException("地址对应设备未找到"); - } - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - JSONObject jo = new JSONObject(); - jo.put("device_code", device_code); - jo.put("type", type); - jo.put("quantity", quantity); - jo.put("container_code", container_code); - - String result2 = ""; - - AddressDto addressDto = addressService.findByCode("apply_InEmpty"); - String methods_url = addressDto.getMethods_url(); - String url = wmsurl + methods_url; - log.info("requestTaskAgain----请求参数{}", jo); - try { - result2 = HttpRequest.post(url) - .header("Authorization", token) - .body(String.valueOf(jo)) - .execute().body(); - System.out.println(result2); - log.info("requestTaskAgain----返回参数{}", result2); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); + MDC.put(log_file_type, log_type); + + + if (StrUtil.isEmpty(container_code)) { + log.info("apply_InEmpty----空盘入库申请校验失败,{}{}", device_code, "设备条码为空"); + throw new BadRequestException("地址对应设备未找到"); + } + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + JSONObject jo = new JSONObject(); + jo.put("device_code", device_code); + jo.put("type", type); + jo.put("quantity", quantity); + jo.put("container_code", container_code); + + String result2 = ""; + + AddressDto addressDto = addressService.findByCode("apply_InEmpty"); + String methods_url = addressDto.getMethods_url(); + String url = wmsurl + methods_url; + log.info("requestTaskAgain----请求参数{}", jo); + + try { + result2 = HttpRequest.post(url) + .header("Authorization", token) + .body(String.valueOf(jo)) + .execute().body(); + System.out.println(result2); + log.info("requestTaskAgain----返回参数{}", result2); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result2; + }finally { + MDC.remove(log_file_type); } - return result2; + } @Override public String apply_OutEmpty(String device_code) { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - JSONObject jo = new JSONObject(); - jo.put("device_code", device_code); - String result2 = ""; - - AddressDto addressDto = addressService.findByCode("apply_OutEmpty"); - String methods_url = addressDto.getMethods_url(); - String url = wmsurl + methods_url; - log.info("apply_OutEmpty----请求参数{}", jo); try { - result2 = HttpRequest.post(url) - .header("Authorization", token) - .body(String.valueOf(jo)) - .execute().body(); - System.out.println(result2); - log.info("apply_OutEmpty----返回参数{}", result2); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + JSONObject jo = new JSONObject(); + jo.put("device_code", device_code); + String result2 = ""; + + AddressDto addressDto = addressService.findByCode("apply_OutEmpty"); + String methods_url = addressDto.getMethods_url(); + String url = wmsurl + methods_url; + log.info("apply_OutEmpty----请求参数{}", jo); + try { + result2 = HttpRequest.post(url) + .header("Authorization", token) + .body(String.valueOf(jo)) + .execute().body(); + System.out.println(result2); + log.info("apply_OutEmpty----返回参数{}", result2); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result2; + }finally { + MDC.remove(log_file_type); } - return result2; + } @Override public HttpResponse feedbackAgvStatus(String device_code, String error, String error_message) { - String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - - JSONObject json = new JSONObject(); - json.put("device_code", device_code); - json.put("error", error); - json.put("error_message", error_message); - - AddressDto addressDto = addressService.findByCode("feedbackAgvStatus"); - String methods_url = addressDto.getMethods_url(); - String url = wmsUrl + methods_url; - HttpResponse result = null; - log.info("feedbackAgvStatus----请求参数{}", json); - try { - result = HttpRequest.post(url) - .body(String.valueOf(json)) - .execute(); - System.out.println(result); - log.info("feedbackAgvStatus----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } - return result; - } - - @Override - public HttpResponse feedbackDeviceStatus(String device_code, String code, String value) { - String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - - JSONObject json = new JSONObject(); - json.put("device_code", device_code); - json.put("back_time", DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS")); - JSONArray ja = new JSONArray(); - JSONObject jo = new JSONObject(); - jo.put("code", code); - jo.put("value", value); - ja.add(jo); - json.put("data", ja); - AddressDto addressDto = addressService.findByCode("feedbackDeviceStatus"); - String methods_url = addressDto.getMethods_url(); - String url = wmsUrl + methods_url; - HttpResponse result = null; - log.info("feedbackDeviceStatus----请求参数{}", json); - - try { - result = HttpRequest.post(url) - .body(String.valueOf(json)) - .execute(); - System.out.println(result); - log.info("feedbackDeviceStatus----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } - return result; - } - - @Override - public HttpResponse feedbackAgv(JSONArray from) { - String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - - AddressDto addressDto = addressService.findByCode("feedbackAgv"); - String methods_url = addressDto.getMethods_url(); - String url = wmsUrl + methods_url; - HttpResponse result = null; - log.info("feedbackAgv----请求参数{}", from); - - try { - result = HttpRequest.post(url) - .body(String.valueOf(from)) - .execute(); - System.out.println(result); - log.info("feedbackAgv----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } - return result; - } - - @Override - public HttpResponse applyOpenOrCloseDoor(String device_code, String status) { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - JSONObject jo = new JSONObject(); - jo.put("device_code", device_code); - jo.put("status", status); - HttpResponse result = null; - log.info("applyOpenOrCloseDoor-----请求参数{}", jo.toString()); - - AddressDto addressDto = addressService.findByCode("applyOpenOrCloseDoor"); - String methods_url = addressDto.getMethods_url(); - try { - result = HttpRequest.post(wmsurl + methods_url) - .body(String.valueOf(jo)) - .execute(); - System.out.println(result); - log.info("applyOpenOrCloseDoor-----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } - return result; - } - - @Override - public HttpResponse queryDoorsStatus() { - String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - - HttpResponse result = null; - log.info("queryDoorStatus-----请求"); - AddressDto addressDto = addressService.findByCode("queryDoorsStatus"); - String methods_url = addressDto.getMethods_url(); - try { - result = HttpRequest.get(wmsurl + methods_url) - .body("") - .execute(); - log.info("queryDoorStatus-----输出参数{}", result.body().toString()); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - - } - return result; - } - - @Override - public HttpResponse feedbackOrderStatus(JSONObject param) { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { + MDC.put(log_file_type, log_type); String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - String ext_order_id = param.getString("ext_order_id"); - String status = param.getString("status"); - String type1 = param.getString("type"); + JSONObject json = new JSONObject(); - json.put("ext_order_id", ext_order_id); - json.put("status", status); - json.put("type", type1); - AddressDto addressDto = addressService.findByCode("feedbackOrderStatus"); + json.put("device_code", device_code); + json.put("error", error); + json.put("error_message", error_message); + + AddressDto addressDto = addressService.findByCode("feedbackAgvStatus"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; - log.info("feedbackOrderStatus----请求参数{}", json); + log.info("feedbackAgvStatus----请求参数{}", json); + try { result = HttpRequest.post(url) .body(String.valueOf(json)) .execute(); - String type = ""; - if (result.getStatus() == 200) { - type = "info"; - } else { - type = "error"; - } - - logServer.log(ext_order_id, "feedbackOrderStatus", type, param.toString(), result.body(), String.valueOf(result.getStatus()), url, ""); - log.info("feedbackOrderStatus----返回参数{}", result); + System.out.println(result); + log.info("feedbackAgvStatus----返回参数{}", result); } catch (Exception e) { String msg = e.getMessage(); //网络不通 System.out.println(msg); } return result; - + }finally { + MDC.remove(log_file_type); } - return null; + + } + + @Override + public HttpResponse feedbackDeviceStatus(String device_code, String code, String value) { + try { + MDC.put(log_file_type, log_type); + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + + JSONObject json = new JSONObject(); + json.put("device_code", device_code); + json.put("back_time", DateUtil.format(DateUtil.date(), "yyyyMMddHHmmssSSS")); + JSONArray ja = new JSONArray(); + JSONObject jo = new JSONObject(); + jo.put("code", code); + jo.put("value", value); + ja.add(jo); + json.put("data", ja); + AddressDto addressDto = addressService.findByCode("feedbackDeviceStatus"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("feedbackDeviceStatus----请求参数{}", json); + + try { + result = HttpRequest.post(url) + .body(String.valueOf(json)) + .execute(); + System.out.println(result); + log.info("feedbackDeviceStatus----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + }finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse feedbackAgv(JSONArray from) { + try { + MDC.put(log_file_type, log_type); + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + + AddressDto addressDto = addressService.findByCode("feedbackAgv"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("feedbackAgv----请求参数{}", from); + + try { + result = HttpRequest.post(url) + .body(String.valueOf(from)) + .execute(); + System.out.println(result); + log.info("feedbackAgv----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + }finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse applyOpenOrCloseDoor(String device_code, String status) { + try { + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + JSONObject jo = new JSONObject(); + jo.put("device_code", device_code); + jo.put("status", status); + HttpResponse result = null; + log.info("applyOpenOrCloseDoor-----请求参数{}", jo.toString()); + + AddressDto addressDto = addressService.findByCode("applyOpenOrCloseDoor"); + String methods_url = addressDto.getMethods_url(); + try { + result = HttpRequest.post(wmsurl + methods_url) + .body(String.valueOf(jo)) + .execute(); + System.out.println(result); + log.info("applyOpenOrCloseDoor-----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + }finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse queryDoorsStatus() { + try { + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + + HttpResponse result = null; + log.info("queryDoorStatus-----请求"); + AddressDto addressDto = addressService.findByCode("queryDoorsStatus"); + String methods_url = addressDto.getMethods_url(); + try { + result = HttpRequest.get(wmsurl + methods_url) + .body("") + .execute(); + log.info("queryDoorStatus-----输出参数{}", result.body().toString()); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + + } + return result; + }finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse feedbackOrderStatus(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + String ext_order_id = param.getString("ext_order_id"); + String status = param.getString("status"); + String type1 = param.getString("type"); + JSONObject json = new JSONObject(); + json.put("ext_order_id", ext_order_id); + json.put("status", status); + json.put("type", type1); + AddressDto addressDto = addressService.findByCode("feedbackOrderStatus"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("feedbackOrderStatus----请求参数{}", json); + try { + result = HttpRequest.post(url) + .body(String.valueOf(json)) + .execute(); + String type = ""; + if (result.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + + log.info("feedbackOrderStatus----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + + } + return null; + }finally { + MDC.remove(log_file_type); + } + } @Override public HttpResponse applyInCacheLineTask(JSONObject param) { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { - String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - // TODO 还没向地址表中添加 applyInCacheLineTask地址 - AddressDto addressDto = addressService.findByCode("applyInCacheLineTask"); - String methods_url = addressDto.getMethods_url(); - String url = wmsUrl + methods_url; - HttpResponse result = null; - log.info("feedbackOrderStatus----请求参数{}", param); - try { - result = HttpRequest.post(url) - .body(String.valueOf(param)) - .execute(); - String type = ""; - if (result.getStatus() == 200) { - type = "info"; - } else { - type = "error"; - } - - logServer.log("", "applyInCacheLineTask", type, param.toString(), result.body(), String.valueOf(result.getStatus()), url, ""); - log.info("applyInCacheLineTask----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } - return result; - } - return null; - } - - @Override - public HttpResponse applyOutCacheLineTask(JSONObject param) { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { - String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - // TODO 还没向地址表中添加 applyOutCacheLineTask - AddressDto addressDto = addressService.findByCode("applyOutCacheLineTask"); - String methods_url = addressDto.getMethods_url(); - String url = wmsUrl + methods_url; - HttpResponse result = null; - log.info("feedbackOrderStatus----请求参数{}", param); - try { - result = HttpRequest.post(url) - .body(String.valueOf(param)) - .execute(); - String type = ""; - if (result.getStatus() == 200) { - type = "info"; - } else { - type = "error"; - } - - logServer.log("", "applyOutCacheLineTask", type, param.toString(), result.body(), String.valueOf(result.getStatus()), url, ""); - log.info("applyOutCacheLineTask----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } - return result; - } - return null; - } - - @Override - public HttpResponse feedDeviceStatusType(JSONObject param) { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { - String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - // TODO 还没向地址表中添加 feedDeviceStatusType - AddressDto addressDto = addressService.findByCode("feedDeviceStatusType"); - String methods_url = addressDto.getMethods_url(); - String url = wmsUrl + methods_url; - HttpResponse result = null; - log.info("feedbackOrderStatus----请求参数{}", param); - try { - result = HttpRequest.post(url) - .body(String.valueOf(param)) - .execute(); - String type = ""; - if (result.getStatus() == 200) { - type = "info"; - } else { - type = "error"; - } - logServer.log("", "feedDeviceStatusType", type, param.toString(), result.body(), String.valueOf(result.getStatus()), url, ""); - log.info("feedDeviceStatusType----返回参数{}", result); - } catch (Exception e) { - String msg = e.getMessage(); - //网络不通 - System.out.println(msg); - } - return result; - } - return null; - } - - @Override - public HttpResponse feedOrderRealQty(JSONObject param) { - if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { - String order_code = param.getString("order"); - ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCode(order_code); - if (ObjectUtil.isEmpty(produceshiftorderDto)){ - return null; - } - if (!produceshiftorderDto.getOrder_status().equals("2") || !produceshiftorderDto.getOrder_status().equals("3")){ + try { + MDC.put(log_file_type, log_type); + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); - // TODO 还没向地址表中添加 feedDeviceStatusType - AddressDto addressDto = addressService.findByCode("feedOrderRealQty"); + // TODO 还没向地址表中添加 applyInCacheLineTask地址 + AddressDto addressDto = addressService.findByCode("applyInCacheLineTask"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; HttpResponse result = null; - log.info("feedOrderRealQty----请求参数{}", param); + log.info("feedbackOrderStatus----请求参数{}", param); try { result = HttpRequest.post(url) .body(String.valueOf(param)) @@ -607,8 +588,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } else { type = "error"; } - logServer.log("", "feedOrderRealQty", type, param.toString(), result.body(), String.valueOf(result.getStatus()), url, ""); - log.info("feedOrderRealQty----返回参数{}", result); + + log.info("applyInCacheLineTask----返回参数{}", result); } catch (Exception e) { String msg = e.getMessage(); //网络不通 @@ -616,8 +597,129 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } return result; } + return null; + }finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse applyOutCacheLineTask(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + // TODO 还没向地址表中添加 applyOutCacheLineTask + AddressDto addressDto = addressService.findByCode("applyOutCacheLineTask"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("feedbackOrderStatus----请求参数{}", param); + try { + result = HttpRequest.post(url) + .body(String.valueOf(param)) + .execute(); + String type = ""; + if (result.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + + log.info("applyOutCacheLineTask----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + } + return null; + }finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse feedDeviceStatusType(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + // TODO 还没向地址表中添加 feedDeviceStatusType + AddressDto addressDto = addressService.findByCode("feedDeviceStatusType"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("feedbackOrderStatus----请求参数{}", param); + try { + result = HttpRequest.post(url) + .body(String.valueOf(param)) + .execute(); + String type = ""; + if (result.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + log.info("feedDeviceStatusType----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + } + return null; + }finally { + MDC.remove(log_file_type); + } + + } + + @Override + public HttpResponse feedOrderRealQty(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.HASWMS).toString(), "1")) { + String order_code = param.getString("order"); + ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCode(order_code); + if (ObjectUtil.isEmpty(produceshiftorderDto)){ + return null; + } + if (!produceshiftorderDto.getOrder_status().equals("2") || !produceshiftorderDto.getOrder_status().equals("3")){ + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + // TODO 还没向地址表中添加 feedDeviceStatusType + AddressDto addressDto = addressService.findByCode("feedOrderRealQty"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("feedOrderRealQty----请求参数{}", param); + try { + result = HttpRequest.post(url) + .body(String.valueOf(param)) + .execute(); + String type = ""; + if (result.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + log.info("feedOrderRealQty----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + return result; + } + } + return null; + }finally { + MDC.remove(log_file_type); } - return null; } } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 4410da43..f5d70f51 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -11,9 +11,11 @@ import org.nl.acs.common.IDriverService; import org.nl.acs.config.AcsConfig; import org.nl.acs.config.server.AcsConfigService; import org.nl.acs.device.service.DeviceService; +import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_machine.HailiangEngravingMachineDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_packer_station.HailiangPackerStationDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_device.HailiangSpecialDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_stacking_station.HailiangStackingStationDriver; import org.nl.acs.device_driver.basedriver.standard_autodoor.StandardAutodoorDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_conveyor_control.StandardCoveyorControlDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_conveyor_control_with_plcscanner.StandardCoveyorControlWithPlcScannerDeviceDriver; @@ -155,7 +157,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (!StrUtil.isEmpty(task_uuid)) { jo.put("ext_task_id", task_uuid); } - + TaskDto task_dto = jo.toJavaObject(TaskDto.class); try { taskService.create(task_dto); @@ -651,45 +653,64 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { HailiangSpecialDeviceDriver hailiangSpecialDeviceDriver; HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver; HailiangEngravingMachineDeviceDriver hailiangEngravingMachineDeviceDriver; - if (device.getDeviceDriver() instanceof HailiangSpecialDeviceDriver){ + HailiangStackingStationDriver hailiangStackingStationDriver; + if (device.getDeviceDriver() instanceof HailiangSpecialDeviceDriver) { hailiangSpecialDeviceDriver = (HailiangSpecialDeviceDriver) device.getDeviceDriver(); //暂停 - if (type.equals("1")){ - hailiangSpecialDeviceDriver.writing("to_pause","1"); + if (type.equals("1")) { + hailiangSpecialDeviceDriver.writing("to_pause", "1"); } //恢复 - if (type.equals("2")){ - hailiangSpecialDeviceDriver.writing("to_pause","0"); + if (type.equals("2")) { + hailiangSpecialDeviceDriver.writing("to_pause", "0"); } //强制完成 - if (type.equals("3")){ + if (type.equals("3")) { obj.setOrder_status("3"); obj.setUpdate_by("mes"); obj.setUpdate_time(DateUtil.now()); produceshiftorderService.update(obj); } } - if (device.getDeviceDriver() instanceof HailiangPackerStationDeviceDriver){ + if (device.getDeviceDriver() instanceof HailiangPackerStationDeviceDriver) { hailiangPackerStationDeviceDriver = (HailiangPackerStationDeviceDriver) device.getDeviceDriver(); //强制完成 - if (type.equals("3")){ + if (type.equals("3")) { obj.setOrder_status("3"); obj.setUpdate_by("mes"); produceshiftorderService.update(obj); } } - if (device.getDeviceDriver() instanceof HailiangEngravingMachineDeviceDriver){ + if (device.getDeviceDriver() instanceof HailiangEngravingMachineDeviceDriver) { hailiangEngravingMachineDeviceDriver = (HailiangEngravingMachineDeviceDriver) device.getDeviceDriver(); //暂停 - if (type.equals("1")){ - hailiangEngravingMachineDeviceDriver.writing("to_pause","1"); + if (type.equals("1")) { + hailiangEngravingMachineDeviceDriver.writing("to_pause", "1"); } //恢复 - if (type.equals("2")){ - hailiangEngravingMachineDeviceDriver.writing("to_pause","0"); + if (type.equals("2")) { + hailiangEngravingMachineDeviceDriver.writing("to_pause", "0"); } //强制完成 - if (type.equals("3")){ + if (type.equals("3")) { + obj.setOrder_status("3"); + obj.setUpdate_by("mes"); + obj.setUpdate_time(DateUtil.now()); + produceshiftorderService.update(obj); + } + } + + if (device.getDeviceDriver() instanceof HailiangStackingStationDriver) { + hailiangStackingStationDriver = (HailiangStackingStationDriver) device.getDeviceDriver(); + //暂停 + if (type.equals("1")) { + hailiangStackingStationDriver.writing("to_lane_off", "1"); + } + //恢复 + if (type.equals("2")) { + hailiangStackingStationDriver.writing("to_lane_off", "0"); + } + if (type.equals("3")) { obj.setOrder_status("3"); obj.setUpdate_by("mes"); obj.setUpdate_time(DateUtil.now()); @@ -709,7 +730,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { JSONArray datas = JSONArray.parseArray(whereJson); log.info("orderStatusUpdate--------------:输入参数" + datas.toString()); JSONObject map = new JSONObject(); - if (datas.size() > 0){ + if (datas.size() > 0) { for (int i = 0; i < datas.size(); i++) { JSONObject jsonObject = datas.getJSONObject(i); String device_code = jsonObject.getString("device_code"); @@ -720,14 +741,14 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { DeviceExtraManageDto deviceExtraManageDto = extra.get(j); String deviceCode = deviceExtraManageDto.getDevice_code(); String extra_name = deviceExtraManageDto.getExtra_name(); - if (deviceCode.equals(device_code) && extra_name.equals(dbName)){ + if (deviceCode.equals(device_code) && extra_name.equals(dbName)) { String extra_code = deviceExtraManageDto.getExtra_code(); String[] split = extra_code.split("\\."); extra_code = split[split.length - 1]; - extra_code = extra_code.substring(0,1).toUpperCase()+extra_code.substring(1); + extra_code = extra_code.substring(0, 1).toUpperCase() + extra_code.substring(1); IDriverService driverService = applicationContext.getBean(device.getDeviceDriverDefination().getDriverCode(), IDriverService.class); Integer dbValue = driverService.getDbValue(device, extra_code); - map.put(dbName,dbValue); + map.put(dbName, dbValue); break; } } @@ -740,4 +761,67 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return resultJson; } + @Override + public Map replaceDevice(String whereJson) { + String now = DateUtil.now(); + JSONArray datas = JSONArray.parseArray(whereJson); + log.info("replaceDevice工单更换设备--------------:输入参数" + datas.toString()); + for (int i = 0; i < datas.size(); i++) { + JSONObject jsonObject = datas.getJSONObject(i); + String order_code = jsonObject.getString("order_code"); + String new_device_code = jsonObject.getString("device_code"); + ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCode(order_code); + String old_device_code = produceshiftorderDto.getDevice_code(); + Device old_device = deviceAppService.findDeviceByCode(old_device_code); + HailiangSpecialDeviceDriver old_hailiangSpecialDeviceDriver; + HailiangSpecialDeviceDriver new_hailiangSpecialDeviceDriver; + HailiangPackerStationDeviceDriver old_hailiangPackerStationDeviceDriver; + HailiangPackerStationDeviceDriver new_hailiangPackerStationDeviceDriver; + HailiangEngravingMachineDeviceDriver old_hailiangEngravingMachineDeviceDriver; + HailiangEngravingMachineDeviceDriver new_hailiangEngravingMachineDeviceDriver; + if (old_device.getDeviceDriver() instanceof HailiangSpecialDeviceDriver) { + //更换设备前,先判断新设备是否开机 + Device new_device = deviceAppService.findDeviceByCode(new_device_code); + new_hailiangSpecialDeviceDriver = (HailiangSpecialDeviceDriver) new_device.getDeviceDriver(); + if (!new_hailiangSpecialDeviceDriver.getItemProtocol().getIsonline()) { + throw new BadRequestException("更换设备失败,该设备已关机,请开机后重试!"); + } + old_hailiangSpecialDeviceDriver = (HailiangSpecialDeviceDriver) old_device.getDeviceDriver(); + //获取更换设备前 老设备生产的数量 + int now_order_prod_num = old_hailiangSpecialDeviceDriver.getNow_order_prod_num(); + //获取订单总量 + int order_prod_allnum = Integer.parseInt(produceshiftorderDto.getQty().toString()); + //获取每箱数量 + int one_qty = Integer.parseInt(produceshiftorderDto.getOne_qty().toString()); + //计算订单数量还需要生产多少个 + int diff = order_prod_allnum - now_order_prod_num; + + //更改工单设备号 + produceshiftorderDto.setDevice_code(new_device_code); + produceshiftorderDto.setUpdate_time(now); + produceshiftorderDto.setUpdate_by("mes"); + produceshiftorderService.updateByOrderCode(produceshiftorderDto); + + //将新设备中的报工数量Report_qty更改为上个设备生产的数量 + //将工单数据写入到新生产设备中 + new_hailiangSpecialDeviceDriver.writing("to_clear", "1"); + new_hailiangSpecialDeviceDriver.writing("to_order", order_code); + new_hailiangSpecialDeviceDriver.writing("to_one_box_num", one_qty + ""); + new_hailiangSpecialDeviceDriver.writing("to_order_prod_num", diff + ""); + new_hailiangSpecialDeviceDriver.writing("to_pause", "0"); + //老设备数据清除 + old_hailiangSpecialDeviceDriver.writing("to_order","0"); + old_hailiangSpecialDeviceDriver.writing("to_clear","1"); + } + // TODO其他驱动更换设备还没写 + if (old_device.getDeviceDriver() instanceof HailiangPackerStationDeviceDriver){ + } + } + JSONObject resultJson = new JSONObject(); + resultJson.put("status", HttpStatus.OK); + resultJson.put("message", "操作成功"); + resultJson.put("data", new JSONObject()); + return resultJson; + } + } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/rest/LogsController.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/rest/LogsController.java deleted file mode 100644 index 8bb497e8..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/rest/LogsController.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.nl.acs.log.rest; - - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.log.service.LogServer; -import org.nl.annotation.Log; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.text.ParseException; -import java.util.Map; - -/** - * @author loujf - * @date 2022-02-25 - **/ -@RestController -@RequiredArgsConstructor -@Api(tags = "日志管理") -@RequestMapping("/api/log") -@Slf4j -public class LogsController { - - private final LogServer logService; - - @GetMapping - @Log("查询日志") - @ApiOperation("查询日志") - //@PreAuthorize("@el.check('log:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) throws ParseException { - return new ResponseEntity<>(logService.queryAll(whereJson, page), HttpStatus.OK); - } -} - diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/1.txt b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/1.txt new file mode 100644 index 00000000..e69de29b diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/DeviceExecuteLogService.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/DeviceExecuteLogService.java new file mode 100644 index 00000000..b121480c --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/DeviceExecuteLogService.java @@ -0,0 +1,27 @@ + +package org.nl.acs.log.service; + +/** + * @author loujf + * @description 设备执行日志 + * @date 2022-02-25 + **/ +public interface DeviceExecuteLogService { + /** + * 设备光电变化实时光电信号 + * @param device_code 设备编号 + * @param key plc信号 + * @param value plc信号值 + */ + void deviceItemValue(String device_code, String key, String value); + + /** + * 设备执行日志,会保留历史记录 + * @param device_code 设备编号 + * @param vehicle_code 载具号 + * @param inst_code 指令号 + * @param message 日志信息 + */ + void deviceExecuteLog(String device_code, String vehicle_code, String inst_code, String message); + +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/LogServer.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/LogServer.java deleted file mode 100644 index 7f7701bf..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/LogServer.java +++ /dev/null @@ -1,52 +0,0 @@ - -package org.nl.acs.log.service; - -import org.springframework.data.domain.Pageable; - -import java.text.ParseException; -import java.util.Map; - -/** - * @author loujf - * @description 服务接口 - * @date 2022-02-25 - **/ -public interface LogServer { - - /** - * 查询数据分页 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Object queryAll(Map whereJson, Pageable page) throws ParseException; - - /** - * @param task_code 任务编码 - * @param method 接口方法名 - * @param type 日志类别:error / info - * @param requestParam 请求参数 - * @param responseParam 返回参数 - * @param status_code 接口状态码 - * @param requestUrl 请求地址 - * @param vehicle_code 载具号 - */ - void log(String task_code, String method, String type, String requestParam, String responseParam, String status_code, String requestUrl, String vehicle_code); - - /** - * @param device_code 设备编号 - * @param key plc信号 - * @param value plc信号值 - */ - void deviceLog(String device_code, String key, String value,String field_desc); - - void deviceLog(String device_code, String key, String value); - - /** - * @param device_code 设备编号 - * @param vehicle_code 载具号 - * @param inst_code 指令号 - */ - void deviceLogToacs(String device_code, String vehicle_code, String inst_code, String message); -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/DeviceLogDto.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/DeviceLogDto.java deleted file mode 100644 index ee811aef..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/DeviceLogDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.nl.acs.log.service.dto; - - -import lombok.Data; - -@Data -public class DeviceLogDto { - - /* 日志标识 */ - private String log_uuid; - - /* 设备编码 */ - private String device_code; - - /* plc信号标识 */ - private String key; - - /* plc信号值 */ - private String value; - - /* 修改时间 YYYY-MM-DD hh:mm:ss */ - private String update_time; - -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/LogDto.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/LogDto.java deleted file mode 100644 index e493d304..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/dto/LogDto.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.nl.acs.log.service.dto; - -import lombok.Data; - -@Data -public class LogDto { - - /* 日志标识 */ - private String log_uuid; - - /* 任务编码 */ - private String task_code; - - /* 任务标识 */ - private String task_id; - - /* 载具号 */ - private String vehicle_code; - - /* 备注 */ - private String remark; - - /* 日志类型 */ - private String log_type; - - /* 方法 */ - private String method; - - /* 请求参数 */ - private String requestparam; - - /* 响应参数 */ - private String responseparam; - - /* 请求地址 */ - private String requesturl; - - /* 状态码 */ - private String status_code; - - /* 是否删除 1:是;0:否 */ - private String is_delete; - - /* 创建者 */ - private String create_by; - - /* 创建时间 YYYY-MM-DD hh:mm:ss */ - private String create_time; - - /* 修改者 */ - private String update_by; - - /* 修改时间 */ - private String update_time; - -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/DeviceExecuteLogServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/DeviceExecuteLogServiceImpl.java new file mode 100644 index 00000000..9a663a8c --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/DeviceExecuteLogServiceImpl.java @@ -0,0 +1,40 @@ + +package org.nl.acs.log.service.impl; + + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.slf4j.MDC; +import org.springframework.stereotype.Service; + +/** + * @author loujf + * @description 服务实现 + * @date 2022-02-25 + **/ +@Service +@RequiredArgsConstructor +@Slf4j +public class DeviceExecuteLogServiceImpl implements DeviceExecuteLogService { + + + @Override + public void deviceItemValue(String device_code, String key, String value) { + String now = DateUtil.now(); + + + } + + @Override + public void deviceExecuteLog(String device_code, String vehicle_code, String inst_code, String message) { + try { + MDC.put("device_code_log",device_code); + log.info("{},{}",device_code,message); + }finally { + MDC.remove("device_code_log"); + } + } +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/LogServerImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/LogServerImpl.java deleted file mode 100644 index e515c3d2..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/log/service/impl/LogServerImpl.java +++ /dev/null @@ -1,168 +0,0 @@ - -package org.nl.acs.log.service.impl; - - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.log.service.LogServer; -import org.nl.acs.log.service.dto.DeviceLogDto; -import org.nl.acs.log.service.dto.LogDto; -import org.nl.utils.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.mongodb.core.query.Update; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Map; - -/** - * @author loujf - * @description 服务实现 - * @date 2022-02-25 - **/ -@Service -@RequiredArgsConstructor -@Slf4j -public class LogServerImpl implements LogServer { - - @Autowired - private MongoTemplate mongoTemplate; - - @Override - public Object queryAll(Map whereJson, Pageable page) { - String blurry = (String) whereJson.get("blurry"); - String begin_time = (String) whereJson.get("begin_time"); - String end_time = (String) whereJson.get("end_time"); - - Query query = new Query().with(Sort.by("create_time")); - - if (StrUtil.isNotEmpty(blurry)) { - query.addCriteria(Criteria.where("method").is(blurry).regex("^.*" + blurry + ".*$")); - } - if (StrUtil.isNotEmpty(begin_time) && StrUtil.isNotEmpty(end_time)) { - query.addCriteria(Criteria.where("create_time") - .gte(begin_time) - .lte(end_time)); - } - - //根据条件得到的总条数 - long totalSize = mongoTemplate.count(query, LogDto.class,"interface_log"); - - //处理分页 - query.skip(page.getPageNumber()).limit(page.getPageSize()); - List list = mongoTemplate.find(query,LogDto.class, "interface_log"); - - //封装前端分页查询结果 - JSONObject result = new JSONObject(); - result.put("content", list); - result.put("totalElements", totalSize); - return result; - } - - @Override - public void log(String task_code, String method, String type, String requestParam, String responseParam, String status_code, String requesturl, String vehicle_code) { - String currentUsername = SecurityUtils.getCurrentUsername(); - String now = DateUtil.now(); - - LogDto logDto = new LogDto(); - logDto.setTask_code(task_code); - logDto.setMethod(method); - logDto.setLog_type(type); - logDto.setRequestparam(requestParam); - logDto.setResponseparam(responseParam); - logDto.setStatus_code(status_code); - logDto.setRequesturl(requesturl); - logDto.setVehicle_code(vehicle_code); - - logDto.setCreate_by(currentUsername); - logDto.setUpdate_by(currentUsername); - logDto.setUpdate_time(now); - logDto.setCreate_time(now); - - mongoTemplate.save(logDto,"interface_log"); - } - @Override - public void deviceLog(String device_code,String key, String value, String field_desc) { - String now = DateUtil.now(); - - DeviceLogDto dto; - Query query = new Query(Criteria - .where("device_code").is(device_code) - .and("key").is(key) - ); - List deviceList = mongoTemplate.find(query, DeviceLogDto.class,"device_log"); - if (ObjectUtil.isEmpty(deviceList)) { - JSONObject json = new JSONObject(); - json.put("device_code",device_code); - json.put("key",key); - json.put("value",value); - json.put("update_time",now); - json.put("field_desc",field_desc); - mongoTemplate.save(json,"device_log"); - } else { - for (int i = 0; i < deviceList.size(); i++) { - dto = deviceList.get(i); - Update update = new Update(); - update.set("device_code",dto.getDevice_code()); - update.set("key",dto.getKey()); - update.set("value",value); - update.set("update_time",now); - mongoTemplate.upsert(query, update, "device_log"); - } - } - } - - @Override - public void deviceLog(String device_code,String key, String value) { - String now = DateUtil.now(); - - DeviceLogDto dto; - Query query = new Query(Criteria - .where("device_code").is(device_code) - .and("key").is(key) - ); - List deviceList = mongoTemplate.find(query, DeviceLogDto.class,"device_log"); - if (ObjectUtil.isEmpty(deviceList)) { - JSONObject json = new JSONObject(); - json.put("device_code",device_code); - json.put("key",key); - json.put("value",value); - json.put("update_time",now); - mongoTemplate.save(json,"device_log"); - } else { - for (int i = 0; i < deviceList.size(); i++) { - dto = deviceList.get(i); - Update update = new Update(); - update.set("device_code",dto.getDevice_code()); - update.set("key",dto.getKey()); - update.set("value",value); - update.set("update_time",now); - mongoTemplate.upsert(query, update, "device_log"); - } - } - } - - @Override - public void deviceLogToacs(String device_code, String vehicle_code, String inst_code, String message) { - String now = DateUtil.now(); - - JSONObject json = new JSONObject(); - json.put("device_code",device_code); - json.put("vehicle_code",vehicle_code); - json.put("inst_code",inst_code); - json.put("message",message); - json.put("create_time",now); - - mongoTemplate.save(json,device_code); - } - -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java index d27df6b5..946bab92 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java @@ -63,4 +63,10 @@ public class ProduceshiftorderDto implements Serializable { /** 是否下发AGV */ private String is_needmove; + //托盘模板 + private String lane_tray_template; + + //托盘总量 + private String tray_num; + } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java index 181ba0ea..69a9f1be 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java @@ -11,6 +11,7 @@ import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_machi import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_packer_station.HailiangPackerStationDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_smart_plc_test.HailiangSmartplcTestDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_device.HailiangSpecialDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_stacking_station.HailiangStackingStationDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; @@ -145,6 +146,9 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver; //smart200 HailiangSmartplcTestDeviceDriver hailiangSmartplcTestDeviceDriver; + //机械手巷道 + HailiangStackingStationDriver hailiangStackingStationDriver; + if (device.getDeviceDriver() instanceof HailiangSpecialDeviceDriver) { hailiangSpecialDeviceDriver = (HailiangSpecialDeviceDriver) device.getDeviceDriver(); //专机下发工单信号:倒料数量(-99999) 当前产量清零(1) 订单生产总量 每箱接料数量 工单号 @@ -158,6 +162,9 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A } else { extra_value = "99999"; } + if (!hailiangSpecialDeviceDriver.getItemProtocol().getIsonline()){ + throw new BadRequestException("设备未开机,开工失败!"); + } dto.setOne_qty(BigDecimal.valueOf((Long.parseLong(extra_value)))); hailiangSpecialDeviceDriver.writing("to_clear", "1"); hailiangSpecialDeviceDriver.writing("to_order", dto.getOrder_code()); @@ -170,7 +177,6 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A if (device.getDeviceDriver() instanceof HailiangEngravingMachineDeviceDriver) { hailiangEngravingMachineDeviceDriver = (HailiangEngravingMachineDeviceDriver) device.getDeviceDriver(); String extra_value = hailiangEngravingMachineDeviceDriver.getExtraValue().get("one_qty").toString(); - if (StrUtil.equals(is_needmove, "1")) { if (ObjectUtil.isEmpty(extra_value)) { throw new BadRequestException("满料框数量为空"); @@ -179,6 +185,9 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A extra_value = "99999"; } dto.setOne_qty(BigDecimal.valueOf((Long.parseLong(extra_value)))); + if (!hailiangEngravingMachineDeviceDriver.getItemProtocol().getIsonline()){ + throw new BadRequestException("设备未开机,工单下发失败!"); + } hailiangEngravingMachineDeviceDriver.writing("to_clear", "1"); hailiangEngravingMachineDeviceDriver.writing("to_order", dto.getOrder_code()); hailiangEngravingMachineDeviceDriver.writing("to_one_box_num", extra_value); @@ -187,6 +196,9 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A if (device.getDeviceDriver() instanceof HailiangPackerStationDeviceDriver) { hailiangPackerStationDeviceDriver = (HailiangPackerStationDeviceDriver) device.getDeviceDriver(); + if (!hailiangPackerStationDeviceDriver.getItemProtocol().getIsonline()){ + throw new BadRequestException("设备未开机,工单下发失败"); + } hailiangPackerStationDeviceDriver.writing("to_clear", "1"); hailiangPackerStationDeviceDriver.writing("to_order", dto.getOrder_code()); hailiangPackerStationDeviceDriver.writing("to_order_prod_num", dto.getQty().toString()); @@ -201,6 +213,29 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A hailiangSmartplcTestDeviceDriver.writing("to_pause", "0"); } + if (device.getDeviceDriver() instanceof HailiangStackingStationDriver){ + String lane_tray_template = dto.getLane_tray_template(); + String to_tray_info = ""; + if (lane_tray_template.equals("1")){ + to_tray_info = lane_tray_template + "12"; + } + if (lane_tray_template.equals("2")){ + to_tray_info = lane_tray_template + "24"; + } + if (StrUtil.isEmpty(dto.getTray_num())){ + dto.setTray_num("1"); + } + hailiangStackingStationDriver = (HailiangStackingStationDriver) device.getDeviceDriver(); + if (!hailiangStackingStationDriver.getItemProtocol().getIsonline()){ + throw new BadRequestException("设备未开机,工单下发失败"); + } + hailiangStackingStationDriver.writing("to_clear","1"); + hailiangStackingStationDriver.writing("to_order",dto.getOrder_code()); + hailiangStackingStationDriver.writing("to_order_prod_num",dto.getQty().toString()); + hailiangStackingStationDriver.writing("to_tray_num",dto.getTray_num()); + hailiangStackingStationDriver.writing("to_tray_info",to_tray_info); + } + JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.insert(json); order.add(dto); @@ -247,6 +282,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A HailiangEngravingMachineDeviceDriver hailiangEngravingMachineDeviceDriver; HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver; HailiangSpecialDeviceDriver hailiangSpecialDeviceDriver; + HailiangStackingStationDriver hailiangStackingStationDriver; if (device.getDeviceDriver() instanceof HailiangSpecialDeviceDriver) { hailiangSpecialDeviceDriver = (HailiangSpecialDeviceDriver) device.getDeviceDriver(); if (hailiangSpecialDeviceDriver.getStatus_type() == 1){ @@ -301,6 +337,9 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A hailiangEngravingMachineDeviceDriver.writing("to_order", "0"); hailiangEngravingMachineDeviceDriver.writing("to_clear", "1"); } + } else if (device.getDeviceDriver() instanceof HailiangStackingStationDriver){ + hailiangStackingStationDriver = (HailiangStackingStationDriver) device.getDeviceDriver(); + hailiangStackingStationDriver.writing("to_compel_finish","1"); } } } @@ -391,6 +430,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A HailiangSpecialDeviceDriver hailiangSpecialDeviceDriver; HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver; HailiangEngravingMachineDeviceDriver hailiangEngravingMachineDeviceDriver; + HailiangStackingStationDriver hailiangStackingStationDriver; JSONObject jsonObject = wo.query("device_code = '" + device_code + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonObject)){ jsonObject = new JSONObject(); @@ -459,6 +499,10 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A hailiangEngravingMachineDeviceDriver.writing("to_clear", "1"); } } + if (device.getDeviceDriver() instanceof HailiangStackingStationDriver) { + hailiangStackingStationDriver = (HailiangStackingStationDriver) device.getDeviceDriver(); + hailiangStackingStationDriver.writing("to_compel_finish","1"); + } JSONObject map1 = new JSONObject(); map1.put("order_id", order_id); map1.put("order_status", "3"); diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 0c25fc5e..8ab4a850 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -30,9 +30,7 @@ import org.nl.acs.instruction.service.dto.InstructionDto; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; -import org.nl.acs.opc.DeviceType; import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskFeedbackService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; @@ -54,7 +52,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.math.BigDecimal; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -103,7 +100,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { @Override public List queryAll(String whereJson) { WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONArray arr = wo.query(whereJson).getResultJSONArray(0); + JSONArray arr = wo.query(whereJson,"task_code").getResultJSONArray(0); List list = arr.toJavaList(TaskDto.class); return list; } @@ -151,30 +148,32 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { String point_code = (String) whereJson.get("point_code"); String is_over = (String) whereJson.get("is_over"); List taskList = new ArrayList(); - for (int i = 0; i < tasks.size(); i++) { - TaskDto task = tasks.get(i); - if ("1".equals(is_over) && Integer.valueOf(task.getTask_status()) < 2) { - continue; + if(ObjectUtil.isNotEmpty(tasks)){ + for (int i = 0; i < tasks.size(); i++) { + TaskDto task = tasks.get(i); + if ("1".equals(is_over) && Integer.valueOf(task.getTask_status()) < 2) { + continue; + } + if (!"1".equals(is_over) && Integer.valueOf(task.getTask_status()) >= 2) { + continue; + } + if (!ObjectUtil.isEmpty(task_code) && !task.getTask_code().equals(task_code)) { + continue; + } + if (!ObjectUtil.isEmpty(status) && !task.getTask_status().equals(status)) { + continue; + } + if (!ObjectUtil.isEmpty(vehicle_code) && !task.getVehicle_code().equals(vehicle_code)) { + continue; + } + if (!ObjectUtil.isEmpty(material_type) && !task.getMaterial().equals(material_type)) { + continue; + } + if (!ObjectUtil.isEmpty(point_code) && !(task.getStart_point_code().equals(point_code) || task.getNext_point_code().equals(point_code))) { + continue; + } + taskList.add(task); } - if (!"1".equals(is_over) && Integer.valueOf(task.getTask_status()) >= 2) { - continue; - } - if (!ObjectUtil.isEmpty(task_code) && !task.getTask_code().equals(task_code)) { - continue; - } - if (!ObjectUtil.isEmpty(status) && !task.getTask_status().equals(status)) { - continue; - } - if (!ObjectUtil.isEmpty(vehicle_code) && !task.getVehicle_code().equals(vehicle_code)) { - continue; - } - if (!ObjectUtil.isEmpty(material_type) && !task.getMaterial().equals(material_type)) { - continue; - } - if (!ObjectUtil.isEmpty(point_code) && !(task.getStart_point_code().equals(point_code) || task.getNext_point_code().equals(point_code))) { - continue; - } - taskList.add(task); } JSONObject jo = new JSONObject(); jo.put("content", taskList); diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/annotation/RateLimiter.java b/wcs/hd/nladmin-system/src/main/java/org/nl/annotation/RateLimiter.java new file mode 100644 index 00000000..5553e1d6 --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/annotation/RateLimiter.java @@ -0,0 +1,39 @@ +package org.nl.annotation; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.core.annotation.AnnotationUtils; + +import java.lang.annotation.*; +import java.util.concurrent.TimeUnit; + +/** + * @Author: lyd + * @Description: 限流注解,添加了 {@link AliasFor} 必须通过 {@link AnnotationUtils} 获取,才会生效 + * @Date: 2022-08-15 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface RateLimiter { + int NOT_LIMITED = 0; + + /** + * qps + */ + @AliasFor("qps") double value() default NOT_LIMITED; + + /** + * qps + */ + @AliasFor("value") double qps() default NOT_LIMITED; + + /** + * 超时时长 + */ + int timeout() default 0; + + /** + * 超时时间单位 + */ + TimeUnit timeUnit() default TimeUnit.MILLISECONDS; +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/aspect/RateLimiterAspect.java b/wcs/hd/nladmin-system/src/main/java/org/nl/aspect/RateLimiterAspect.java new file mode 100644 index 00000000..0fa3d063 --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/aspect/RateLimiterAspect.java @@ -0,0 +1,55 @@ +package org.nl.aspect; + +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.nl.annotation.RateLimiter; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +/** + * @Author: lyd + * @Description: 限流切面 + * @Date: 2022-08-15 + */ +@Slf4j +@Aspect +@Component +public class RateLimiterAspect { + private static final ConcurrentMap RATE_LIMITER_CACHE = new ConcurrentHashMap<>(); + + @Pointcut("@annotation(org.nl.annotation.RateLimiter)") + public void rateLimit() { + + } + + @Around("rateLimit()") + public Object pointcut(ProceedingJoinPoint point) throws Throwable { + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); + // 通过 AnnotationUtils.findAnnotation 获取 RateLimiter 注解 + RateLimiter rateLimiter = AnnotationUtils.findAnnotation(method, RateLimiter.class); + if (rateLimiter != null && rateLimiter.qps() > RateLimiter.NOT_LIMITED) { + double qps = rateLimiter.qps(); + if (RATE_LIMITER_CACHE.get(method.getName()) == null) { + // 初始化 QPS + RATE_LIMITER_CACHE.put(method.getName(), com.google.common.util.concurrent.RateLimiter.create(qps)); + } + + log.debug("【{}】的QPS设置为: {}", method.getName(), RATE_LIMITER_CACHE.get(method.getName()).getRate()); + // 尝试获取令牌 + if (RATE_LIMITER_CACHE.get(method.getName()) != null && !RATE_LIMITER_CACHE.get(method.getName()).tryAcquire(rateLimiter.timeout(), rateLimiter.timeUnit())) { +// throw new RuntimeException("手速太快了,慢点儿吧~"); + log.error("操作台频繁,慢点儿吧~"); + } + } + return point.proceed(); + } +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerTypeEnum.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerTypeEnum.java deleted file mode 100644 index 80415419..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerTypeEnum.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.nl.modules.log; - -import org.slf4j.Marker; -import org.slf4j.MarkerFactory; - -public enum LogMarkerTypeEnum { - DEFAULT("default", "默认日志"), - REQUEST("request", "请求日志"), - QUARTZ("quartz", "定时器日志"), - DEVICE_EXECUTE("device_execute", "设备执行日志"), - AGV_TASK_STATUS("agv_task_status", "agv任务状态日志"), - AGV_FEEDBACK_SERVLET("agv_feedback_servlet", "反馈AGV请求"), - AGV_LEAVE_SERVLET("agv_leave_servlet", "AGV请求离开"), - ACS_TO_ERP("acs_to_erp", "ACS请求ERP"), - ACS_TO_WMS("acs_to_wms", "ACS请求WMS"), - AUTO_CREATE_INST("auto_create_inst", "自动创建指令"), - NDC_SOCKET_CONNECTION_AUTORUN("ndc_socket_connection_autorun", "NDC自动连接"), - XZ_AGV_TASK_STATUS("xz_agv_task_status", "仙知AGV指令状态"), - WMS_TO_ACS("wms_to_acs", "WMS下发ACS"); - // 成员变量 - private String name; - private String code; - - // 构造方法 - private LogMarkerTypeEnum(String code, String name) { - this.code = code; - this.name = name; - } - - public static Marker getMarker(LogMarkerTypeEnum logType) { - return MarkerFactory.getMarker(logType.code); - } -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerUtil.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerUtil.java deleted file mode 100644 index a4281590..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/LogMarkerUtil.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.nl.modules.log; - -import org.slf4j.Marker; -import org.slf4j.MarkerFactory; - -public class LogMarkerUtil { - private static final Marker MARKER = MarkerFactory.getMarker("test_marker"); - -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java deleted file mode 100644 index 886a6b31..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.nl.modules.log; - -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.UnsynchronizedAppenderBase; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import com.mongodb.*; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.MongoDatabase; -import lombok.Data; -import org.bson.Document; -import org.nl.utils.SpringContextHolder; -import org.slf4j.Marker; -import org.springframework.data.mongodb.core.MongoTemplate; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.Collections; - -/** - * https://www.cnblogs.com/lzghyh/p/14913230.html - * https://juejin.cn/post/6844903488896385037 - * https://cloud.tencent.com/developer/article/1384035 - * https://www.freesion.com/article/229560377/ - *

- * https://cloud.tencent.com/developer/article/1384035 - */ -@Data -public class MongoDBAppenderBase extends UnsynchronizedAppenderBase { - - @Override - protected void append(ILoggingEvent eventObject) { - - MongoTemplate mongoTemplate = SpringContextHolder.getBean(MongoTemplate.class); - - if (mongoTemplate != null) { - final BasicDBObject doc = new BasicDBObject(); - Marker marker = eventObject.getMarker(); - if (!ObjectUtil.isEmpty(marker)) { - doc.append("marker", marker.getName()); - } else { - doc.append("marker", "default"); - } - try { - doc.append("ip", InetAddress.getLocalHost().getHostAddress()); - } catch (UnknownHostException e) { - e.printStackTrace(); - } - - doc.append("level", eventObject.getLevel().toString()); - doc.append("logger", eventObject.getLoggerName()); - doc.append("thread", eventObject.getThreadName()); - doc.append("message", eventObject.getFormattedMessage()); - mongoTemplate.insert(doc, "log"); - } - } - - -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/rest/RootLogController.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/rest/RootLogController.java deleted file mode 100644 index 63ade571..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/rest/RootLogController.java +++ /dev/null @@ -1,55 +0,0 @@ - -package org.nl.modules.log.rest; - - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.annotation.Log; -import org.nl.modules.log.service.RootLogService; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.text.ParseException; -import java.util.Map; - -/** - * @author ldjun - * @date 2021-08-19 - **/ -@RestController -@RequiredArgsConstructor -@Api(tags = "系统日志") -@RequestMapping("/api/rootLog") -@Slf4j -public class RootLogController { - - private final RootLogService rootLogService; - - @GetMapping - @Log("查询系统日志") - @ApiOperation("查询系统日志") - //@PreAuthorize("@el.check('point:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(rootLogService.queryAll(whereJson, page), HttpStatus.OK); - } - - @GetMapping("/deviceLog") - @Log("查询设备日志") - @ApiOperation("查询设备日志") - //@PreAuthorize("@el.check('log:list')") - public ResponseEntity queryDeviceLog(@RequestParam Map whereJson, Pageable page) throws ParseException { - return new ResponseEntity<>(rootLogService.queryDeviceLog(whereJson, page), HttpStatus.OK); - } - - @PostMapping( "/error") - @Log("查询异常详情") - @ApiOperation("查询异常详情") - public ResponseEntity findError(@RequestBody Map whereJson) { - return new ResponseEntity<>(rootLogService.findError(whereJson), HttpStatus.OK); - } - -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/RootLogService.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/RootLogService.java deleted file mode 100644 index 4f860fcb..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/RootLogService.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.nl.modules.log.service; - -import org.springframework.data.domain.Pageable; - -import java.text.ParseException; -import java.util.Map; - -/** - * 系统日志查询 - */ -public interface RootLogService { - /** - * 查询数据分页 - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); - - /** - * 查询设备日志 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryDeviceLog(Map whereJson, Pageable page) throws ParseException; - - /** - * 查询异常详情 - * - * @param whereJson - * @return Log - */ - String findError(Map whereJson); -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/impl/RootLogServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/impl/RootLogServiceImpl.java deleted file mode 100644 index 2da6c0d2..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/service/impl/RootLogServiceImpl.java +++ /dev/null @@ -1,128 +0,0 @@ -package org.nl.modules.log.service.impl; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.acs.device.service.DeviceService; -import org.nl.modules.log.service.RootLogService; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Map; - -/** - * @author ldjun - * @description 服务实现 - * @date 2021-08-19 - **/ -@Service -@RequiredArgsConstructor -@Slf4j -public class RootLogServiceImpl implements RootLogService { - - private final MongoTemplate mongoTemplate; - - private final DeviceService deviceService; - - @Override - public Map queryAll(Map whereJson, Pageable page){ - String log_type = (String) whereJson.get("log_type"); - String log_level = (String) whereJson.get("log_level"); - String begin_time = (String) whereJson.get("begin_time"); - String end_time = (String) whereJson.get("end_time"); - - Query query = new Query().with(Sort.by(Sort.Order.desc("date"))); - - if (StrUtil.isEmpty(log_type)) { - log_type = "default"; - } - - if (StrUtil.isNotEmpty(log_level)){ - query.addCriteria(Criteria.where("level").is(log_level)); - } - if (StrUtil.isNotEmpty(begin_time) && StrUtil.isNotEmpty(end_time)) { - query.addCriteria(Criteria.where("date") - .gte(begin_time) - .lte(end_time)); - } - - query.with(Sort.by("date")); - - //根据条件得到的总条数 - long totalSize = mongoTemplate.count(query, Map.class, log_type); - - //处理分页 - query.skip(page.getPageNumber()).limit(page.getPageSize()); - List list = mongoTemplate.find(query,Map.class, log_type); - //封装前端分页查询结果 - JSONObject result = new JSONObject(); - result.put("content", list); - result.put("totalElements", totalSize); - return result; - } - - @Override - public Map queryDeviceLog(Map whereJson, Pageable page){ - String device_code = (String) whereJson.get("device_code"); - String begin_time = (String) whereJson.get("begin_time"); - String end_time = (String) whereJson.get("end_time"); - String error_info = (String) whereJson.get("error_info"); - - - Query query = new Query(); - query.with(Sort.by(Sort.Order.desc("create_time"))); - - if (StrUtil.isEmpty(device_code)) { - JSONArray array = deviceService.selectList(); - JSONObject json = array.getJSONObject(0); - device_code = json.getString("device_code"); - } - if (StrUtil.isNotEmpty(error_info)){ - query.addCriteria(Criteria.where("message").regex(error_info)); - } - if (StrUtil.isNotEmpty(begin_time) && StrUtil.isNotEmpty(end_time)) { - query.addCriteria(Criteria.where("create_time") - .gte(begin_time) - .lte(end_time)); - } - - - Pageable pageable = PageRequest.of(page.getPageNumber(), page.getPageSize()); - long totalCount = mongoTemplate.count(query,device_code); - - List result = mongoTemplate.find(query.with(pageable), Map.class, device_code); - - long totalPage = totalCount % page.getPageSize() == 0 ? totalCount / page.getPageSize() : totalCount / page.getPageSize() + 1; -/* //根据条件得到的总条数 - long totalSize = mongoTemplate.count(query, Map.class, device_code); - - //处理分页 - query.skip(page.getPageNumber()).limit(page.getPageSize()); - - List list = mongoTemplate.find(query,Map.class, device_code);*/ - //封装前端分页查询结果 - JSONObject jo = new JSONObject(); - jo.put("content", result); - jo.put("totalElements", totalCount); - return jo; - } - - @Override - public String findError(Map map) { - String message = (String) map.get("message"); -// String marker = (String) map.get("marker"); -// Query query = Query.query(Criteria.where("_id").is(id)).with(Sort.by("date")); -// JSONObject list = mongoTemplate.findOne(query,JSONObject.class,marker); - -// return list.getString("message"); - return message; - } -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java new file mode 100644 index 00000000..c3b92220 --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java @@ -0,0 +1,46 @@ +package org.nl.modules.loki.rest; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.annotation.RateLimiter; +import org.nl.modules.loki.service.LokiService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: lyd + * @Description: 日志监控 + * @Date: 2022-08-15 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "日志监控") +@RequestMapping("/api/loki") +@Slf4j +public class LokiController { + + private final LokiService lokiService; + + @GetMapping("/labels") + @ApiOperation("获取标签") + public ResponseEntity labels() { + return new ResponseEntity<>(lokiService.getLabels(), HttpStatus.OK); + } + + @PostMapping("/values") + @ApiOperation("根据标签获取值") + public ResponseEntity getAllValues(@RequestBody String label) { + return new ResponseEntity<>(lokiService.getValuesByLabel(label), HttpStatus.OK); + } + + @PostMapping("/logs") + @ApiOperation("获取日志") + @RateLimiter(value = 1, timeout = 300) // 限流 + public ResponseEntity getLogData(@RequestBody JSONObject json) { + return new ResponseEntity<>(lokiService.getLogData(json), HttpStatus.OK); + } +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java new file mode 100644 index 00000000..dedd921e --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java @@ -0,0 +1,30 @@ +package org.nl.modules.loki.service; + +import com.alibaba.fastjson.JSONObject; + +/** + * @Author: lyd + * @Description: 服务类 + * @Date: 2022-08-15 + */ +public interface LokiService { + /** + * 获取日志的所有标签 + * @return + */ + JSONObject getLabels(); + + /** + * 根据label获取值 + * @param label + * @return + */ + JSONObject getValuesByLabel(String label); + + /** + * 获取日志信息 + * @param json + * @return + */ + JSONObject getLogData(JSONObject json); +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java new file mode 100644 index 00000000..237fc666 --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java @@ -0,0 +1,81 @@ +package org.nl.modules.loki.service.impl; + +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import org.nl.modules.loki.service.LokiService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +/** + * @Author: lyd + * @Description: 实现类 + * @Date: 2022-08-15 + */ +@Service +@RequiredArgsConstructor +public class LokiServiceImpl implements LokiService { + + @Value("${loki.url}") + private String lokiUrl; + + @Value("${loki.systemName}") + private String systemName; + + @Override + public JSONObject getLabels() { + String result = HttpUtil.get(lokiUrl + "/labels", CharsetUtil.CHARSET_UTF_8); + JSONObject parse = (JSONObject) JSONObject.parse(result); + return parse; + } + + @Override + public JSONObject getValuesByLabel(String label) { + String result = HttpUtil.get(lokiUrl + "/label/" + label + "/values", CharsetUtil.CHARSET_UTF_8); + JSONObject parse = (JSONObject) JSONObject.parse(result); + return parse; + } + + @Override + public JSONObject getLogData(JSONObject json) { + String logLabel = ""; + String logLabelValue = ""; + Long start = 0L; + Long end = 0L; + String text = ""; + String limit = "100"; + String direction = "backward"; + if (json.get("logLabel") != null) logLabel = json.getString("logLabel"); + if (json.get("logLabelValue") != null) logLabelValue = json.getString("logLabelValue"); + if (json.get("text") != null) text = json.getString("text"); + if (json.get("start") != null) start = json.getLong("start"); + if (json.get("end") != null) end = json.getLong("end"); + if (json.get("limits") != null) limit = json.getString("limits"); + if (json.get("direction") != null) direction = json.getString("direction"); + /** + * 组织参数 + * 纳秒数 + * 1660037391880000000 + * 1641453208415000000 + * http://localhost:3100/loki/api/v1/query_range?query={host="localhost"} |= ``&limit=1500&start=1641453208415000000&end=1660027623419419002 + */ + JSONObject parse = null; + String query = lokiUrl + "/query_range?query={system=\"" + systemName + "\", " + logLabel + "=\"" + logLabelValue + "\"} |= `" + text + "`"; + String result = ""; + if (start==0L) { + result = HttpUtil.get(query + "&limit=" + limit + "&direction=" + direction, CharsetUtil.CHARSET_UTF_8); + } else { + result = HttpUtil.get(query + "&limit=" + limit + "&start=" + start + "&end=" + end + "&direction=" + direction, CharsetUtil.CHARSET_UTF_8); + } + try { + parse = (JSONObject) JSONObject.parse(result); + } catch (Exception e) { +// reslut的值可能为:too many outstanding requests,无法转化成Json + System.out.println("reslut:" + result); +// e.printStackTrace(); + } + return parse; + } + +} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java deleted file mode 100644 index c86b0492..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.nl.modules.quartz.task; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.wql.core.bean.WQLObject; -import org.springframework.stereotype.Component; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - - -/** - * @author geng by - * 自动清理大于十五天的日志 - */ -@Slf4j -@Component -@RequiredArgsConstructor -public class AutoCleanUpLogs { - - private ExecutorService threadPool = Executors.newCachedThreadPool(); - - public void run() throws Exception { - try { - WQLObject wo = WQLObject.getWQLObject("acs_device"); - JSONArray array = wo.query("1=1", "device_code").getResultJSONArray(0); - if (array.size() > 0) { - for (int i = 0; i < array.size(); i++) { - JSONObject jsonObject = array.getJSONObject(i); - String device_code = jsonObject.getString("device_code"); - threadPool.execute(new CleanUpThread(device_code)); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVOneInst.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVOneInst.java index a2c87ecf..325f828d 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVOneInst.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVOneInst.java @@ -4,18 +4,15 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.config.AcsConfig; import org.nl.acs.config.server.AcsConfigService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; -import org.nl.modules.log.LogMarkerTypeEnum; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SpringContextHolder; import org.springframework.stereotype.Component; diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVTwoInst.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVTwoInst.java index 3f485043..3eb5c26c 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVTwoInst.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateAGVTwoInst.java @@ -7,20 +7,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.config.AcsConfig; import org.nl.acs.config.server.AcsConfigService; -import org.nl.acs.device_driver.basedriver.lamp_three_color.LampThreecolorDeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspectSiteDeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.dto.RouteLineDto; -import org.nl.acs.task.enums.TaskTypeEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; -import org.nl.modules.log.LogMarkerTypeEnum; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SpringContextHolder; import org.springframework.stereotype.Component; @@ -169,7 +163,7 @@ public class AutoCreateAGVTwoInst { if(ObjectUtils.isNotEmpty(list.get(i))){ list.remove(i); } - log.info(LogMarkerTypeEnum.getMarker(LogMarkerTypeEnum.AUTO_CREATE_INST),"任务号:{}的指令生成成功",taskcode); + log.info("任务号:{}的指令生成成功",taskcode); //创建指令后修改任务状态 acsTask.setTask_status("1"); acsTask.setLink_num(link_no); diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java deleted file mode 100644 index 4994a5f4..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.nl.modules.quartz.task; - -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import org.nl.utils.SpringContextHolder; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; - -import java.util.Date; - -/** - * @author: geng by - * @createDate: 2022/7/12 - */ -public class CleanUpThread extends Thread{ - - private String deviceCode; - - public CleanUpThread(String deviceCode){ - this.deviceCode = deviceCode; - } - - @Override - public void run() { - MongoTemplate mongoTemplate = SpringContextHolder.getBean(MongoTemplate.class); - Date now = DateUtil.parse(DateUtil.now()); - DateTime bzdate; - if (deviceCode.equals("BZ01") || deviceCode.equals("BZ02")){ - bzdate = DateUtil.offsetDay(now, -3); - } else { - bzdate = DateUtil.offsetDay(now, -15); - } - String formatbz = DateUtil.formatDateTime(bzdate); - Query bzquery = new Query().addCriteria(Criteria.where("create_time").lte(formatbz)); - System.out.println(deviceCode+"设备日志开始清除---------------------"); - mongoTemplate.remove(bzquery, deviceCode); - System.out.println(deviceCode+"设备日志清除成功---------------------"); - } -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/NdcAutoReconnection.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/NdcAutoReconnection.java index f138f8f5..b0bdc750 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/NdcAutoReconnection.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/NdcAutoReconnection.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** - * 自动清理日志 + * NDC自动重连 */ @Slf4j @Component diff --git a/wcs/hd/nladmin-system/src/main/resources/config/application-dev.yml b/wcs/hd/nladmin-system/src/main/resources/config/application-dev.yml index 8147711b..35d6a853 100644 --- a/wcs/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/wcs/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -9,9 +9,9 @@ spring: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:hl_acs_one}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true -# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.225}:${DB_PORT:3306}/${DB_NAME:hl_acs_one}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true +# url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:hl_acs_one}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true username: ${DB_USER:root} -# password: ${DB_PWD:123456} + #password: ${DB_PWD:123456} #password: ${DB_PWD:Root.123456} password: ${DB_PWD:password} # 初始连接数 @@ -57,11 +57,6 @@ spring: wall: config: multi-statement-alagvslow: true - data: - mongodb: - host: 127.0.0.1 - port: 27017 - database: nlacs redis: #数据库索引 database: ${REDIS_DB:10} @@ -164,3 +159,6 @@ jetcache: uri: - redis://127.0.0.1:6379 +loki: + url: http://localhost:3100/loki/api/v1 + systemName: acs \ No newline at end of file diff --git a/wcs/hd/nladmin-system/src/main/resources/config/application-prod.yml b/wcs/hd/nladmin-system/src/main/resources/config/application-prod.yml index bd4cf2fb..b40487c0 100644 --- a/wcs/hd/nladmin-system/src/main/resources/config/application-prod.yml +++ b/wcs/hd/nladmin-system/src/main/resources/config/application-prod.yml @@ -164,3 +164,6 @@ jetcache: uri: - redis://192.168.46.225:6379 +loki: + url: http://localhost:3100/loki/api/v1 + systemName: acs \ No newline at end of file diff --git a/wcs/hd/nladmin-system/src/main/resources/config/application.yml b/wcs/hd/nladmin-system/src/main/resources/config/application.yml index 4eba8310..fd94b205 100644 --- a/wcs/hd/nladmin-system/src/main/resources/config/application.yml +++ b/wcs/hd/nladmin-system/src/main/resources/config/application.yml @@ -2,7 +2,7 @@ spring: freemarker: check-template-location: false profiles: - active: prod + active: dev jackson: time-zone: GMT+8 data: diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml b/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml index da17ef54..eec04a53 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml @@ -1,14 +1,29 @@ - - - info - + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - - + + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml b/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml index c1d195c9..f767fa79 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml @@ -1,14 +1,29 @@ - - - info - + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml b/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml index 1edd79ea..ecb6f2ba 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml @@ -1,13 +1,28 @@ - - - info - + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml b/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml index ee95ac94..702bdbf3 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml @@ -1,15 +1,30 @@ - - - info - + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml b/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml index 27068485..f862fe27 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml @@ -1,13 +1,28 @@ - - - info - + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - - + + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml b/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml index f674ced5..625ba86c 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml @@ -1,14 +1,29 @@ - - - info - + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml b/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml index 90846b44..c42a9d45 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml @@ -1,12 +1,27 @@ - - - info - + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml b/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml index 3ec70a11..4b1daf3c 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml @@ -1,12 +1,28 @@ - - - info - + + + + + + + 1000 + + ${LOKI_URL} + + + + + ${log.pattern} + + true + - - + + diff --git a/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml b/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml index 386c33cc..85f952c5 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml @@ -1,16 +1,30 @@ - - - - - - info - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml b/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml index 352a54cf..1d88016b 100644 --- a/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -10,61 +10,35 @@ https://juejin.cn/post/6844903775631572999 nlAdmin - + + + + + + - - - - - - - - - - + + ${log.pattern} ${log.charset} - - - - - - info - - - - - - @@ -90,16 +64,46 @@ https://juejin.cn/post/6844903775631572999 + + + 1000 + + ${LOKI_URL}/push + + + + + ${log.pattern} + + true + + - + + + + + + + + + + + + + + - + + @@ -108,16 +112,13 @@ https://juejin.cn/post/6844903775631572999 - - - - + @@ -129,14 +130,48 @@ https://juejin.cn/post/6844903775631572999 + - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java b/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java index 9d3fdb73..5fb038fb 100644 --- a/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java +++ b/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java @@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.junit.Test; import org.nl.acs.device.service.dto.DeviceDto; -import org.nl.exception.BadRequestException; import org.nl.utils.SecurityUtils; import org.nl.wql.core.bean.WQLObject; diff --git a/wcs/qd/package.json b/wcs/qd/package.json index 7fa2168e..e50f774d 100644 --- a/wcs/qd/package.json +++ b/wcs/qd/package.json @@ -37,6 +37,7 @@ "@logicflow/extension": "^1.1.22", "@riophae/vue-treeselect": "0.4.0", "af-table-column": "^1.0.3", + "ansi_up": "^5.1.0", "axios": "0.18.1", "clipboard": "2.0.4", "codemirror": "^5.49.2", @@ -61,6 +62,7 @@ "screenfull": "4.2.0", "sortablejs": "1.8.4", "vue": "2.6.10", + "vue-color": "^2.8.1", "vue-count-to": "1.0.13", "vue-cropper": "0.4.9", "vue-echarts": "^5.0.0-beta.0", @@ -75,8 +77,7 @@ "wangeditor": "^3.1.1", "xe-ajax": "^4.0.5", "xe-utils": "^3.3.1", - "xlsx": "^0.14.5", - "vue-color": "^2.8.1" + "xlsx": "^0.14.5" }, "devDependencies": { "@babel/core": "7.0.0", diff --git a/wcs/qd/src/api/monitor/loki.js b/wcs/qd/src/api/monitor/loki.js new file mode 100644 index 00000000..4adb6b52 --- /dev/null +++ b/wcs/qd/src/api/monitor/loki.js @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +export function getAllLabels() { + return request({ + url: 'api/loki/labels', + method: 'get' + }) +} + +export function getAllValues(label) { + return request({ + url: 'api/loki/values', + method: 'post', + data: label + }) +} + +export function getLogData(param) { + return request({ + url: 'api/loki/logs', + method: 'post', + data: param + }) +} + +export default { getAllLabels, getAllValues, getLogData } diff --git a/wcs/qd/src/views/acs/device/config.vue b/wcs/qd/src/views/acs/device/config.vue index 83a83722..99fc1c67 100644 --- a/wcs/qd/src/views/acs/device/config.vue +++ b/wcs/qd/src/views/acs/device/config.vue @@ -115,6 +115,7 @@ import hailiang_threestation_smart from '@/views/acs/device/driver/hailiang_one/ import hailiang_foldingDisc_smart from '@/views/acs/device/driver/hailiang_one/hailiang_foldingDisc_smart' import hailiang_elevator_wiring from '@/views/acs/device/driver/hailiang_one/hailiang_elevator_wiring' import hailiang_paint_line from '@/views/acs/device/driver/hailiang_one/hailiang_paint_line' +import hailiang_stacking_station from '@/views/acs/device/driver/hailiang_one/hailiang_stacking_station' export default { name: 'DeviceConfig', @@ -127,7 +128,7 @@ export default { hailiang_special_pick_station, hailiang_special_empty_station, hailiang_special_full_station, hailiang_special_pour_station, hailiang_special_device, hailiang_engraving_machine, hailiang_auto_cache_line, hailiang_cleaning_feeding_line, hailiang_cleaning_machine, hailiang_cleaning_machine_storage_station, hailiang_xj_plc_test, hailiang_smart_plc_test, hailiang_threestation_smart, hailiang_foldingDisc_smart, hailiang_elevator_wiring, - hailiang_paint_line }, + hailiang_paint_line, hailiang_stacking_station }, dicts: ['device_type'], mixins: [crud], data() { diff --git a/wcs/qd/src/views/acs/device/driver/hailiang_one/hailiang_stacking_station.vue b/wcs/qd/src/views/acs/device/driver/hailiang_one/hailiang_stacking_station.vue new file mode 100644 index 00000000..8f081626 --- /dev/null +++ b/wcs/qd/src/views/acs/device/driver/hailiang_one/hailiang_stacking_station.vue @@ -0,0 +1,423 @@ + + + + + diff --git a/wcs/qd/src/views/acs/order/index.vue b/wcs/qd/src/views/acs/order/index.vue index bc7935fa..ca127acf 100644 --- a/wcs/qd/src/views/acs/order/index.vue +++ b/wcs/qd/src/views/acs/order/index.vue @@ -47,6 +47,9 @@ + + + - + @@ -91,7 +94,7 @@ - + @@ -132,7 +135,8 @@ const defaultForm = { is_deleted: null, ext_order_id: null, device_code: null, - is_needmove: '1' + is_needmove: '1', + lane_tray_template: null } export default { name: 'Produceshiftorder', @@ -188,6 +192,12 @@ export default { }) }, methods: { + // 在 Input 值改变时触发 + handleEdit(e) { + let value = e.replace(/^(0+)|[^d]+/g, '') // 以0开头或者输入非数字,会被替换成空 + value = value.replace(/(d{15})d*/, '$1') // 最多保留15位整数 + this.form.lane_tray_template = value + }, is_disabled(length, data) { if (length !== 1) { return true diff --git a/wcs/qd/src/views/monitor/logback/index.vue b/wcs/qd/src/views/monitor/logback/index.vue new file mode 100644 index 00000000..2094a0be --- /dev/null +++ b/wcs/qd/src/views/monitor/logback/index.vue @@ -0,0 +1,458 @@ + + + + +