Commit ce7a51e3 zshaohui

出库逻辑提交

1 个父辈 0d05ba78
......@@ -178,18 +178,24 @@ public class XLRBoxHandler extends BaseDeviceHandler {
private DataLog findCheckoutBoxTask(Storage storage) {
String cid = storage.getCid();
int checkoutSize = 0;
Collection<DataLog> allTasks = taskService.getQueueTasks();
Collection<DataLog> allTasks = taskService.getAllTasks();
//按照库位的优先级进行排序
Map<String, StoragePos> usedPosList = dataCache.getUsedPosList(storage.getCid());
List<DataLog> dataLogList = new ArrayList<>();
for (DataLog dataLog : allTasks) {
for (StoragePos pos : usedPosList.values()) {
if (dataLog.isPutInTask()){
continue;
}
if (dataLog.isFinished() || dataLog.isCancel()){
continue;
}
/*for (StoragePos pos : usedPosList.values()) {
if (pos.getPosName().equals(dataLog.getPosName())) {
dataLog.setPriority(pos.getPriority());
}
}
}*/
dataLogList.add(dataLog);
}
dataLogList = dataLogList.stream().sorted(Comparator.comparing(DataLog::getPriority)).collect(Collectors.toList());
......@@ -202,7 +208,7 @@ public class XLRBoxHandler extends BaseDeviceHandler {
if (cid.equals(task.getCid()) && task.isExecuting()) {
if (task.isPutInTask()) {
log.error("cid[" + cid + "]已有入库任务,不可再分配出库任务");
return null;
//return null;
} else if (task.needReSendToClient() && task.isCheckOutTask()) {//超过180秒仍未完成的出库再次发送到客户端
log.error("cid[" + cid + "]的出库任务[" + task.getPosName() + "]" + task.getBarcode() + "超过180秒仍未完成,重新发送到客户端!");
task.setUpdateDate(new Date());
......@@ -267,7 +273,7 @@ public class XLRBoxHandler extends BaseDeviceHandler {
//先提取出料口不为空的
List<DataLog> notEmptyExportList = new ArrayList<>();
for (DataLog dataLog : dataLogList) {
if (dataLog.isCheckOutTask() && dataLog.isWait()) {
if (dataLog.isCheckOutTask() && !dataLog.isCancel() && !dataLog.isFinished()) {
String export = dataLog.getExport();
if (StringUtils.isNotEmpty(export)) {
notEmptyExportList.add(dataLog);
......@@ -291,12 +297,15 @@ public class XLRBoxHandler extends BaseDeviceHandler {
DataLog dataLog = groupByList.get(0);
if (cid.equals(dataLog.getCid())) {
//判断出料口信息是否相同
String feederInfo = dataLog.getAppendData("feederInfo");
StorageExport export = StorageExportUtil.getExport(key);
if (feederInfo.startsWith(export.getFeeder())) {
log.info("分配出库任务,站位号为:" + dataLog.getAppendData("feederInfo") + ",出料口为:" + key + ",barcode为:" + dataLog.getBarcode());
orderTask = dataLog;
break;
if (dataLog.isWait()) {
String feederInfo = dataLog.getAppendData("feederInfo");
String feeder = StorageExportUtil.getCurrentExportFeeder(key);
log.info("UM口对应的feeder为:"+feeder+",当前任务的feeder为:"+feederInfo);
if (feederInfo.startsWith(feeder)) {
log.info("分配出库任务,站位号为:" + dataLog.getAppendData("feederInfo") + ",出料口为:" + key + ",barcode为:" + dataLog.getBarcode());
orderTask = dataLog;
break;
}
}
}
}
......
......@@ -206,7 +206,7 @@ public class OrderController {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"orderNo"});
}
String result = liteOrderCache.checkOutLiteOrder(orderNo, false);
String result = liteOrderCache.checkOutJkemLiteOrder(orderNo);
if (ObjectUtil.isEmpty(result)) {
return ResultBean.newOkResult(result);
} else {
......
......@@ -152,11 +152,8 @@ public class StorageExportController {
for (String key : exportMap.keySet()) {
if (key.contains(export)) {
StorageExport storageExport = exportMap.get(key);
String feeder = storageExport.getFeeder();
if (StringUtils.isEmpty(dto.getFeederInfo())||"-1".equals(dto.getFeederInfo())) {
dto.setFeederInfo(feeder);
}
dto.setHSerial(storageExport.getHSerial());
dto.setFeederInfo(StorageExportUtil.getCurrentExportFeeder(key));
List<StorageExportOutDetail> detailList = storageExport.getDetailList();
if (detailList != null && !detailList.isEmpty()){
detailList = detailList.stream().sorted(Comparator.comparing(StorageExportOutDetail::getFeederInfo)).collect(Collectors.toList());
......
......@@ -32,6 +32,7 @@ public class JkemMenu {
MenuInit.addMenu(menuLabel, menu, 6, "UM6", "UM6", "neolight/um/index", "um");
MenuInit.addMenu(menuLabel, menu, 7, "UM7", "UM7", "neolight/um/index", "um");
MenuInit.addMenu(menuLabel, menu, 8, "UM8", "UM8", "neolight/um/index", "um");
MenuInit.addMenu(menuLabel, menu, 9, "出料口配置", "umConfig", "system/umConfig/index", "umConfig");
String apiName = smfApi.getApiName();
if (Strings.isNotBlank(apiName) && apiName.equals(menuLabel)) {
......
......@@ -271,17 +271,8 @@ public class StorageExportUtil {
|| export.equals("UM5_2")
|| export.equals("UM5_3")
) {
String feederStart = "1";
if (!feederInfo.startsWith("1")){
feederStart="5";
}
if ("-1".equals(feeder)){
storageExport.setFeeder(feederStart);
} else {
if ("1".equals(feederStart)){
storageExport.setFeeder(feederStart);
}
storageExport.setFeeder("1");
}
}
......@@ -293,17 +284,8 @@ public class StorageExportUtil {
|| export.equals("UM6_2")
|| export.equals("UM6_3")
) {
String feederStart = "2";
if (!feederInfo.startsWith("2")){
feederStart="6";
}
if ("-1".equals(feeder)){
storageExport.setFeeder(feederStart);
} else {
if ("2".equals(feederStart)){
storageExport.setFeeder(feederStart);
}
storageExport.setFeeder("2");
}
}
......@@ -315,17 +297,8 @@ public class StorageExportUtil {
|| export.equals("UM7_2")
|| export.equals("UM7_3")
) {
String feederStart = "3";
if (!feederInfo.startsWith("3")) {
feederStart = "7";
}
if ("-1".equals(feeder)) {
storageExport.setFeeder(feederStart);
} else {
if ("3".equals(feederStart)) {
storageExport.setFeeder(feederStart);
}
if ("-1".equals(feeder)){
storageExport.setFeeder("3");
}
}
......@@ -337,17 +310,8 @@ public class StorageExportUtil {
|| export.equals("UM8_2")
|| export.equals("UM8_3")
) {
String feederStart = "4";
if (!feederInfo.startsWith("4")) {
feederStart = "8";
}
if ("-1".equals(feeder)) {
storageExport.setFeeder(feederStart);
} else {
if ("4".equals(feederStart)) {
storageExport.setFeeder(feederStart);
}
if ("-1".equals(feeder)){
storageExport.setFeeder("4");
}
}
storageExport.setDetailList(detailList);
......@@ -404,4 +368,42 @@ public class StorageExportUtil {
return null;
}
/**
* 获取当前的出料口feeder
*
* @param exportstr
* @return
*/
public static String getCurrentExportFeeder(String exportstr) {
String newExportStr = exportstr.substring(0, 3);
for (StorageExport export : exportMap.values()) {
if (export.getExportName().startsWith(newExportStr)) {
if (newExportStr.startsWith("UM1") || newExportStr.startsWith("UM5")) {
if (export.getFeeder().startsWith("1")) {
return export.getFeeder();
}
} else if (newExportStr.startsWith("UM2") || newExportStr.startsWith("UM6")) {
if (export.getFeeder().startsWith("2")) {
return export.getFeeder();
}
} else if (newExportStr.startsWith("UM3") || newExportStr.startsWith("UM7")) {
if (export.getFeeder().startsWith("3")) {
return export.getFeeder();
}
} else if (newExportStr.startsWith("UM4") || newExportStr.startsWith("UM8")) {
if (export.getFeeder().startsWith("4")) {
return export.getFeeder();
}
}
}
}
StorageExport storageExport = exportMap.get(exportstr);
if (storageExport == null){
storageExport = new StorageExport();
storageExport.setExportName(exportstr);
}
return storageExport.getFeeder();
}
}
......@@ -396,4 +396,5 @@ smf.barcode.msd.validate=\u8BE5\u7269\u6599\u9700\u8981MSD\u7BA1\u63A7\u4E0D\u80
smfcore.materialBox.differentPn=\u6CBB\u5177\u5BF9\u5E94\u7684\u6599\u53F7\u4E3A{0}\u4E0E\u8F93\u5165\u7684\u7269\u6599\u7F16\u53F7{1}\u4E0D\u540C
smfcore.materialBox.differentPn.continue=\u6CBB\u5177\u5BF9\u5E94\u7684\u6599\u53F7\u4E3A{0}\u4E0E\u8F93\u5165\u7684\u7269\u6599\u7F16\u53F7{1}\u4E0D\u540C,\u662F\u5426\u7EE7\u7EED\u5165\u5E93
smfcore.barcode.checkAmount.error=\u70B9\u6599\u6570\u91CF[{0}]\u5927\u4E8E\u5B9E\u9645\u6CBB\u5177\u6570\u91CF[{1}]
smfcore.order.outLet=\u51FA\u6599\u53E3
\ No newline at end of file
smfcore.order.outLet=\u51FA\u6599\u53E3
smfcore.umConfig=\u51FA\u6599\u53E3\u914D\u7F6E
\ No newline at end of file
......@@ -387,4 +387,5 @@ smf.barcode.msd.validate=This material requires MSD control and cannot be stored
smfcore.materialBox.differentPn=The material number corresponding to the fixture is {0}, which is different from the input material number {1}
smfcore.materialBox.differentPn.continue=The material number corresponding to the fixture is {0}, which differs from the input material number {1}. Do you wish to continue with the inventory process
smfcore.barcode.checkAmount.error=The counted material quantity [{0}] exceeds the actual fixture quantity [{1}]
smfcore.order.outLet=outLet
\ No newline at end of file
smfcore.order.outLet=outLet
smfcore.umConfig=Outlet Configuration
\ No newline at end of file
......@@ -383,4 +383,5 @@ smf.barcode.msd.validate=\u3053\u306E\u6750\u6599\u306FMSD\u7BA1\u7406\u304C\u5F
smfcore.materialBox.differentPn=\u6CBB\u5177\u306B\u5BFE\u5FDC\u3059\u308B\u6750\u6599\u756A\u53F7\u306F{0}\u3067\u3001\u5165\u529B\u3055\u308C\u305F\u6750\u6599\u756A\u53F7{1}\u3068\u7570\u306A\u308A\u307E\u3059
smfcore.materialBox.differentPn.continue=\u6CBB\u5177\u306B\u5BFE\u5FDC\u3059\u308B\u6750\u6599\u756A\u53F7\u306F{0}\u3067\u3001\u5165\u529B\u3055\u308C\u305F\u6750\u6599\u756A\u53F7{1}\u3068\u7570\u306A\u308A\u307E\u3059\u3002\u5728\u5EAB\u767B\u9332\u3092\u7D9A\u884C\u3057\u307E\u3059\u304B
smfcore.barcode.checkAmount.error=\u30AB\u30A6\u30F3\u30C8\u3055\u308C\u305F\u6750\u6599\u6570[{0}]\u306F\u5B9F\u969B\u306E\u6CBB\u5177\u6570[{1}]\u3092\u8D85\u3048\u3066\u3044\u307E\u3059
smfcore.order.outLet=\u306F\u3044\u3057\u3085\u3064\u3053\u3046
\ No newline at end of file
smfcore.order.outLet=\u306F\u3044\u3057\u3085\u3064\u3053\u3046
smfcore.umConfig=\u6392\u51FA\u53E3\u306E\u914D\u7F6E
\ No newline at end of file
......@@ -383,4 +383,5 @@ smf.barcode.msd.validate=\u8BE5\u7269\u6599\u9700\u8981MSD\u7BA1\u63A7\u4E0D\u80
smfcore.materialBox.differentPn=\u6CBB\u5177\u5BF9\u5E94\u7684\u6599\u53F7\u4E3A{0}\u4E0E\u8F93\u5165\u7684\u7269\u6599\u7F16\u53F7{1}\u4E0D\u540C
smfcore.materialBox.differentPn.continue=\u6CBB\u5177\u5BF9\u5E94\u7684\u6599\u53F7\u4E3A{0}\u4E0E\u8F93\u5165\u7684\u7269\u6599\u7F16\u53F7{1}\u4E0D\u540C,\u662F\u5426\u7EE7\u7EED\u5165\u5E93
smfcore.barcode.checkAmount.error=\u70B9\u6599\u6570\u91CF[{0}]\u5927\u4E8E\u5B9E\u9645\u6CBB\u5177\u6570\u91CF[{1}]
smfcore.order.outLet=\u51FA\u6599\u53E3
\ No newline at end of file
smfcore.order.outLet=\u51FA\u6599\u53E3
smfcore.umConfig=\u51FA\u6599\u53E3\u914D\u7F6E
\ No newline at end of file
......@@ -383,4 +383,5 @@ smf.barcode.msd.validate=\u8A72\u7269\u6599\u9700\u9032\u884CMSD\u7BA1\u63A7\uFF
smfcore.materialBox.differentPn=\u6CBB\u5177\u5C0D\u61C9\u7684\u6599\u865F\u70BA{0}\u8207\u8F38\u5165\u7684\u7269\u6599\u7DE8\u865F{1}\u4E0D\u540C
smfcore.materialBox.differentPn.continue=\u6CBB\u5177\u5C0D\u61C9\u7684\u6599\u865F\u70BA{0}\u8207\u8F38\u5165\u7684\u7269\u6599\u7DE8\u865F{1}\u4E0D\u540C\uFF0C\u662F\u5426\u7E7C\u7E8C\u5165\u5EAB
smfcore.barcode.checkAmount.error=\u9EDE\u6599\u6578\u91CF[{0}]\u5927\u65BC\u5BE6\u969B\u6CBB\u5177\u6578\u91CF[{1}]
smfcore.order.outLet=\u51FA\u6599\u53E3
\ No newline at end of file
smfcore.order.outLet=\u51FA\u6599\u53E3
smfcore.umConfig=\u51FA\u6599\u53E3\u914D\u7F6E
\ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!