From 665366039f4900b648ad65157e24b57d1e86617e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E9=B8=A3?= Date: Mon, 22 Mar 2021 11:41:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=8A=E8=AD=A6=20=E6=97=A0=E8=AE=BA?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8=E8=AE=A2=E5=8D=95=E9=83=BD?= =?UTF-8?q?=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/OrderController.java | 2 +- .../zhehekeji/web/lib/PtzControlModule.java | 1 + .../zhehekeji/web/pojo/stock/StockExcel.java | 8 ++-- .../web/service/MyProtocolDecoder.java | 3 +- .../zhehekeji/web/service/OrderService.java | 5 +++ .../com/zhehekeji/web/service/PlcService.java | 43 ++++++++++++------- .../zhehekeji/web/service/StockService.java | 3 ++ 7 files changed, 43 insertions(+), 22 deletions(-) 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 b6d6773..27d9290 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/OrderController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/OrderController.java @@ -65,7 +65,7 @@ public class OrderController { @ApiOperation("发生告警") @GetMapping("/error") public Result orderError(@ApiParam("plc") @RequestParam String plcId){ - plcService.warnStart(plcId); + plcService.warnStart(plcId,"D1"); return Result.success(); } diff --git a/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java b/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java index 3ef327d..ff89468 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java +++ b/web/src/main/java/com/zhehekeji/web/lib/PtzControlModule.java @@ -294,6 +294,7 @@ public class PtzControlModule { absolutely.stuPosition.nPositionY= 0; absolutely.stuSpeed.fPositionX = 0.2f; absolutely.stuSpeed.fPositionY = 0.2f; + absolutely.write(); //absolutely.stuSpeed.fZoom = 0.5f; Boolean ok = LoginModule.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId),0,dwPTZCommand, 0,0,0,0,absolutely.getPointer()); diff --git a/web/src/main/java/com/zhehekeji/web/pojo/stock/StockExcel.java b/web/src/main/java/com/zhehekeji/web/pojo/stock/StockExcel.java index a8472c1..c9d2bf3 100644 --- a/web/src/main/java/com/zhehekeji/web/pojo/stock/StockExcel.java +++ b/web/src/main/java/com/zhehekeji/web/pojo/stock/StockExcel.java @@ -9,12 +9,12 @@ public class StockExcel { @ExcelProperty(index = 0, value = "品规") private String category; - @ExcelProperty(index = 1, value = "货架号") - private String shelveId; - - @ExcelProperty(index = 2, value = "数量") + @ExcelProperty(index = 1, value = "数量") private Integer count; + @ExcelProperty(index = 2, value = "货架号") + private String shelveId; + @ExcelProperty(index = 3, value = "行") private Integer row; diff --git a/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java b/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java index aaf55d2..4683d60 100644 --- a/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/MyProtocolDecoder.java @@ -102,8 +102,6 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder { log.info(" warn code:{}", code); if ("D0".equals(code)) { log.info("warn start ,plcId:{},warnInfo:b1:{},b2:{},b3:{},b4:{},b5:{},b6:{},b7:{},b8:{}", plcId, b1, b2, b3, b4, b5, b6, b7, b8); - plcService.warnStart(plcId); - //动作 //解析具体的告警 具体规则见文档 int n = 1; int warn = 0; @@ -114,6 +112,7 @@ public class MyProtocolDecoder extends FixedLengthFrameDecoder { } n++; } + plcService.warnStart(plcId,"D" + warn); if (warn > 0) { //执行动作 //times = 1 只执行动作 diff --git a/web/src/main/java/com/zhehekeji/web/service/OrderService.java b/web/src/main/java/com/zhehekeji/web/service/OrderService.java index b752379..f4fd014 100644 --- a/web/src/main/java/com/zhehekeji/web/service/OrderService.java +++ b/web/src/main/java/com/zhehekeji/web/service/OrderService.java @@ -129,21 +129,26 @@ public class OrderService { //左货架 ? 右货架 ? Integer leftRight = 0; if (orderVO.getInOut1() == 1 && orderVO.getInOut2() == 1) { + // 库内转库内 leftRight = orderVO.getLeftRight2(); column = orderVO.getColumn2(); row = orderVO.getRow2(); } else if (orderVO.getInOut1() == 1) { + // 库内到库外 leftRight = orderVO.getLeftRight1(); //看from orderVO.setStreetType(orderVO.getLeftRight1()); column = orderVO.getColumn1(); row = orderVO.getRow1(); } else if (orderVO.getInOut2() == 1) { + //库外到库内 leftRight = orderVO.getLeftRight2(); //看to orderVO.setStreetType(orderVO.getLeftRight2()); column = orderVO.getColumn2(); row = orderVO.getRow2(); + }else { + return "库外转库外"; } if (leftRight > 0) { //PLC 1是左 2是由 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 d573404..ee51e76 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -5,8 +5,10 @@ import com.zhehekeji.common.util.PathUtil; import com.zhehekeji.web.entity.*; import com.zhehekeji.web.lib.*; import com.zhehekeji.web.mapper.*; +import com.zhehekeji.web.pojo.OrderVO; import com.zhehekeji.web.pojo.stock.StockStatus; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -190,31 +192,42 @@ public class PlcService { * 2.没有订单,新增告警记录 * @param plcId */ - public void warnStart(String plcId){ + public void warnStart(String plcId,String signal){ Street street = streetService.getStreetByPlcId(plcId); if(street == null){ return; } synchronized (plcId.intern()){ - String orderNum = OrderRealtime.getOrderByStreetId(street.getId()); - if(StringUtils.isEmpty(orderNum)){ - //空的 说明没有正在执行的订单 - //新增 告警 - if(OrderRealtime.getWarnId(street.getId()) == null){ - //不存在正在执行的告警记录,就新增 - Warn warn = new Warn(); - warn.setStartTime(LocalDateTime.now()); - warn.setStreetId(street.getId()); - warnMapper.insert(warn); - OrderRealtime.startWarn(street.getId(),warn.getId()); + //新增 告警 + if(OrderRealtime.getWarnId(street.getId()) == null){ + //不存在正在执行的告警记录,就新增 + Warn warn = new Warn(); + warn.setStartTime(LocalDateTime.now()); + warn.setStreetId(street.getId()); + String orderNum = OrderRealtime.getOrderByStreetId(street.getId()); + if(StringUtils.isEmpty(orderNum)){ + //空的 说明没有正在执行的订单 + log.debug("{}:warn.... no order",plcId); }else { - log.debug("{}:exist warn",plcId); + //不为空的话,填写工单的位置 + Order order = orderMapper.getOneByOrderNum(orderNum); + if(order != null){ + OrderVO orderVO = new OrderVO(); + BeanUtils.copyProperties(order,orderVO); + String location = orderService.location(orderVO,street); + warn.setLocation(location); + log.debug("{}:warn.... exist order",plcId); + } } - + //没有正在执行的工单 不需要填写location + warn.setSignal(signal); + warnMapper.insert(warn); + OrderRealtime.startWarn(street.getId(),warn.getId()); }else { - log.debug("{}:warn.... exist order",plcId); + log.debug("{}:exist warn",plcId); } + } } 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 cd9b827..4b21d0e 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -70,6 +70,9 @@ public class StockService { public List list(Integer streetId) { Street street = streetService.streetById(streetId); + if(street == null){ + return new ArrayList<>(); + } List shelves = streetService.check(street); List stocks = stockMapper.selectList(new QueryWrapper().in("shelve_id", shelves).orderByAsc("shelve_id", "`row`", "`column`")); return stocks;