Commit d4a64955 zshaohui

1.手动出库调用wms接口

2.uid出库导出 增加隔口数量
3.缓存箱子问题
1 个父辈 1e2338bd
......@@ -57,6 +57,7 @@ import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@RestController
......@@ -695,6 +696,7 @@ public class StoragePosController {
header.add(Arrays.asList("料箱所属架位"));
header.add(Arrays.asList("料箱是否在库"));
header.add(Arrays.asList("是否禁用"));
header.add(Arrays.asList("剩余空隔口数量"));
return header;
}
......@@ -742,12 +744,26 @@ public class StoragePosController {
}
boxData.add("");
int count = 0;
List<Barcode> subCodeList = barcode.getSubCodeList();
if (subCodeList == null || subCodeList.isEmpty()){
if ("C07".equals(barcode.getPartNumber())){
count = 6;
} else if ("C13".equals(barcode.getPartNumber()) || "C15".equals(barcode.getPartNumber())){
count = 3;
}
} else {
Map<String, List<Barcode>> posNameMap = subCodeList.stream().collect(Collectors.groupingBy(Barcode::getPosName));
if ("C07".equals(barcode.getPartNumber())){
count = 6 - posNameMap.keySet().size();
} else if ("C13".equals(barcode.getPartNumber()) || "C15".equals(barcode.getPartNumber())){
count = 3 - posNameMap.keySet().size();
}
}
boxData.add(count+"");
dataList.add(boxData);
List<Barcode> subCodeList = barcode.getSubCodeList();
//List<Barcode> subCodeList = barcode.getSubCodeList();
if (subCodeList != null && !subCodeList.isEmpty()){
for (Barcode subCode : subCodeList) {
List<Object> data = new ArrayList<>();
......@@ -789,7 +805,7 @@ public class StoragePosController {
} else {
data.add("");
}
data.add("");
dataList.add(data);
}
}
......
......@@ -554,6 +554,12 @@ public class OutLineController {
LuxsanApi.pickingIssue(new PickingIssueRequest(CommonUtil.plantCode, liteOrder.getOrderNo(), orderItem.getItemId(), barcode.getPartNumber()
, barcode.getWarehouseCode(), orderItem.getBrand(), orderItem.getFace(), batchCode, Arrays.asList(barcode.getBarcode())));
}
} else {
//人工出库,
LuxsanApi.pickingIssue(new PickingIssueRequest(CommonUtil.plantCode, "SMFW"+System.currentTimeMillis(), "0", barcode.getPartNumber()
, barcode.getWarehouseCode(), "", "", "", Arrays.asList(barcode.getBarcode())));
}
}
......
......@@ -52,6 +52,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
@Api(tags = "设备通信")
......@@ -694,6 +695,8 @@ public class CDeviceController {
return ResultBean.newErrorResult(-1,"","未找到"+boxStr+"的入库库位");
}
AtomicBoolean isProcess = new AtomicBoolean(false);
@ApiOperation("入料机构获取可用料格")
@RequestMapping("/validBin")
@AnonymousAccess
......@@ -703,6 +706,16 @@ public class CDeviceController {
String source = paramMap.get("source");
String needBinCodeStr = paramMap.get("needBinCodeStr");
if (isProcess.get()){
//return ResultBean.newErrorResult(-1,"",stackerId+"上一次请求还在处理,等待处理完成后,再返回");
}
isProcess.set(true);
ValidBin validBin = null;
try {
boolean ignoreWorkBox = false;
String ignoreWorkStr = paramMap.get("ignoreWorkBox");
......@@ -759,32 +772,19 @@ public class CDeviceController {
String warhouseCode = MaterialUtil.getWarhouseCode(stackerId);
stackerBarcode.setWarehouseCode(warhouseCode);
/*String[] binList = binListStr.split(",");
for (String binId : binList) {
String boxStr = BoxHandleUtil.getBoxStr(binId);
Barcode boxBarcode = codeResolve.resolveOneValideBarcode(boxStr);
//为料箱分配一个库位,直接放到库位中, 如果没有库位, 那么这个料箱不允许使用
StoragePos pos = BoxHandleUtil.locOnePos(boxBarcode);
if(pos != null){
String canPutIn = BinCacheUtil.canMaterialPutInBin(stackerBarcode,boxBarcode,binId);
if(canPutIn.isEmpty()){
validBinList.add(binId);
}else{
log.info(canPutIn);
}
}
}
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("validBinList",validBinList);*/
ValidBin validBin = BinCacheUtil.validBin(stackerBarcode, source, binListStr,needBinCodeStr,ignoreWorkBox);
validBin = BinCacheUtil.validBin(stackerBarcode, source, binListStr,needBinCodeStr,ignoreWorkBox);
if (validBin == null){
isProcess.set(false);
return ResultBean.newErrorResult(-1,"",stackerId+"未找到可用料箱");
}
callAgvTask(stackerId, stackerBarcode);
} catch (Exception e) {
e.printStackTrace();
isProcess.set(false);
}
isProcess.set(false);
log.info("入料机构获取可用料格:"+stackerId+"返回的数据为:"+JSON.toJSONString(validBin));
return ResultBean.newOkResult(validBin);
}
......
......@@ -53,6 +53,16 @@ public class BinCacheUtil {
//判断code是否相同
String code = cacheBinCodeMap.get(binCode);
if (StringUtils.isEmpty(code)){
log.info(binCode+"未找到,重新调用接口,库别为:"+warehouseCode);
Map<String, String> map = binCodeCacheMap(warehouseCode);
cacheBinCodeMap.putAll(map);
}
code = cacheBinCodeMap.get(binCode);
if (StringUtils.isNotEmpty(code)) {
if (code.equals(warehouseCode)) {
//binCodeUpdateTime = System.currentTimeMillis();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!