diff --git a/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java b/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java index 20082b4..61e6b27 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java @@ -20,6 +20,7 @@ import org.apache.poi.ss.formula.functions.T; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.Map; @Api(tags = "客户端通讯测试") @RequestMapping("/clientTest") @@ -51,44 +52,49 @@ public class ClientTestController { ClientChanel.write(msg,SRMNumber); //获取空货位的结果信息 // 返回给普天 - Street street = streetService.getStreetByPlcId(SRMNumber); - PTEmptyCheckContent ptEmptyCheckContent = null; - PTData ptData = null; - String shevel = null; - if(street.getLeftType() == 0){ - //单伸 - String SingleLeft = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,1,row,startColumn,endColumn); - shevel = "L01"; - ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleLeft); - ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); - PuTianNettyClient.write(ptData); - String SingleRight = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,2,row,startColumn,endColumn); - shevel = "R01"; - ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleRight); - ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); - PuTianNettyClient.write(ptData); - }else { - String SingleInLeft = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,1,row,startColumn,endColumn); - shevel = "L01"; - ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleInLeft); - ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); - PuTianNettyClient.write(ptData); - String SingleInRight = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,2,row,startColumn,endColumn); - shevel = "R01"; - ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleInRight); - ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); - PuTianNettyClient.write(ptData); - String SingleOutLeft = emptyCheckService.getEmptyStatus(SRMNumber,taskId,2,1,row,startColumn,endColumn); - shevel = "L02"; - ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleOutLeft); - ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); - PuTianNettyClient.write(ptData); - String SingleOutRight = emptyCheckService.getEmptyStatus(SRMNumber,taskId,2,2,row,startColumn,endColumn); - shevel = "R02"; - ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleOutRight); - ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); + //Street street = streetService.getStreetByPlcId(SRMNumber); + + //String shevel = null; + Map map = emptyCheckService.getAllEmptyStatus(SRMNumber,row,startColumn,endColumn); + map.forEach((k,v)->{ + PTEmptyCheckContent ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,k,v); + PTData ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); PuTianNettyClient.write(ptData); - } + }); +// if(street.getLeftType() == 0){ +// //单伸 +// String SingleLeft = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,1,row,startColumn,endColumn); +// shevel = "L01"; +// ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleLeft); +// ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); +// PuTianNettyClient.write(ptData); +// String SingleRight = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,2,row,startColumn,endColumn); +// shevel = "R01"; +// ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleRight); +// ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); +// PuTianNettyClient.write(ptData); +// }else { +// String SingleInLeft = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,1,row,startColumn,endColumn); +// shevel = "L01"; +// ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleInLeft); +// ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); +// PuTianNettyClient.write(ptData); +// String SingleInRight = emptyCheckService.getEmptyStatus(SRMNumber,taskId,1,2,row,startColumn,endColumn); +// shevel = "R01"; +// ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleInRight); +// ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); +// PuTianNettyClient.write(ptData); +// String SingleOutLeft = emptyCheckService.getEmptyStatus(SRMNumber,taskId,2,1,row,startColumn,endColumn); +// shevel = "L02"; +// ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleOutLeft); +// ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); +// PuTianNettyClient.write(ptData); +// String SingleOutRight = emptyCheckService.getEmptyStatus(SRMNumber,taskId,2,2,row,startColumn,endColumn); +// shevel = "R02"; +// ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(SRMNumber,taskId,row,startColumn,endColumn,shevel,SingleOutRight); +// ptData = PTData.EmptyStatusResponse(ptEmptyCheckContent); +// PuTianNettyClient.write(ptData); +// } return Result.success(msg); } 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 846f87a..a88a067 100644 --- a/web/src/main/java/com/zhehekeji/web/service/EmptyCheckService.java +++ b/web/src/main/java/com/zhehekeji/web/service/EmptyCheckService.java @@ -138,13 +138,9 @@ public class EmptyCheckService { } - public String getEmptyStatus(String SRMNUmber,String taskId,Integer side,Integer leftRight,Integer row,Integer startColumn,Integer endColumn){ - Street street = streetService.getStreetByPlcId(SRMNUmber); - if(street == null){ - log.error(" no SRMNumer:{}",SRMNUmber); - return null; - } - List emptyChecks = emptyCheckMapper.selectList(new QueryWrapper().eq("`row`",row).eq("street_id",street.getId()).eq("direction",leftRight).eq("side",side).ge("`column`",startColumn).le("`column`",endColumn)); + public String getEmptyStatus(Integer streetId,Integer side,Integer leftRight,Integer row,Integer startColumn,Integer endColumn){ + + List emptyChecks = emptyCheckMapper.selectList(new QueryWrapper().eq("`row`",row).eq("street_id",streetId).eq("direction",leftRight).eq("side",side).ge("`column`",startColumn).le("`column`",endColumn)); //List stockList = stockMapper.selectList(new QueryWrapper().eq("`row`",row).eq("street_id",street.getId()).eq("direction",leftRight).eq("side",side)); Map stockMap = new HashMap<>(emptyChecks.size()*2); emptyChecks.forEach(stock -> { @@ -159,11 +155,34 @@ public class EmptyCheckService { sb.append(0); } } - log.info("【空货位盘点结果】SRMNumber:{},row:{},startColumn:{},endColumn:{},emptyStatus:{}",SRMNUmber,row,startColumn,endColumn,sb); + log.info("【空货位盘点结果】streetId:{},leftright:{},side:{},row:{},startColumn:{},endColumn:{},emptyStatus:{}",streetId,leftRight,side,row,startColumn,endColumn,sb); return sb.toString(); } + public Map getAllEmptyStatus(String SRMNUmber,Integer row,Integer startColumn,Integer endColumn){ + Street street = streetService.getStreetByPlcId(SRMNUmber); + if(street == null){ + return null; + } + Map map = new HashMap<>(); + //判断单双货架 + String L01 = getEmptyStatus(street.getId(),1,1,row,startColumn,endColumn); + map.put("L01",L01); + String R01 = getEmptyStatus(street.getId(),1,2,row,startColumn,endColumn); + map.put("R01",R01); + if(street.getLeftType() == 1){ + //双伸的 + String L02 = getEmptyStatus(street.getId(),2,1,row,startColumn,endColumn); + map.put("L02",L02); + } + if(street.getRightType() == 2){ + String R02 = getEmptyStatus(street.getId(),2,2,row,startColumn,endColumn); + map.put("R02",R02); + } + return map; + } + public void emptyCheckLog(ECTransmission ecTransmission){ Street street = streetService.getStreetByPlcId(ecTransmission.getSRMNumber()); if(street == null){ 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 68a8c76..758047b 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 @@ -13,6 +13,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.nio.charset.Charset; +import java.util.Map; import java.util.Set; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -93,17 +94,24 @@ public class PTDecoder extends LineBasedFrameDecoder { String endEmptyCheckStr = ECTransmission.toEmptyCheckEndString(checkContent.getSRMNUmber(),checkContent.getTaskNo(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn()); //通知客户端结束检测 ClientChanel.write(endEmptyCheckStr,checkContent.getSRMNUmber()); - - //等待3s把空货位盘点的结果发给普天 - String res = emptyCheckService.getEmptyStatus(checkContent.getSRMNUmber(),checkContent.getTaskNo(),1,1,checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn()); + //等待2s把空货位盘点的结果发给普天 + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + Map map = emptyCheckService.getAllEmptyStatus(checkContent.getSRMNUmber(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn()); + map.forEach((k,v)->{ + PTEmptyCheckContent ptEmptyCheckContent = PTEmptyCheckContent.emptyCheckResponse(checkContent.getSRMNUmber(),checkContent.getTaskNo(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn(),k,v); + PTData sendData = PTData.EmptyStatusResponse(ptEmptyCheckContent); + //返回普天该行的盘点结果 + PuTianNettyClient.write(sendData); + }); //打印空货位的所有条码 Set codes = EmptyCheckCodeInfo.getAllCode(checkContent.getSRMNUmber(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn()); log.info("【空货位扫描到的所有条码】,SRMNumber:{},row:{},startColumn:{},endColumn:{},taskId:{},\ncodes:{}",checkContent.getSRMNUmber(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn(),checkContent.getTaskNo(),codes); //清空所有的条码 EmptyCheckCodeInfo.stop(checkContent.getSRMNUmber(),checkContent.getRow(),checkContent.getStartColumn(),checkContent.getEndColumn()); - //返回普天该行的盘点结果 - checkContent.setEmptyStatus(res); - PuTianNettyClient.write(PTData.EmptyStatusResponse(checkContent)); }else if(ptData.getType().equals(PTData.STOCK_CHECK_01)){ log.info("盘点具体货位"); //发送给客户端