Commit d4a64955 zshaohui

1.手动出库调用wms接口

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