Commit d84c9b5b zshaohui

1.pk出库 替代料功能开发

1 个父辈 4dde1565
...@@ -1063,7 +1063,7 @@ public class LiteOrderCache { ...@@ -1063,7 +1063,7 @@ public class LiteOrderCache {
String brand = orderItem.getBrand(); //供应商 String brand = orderItem.getBrand(); //供应商
String pn = orderItem.getPn(); //料号 String pn = orderItem.getPn(); //料号
StoragePos pos = getStoragePosByPartNumberAndBrand(allStoragePosList, pn, excludeIdList); StoragePos pos = getStoragePosByPartNumberAndBrand(allStoragePosList, pn, excludeIdList);
if (pos == null) { /*if (pos == null) {
log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "开始找替代料"); log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "开始找替代料");
List<StorageLevelWarning> warningList = storageLevelWarningManager.findByQuery(new Query(Criteria.where("req").is(orderItem.getReplaceNum()))); List<StorageLevelWarning> warningList = storageLevelWarningManager.findByQuery(new Query(Criteria.where("req").is(orderItem.getReplaceNum())));
if (warningList != null && !warningList.isEmpty()){ if (warningList != null && !warningList.isEmpty()){
...@@ -1076,7 +1076,23 @@ public class LiteOrderCache { ...@@ -1076,7 +1076,23 @@ public class LiteOrderCache {
} }
} }
} }
}*/
LiteOrderItem mgItem = orderItem;
if (pos == null){
log.info("库位为空,找对应的替代料");
List<LiteOrderItem> mgItemList = getMgItem(orderItem.getMg(), liteOrder, orderItem.getItemId());
if (mgItemList == null || mgItemList.isEmpty()){
break;
}
for (LiteOrderItem item : mgItemList) {
pos = getStoragePosByPartNumberAndBrand(allStoragePosList,item.getPn(),excludeIdList);
if (pos != null){
mgItem = item;
break;
} }
}
}
if (pos == null){ if (pos == null){
log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "未找到存在库位,跳过"); log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "未找到存在库位,跳过");
break; break;
...@@ -1148,25 +1164,25 @@ public class LiteOrderCache { ...@@ -1148,25 +1164,25 @@ public class LiteOrderCache {
continue; continue;
} }
//判断厂别 //判断厂别
if (StringUtils.isNotBlank(warehouseCode)) { if (StringUtils.isNotBlank(mgItem.getWarehouseCode())) {
if (!warehouseCode.equals(subCode.getWarehouseCode())) { if (!mgItem.getWarehouseCode().equals(subCode.getWarehouseCode())) {
continue; continue;
} }
} }
//判断供应商 //判断供应商
if (StringUtils.isNotBlank(brand)) { if (StringUtils.isNotBlank(mgItem.getBrand())) {
if (!brand.equals(subCode.getProvider())) { if (!mgItem.getBrand().equals(subCode.getProvider())) {
continue; continue;
} }
} }
//判断料号 //判断料号
if (StringUtils.isNotBlank(pn)) { if (StringUtils.isNotBlank(mgItem.getPn())) {
if (!pn.equals(subCode.getPartNumber())) { if (!mgItem.getPn().equals(subCode.getPartNumber())) {
continue; continue;
} }
} }
subCode.setOut(true); subCode.setOut(true);
subCode.setOrderItemId(orderItem.getId()); subCode.setOrderItemId(mgItem.getId());
barcode.UpdateSubCode(subCode); barcode.UpdateSubCode(subCode);
subCodeIds.add(subCode.getId()); subCodeIds.add(subCode.getId());
...@@ -1189,7 +1205,7 @@ public class LiteOrderCache { ...@@ -1189,7 +1205,7 @@ public class LiteOrderCache {
} }
if (subCodeIds != null && !subCodeIds.isEmpty()) { if (subCodeIds != null && !subCodeIds.isEmpty()) {
Query query = new Query(Criteria.where("id").in(subCodeIds)); Query query = new Query(Criteria.where("id").in(subCodeIds));
Update update = new Update().set("isOut", true).set("orderItemId", orderItem.getId()); Update update = new Update().set("isOut", true).set("orderItemId", mgItem.getId());
barcodeManager.updateBarcode(query, update); barcodeManager.updateBarcode(query, update);
} }
barcodeManager.save(barcode); barcodeManager.save(barcode);
...@@ -1261,6 +1277,21 @@ public class LiteOrderCache { ...@@ -1261,6 +1277,21 @@ public class LiteOrderCache {
} }
private List<LiteOrderItem> getMgItem(String mg, LiteOrder liteOrder, String itemId) {
List<LiteOrderItem> resultList = new ArrayList<>();
if (StringUtils.isNotEmpty(mg)) {
for (LiteOrderItem orderItem : liteOrder.getOrderItems()) {
if (mg.equals(orderItem.getMg())){
if (!itemId.equals(orderItem.getItemId())){
resultList.add(orderItem);
}
}
}
}
return resultList;
}
public StoragePos getStoragePosByPartNumberAndBrand(List<StoragePos> allStoragePosList, String partNumber, Collection<String> excludeIdList) { public StoragePos getStoragePosByPartNumberAndBrand(List<StoragePos> allStoragePosList, String partNumber, Collection<String> excludeIdList) {
StoragePos storagePos = null; StoragePos storagePos = null;
......
...@@ -405,6 +405,8 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -405,6 +405,8 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private String model; private String model;
private String mg;
public void setOutReelList(String reel) { public void setOutReelList(String reel) {
if (outReelList == null){ if (outReelList == null){
outReelList = new ArrayList<>(); outReelList = new ArrayList<>();
......
...@@ -98,4 +98,6 @@ public class GetPickingItemsResult { ...@@ -98,4 +98,6 @@ public class GetPickingItemsResult {
private String BIN_CODE; private String BIN_CODE;
private String MODEL; private String MODEL;
private String mg;
} }
...@@ -99,6 +99,8 @@ public class GetPickingItemsDto { ...@@ -99,6 +99,8 @@ public class GetPickingItemsDto {
private String model; private String model;
private String mg;
public static GetPickingItemsDto convertGetPickingItemsResultDto(GetPickingItemsResult result){ public static GetPickingItemsDto convertGetPickingItemsResultDto(GetPickingItemsResult result){
GetPickingItemsDto getPickingItemsResultDto = new GetPickingItemsDto(); GetPickingItemsDto getPickingItemsResultDto = new GetPickingItemsDto();
...@@ -122,6 +124,7 @@ public class GetPickingItemsDto { ...@@ -122,6 +124,7 @@ public class GetPickingItemsDto {
getPickingItemsResultDto.setMo(result.getMO()); getPickingItemsResultDto.setMo(result.getMO());
getPickingItemsResultDto.setBinCode(result.getBIN_CODE()); getPickingItemsResultDto.setBinCode(result.getBIN_CODE());
getPickingItemsResultDto.setModel(result.getMODEL()); getPickingItemsResultDto.setModel(result.getMODEL());
getPickingItemsResultDto.setMg(result.getMg());
return getPickingItemsResultDto; return getPickingItemsResultDto;
} }
......
...@@ -134,7 +134,8 @@ public class PkCheckOutController { ...@@ -134,7 +134,8 @@ public class PkCheckOutController {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"pickingId"}); return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"pickingId"});
} }
List<GetPickingItemsResult> pickingItems = LuxsanApi.getPickingItems(new GetPickingItemsRequest(CommonUtil.plantCode, pickingId)); List<GetPickingItemsResult> pickingItems = LuxsanApi.getPickingItems(new GetPickingItemsRequest(CommonUtil.plantCode, pickingId));
pickingItems = pickingItems.stream().sorted(Comparator.comparing(GetPickingItemsResult :: getISSUED_QTY)).collect(Collectors.toList()); pickingItems = pickingItems.stream().sorted(Comparator.comparing(GetPickingItemsResult :: getMg)
.thenComparing(GetPickingItemsResult :: getISSUED_QTY)).collect(Collectors.toList());
return ResultBean.newOkResult(GetPickingItemsDto.convertGetPickingItemsResultDto(pickingItems)); return ResultBean.newOkResult(GetPickingItemsDto.convertGetPickingItemsResultDto(pickingItems));
} }
...@@ -210,6 +211,7 @@ public class PkCheckOutController { ...@@ -210,6 +211,7 @@ public class PkCheckOutController {
int needReelCount = pkItem.getREQ_REEL() - pkItem.getISSUED_REEL() - pkItem.getCP_REEL() + (pkItem.getRET_QTY() > 0 ? 1 : 0); int needReelCount = pkItem.getREQ_REEL() - pkItem.getISSUED_REEL() - pkItem.getCP_REEL() + (pkItem.getRET_QTY() > 0 ? 1 : 0);
item.setNeedReelCount(needReelCount); item.setNeedReelCount(needReelCount);
item.setModel(pkItem.getMODEL()); item.setModel(pkItem.getMODEL());
item.setMg(pkItem.getMg());
break; break;
} }
} }
...@@ -262,7 +264,7 @@ public class PkCheckOutController { ...@@ -262,7 +264,7 @@ public class PkCheckOutController {
item.setNeedReelCount(needReelCount); item.setNeedReelCount(needReelCount);
item.setModel(pkItem.getMODEL()); item.setModel(pkItem.getMODEL());
item.setMg(pkItem.getMg());
itemList.add(item); itemList.add(item);
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!