From 514f45ab5a3fbbf1e6c8c3efd8ebd869080111ee Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Wed, 23 Jul 2025 13:07:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E7=BB=84=E7=9B=98=E3=80=81=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E7=9B=B8=E5=85=B3=E4=B8=9A=E5=8A=A1=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=B7=B7=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GroupController.java | 50 +++++++++++++++---- .../service/dao/MdMeMaterialbase.java | 7 ++- .../service/impl/PdaIosInServiceImpl.java | 2 +- .../service/dao/mapper/IOStorInvMapper.xml | 20 +++++--- .../dao/mapper/MdPbGroupplateMapper.xml | 6 +++ .../views/wms/basedata/group/AddDialog.vue | 17 ++++++- .../src/views/wms/basedata/group/group.js | 10 +++- .../wms/basedata/material/MaterialDialog.vue | 9 ++-- nladmin-ui/src/views/wms/st/inbill/AddDtl.vue | 12 ++--- 9 files changed, 100 insertions(+), 33 deletions(-) diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java index 901c9c5..1df7308 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java @@ -2,7 +2,9 @@ package org.nl.wms.basedata_manage.controller; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -17,6 +19,7 @@ import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.warehouse_manage.enums.IOSEnum; import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService; import org.nl.wms.warehouse_manage.service.dao.GroupPlate; +import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -24,8 +27,11 @@ import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** @@ -46,6 +52,8 @@ public class GroupController { private final IMdPbGroupplateService iMdPbGroupplateService; @Autowired private final IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + @Autowired + private final MdPbGroupplateMapper mdPbGroupplateMapper; @GetMapping @Log("分页查询") @@ -57,24 +65,30 @@ public class GroupController { @PostMapping @Log("新增组盘组盘") public ResponseEntity createSingle(@RequestBody JSONObject group) { - Assert.noNullElements(new Object[]{group,group.get("material_id"),group.get("storagevehicle_code"),group.get("qty")},"请求参数不能为空"); - GroupPlate groupPlate = group.toJavaObject(GroupPlate.class); - String storagevehicleCode = groupPlate.getStoragevehicle_code(); + Assert.noNullElements(new Object[]{group, group.get("tableData"), group.get("storagevehicle_code")}, "请求参数不能为空"); + String storagevehicleCode = group.getString("storagevehicle_code"); { iMdPbStoragevehicleinfoService.getByCode(storagevehicleCode); int has = iMdPbGroupplateService.count(new LambdaUpdateWrapper() - .eq(GroupPlate::getStoragevehicle_code, groupPlate.getStoragevehicle_code()) + .eq(GroupPlate::getStoragevehicle_code, storagevehicleCode) .lt(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))); - if (has>0){ + if (has > 0) { throw new BadRequestException("当前载具组盘信息已存在"); } } - groupPlate.setGroup_id(IdUtil.getStringId()); - groupPlate.setCreate_id(SecurityUtils.getCurrentUserId()); - groupPlate.setCreate_name(SecurityUtils.getCurrentUsername()); - groupPlate.setCreate_time(DateUtil.now()); - groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("组盘")); - iMdPbGroupplateService.save(groupPlate); + JSONArray rows = group.getJSONArray("tableData"); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + GroupPlate groupPlate = row.toJavaObject(GroupPlate.class); + groupPlate.setStoragevehicle_code(storagevehicleCode); + groupPlate.setGroup_id(IdUtil.getStringId()); + groupPlate.setCreate_id(SecurityUtils.getCurrentUserId()); + groupPlate.setCreate_name(SecurityUtils.getCurrentUsername()); + groupPlate.setCreate_time(DateUtil.now()); + groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("组盘")); + iMdPbGroupplateService.save(groupPlate); + } + return new ResponseEntity<>(HttpStatus.OK); } @@ -84,4 +98,18 @@ public class GroupController { iMdPbGroupplateService.delete(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping(value = "/getAllGroupInfo") + @Log("通过载具号获取全部组盘信息") + public ResponseEntity getAllGroupInfo(@RequestBody JSONArray rows) { + List vehicle_list = rows.stream() + .map(obj -> (HashMap) obj) + .map(json -> json.get("storagevehicle_code")) + .distinct() + .collect(Collectors.toList()); + List list = mdPbGroupplateMapper.getVehicleMaterial(new JSONObject() {{ + put("vehicle_codes", vehicle_list); + }}); + return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdMeMaterialbase.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdMeMaterialbase.java index 01783b4..3aa3430 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdMeMaterialbase.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/MdMeMaterialbase.java @@ -60,7 +60,12 @@ public class MdMeMaterialbase implements Serializable { /** * 基本计量单位 */ - private String base_unit_id; + private String qty_unit_id; + + /** + * 基本计量单位名称 + */ + private String qty_unit_name; /** * 辅助计量单位 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java index 3d6cbe5..f41ccab 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java @@ -148,7 +148,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { String qty = whereJson.getString("qty"); MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(whereJson.getString("vehicle_code")); MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(materialId); - MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id()); + MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getQty_unit_id()); // 校验 if (ObjectUtil.isEmpty(vehicleDao) || ObjectUtil.isEmpty(materDao) || ObjectUtil.isEmpty(materDao)) { throw new BadRequestException("载具,物料或单位信息有误!"); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml index 0703b58..8dd5ad9 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml @@ -49,12 +49,16 @@ diff --git a/nladmin-ui/src/views/wms/basedata/group/AddDialog.vue b/nladmin-ui/src/views/wms/basedata/group/AddDialog.vue index 5407fd7..a0d6f1f 100644 --- a/nladmin-ui/src/views/wms/basedata/group/AddDialog.vue +++ b/nladmin-ui/src/views/wms/basedata/group/AddDialog.vue @@ -230,7 +230,22 @@ export default { } }, materialChoose(row) { - this.form.tableData = row + debugger + // 对新增的行进行校验不能存在相同物料批次 + row.forEach((item) => { + debugger + let same_mater = true + this.form.tableData.forEach((row) => { + debugger + if (row.material_code === item.material_code && row.pcsn === item.pcsn) { + debugger + same_mater = false + } + }) + if (same_mater) { + this.form.tableData.splice(-1, 0, item) + } + }) }, async insertEvent(row) { this.dtlShow = true diff --git a/nladmin-ui/src/views/wms/basedata/group/group.js b/nladmin-ui/src/views/wms/basedata/group/group.js index e927e8f..bcbfae5 100644 --- a/nladmin-ui/src/views/wms/basedata/group/group.js +++ b/nladmin-ui/src/views/wms/basedata/group/group.js @@ -24,4 +24,12 @@ export function edit(data) { }) } -export default { add, edit, del } +export function getAllGroupInfo(data) { + return request({ + url: 'api/group/getAllGroupInfo', + method: 'post', + data + }) +} + +export default { add, edit, del, getAllGroupInfo } diff --git a/nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue b/nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue index f91ff1b..2930f7a 100644 --- a/nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue +++ b/nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue @@ -29,7 +29,7 @@ - + @@ -112,20 +112,21 @@ export default { this.tableRadio = item }, open() { - + this.crud.refresh() }, close() { this.crud.resetQuery(false) this.$emit('update:dialogShow', false) }, submit() { + debugger // 处理单选 if (this.isSingle && this.tableRadio) { this.$emit('update:dialogShow', false) this.$emit('materialChoose', this.tableRadio) return } - this.rows = this.$refs.table.selection + this.rows = this.$refs.table2.selection if (this.rows.length <= 0) { this.$message('请先勾选物料') return diff --git a/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue b/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue index 5b55ca8..c36550f 100644 --- a/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue +++ b/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue @@ -77,12 +77,12 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import pagination from '@crud/Pagination' import DateRangePicker from '@/components/DateRangePicker/index' -import crudRawAssist from '@/views/wms/st/inbill/rawassist' +import group, { getAllGroupInfo } from '@/views/wms/basedata/group/group.js' const start = new Date() export default { name: 'AddDtl', - components: { crudOperation, rrOperation, pagination, DateRangePicker }, + components: { crudOperation, rrOperation, pagination, DateRangePicker, group }, cruds() { return CRUD({ title: '用户', @@ -149,10 +149,10 @@ export default { console.log('获取的rows:') console.log(this.rows) this.$emit('tableChanged', this.rows) - // crudRawAssist.queryBoxMater(this.rows).then(res => { - // this.rows = res - // this.$emit('tableChanged', this.rows) - // }) + group.getAllGroupInfo(this.rows).then(res => { + this.rows = res.content + this.$emit('tableChanged', this.rows) + }) // this.form = this.$options.data().form } }