Commit 5caa0c12 LN

1.API009增加operationId和linePrepOrderId

1 个父辈 debdf76b
package com.neotel.smfcore.core.barcode.bean;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.HttpHelper;
......@@ -7,10 +8,7 @@ import com.neotel.smfcore.core.barcode.service.po.Barcode;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
/**
*
......@@ -707,7 +705,7 @@ public class BarcodeRule {
b.setPartNumber(partNumber);
b.setAmount(quantity);
b.setProduceDate(produceDate);
b.setExpireDate(expireDate);
b.setExpireDate(expireProcess(expireDate));
b.setPlateSize(codeBean.getReelWidth());
b.setHeight(codeBean.getReelHeight());
b.setMsl(msl);
......@@ -716,6 +714,28 @@ public class BarcodeRule {
return codeBean;
}
private Date expireProcess(Date ex) {
if (ex != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(ex);
// 判断时分秒是否都为0
if (calendar.get(Calendar.HOUR_OF_DAY) == 0 &&
calendar.get(Calendar.MINUTE) == 0 &&
calendar.get(Calendar.SECOND) == 0) {
// 设置时分秒为23:59:59
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
}
// 获取修改后的Date对象
Date modifiedDate = calendar.getTime();
return modifiedDate;
}
return ex;
}
/**
* 转义正则特殊字符 ($()*+.[]?\^{}
* @return
......@@ -740,7 +760,9 @@ public class BarcodeRule {
}
public static void main(String args[]) throws Exception{
List<String> msg=null;
boolean res= ObjectUtil.isNotEmpty(msg);
log.info(res);
//[)>@06@12S001@P8909000244@1P@31P@10V@2P@20P@6D@14D@30PY@Z @K@16K@V000000@3SA20180913-01554@Q03000NAR000@20T1@1TH000000000B172621166@Q03000@2T@1Z@@
//1@2@3@PPN@5@6@7@8@9@10@11@12@13@14@15@16@17@xxRI@xQTYxxxxxx@20@21@22@23@@
......@@ -891,6 +913,13 @@ public class BarcodeRule {
rule="PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|EXPDATEMM-dd-yyyy[2:0:-1]|PRODATEyyyyMMdd[2:0:-1]|QITEM[1:0:-1]|Q1ITEM[2:0:-1]|P20ITEM[3:0:-1]|MSL[1:0:-1]";
codeStr="=1+0x0-13x24=PMT40A512M16TB-062E:R|1PMT40A512M16TB-062E:R|1TJFXNGT7.11|7Q1735+EA|SJFXNGT7.11|21PMICRON||9DD20232601||||7E3";
rule="PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|PRODATEyyyyWW[3:0:-1]|RI[1:0:-1]|QTY[2_7Q:0:-1]|MSL[1:0:-1]";
codeStr="1PMT40A512M16TB-062E:R|21PMICRON|1TJFRY1W7.11|11D202330|SJFRY1W7.11|7Q918+EA|7E3";
// rule="PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|EXPDATEMM-dd-yyyy[2:0:-1]|PRODATEyyyyMMdd[2:0:-1]|QITEM[1:0:-1]|Q1ITEM[2:0:-1]|P20ITEM[3:0:-1]|MSL[1:0:-1]";
// codeStr="PMT40A512M16TB-062E:R|1PMT40A512M16TB-062E:R|1TJFRY1W7.11|7Q918+EA|SJFRY1W7.11|21PMICRON||9D20230730||||7E3";
rule="PN[1:0:-1]|MPN[2:0:-1]|BATCH[2:0:-1]|QTY[2_7Q:0:-1]|RI[1:0:-1]|SP[3:0:-1]|EXPDATEMM-dd-yyyy[2:0:-1]|PRODATEyyyyMMdd[2:0:-1]|QITEM[1:0:-1]|Q1ITEM[2:0:-1]|P20ITEM[3:0:-1]|MSL[1:0:-1]";
codeStr="=1+0x0-310x80=P550-502922C|1P3217-10-01-C|1T132456C3|7Q1000|SP2UATPCB015|21PSIMMTECH|2D08-13-2024||Q100|1Q10||7E2";
BarcodeRule br = BarcodeRule.newRule(rule);
Barcode b = br.toCodeBean(codeStr).getBarcode();
if(b != null){
......
......@@ -916,7 +916,7 @@ public class LiteOrderCache {
/**
* 工单挑料,OutSide Shelf Dispatch Controlled Dispatch
*/
public synchronized String OrderReady(String orderNo ) {
public synchronized String OrderReady(String orderNo,String lineId ) {
LiteOrder cacheOrder = liteOrderMap.get(orderNo);
if (cacheOrder == null) {
......@@ -1054,7 +1054,7 @@ public class LiteOrderCache {
//调用API009进行验证
Map<String, MaterialStatus> apiResultMap = MicronApi.Api009(allBarcodes);
Map<String, MaterialStatus> apiResultMap = MicronApi.Api009(cacheOrder.getOperationId(),lineId, allBarcodes);
List<StoragePos> lockPos=new ArrayList<>();
for (LiteOrderItem item :
......
......@@ -33,7 +33,7 @@ import java.util.Map;
@Slf4j
public class MicronApi {
public static boolean Debug=true;
public static boolean Debug=false;
private static MicronConfig config;
@Autowired
......@@ -660,7 +660,7 @@ public class MicronApi {
}
public static Map<String ,MaterialStatus> Api009(List<Barcode> barcodeList) {
public static Map<String ,MaterialStatus> Api009(String operationId,String linePrepOrderId, List<Barcode> barcodeList) {
Map<String, MaterialStatus> resultMap = new HashMap<>();
if (Debug) {
......@@ -674,7 +674,11 @@ public class MicronApi {
String url = config.getUrl(config.api_name_009);
try {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("operationId",operationId);
paramMap.put("linePrepOrderId",linePrepOrderId);
// "operationId": <operationId>
// "linePrepOrderId" : <LinePrepOrderId>
// "materials":
List<Map<String, Object>> materialList = new ArrayList<>();
for (Barcode barcode : barcodeList) {
Map<String, Object> materialMap = new HashMap<>();
......
......@@ -216,7 +216,7 @@ private IStoragePosManager storagePosManager;
//工单上传成功,开始挑料
LiteOrder order=getOrderByMode(mode);
liteOrderCache.OrderReady(order.getOrderNo());
liteOrderCache.OrderReady(order.getOrderNo(),reason);
// ,直接返回列表页面
List<LiteOrderItem> itemList = getLiteOrderItemList(mode);
......@@ -352,14 +352,14 @@ private IStoragePosManager storagePosManager;
LiteOrder liteOrder = new LiteOrder(orderName, items);
liteOrder.setOperationId(taskDto.getOperationId());
liteOrder.setMode(mode);
log.info("pnSubmit,mode=[" + mode + "], 新增加订单:" + liteOrder.getOrderNo() + ",共" + items.size() + "条工单详情");
log.info("pnSubmit,mode=[" + mode + "],["+taskDto.getOperationId()+"], 新增加订单:" + liteOrder.getOrderNo() + ",共" + items.size() + "条工单详情");
liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
//开始挑料
LiteOrder order=getOrderByMode(mode);
liteOrderCache.OrderReady(order.getOrderNo());
liteOrderCache.OrderReady(order.getOrderNo(),taskDto.getLineId());
// ,直接返回列表页面
List<LiteOrderItem> itemList = getLiteOrderItemList(mode);
......@@ -455,7 +455,11 @@ private IStoragePosManager storagePosManager;
if (order == null) {
return ResultBean.newErrorResult(-1, "smfcore.micron.operationFailure", "操作失败");
}
TaskDto taskDto = getTaskDtoByMode(mode);
if(taskDto==null || ObjectUtil.isEmpty(taskDto.getOperationId())|| ObjectUtil.isEmpty(taskDto.getLineId())){
log.info("pnSubmit 操作失败,taskDto数据不完整");
return ResultBean.newErrorResult(-1, "smfcore.micron.operationFailure", "操作失败");
}
List<LiteOrderItem> items = order.getOrderItems().stream()
.filter(item -> (item.getId().equals(itemId)))
.collect(Collectors.toList());
......@@ -479,7 +483,7 @@ private IStoragePosManager storagePosManager;
//调用API009
Map<String, MaterialStatus> apiResultMap = MicronApi.Api009(allBarcodes);
Map<String, MaterialStatus> apiResultMap = MicronApi.Api009(order.getOperationId(),taskDto.getLineId(), allBarcodes);
List<LiteOrderItem> selectReelItems = item.selectItems;
for (Barcode barcode :
allBarcodes) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!