From bca9cffd93fa60d6848612f0ee0321e973401952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Mon, 19 Jan 2026 10:20:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=94=E5=9B=9E=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/common/pom.xml | 4 +-- modules/filter/pom.xml | 3 +- modules/pom.xml | 3 +- pom.xml | 3 +- web/pom.xml | 3 +- .../web/config/ConfigProperties.java | 2 ++ .../web/controller/OrderController.java | 1 + .../web/controller/StockController.java | 11 ++++++ .../zhehekeji/web/entity/StockErrorUrls.java | 10 ++++++ .../com/zhehekeji/web/service/PlcService.java | 9 +++-- .../zhehekeji/web/service/StockService.java | 23 +++++++++++++ .../zhehekeji/web/service/client/Decoder.java | 34 ++++++++++++++----- .../service/client/GetPhotoDelayExecutor.java | 8 +++++ .../web/service/client/TransmissionPojo.java | 1 + web/src/main/resources/application-prod.yml | 4 ++- 15 files changed, 101 insertions(+), 18 deletions(-) create mode 100644 web/src/main/java/com/zhehekeji/web/entity/StockErrorUrls.java diff --git a/modules/common/pom.xml b/modules/common/pom.xml index 2340aa1..9ebb637 100644 --- a/modules/common/pom.xml +++ b/modules/common/pom.xml @@ -47,11 +47,11 @@ spring-boot-configuration-processor true - org.projectlombok lombok - true + 1.18.24 + provided diff --git a/modules/filter/pom.xml b/modules/filter/pom.xml index 068c85d..4e6c2e7 100644 --- a/modules/filter/pom.xml +++ b/modules/filter/pom.xml @@ -49,7 +49,8 @@ org.projectlombok lombok - true + 1.18.24 + provided + provided diff --git a/pom.xml b/pom.xml index 19d96e6..1a9c90d 100644 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,8 @@ org.projectlombok lombok - true + 1.18.24 + provided org.springframework.boot diff --git a/web/pom.xml b/web/pom.xml index 5ada756..0f40490 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -40,7 +40,8 @@ org.projectlombok lombok - true + 1.18.24 + provided com.zhehekeji diff --git a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java index abaa6c1..3c3a755 100644 --- a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java +++ b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java @@ -37,6 +37,8 @@ public class ConfigProperties { private ScanCodeMode scanCodeMode; + private boolean sixEars = false; + /** * 本机IP */ diff --git a/web/src/main/java/com/zhehekeji/web/controller/OrderController.java b/web/src/main/java/com/zhehekeji/web/controller/OrderController.java index f1d9cea..d1bfb8f 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/OrderController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/OrderController.java @@ -62,6 +62,7 @@ public class OrderController { return Result.success(); } + @ApiOperation("发生告警") @GetMapping("/error") public Result orderError(@ApiParam("plc") @RequestParam String plcId){ diff --git a/web/src/main/java/com/zhehekeji/web/controller/StockController.java b/web/src/main/java/com/zhehekeji/web/controller/StockController.java index f720a7f..63c20a8 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/StockController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/StockController.java @@ -5,11 +5,14 @@ import com.github.pagehelper.PageInfo; import com.zhehekeji.common.util.ValidatorUtil; import com.zhehekeji.core.pojo.Result; import com.zhehekeji.web.entity.Stock; +import com.zhehekeji.web.entity.StockErrorUrls; import com.zhehekeji.web.pojo.category.PageSearch; import com.zhehekeji.web.pojo.stock.*; +import com.zhehekeji.web.service.PlcCmdInfo; import com.zhehekeji.web.service.StockService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.ClassPathResource; import org.springframework.validation.annotation.Validated; @@ -107,6 +110,14 @@ public class StockController { EasyExcel.write(os, StockExportExcel.class).sheet().doWrite(excels); } + + @PostMapping("/getStockErrorUrls") + public Result> getStockErrorUrls(){ + + List urls =stockService.orderStop(); + return Result.success(urls); + } + @ApiOperation(value = "导出巷道excel") @RequestMapping(value = "/exportAll", method = RequestMethod.GET) public void exportAll(HttpServletResponse response) throws IOException { diff --git a/web/src/main/java/com/zhehekeji/web/entity/StockErrorUrls.java b/web/src/main/java/com/zhehekeji/web/entity/StockErrorUrls.java new file mode 100644 index 0000000..39cfb03 --- /dev/null +++ b/web/src/main/java/com/zhehekeji/web/entity/StockErrorUrls.java @@ -0,0 +1,10 @@ +package com.zhehekeji.web.entity; + +import lombok.Data; + +@Data +public class StockErrorUrls { + String url; + String street; + String code ; +} diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index 0e8287e..d6bd2d9 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -716,6 +716,8 @@ public class PlcService { stockMapper.insert(stock); } else stockMapper.updateById(stock); TransmissionPojo transmissionPojo = new TransmissionPojo(checkLog, street); +// 六耳 + transmissionPojo.setSixEars(configProperties.isSixEars()); if (ClientChanel.get(dataInfo.getSRMNumber()) != null) { ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.ST)); } else { @@ -758,11 +760,14 @@ public class PlcService { CheckLog checkLog = checkLogMapper.selectById(transmissionPojo.getCheckId()); Stock stock = stockMapper.selectOne(new QueryWrapper().eq("check_Num", checkLog.getId())); Street street = streetService.getStreetByPlcId(transmissionPojo.getStreetNumber()); - if( stock.getCategory() != null && stock.getCategory().length() != 6) { + if (stock.getCategory() != null && stock.getCategory().equals("0")) { + checkLog.setStatus(StockStatus.SUCCESS.getStatus()); + stock.setStatus(StockStatus.SUCCESS.getStatus()); + } else if( stock.getCategory() != null && stock.getCategory().length() != 6) { checkLog.setStatus(StockStatus.OTHER.getStatus()); stock.setStatus(StockStatus.OTHER.getStatus()); - }else if (transmissionPojo.getResult() != null && transmissionPojo.getResult() == 1) { + }else if (transmissionPojo.getResult() != null && transmissionPojo.getResult() == 1) { checkLog.setStatus(StockStatus.SUCCESS.getStatus()); stock.setStatus(StockStatus.SUCCESS.getStatus()); } else { diff --git a/web/src/main/java/com/zhehekeji/web/service/StockService.java b/web/src/main/java/com/zhehekeji/web/service/StockService.java index 0335bd4..4df258c 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -24,6 +24,7 @@ import javax.annotation.Resource; import java.time.Duration; import java.time.LocalDateTime; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -549,4 +550,26 @@ public class StockService { public void allStockClear() { stockMapper.truncate(); } + + public List orderStop() { + List list = new ArrayList<>(); + List stocks = stockMapper.selectList(new QueryWrapper() + .eq("status",StockStatus.ERROR.getStatus()).like("check_pic","error")); + List streets = streetMapper.selectList(new QueryWrapper()); + Map streetMap = streets.stream().collect(Collectors.toMap(Street::getId, Street::getName)); + for(Stock stock : stocks){ + StockErrorUrls stockErrorUrls = new StockErrorUrls(); + String[] urls = stock.getCheckPic().split(";"); + for (String url : urls){ + if (url.contains("error")) { + stockErrorUrls.setUrl(url); + break; + } + } + stockErrorUrls.setStreet(streetMap.get(stock.getStreetId())); + stockErrorUrls.setCode(stock.getWmsCategory()); + list.add(stockErrorUrls); + } + return list; + } } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java b/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java index 95b013f..82617b4 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java @@ -125,16 +125,32 @@ public class Decoder extends DelimiterBasedFrameDecoder { } //照片和结果保存,并发送给上位机 else if(RETURN_CHECK.equals(transmissionPojo.getHeader())){ - //保存数据 - plcService.visualCalculationResults(transmissionPojo); - //发送给上位机 - KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo,"E"); - ksecInfo.getData().setTypeNum(transmissionPojo.getCategory()); - ksecInfo.getData().setQuantity(transmissionPojo.getCount()); - ksecInfo.getData().setCheckRlt(transmissionPojo.getResult()); - KsecNettyClient.write(ksecInfo); - GetPhotoDelayExecutor.removeTask(transmissionPojo.getStreetNumber(), transmissionPojo); + if (plcService.getConfigProperties().isSixEars() ){ + transmissionPojo.setResult(1); + + //保存数据 + plcService.visualCalculationResults(transmissionPojo); + //发送给上位机 + KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo,"E"); + ksecInfo.getData().setTypeNum(transmissionPojo.getCategory()); + ksecInfo.getData().setQuantity(transmissionPojo.getCount()); + ksecInfo.getData().setCheckRlt(transmissionPojo.getResult()); + KsecNettyClient.write(ksecInfo); + GetPhotoDelayExecutor.removeTask(transmissionPojo.getStreetNumber(), transmissionPojo); + + }else { + + //保存数据 + plcService.visualCalculationResults(transmissionPojo); + //发送给上位机 + KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo,"E"); + ksecInfo.getData().setTypeNum(transmissionPojo.getCategory()); + ksecInfo.getData().setQuantity(transmissionPojo.getCount()); + ksecInfo.getData().setCheckRlt(transmissionPojo.getResult()); + KsecNettyClient.write(ksecInfo); + GetPhotoDelayExecutor.removeTask(transmissionPojo.getStreetNumber(), transmissionPojo); + } } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java b/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java index 03307ef..a011110 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java @@ -1,6 +1,7 @@ package com.zhehekeji.web.service.client; import com.zhehekeji.common.util.SpringContextUtil; +import com.zhehekeji.web.config.ConfigProperties; import com.zhehekeji.web.entity.Street; import com.zhehekeji.web.lib.CameraControlModule; import com.zhehekeji.web.lib.CameraDelayTask; @@ -180,6 +181,8 @@ public class GetPhotoDelayExecutor { */ @Override public void run() { + + ConfigProperties configProperties = SpringContextUtil.getBean(ConfigProperties.class); while (true) { try { // 从Spring上下文中获取PlcService实例 @@ -193,7 +196,12 @@ public class GetPhotoDelayExecutor { KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo, "E"); ksecInfo.getData().setTypeNum(transmissionPojo.getCategory()); ksecInfo.getData().setQuantity(transmissionPojo.getCount()); + ksecInfo.getData().setCheckRlt(0); + if (configProperties.isSixEars()){ + + ksecInfo.getData().setCheckRlt(1); + } // 将信息发送给上位机 if (!transmissionPojo.getTaskId().equals("0")) KsecNettyClient.write(ksecInfo); diff --git a/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java b/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java index 145e06f..05e4c61 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java @@ -27,6 +27,7 @@ public class TransmissionPojo { private Integer count = 0; //数量 private String category = ""; //品规 private Set picsPath; //照片 + private Boolean sixEars = false; //是否六耳; private Integer result; diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index cf32aad..e43c19c 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -98,4 +98,6 @@ deleteFileDays: 30 productDoc: "C:\\Users\\昊天\\Desktop\\新建文本文档.txt" -inventorySimulationFollow: true \ No newline at end of file +inventorySimulationFollow: true + +sixEars: false