diff --git a/web/src/main/java/com/zhehekeji/web/entity/EmptyCheck.java b/web/src/main/java/com/zhehekeji/web/entity/EmptyCheck.java index f66c9dc..9634f5b 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/EmptyCheck.java +++ b/web/src/main/java/com/zhehekeji/web/entity/EmptyCheck.java @@ -1,7 +1,6 @@ package com.zhehekeji.web.entity; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import java.time.LocalDateTime; @@ -9,9 +8,6 @@ import java.time.LocalDateTime; @Data public class EmptyCheck { - @TableId - private Integer id; - private String orderNum; private Integer streetId; diff --git a/web/src/main/java/com/zhehekeji/web/entity/Stock.java b/web/src/main/java/com/zhehekeji/web/entity/Stock.java index 03dfa32..3370f6e 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/Stock.java +++ b/web/src/main/java/com/zhehekeji/web/entity/Stock.java @@ -84,5 +84,22 @@ public class Stock { @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime exportTime; + @TableField(exist=false) + private String topPic1; + + @TableField(exist=false) + private String topPic2; + + @TableField(exist=false) + private String sidePic1; + + @TableField(exist=false) + private String sidePic2; + + @TableField(exist=false) + private String sidePic3; + + @TableField(exist=false) + private String sidePic4; } diff --git a/web/src/main/java/com/zhehekeji/web/mapper/EmptyCheckMapper.java b/web/src/main/java/com/zhehekeji/web/mapper/EmptyCheckMapper.java index 20e5dfb..f1fea9d 100644 --- a/web/src/main/java/com/zhehekeji/web/mapper/EmptyCheckMapper.java +++ b/web/src/main/java/com/zhehekeji/web/mapper/EmptyCheckMapper.java @@ -2,6 +2,18 @@ package com.zhehekeji.web.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zhehekeji.web.entity.EmptyCheck; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; public interface EmptyCheckMapper extends BaseMapper { + + @Select("select * from empty_check where street_id = #{streetId} and `side` = #{side} and `direction` = #{direction} and `row` =#{row} and `column` = #{column} limit 1") + EmptyCheck getOne(Integer streetId,Integer direction,Integer side,Integer row,Integer column); + + @Insert("insert into `empty_check` (`street_id`,`side`,`direction`,`row`,`column`,`order_num`,`empty_status`) values " + + " (#{emptyCheck.streetId},#{emptyCheck.side},#{emptyCheck.direction}," + + " #{emptyCheck.row},#{emptyCheck.column},#{emptyCheck.orderNum},#{emptyCheck.emptyStatus}) " + + " on duplicate key update `order_num` = #{emptyCheck.orderNum},`empty_status` = #{emptyCheck.emptyStatus}") + void insertOrUpdate(@Param("emptyCheck") EmptyCheck emptyCheck); } diff --git a/web/src/main/java/com/zhehekeji/web/service/EmptyCheckService.java b/web/src/main/java/com/zhehekeji/web/service/EmptyCheckService.java index a88a067..9bd6608 100644 --- a/web/src/main/java/com/zhehekeji/web/service/EmptyCheckService.java +++ b/web/src/main/java/com/zhehekeji/web/service/EmptyCheckService.java @@ -149,7 +149,7 @@ public class EmptyCheckService { //int columns = side == 1?street.getLeftColumn():street.getRightColumn(); StringBuffer sb = new StringBuffer(); for(int i = startColumn;i<=endColumn;i++){ - if(stockMap.get(i) != null && stockMap.get(i).getEmptyStatus() == 1){ + if(stockMap.get(i) != null && stockMap.get(i).getEmptyStatus() == 2){ sb.append(1); }else { sb.append(0); @@ -189,19 +189,32 @@ public class EmptyCheckService { log.error(" no SRMNumer:{}",ecTransmission.getSRMNumber()); return; } - EmptyCheck emptyCheck = new EmptyCheck(); - emptyCheck.setStreetId(street.getId()); - emptyCheck.setSide(ecTransmission.getSide()); - emptyCheck.setDirection(ecTransmission.getDirection()); - //0:未知 1:空 2:非空 - if(ecTransmission.getIsEmpty().equals("N")){ - emptyCheck.setEmptyStatus(1); + EmptyCheck emptyCheck = emptyCheckMapper.getOne(street.getId(),ecTransmission.getDirection(),ecTransmission.getSide(),ecTransmission.getRow(),ecTransmission.getColumn()); + + if(emptyCheck == null){ + emptyCheck = new EmptyCheck(); + emptyCheck.setStreetId(street.getId()); + emptyCheck.setOrderNum(ecTransmission.getTaskId()); + emptyCheck.setSide(ecTransmission.getSide()); + emptyCheck.setDirection(ecTransmission.getDirection()); + //0:未知 1:空 2:非空 + if(ecTransmission.getIsEmpty().equals("N")){ + emptyCheck.setEmptyStatus(1); + }else { + emptyCheck.setEmptyStatus(2); + } + emptyCheck.setRow(ecTransmission.getRow()); + emptyCheck.setColumn(ecTransmission.getColumn()); }else { - emptyCheck.setEmptyStatus(2); + emptyCheck.setOrderNum(ecTransmission.getTaskId()); + if(ecTransmission.getIsEmpty().equals("N")){ + emptyCheck.setEmptyStatus(1); + }else { + emptyCheck.setEmptyStatus(2); + } } - emptyCheck.setRow(ecTransmission.getRow()); - emptyCheck.setColumn(ecTransmission.getColumn()); - emptyCheckMapper.insert(emptyCheck); + emptyCheckMapper.insertOrUpdate(emptyCheck); + } public CheckStatus emptyStatusByRowColumn(RowColumnStatus rowColumnStatus){ 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 f51d6fb..78f40c2 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -457,6 +457,7 @@ public class PlcService { old.setCode(null); old.setCategory(null); old.setCheckNum(tmTransmission.getTaskNo()); + old.setLotnum(tmTransmission.getTaskNo()); old.setRow(row); old.setColumn(column); old.setDirection(leftRight); @@ -465,12 +466,15 @@ public class PlcService { old.setWmsCount(tmTransmission.getCount()); old.setStreetId(street.getId()); old.setExportTime(LocalDateTime.now()); + old.setWmsTrayCode(""); stockMapper.insert(old); }else { + old.setLotnum(tmTransmission.getTaskNo()); old.setExportTime(LocalDateTime.now()); old.setWmsCode(tmTransmission.getCode()); old.setWmsCount(tmTransmission.getCount()); old.setCheckNum(tmTransmission.getTaskNo()); + old.setWmsTrayCode(""); stockMapper.updateById(old); } return old; @@ -492,10 +496,19 @@ public class PlcService { if(stock != null){ stock.setCount(tmTransmission.getCount()); stock.setCode(tmTransmission.getCode()); + //盘点正确 :2 + //盘点异常 :1 + Integer status = tmTransmission.getCount().equals(stock.getWmsCount()) && tmTransmission.getCode().equals(stock.getWmsCode()) ? 2: 1; + stock.setStatus(status); + stock.setTrayCode(tmTransmission.getTrayNo()); stockMapper.updateById(stock); log.info("update check info,taskId:{},SRMNumber:{},count:{},code:{}",stock.getCheckNum(),tmTransmission.getSRMNumber(),tmTransmission.getCount(),tmTransmission.getCode()); }else { log.info("check end,but no stock info ,taskId:{},SRMNumber:{},goodsLocation:{}",tmTransmission.getTaskNo(),tmTransmission.getSRMNumber(),tmTransmission.getGoodsLocation()); + stock = new Stock(); + stock.setCount(tmTransmission.getCount()); + stock.setCode(tmTransmission.getCode()); + stock.setStatus(1); } return stock; } 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 59eee8e..2518365 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -16,6 +16,7 @@ import com.zhehekeji.web.mapper.StockMapper; import com.zhehekeji.web.mapper.StreetMapper; import com.zhehekeji.web.pojo.category.PageSearch; import com.zhehekeji.web.pojo.stock.*; +import com.zhehekeji.web.service.client.ClientChanel; import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -318,7 +319,7 @@ public class StockService { * @return */ public Stock stockInfo(StockCheck stockCheck) { - + Street street = streetService.streetById(stockCheck.getStreetId()); Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(stockCheck.getStreetId(),stockCheck.getDirection(),stockCheck.getSide(), stockCheck.getRow(), stockCheck.getColumn()); if(stock == null){ stock = new Stock(); @@ -326,6 +327,7 @@ public class StockService { stock.setRow(stockCheck.getRow()); //stock.setShelveId(stockCheck.getShelveId()); stock.setStatus(0); + } List stockLogs = stockLogMapper.selectList(new QueryWrapper().eq("`row`",stockCheck.getRow()).eq("`column`",stockCheck.getColumn()).eq("street_id",stockCheck.getStreetId()).eq("direction",stockCheck.getDirection()).eq("side",stockCheck.getSide()).orderByDesc("create_time").last(" limit 2")); if(stockLogs.size() == 1){ @@ -334,6 +336,13 @@ public class StockService { stock.setOveroperationPic(stockLogs.get(0).getPic()); stock.setPreoperationPic(stockLogs.get(1).getPic()); } + String ip ="http://"+ street.getPlcIp()+":9009/pic/"+stock.getCode()+"/"+stock.getLotnum()+"/"+stock.getLotnum()+"/"; + stock.setSidePic1(String.format("%s1.png",ip)); + stock.setSidePic2(String.format("%s2.png",ip)); + stock.setSidePic3(String.format("%s3.png",ip)); + stock.setSidePic4(String.format("%s4.png",ip)); + stock.setTopPic1(String.format("%s5.png",ip)); + stock.setTopPic2(String.format("%s6.png",ip)); return stock; } @@ -342,6 +351,15 @@ public class StockService { // Assert.notNull(shelveId,"无该货架信息"); Street street = streetService.getStreetByPlcId(stockCheckSearch.getSRMNumber()); Stock stock = stockMapper.getByStreetAndDirectionAndSideAndRowColumn(street.getId(),stockCheckSearch.getDirection(),stockCheckSearch.getSeparation(),stockCheckSearch.getRow(),stockCheckSearch.getColumn()); + if(stock != null){ + String ip ="http://"+ street.getPlcIp()+":9009/pic/"+stock.getCode()+"/"+stock.getLotnum()+"/"+stock.getLotnum()+"/"; + stock.setSidePic1(String.format("%s1.png",ip)); + stock.setSidePic2(String.format("%s2.png",ip)); + stock.setSidePic3(String.format("%s3.png",ip)); + stock.setSidePic4(String.format("%s4.png",ip)); + stock.setTopPic1(String.format("%s5.png",ip)); + stock.setTopPic2(String.format("%s6.png",ip)); + } return stock; } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/ECTransmission.java b/web/src/main/java/com/zhehekeji/web/service/client/ECTransmission.java index 1ae6fca..73b0caa 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/ECTransmission.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/ECTransmission.java @@ -69,7 +69,8 @@ public class ECTransmission { side = Integer.valueOf(goodsLocation.substring(2,3)); row = Integer.valueOf(goodsLocation.substring(3,6)); column = Integer.valueOf(goodsLocation.substring(6,9)); - }else if(strings != null && strings.length == 9 && HEADER.equals(strings[0])){ + }else if(strings != null && strings.length == 8 && HEADER.equals(strings[0])){ + //todo length == 9 SRMNumber = strings[1]; taskId = strings[2]; startColumn = Integer.valueOf(strings[4]); @@ -79,8 +80,9 @@ public class ECTransmission { side = Integer.valueOf(goodsLocation.substring(2,3)); row = Integer.valueOf(goodsLocation.substring(3,6)); column = Integer.valueOf(goodsLocation.substring(6,9)); - originCode = strings[7]; - isEmpty = strings[8]; + //todo 7 8 + originCode = "ddddd"; + isEmpty = strings[7]; } } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/RealtimeCheckMap.java b/web/src/main/java/com/zhehekeji/web/service/client/RealtimeCheckMap.java index 83fb4b6..f68381e 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/RealtimeCheckMap.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/RealtimeCheckMap.java @@ -15,14 +15,13 @@ public class RealtimeCheckMap { public static void put(String SRMNumber,CheckInfo checkInfo){ checkInfo.setTime(LocalDateTime.now()); String ip ="http://"+ClientChanel.getIpFromId(SRMNumber)+":9009/pic/"+checkInfo.getCheckCode()+"/"+checkInfo.getTaskNo()+"/"+checkInfo.getTaskNo()+"/"; - ip = ip +":9009/pic"; checkInfo.setIP(ip); - checkInfo.setSidePic1(String.format("{}/1.png",ip)); - checkInfo.setSidePic2(String.format("{}/2.png",ip)); - checkInfo.setSidePic3(String.format("{}/3.png",ip)); - checkInfo.setSidePic4(String.format("{}/4.png",ip)); - checkInfo.setTopPic1(String.format("{}/5.png",ip)); - checkInfo.setTopPic2(String.format("{}/6.png",ip)); + checkInfo.setSidePic1(String.format("%s1.png",ip)); + checkInfo.setSidePic2(String.format("%s2.png",ip)); + checkInfo.setSidePic3(String.format("%s3.png",ip)); + checkInfo.setSidePic4(String.format("%s4.png",ip)); + checkInfo.setTopPic1(String.format("%s5.png",ip)); + checkInfo.setTopPic2(String.format("%s6.png",ip)); map.put(SRMNumber,checkInfo); } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/TMTransmission.java b/web/src/main/java/com/zhehekeji/web/service/client/TMTransmission.java index ab1cee2..cf2bb0c 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/TMTransmission.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/TMTransmission.java @@ -106,6 +106,7 @@ public class TMTransmission { this.goodsLocation = goodsLocation; this.code = code; this.count = count; + this.trayNo = "Unknown"; this.visualTest = visual; } diff --git a/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java b/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java index 758047b..4267a68 100644 --- a/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java @@ -81,7 +81,6 @@ public class PTDecoder extends LineBasedFrameDecoder { //心跳 什么都不处理,因为netty长链接,断开会感知 }else if(ptData.getType().equals(PTData.EMPTY_CHECK_01)){ log.info("空货位检测开始"); - PTEmptyCheckContent checkContent = PTEmptyCheckContent.EmptyCheck(ptData.getContent()); emptyCheckService.emptyCheckStart(checkContent.getSRMNUmber(), checkContent.getTaskNo(), checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn()); String startEmptyCheckStr = ECTransmission.toEmptyCheckStartString(checkContent.getSRMNUmber(),checkContent.getTaskNo(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn());