Commit d84c9b5b zshaohui

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

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