空货位盘点优化

nanjing-yancao-wuliuzhongxin
yiming 3 years ago
parent 67d3a94331
commit bf916c251a

@ -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<String,String> 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);
}

@ -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<EmptyCheck> emptyChecks = emptyCheckMapper.selectList(new QueryWrapper<EmptyCheck>().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<EmptyCheck> emptyChecks = emptyCheckMapper.selectList(new QueryWrapper<EmptyCheck>().eq("`row`",row).eq("street_id",streetId).eq("direction",leftRight).eq("side",side).ge("`column`",startColumn).le("`column`",endColumn));
//List<Stock> stockList = stockMapper.selectList(new QueryWrapper<Stock>().eq("`row`",row).eq("street_id",street.getId()).eq("direction",leftRight).eq("side",side));
Map<Integer,EmptyCheck> 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<String,String> getAllEmptyStatus(String SRMNUmber,Integer row,Integer startColumn,Integer endColumn){
Street street = streetService.getStreetByPlcId(SRMNUmber);
if(street == null){
return null;
}
Map<String,String> 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){

@ -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<String,String> 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<String> 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("盘点具体货位");
//发送给客户端

Loading…
Cancel
Save