diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java index 1346340..5af144e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/VehicleTwoServiceImpl.java @@ -443,17 +443,27 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { String vehicleCode2 = whereJson.getString("vehicle_code"); String deviceCode2 = whereJson.getString("point_code"); if (aisleConflictHelper.isSecondFloor(deviceCode2)) { - if(vehicleCode2.startsWith("YNX")) { + if (vehicleCode2.startsWith("YNX")) { Integer recommendedBlock = aisleConflictHelper.getRecommendedBlockForInbound(vehicleCode2); if (recommendedBlock == null) { throw new BadRequestException("当前所有大托盘巷道都有出库任务,无法分配入库货位"); } - } else if(vehicleCode2.startsWith("YNY")) { + } else if (vehicleCode2.startsWith("YNY")) { if (aisleConflictHelper.hasOutboundTask("4")) { throw new BadRequestException("4号巷道有出库任务,无法分配小托盘入库货位"); } } } + //一楼空盘入库,需要判断是否有桁架任务,是否有1楼出库到任务 + else { + if (aisleConflictHelper.hasOneFloorReturnOutboundTask()) { + throw new BadRequestException("1楼退货口有出库任务,无法下发空托盘入库任务"); + } + + if (aisleConflictHelper.hasOneFloorTwoInBoxTrussTask()) { + throw new BadRequestException("1楼退货口有行架任务,无法下发空托盘入库任务"); + } + } // if(!IOSEnum.VEHICLE_TYPE_SCAN_POINT.code(vehicle_type).equals(point_code)){ @@ -514,26 +524,28 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { wmsToAcsService.action(rows); - JSONObject param = new JSONObject(); - param.put("type", "3"); - param.put("container_type", mdPdStorageVehicleInfo.getStoragevehicle_type().substring(mdPdStorageVehicleInfo.getStoragevehicle_type().length() - 1)); - param.put("material_barcode", whereJson.getString("vehicle_code") + "-" + "0"); - param.put("barcode", whereJson.getString("vehicle_code")); + if(aisleConflictHelper.isSecondFloor(point_code)) { - JSONObject jsonParam = new JSONObject(); - jsonParam.put("start_device_code", whereJson.getString("point_code")); - jsonParam.put("next_device_code", "RK2011"); - jsonParam.put("vehicle_code2", mdPdStorageVehicleInfo.getStoragevehicle_code()); - jsonParam.put("vehicle_code", mdPdStorageVehicleInfo.getStoragevehicle_code()); - jsonParam.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - jsonParam.put("task_type", "010713"); - jsonParam.put("request_param", param.toString()); - boxSSXTask.createTask(jsonParam); - boxSSXTask.immediateNotifyAcs(null); + JSONObject param = new JSONObject(); + param.put("type", "3"); + param.put("container_type", mdPdStorageVehicleInfo.getStoragevehicle_type().substring(mdPdStorageVehicleInfo.getStoragevehicle_type().length() - 1)); + param.put("material_barcode", whereJson.getString("vehicle_code") + "-" + "0"); + param.put("barcode", whereJson.getString("vehicle_code")); + + JSONObject jsonParam = new JSONObject(); + jsonParam.put("start_device_code", whereJson.getString("point_code")); + jsonParam.put("next_device_code", "RK2011"); + jsonParam.put("vehicle_code2", mdPdStorageVehicleInfo.getStoragevehicle_code()); + jsonParam.put("vehicle_code", mdPdStorageVehicleInfo.getStoragevehicle_code()); + jsonParam.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + jsonParam.put("task_type", "010713"); + jsonParam.put("request_param", param.toString()); + boxSSXTask.createTask(jsonParam); + boxSSXTask.immediateNotifyAcs(null); - redisUtils.set(whereJson.getString("vehicle_code") + "InVehicleInHeightLevel", height); - + redisUtils.set(whereJson.getString("vehicle_code") + "InVehicleInHeightLevel", height); + } result.put("message", "入库成功!"); return result; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java index 77640a9..87047ba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoInEmpTask.java @@ -113,6 +113,7 @@ public class TwoInEmpTask extends AbstractAcsTask { // 更新仓位 JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); + jsonAttr.put("update_time", DateUtil.now()); jsonAttr.put("storagevehicle_code",jsonTask.getString("vehicle_code")); jsonAttr.put("is_emptyvehicle",IOSEnum.IS_NOTANDYES.code("是")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java index bdd39b4..438b8e8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java @@ -103,6 +103,7 @@ public class TwoOutTask extends AbstractAcsTask { .getResultJSONArray(0).toJavaList(JSONObject.class); Map> likeArr = likeAllArr.stream() + .filter(row -> !aisleConflictHelper.isSecondFloor(row.getString("point_code2"))) .collect(Collectors.groupingBy(row -> row.getString("task_group_id"))); // 判断长度 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index af45ff8..62a4b74 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -1302,7 +1302,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl LARGE_PALLET_AISLES = Arrays.asList("1", "2", "3"); private static final String SMALL_PALLET_AISLE = "4"; @@ -220,6 +224,43 @@ public class AisleConflictHelper { return occupiedAisles; } + /** + * 判断1楼是否有桁架任务 + */ + public boolean hasOneFloorTwoInBoxTrussTask() { + Set pointSet = new HashSet<>(); + pointSet.add("RK1012"); + pointSet.add("RK1005"); + + List tasks = schBaseTaskMapper.selectList( + new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, TWO_IN_BOX_TRUSS_TASK) + .in(SchBaseTask::getPoint_code2, pointSet) + .in(SchBaseTask::getTask_status, TaskStatusEnum.ISSUE.getCode(), TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getIs_delete, "0") + ); + return !tasks.isEmpty(); + } + + /** + * 判断否有出到1楼退货口的任务 + */ + public boolean hasOneFloorReturnOutboundTask() { + Set pointSet = new HashSet<>(); + pointSet.add("RK1012"); + pointSet.add("RK1005"); + pointSet.add("RK1010"); + pointSet.add("RK1003"); + List tasks = schBaseTaskMapper.selectList( + new LambdaQueryWrapper() + .in(SchBaseTask::getHandle_class, OUTBOUND_TASK_CLASSES) + .in(SchBaseTask::getPoint_code2, pointSet) + .in(SchBaseTask::getTask_status, TaskStatusEnum.ISSUE.getCode(), TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getIs_delete, "0") + ); + return !tasks.isEmpty(); + } + /** * 获取大托盘可用的入库巷道列表(排除有出库任务的巷道) * 包含 TwoOutTask 和 TwoOutEmpTask @@ -255,6 +296,9 @@ public class AisleConflictHelper { if (availableAisles == null || availableAisles.isEmpty()) { return null; } + if( availableAisles.size() == 3){ + return AUTO_PALLET; + } int index = new Random().nextInt(availableAisles.size()); return availableAisles.get(index); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index 6ada3ed..b7b078b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -356,15 +356,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { boolean middleNotBlank = StringUtils.isNotBlank(middle_box_no); boolean upNotBlank = StringUtils.isNotBlank(up_box_no); - if (middleNotBlank) { - // 有中条码,上条码必填 - if (!upNotBlank) { - throw new BadRequestException("录入中条码时,上条码不能为空"); - } - } else { - // 中条码为空,上条码必须也为空 - if (upNotBlank) { - throw new BadRequestException("未录入中条码,不允许填写上条码"); + if (upNotBlank) { + // 有上条码,中条码必填 + if (!middleNotBlank) { + throw new BadRequestException("录入上条码时,中条码不能为空"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java index 0edb4fc..14649ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java @@ -409,7 +409,7 @@ public class InBussManageServiceImpl implements InBussManageService { jsonDiv.put("tableMater", disList); jsonDiv.put("checked", true); jsonDiv.put("is_send", IOSEnum.IS_SEND.code("否")); - jsonDiv.put("sect_id", IOSEnum.SECT_ID.code("二期主存区")); + jsonDiv.put("sect_id", IOSEnum.SECT_ID.code("印尼主存区")); jsonDiv.put("stor_id", IOSEnum.STOR_ID.code("印尼仓库")); jsonDiv.put("move_block_num", jsonAttr.getString("block_num")); jsonDiv.put("in_buss", IOSEnum.IS_NOTANDYES.code("是")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java index 580e379..fc21f1e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java @@ -802,7 +802,7 @@ public class StructattrServiceImpl implements StructattrService { JSONObject param = new JSONObject(); param.put("is_used", json.getString("is_used")); - tab.update(param,"sect_id = '"+IOSEnum.SECT_ID.code("二期主存区")+"' AND block_num = '"+json.getString("block_num")+"' AND is_delete = '0'"); + tab.update(param,"sect_id = '"+IOSEnum.SECT_ID.code("印尼主存区")+"' AND block_num = '"+json.getString("block_num")+"' AND is_delete = '0'"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 7fe8af6..fe30deb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -1335,7 +1335,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (recommendedBlock == null) { errorMsg.add("当前所有大托盘巷道都有出库任务,无法分配入库货位"); } - whereJson.put("move_block_num", String.valueOf(recommendedBlock)); + if (recommendedBlock != 0) { + whereJson.put("move_block_num", String.valueOf(recommendedBlock)); + } } else if(vehicleCode.startsWith("YNY")) { if (aisleConflictHelper.hasOutboundTask("4")) { errorMsg.add("4号巷道有出库任务,无法分配小托盘入库货位"); @@ -1394,7 +1396,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (recommendedBlock == null) { throw new BadRequestException("当前所有大托盘巷道都有出库任务,无法分配空托盘入库货位"); } - whereJson.put("move_block_num", String.valueOf(recommendedBlock)); + if (recommendedBlock != 0) { + whereJson.put("move_block_num", String.valueOf(recommendedBlock)); + } } else if(empVehicleCode.startsWith("YNY")) { if (aisleConflictHelper.hasOutboundTask("4")) { throw new BadRequestException("4号巷道有出库任务,无法分配空托盘入库货位"); @@ -1533,7 +1537,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (recommendedBlock == null) { throw new BadRequestException("当前所有大托盘巷道都有出库任务,无法分配入库货位"); } - whereJson.put("move_block_num", String.valueOf(recommendedBlock)); + if (recommendedBlock != 0) { + whereJson.put("move_block_num", String.valueOf(recommendedBlock)); + } } else if(vehicleCode2.startsWith("YNY")) { if (aisleConflictHelper.hasOutboundTask("4")) { throw new BadRequestException("4号巷道有出库任务,无法分配小托盘入库货位"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java index 578052c..b13975a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java @@ -325,7 +325,7 @@ public class ProductInstorServiceImpl implements ProductInstorService { JSONObject param = new JSONObject(); param.put("type", "4"); param.put("container_type", mdPdStorageVehicleInfo.getStoragevehicle_type().substring(mdPdStorageVehicleInfo.getStoragevehicle_type().length() - 1)); - param.put("material_barcode", whereJson.getString("box_no") + "-" + mst_jo.getString("bill_type").replace("0", "")); + param.put("material_barcode", whereJson.getString("box_no")); param.put("barcode", whereJson.getString("vehicle_code")); String vehicleCode2 = whereJson.getString("vehicle_code"); @@ -366,7 +366,7 @@ public class ProductInstorServiceImpl implements ProductInstorService { JSONObject jsonObject2 = new JSONObject(); jsonObject2.put("device_code", whereJson.getString("device_code")); jsonObject2.put("code", "material_barcode"); - jsonObject2.put("value", whereJson.getString("box_no") + "-" + "1"); + jsonObject2.put("value", whereJson.getString("box_no")); jsonObject2.put("product_area", "BLK"); rows.add(jsonObject2); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java index a583896..303da9f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java @@ -58,6 +58,9 @@ public class AcsUtil { throw new BadRequestException("未查询到区域对应的acs地址!"); } String url =acs_url + api; + + log.info("下发ACSURL参数----------------------------------------+" + url + ",---"); + try { JSONArray rows = new JSONArray(); rows.add(jo); @@ -125,6 +128,7 @@ public class AcsUtil { } String url = acs_url + api; + log.info("下发ACSURL参数----------------------------------------+" + url + ",---"); try { String resultMsg = HttpRequest.post(url) .body(String.valueOf(list)) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java index 316891f..e279b90 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java @@ -149,12 +149,6 @@ public abstract class AbstractAcsTask { public JSONObject immediateNotifyAcsList(List taskList) { - try { - Thread.sleep(1000); - } catch (Exception ex) { - - } - //查询正在执行中的任务 List status = Stream.of("05","06") .collect(Collectors.toList()); diff --git a/lms/nladmin-system/src/main/resources/language/i18n/en.js b/lms/nladmin-system/src/main/resources/language/i18n/en.js index d89bf42..310ae40 100644 --- a/lms/nladmin-system/src/main/resources/language/i18n/en.js +++ b/lms/nladmin-system/src/main/resources/language/i18n/en.js @@ -49,6 +49,8 @@ var config = { "mesErrorTitle": "MES Error" }, "common": { + "overdueShipment":"overdueShipment", + "addNewRow":"addNewRow", "sectType": "Warehouse Area Type", "sectCapacity": "Warehouse Area Capacity", "charge_against":"charge against", diff --git a/lms/nladmin-system/src/main/resources/language/i18n/id.js b/lms/nladmin-system/src/main/resources/language/i18n/id.js index 349bf82..85996e8 100644 --- a/lms/nladmin-system/src/main/resources/language/i18n/id.js +++ b/lms/nladmin-system/src/main/resources/language/i18n/id.js @@ -48,6 +48,8 @@ var config = { "load_text5": "Hanya dapat mengunggah satu file excel!" }, "common": { + "overdueShipment":"Apakah pengiriman terlambat", + "addNewRow":"Tambahkan Baris Baru", "sectType": "Tipe Area Gudang", "sectCapacity": "Kapasitas Area Gudang", "charge_against":"Penutupan", diff --git a/lms/nladmin-system/src/main/resources/language/i18n/zh.js b/lms/nladmin-system/src/main/resources/language/i18n/zh.js index c7a842f..a42dc30 100644 --- a/lms/nladmin-system/src/main/resources/language/i18n/zh.js +++ b/lms/nladmin-system/src/main/resources/language/i18n/zh.js @@ -93,6 +93,8 @@ var config = { "correspondingDeepLocationError": "对应的深货位错误!" }, "common": { + "overdueShipment":"是否超期发货('否'为正常库存发货)", + "addNewRow":"添加新行", "sectType": "库区类型", "sectCapacity":"库区容量", "charge_against":"冲销",