diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java index fe45396c5..8ea7c4852 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/VehicleTwoController.java @@ -46,4 +46,11 @@ public class VehicleTwoController { public ResponseEntity returnIn(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(vehicleTwoService.returnIn(whereJson), HttpStatus.OK); } + + @PostMapping("/reback") + @Log("返检、改切入库") + @SaIgnore + public ResponseEntity reback(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(vehicleTwoService.reback(whereJson), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java index 2819e0e47..92910b437 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/VehicleTwoService.java @@ -41,4 +41,15 @@ public interface VehicleTwoService { * @return :JSONObject:返回前端参数~ */ JSONObject returnIn(JSONObject whereJson); + + /** + * + * @param whereJson { + * box_no: 木箱号 + * vehicle_code: 载具号 + * point_code: 点位 + * } + * @return :JSONObject:返回前端参数~ + */ + JSONObject reback(JSONObject whereJson); } 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 9f882319d..bc19470c2 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 @@ -11,8 +11,10 @@ import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.sch.tasks.TwoInEmpExcepTask; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBoxManageService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InVehicleManageService; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +48,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { @Autowired private IschBasePointService ischBasePointService; + @Autowired + private InBussManageService inBussManageService; + @Override @Transactional(rollbackFor = Exception.class) public JSONObject vehicleIn(JSONObject whereJson) { @@ -77,7 +82,7 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { JSONObject data = device_data.getJSONArray("data").getJSONObject(0); // 判断是否有货 且托盘类型相同、数量小于5 - if (vehicle_type.equals(data.getString("container_type")) && data.getIntValue("qty") < 5 || data.getIntValue("qty") == 0){ + if (vehicle_type.equals(data.getString("container_type")) && data.getIntValue("qty") < 5 || data.getIntValue("qty") == 0) { // 生成入库叠盘机输送任务 JSONObject jsonTaskParam = new JSONObject(); jsonTaskParam.put("task_type", "010715"); @@ -87,6 +92,8 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); JSONObject param = new JSONObject(); param.put("containerType", whereJson.getString("vehicle_type")); + //0表示为空托盘 + param.put("heightLevel", "0"); jsonTaskParam.put("request_param", param.toString()); TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask(); @@ -119,19 +126,20 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { (data2.getString("move").equals(IOSEnum.IS_NOTANDYES.code("是")) && data2.getIntValue("qty") < 5) ) {*/ - // 生层到出库口叠盘机任务 - JSONObject jsonTaskParam = new JSONObject(); - jsonTaskParam.put("task_type", "010714"); - jsonTaskParam.put("start_device_code", point_code); - jsonTaskParam.put("next_device_code", next_device_code); - jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); - jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type")); - JSONObject param = new JSONObject(); - param.put("containerType", whereJson.getString("vehicle_type")); - jsonTaskParam.put("request_param", param.toString()); - TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask(); - taskBean.createTask(jsonTaskParam); - taskBean.immediateNotifyAcs(null); + // 生层到出库口叠盘机任务 + JSONObject jsonTaskParam = new JSONObject(); + jsonTaskParam.put("task_type", "010714"); + jsonTaskParam.put("start_device_code", point_code); + jsonTaskParam.put("next_device_code", next_device_code); + jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); + jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type")); + JSONObject param = new JSONObject(); + param.put("containerType", whereJson.getString("vehicle_type")); + param.put("heightLevel", "0"); + jsonTaskParam.put("request_param", param.toString()); + TwoInEmpExcepTask taskBean = new TwoInEmpExcepTask(); + taskBean.createTask(jsonTaskParam); + taskBean.immediateNotifyAcs(null); /*} else { result.put("message", "入库失败! 出库叠盘位已叠满!" + next_device_code); return result; @@ -158,4 +166,35 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { return result; } + @Override + public JSONObject reback(JSONObject whereJson) { + String bill_type = whereJson.getString("bill_type"); + //1-返检入库;2-改切入库 + if (bill_type.equals("1")){ + whereJson.put("bill_type", IOSEnum.IN_TYPE.code("返检入库")); + }else if (bill_type.equals("2")){ + whereJson.put("bill_type", IOSEnum.IN_TYPE.code("改切入库")); + } + whereJson.put("box_no", whereJson.getString("box_no")); + JSONArray resultJSONArray = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + whereJson.getString("material_barcode") + "' AND status = '0'").getResultJSONArray(0); + if (ObjectUtil.isEmpty(resultJSONArray)) { + throw new BadRequestException("未查询到子卷包装信息!"); + } + String material_barcode = ""; + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject resultObj = resultJSONArray.getJSONObject(i); + if (i==0){ + material_barcode = resultObj.getString("container_name"); + }else { + material_barcode += "," + resultObj.getString("container_name"); + } + } + whereJson.put("material_barcode", material_barcode); + inBussManageService.inTask(whereJson); + + JSONObject result = new JSONObject(); + result.put("message", "入库成功!"); + return result; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java index dbde32b30..5fa8fca87 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java @@ -165,7 +165,7 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask { json.put("create_id", SecurityUtils.getCurrentUserId()); json.put("create_name", SecurityUtils.getCurrentUsername()); json.put("create_time", DateUtil.now()); - json.put("priority", "1"); + json.put("priority", "3"); json.put("acs_task_type", "7"); WQLObject.getWQLObject("SCH_BASE_Task").insert(json); 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 3e2cf25ea..151c74f98 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 @@ -50,6 +50,7 @@ public class TwoInEmpTask extends AbstractAcsTask { .task_type(json.getString("acs_task_type")) .start_device_code(json.getString("point_code1")) .next_device_code(json.getString("point_code2")) + .interaction_json(json.getJSONObject("request_param")) .vehicle_code(json.getString("vehicle_code")) .priority(json.getString("priority")) .class_type(json.getString("task_type")) @@ -165,6 +166,7 @@ public class TwoInEmpTask extends AbstractAcsTask { json.put("point_code1", form.getString("start_device_code")); json.put("point_code2", form.getString("next_device_code")); json.put("handle_class", this.getClass().getName()); + json.put("request_param",form.getString("request_param")); json.put("create_id", SecurityUtils.getCurrentUserId()); json.put("create_name", SecurityUtils.getCurrentUsername()); json.put("create_time", DateUtil.now()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java index 7e7e082ab..1b1f51a79 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxTask.java @@ -91,6 +91,12 @@ public class TwoOutBoxTask extends AbstractAcsTask { jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); jsonAttr.put("storagevehicle_code",""); attrTab.update(jsonAttr); + + + + + + } // 取消 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java index 9694d59a0..e258f040d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/DjqTask.java @@ -167,7 +167,7 @@ public class DjqTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java index 556d6dd8e..b9a81ce8b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/GzqTask.java @@ -159,7 +159,7 @@ public class GzqTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java index c4c0da3ad..cb7be9a16 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/KzjhcwTask.java @@ -176,7 +176,7 @@ public class KzjhcwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java index aa4aed031..8ff13657c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java @@ -1,4 +1,5 @@ package org.nl.b_lms.sch.tasks.first_floor_area; + import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.BooleanUtil; @@ -28,6 +29,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; @@ -72,7 +74,6 @@ public class MzhcwTask extends AbstractAcsTask { private SsxDjwTask ssxDjwTask; - @Override public List addTask() { ArrayList resultList = new ArrayList<>(); @@ -106,7 +107,7 @@ public class MzhcwTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq( SchBaseTask::getTask_id, taskObj.getString("task_id")), false); + SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (schBaseTask == null) { throw new BadRequestException("输送线点位 -> 满轴缓存位更新接口任务号为空!"); } @@ -133,98 +134,100 @@ public class MzhcwTask extends AbstractAcsTask { throw new BadRequestException("找不到子卷信息!"); } //子卷等级 - String level = containerInfo.getLevel(); - if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) { - throw new BadRequestException("非法的子卷等级!"); - } + String level = containerInfo.getLevel() == null ? "1" : containerInfo.getLevel(); + // if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) { + // throw new BadRequestException("非法的子卷等级!"); + // } //查询待检区和管制区库位情况 List bstIvtPackageinfoivtList = packageinfoivtService .list(new LambdaUpdateWrapper() .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); - JSONObject toDjqTask = new JSONObject(); - //获取子卷号 - toDjqTask.put("vehicle_code", containerInfo.getContainer_name()); - // 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务 - if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) { - List djqPointList = bstIvtPackageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status()) - && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(djqPointList)) { - throw new BadRequestException("待检区暂无空余库位!"); - } - toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); - toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); - toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code()); - djqTask.createTask(toDjqTask); - } else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) { - List gkqPointList = bstIvtPackageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status()) - && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(gkqPointList)) { - throw new BadRequestException("管控区暂无空余库位!"); - } - toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区")); - toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); - toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code()); - gzqTask.createTask(toDjqTask); - } + // JSONObject toDjqTask = new JSONObject(); + // //获取子卷号 + // toDjqTask.put("vehicle_code", containerInfo.getContainer_name()); + // // 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务 + // if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) { + // List djqPointList = bstIvtPackageinfoivtList.stream() + // .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status()) + // && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList()); + // if (CollectionUtils.isEmpty(djqPointList)) { + // throw new BadRequestException("待检区暂无空余库位!"); + // } + // toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")); + // toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); + // toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code()); + // djqTask.createTask(toDjqTask); + // } else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) { + // List gkqPointList = bstIvtPackageinfoivtList.stream() + // .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status()) + // && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList()); + // if (CollectionUtils.isEmpty(gkqPointList)) { + // throw new BadRequestException("管控区暂无空余库位!"); + // } + // toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区")); + // toDjqTask.put("point_code1", schBaseTask.getPoint_code2()); + // toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code()); + // gzqTask.createTask(toDjqTask); + // } //4.创建空载具到输送线任务 - List kzjPointList = bstIvtPackageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status()) - && PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList()); - JSONObject toSsxTask = new JSONObject(); - toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); - toSsxTask.put("vehicle_code", containerInfo.getContainer_name()); - //判断空载具缓存位是否有空载具库存,有就叫agv去任一一个位置搬空载具 - if (CollectionUtils.isNotEmpty(kzjPointList)) { - //直接创建搬运空载具任务 - toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code()); - //终点为输送线点位 - toSsxTask.put("point_code2", schBaseTask.getPoint_code1()); - ssxDjwTask.createTask(toSsxTask); - } else { - //空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建 - //没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。 - List packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper() - .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) - .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))); - //todo 查找正在搬运到待检区的任务,假设只有一个 - List taskList = taskService.list(new LambdaUpdateWrapper() - //执行中 - .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) - .and( - r -> r.in(SchBaseTask::getPoint_code2, packageinfoivtList) - )); - //没有正在搬运空载具过来的任务,创建搬运空载具任务 - if (CollectionUtils.isEmpty(taskList)) { - //查询待检区或管制区有空载具的 - List djqOrGzqPointList = packageinfoivtService - .list(new LambdaUpdateWrapper() - .in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区")) - .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); - List djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList()); - //待检区库位有空载具 - if (CollectionUtils.isNotEmpty(djqPointList)) { - List kzjPoint = packageinfoivtList.stream() - .filter(r -> PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())) - .sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)) - .collect(Collectors.toList()); - //创建搬运空载具任务 - JSONObject toKzjhcwTask = new JSONObject(); + if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) { + List kzjPointList = bstIvtPackageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status()) + && PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList()); + JSONObject toSsxTask = new JSONObject(); + toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); + toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")); + toSsxTask.put("vehicle_code", containerInfo.getContainer_name()); + //判断空载具缓存位是否有空载具库存,有就叫桁架去任一一个位置搬空载具 + if (CollectionUtils.isNotEmpty(kzjPointList)) { + //直接创建搬运空载具任务 + toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code()); + //终点为输送线点位 + toSsxTask.put("point_code2", schBaseTask.getPoint_code1()); + ssxDjwTask.createTask(toSsxTask); + } else { + //空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建 + //没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。 + List packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper() + .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位")) + .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))); + //todo 查找正在搬运到待检区的任务,假设只有一个 + List taskList = taskService.list(new LambdaUpdateWrapper() + //执行中 + .eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .and( + r -> r.in(SchBaseTask::getPoint_code2, packageinfoivtList) + )); + //没有正在搬运空载具过来的任务,创建搬运空载具任务 + if (CollectionUtils.isEmpty(taskList)) { + //查询待检区或管制区有空载具的 + List djqOrGzqPointList = packageinfoivtService + .list(new LambdaUpdateWrapper() + .in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区")) + .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + List djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList()); + //待检区库位有空载具 if (CollectionUtils.isNotEmpty(djqPointList)) { - //优先去待检区取空载具 - toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code()); - } else { + List kzjPoint = packageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())) + .sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)) + .collect(Collectors.toList()); + //创建搬运空载具任务 + JSONObject toKzjhcwTask = new JSONObject(); + if (CollectionUtils.isNotEmpty(djqPointList)) { + //优先去待检区取空载具 + toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code()); + } else { - toKzjhcwTask.put("point_code1", djqOrGzqPointList.get(0).getPoint_code()); + toKzjhcwTask.put("point_code1", djqOrGzqPointList.get(0).getPoint_code()); + } + toKzjhcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区->空载具缓存位)")); + //送到到任意空载具缓存位 + toKzjhcwTask.put("point_code2", kzjPoint.get(0).getPoint_code()); + toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name()); + kzjhcwTask.createTask(toKzjhcwTask); } - toKzjhcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区->空载具缓存位)")); - //送到到任意空载具缓存位 - toKzjhcwTask.put("point_code2", kzjPoint.get(0).getPoint_code()); - toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name()); - kzjhcwTask.createTask(toKzjhcwTask); } } } @@ -280,7 +283,7 @@ public class MzhcwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java index af41f8467..a7f4267db 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/SsxDjwTask.java @@ -170,7 +170,7 @@ public class SsxDjwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java index ee9323579..a5cb1a534 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxDjwTask.java @@ -32,6 +32,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -49,7 +50,6 @@ import java.util.stream.Collectors; public class ZxDjwTask extends AbstractAcsTask { - @Resource private DjqTask djqTask; @Resource @@ -202,7 +202,7 @@ public class ZxDjwTask extends AbstractAcsTask { .is_send(isSend ? "1" : "0") .acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type")) .task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status")) - //.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) + .product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area")) .build(); SchBaseTask task = new SchBaseTask(); BeanUtils.copyProperties(schBaseTaskVo, task); 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 4f8f7c7d9..20a69e065 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 @@ -2,6 +2,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -176,11 +177,29 @@ public class InBoxManageServiceImpl implements InBoxManageService { * 插入木箱对应载具表 */ + String box_no = whereJson.getString("box_no"); + String[] split = box_no.split(","); + String boxType = ""; + for (int i = 0; i < split.length; i++) { + String boxNo = split[i]; + BstIvtBoxinfo boxinfo = iBstIvtBoxinfoService.getOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, boxNo)); + if (StrUtil.isEmpty(boxType)) { + boxType = boxinfo.getMaterial_code(); + } else { + if (!boxType.equals(boxinfo.getMaterial_code())) { + throw new BadRequestException("请扫码相同规格的木箱进行堆叠入库!"); + } + } + + } + //查询对应的木箱信息 // 查询木箱信息 BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( new QueryWrapper().lambda() - .eq(BstIvtBoxinfo::getBox_no, whereJson.getString("box_no")) + .eq(BstIvtBoxinfo::getBox_no, split[0]) ); if (boxDao == null) { throw new BadRequestException("木箱不存在!"); @@ -254,6 +273,19 @@ public class InBoxManageServiceImpl implements InBoxManageService { param.put("height", boxDao.getBox_high()); param.put("containerType", boxDao.getVehicle_type()); param.put("barcode", whereJson.getString("box_no")); + //根据木箱高度,判断入库仓位的高度 + String height = ""; + String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); + String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); + String box_high = boxDao.getBox_high(); + if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { + height = "1"; + } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { + height = "2"; + } else { + height = "3"; + } + param.put("heightLevel", height); taskParam.put("request_param", param.toString()); TwoInBoxTrussTask taskBean = new TwoInBoxTrussTask(); taskBean.createTask(taskParam); @@ -323,7 +355,7 @@ public class InBoxManageServiceImpl implements InBoxManageService { @Override @Transactional - public String taskExceptional(JSONObject jsonObject) { + public JSONObject taskExceptional(JSONObject jsonObject) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); @@ -365,7 +397,7 @@ public class InBoxManageServiceImpl implements InBoxManageService { taskDao.setPoint_code2(jsonAttrNow.getString("struct_code")); ischBaseTaskService.updateById(taskDao); - return jsonAttrNow.getString("struct_code"); + return jsonAttrNow; } /** 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 7646ddf70..59b0ed013 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 @@ -281,7 +281,7 @@ public class InBussManageServiceImpl implements InBussManageService { @Override @Transactional - public String taskExceptional(JSONObject jsonObject) { + public JSONObject taskExceptional(JSONObject jsonObject) { /* * 1.锁定原货位 * 2.重新找新货位 @@ -356,7 +356,7 @@ public class InBussManageServiceImpl implements InBussManageService { taskDao.setPoint_code2(disListNow.get(0).getStruct_code()); ischBaseTaskService.updateById(taskDao); - return disListNow.get(0).getStruct_code(); + return JSONObject.parseObject(JSON.toJSONString(disListNow.get(0))); } /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java index 6d894c6f5..02453bebd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java @@ -89,6 +89,10 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { jsonTaskParam.put("next_device_code", jsonAttr.getString("struct_code")); jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code")); jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type")); + JSONObject param = new JSONObject(); + param.put("containerType", whereJson.getString("vehicle_type")); + //0表示为空托盘 + jsonTaskParam.put("request_param", param.toString()); TwoInEmpTask taskBean = new TwoInEmpTask(); taskBean.createTask(jsonTaskParam); @@ -106,7 +110,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { @Override @Transactional - public String taskExceptional(JSONObject jsonObject) { + public JSONObject taskExceptional(JSONObject jsonObject) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); @@ -141,7 +145,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { taskDao.setPoint_code2(jsonAttrNow.getString("struct_code")); ischBaseTaskService.updateById(taskDao); - return jsonAttrNow.getString("struct_code"); + return jsonAttrNow; } /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index a412a10ec..1b840b546 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -116,7 +116,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { @Override @Transactional - public String taskExceptional(JSONObject jsonObject) { + public JSONObject taskExceptional(JSONObject jsonObject) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); @@ -160,7 +160,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code")); ischBaseTaskService.updateById(taskDao); - return jsonAttrNow.getString("struct_code"); + return jsonAttrNow; } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java index 8d54eb6f8..aa41319c8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java @@ -113,7 +113,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { @Override @Transactional - public String taskExceptional(JSONObject jsonObject) { + public JSONObject taskExceptional(JSONObject jsonObject) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); @@ -150,7 +150,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code")); ischBaseTaskService.updateById(taskDao); - return jsonAttrNow.getString("struct_code"); + return jsonAttrNow; } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java index 917dda237..04332288a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBoxManageService.java @@ -44,7 +44,7 @@ public interface InBoxManageService { * } * @return point_code: 货位编码 */ - String taskExceptional(JSONObject jsonObject); + JSONObject taskExceptional(JSONObject jsonObject); void returnIn(JSONObject whereJson); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java index 1cf4e4e6b..332a11f87 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java @@ -60,6 +60,6 @@ public interface InBussManageService { * } * @return point_code: 货位编码 */ - String taskExceptional(JSONObject jsonObject); + JSONObject taskExceptional(JSONObject jsonObject); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InVehicleManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InVehicleManageService.java index aeecee5c6..7abee23f2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InVehicleManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InVehicleManageService.java @@ -29,6 +29,6 @@ public interface InVehicleManageService { * } * @return point_code: 货位编码 */ - String taskExceptional(JSONObject jsonObject); + JSONObject taskExceptional(JSONObject jsonObject); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java index 5befd50d3..fee13efa1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBoxManageService.java @@ -32,7 +32,7 @@ public interface OutBoxManageService { * } * @return point_code: 货位编码 */ - String taskExceptional(JSONObject jsonObject); + JSONObject taskExceptional(JSONObject jsonObject); /** * 任务异常处理(2.浅货位有货-取货时) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutVehicleManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutVehicleManageService.java index 2f6eca134..02fc06466 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutVehicleManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutVehicleManageService.java @@ -28,7 +28,7 @@ public interface OutVehicleManageService { * } * @return point_code: 货位编码 */ - String taskExceptional(JSONObject jsonObject); + JSONObject taskExceptional(JSONObject jsonObject); /** * 任务异常处理(2.浅货位有货-取货时) diff --git a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java index a2acd3a5d..2b7cf7dd3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/common/enums/PackageInfoIvtEnum.java @@ -22,7 +22,7 @@ public enum PackageInfoIvtEnum { //任务类型 TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)", - "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710")), + "010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710","输送线四个点任务", "010711")), //ACS任务类型 ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")), 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 541b62244..3ffdf3e5a 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 @@ -65,6 +65,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; @Service @@ -1738,25 +1739,35 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject result = new JSONObject(); if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) { throw new BadRequestException("接口sendProductToFirstFloor,任务号或子卷号参数为空!"); - } //1.查询满轴缓存位是否有空位 List bstIvtPackageinfoivtList = packageinfoivtService - .list(new LambdaUpdateWrapper() - .eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")) - .eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) - .eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")).orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + .list(new LambdaUpdateWrapper().eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + List mzPointList = bstIvtPackageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位").equals(r.getPoint_status()) + && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList()); JSONObject jo = new JSONObject(); - jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")); jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务")); - //todo 获取子卷号,子卷号就是载具号? jo.put("vehicle_code", whereJson.getString("material_barcode")); //2.创建输送线->满轴位桁架任务, String point_code1 = whereJson.getString("device_code"); jo.put("point_code1", point_code1); - if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) { + if (CollectionUtils.isNotEmpty(mzPointList)) { //任意一个满轴缓存位为终点 - jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code()); + jo.put("point_code2", mzPointList.get(0).getPoint_code()); + List kzjPointList = bstIvtPackageinfoivtList.stream() + .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status()) + && PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList()); + //空载具缓存位有空载具 + if (CollectionUtils.isNotEmpty(kzjPointList)) { + jo.put("point_code3", kzjPointList.get(0).getPoint_code()); + //终点为输送线点位 + jo.put("point_code4", whereJson.getString("device_code")); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")); + } else { + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")); + } jo.put("is_send", true); mzhcwTask.createTask(jo); result.put("status", HttpStatus.OK.value()); @@ -1875,9 +1886,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String material_barcode = ""; for (int i = 0; i < resultJSONArray.size(); i++) { JSONObject resultObj = resultJSONArray.getJSONObject(i); - if (i==0){ + if (i == 0) { material_barcode = resultObj.getString("container_name"); - }else { + } else { material_barcode += "," + resultObj.getString("container_name"); } } @@ -2000,7 +2011,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { .eq(SchBaseTask::getTask_code, whereJson.getString("task_code")) ); - String point_code = ""; + JSONObject point_code = new JSONObject(); // 判断任务类型 if (taskDao.getTask_type().equals(TASKEnum.BOX_TYPE.code("木箱入库"))) { // 木箱入库:满入、浅货位有货-放货时 @@ -2043,7 +2054,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("status", HttpStatus.OK.value()); result.put("message", "下发成功!"); - result.put("point_code", point_code); + result.put("point_code", point_code.getString("struct_code")); + result.put("vehicle_code", point_code.getString("struct_code")); log.info("deviceApplyExceptional返回参数:---------------------------------------------" + result.toString()); return result; } 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 5ab3414f9..db83368d7 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 @@ -50,7 +50,7 @@ public class AcsUtil { throw new BadRequestException("未查询到区域对应的acs地址!"); } //String url =acs_url + api; - String url ="10.1.3.96:8011/"+ api; + String url =acs_url+ api; try { JSONArray rows = new JSONArray(); rows.add(jo);