原材料入库

main
HUOJIN\92525 2024-06-12 10:29:23 +08:00
parent 03a3ea7e05
commit 03b8fbe116
2 changed files with 22 additions and 11 deletions

View File

@ -65,7 +65,7 @@ public class BydAppController {
@AnonymousAccess @AnonymousAccess
public ResponseEntity<Object> bindStock(@RequestBody BindStock bindStock) { public ResponseEntity<Object> bindStock(@RequestBody BindStock bindStock) {
try { try {
//二维码格式P:A17A;V:148795;M:DP_001/PCS;B:240512JFET;Lot:20240427;S:124051200181131;PO:5913490946/00020;Q:36/20/32;D:2024-04-27;SN:;YX:2025-04-26;DN:D12405120005031AS; //二维码格式P:A17A;V:148795;M:DP_001/PCS;B:240512JFET;Lot:20240427;S:124051200181131;PO:5913490946/00020;Q:36/20/32;D:2024-04-27;SN:;YX:2025-04-26;DN:D12405120005031AS
String QRCode = bindStock.getItemCode();//Mo票二维码 String QRCode = bindStock.getItemCode();//Mo票二维码
String stockCode = bindStock.getStockCode();//容器编号 String stockCode = bindStock.getStockCode();//容器编号
String pointCode = bindStock.getPointCode();//点位编号 String pointCode = bindStock.getPointCode();//点位编号

View File

@ -279,10 +279,14 @@ public class StockServiceImpl implements StockService {
String gdh = map.get("S");//工单号 String gdh = map.get("S");//工单号
String propC3 = map.get("P");//工厂 String propC3 = map.get("P");//工厂
String propD1 = map.get("D");//生产日期 String propD1 = map.get("D");//生产日期
double orderQty = Double.parseDouble(getStringCode(map.get("Q"))); double orderQty = Double.parseDouble(getStringCode(map.get("Q")));//数量
if (asnDetailService.findByMo(QRCode)) {
throw new RuntimeException("该MO票已入库,请勿重复操作!");
}
Item item = validateItem(getStringCode(map.get("M")));//验证物料 Item item = validateItem(getStringCode(map.get("M")));//验证物料
Stock stock = validateStock(stockCode);//验证容器 Stock stock = validateStock(stockCode);//验证容器
validateStockStatus(stock);//验证容器状态 validateStockStatus(stock);//验证容器状态
validateStockAndItem(stock, item);//验证容器类型和物料类型是否匹配
Point srcPoint = validateSrcPoint(pointCode);//验证点位 Point srcPoint = validateSrcPoint(pointCode);//验证点位
String srcPointAreaName = srcPoint.getArea().getName(); String srcPointAreaName = srcPoint.getArea().getName();
if (!isValidMCArea(srcPointAreaName)) { if (!isValidMCArea(srcPointAreaName)) {
@ -306,6 +310,16 @@ public class StockServiceImpl implements StockService {
updateStockAndPoints(stock, srcPoint, endPoint); updateStockAndPoints(stock, srcPoint, endPoint);
} }
private void validateStockAndItem(Stock stock, Item item) {
if (item.getGoodType().contains("大件") || item.getGoodType().contains("小件")) {
if (!item.getGoodType().substring(0, 2).equals(stock.getStockType().substring(0, 2))) {
throw new RuntimeException("物料类型和容器类型不匹配!");
}
}
}
private Map<String, String> parseString(String QRCode) { private Map<String, String> parseString(String QRCode) {
//P:工厂;V:客户编号;M:物料编号/PCS;B:BYD批次;Lot:供应商批次号;S:工单编号;PO:采购订单/箱号;Q:数量;D:生产日期;YX:有效天数; //P:工厂;V:客户编号;M:物料编号/PCS;B:BYD批次;Lot:供应商批次号;S:工单编号;PO:采购订单/箱号;Q:数量;D:生产日期;YX:有效天数;
// 使用分号分隔字符串 // 使用分号分隔字符串
@ -320,9 +334,6 @@ public class StockServiceImpl implements StockService {
resultMap.put(key, value); resultMap.put(key, value);
} }
} }
for (String key : resultMap.keySet()) {
log.info("key:{" + key + "},value:{" + resultMap.get(key) + "}");
}
return resultMap; return resultMap;
} }