From 2426fdc38e22068ba3d5b63936bc1627f933098f Mon Sep 17 00:00:00 2001 From: ls <1793460677@qq.com> Date: Thu, 7 Aug 2025 09:12:23 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=87=BA=E5=BA=93=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/PdmBiSubpackagerelation.java | 3 +- .../PdmBiSubpackagerelationServiceImpl.java | 10 + .../nl/b_lms/sch/point/dao/SchBasePoint.java | 1 - .../nl/b_lms/sch/tasks/TwoOutHeapTask.java | 121 +++--- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 7 +- .../storage_manage/ios/enums/IOSEnum.java | 2 +- .../iostorInv/IStIvtIostorinvOutService.java | 3 + .../impl/StIvtIostorinvOutServiceImpl.java | 411 +++++++++++------- .../impl/StIvtIostorinvServiceImpl.java | 39 +- .../impl/StIvtIostorinvdtlServiceImpl.java | 5 +- .../util/impl/InBoxManageServiceImpl.java | 20 +- .../util/impl/InVehicleManageServiceImpl.java | 14 +- .../util/impl/LashManageServiceImpl.java | 8 +- .../util/impl/OutBoxManageServiceImpl.java | 10 +- .../util/impl/OutBussManageServiceImpl.java | 253 ++++++----- .../impl/OutVehicleManageServiceImpl.java | 8 +- .../util/impl/SendOutManageServiceImpl.java | 14 +- .../util/impl/TwoInBussManageServiceImpl.java | 30 +- .../util/service/OutBussManageService.java | 6 +- .../st/dao/mapper/StIvtStructattrMapper.xml | 48 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 1 - .../outbill/rest/CheckOutBillController.java | 23 +- 22 files changed, 603 insertions(+), 434 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java index 2316ab1..d0b0aa8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java @@ -341,7 +341,8 @@ public class PdmBiSubpackagerelation extends Model { private String weight; - + @TableField(exist = false) + private String plan_qty; /** * 获取主键值 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 49f8191..d8796f2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -422,6 +422,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl { */ private String material_code; - private String num; /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java index 267b808..7e91f31 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; @@ -16,6 +17,8 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.LashManageServiceImpl; +import org.nl.b_lms.storage_manage.md.dao.MdPdStoragevehicleext; +import org.nl.b_lms.storage_manage.md.dao.mapper.MdPdStoragevehicleextMapper; import org.nl.common.utils.RedissonUtils; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -31,6 +34,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -49,7 +53,8 @@ public class TwoOutHeapTask extends AbstractAcsTask { @Autowired private SchBasePointMapper schPointMapper; - + @Autowired + private MdPdStoragevehicleextMapper mdPdStoragevehicleextMapper; private List sendTask(List taskArrAll) { @@ -159,46 +164,51 @@ public class TwoOutHeapTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 + String task_id = taskObj.getString("task_id"); - JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonTask)) { +// JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0); + + + SchBaseTask schBaseTask = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getTask_id,task_id).lt(SchBaseTask::getTask_status, "07")); + + + if (ObjectUtil.isNotEmpty(schBaseTask)) { if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { // 任务为执行之后就不允许取消 - if (jsonTask.getIntValue("task_status") > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { - throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消"); + if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) { + throw new BadRequestException("任务:" + schBaseTask.getTask_code() + "已执行,不可取消"); } - JSONObject param = new JSONObject(); - param.put("is_delete", "1"); - param.put("update_time", DateUtil.now()); - taskTab.update(param, "task_id = '" + task_id + "'"); + schBaseTask.setIs_delete("1"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { - JSONObject param = new JSONObject(); - param.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - param.put("update_time", DateUtil.now()); - taskTab.update(param, "task_id = '" + task_id + "'"); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); + + } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { // 更新任务完成 - JSONObject param = new JSONObject(); - param.put("task_status", TaskStatusEnum.FINISHED.getCode()); - param.put("update_time", DateUtil.now()); - taskTab.update(param, "task_id = '" + task_id + "'"); + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); // 如果是异常出库口则不需要下发行架任务 - if (jsonTask.getString("point_code2").equals(IOSEnum.EXCEP_OUT.code("异常出库口"))) { - WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); - JSONObject ext_jo = veExtTab.query("pcsn = '" + jsonTask.getString("vehicle_code") + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(ext_jo)) { - ext_jo.put("pcsn", ""); - veExtTab.update(ext_jo); + if (schBaseTask.getPoint_code2().equals(IOSEnum.EXCEP_OUT.code("异常出库口"))) { + + + MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new QueryWrapper().eq("storagevehicle_code",schBaseTask.getVehicle_code() )); + if (ObjectUtil.isNotEmpty(mdPdStoragevehicleext)) { + mdPdStoragevehicleext.setPcsn(""); + mdPdStoragevehicleextMapper.updateById(mdPdStoragevehicleext); } } else { // 下发桁架任务:捆扎 JSONObject jsonParam = new JSONObject(); - jsonParam.put("device_code", jsonTask.getString("point_code2")); - jsonParam.put("vehicle_code", jsonTask.getString("vehicle_code")); - jsonParam.put("task_group_id", jsonTask.getString("task_group_id")); + jsonParam.put("device_code", schBaseTask.getPoint_code2()); + jsonParam.put("vehicle_code", schBaseTask.getVehicle_code()); + jsonParam.put("task_group_id", schBaseTask.getTask_group_id()); LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); bean1.createLashTask(jsonParam); } @@ -219,36 +229,41 @@ public class TwoOutHeapTask extends AbstractAcsTask { @Override public String createTask(JSONObject form) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String currentUsername = SecurityUtils.getCurrentUsername(); - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_type", form.getString("task_type")); - json.put("vehicle_code", form.getString("vehicle_code")); - json.put("vehicle_code2", form.getString("vehicle_code2")); - json.put("vehicle_type", form.getString("vehicle_type")); - json.put("task_name", form.getString("task_name")); - json.put("point_code1", form.getString("point_code1")); - json.put("point_code2", form.getString("point_code2")); - json.put("material_id", form.getString("material_id")); - json.put("task_group_id", form.getString("task_group_id")); - json.put("is_auto_issue", form.getString("is_auto_issue")); - json.put("table_fk", form.getString("table_fk")); - json.put("request_param", form.getString("request_param")); - json.put("sort_seq", form.getIntValue("sort_seq")); - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("handle_class", THIS_CLASS); - json.put("create_id", currentUserId); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); - json.put("acs_task_type", "7"); - WQLObject.getWQLObject("SCH_BASE_Task").insert(json); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_type(form.getString("task_type")); + task.setVehicle_code(form.getString("vehicle_code")); + task.setVehicle_code2(form.getString("vehicle_code2")); + task.setVehicle_type(form.getString("vehicle_type")); + task.setTask_name(form.getString("task_name")); + task.setMaterial_id(form.getString("material_id")); + task.setTask_group_id(form.getString("task_group_id")); + task.setIs_auto_issue(form.getString("is_auto_issue")); + task.setTable_fk(form.getString("table_fk")); + task.setRequest_param(form.getString("request_param")); + if (form.getString("sort_seq")!= null) { + BigDecimal decimal = new BigDecimal(form.getString("sort_seq")); + task.setSort_seq(decimal); + } + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code1(form.getString("point_code1")); + task.setPoint_code2(form.getString("point_code2")); + task.setHandle_class(THIS_CLASS); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setCreate_name(SecurityUtils.getCurrentUsername()); + task.setCreate_time(DateUtil.now()); + task.setAcs_task_type("7"); + + + + schBaseTaskMapper.insert(task); + + return task.getTask_id(); - return json.getString("task_id"); } @Override 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 a3de0ad..77011ae 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 @@ -277,8 +277,7 @@ public class TwoOutTask extends AbstractAcsTask { @Override public String createTask(JSONObject form) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String currentUsername = SecurityUtils.getCurrentUsername(); + SchBaseTask task = new SchBaseTask(); task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); @@ -298,8 +297,8 @@ public class TwoOutTask extends AbstractAcsTask { task.setSort_seq(decimal); } task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); - task.setPoint_code1(form.getString("start_device_code")); - task.setPoint_code2(form.getString("next_device_code")); + task.setPoint_code1(form.getString("point_code1")); + task.setPoint_code2(form.getString("point_code2")); task.setHandle_class(this.getClass().getName()); task.setCreate_id(SecurityUtils.getCurrentUserId()); task.setCreate_name(SecurityUtils.getCurrentUsername()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java index 86d891a..fa8f7f8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java @@ -43,7 +43,7 @@ public enum IOSEnum { //出库单据类型 OUT_TYPE(MapOf.of("发货出库", "1001", "改切出库", "1003", "调拨出库", "1004", "拆箱出库", "1005", "返检出库", "1006", "超期报废", "1007", "退货报废", "1008", "质量问题报废", "1010", "其他报废", "1002", - "手工出库", "1009","转单出库", "1020","贴标出库", "1021","管控出库", "1099" + "手工出库", "1009","转单出库", "1020","贴标出库", "1021","管控出库", "1099","换标出库", "1022" )), //移库单据类型 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvOutService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvOutService.java index 4b0c602..30f5b2b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvOutService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvOutService.java @@ -145,4 +145,7 @@ public interface IStIvtIostorinvOutService extends IService { * @return String 任务标识 */ String taskExceptionalOut(JSONObject whereJson); + + + public void createForTask(JSONObject json, JSONObject where) ; } 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 298e2c4..8815fd6 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 @@ -1,5 +1,6 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; @@ -27,6 +28,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask; import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask; import org.nl.b_lms.sch.tasks.TwoOutTask; +import org.nl.b_lms.sch.tasks.slitter.TrussCallAirShaftTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; @@ -58,6 +60,7 @@ import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; import org.nl.wms.basedata.st.service.StorattrService; @@ -149,6 +152,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl arr = taskService.query("handle_class = '" + TwoOutTask.class.getName() + "' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "' and is_delete ='0'") -// .getResultJSONArray(0).toJavaList(JSONObject.class); -// -// if (ObjectUtil.isNotEmpty(arr)) { -// throw new BadRequestException("当前有出库任务正在执行,请稍后在试!"); -// } + Map, List> groupingDisMap = this.basicCheck(whereJson); + + // 所有分配明细集合 + List disTaskMangeList = new ArrayList<>(); + // 需移库集合 + List moveTaskMangeList = new ArrayList<>(); + // 需出库集合 + Map> outTaskMangeMap = new HashMap<>(); + + for (List disLikeList : groupingDisMap.values()) { + // 调用任务生成处理 + JSONObject taskMange = createTaskMange(disLikeList, mstDao.getIostorinv_id().toString()); + moveTaskMangeList.addAll(taskMange.getJSONArray("move").toJavaList(JSONObject.class)); + // TODO -- + outTaskMangeMap.put(IdUtil.getStringId(), taskMange.getJSONArray("out").toJavaList(JSONObject.class)); + disTaskMangeList.addAll(disLikeList); + // TODO -- + // 创建任务 + // createTask(taskMange.getJSONArray("out").toJavaList(JSONObject.class),disLikeList,whereJson.getString("point_code")); + } + + // 下发移库任务 + if (ObjectUtil.isNotEmpty(moveTaskMangeList)) { + outBussManageService.createMove2(moveTaskMangeList); + } + + // TODO -- + // 创建出库任务 + try { + for (List outTaskMangeList : outTaskMangeMap.values()) { + createTask(outTaskMangeList, disTaskMangeList, whereJson.getString("point_code")); + } + } finally { + // 下发出库任务:判断当前单据是否有正在执行的的任务 + List taskList = schBaseTaskMapper.selectList(new LambdaQueryWrapper().eq(SchBaseTask::getTable_fk, mstDao.getIostorinv_id().toString()).eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()).eq(SchBaseTask::getIs_delete, "0")); + + if (CollUtil.isEmpty(taskList)) { +// twoOutTask.immediateNotifyAcs(null); + } + } + + } + + @Transactional + public Map, List> basicCheck(JSONObject whereJson) { + // 任务表 + WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); + // 查询此明细所有未生成的分配明细 List disDaoList = stIvtIostorinvdisMapper.getNotCreateDis(whereJson); @@ -670,6 +724,20 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl arr2 = taskService.query("handle_class = '" + TwoOutTask.class.getName() + "' and task_status < '" + TaskStatusEnum.FINISHED.getCode() + "' and is_delete ='0'") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + Map> taskGroup = arr2.stream() + .collect(Collectors.groupingBy(row -> row.getString("task_group_id"))); + + if (taskGroup.size() >= 3) { + throw new BadRequestException("当前有三种不同规格的木箱正在出库,请稍后在试!"); + } + /* * 下发任务 * 1.根据木箱 长、宽、高、订单号、物料分组 @@ -685,25 +753,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl, List> groupingDisMap = disDaoList.stream().collect(Collectors.groupingBy(compositeKey, Collectors.toList())); - for (List disLikeList : groupingDisMap.values()) { - // 调用任务生成处理 - List taskMangeList = createTaskMange(disLikeList, mstDao.getIostorinv_id().toString()); - - // 创建任务并下发一组任务 - createTask(taskMangeList, disLikeList, whereJson.getString("point_code")); + // 判断是否有异常任务 + String exceptionPointCode = exceptionPointCode(disDaoList); + if (ObjectUtil.isNotEmpty(exceptionPointCode)) { + throw new BadRequestException(exceptionPointCode); } - - // 下发任务:判断当前单据是否有正在执行的的任务 - JSONArray disArr = taskService.query("table_fk = '" + mstDao.getIostorinv_id().toString() + "' and is_delete = '0' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "'") - .getResultJSONArray(0); - - if (ObjectUtil.isEmpty(disArr)) { - TwoOutTask twoOutTask = new TwoOutTask(); - twoOutTask.immediateNotifyAcs(null); - } - + return groupingDisMap; } + @Override public void allSetPoint(JSONObject whereJson) { @@ -825,7 +883,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl 0) { - List tasks = ischBaseTaskService.list(new LambdaQueryWrapper().in(SchBaseTask::getTask_id, taskIds)); + List tasks = ischBaseTaskService.list(new LambdaQueryWrapper().in(SchBaseTask::getTask_id, taskIds).ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())); if (ObjectUtil.isNotEmpty(tasks)) { throw new BadRequestException("有任务未完成,不允许强制确认!"); } @@ -1011,7 +1069,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().eq("task_id", whereJson.getString("task_id")).eq("task_status", TaskStatusEnum.FINISHED.getCode())); + SchBaseTask schBaseTask = schBaseTaskMapper.selectOne(new QueryWrapper().eq("task_id", whereJson.getString("task_id")).ne("task_status", TaskStatusEnum.FINISHED.getCode())); if (schBaseTask == null) { @@ -1165,6 +1223,134 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disLikeList = where.getJSONArray("disLikeList").toJavaList(JSONObject.class); + List taskList = where.getJSONArray("taskList").toJavaList(JSONObject.class); + + // 确定起点 + String start_device_code = json.getString("struct_code"); + + // 确定终点: 根据仓位所在排确定终点 + String end_device_code = ""; + if ("1".equals(flag)) { + end_device_code = IsEndCode2(json); + } else { + end_device_code = IsEndCode(json); + } + + // 过滤此仓位的分配明细 + List disDaoList = disLikeList.stream() + .filter(row -> row.getString("struct_code").equals(json.getString("struct_code"))) + .map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), StIvtIostorinvdis.class)) + .collect(Collectors.toList()); + + // 判断是否是异常货位 + String remark = ""; + if (json.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁"))) { + /* + * 判断异常货位上的任务是否完成 + * 完成:生成完成任务的point_code2 当做起点的任务 + * 未完成:只更新分配明细状态为生成 + */ + JSONObject jsonTask = taskList.stream() + .filter(row -> row.getString("task_id").equals(json.getString("task_code"))) + .collect(Collectors.toList()).get(0); + SchBaseTask javaObject = jsonTask.toJavaObject(SchBaseTask.class); + + // 完成 + if (javaObject.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) { + start_device_code = javaObject.getPoint_code2(); + is_auto_issue = IOSEnum.IS_SEND.code("否"); + remark = "异常货位出库!"; + } else { + // 未完成:只更新分配明细状态不更新任务id + disDaoList.forEach(row -> { + row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); + row.setTask_id(task_group_id); + }); + iStIvtIostorinvdisService.updateBatchById(disDaoList); + + // 标记任务 + javaObject.setIs_auto_issue(IOSEnum.IS_SEND.code("否")); + javaObject.setRemark("下发单据时【异常移库任务】未完成,请等待任务完成自动创建出库任务!"); + javaObject.setCar_no(disDaoList.get(0).getIostorinv_id()); + schBaseTaskMapper.updateById(javaObject); + return; + } + } + + // 查询木箱对应的载具 + JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code")); + if (ObjectUtil.isEmpty(jsonVeExt)) { + throw new BadRequestException("此木箱没有绑定托盘号!" + json.getString("storagevehicle_code")); + } + + + // 生成任务 + JSONObject jsonTaskParam = new JSONObject(); + jsonTaskParam.put("task_type", "010711"); + jsonTaskParam.put("point_code1", start_device_code); + jsonTaskParam.put("point_code2", end_device_code); + jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code")); + jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); + jsonTaskParam.put("containerType", json.getString("storagevehicle_type")); + jsonTaskParam.put("task_group_id", task_group_id); + jsonTaskParam.put("is_auto_issue", is_auto_issue); + jsonTaskParam.put("remark", remark); + JSONObject request_param = new JSONObject(); + BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code")) + ); + request_param.put("containerType", boxDao.getVehicle_type()); + jsonTaskParam.put("request_param", request_param); + jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString()); + + if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅")) || + json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { + jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("浅"))); + } else { + jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("深"))); + } + jsonTaskParam.put("request_param", jsonTaskParam); + + + String task_id = twoOutTask.createTask(jsonTaskParam); + + // 更新分配明细 + SchBasePoint basePointServiceOne = ischBasePointService.getOne(new QueryWrapper().lambda().eq(SchBasePoint::getPoint_code, end_device_code)); + if (ObjectUtil.isEmpty(basePointServiceOne)) { + throw new BadRequestException("出库点位不存在:" + end_device_code); + } + + disDaoList.forEach(row -> { + row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); + row.setTask_id(task_id); + row.setPoint_id(basePointServiceOne.getPoint_id()); + }); + iStIvtIostorinvdisService.updateBatchById(disDaoList); + } + + /** * 创建调拨入库单 * @@ -1256,6 +1442,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl 生成任务的集合 */ - private List createTaskMange(List disLikeList, String iostorinv_id) { + private JSONObject createTaskMange(List disLikeList, String iostorinv_id) { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); @@ -1311,11 +1498,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl taskMangeList, List disLikeList, String point_code) { - // 任务表 - WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); - // 点位表 - WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point"); - // 载具扩展属性表 - WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); + // 查询异常货位任务集合 - String TaskCodeIn = taskMangeList.stream() + List TaskCodeIn = taskMangeList.stream() .filter(row -> row.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁"))) .map(row -> row.getString("task_code")) - .distinct().collect(Collectors.joining("','")); - - List taskList = taskService.query("task_id IN ('" + TaskCodeIn + "') and is_delete = '0'") - .getResultJSONArray(0).toJavaList(JSONObject.class); + .distinct().collect(Collectors.toList()); + List taskList = new ArrayList<>(); + if (!TaskCodeIn.isEmpty()) { + taskList = schBaseTaskMapper.selectList(new QueryWrapper().lambda().in(SchBaseTask::getTask_id, TaskCodeIn).eq(SchBaseTask::getIs_delete, "0")); + } // 任务组标识 String task_group_id = IdUtil.getStringId(); @@ -1683,118 +1871,29 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl disDaoList = disLikeList.stream() - .filter(row -> row.getString("struct_code").equals(json.getString("struct_code"))) - .map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), StIvtIostorinvdis.class)) - .collect(Collectors.toList()); - - // 判断是否是异常货位 - if (json.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁"))) { - /* - * 判断异常货位上的任务是否完成 - * 完成:生成完成任务的point_code2 当做起点的任务 - * 未完成:只更新分配明细状态为生成 - */ - JSONObject jsonTask = taskList.stream() - .filter(row -> row.getString("task_id").equals(json.getString("task_code"))) - .collect(Collectors.toList()).get(0); - - - // 完成 - if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) { - start_device_code = jsonTask.getString("point_code2"); - is_auto_issue = IOSEnum.IS_SEND.code("否"); - } else { - // 未完成:只更新分配明细状态不更新任务id - disDaoList.forEach(row -> { - row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - row.setTask_id(task_group_id); - }); - iStIvtIostorinvdisService.updateBatchById(disDaoList); - - // 标记任务 - jsonTask.put("is_auto_issue", IOSEnum.IS_SEND.code("否")); - taskService.update(jsonTask); - continue; - } - } - - // 查询木箱对应的载具 - JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'") - .uniqueResult(0); - if (ObjectUtil.isEmpty(jsonVeExt)) { - throw new BadRequestException("此木箱没有绑定托盘号!" + json.getString("storagevehicle_code")); - } - - // 生成任务 - JSONObject jsonTaskParam = new JSONObject(); - jsonTaskParam.put("task_type", "010711"); - jsonTaskParam.put("point_code1", start_device_code); - jsonTaskParam.put("point_code2", end_device_code); - jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code")); - jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); - jsonTaskParam.put("containerType", json.getString("storagevehicle_type")); - jsonTaskParam.put("task_group_id", task_group_id); - jsonTaskParam.put("is_auto_issue", is_auto_issue); - JSONObject request_param = new JSONObject(); - BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( - new QueryWrapper().lambda() - .eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code")) - ); - request_param.put("containerType", boxDao.getVehicle_type()); - jsonTaskParam.put("request_param", request_param); - jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString()); - - if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅")) || - json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { - jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("浅"))); - } else { - jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("深"))); - } - jsonTaskParam.put("request_param", jsonTaskParam); - - TwoOutTask twoOutTask = new TwoOutTask(); - String task_id = twoOutTask.createTask(jsonTaskParam); - - // 更新分配明细 - JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonPoint)) { - throw new BadRequestException("出库点位不存在:" + end_device_code); - } - - disDaoList.forEach(row -> { - row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - row.setTask_id(task_id); - row.setPoint_id(jsonPoint.getString("point_id")); - }); - iStIvtIostorinvdisService.updateBatchById(disDaoList); + // TODO --- + JSONObject jsonObject = new JSONObject(); + jsonObject.put("flag", flag); + jsonObject.put("disLikeList", disLikeList); + jsonObject.put("taskList", taskList); + jsonObject.put("is_auto_issue", is_auto_issue); + jsonObject.put("task_group_id", task_group_id); + aopService.createForTask(json, jsonObject); } } /** * 创建任务(通过仓位集合创建) *

出库口:IOSEnum#OUT_POINT/2

- * @see IOSEnum#OUT_POINT2 - * @see IOSEnum#OUT_POINT + * * @param taskMangeList:仓位集合 * @param disLikeList:分配明细集合 * @param point_code : 终点 + * @see IOSEnum#OUT_POINT2 + * @see IOSEnum#OUT_POINT */ private void createTask2(List taskMangeList, List disLikeList, String point_code, Consumer allTransactionConsumer) { // 查询异常货位任务集合 @@ -1966,17 +2065,19 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl structCodeInList = new ArrayList<>(); - for (int i = 0; i < taskList.size(); i++) { - SchBaseTask task = taskList.get(i); - structCodeInList.add(task.getPoint_code1()); - structCodeInList.add(task.getPoint_code2()); - } + if (CollectionUtil.isNotEmpty(taskList)) { + for (int i = 0; i < taskList.size(); i++) { + SchBaseTask task = taskList.get(i); + structCodeInList.add(task.getPoint_code1()); + structCodeInList.add(task.getPoint_code2()); + } - LambdaUpdateWrapper strattLam = new LambdaUpdateWrapper<>(); - strattLam.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) - .set(StIvtStructattr::getTask_code, "") - .in(StIvtStructattr::getStruct_code, structCodeInList); - structattrService.update(strattLam); + LambdaUpdateWrapper strattLam = new LambdaUpdateWrapper<>(); + strattLam.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getTask_code, "") + .in(StIvtStructattr::getStruct_code, structCodeInList); + structattrService.update(strattLam); + } } /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index 4d29bab..dcc1bef 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -340,8 +340,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq("sect_id",jsonObject.getString("sect_id"))); + StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper().eq("sect_id", jsonObject.getString("sect_id"))); // 判断是否是虚拟区 if (stIvtSectattr.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { @@ -368,7 +368,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq("sect_id",stIvtStructattr.getSect_id())); + StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper().eq("sect_id", stIvtStructattr.getSect_id())); if (stIvtSectattr.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) { // 虚拟区:执行状态为完成 work_status = IOSEnum.WORK_STATUS.code("完成"); @@ -437,9 +437,9 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl disList = iStIvtIostorinvdisService.list( - new QueryWrapper().lambda() - .eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id()) - ).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class)) + new QueryWrapper().lambda() + .eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id()) + ).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class)) .collect(Collectors.toList()); jsonSend.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao))); jsonSend.put("tableMater", disList); @@ -591,8 +591,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl mdPbStoragevehicleexts = mdPbStoragevehicleextMapper.selectList(new QueryWrapper() .eq("pcsn", jsonDis.get("storagevehicle_code")) .orderByDesc("UPDATE_TIME")); - if (CollUtil.isEmpty(mdPbStoragevehicleexts)){ - throw new BadRequestException("此木箱没有绑定托盘号!"+whereJson.get("vehicle_code")); + if (CollUtil.isEmpty(mdPbStoragevehicleexts)) { + throw new BadRequestException("此木箱没有绑定托盘号!" + whereJson.get("vehicle_code")); } MdPbStoragevehicleext mdPbStoragevehicleext = mdPbStoragevehicleexts.get(0); // 创建任务 @@ -737,9 +737,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().eq(PdmBiSubpackagerelation::getPackage_box_sn, rows.get(0).getString("package_box_sn"))); // 仓库信息 StorattrDto storattrDto = storattrService.findById((String) whereJson.get("stor_id")); @@ -749,12 +752,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl) whereJson.get("tableData")).size())) .remark(whereJson.get("remark").toString()) .bill_status(whereJson.get("bill_status").toString()) - .total_qty(BigDecimal.valueOf(Double.parseDouble(whereJson.get("total_qty").toString()))) + .total_qty(whereJson.get("total_qty") == null ? null : BigDecimal.valueOf(Double.parseDouble(whereJson.get("total_qty").toString()))) .create_mode(IOSEnum.CREATE_MODE.code("PC产生")) .input_optid(currentUserId) .input_optname(currentNickName) @@ -1072,7 +1075,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl row.getRow_num()) + .map(row ->String.valueOf( row.getRow_num())) .collect(Collectors.joining("','")); jsonParam.put("row_in", "('" + row_in + "')"); @@ -954,7 +954,7 @@ public class InBoxManageServiceImpl implements InBoxManageService { StructattrQuerry jsonRow = rowList.get(i); List box_num = boxAllList.stream() - .filter(row -> row.getRow_num().equals(jsonRow.getRow_num())) + .filter(row ->String.valueOf( row.getRow_num()).equals(jsonRow.getRow_num())) .collect(Collectors.toList()); jsonRow.setBox_num(String.valueOf(box_num.size())); @@ -1051,10 +1051,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { // 获取此货位对应的浅货位 List lowAttr = structAllList.stream() - .filter(row -> row.getCol_num().equals(json.getCol_num()) && - row.getLayer_num().equals(json.getLayer_num()) && - row.getRow_num().equals(json.getRow_num()) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + .filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) && + String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) && + String.valueOf( row.getRow_num()).equals(json.getRow_num()) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { @@ -1080,10 +1080,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { */ // 获取此货位对应的深货位 List darkAttr = structAllList.stream() - .filter(row -> row.getCol_num().equals(json.getCol_num()) && - row.getLayer_num().equals(json.getLayer_num()) && - row.getRow_num().equals(json.getRow_num()) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) + .filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) && + String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) && + String.valueOf( row.getRow_num()).equals(json.getRow_num()) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) { 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 61b39dd..2ccfe57 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 @@ -333,7 +333,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { for (int i = 0; i < vehicleStructRow.size(); i++) { String vehicleStr = vehicleStructRow.get(i); List stIvtStructattrList = boxAllList.stream() - .filter(row -> row.getRow_num().equals(vehicleStr)) + .filter(row ->String.valueOf( row.getRow_num()).equals(vehicleStr)) .collect(Collectors.toList()); StructattrQuerry structattrQuerry = new StructattrQuerry(); structattrQuerry.setBox_num(String.valueOf(stIvtStructattrList.size())); @@ -426,9 +426,9 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { // 获取此货位对应的浅货位 List lowAttr = allVehicleStruct.stream() - .filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) && - row.getLayer_num().equals(stIvtStructattr.getLayer_num()) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + .filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) && + String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .collect(Collectors.toList()); if (CollUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { @@ -454,9 +454,9 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { */ // 获取此货位对应的深货位 List darkAttr = allVehicleStruct.stream() - .filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) && - row.getLayer_num().equals(stIvtStructattr.getLayer_num()) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) + .filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) && + String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java index 0803079..1818d72 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java @@ -294,9 +294,9 @@ public class LashManageServiceImpl implements LashManageService { String bill_type = whereJson.getString("bill_type"); //换标出库或转单出库的rgv任务目的点需要特殊处理 - if (bill_type.equals(IOSEnum.OUT_TYPE.code("转单出库")) || bill_type.equals(IOSEnum.OUT_TYPE.code("换标出库"))) { - next_device_code = IOSEnum.CHANGE_OUT.code("换标出库口"); - } else { +// if (bill_type.equals(IOSEnum.OUT_TYPE.code("转单出库")) || bill_type.equals(IOSEnum.OUT_TYPE.code("换标出库"))) { +// next_device_code = IOSEnum.CHANGE_OUT.code("换标出库口"); +// } else { // 判断是否是启用状态 // List jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'") // .getResultJSONArray(0).toJavaList(JSONObject.class); @@ -319,7 +319,7 @@ public class LashManageServiceImpl implements LashManageService { next_device_code = schBasePoints.get(0).getPoint_code(); } - } +// } // 查询木箱对应的载具 // JSONObject jsonVeExt = extTab.query("pcsn = '" + whereJson.getString("vehicle_code") + "'") 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 0ca8083..647e85d 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 @@ -509,7 +509,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { // 查询某一巷道所有相同规格木箱排的仓位 String row_num_in = allRowList.stream() - .map(row -> row.getRow_num()) + .map(row ->String.valueOf( row.getRow_num())) .collect(Collectors.joining("','")); whereJson.put("flag", "2"); @@ -526,7 +526,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { StructattrQuerry jsonRow = allRowList.get(i); List blockAttrNum = likeAttrList.stream() - .filter(row -> row.getRow_num().equals(jsonRow.getRow_num())) + .filter(row ->String.valueOf( row.getRow_num()).equals(jsonRow.getRow_num())) .collect(Collectors.toList()); jsonRow.setBlock_num(jsonRow.getBlock_num()); @@ -621,9 +621,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { */ // 获取此货位对应的浅货位 List lowAttr = structAllList.stream() - .filter(row -> row.getCol_num().equals(json.getCol_num()) && - row.getLayer_num().equals(json.getLayer_num()) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + .filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) && + String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java index c186281..9caa709 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java @@ -38,6 +38,7 @@ import org.nl.common.utils.IdUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; import org.nl.system.service.param.ISysParamService; import org.nl.wms.pda.mps.eum.RegionTypeEnum; import org.nl.wms.st.inbill.service.StorPublicService; @@ -543,140 +544,32 @@ public class OutBussManageServiceImpl implements OutBussManageService { } @Override - public void createMove2(List list, Consumer allTransactionConsumer) { + public void createMove2(List list) { + // 获取子卷包装集合 List boxs = list.stream() .map(row -> row.getString("storagevehicle_code")) .collect(Collectors.toList()); List subList = subpackagerelationService.getSubInfoByBoxNosToObject(boxs); + // 查询物料集合 List materialCodes = subList.stream() .map(row -> row.getString("product_name")) .collect(Collectors.toList()); List materList = materialbaseService.getMaterialAllByCodes(materialCodes); - + OutBussManageService myService = SpringContextHolder.getBean(OutBussManageService.class); for (int i = 0; i < list.size(); i++) { JSONObject json = list.get(i); - - allTransactionConsumer.accept(json.getString("struct_code")); - - // 生成移库单传入参数 - JSONObject mapParam = new JSONObject(); - // 明细参数 - JSONArray table = new JSONArray(); - - mapParam.put("bill_type", IOSEnum.MOVE_TYPE.code("出库移库")); - mapParam.put("buss_type", IOSEnum.MOVE_TYPE.code("出库移库")); - mapParam.put("bill_status", IOSEnum.MOVE_STATUS.code("提交")); - mapParam.put("biz_date", DateUtil.today()); - mapParam.put("stor_code", json.getString("stor_code")); - mapParam.put("stor_id", json.getString("stor_id")); - mapParam.put("stor_name", json.getString("stor_name")); - mapParam.put("is_task", IOSEnum.IS_NOTANDYES.code("是")); - - // 过滤对应物料 - JSONObject jsonSub = subList.stream() - .filter(row -> row.getString("package_box_sn").equals(json.getString("storagevehicle_code"))) - .collect(Collectors.toList()).get(0); - - JSONObject jsonMater = materList.stream() - .filter(row -> row.getString("material_code").equals(jsonSub.getString("product_name"))) - .collect(Collectors.toList()).get(0); - - // 查询移入货位 - JSONObject moveParam = new JSONObject(); - moveParam.put("stor_id", json.getString("stor_id")); - moveParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); - moveParam.put("box_no", json.getString("storagevehicle_code")); - moveParam.put("material_id", jsonMater.getString("material_id")); - //根据木箱高度,判断入库仓位的高度、 - String height = ""; - String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); - String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); - // 查询木箱信息 - BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( - new QueryWrapper().lambda() - .eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code")) - ); - - String box_high = boxDao.getBox_high(); - if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { - height = "'1','2','3'"; - } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { - height = "'2','3'"; - } else { - height = "'3'"; - } - moveParam.put("height", height); - moveParam.put("vehicle_type", boxDao.getVehicle_type()); - // 移库巷道 - moveParam.put("move_block_num",json.getString("block_num")); - - // TODO JSONObject jsonMove = inBussManageService.getOneStruct(moveParam); - JSONObject jsonMove = twoInBussManageService.getOneStruct(moveParam); - - // 查询移出货位的库存物料 - JSONObject jsonMoveIvt = WQL.getWO("ST_OUTIVT03") - .addParam("flag", "6") - .addParam("struct_id", json.getString("struct_id")) - .process().uniqueResult(0); - - // 移库单明细 - JSONObject jsonMoveDtl = new JSONObject(); - jsonMoveDtl.put("is_task", "2"); - jsonMoveDtl.put("turnout_sect_id", json.getLongValue("sect_id")); - jsonMoveDtl.put("turnout_sect_code", json.getString("sect_code")); - jsonMoveDtl.put("turnout_sect_name", json.getString("sect_name")); - jsonMoveDtl.put("turnout_struct_id", json.getLongValue("struct_id")); - jsonMoveDtl.put("turnout_struct_code", json.getString("struct_code")); - jsonMoveDtl.put("turnout_struct_name", json.getString("struct_name")); - jsonMoveDtl.put("material_id", jsonMoveIvt.getLongValue("material_id")); - jsonMoveDtl.put("pcsn", jsonMoveIvt.getString("pcsn")); - jsonMoveDtl.put("quality_scode", IOSEnum.QUALITY_SCODE.code("合格品")); - jsonMoveDtl.put("qty_unit_id", jsonMoveIvt.getLongValue("qty_unit_id")); - jsonMoveDtl.put("qty_unit_name", jsonMoveIvt.getString("unit_name")); - jsonMoveDtl.put("qty", jsonMoveIvt.getDoubleValue("canuse_qty")); - jsonMoveDtl.put("storagevehicle_code", json.getString("storagevehicle_code")); - jsonMoveDtl.put("turnin_sect_id", jsonMove.getLongValue("sect_id")); - jsonMoveDtl.put("turnin_sect_code", jsonMove.getString("sect_code")); - jsonMoveDtl.put("turnin_sect_name", jsonMove.getString("sect_name")); - jsonMoveDtl.put("turnin_struct_id", jsonMove.getLongValue("struct_id")); - jsonMoveDtl.put("turnin_struct_code", jsonMove.getString("struct_code")); - jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name")); - - // 查询木箱对应的载具 - JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code")); - - if (ObjectUtil.isEmpty(jsonVeExt)) { - throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code")); - } - - // 生成任务 - JSONObject param2 = new JSONObject(); - param2.put("task_type", "010709"); - param2.put("vehicle_code", json.getString("storagevehicle_code")); - param2.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); - param2.put("point_code1", json.getString("struct_code")); - param2.put("point_code2", jsonMove.getString("struct_code")); - - HandMoveStorAcsTask handMoveStorAcsTask = new HandMoveStorAcsTask(); - String move_task_id = handMoveStorAcsTask.createTask(param2); - - // 回显移库明细任务id - jsonMoveDtl.put("task_id", move_task_id); - table.add(jsonMoveDtl); - - mapParam.put("tableData", table); - // 调用移库单新增方法 - handMoveStorService.insertDtl2(mapParam); - - // 下发任务 - handMoveStorAcsTask.immediateNotifyAcs(null); + myService.createForMove(json,subList,materList); } - } + + + + + @Override @Transactional public JSONObject taskExceptional(JSONObject jsonObject) { @@ -705,6 +598,130 @@ public class OutBussManageServiceImpl implements OutBussManageService { return result; } + + /** + * 移库事务处理 + * @param json 移库仓位个体 + * @param subList 子卷包装关系集合 + * @param materList 物料集合 + */ + @Transactional + public void createForMove(JSONObject json, List subList, List materList) { + + // 生成移库单传入参数 + JSONObject mapParam = new JSONObject(); + // 明细参数 + JSONArray table = new JSONArray(); + + mapParam.put("bill_type", IOSEnum.MOVE_TYPE.code("出库移库")); + mapParam.put("buss_type", IOSEnum.MOVE_TYPE.code("出库移库")); + mapParam.put("bill_status", IOSEnum.MOVE_STATUS.code("提交")); + mapParam.put("biz_date", DateUtil.today()); + mapParam.put("stor_code", json.getString("stor_code")); + mapParam.put("stor_id", json.getString("stor_id")); + mapParam.put("stor_name", json.getString("stor_name")); + mapParam.put("is_task", IOSEnum.IS_NOTANDYES.code("是")); + + // 过滤对应物料 + JSONObject jsonSub = subList.stream() + .filter(row -> row.getString("package_box_sn").equals(json.getString("storagevehicle_code"))) + .collect(Collectors.toList()).get(0); + + JSONObject jsonMater = materList.stream() + .filter(row -> row.getString("material_code").equals(jsonSub.getString("product_name"))) + .collect(Collectors.toList()).get(0); + + // 查询移入货位 + JSONObject moveParam = new JSONObject(); + moveParam.put("stor_id", json.getString("stor_id")); + moveParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); + moveParam.put("box_no", json.getString("storagevehicle_code")); + moveParam.put("material_id", jsonMater.getString("material_id")); + //根据木箱高度,判断入库仓位的高度、 + String height = ""; + String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); + String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue(); + // 查询木箱信息 + BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code")) + ); + + String box_high = boxDao.getBox_high(); + if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) { + height = "'1','2','3'"; + } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) { + height = "'2','3'"; + } else { + height = "'3'"; + } + moveParam.put("height", height); + moveParam.put("vehicle_type", boxDao.getVehicle_type()); + // 移库巷道 + moveParam.put("move_block_num",json.getString("block_num")); + + // TODO JSONObject jsonMove = inBussManageService.getOneStruct(moveParam); + JSONObject jsonMove = twoInBussManageService.getOneStruct(moveParam); + + // 查询移出货位的库存物料 + JSONObject jsonMoveIvt = WQL.getWO("ST_OUTIVT03") + .addParam("flag", "6") + .addParam("struct_id", json.getString("struct_id")) + .process().uniqueResult(0); + + // 移库单明细 + JSONObject jsonMoveDtl = new JSONObject(); + jsonMoveDtl.put("is_task", "2"); + jsonMoveDtl.put("turnout_sect_id", json.getLongValue("sect_id")); + jsonMoveDtl.put("turnout_sect_code", json.getString("sect_code")); + jsonMoveDtl.put("turnout_sect_name", json.getString("sect_name")); + jsonMoveDtl.put("turnout_struct_id", json.getLongValue("struct_id")); + jsonMoveDtl.put("turnout_struct_code", json.getString("struct_code")); + jsonMoveDtl.put("turnout_struct_name", json.getString("struct_name")); + jsonMoveDtl.put("material_id", jsonMoveIvt.getLongValue("material_id")); + jsonMoveDtl.put("pcsn", jsonMoveIvt.getString("pcsn")); + jsonMoveDtl.put("quality_scode", IOSEnum.QUALITY_SCODE.code("合格品")); + jsonMoveDtl.put("qty_unit_id", jsonMoveIvt.getLongValue("qty_unit_id")); + jsonMoveDtl.put("qty_unit_name", jsonMoveIvt.getString("unit_name")); + jsonMoveDtl.put("qty", jsonMoveIvt.getDoubleValue("canuse_qty")); + jsonMoveDtl.put("storagevehicle_code", json.getString("storagevehicle_code")); + jsonMoveDtl.put("turnin_sect_id", jsonMove.getLongValue("sect_id")); + jsonMoveDtl.put("turnin_sect_code", jsonMove.getString("sect_code")); + jsonMoveDtl.put("turnin_sect_name", jsonMove.getString("sect_name")); + jsonMoveDtl.put("turnin_struct_id", jsonMove.getLongValue("struct_id")); + jsonMoveDtl.put("turnin_struct_code", jsonMove.getString("struct_code")); + jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name")); + + // 查询木箱对应的载具 + JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code")); + if (ObjectUtil.isEmpty(jsonVeExt)) { + throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code")); + } + + // 生成任务 + JSONObject param2 = new JSONObject(); + param2.put("task_type", "010709"); + param2.put("vehicle_code", json.getString("storagevehicle_code")); + param2.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code")); + param2.put("point_code1", json.getString("struct_code")); + param2.put("point_code2", jsonMove.getString("struct_code")); + + HandMoveStorAcsTask handMoveStorAcsTask = new HandMoveStorAcsTask(); + String move_task_id = handMoveStorAcsTask.createTask(param2); + + // 回显移库明细任务id + jsonMoveDtl.put("task_id", move_task_id); + table.add(jsonMoveDtl); + + mapParam.put("tableData", table); + // 调用移库单新增方法 + handMoveStorService.insertDtl2(mapParam); + + // 下发任务 + handMoveStorAcsTask.immediateNotifyAcs(null); + } + + /** * 异常出库转库任务 * @param jsonObject {task_code : 任务编码} 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 f635a18..6c71a01 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 @@ -428,7 +428,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { String structRow = outVehicleStructRow.get(i); List stIvtStructattrs = boxAllList.stream() - .filter(row -> row.getRow_num().equals(structRow)) + .filter(row ->String.valueOf( row.getRow_num()).equals(structRow)) .collect(Collectors.toList()); StructattrQuerry structattrQuerry = new StructattrQuerry(); structattrQuerry.setRow_num(structRow); @@ -486,9 +486,9 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { */ // 获取此货位对应的浅货位 List lowAttr = allVehicleStruct.stream() - .filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) && - row.getLayer_num().equals(stIvtStructattr.getLayer_num()) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + .filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) && + String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/SendOutManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/SendOutManageServiceImpl.java index e9727d0..d09b890 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/SendOutManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/SendOutManageServiceImpl.java @@ -99,7 +99,7 @@ public class SendOutManageServiceImpl implements SendOutManageService { // 过滤此排的空位 List rowPointList = pointDaoList.stream() - .filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) && + .filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) && ObjectUtil.isEmpty(row.getVehicle_code()) && row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) @@ -122,7 +122,7 @@ public class SendOutManageServiceImpl implements SendOutManageService { // 找出这一排的所有空位 List rowPointList = pointDaoList.stream() - .filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) && + .filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) && ObjectUtil.isEmpty(row.getVehicle_code()) && row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) @@ -176,7 +176,7 @@ public class SendOutManageServiceImpl implements SendOutManageService { // 找出这一排的所有空位 List rowPointList = pointDaoList.stream() - .filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) && + .filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) && ObjectUtil.isEmpty(row.getVehicle_code()) && row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) @@ -259,7 +259,7 @@ public class SendOutManageServiceImpl implements SendOutManageService { // 过滤此排的空位 List rowPointList = pointDaoList.stream() - .filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) && + .filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) && ObjectUtil.isEmpty(row.getVehicle_code()) && row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) @@ -282,7 +282,7 @@ public class SendOutManageServiceImpl implements SendOutManageService { // 找出这一排的所有空位 List rowPointList = pointDaoList.stream() - .filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) && + .filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) && ObjectUtil.isEmpty(row.getVehicle_code()) && row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) @@ -340,7 +340,7 @@ public class SendOutManageServiceImpl implements SendOutManageService { // 找出这一排的所有空位 List rowPointList = pointDaoList.stream() - .filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) && + .filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) && ObjectUtil.isEmpty(row.getVehicle_code()) && row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定")) ) @@ -419,7 +419,7 @@ public class SendOutManageServiceImpl implements SendOutManageService { // 找出这一排所有空位 List rowPointList = pointDaoList.stream() - .filter(row -> row.getRow_num().toString().equals(pointDao.getRow_num().toString()) && + .filter(row ->String.valueOf( row.getRow_num()).toString().equals(pointDao.getRow_num().toString()) && ObjectUtil.isEmpty(row.getVehicle_code()) ) .sorted(Comparator.comparing(SchBasePoint::getIn_order_seq)) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java index a738b85..338265e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/TwoInBussManageServiceImpl.java @@ -255,20 +255,20 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { for (int i = 0; i < stIvtStructattrs.size(); i++) { StIvtStructattr stIvtStructattr = stIvtStructattrs.get(i); // 判断伸位 - if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { + if (String.valueOf(stIvtStructattr.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { // 无需深度 stIvtStructattrReturn = stIvtStructattr; break; - } else if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { + } else if (String.valueOf(stIvtStructattr.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { /* * 深货位:判断浅是否阻挡 */ // 获取此货位对应的浅货位 List lowAttr = allStruct.stream() - .filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) && - row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) && - row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))).collect(Collectors.toList()); + .filter(row ->String.valueOf(row.getCol_num()).equals(String.valueOf(stIvtStructattr.getCol_num())) && + String.valueOf(row.getLayer_num()).equals(String.valueOf(stIvtStructattr.getLayer_num())) && + String.valueOf( row.getRow_num()).equals(String.valueOf(stIvtStructattr.getRow_num())) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))).collect(Collectors.toList()); if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { notInBlockList.clear(); @@ -284,16 +284,16 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { } else { continue; } - } else if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { + } else if (String.valueOf(stIvtStructattr.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { /* * 浅货位:判断深货位是否空洞 */ // 获取此货位对应的深货位 List darkAttr = allStruct.stream() - .filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) && - row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) && - row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))).collect(Collectors.toList()); + .filter(row ->String.valueOf(row.getCol_num()).equals(String.valueOf(stIvtStructattr.getCol_num())) && + String.valueOf(row.getLayer_num()).equals(String.valueOf(stIvtStructattr.getLayer_num())) && + String.valueOf( row.getRow_num()).equals(String.valueOf(stIvtStructattr.getRow_num())) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深"))).collect(Collectors.toList()); if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) { notInBlockList.clear(); @@ -367,10 +367,10 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService { // 找对应的浅货位 StIvtStructattr darkJson = stIvtStructattrs.stream() - .filter(row -> row.getCol_num().equals(json.getCol_num()) && - row.getLayer_num().equals(json.getLayer_num()) && - row.getRow_num().equals(json.getRow_num()) && - row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + .filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) && + String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) && + String.valueOf( row.getRow_num()).equals(json.getRow_num()) && + String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .findFirst().orElse(null); if (ObjectUtil.isEmpty(darkJson)) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBussManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBussManageService.java index ee2d233..686cf31 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBussManageService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/OutBussManageService.java @@ -51,7 +51,7 @@ public interface OutBussManageService { * @return List: 分配明细集合 */ List manualDivIvt(StIvtIostorinvdtl dtlDao, List ivtList); - + /** * 更新库存 @@ -71,7 +71,7 @@ public interface OutBussManageService { * 创建移库单 * @param list 需要创建移库单的仓位 */ - void createMove2(List list, Consumer allTransactionConsumer); + void createMove2(List list); /** * 任务异常处理(1.满入 2.浅货位有货-放货时) @@ -81,4 +81,6 @@ public interface OutBussManageService { * @return point_code: 货位编码 */ JSONObject taskExceptional(JSONObject whereJson); + + void createForMove(JSONObject json, List subList, List materList); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml index 770f249..b09083b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml @@ -56,15 +56,15 @@ - - AND attr.row_num in - - #{row_num} - - + + + + + + - AND attr.block_num == #{param.block_num} + AND attr.block_num = #{param.block_num} AND attr.row_num != #{param.row_num} @@ -90,29 +90,29 @@ AND box.is_packing = '1' - AND mater.material_id == #{param.material_id} + AND mater.material_id = #{param.material_id} - AND sub.customer_name == #{param.customer_name} + AND sub.customer_name = #{param.customer_name} - AND sub.customer_name == #{param.customer_name} + AND sub.customer_name = #{param.customer_name} - AND sub.sale_order_name == #{param.sale_order_name} + AND sub.sale_order_name = #{param.sale_order_name} - AND sub.box_length == #{param.box_length} + AND sub.box_length = #{param.box_length} - AND sub.box_width == #{param.box_width} + AND sub.box_width = #{param.box_width} - AND sub.box_high == #{param.box_high} + AND sub.box_high = #{param.box_high} @@ -156,23 +156,23 @@ - AND attr.block_num == #{param.block_num} + AND attr.block_num = #{param.block_num} - AND sub.product_name == #{param.product_name} + AND sub.product_name = #{param.product_name} - AND sub.sale_order_name == #{param.sale_order_name} + AND sub.sale_order_name = #{param.sale_order_name} - AND sub.box_length == #{param.box_length} + AND sub.box_length = #{param.box_length} - AND sub.box_width == #{param.box_width} + AND sub.box_width = #{param.box_width} - AND sub.box_high == #{param.box_high} + AND sub.box_high = #{param.box_high} order by attr.col_num,attr.layer_num ASC @@ -189,7 +189,7 @@ AND attr.sect_id = #{param.sect_id} - AND attr.block_num == #{param.block_num} + AND attr.block_num = #{param.block_num} @@ -212,7 +212,7 @@ #{height} - AND attr.block_num == #{param.block_num} + AND attr.block_num = #{param.block_num} @@ -247,7 +247,7 @@ #{height} - AND attr.block_num == #{param.block_num} + AND attr.block_num = #{param.block_num} @@ -875,7 +875,7 @@ AND box.material_code = #{param.material_code} - AND box.num = #{输入.num} + AND box.num = #{param.num}