From 5fbe891da99399ed86ea685ce035092e02b81625 Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Thu, 16 May 2024 17:08:33 +0800 Subject: [PATCH 01/10] =?UTF-8?q?opt:=E4=BF=AE=E6=94=B9=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=9C=A8=E7=AE=B1=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 35 ++++++----- .../impl/StIvtIostorinvServiceImpl.java | 62 ++++++------------- .../util/impl/InBoxManageServiceImpl.java | 19 ++---- .../util/impl/OutBoxManageServiceImpl.java | 5 -- .../nl/wms/sch/manage/AbstractAcsTask.java | 10 +-- 5 files changed, 50 insertions(+), 81 deletions(-) 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 a20733e35..b78ea8f8d 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 @@ -201,27 +201,32 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl 待检区,木箱码不能为空!"); - } - //更新子卷包装关系更新木箱号 - UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); - updateWrapper1.set("package_box_sn", boxSn); - updateWrapper1.in("workorder_id", entityList); - pdmBiSubpackagerelationMapper.update(null, updateWrapper1); + //下发空木箱出库任务 + //outBox(entityList, boxType); + //下发装箱区桁架任务 transferToPacking(packagerelationList); } catch (Exception e) { throw new BadRequestException(e.getMessage()); } } + private void outBox(List entityList, String boxType) { + JSONObject boxInfo = new JSONObject(); + //todo 测试,暂时默认ZXQ_1_1 + boxInfo.put("device_code", "ZXQ_1_1"); + boxInfo.put("material_code", boxType); + boxInfo.put("num", entityList.size()); + String boxSn = outBoxManageService.outBox(boxInfo); + if (StringUtils.isBlank(boxSn)) { + throw new BadRequestException("满轴缓存位 -> 待检区,木箱码不能为空!"); + } + //更新子卷包装关系更新木箱号 + UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); + updateWrapper1.set("package_box_sn", boxSn); + updateWrapper1.in("workorder_id", entityList); + pdmBiSubpackagerelationMapper.update(null, updateWrapper1); + } + private void transferToPacking(List packagerelationList) { //创建子卷搬运到装箱区任务 // List zxqPointList = packageinfoivtService 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 06afd39c0..7eda6538e 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 @@ -263,35 +263,26 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl JSONObject JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(whereJson)); - // 分配明细集合 ArrayList list = (ArrayList) whereJson.get("tableMater"); - // 类型转换:linkenHashMap -> JSONObject JSONObject jsonDis = list.stream() .map(row -> JSONObject.parseObject(JSON.toJSONString(row))) .collect(Collectors.toList()).get(0); - // 判断当前木箱是否已经分配过货位 StIvtIostorinvdis disDao = iStIvtIostorinvdisService.getById(jsonDis.getString("iostorinvdis_id")); - if (ObjectUtil.isNotEmpty(disDao.getStruct_id())) { throw new BadRequestException("该木箱已经分配过货位,无法继续分配!"); } - // 主表实体类 StIvtIostorinv mstDao = this.getById(disDao.getIostorinv_id()); - // 用于锁定货位 JSONObject jsonLock = new JSONObject(); ArrayList paramLockList = new ArrayList<>(); - // 仓位对象 JSONObject jsonAttr; - // 是否自动分配货位 Boolean checked = jsonObject.getBoolean("checked"); if (ObjectUtil.isNotEmpty(checked) && checked) { @@ -301,11 +292,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().lambda() - .eq(BstIvtBoxinfo::getBox_no, disDao.getBox_no()) - ); + BstIvtBoxinfo boxDao = getBstIvtBoxinfo(whereJson); + if (boxDao == null) { + throw new BadRequestException("未找到该木箱信息!"); + } + jsonObject.put("box_no",boxDao.getBox_no()); + jsonObject.put("vehicle_type",boxDao.getVehicle_type()); attrParam.put("vehicle_type", boxDao.getVehicle_type()); //根据木箱高度,判断入库仓位的高度 String height = ""; @@ -320,9 +312,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().lambda() @@ -375,7 +359,6 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl disDaoList = iStIvtIostorinvdisService.list( new QueryWrapper().lambda() @@ -383,52 +366,35 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl().lambda() .eq(StIvtIostorinvdtl::getIostorinv_id, mst.getIostorinv_id()) ).get(0); - List disList = iStIvtIostorinvdisService.list( new QueryWrapper().lambda() .eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id()) ).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class)) .collect(Collectors.toList()); - //查询木箱码 - PdmBiSubpackagerelation pdmBiSubpackagerelation = ipdmBiSubpackagerelationService.getOne(new LambdaQueryWrapper() - .eq(PdmBiSubpackagerelation::getContainer_name, whereJson.get("material_barcode"))); - // 查询木箱信息 - BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( - new QueryWrapper().lambda() - .eq(BstIvtBoxinfo::getBox_no, pdmBiSubpackagerelation.getPackage_box_sn()) - ); - if (boxDao == null) { - throw new BadRequestException("未找到该木箱信息!"); - } - jsonSend.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao))); jsonSend.put("tableMater", disList); jsonSend.put("point_code", jsonObject.getString("point_code")); jsonSend.put("stor_id", mst.getStor_id()); //成品入库托盘类型 - jsonSend.put("vehicle_code", boxDao.getBox_no()); + jsonSend.put("vehicle_code", jsonObject.getString("box_no")); jsonSend.put("vehicle_code2", jsonObject.getString("vehicle_code")); JSONObject param = new JSONObject(); - param.put("containerType", boxDao.getVehicle_type()); + param.put("containerType", jsonObject.getString("vehicle_type")); jsonSend.put("request_param", param.toString()); String task_id1 = this.setPoint(jsonSend); // 下发任务 @@ -438,6 +404,18 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl() + .eq(PdmBiSubpackagerelation::getContainer_name, whereJson.get("material_barcode"))); + // 查询木箱信息 + BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( + new QueryWrapper().lambda() + .eq(BstIvtBoxinfo::getBox_no, pdmBiSubpackagerelation.getPackage_box_sn()) + ); + return boxDao; + } + @Override @Transactional public void unDivStruct(Map whereJson) { 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 b69007cdf..a56f49037 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 @@ -85,14 +85,18 @@ public class InBoxManageServiceImpl implements InBoxManageService { WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point"); // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); - String box_arr = whereJson.getString("box_no"); + + // 查询木箱信息 BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( new QueryWrapper().lambda() .eq(BstIvtBoxinfo::getBox_no, whereJson.getString("box_no")) ); + + + /* * 找一个木箱区的一个仓位,生成任务并下发 */ @@ -101,13 +105,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { IOSEnum.IS_NOTANDYES.code("否") + "' AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "'") .uniqueResult(0); - if (ObjectUtil.isEmpty(jsonPoint)) { throw new BadRequestException("起始点位不存在或未启用!"); }*/ - // 找一个木箱区空位 - //根据木箱高度,判断入库仓位的高度 String height = ""; String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); @@ -120,7 +121,6 @@ public class InBoxManageServiceImpl implements InBoxManageService { } else { height = "3"; } - JSONObject jsonParam = new JSONObject(); jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期")); jsonParam.put("sect_id", RegionTypeEnum.TWO_MX01.getId()); @@ -129,17 +129,12 @@ public class InBoxManageServiceImpl implements InBoxManageService { jsonParam.put("box_high", boxDao.getBox_high()); jsonParam.put("vehicle_type", boxDao.getVehicle_type()); jsonParam.put("height", height); - - - JSONObject jsonAttr = getStruct(jsonParam); - if (ObjectUtil.isEmpty(jsonAttr)) { notInRowList.clear(); notInBlockList.clear(); throw new BadRequestException("仓位不足!"); } - // 生成任务 JSONObject jsonTaskParam = new JSONObject(); jsonTaskParam.put("task_type", "010702"); @@ -150,16 +145,12 @@ public class InBoxManageServiceImpl implements InBoxManageService { JSONObject param = new JSONObject(); param.put("containerType", boxDao.getVehicle_type()); jsonTaskParam.put("request_param", param.toString()); - TwoInBoxTask taskBean = new TwoInBoxTask(); taskBean.createTask(jsonTaskParam); - taskBean.immediateNotifyAcs(null); - // 锁定终点 jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("木箱入库锁")); attrTab.update(jsonAttr); - // 清空缓存 notInRowList.clear(); notInBlockList.clear(); 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 f3389bb2e..c77a52348 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 @@ -71,7 +71,6 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point"); // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); - whereJson.put("stor_id", IOSEnum.STOR_ID.code("二期")); whereJson.put("sect_id", RegionTypeEnum.TWO_MX01.getId()); @@ -103,19 +102,15 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { JSONObject request_param = new JSONObject(); request_param.put("containerType", jsonAttr.getString("storagevehicle_type")); jsonTaskParam.put("request_param", request_param.toString()); - TwoOutBoxTask taskBean = new TwoOutBoxTask(); taskBean.createTask(jsonTaskParam); taskBean.immediateNotifyAcs(null); - // 锁定起点 jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("木箱出库锁")); attrTab.update(jsonAttr); - // 清空缓存 notOutRowList.clear(); notOutBlockList.clear(); - return jsonAttr.getString("storagevehicle_code"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java index 4067a94d0..858d977a4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java @@ -108,11 +108,11 @@ public abstract class AbstractAcsTask { * */ public JSONObject immediateNotifyAcs(String task_id) { - List taskList = this.schedule(); - if (ObjectUtil.isNotEmpty(taskList)) { - JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList)); - return AcsUtil.notifyAcs("api/wms/task", arr); - } + // List taskList = this.schedule(); + // if (ObjectUtil.isNotEmpty(taskList)) { + // JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList)); + // return AcsUtil.notifyAcs("api/wms/task", arr); + // } return null; } From 96515306bd85cf97b931ee02fdc39fe17ed9fda8 Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Thu, 16 May 2024 17:09:19 +0800 Subject: [PATCH 02/10] =?UTF-8?q?opt:=E4=BF=AE=E6=94=B9=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=9C=A8=E7=AE=B1=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/sch/manage/AbstractAcsTask.java | 10 +++++----- .../src/views/wms/pdm/sub/DivDialog.vue | 4 ++-- .../src/views/wms/pdm/sub/index.vue | 20 ++----------------- 3 files changed, 9 insertions(+), 25 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java index 858d977a4..f157990bb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java @@ -108,11 +108,11 @@ public abstract class AbstractAcsTask { * */ public JSONObject immediateNotifyAcs(String task_id) { - // List taskList = this.schedule(); - // if (ObjectUtil.isNotEmpty(taskList)) { - // JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList)); - // return AcsUtil.notifyAcs("api/wms/task", arr); - // } + List taskList = this.schedule(); + if (ObjectUtil.isNotEmpty(taskList)) { + JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList)); + return AcsUtil.notifyAcs("api/wms/task", arr); + } return null; } diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue index 8a387f865..b2ba6116e 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue @@ -326,19 +326,19 @@ export default { row.index = rowIndex }, tableChanged(row) { + debugger this.form.tableMater = this.currentSelection this.form.checked = row.material_code - debugger this.form.sale_order_name = this.sale_order_name crudPackagerelation.updateEntityList(this.form).then(res => { crudSubpackagerelation.queryContainerization({ 'sale_order_name': this.sale_order_name }).then(res => { this.openParam = res.content - this.$emit('childEvent') this.clearSelection() }) this.form.tableMater = [] this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) }) + this.$emit('childEvent') }, divStruct() { if (this.currentSelection.length > 0 && this.$refs.dis_table.selection.length > 0) { diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue index d4024f063..c807ab953 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue @@ -66,7 +66,7 @@ :disabled="dis_flag" icon="el-icon-position" size="mini" - @click="divOpen1" + @click="divOpen" > 分配 @@ -85,7 +85,6 @@ size="mini" @select="handleSelectionChange" @selection-change="crud.selectionChangeHandler" - @row-dblclick="handleRowDblClick" > { - debugger - this.openParam = res.content - this.divShow = true - }) - }, - divOpen1() { + divOpen() { debugger this.sale_order_name = this.currentRow.sale_order_name crudSubpackagerelation.queryContainerization({ 'sale_order_name': this.currentRow.sale_order_name }).then(res => { From 624e3ac2c966919b90e443ffa67fbabe30311bb3 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 16 May 2024 18:57:33 +0800 Subject: [PATCH 03/10] =?UTF-8?q?rev:=20=E4=BB=93=E4=BD=8D=E4=B8=8D?= =?UTF-8?q?=E5=8C=BA=E5=88=86=E5=BA=93=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/b_lms/sch/tasks/TwoInEmpTask.java | 2 ++ .../org/nl/b_lms/sch/tasks/TwoOutEmpTask.java | 1 + .../database/service/dao/BstIvtBoxinfo.java | 5 +++++ .../impl/StIvtIostorinvOutServiceImpl.java | 2 +- .../util/impl/InBoxManageServiceImpl.java | 11 +++++++++-- .../util/impl/InBussManageServiceImpl.java | 7 +++++++ .../util/impl/InVehicleManageServiceImpl.java | 10 ++++++++-- .../util/impl/OutBoxManageServiceImpl.java | 6 +++--- .../util/impl/OutBussManageServiceImpl.java | 2 +- .../util/impl/OutVehicleManageServiceImpl.java | 4 ++-- .../ios/service/iostorInv/util/wql/BST_INBOX.wql | 14 +++++++++++++- .../service/iostorInv/util/wql/BST_INRULE.wql | 16 +++++++++++++++- .../service/iostorInv/util/wql/BST_INVEHICLE.wql | 12 +++++++++++- .../service/iostorInv/util/wql/BST_OUTBOX.wql | 5 +++++ .../iostorInv/util/wql/BST_OUTVEHICLE.wql | 4 ++++ .../org/nl/wms/pda/mps/eum/RegionTypeEnum.java | 1 + .../st/outbill/rest/CheckOutBillController.java | 1 + 17 files changed, 89 insertions(+), 14 deletions(-) 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 a6c69d6b9..3e2cf25ea 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 @@ -93,6 +93,8 @@ public class TwoInEmpTask extends AbstractAcsTask { jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); jsonAttr.put("storagevehicle_code",jsonTask.getString("vehicle_code")); jsonAttr.put("storagevehicle_type",jsonTask.getString("vehicle_type")); + jsonAttr.put("is_emptyvehicle",IOSEnum.IS_NOTANDYES.code("是")); + attrTab.update(jsonAttr); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java index d0a034288..05197bbc2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java @@ -90,6 +90,7 @@ public class TwoOutEmpTask extends AbstractAcsTask { JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); jsonAttr.put("storagevehicle_code",""); + jsonAttr.put("is_emptyvehicle",IOSEnum.IS_NOTANDYES.code("否")); attrTab.update(jsonAttr); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java index 967ee0fb5..4bd35507a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java @@ -72,6 +72,11 @@ public class BstIvtBoxinfo implements Serializable { */ private String vehicle_type; + /* + * 是否装箱 + */ + private String is_packing; + /* * 捆绑数量 */ 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 b0a715a10..1d620704f 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 @@ -1101,7 +1101,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl '' AND attr.storagevehicle_type = 输入.vehicle_type AND attr.height = 输入.height + AND box.is_packing = '0' + OPTION 输入.block_in <> "" attr.block_num in 输入.block_in ENDOPTION @@ -157,9 +160,18 @@ IF 输入.flag = "5" QUERY SELECT - attr.* + attr.*, + CASE + WHEN IFNULL(box.is_packing,'') = '' THEN '0' + ELSE box.is_packing + END AS is_packing, + CASE + WHEN IFNULL(attr.is_emptyvehicle,'') = '' THEN '0' + ELSE attr.is_emptyvehicle + END AS is_vehicle FROM st_ivt_structattr attr + LEFT JOIN bst_ivt_boxinfo box ON box.box_no = attr.storagevehicle_code WHERE attr.is_used = '1' AND attr.is_delete = '0' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INRULE.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INRULE.wql index 2835e7e44..91ed921bb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INRULE.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INRULE.wql @@ -86,12 +86,14 @@ attr.* FROM st_ivt_structattr attr + INNER JOIN bst_ivt_boxinfo box ON box.box_no = attr.storagevehicle_code WHERE attr.is_used = '1' AND attr.is_delete = '0' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id AND IFNULL(attr.storagevehicle_code,'') <> '' + AND box.is_packing = '1' OPTION 输入.block_in <> "" attr.block_num in 输入.block_in @@ -120,6 +122,7 @@ FROM st_ivt_structattr attr INNER JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + INNER JOIN bst_ivt_boxinfo box ON box.box_no = attr.storagevehicle_code LEFT JOIN md_me_materialbase mater ON mater.material_code = sub.product_name WHERE attr.is_used = '1' @@ -127,6 +130,7 @@ AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id AND IFNULL(attr.storagevehicle_code,'') <> '' + AND box.is_packing = '1' OPTION 输入.material_id <> "" mater.material_id = 输入.material_id @@ -227,9 +231,19 @@ IF 输入.flag = "6" QUERY SELECT - attr.* + attr.*, + CASE + WHEN IFNULL(box.is_packing,'') = '' THEN '0' + ELSE box.is_packing + END AS is_packing, + CASE + WHEN IFNULL(attr.is_emptyvehicle,'') = '' THEN '0' + ELSE attr.is_emptyvehicle + END AS is_vehicle + FROM st_ivt_structattr attr + LEFT JOIN bst_ivt_boxinfo box ON box.box_no = attr.storagevehicle_code WHERE attr.is_used = '1' AND attr.is_delete = '0' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INVEHICLE.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INVEHICLE.wql index c603aa489..360c30014 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INVEHICLE.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_INVEHICLE.wql @@ -89,6 +89,7 @@ AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id AND IFNULL(attr.storagevehicle_code,'') <> '' + AND attr.is_emptyvehicle = '1' OPTION 输入.block_in <> "" attr.block_num in 输入.block_in @@ -157,9 +158,18 @@ IF 输入.flag = "5" QUERY SELECT - attr.* + attr.*, + CASE + WHEN IFNULL(box.is_packing,'') = '' THEN '0' + ELSE box.is_packing + END AS is_packing, + CASE + WHEN IFNULL(attr.is_emptyvehicle,'') = '' THEN '0' + ELSE attr.is_emptyvehicle + END AS is_vehicle FROM st_ivt_structattr attr + LEFT JOIN bst_ivt_boxinfo box ON box.box_no = attr.storagevehicle_code WHERE attr.is_used = '1' AND attr.is_delete = '0' diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTBOX.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTBOX.wql index 48f2daf4e..e601728aa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTBOX.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTBOX.wql @@ -66,6 +66,7 @@ AND IFNULL(attr.storagevehicle_code,'') <> '' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id + AND box.is_packing = '0' OPTION 输入.not_block_id <> "" attr.block_num not in = 输入.not_block_id @@ -121,6 +122,7 @@ AND IFNULL(attr.storagevehicle_code,'') <> '' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id + AND box.is_packing = '0' OPTION 输入.block_num <> "" attr.block_num = 输入.block_num @@ -172,6 +174,7 @@ AND IFNULL(attr.storagevehicle_code,'') <> '' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id + AND box.is_packing = '0' OPTION 输入.block_num <> "" attr.block_num = 输入.block_num @@ -223,6 +226,7 @@ AND IFNULL(attr.storagevehicle_code,'') <> '' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id + AND box.is_packing = '0' OPTION 输入.block_num <> "" attr.block_num = 输入.block_num @@ -296,6 +300,7 @@ AND IFNULL(storagevehicle_code,'') <> '' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id + AND box.is_packing = '0' OPTION 输入.box_length <> "" box.box_length = 输入.box_length diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTVEHICLE.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTVEHICLE.wql index 9dbab0059..9efe41774 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTVEHICLE.wql +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/wql/BST_OUTVEHICLE.wql @@ -57,6 +57,7 @@ AND attr.is_delete = '0' AND attr.lock_type = '1' AND IFNULL(attr.storagevehicle_code,'') <> '' + AND attr.is_emptyvehicle = '1' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id @@ -86,6 +87,7 @@ AND attr.is_delete = '0' AND attr.lock_type = '1' AND IFNULL(attr.storagevehicle_code,'') <> '' + AND attr.is_emptyvehicle = '1' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id @@ -120,6 +122,7 @@ AND attr.is_delete = '0' AND attr.lock_type = '1' AND IFNULL(attr.storagevehicle_code,'') <> '' + AND attr.is_emptyvehicle = '1' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id @@ -152,6 +155,7 @@ attr.is_used = '1' AND attr.is_delete = '0' AND attr.lock_type = '1' + AND attr.is_emptyvehicle = '1' AND IFNULL(attr.storagevehicle_code,'') <> '' AND attr.stor_id = 输入.stor_id AND attr.sect_id = 输入.sect_id diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/eum/RegionTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/eum/RegionTypeEnum.java index 2a63c2346..f69817912 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/eum/RegionTypeEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/eum/RegionTypeEnum.java @@ -26,6 +26,7 @@ public enum RegionTypeEnum { TWO_KZ01("23", "二期捆扎区", "1754774130626007040"), TWO_FH01("24", "二期发货区", "1759453285649092608"), TWO_OUT01("25", "二期出库区", "1760141408548818944"), + TWO_BZC01("26", "二期主存区", "1748219897940414464"), B2_HKZC("26", "B2烘烤暂存区", "1766012860535803904"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index a99c71e1f..48d752f43 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -391,6 +391,7 @@ public class CheckOutBillController { @PostMapping("/testInBox") @Log("木箱入库测试") + @SaIgnore public ResponseEntity testInBox(@RequestBody JSONObject whereJson) { InBoxManageServiceImpl bean = SpringContextHolder.getBean(InBoxManageServiceImpl.class); bean.inBox(whereJson); From 0880386c3dea2fbc914f48a0a391d453b4efaf33 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 16 May 2024 18:58:22 +0800 Subject: [PATCH 04/10] =?UTF-8?q?rev:=20=E4=BB=A3=E7=A0=81=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/iostorInv/util/impl/OutVehicleManageServiceImpl.java | 1 + 1 file changed, 1 insertion(+) 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 13d60b97b..8d54eb6f8 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 @@ -139,6 +139,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { if (ObjectUtil.isEmpty(jsonAttrNow)) { throw new BadRequestException("仓位不足!"); } + // 锁定新终点 jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("空托盘出库锁")); From 58d0dfa2790115d63c936b1aadcb02a887b73ec2 Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Fri, 17 May 2024 10:28:18 +0800 Subject: [PATCH 05/10] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E5=AD=90=E5=8D=B7?= =?UTF-8?q?=E5=8C=85=E8=A3=85=E7=95=8C=E9=9D=A2=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 1 + .../src/views/wms/pdm/sub/DivDialog.vue | 40 ++++++++++--------- .../src/views/wms/pdm/sub/index.vue | 21 ++++++++-- 3 files changed, 40 insertions(+), 22 deletions(-) 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 b78ea8f8d..d010a4c39 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 @@ -199,6 +199,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl { return this.$refs.dis_table.selection.includes(i) }) + this.multipleSelection = this.multipleSelection.filter(i => { + return this.$refs.dis_table.selection.includes(i) + }) this.currentSelection = [...this.$refs.dis_table.selection] }, handleSelectionChange(selection) { @@ -256,17 +260,16 @@ export default { this.clearSearch1() }, table2RowStyle({ row }) { - // if(this.cancelSelection.includes(row)) - // { - // return {background: 'white'}; // 修改颜色 - // } if (this.currentSelection.includes(row)) { - return { background: 'orange' } // 修改颜色 + if (row.box_group !== '0') { + return { background: 'orange' } // 修改颜色 + } } if (this.multipleSelection.includes(row)) { - return { background: 'orange' } // 修改颜色 + if (row.box_group !== '0') { + return { background: 'orange' } // 修改颜色 + } } - return {} }, getMultipleSelection(multipleSelection) { return multipleSelection.reduce((acc, item) => { @@ -295,10 +298,11 @@ export default { }, // 表格1的行点击事件 handleRowClick(scope) { + debugger const table2 = this.$refs.dis_table const table2Data = Array.from(this.openParam) - const groupValue = scope.box_group === 0 ? scope.container_name : scope.box_group - const selectedRows = table2Data.filter(row => row.box_group === groupValue && row.box_group !== null && row.box_group !== 0) + const groupValue = scope.box_group === '0' ? scope.container_name : scope.box_group + const selectedRows = table2Data.filter(row => (row.container_name == groupValue) || (row.box_group === groupValue && row.box_group !== null && row.box_group !== '0')) table2.clearSelection() selectedRows.forEach(row => table2.toggleRowSelection(row)) }, @@ -325,19 +329,17 @@ export default { tableRowClassName({ row, rowIndex }) { row.index = rowIndex }, - tableChanged(row) { + async tableChanged(row) { debugger this.form.tableMater = this.currentSelection this.form.checked = row.material_code this.form.sale_order_name = this.sale_order_name - crudPackagerelation.updateEntityList(this.form).then(res => { - crudSubpackagerelation.queryContainerization({ 'sale_order_name': this.sale_order_name }).then(res => { - this.openParam = res.content - this.clearSelection() - }) - this.form.tableMater = [] - this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) - }) + await crudPackagerelation.updateEntityList(this.form) + const res = crudSubpackagerelation.queryContainerization({ 'sale_order_name': this.sale_order_name }) + this.openParam = res.content + this.clearSelection() + this.form.tableMater = [] + this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.$emit('childEvent') }, divStruct() { diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue index c807ab953..bd5e38549 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue @@ -66,7 +66,7 @@ :disabled="dis_flag" icon="el-icon-position" size="mini" - @click="divOpen" + @click="divOpen1" > 分配 @@ -124,7 +124,13 @@ - + @@ -217,7 +223,14 @@ export default { this.query.status = tab.name === 'first' ? '99' : '0' this.crud.toQuery() }, - divOpen() { + async divOpen() { + debugger + this.sale_order_name = this.currentRow.sale_order_name + const res = await crudSubpackagerelation.queryContainerization({ 'sale_order_name': this.currentRow.sale_order_name }) + this.openParam = res.content + // this.divShow = true + }, + divOpen1() { debugger this.sale_order_name = this.currentRow.sale_order_name crudSubpackagerelation.queryContainerization({ 'sale_order_name': this.currentRow.sale_order_name }).then(res => { @@ -282,9 +295,11 @@ export default { .custom-tabs { margin-bottom: 0px; /* 调整垂直间距,根据需要调整数值 */ } + .custom-table { margin-top: 0px; /* 调整垂直间距,根据需要调整数值 */ } + .tableAuto.el-table .cell { white-space: nowrap; } From 6746f0a0887f7d2d2db011284aad6547e3e8ec6a Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 17 May 2024 17:02:43 +0800 Subject: [PATCH 06/10] =?UTF-8?q?fix:=E5=85=A5=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/VehicleTwoController.java | 7 +++ .../b_lms/pda/service/VehicleTwoService.java | 11 ++++ .../service/impl/VehicleTwoServiceImpl.java | 9 +++ .../org/nl/b_lms/sch/tasks/TwoLashTask.java | 4 +- .../org/nl/b_lms/sch/tasks/TwoOutTask.java | 4 +- .../storage_manage/ios/enums/IOSEnum.java | 4 +- .../impl/StIvtIostorinvOutServiceImpl.java | 13 ++++ .../util/impl/InBoxManageServiceImpl.java | 61 +++++++++++++++++++ .../util/impl/InBussManageServiceImpl.java | 2 +- .../util/impl/LashManageServiceImpl.java | 10 +-- .../util/service/InBoxManageService.java | 2 + .../acs/service/impl/AcsToWmsServiceImpl.java | 8 ++- .../src/views/wms/st/outbill/DivDialog.vue | 3 +- 13 files changed, 122 insertions(+), 16 deletions(-) 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 4a0b90faa..fe45396c5 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 @@ -39,4 +39,11 @@ public class VehicleTwoController { public ResponseEntity boxIn(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(vehicleTwoService.boxIn(whereJson), HttpStatus.OK); } + + @PostMapping("/returnIn") + @Log("退货入库") + @SaIgnore + public ResponseEntity returnIn(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(vehicleTwoService.returnIn(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 7ddb87982..2819e0e47 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 @@ -30,4 +30,15 @@ public interface VehicleTwoService { * @return :JSONObject:返回前端参数~ */ JSONObject boxIn(JSONObject whereJson); + + /** + * + * @param whereJson { + * box_no: 木箱号 + * vehicle_code: 载具号 + * point_code: 点位 + * } + * @return :JSONObject:返回前端参数~ + */ + JSONObject returnIn(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 9967f72cd..9f882319d 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 @@ -149,4 +149,13 @@ public class VehicleTwoServiceImpl implements VehicleTwoService { return result; } + @Override + public JSONObject returnIn(JSONObject whereJson) { + // 调用接口 + inBoxManageService.returnIn(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/TwoLashTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java index fcc0ab6d1..45ba4fedd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoLashTask.java @@ -85,7 +85,7 @@ public class TwoLashTask extends AbstractAcsTask { interaction_json.put("length",dao.get(0).getBox_length()); interaction_json.put("weight",dao.get(0).getBox_width()); interaction_json.put("height",dao.get(0).getBox_high()); - interaction_json.put("template",dao.get(0).getBox_high()); + interaction_json.put("template","2"); interaction_json.put("bindingTimes","1"); char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); @@ -214,7 +214,7 @@ public class TwoLashTask extends AbstractAcsTask { json.put("create_name", SecurityUtils.getCurrentUsername()); json.put("create_time", DateUtil.now()); json.put("priority", "1"); - json.put("acs_task_type", "7"); + json.put("acs_task_type", "6"); WQLObject.getWQLObject("SCH_BASE_Task").insert(json); return json.getString("task_id"); 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 6cd12744f..43c8da7f6 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 @@ -72,7 +72,8 @@ public class TwoOutTask extends AbstractAcsTask { .task_type(json.getString("acs_task_type")) .start_device_code(json.getString("point_code1")) .next_device_code(json.getString("point_code2")) - .vehicle_code(json.getString("vehicle_code2")) + .vehicle_code(json.getString("vehicle_code")) + .interaction_json(json.getJSONObject("request_param")) .priority(json.getString("priority")) .class_type(json.getString("task_type")) .dtl_type(String.valueOf(dtl_type)) @@ -179,6 +180,7 @@ public class TwoOutTask extends AbstractAcsTask { 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()); 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 adaed425d..d45178870 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 @@ -86,7 +86,7 @@ public enum IOSEnum { ZDEPTH_STRUCT(MapOf.of("浅", "1","深","2","无","3")), //是否自动下发 - IS_SEND(MapOf.of("是", "1","否","2")), + IS_SEND(MapOf.of("是", "1","否","0")), //外部系统 EXT_SYSTEM(MapOf.of("mes", "mes","sap","sap","crm","crm")), @@ -95,7 +95,7 @@ public enum IOSEnum { PRODUCT_AREA(MapOf.of("BLK", "BLK")), //acs申请任务 - ACSTOLMS_TYPE(MapOf.of("成品入库任务", "1","空盘入库","2","空盘出库","3","异常处理位","4","木箱入库","5","贴标","1","捆扎","2")), + ACSTOLMS_TYPE(MapOf.of("成品入库任务", "1","空盘入库","2","空盘出库","3","异常处理位","4","木箱入库","5","退货入库","6","贴标","1","捆扎","2")), ; private Map code; 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 b0a715a10..a89d5c58a 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 @@ -13,6 +13,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.b_lms.pdm_manage.enums.SUBEnum; import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask; import org.nl.b_lms.sch.tasks.TwoOutTask; +import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; +import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService; @@ -97,6 +99,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().lambda() + .eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code")) + ); + request_param.put("containerType", boxDao.getVehicle_type()); + request_param.put("request_param", request_param); jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString()); if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅")) || @@ -1407,6 +1419,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().lambda() + .eq(BstIvtBoxinfo::getBox_no, whereJson.getString("box_no")) + ); + if (boxDao == null) { + throw new BadRequestException("木箱不存在!"); + } + JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'") + .uniqueResult(0); + // if (ObjectUtil.isEmpty(jsonVehicle)) { + // throw new BadRequestException("载具不存在!"); + // } +// JSONObject jsonVeExt = new JSONObject(); +// jsonVeExt.put("storagevehicleext_id", IdUtil.getLongId()); +// jsonVeExt.put("storagevehicle_id", jsonVehicle.getLongValue("storagevehicle_id")); +// jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code")); +// jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type")); +// jsonVeExt.put("pcsn", whereJson.getString("box_no")); +// jsonVeExt.put("device_uuid", IdUtil.getLongId()); +// veExtTab.insert(jsonVeExt); + // 下发桁架任务 + JSONObject taskParam = new JSONObject(); + taskParam.put("task_type", "010713"); + taskParam.put("start_device_code", whereJson.getString("point_code")); + taskParam.put("next_device_code", "CK2005"); + taskParam.put("vehicle_code", whereJson.getString("box_no")); +// taskParam.put("vehicle_code2", whereJson.getString("box_no")); + JSONObject param = new JSONObject(); + param.put("layer", whereJson.getString("layer")); + param.put("length", boxDao.getBox_length()); + param.put("width", boxDao.getBox_width()); + param.put("height", boxDao.getBox_high()); + param.put("containerType", boxDao.getVehicle_type()); + param.put("barcode", whereJson.getString("box_no")); + taskParam.put("request_param", param.toString()); + TwoInBoxTrussTask taskBean = new TwoInBoxTrussTask(); + taskBean.createTask(taskParam); + taskBean.immediateNotifyAcs(null); + } + @Override @Transactional public String taskExceptional(JSONObject jsonObject) { 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 636f11af0..38c7f82af 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 @@ -220,7 +220,7 @@ public class InBussManageServiceImpl implements InBussManageService { mst.put("bill_status", IOSEnum.BILL_STATUS.code("生成")); mst.put("total_qty", subList.stream().map(row -> row.getDoubleValue("net_weight")).reduce(Double::sum).orElse(0.00)); mst.put("detail_count", subList.size()); - mst.put("bill_type", IOSEnum.IN_TYPE.code("生产入库")); + mst.put("bill_type", jsonObject.getString("bill_type")); mst.put("biz_date", DateUtil.today()); mst.put("remark", ""); 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 8f20fde57..c5e8eb7e9 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 @@ -198,21 +198,15 @@ public class LashManageServiceImpl implements LashManageService { // TODO 贴标流程 JSONObject result = new JSONObject(); - // 查询木箱对应托盘信息 - JSONObject jsonExt = extTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonExt)) { - throw new BadRequestException("此托盘上没有木箱!"+whereJson.getString("vehicle_code")); - } - // 查询木箱信息 BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( new QueryWrapper().lambda() - .eq(BstIvtBoxinfo::getBox_no, jsonExt.getString("pcsn")) + .eq(BstIvtBoxinfo::getBox_no, whereJson.getString("vehicle_code")) ); // 返回参数 result.put("length", boxDao.getBox_length()); - result.put("weight", boxDao.getBox_width()); + result.put("width", boxDao.getBox_width()); result.put("height", boxDao.getBox_high()); result.put("isBinding", IOSEnum.IS_SEND.code("是")); result.put("isLabeling", IOSEnum.IS_SEND.code("否")); 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 8dde6ea4f..917dda237 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 @@ -46,4 +46,6 @@ public interface InBoxManageService { */ String taskExceptional(JSONObject jsonObject); + void returnIn(JSONObject whereJson); + } 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 7f0ba1f08..1a130a09e 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 @@ -1835,6 +1835,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (ObjectUtil.isEmpty(whereJson.getString("material_barcode"))) { throw new BadRequestException("子卷号不能为空!"); } + whereJson.put("bill_type", IOSEnum.IN_TYPE.code("生产入库")); inBussManageService.inTask(whereJson); } else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("空盘入库"))) { // 2-空盘入库 @@ -1855,7 +1856,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject jsonTaskParam = new JSONObject(); jsonTaskParam.put("task_type", "010710"); jsonTaskParam.put("start_device_code", whereJson.getString("device_code")); - jsonTaskParam.put("next_device_code", "B1_ERRO"); + jsonTaskParam.put("next_device_code", "RK1003"); jsonTaskParam.put("vehicle_code", whereJson.getString("material_barcode")); TwoBoxExcepTask taskBean = new TwoBoxExcepTask(); taskBean.createTask(jsonTaskParam); @@ -1863,6 +1864,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 5-木箱入库 whereJson.put("box_no", whereJson.getString("material_barcode")); inBoxManageService.inBox(whereJson); + } else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("退货入库"))) { + // 6-退货入库 + whereJson.put("bill_type", IOSEnum.IN_TYPE.code("退货入库")); + whereJson.put("box_no", whereJson.getString("material_barcode")); + inBussManageService.inTask(whereJson); } result.put("status", HttpStatus.OK.value()); result.put("message", "下发成功!"); diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index b47686362..180776859 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -366,7 +366,7 @@ export default { var area_type = '1585167595403874304' if (this.storId.toString() === '1582991156504039455') { - area_type = '1760141408548818944' + area_type = '1791031105286180864' } crudPoint.getPoint({ 'area_type': area_type }).then(res => { this.pointList = res @@ -668,6 +668,7 @@ export default { 'checked': this.checked, 'stor_id': this.mstrow.stor_id } + debugger checkoutbill.allSetPoint(data).then(res => { this.queryTableDdis(this.currentRow.iostorinvdtl_id) this.crud.notify('设置成功!', CRUD.NOTIFICATION_TYPE.INFO) From 7b868f213c444e42c803bc9719152414bf180fb7 Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Sat, 18 May 2024 11:33:10 +0800 Subject: [PATCH 07/10] =?UTF-8?q?fix:=E6=96=B0=E5=A2=9E=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/acs/service/impl/AcsToWmsServiceImpl.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 1a130a09e..541b62244 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 @@ -1868,6 +1868,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 6-退货入库 whereJson.put("bill_type", IOSEnum.IN_TYPE.code("退货入库")); whereJson.put("box_no", whereJson.getString("material_barcode")); + 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); } result.put("status", HttpStatus.OK.value()); From f22475a6ef18aa915304cc38a8716bd5d0f44438 Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Sun, 19 May 2024 23:06:36 +0800 Subject: [PATCH 08/10] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=E7=A9=BA=E6=9C=A8?= =?UTF-8?q?=E7=AE=B1=E5=87=BA=E5=BA=93=EF=BC=8C=E8=A3=85=E7=AE=B1=E5=8C=BA?= =?UTF-8?q?=EF=BC=8C=E5=AD=90=E5=8D=B7=E6=9C=A8=E7=AE=B1=E5=88=86=E9=85=8D?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdmBiSubpackagerelationServiceImpl.java | 134 ++++++++++++++---- .../mapper/BstIvtPackageinfoivtMapper.java | 9 ++ .../dao/xml/BstIvtPackageinfoivtMapper.xml | 17 ++- .../sch/tasks/first_floor_area/DjqTask.java | 14 +- .../sch/tasks/first_floor_area/ZxDjwTask.java | 32 ++++- .../sch/tasks/first_floor_area/ZxqTask.java | 60 +++++++- .../database/service/dao/BstIvtBoxinfo.java | 2 +- .../impl/BstIvtBoxinfoServiceImpl.java | 2 +- .../java/org/nl/common/enums/LevelEnum.java | 2 - 9 files changed, 218 insertions(+), 54 deletions(-) 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 d010a4c39..994fe22fc 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 @@ -1,14 +1,11 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; -import cn.hutool.core.map.MapUtil; -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.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; @@ -17,6 +14,9 @@ import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMap import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import cn.hutool.core.date.DateUtil; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; +import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper; +import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; +import org.nl.b_lms.sch.tasks.first_floor_area.ZxDjwTask; import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; import org.nl.common.enums.PackageInfoIvtEnum; @@ -24,8 +24,6 @@ import org.nl.common.utils.SecurityUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.modules.common.exception.BadRequestException; -import org.nl.wms.pdm.service.SlittingproductionplanService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; @@ -49,13 +47,20 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class); + List isOutBox = packagerelationList.stream().filter(r -> r.getStatus().equals("0")).collect(Collectors.toList()); + if (isOutBox.size() > 0) { + throw new BadRequestException("标记为黄色的子卷号已分配木箱,请重新选择未分配木箱的子卷"); + } List entityList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream() .map(PdmBiSubpackagerelation::getWorkorder_id) .map(String::valueOf) @@ -199,22 +208,59 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList, String boxType) { + + /** + * 空木箱出库 + */ + private void outBox(List entityList, List packagerelationList, String boxType) { JSONObject boxInfo = new JSONObject(); - //todo 测试,暂时默认ZXQ_1_1 - boxInfo.put("device_code", "ZXQ_1_1"); + String deviceCode; + //均衡获取木箱出库终点 + List bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_status, "5").eq(BstIvtPackageinfoivt::getIs_used, "1").orderByAsc(BstIvtPackageinfoivt::getPoint_code)); + if (CollectionUtils.isEmpty(bstIvtPackageinfoivtList)) { + throw new BadRequestException("没有可用的装箱区对接位"); + } + List> pointCodeList = bstIvtPackageinfoivtList.stream() + .map(p -> { + Map map = new HashMap<>(); + map.put(p.getPoint_code(), StringUtils.isNotBlank(p.getContainer_name()) ? 1 : 0); + return map; + }) + .collect(Collectors.toList()); + //获取装箱位任务数量 + List> taskCount = bstIvtPackageinfoivtMapper.getPointTaskCount(); + if (CollectionUtils.isNotEmpty(taskCount)) { + for (Map p : pointCodeList) { + for (Map.Entry e : p.entrySet()) { + String pointCode = e.getKey(); + for (Map taskMap : taskCount) { + if (taskMap.containsKey(pointCode)) { + e.setValue(taskMap.get(pointCode)); + break; + } + } + } + } + //获取资源最少的装箱对接位 + Optional minPointKey = pointCodeList.stream() + .min(Comparator.comparingInt(map -> map.entrySet().iterator().next().getValue())) + .map(map -> map.keySet().iterator().next()); + deviceCode = minPointKey.orElse(""); + } else { + deviceCode = bstIvtPackageinfoivtList.get(0).getPoint_code(); + } + //确定装箱区终点 + boxInfo.put("device_code", deviceCode); boxInfo.put("material_code", boxType); boxInfo.put("num", entityList.size()); String boxSn = outBoxManageService.outBox(boxInfo); @@ -226,21 +272,56 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl装箱区agv任务 + agvTransfer(packagerelationList, deviceCode, boxSn); } + /** + * 待检区->装箱区agv任务 + */ + private void agvTransfer(List packagerelationList, String deviceCode, String boxSn) { + //待检区点位 + List djqPointList = 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)); + Set containerNames = packagerelationList.stream() + .map(PdmBiSubpackagerelation::getContainer_name) + .collect(Collectors.toSet()); + List djqPoints = djqPointList.stream() + .filter(djqPoint -> containerNames.contains(djqPoint.getContainer_name())) + .collect(Collectors.toList()); + //下发agv任务 + djqPoints.forEach(r -> { + //装箱区点位 + List zxqPointList = 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("空")) + .eq(BstIvtPackageinfoivt::getBlock, deviceCode.substring(deviceCode.indexOf("_") + 1)) + .orderByAsc(BstIvtPackageinfoivt::getSort_seq)); + JSONObject jo = new JSONObject(); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); + jo.put("vehicle_code", r.getContainer_name()); + jo.put("point_code1", r.getPoint_code()); + //木箱号 + jo.put("vehicle_code2", boxSn); + //装箱区没满,则确定起点与终点,如果满了则只确定起点 + if (CollectionUtils.isNotEmpty(zxqPointList)) { + jo.put("point_code2", zxqPointList.get(0).getPoint_code()); + } + zxqTask.createTask(jo); + }); + } + + private void transferToPacking(List packagerelationList) { - //创建子卷搬运到装箱区任务 - // List zxqPointList = 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)); - // //装箱区有点位,就下发 - // if (CollectionUtils.isNotEmpty(zxqPointList)) { //下发装箱区->装箱对接位桁架任务 JSONObject jo = new JSONObject(); - jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")); + jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位")); //todo 测试,装箱点位-1-1 jo.put("point_code1", "ZXQ_1_9"); //todo 测试,装箱对接位01 @@ -279,13 +360,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl { + /** + * 获取对接位任务数量 + */ + List> getPointTaskCount(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/xml/BstIvtPackageinfoivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/xml/BstIvtPackageinfoivtMapper.xml index ae2a70f0b..adab8bf83 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/xml/BstIvtPackageinfoivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/xml/BstIvtPackageinfoivtMapper.xml @@ -1,6 +1,21 @@ - + 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 a63259c79..9694d59a0 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 @@ -11,7 +11,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; @@ -30,7 +29,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -49,13 +47,8 @@ public class DjqTask extends AbstractAcsTask { @Resource private IbstIvtPackageinfoivtService packageinfoivtService; @Resource - private OutBoxManageService outBoxManageService; - @Resource - private IpdmBiSubpackagerelationService pdmBiSubpackagerelationService; - @Resource private MzhcwTask mzhcwTask; - @Resource - private ZxqTask zxqTask; + private final String THIS_CLASS = DjqTask.class.getName(); @@ -108,10 +101,9 @@ public class DjqTask extends AbstractAcsTask { schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); //2.改变起点点位状态 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); - //更新库存记录 + //3更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); - String vehicleCode = schBaseTask.getVehicle_code(); - //5.查询是否有未下发的输送线->满轴位任务,有就下发 + //4.查询是否有未下发的输送线->满轴位任务,有就下发 List notIssueTaskList = taskService.list(new LambdaUpdateWrapper() //确定起点 .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) 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 9966341a1..ee9323579 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 @@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; @@ -12,11 +13,15 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dto.SchBaseTaskVO; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; +import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; @@ -27,7 +32,6 @@ 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; @@ -45,8 +49,13 @@ import java.util.stream.Collectors; public class ZxDjwTask extends AbstractAcsTask { + @Resource - private ZxqTask zxqTask; + private DjqTask djqTask; + @Resource + private BstIvtBoxinfoMapper bstIvtBoxinfoMapper; + @Resource + private IpdmBiSubpackagerelationService subpackageRelationService; @Resource private IschBaseTaskService taskService; @Resource @@ -91,7 +100,7 @@ public class ZxDjwTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false); if (schBaseTask == null) { - throw new BadRequestException("满轴缓存位 -> 管制区更新接口任务号为空!"); + throw new BadRequestException("装箱区 -> 装箱对接位更新接口任务号为空!"); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 @@ -111,7 +120,19 @@ public class ZxDjwTask extends AbstractAcsTask { packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); - //3.创建搬运空载具任务,放空(装箱区->待检区) + //3.更改子卷信息状态为包装1,创建装箱区->装箱位桁架任务的时候判断是否最后一个子卷:相同木箱号如果生成状态0个数等于1且子卷号等于当前载具号,就是最后一个子卷 + PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService + .getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); + pdmBiSubpackagerelation.setStatus("1"); + subpackageRelationService.updateById(pdmBiSubpackagerelation); + //4.查询同一个木箱号如果生成状态0个数等于0,更新该木箱信息表为包装1 + List packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0")); + if (CollectionUtils.isEmpty(packagerelationList)) { + BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).eq(BstIvtBoxinfo::getIs_packing, null)); + bstIvtBoxinfo.setIs_packing("1"); + bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo); + } + //5.装箱区->装箱对接位桁架任务完成后,创建搬运空载具任务,放空(装箱区->待检区) List djqOrGzqPointList = packageinfoivtService .list(new LambdaUpdateWrapper() .in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区")) @@ -119,6 +140,7 @@ public class ZxDjwTask extends AbstractAcsTask { List djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList()); JSONObject toDjqOrGzqTask = new JSONObject(); toDjqOrGzqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(装箱区->待检区)")); + //装箱区->待检区起点为桁架任务的起点 toDjqOrGzqTask.put("point_code1", schBaseTask.getPoint_code1()); if (CollectionUtils.isNotEmpty(djqPointList)) { //优先送到待检区 @@ -127,7 +149,7 @@ public class ZxDjwTask extends AbstractAcsTask { toDjqOrGzqTask.put("point_code2", djqOrGzqPointList.get(0).getPoint_code()); } toDjqOrGzqTask.put("vehicle_code", containerInfo.getContainer_name()); - zxqTask.createTask(toDjqOrGzqTask); + djqTask.createTask(toDjqOrGzqTask); } // 取消 if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java index 5313fcd83..d043ea516 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/ZxqTask.java @@ -6,12 +6,14 @@ import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -19,6 +21,8 @@ import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dto.SchBaseTaskVO; import org.nl.b_lms.sch.task.service.IschBaseTaskService; +import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; +import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.utils.SecurityUtils; @@ -29,6 +33,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,8 +54,6 @@ public class ZxqTask extends AbstractAcsTask { private ZxDjwTask zxDjwTask; - - @Resource private IschBaseTaskService taskService; @Resource @@ -60,6 +63,13 @@ public class ZxqTask extends AbstractAcsTask { @Resource private IPdmBiSlittingproductionplanService productionPlanService; + + @Resource + private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper; + @Resource + private BstIvtBoxinfoMapper bstIvtBoxinfoMapper; + + private final String THIS_CLASS = ZxqTask.class.getName(); @Override @@ -117,8 +127,7 @@ public class ZxqTask extends AbstractAcsTask { packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1())); //更新库存记录 packageinfoivtService.update(new UpdateWrapper().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2())); - //todo 3.刘先源的空木箱出库任务完成状态更新时,判断装箱区是否存在木箱号对应的子卷,如果存在,就创建搬运任务 - //4.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位,否,什么都不做 + //3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务,否,什么都不做 PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService .getOne(new LambdaUpdateWrapper().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false); if (pdmBiSubpackagerelation != null) { @@ -135,6 +144,49 @@ public class ZxqTask extends AbstractAcsTask { jo.put("point_code1", schBaseTask.getPoint_code2()); jo.put("point_code2", zxdjwPoint.getPoint_code()); jo.put("vehicle_code", schBaseTask.getVehicle_code()); + jo.put("is_send", "1"); + List productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getContainer_name, schBaseTask.getVehicle_code())); + if (productionPlanList.isEmpty()) { + throw new BadRequestException("该子卷暂无分切计划信息"); + } + //获取纸管长度 + String containerLength = productionPlanList.get(0).getPaper_tube_or_FRP().equals("1") ? productionPlanList.get(0).getPaper_tube_description() : productionPlanList.get(0).getFRP_description(); + int maxNum = 0; + for (String part : containerLength.split("\\|")) { + String numStr = part.replaceAll("\\D+", ""); + if (!numStr.isEmpty()) { + int num = Integer.parseInt(numStr); + if (num > maxNum) { + maxNum = num; + } + } + } + //扩展参数 + JSONObject param = new JSONObject(); + //获取木箱信息,未包装的木箱 + BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).eq(BstIvtBoxinfo::getIs_packing, null)); + if (bstIvtBoxinfo == null) { + throw new BadRequestException("找不到木箱信息!"); + } + //木箱最大数量 + param.put("maxNo", bstIvtBoxinfo.getNum()); + //托盘类型 1小托盘 2大托盘 + param.put("containerType", bstIvtBoxinfo.getVehicle_type()); + //查询是否为最后一个子卷,相同木箱号且状态为生成 + List packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0")); + if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) { + //最后子卷 + param.put("lastOne", "1"); + } else { + param.put("lastOne", "0"); + } + //木箱放入子卷数量 + param.put("boxNo", pdmBiSubpackagerelation.getQuanlity_in_box()); + //子卷号 + param.put("barcode", schBaseTask.getVehicle_code()); + //子卷长度 + param.put("len", maxNum); + jo.put("request_param", param.toString()); zxDjwTask.createTask(jo); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java index 4bd35507a..18aba53d4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/dao/BstIvtBoxinfo.java @@ -30,7 +30,7 @@ public class BstIvtBoxinfo implements Serializable { * 木箱标识 */ @TableId(value = "box_id") - private Long box_id; + private String box_id; /* * 木箱号 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/BstIvtBoxinfoServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/BstIvtBoxinfoServiceImpl.java index 3afdba931..27dbc3e41 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/BstIvtBoxinfoServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/database/service/impl/BstIvtBoxinfoServiceImpl.java @@ -47,7 +47,7 @@ public class BstIvtBoxinfoServiceImpl extends ServiceImpl Date: Mon, 20 May 2024 09:23:24 +0800 Subject: [PATCH 09/10] =?UTF-8?q?rav=EF=BC=9A=E4=BB=BB=E5=8A=A1=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E6=97=B6=E9=87=8A=E6=94=BE=E8=B4=A7=E4=BD=8D=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StIvtIostorinvOutServiceImpl.java | 59 ++++++++++++++++++- 1 file changed, 56 insertions(+), 3 deletions(-) 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 1d620704f..2712223ef 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 @@ -639,6 +639,19 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl row.getTask_id().toString()) + .distinct() + .collect(Collectors.joining("','")); + + JSONArray taskArr = taskService.query("task_id IN ('" + task_in + "') AND task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "' AND is_delete = '0'") + .getResultJSONArray(0); + + if (ObjectUtil.isNotEmpty(taskArr)) { + throw new BadRequestException("有任务未完成,不允许强制确认!"); + } + // 需要更新的库存集合 List needUpdateIvtList = new ArrayList<>(); @@ -654,6 +667,11 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl paramLockList = disDaoList.stream() + .filter(row -> !row.getSect_id().toString().equals(RegionTypeEnum.TWO_BZC01.getId())) .map(StIvtIostorinvdis::getStruct_code) .distinct() .collect(Collectors.toList()); @@ -681,7 +702,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl needUpdateIvtList = new ArrayList<>(); + for (int i = 0; i < disDaoList.size(); i++) { + StIvtIostorinvdis dao = disDaoList.get(i); + + JSONObject jsonIvt = new JSONObject(); + jsonIvt.put("struct_id", dao.getStruct_id()); + jsonIvt.put("material_id", dao.getMaterial_id()); + jsonIvt.put("pcsn", dao.getPcsn()); + jsonIvt.put("canuse_qty", dao.getPlan_qty()); + + needUpdateIvtList.add(jsonIvt); + } + outBussManageService.upateIvt(needUpdateIvtList,mstDao,IOSEnum.IVT_CHANGE.code("减库存")); + + // 更新仓位 + List paramLockList = new ArrayList<>(); + + JSONObject jsonLockParam = new JSONObject(); + jsonLockParam.put("inv_type", ""); + jsonLockParam.put("inv_id", ""); + jsonLockParam.put("inv_code", ""); + jsonLockParam.put("storagevehicle_code", ""); + jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); + jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库")); + + paramLockList.add(disDao.getStruct_code()); + outBussManageService.lockStruct(paramLockList,jsonLockParam); + if (IOSEnum.OUT_TYPE.code("改切出库").equals(mstDao.getBill_type()) || IOSEnum.OUT_TYPE.code("返检出库").equals(mstDao.getBill_type())) { HashMap map = new HashMap<>(); map.put("need_delete", IOSEnum.IS_NOTANDYES.code("是")); From 098330e94fcaba98e46cf48a1931d533120305c0 Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 20 May 2024 09:24:03 +0800 Subject: [PATCH 10/10] =?UTF-8?q?rev=EF=BC=9A=E4=BB=A3=E7=A0=81=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java | 1 + 1 file changed, 1 insertion(+) 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 0088fd8eb..f9058ed1b 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 @@ -656,6 +656,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl needUpdateIvtList = new ArrayList<>();