Commit 320759a4 LN

增加cancelAndDisable接口

1 个父辈 1674644d
......@@ -889,6 +889,8 @@ public class BarcodeRule {
codeStr="P550-502922C|1P3217-10-01-C|1TD116223H|7Q1000+EA|SP2SITPCB001|21PSIMMTECH|2D12-31-2025||Q10|1Q10||7E1";
codeStr="P550-502922C|1P3217-10-01-C|1TD116223H|7Q1000+EA|SP2SITPCB001|||||||";
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";
BarcodeRule br = BarcodeRule.newRule(rule);
Barcode b = br.toCodeBean(codeStr).getBarcode();
if(b != null){
......
......@@ -363,14 +363,19 @@ public class CodeResolve {
if (barcodeFromRule.getExpireDate() != null) {
} else {
Date produceDate = barcodeFromRule.getProduceDate();
int validDay = component.getValidDay();
validDay = getTargetValid(component.getPartNumber(), validDay);
if (validDay > 0) {
log.info("设置" + barcodeFromRule.getBarcode() + "的过期时间");
Date expireDate = DateUtil.addDays(produceDate, validDay);
barcodeFromRule.setExpireDate(expireDate);
barcodeManager.save(barcodeFromRule);
try {
Date produceDate = barcodeFromRule.getProduceDate();
int validDay = component.getValidDay();
validDay = getTargetValid(component.getPartNumber(), validDay);
if (validDay > 0 && (produceDate != null)) {
log.info("设置" + barcodeFromRule.getBarcode() + "的过期时间");
Date expireDate = DateUtil.addDays(produceDate, validDay);
barcodeFromRule.setExpireDate(expireDate);
// barcodeManager.save(barcodeFromRule);
}
} catch (Exception ex) {
log.error("设置过期时间出错:" + ex.toString());
}
}
......
......@@ -11,6 +11,7 @@ import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
......@@ -628,4 +629,46 @@ public class DeviceController {
data.put("plateH", pos.getBarcode().getHeight() + "");
return ResultBean.newOkResult(data);
}
@ApiOperation("取消任务,禁用库位")
@RequestMapping(value = "/service/store/cancelAndDisable")
@ResponseBody
@AnonymousAccess
public ResultBean cancelAndDisable(HttpServletRequest request) {
String posName = request.getParameter("posName");
if (StringUtils.isNotBlank(posName)) {
DataLog task = null;
List<DataLog> allTasks = taskService.getAllTasks();
for (DataLog dataLog : allTasks) {
if (posName.equals(dataLog.getPosName()) && dataLog.isCheckOutTask() && !dataLog.isFinished()) {
task = dataLog;
break;
}
}
if (task != null) {
boolean result = taskService.cancelTask(task);
if (result) {
StoragePos pos = storagePosManager.getByPosName(posName);
if (pos != null) {
pos.setEnabled(false);
storagePosManager.save(pos);
dataCache.updateDisablePos(pos);
log.info("任务[" + task.getId() + "] posName[" + task.getPosName() + "] Reel Id[" + task.getBarcode() + "]取消成功,禁用库位[" + task.getPosName() + "]");
DeviceMessageUtil.addEnabledPosMessage(pos, SecurityUtils.getCurrentUsername());
Storage storage = dataCache.getStorageById(pos.getStorageId());
if (storage != null) {
dataCache.reloadStorage(storage, "");
}
}
return ResultBean.newOkResult("");
}
} else {
return ResultBean.newErrorResult(1, "smfcore.task.notExist", "Task does not exist");
}
}
return ResultBean.newErrorResult(1, "smfcore.cancelOutTask.fail","客户端取消入库任务[{0}]失败:{1}", new String[]{posName,""});
}
}
......@@ -245,7 +245,7 @@ public class TaskService {
return tasks;
}
private boolean cancelTask(DataLog task) {
public boolean cancelTask(DataLog task) {
if (task != null) {
//从正在执行和等待列表中移除
removeQueueTask(task);
......
server:
port: 8800
micron:
apiAddr: http://istio-ingressgateway-istio-system.apps.ose-dev45.micron.com/
api_name_001: material/validation/label
api_name_002: material/transfer-in
api_name_004: operation/dispatchIds?operationId={0}
api_name_005: material/lineprep?operationId={0}&LinePrepOrderId={1}
api_name_006: material/pretasks
api_name_007: material/transfer-out
api_name_008: material/xray/{0}/{1}
api_name_009: material/status
api_name_010: material/track-out
api_name_011: operation?mode={0}&username={1}&source={2}
api_name_101: operation/validation/mbr?id={0}&operationId={1}&skipSap={2}
api_name_102: operation/validation/req?id={0}&operationId={1}
api_name_103: operation/validation/gr?purchaseOrder={0}&packagingSlip={1}&operationId={2}&skipSap={3}
api_name_201: operation/validate/ctrldispatch?linePrepOrderId={0}&operationId={1}
api_name_202: user/{0}
api:
name:
inCheckUrl:
outNotifyUrl:
inNotifyUrl:
inNotifyUrl: material/transfer-in
hella:
#host: 127.0.0.1
......@@ -29,7 +46,7 @@ spring:
auto-index-creation: true # 默认为false,即不会自动创建索引
host: localhost # 主机地址
port: 27017 # 端口
database: smf # 数据库
database: smf1053-20231201 # 数据库smf1053-20230606
#备份数据库配置
backup-mongodb:
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!