Commit 6915816d zshaohui

手动抛送缺料预警修改

1 个父辈 7e26e143
...@@ -190,12 +190,11 @@ public class DeviceController { ...@@ -190,12 +190,11 @@ public class DeviceController {
} }
//判断库别是否为空 //判断库别是否为空
/*Barcode barcode1F = lizhenApi.getBarcode(barcode.getBarcode()); Barcode barcode1F = lizhenApi.getBarcode(barcode.getBarcode());
if (barcode1F == null || StringUtils.isEmpty(barcode1F.getWarehouseCode())){ if (barcode1F == null || StringUtils.isEmpty(barcode1F.getWarehouseCode())){
throw new ValidateException("", barcode.getBarcode()+"未找到对应的库别信息"); throw new ValidateException("", barcode.getBarcode()+"未找到对应的库别信息");
} }
String warhouseCode = barcode1F.getWarehouseCode();*/ String warhouseCode = barcode1F.getWarehouseCode();
String warhouseCode = "";
//判断虚拟仓有没有存在,如果有,把虚拟仓库位置空 //判断虚拟仓有没有存在,如果有,把虚拟仓库位置空
StoragePos storagePos = storagePosManager.getByBarcode(barcode.getBarcode()); StoragePos storagePos = storagePosManager.getByBarcode(barcode.getBarcode());
...@@ -319,7 +318,7 @@ public class DeviceController { ...@@ -319,7 +318,7 @@ public class DeviceController {
Storage theStorage = dataCache.getStorageById(pos.getStorageId()); Storage theStorage = dataCache.getStorageById(pos.getStorageId());
//lizhenApi.backToWarehouse(warhouseCode,theStorage.getName(),barcode.getBarcode()); lizhenApi.backToWarehouse(warhouseCode,theStorage.getName(),barcode.getBarcode());
barcode.setWarehouseCode(warhouseCode); barcode.setWarehouseCode(warhouseCode);
barcode.setAskPutIn(true); barcode.setAskPutIn(true);
......
package com.neotel.smfcore.custom.lizhen; package com.neotel.smfcore.custom.lizhen.wcs;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -27,6 +27,7 @@ import com.neotel.smfcore.custom.lizhen.innerBox.util.PreWarningItemCache; ...@@ -27,6 +27,7 @@ import com.neotel.smfcore.custom.lizhen.innerBox.util.PreWarningItemCache;
import com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil; import com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil;
import com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBox; import com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBox;
import com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBoxList; import com.neotel.smfcore.custom.lizhen.third.maicheng.bean.AskReelBoxList;
import com.neotel.smfcore.custom.lizhen.wcs.bean.ManualTower;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -321,7 +322,7 @@ public class LizhenController { ...@@ -321,7 +322,7 @@ public class LizhenController {
@ApiOperation("Tower接收手动发料信息") @ApiOperation("Tower接收手动发料信息")
@RequestMapping("/manualTower") @RequestMapping("/manualTower")
@AnonymousAccess @AnonymousAccess
public Map<String, String> manualTower(@RequestBody List<AskReelBoxList> itemList) { public Map<String, String> manualTower(@RequestBody List<ManualTower> itemList) {
log.info("收到WMS手动发料数据为:" + JSON.toJSONString(itemList)); log.info("收到WMS手动发料数据为:" + JSON.toJSONString(itemList));
createManualOrder(itemList); createManualOrder(itemList);
Map<String, String> resultMap = new HashMap<>(); Map<String, String> resultMap = new HashMap<>();
...@@ -329,47 +330,52 @@ public class LizhenController { ...@@ -329,47 +330,52 @@ public class LizhenController {
resultMap.put("MSGTX", "接收成功"); resultMap.put("MSGTX", "接收成功");
return resultMap; return resultMap;
} }
private String createManualOrder(List<AskReelBoxList> itemList) { private String createManualOrder(List<ManualTower> itemList) {
Map<String, LiteOrder> orderMap = new HashMap<>(); Map<String, LiteOrder> orderMap = new HashMap<>();
for (AskReelBoxList askItem : itemList) { for (ManualTower manualTower : itemList) {
String orderNo = askItem.getWORKORDERNO(); String orderNo = manualTower.getPICKING_ID();
LiteOrder order = orderMap.get(orderNo); LiteOrder order = orderMap.get(orderNo);
if(order == null){ if(order == null){
order = new LiteOrder(); order = new LiteOrder();
order.setOrderNo(askItem.getWORKORDERNO()); order.setOrderNo(manualTower.getPICKING_ID());
order.setLine(askItem.getLINE()); order.setLine(manualTower.getLINE());
order = liteOrderManager.save(order);
} }
LiteOrderItem orderItem = new LiteOrderItem(); LiteOrderItem orderItem = new LiteOrderItem();
orderItem.setLine(askItem.getLINE()); orderItem.setPickingId(orderNo);
orderItem.setWarningItemId(askItem.getID()); orderItem.setPlantCode(manualTower.getPLANT_CODE());
orderItem.setMo(askItem.getWORKORDERNO()); orderItem.setPn(manualTower.getMATERIAL_CODE());
int needReelCount = NumberUtil.parseInt(askItem.getREQ_REEL()); orderItem.setLine(manualTower.getLINE());
orderItem.setNeedReelCount(needReelCount); orderItem.setMachineName(manualTower.getMACHINE_NAME());
int needNum = NumberUtil.parseInt(askItem.getREQ_QTY()); orderItem.setSide(manualTower.getFACE());
orderItem.setNeedNum(needNum); orderItem.setSlot(manualTower.getSLOT());
orderItem.setMachineName(askItem.getMACHINENAME()); orderItem.setSubSlot(manualTower.getSUBSLOT());
orderItem.setPn(askItem.getPARTNUMBER()); orderItem.setMo(manualTower.getMO());
orderItem.setSide(askItem.getSIDE()); //设置面别 orderItem.setBrand(manualTower.getBRAND());
orderItem.setSlot(askItem.getSLOT()); //站位 orderItem.setBatchCode(manualTower.getBATCH_CODE());
orderItem.setSubSlot(askItem.getSUBSLOT()); orderItem.setPriority(manualTower.getPRIORITY());
orderItem.setTableNo(askItem.getSTATION()); orderItem.setNeedReelCount(manualTower.getREQ_REEL());
orderItem.setOrderNo(order.getOrderNo()); orderItem.setNeedNum(manualTower.getREQ_QTY());
orderItem.setOrderId(order.getId());
orderItem.setMachineName(askItem.getMACHINENAME()); List<LiteOrderItem> orderItems = order.getOrderItems();
orderItem.setReel(askItem.getREEL()); if (orderItems == null){
orderItem.setBrand(askItem.getVENDOR()); orderItems = new ArrayList<>();
orderItem.setWidth(askItem.getWidth()); }
orderItem.setDia(askItem.getDia()); orderItems.add(orderItem);
order.updateOrderItems(orderItem); order.setOrderItems(orderItems);
orderMap.put(orderNo,order);
} }
for (LiteOrder liteOrder : orderMap.values()) { for (LiteOrder liteOrder : orderMap.values()) {
liteOrderManager.save(liteOrder); LiteOrder dbOrder = liteOrderManager.findByOrderNo(liteOrder.getOrderNo());
liteOrderCache.addOrderToMap(liteOrder); if (dbOrder != null){
log.info("工单["+liteOrder.getOrderNo()+"]已创建完成"); continue;
}
LiteOrder newOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderManager.save(newOrder);
liteOrderCache.addOrderToMap(newOrder);
log.info("工单["+newOrder.getOrderNo()+"]已创建完成");
} }
return "OK"; return "OK";
} }
......
package com.neotel.smfcore.custom.lizhen.wcs.bean;
import lombok.Data;
@Data
public class ManualTower {
private String PLANT_CODE; // 厂区
private String PICKING_ID; // 挑料编码
private String MATERIAL_CODE; // 料号
private String LINE; // 线别
private String MACHINE_NAME; // 机台名
private String MACHINE; // 原为MACHINE,但为避免与机台名冲突,改为机台类型
private String FACE; // 面别
private String SLOT; // 料站
private String SUBSLOT; // 左右料站
private String MO; // 工单
private String BRAND; // 制造商
private String BATCH_CODE; // 批次号
private int LEFT_QTY; // 剩余数量,假设为浮点数,根据需要可改为Integer
private int LEFT_PCBS; // 剩余板数
private int LEFT_TIMES; // 剩余时间,假设为浮点数,根据需要可改为其他类型
private int PRIORITY; // 优先级
private int PRODUCT_BOARDS; // 主板数
private int STATUS; // 状态
private String RECIEVE_TYPE; // 接收类型
private String PITCH; // 摊位
private int TAP_LENGTH; // 料盘长度,假设为浮点数
private int REQ_REEL; // 需求卷数
private int REQ_QTY; // 需求数量
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!