From 3bdbf389d4bbf4e44d9a6b4ebf009d49cc2f899f Mon Sep 17 00:00:00 2001 From: lyd <1419499670@qq.com> Date: Thu, 3 Nov 2022 10:35:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MaterialLabelServiceImpl.java | 10 +- .../org/nl/wms/md/wql/QMD_materialLab_01.wql | 40 ++-- .../org/nl/wms/sch/service/dto/PointDto.java | 8 + .../sch/service/impl/PointServiceImpl.java | 67 ++++++- .../java/org/nl/wms/sch/wql/QBASE_POINT.wql | 29 +-- wms/qd/src/components/Crud/crud.js | 1 - .../src/views/wms/md/materiallabel/index.vue | 32 +++- .../views/wms/sch/point/MaterLabelDialog.vue | 181 ++++++++++++++++++ wms/qd/src/views/wms/sch/point/index.vue | 87 ++++++--- 9 files changed, 385 insertions(+), 70 deletions(-) create mode 100644 wms/qd/src/views/wms/sch/point/MaterLabelDialog.vue diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/service/impl/MaterialLabelServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/service/impl/MaterialLabelServiceImpl.java index 0a9f08a..bf66a92 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/service/impl/MaterialLabelServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/service/impl/MaterialLabelServiceImpl.java @@ -45,12 +45,16 @@ class MaterialLabelServiceImpl implements MaterialLabelService { @Override public Map queryAll(Map whereJson, Pageable page) { //物料模糊查询 - String bullery = MapUtil.getStr(whereJson, "bullery"); + String material_name = MapUtil.getStr(whereJson, "material_name"); + String formula = MapUtil.getStr(whereJson, "formula"); + String pcsn = MapUtil.getStr(whereJson, "pcsn"); HashMap map = new HashMap<>(); - map.put("bullery", bullery); map.put("flag", "1"); + map.put("material_name", material_name); + map.put("formula", formula); + map.put("pcsn", pcsn); - JSONObject json = WQL.getWO("QMD_materialLab_01").addParam("flag", "1").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc"); + JSONObject json = WQL.getWO("QMD_materialLab_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time desc"); //处理标签码 JSONArray arr = json.optJSONArray("content"); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/wql/QMD_materialLab_01.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/wql/QMD_materialLab_01.wql index 8557c99..9130b61 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/wql/QMD_materialLab_01.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/md/wql/QMD_materialLab_01.wql @@ -1,10 +1,10 @@ [交易说明] 交易名: 配方分页查询 - 所属模块: - 功能简述: - 版权所有: - 表引用: - 版本经历: + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: [数据库] --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 @@ -14,47 +14,49 @@ ## 表字段对应输入参数 ################################################# 输入.flag TYPEAS s_string - 输入.label_code TYPEAS s_string + 输入.material_name TYPEAS s_string 输入.pcsn TYPEAS s_string - 输入.formula TYPEAS s_string - 输入.bullery TYPEAS s_string + 输入.formula TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 - + [临时变量] --所有中间过程变量均可在此处定义 - + [业务过程] ########################################## # 1、输入输出检查 # ########################################## - + ########################################## # 2、主过程前处理 # ########################################## - - + + ########################################## # 3、业务主过程 # ########################################## - + IF 输入.flag = "1" PAGEQUERY - SELECT + SELECT * FROM md_base_materialLabelMst m WHERE m.is_delete = '0' - OPTION 输入.bullery <> "" - (m.material_name like "%" 输入.bullery "%" or m.material_code like "%" 输入.bullery "%" or m.material_spec like "%" 输入.bullery) + OPTION 输入.material_name <> "" + m.material_name like "%" 输入.material_name "%" ENDOPTION - OPTION 输入.bullery <> "" - (m.formula like "%" 输入.bullery "%" or m.pcsn like "%" 输入.bullery "%") + OPTION 输入.formula <> "" + m.formula like "%" 输入.formula "%" + ENDOPTION + OPTION 输入.pcsn <> "" + m.pcsn like "%" 输入.pcsn "%" ENDOPTION ENDSELECT ENDPAGEQUERY diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java index 2b8f41c..8310f48 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/dto/PointDto.java @@ -91,4 +91,12 @@ public class PointDto implements Serializable { * 所属区域 */ private String area_type; + + /** + * 物料标签id + */ + private String label_uuid; + private String material_uuid; + + } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java index 64b98cc..18654e1 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.sch.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -112,9 +113,71 @@ public class PointServiceImpl implements PointService { dto.setUpdate_time(now); dto.setUpdate_by(currentUsername); - WQLObject wo = WQLObject.getWQLObject("sch_base_point"); + // 获取数据 + String label_uuid = dto.getLabel_uuid(); + String point_type1 = dto.getPoint_type1(); // 点位类型 + String struct_code = dto.getPoint_code(); // 点位编码就是仓位编码 + String point_status = dto.getPoint_status(); + String vehicle_code = dto.getVehicle_code(); + String material_uuid = dto.getMaterial_uuid(); + + WQLObject structIvtTab = WQLObject.getWQLObject("ST_IVT_StructIvt"); + WQLObject materialLabelTab = WQLObject.getWQLObject("md_base_materialLabelMst"); + WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); + WQLObject structTab = WQLObject.getWQLObject("st_base_struct"); + + JSONObject structIvtObj = null; + JSONObject structObj = null; + JSONObject materialLabelObj = null; + + if (ObjectUtil.isNotEmpty(struct_code)) { + structObj = structTab.query("struct_code = '" + struct_code + "'").uniqueResult(0); + } + + // 通过载具号获取仓位库存信息 + if (ObjectUtil.isNotEmpty(structObj)) { + structIvtObj = structIvtTab.query("struct_uuid = '" + structObj.getString("struct_uuid") + "'").uniqueResult(0); + } + + if (ObjectUtil.isNotEmpty(label_uuid)) { + materialLabelObj = materialLabelTab.query("label_uuid = '" + label_uuid + "'").uniqueResult(0); + } + + if (point_type1.equals("01")) { // 仓位的时候需要对仓位库存进行操作 + if (point_status.equals("00")) { // 空位 + // 删除仓位库存 + if (ObjectUtil.isNotEmpty(structIvtObj)) structIvtTab.delete(structIvtObj); + vehicle_code = null; + } else if (point_status.equals("01")) { // 空载具 + if (ObjectUtil.isNotEmpty(structIvtObj)) structIvtTab.delete(structIvtObj); + } else { // 有箱有料 + if (ObjectUtil.isEmpty(materialLabelObj)) throw new BadRequestException("物料不能为空"); + if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("载具编码不能为空"); + if (ObjectUtil.isEmpty(structIvtObj)) { // 仓位库存为空就插入 + JSONObject structIvt = new JSONObject(); + structIvt.put("stockrecord_uuid", IdUtil.simpleUUID()); + structIvt.put("struct_uuid", structObj.getString("struct_uuid")); + structIvt.put("stand_hour", materialLabelObj.getString("stand_hour")); + structIvt.put("label_uuid", label_uuid); + structIvt.put("material_uuid", material_uuid); + structIvt.put("vehicle_code", vehicle_code); + structIvt.put("instorage_time", DateUtil.now()); + structIvtTab.insert(structIvt); + } else { // 修改 + structIvtObj.put("struct_uuid", structObj.getString("struct_uuid")); + structIvtObj.put("label_uuid", label_uuid); + structIvtObj.put("stand_hour", materialLabelObj.getString("stand_hour")); + structIvtObj.put("material_uuid", material_uuid); + structIvtObj.put("vehicle_code", vehicle_code); + structIvtObj.put("instorage_time", DateUtil.now()); + structIvtTab.update(structIvtObj); + } + } + } + // 点位修改 + dto.setVehicle_code(vehicle_code); JSONObject json = JSONObject.fromObject(dto); - wo.update(json); + pointTab.update(json); } @Override diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/wql/QBASE_POINT.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/wql/QBASE_POINT.wql index 5e08254..7aabe85 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/wql/QBASE_POINT.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/wql/QBASE_POINT.wql @@ -1,10 +1,10 @@ [交易说明] 交易名: 库区分页查询 - 所属模块: - 功能简述: - 版权所有: - 表引用: - 版本经历: + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: [数据库] --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 @@ -24,26 +24,26 @@ [临时表] --这边列出来的临时表就会在运行期动态创建 - + [临时变量] --所有中间过程变量均可在此处定义 - + [业务过程] ########################################## # 1、输入输出检查 # ########################################## - + ########################################## # 2、主过程前处理 # ########################################## - - + + ########################################## # 3、业务主过程 # ########################################## - + IF 输入.flag = "1" PAGEQUERY SELECT @@ -66,13 +66,16 @@ point.create_by, point.create_time, point.update_by, - point.update_time + point.update_time, + material.material_name FROM sch_base_point point LEFT JOIN sys_dict_detail d1 ON point.point_type1 = d1.value and d1.name='point_type1' LEFT JOIN sys_dict_detail d2 ON point.area_type = d2.value and d2.name='sch_area_type' LEFT JOIN sys_dict_detail d3 ON point.lock_type = d3.value and d3.name='lock_type' LEFT JOIN sys_dict_detail d4 ON point.point_status = d4.value and d4.name='sch_point_status' + LEFT JOIN st_ivt_structivt structivt ON structivt.vehicle_code = point.vehicle_code + LEFT JOIN md_base_material material ON material.material_uuid = structivt.material_uuid WHERE point.is_delete = '0' OPTION 输入.area_type <> "" @@ -98,4 +101,4 @@ ENDIF - + diff --git a/wms/qd/src/components/Crud/crud.js b/wms/qd/src/components/Crud/crud.js index aa98208..63cc3fc 100644 --- a/wms/qd/src/components/Crud/crud.js +++ b/wms/qd/src/components/Crud/crud.js @@ -802,7 +802,6 @@ function form(defaultForm) { * crud */ function crud(options = {}) { - debugger const defaultOptions = { type: undefined } diff --git a/wms/qd/src/views/wms/md/materiallabel/index.vue b/wms/qd/src/views/wms/md/materiallabel/index.vue index dc25f2a..947b671 100644 --- a/wms/qd/src/views/wms/md/materiallabel/index.vue +++ b/wms/qd/src/views/wms/md/materiallabel/index.vue @@ -10,14 +10,38 @@ label-width="80px" label-suffix=":" > - + + + + + + + + + diff --git a/wms/qd/src/views/wms/sch/point/MaterLabelDialog.vue b/wms/qd/src/views/wms/sch/point/MaterLabelDialog.vue new file mode 100644 index 0000000..f60ac6e --- /dev/null +++ b/wms/qd/src/views/wms/sch/point/MaterLabelDialog.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/wms/qd/src/views/wms/sch/point/index.vue b/wms/qd/src/views/wms/sch/point/index.vue index e68d9ab..b316165 100644 --- a/wms/qd/src/views/wms/sch/point/index.vue +++ b/wms/qd/src/views/wms/sch/point/index.vue @@ -136,6 +136,20 @@ + + + + + @@ -172,33 +186,18 @@ /> - + + + + + + + + + + - - - {{ item.label }} - - - - - - - - @@ -263,6 +262,7 @@ + @@ -276,6 +276,7 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +import MaterDialog from '@/views/wms/sch/point/MaterLabelDialog' const defaultForm = { point_uuid: null, @@ -292,7 +293,7 @@ const defaultForm = { export default { name: 'Point', dicts: ['sch_point_type1', 'sch_area_type', 'sch_point_status', 'is_active', 'd_lock_type'], - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { MaterDialog, pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -315,13 +316,14 @@ export default { data() { return { syncLoading: false, + materDialog: false, options: [], permission: { add: ['admin', 'point:add'], edit: ['admin', 'point:edit'], del: ['admin', 'point:del'] }, - + dict_data: [], rules: { point_code: [ { required: true, message: '点位编码不能为空', trigger: 'blur' } @@ -345,6 +347,27 @@ export default { } } }, + watch: { + 'form.area_type'(new_value, old_value) { + // 刚刷新时候直接返回 + if (new_value === null || new_value === undefined || new_value === '') return + // 第一次改变的时候记录原本的值 + if ((old_value === null || old_value === undefined || old_value === '') && this.dict_data.length === 0) { + for (const i in this.dict.sch_point_status) { + this.dict_data.push(this.dict.sch_point_status[i]) + } + } + if (old_value === null || old_value === '') return + if (new_value === '04') { + this.dict.sch_point_status.length = 2 + } else if (this.dict.sch_point_status.length < 3) { // 没有删过数据就不需要添加数据 + this.dict.sch_point_status.length = 0 // 清空数据 + for (const i in this.dict_data) { + this.dict.sch_point_status.push(this.dict_data[i]) + } + } + } + }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { @@ -392,8 +415,16 @@ export default { }).catch(err => { console.log(err.response.data.message) }) + }, + getMater() { + this.materDialog = true + }, + tableChanged(row) { + console.log(row) + this.form.label_uuid = row.label_uuid + this.form.material_uuid = row.material_uuid + this.form.material_name = row.material_name } - } }