Commit 1493aa20 zshaohui

1.水位预警逻辑修改

1 个父辈 eb1f2ab9
...@@ -41,8 +41,10 @@ import com.neotel.smfcore.custom.luxsan.api.bean.request.FetchHoldInfoRequest; ...@@ -41,8 +41,10 @@ import com.neotel.smfcore.custom.luxsan.api.bean.request.FetchHoldInfoRequest;
import com.neotel.smfcore.custom.luxsan.api.bean.request.TicketPickRequest; import com.neotel.smfcore.custom.luxsan.api.bean.request.TicketPickRequest;
import com.neotel.smfcore.custom.luxsan.api.bean.result.FetchHoldInfoResult; import com.neotel.smfcore.custom.luxsan.api.bean.result.FetchHoldInfoResult;
import com.neotel.smfcore.custom.luxsan.factory_c.common.util.CommonUtil; import com.neotel.smfcore.custom.luxsan.factory_c.common.util.CommonUtil;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.bean.StorageLevelWarning;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.enums.LiteorderCheckType; import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.enums.LiteorderCheckType;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.enums.TaskCurrentLoc; import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.enums.TaskCurrentLoc;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.manager.IStorageLevelWarningManager;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.util.BinCacheUtil; import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.util.BinCacheUtil;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.util.CheckOutUtil; import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.util.CheckOutUtil;
import com.neotel.smfcore.custom.luxsan.factory_c.wipstor.util.TaskLocUtil; import com.neotel.smfcore.custom.luxsan.factory_c.wipstor.util.TaskLocUtil;
...@@ -91,6 +93,9 @@ public class LiteOrderCache { ...@@ -91,6 +93,9 @@ public class LiteOrderCache {
@Autowired @Autowired
private MaiZhengApi maiZhengApi; private MaiZhengApi maiZhengApi;
@Autowired
private IStorageLevelWarningManager storageLevelWarningManager;
/** /**
* 正在执行的liteOrderMap, key 为orderNo,value 为order * 正在执行的liteOrderMap, key 为orderNo,value 为order
*/ */
...@@ -1041,6 +1046,20 @@ public class LiteOrderCache { ...@@ -1041,6 +1046,20 @@ public class LiteOrderCache {
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 + "开始找替代料");
List<StorageLevelWarning> warningList = storageLevelWarningManager.findByQuery(new Query(Criteria.where("req").is(orderItem.getReplaceNum())));
if (warningList != null && !warningList.isEmpty()){
for (StorageLevelWarning levelWarning : warningList) {
List<StoragePos> replaceStoragePosList = storagePosManager.findStoragePosByPartNumber(Arrays.asList(levelWarning.getPartNumber()));
pos = getStoragePosByPartNumberAndBrand(replaceStoragePosList, levelWarning.getPartNumber(), excludeIdList);
if (pos != null){
pn = levelWarning.getPartNumber();
break;
}
}
}
}
if (pos == null){
log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "未找到存在库位,跳过"); log.info(orderItem.getOrderId() + "厂商:" + warehouseCode + ",供应商:" + brand + ",料号:" + pn + "未找到存在库位,跳过");
break; break;
} }
......
...@@ -21,11 +21,6 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -21,11 +21,6 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private String pn; private String pn;
/** /**
* 替代料
*/
private String replacePn;
/**
* 唯一码 * 唯一码
*/ */
private String ri; private String ri;
...@@ -406,6 +401,8 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -406,6 +401,8 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private String moveType; private String moveType;
private String replaceNum;
public void setOutReelList(String reel) { public void setOutReelList(String reel) {
if (outReelList == null){ if (outReelList == null){
outReelList = new ArrayList<>(); outReelList = new ArrayList<>();
......
...@@ -1385,7 +1385,7 @@ public class LuxsanApi extends DefaultSmfApiListener { ...@@ -1385,7 +1385,7 @@ public class LuxsanApi extends DefaultSmfApiListener {
for (LiteOrderItem orderItem : order.getOrderItems()) { for (LiteOrderItem orderItem : order.getOrderItems()) {
Map<String, Object> itemMap = new HashMap<>(); Map<String, Object> itemMap = new HashMap<>();
itemMap.put("face", "T"); itemMap.put("face", "T");
itemMap.put("mo", System.currentTimeMillis() + ""); itemMap.put("mo", orderItem.getMo());
itemMap.put("material_code", orderItem.getPn()); itemMap.put("material_code", orderItem.getPn());
itemMap.put("brand", ""); itemMap.put("brand", "");
itemMap.put("batch_code", ""); itemMap.put("batch_code", "");
......
...@@ -6,6 +6,8 @@ import lombok.Data; ...@@ -6,6 +6,8 @@ import lombok.Data;
@Data @Data
public class StorageLevelWarning extends BasePo { public class StorageLevelWarning extends BasePo {
private String req;
private String partNumber; private String partNumber;
private String replacePartNumber; private String replacePartNumber;
......
...@@ -98,7 +98,7 @@ public class PkCheckOutController { ...@@ -98,7 +98,7 @@ public class PkCheckOutController {
queryPickingResult.setStartDate(liteOrder.getStartDate()); queryPickingResult.setStartDate(liteOrder.getStartDate());
queryPickingResult.setEndDate(liteOrder.getEndDate()); queryPickingResult.setEndDate(liteOrder.getEndDate());
queryPickingResult.setFinishDate(liteOrder.getFinishDate()); queryPickingResult.setFinishDate(liteOrder.getFinishDate());
if (!liteOrder.isTaskFinished() || liteOrder.isClosed()){ if (!liteOrder.isNew() && (!liteOrder.isTaskFinished() || liteOrder.isClosed())){
queryPickingResult.setCheckOut(false); queryPickingResult.setCheckOut(false);
} }
queryPickingResult.setTargetLoc(liteOrder.getLoc()); queryPickingResult.setTargetLoc(liteOrder.getLoc());
...@@ -171,6 +171,50 @@ public class PkCheckOutController { ...@@ -171,6 +171,50 @@ public class PkCheckOutController {
if (!liteOrder.isTaskFinished() && !liteOrder.isNew()) { if (!liteOrder.isTaskFinished() && !liteOrder.isNew()) {
return ResultBean.newErrorResult(-1, "", pickingId + "正在执行中,不允许出库"); return ResultBean.newErrorResult(-1, "", pickingId + "正在执行中,不允许出库");
} }
//3.获取pk详情
GetPickingItemsRequest request = new GetPickingItemsRequest(CommonUtil.plantCode, pickingId);
List<GetPickingItemsResult> pickingItemList = LuxsanApi.getPickingItems(request);
List<LiteOrderItem> newOrderItemList = new ArrayList<>();
List<LiteOrderItem> orderItems = liteOrder.getOrderItems();
for (LiteOrderItem item : orderItems) {
for (GetPickingItemsResult pkItem : pickingItemList) {
String mo = pkItem.getMO();
if (mo.equals(item.getMo())) {
item.setPlantCode(pkItem.getPLANT_CODE());
item.setItemId(pkItem.getITEM_ID());
item.setPickingId(pkItem.getPICKING_ID());
item.setMaterialCode(pkItem.getMATERIAL_CODE());
item.setPn(pkItem.getMATERIAL_CODE());
item.setWarehouse(pkItem.getWAREHOUSE());
item.setWarehouseCode(pkItem.getWAREHOUSE());
item.setReqQty(pkItem.getREQ_QTY());
item.setReqReel(pkItem.getREQ_REEL());
item.setCpQty(pkItem.getCP_QTY());
item.setCpReel(pkItem.getCP_REEL());
item.setIssuedQty(pkItem.getISSUED_QTY());
item.setIssuedReel(pkItem.getISSUED_REEL());
item.setRetQty(pkItem.getRET_QTY());
item.setFace(pkItem.getFACE());
item.setBatchCode(pkItem.getBATCH_CODE());
item.setBrand(pkItem.getBRAND());
item.setCreateAt(pkItem.getCREATE_AT());
item.setUpdateAt(pkItem.getUPDATE_AT());
item.setMo(pkItem.getMO());
item.setBinCode(pkItem.getBIN_CODE());
//需要发料的数量
int needNum = pkItem.getREQ_QTY() - pkItem.getCP_QTY() - pkItem.getISSUED_QTY() + pkItem.getRET_QTY();
item.setNeedNum(needNum);
//需要发料的卷数
int needReelCount = pkItem.getREQ_REEL() - pkItem.getISSUED_REEL() - pkItem.getCP_REEL() + (pkItem.getRET_QTY() > 0 ? 1 : 0);
item.setNeedReelCount(needReelCount);
break;
}
}
newOrderItemList.add(item);
}
liteOrder.setOrderItems(newOrderItemList);
liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
//2.如果存在,改个名字 //2.如果存在,改个名字
/*liteOrder.setOrderNo(liteOrder.getOrderNo() + DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); /*liteOrder.setOrderNo(liteOrder.getOrderNo() + DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
liteOrderManager.createWithItems(liteOrder);*/ liteOrderManager.createWithItems(liteOrder);*/
......
...@@ -87,7 +87,6 @@ public class StorageLevelWarningController { ...@@ -87,7 +87,6 @@ public class StorageLevelWarningController {
List<LiteOrderItem> itemList = new ArrayList<>(); List<LiteOrderItem> itemList = new ArrayList<>();
for (StorageLevelWarning levelWarning : warningList) { for (StorageLevelWarning levelWarning : warningList) {
String partNumber = levelWarning.getPartNumber(); String partNumber = levelWarning.getPartNumber();
String replacePartNumber = levelWarning.getReplacePartNumber();
int minInventory = levelWarning.getMinInventory(); int minInventory = levelWarning.getMinInventory();
int maxInventory = levelWarning.getMaxInventory(); int maxInventory = levelWarning.getMaxInventory();
int currentInventory = levelWarning.getCurrentInventory(); int currentInventory = levelWarning.getCurrentInventory();
...@@ -101,9 +100,10 @@ public class StorageLevelWarningController { ...@@ -101,9 +100,10 @@ public class StorageLevelWarningController {
LiteOrderItem item = new LiteOrderItem(); LiteOrderItem item = new LiteOrderItem();
item.setWarningItemId(levelWarning.getId()); item.setWarningItemId(levelWarning.getId());
item.setPn(partNumber); item.setPn(partNumber);
item.setReplacePn(replacePartNumber);
item.setNeedReelCount(needOut); item.setNeedReelCount(needOut);
item.setMo(System.currentTimeMillis()+"");
item.setWarehouseCode(levelWarning.getWareHouseCode()); item.setWarehouseCode(levelWarning.getWareHouseCode());
item.setReplaceNum(levelWarning.getReplacePartNumber());
itemList.add(item); itemList.add(item);
} }
} }
...@@ -136,7 +136,6 @@ public class StorageLevelWarningController { ...@@ -136,7 +136,6 @@ public class StorageLevelWarningController {
} }
} }
} }
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
...@@ -157,6 +156,7 @@ public class StorageLevelWarningController { ...@@ -157,6 +156,7 @@ public class StorageLevelWarningController {
if (dbWarning == null) { if (dbWarning == null) {
dbWarning = new StorageLevelWarning(); dbWarning = new StorageLevelWarning();
} }
dbWarning.setReq(warning.getReq());
dbWarning.setWareHouseCode(warning.getWareHouseCode()); dbWarning.setWareHouseCode(warning.getWareHouseCode());
dbWarning.setPartNumber(warning.getPartNumber()); dbWarning.setPartNumber(warning.getPartNumber());
dbWarning.setLoc(loc); dbWarning.setLoc(loc);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!