From b8bf6dad65c6cfb912b3179f40f024e6ba00228f Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 30 Aug 2022 16:47:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DevicesparepartivtServiceImpl.java | 14 +++++ .../nl/wms/sb/stat/wql/EM_DEVICEIVT001.wql | 15 ++++- .../wms/sb/stat/deviceivtquery/index.vue | 61 ++++++++++++++++++- 3 files changed, 86 insertions(+), 4 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/service/impl/DevicesparepartivtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/service/impl/DevicesparepartivtServiceImpl.java index 753670ba..cea86922 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/service/impl/DevicesparepartivtServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/service/impl/DevicesparepartivtServiceImpl.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import org.nl.exception.BadRequestException; import org.nl.utils.FileUtil; +import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.sb.stat.service.DevicesparepartivtService; import org.nl.wms.sb.stat.service.dto.DevicesparepartivtDto; import org.nl.wql.WQL; @@ -41,11 +42,15 @@ import javax.servlet.http.HttpServletResponse; @RequiredArgsConstructor @Slf4j public class DevicesparepartivtServiceImpl implements DevicesparepartivtService { + private final ClassstandardService classstandardService; + @Override public Map queryAll(Map whereJson, Pageable page) { String material_code = MapUtil.getStr(whereJson, "material_code"); String is_all = MapUtil.getStr(whereJson, "is_all"); + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = MapUtil.getStr(whereJson, "class_idStr"); HashMap map = new HashMap<>(); if (ObjectUtil.isEmpty(is_all) || StrUtil.equals(is_all, "0")) { @@ -56,6 +61,15 @@ public class DevicesparepartivtServiceImpl implements DevicesparepartivtService map.put("stor_id", MapUtil.getStr(whereJson,"stor_id")); map.put("sect_id", MapUtil.getStr(whereJson,"sect_id")); if (ObjectUtil.isNotEmpty(material_code)) map.put("material_code", "%"+material_code+"%"); + //处理物料当前节点的所有子节点 + if (!StrUtil.isEmpty(material_type_id)) { + map.put("material_type_id", material_type_id); + String classIds = classstandardService.getChildIdStr(material_type_id); + map.put("classIds", classIds); + } else if (ObjectUtil.isNotEmpty(class_idStr)) { + String classIds = classstandardService.getAllChildIdStr(class_idStr); + map.put("classIds", classIds); + } JSONObject json = WQL.getWO("EM_DEVICEIVT001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ivt.material_id DESC"); return json; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/wql/EM_DEVICEIVT001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/wql/EM_DEVICEIVT001.wql index c42b8a94..7658c64b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/wql/EM_DEVICEIVT001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/stat/wql/EM_DEVICEIVT001.wql @@ -17,6 +17,7 @@ 输入.stor_id TYPEAS s_string 输入.sect_id TYPEAS s_string 输入.material_code TYPEAS s_string + 输入.classIds TYPEAS f_string [临时表] @@ -53,11 +54,13 @@ ivt.pcsn, sum(ivt.ivt_qty) AS ivt_qty, MAX(ivt.qty_unit_name) AS qty_unit_name, - MAX(ivt.instorage_time) AS instorage_time + MAX(ivt.instorage_time) AS instorage_time, + class.class_name FROM EM_BI_DeviceSparePartIvt ivt LEFT JOIN ST_IVT_StructAttr struct ON ivt.struct_id = struct.struct_id LEFT JOIN MD_ME_MaterialBase me ON me.material_id = ivt.material_id + LEFT JOIN md_pb_classstandard class ON me.material_type_id = class.class_id WHERE 1=1 OPTION 输入.stor_id <> "" struct.stor_id = 输入.stor_id @@ -71,6 +74,10 @@ me.material_code like 输入.material_code) ENDOPTION + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + group by ivt.material_id,ivt.pcsn ENDSELECT @@ -86,11 +93,13 @@ me.material_name, me.material_spec, me.material_model, + class.class_name, ivt.* FROM EM_BI_DeviceSparePartIvt ivt LEFT JOIN ST_IVT_StructAttr struct ON ivt.struct_id = struct.struct_id LEFT JOIN MD_ME_MaterialBase me ON me.material_id = ivt.material_id + LEFT JOIN md_pb_classstandard class ON me.material_type_id = class.class_id WHERE 1=1 OPTION 输入.stor_id <> "" struct.stor_id = 输入.stor_id @@ -104,6 +113,10 @@ me.material_code like 输入.material_code) ENDOPTION + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION + ENDSELECT ENDPAGEQUERY ENDIF \ No newline at end of file diff --git a/mes/qd/src/views/wms/sb/stat/deviceivtquery/index.vue b/mes/qd/src/views/wms/sb/stat/deviceivtquery/index.vue index 476e7777..94fbad00 100644 --- a/mes/qd/src/views/wms/sb/stat/deviceivtquery/index.vue +++ b/mes/qd/src/views/wms/sb/stat/deviceivtquery/index.vue @@ -11,6 +11,16 @@ label-width="80px" label-suffix=":" > + + + + + - - + + @@ -92,11 +103,15 @@ import crudSectattr from '@/api/wms/basedata/st/sectattr' import { download } from '@/api/data' import { downloadFile } from '@/utils' import {getLodop} from "@/assets/js/lodop/LodopFuncs"; +import crudClassstandard from '@/api/wms/basedata/master/classstandard' +import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' +import '@riophae/vue-treeselect/dist/vue-treeselect.css' +import crudMaterialbase from '@/api/wms/basedata/master/materialbase' const defaultForm = { stockrecord_id: null, sparepart_only_id: null, material_id: null, pcsn: null, stor_id: null, stor_name: null, struct_id: null, struct_code: null, struct_name: null, ivt_qty: null, qty_unit_id: null, qty_unit_name: null, instorage_time: null } export default { name: 'Deviceivtquery', - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { pagination, crudOperation, rrOperation, udOperation, Treeselect }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -117,6 +132,9 @@ export default { data() { return { sects: [], + classes: [], + class_idStr: null, + materOpt_code: '23', permission: { } } @@ -125,6 +143,15 @@ export default { crudSectattr.getSect({ 'is_attachment': '1' }).then(res => { this.sects = res.content }) + const param = { + 'materOpt_code': this.materOpt_code + } + crudMaterialbase.getMaterOptType(param).then(res => { + this.class_idStr = res.class_idStr + this.crud.query.class_idStr = this.class_idStr + this.crud.toQuery() + this.queryClassId() + }) }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据 @@ -185,6 +212,34 @@ export default { this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.toQuery() + }, + loadClass({ action, parentNode, callback }) { + if (action === LOAD_CHILDREN_OPTIONS) { + crudClassstandard.getClass({ pid: parentNode.id }).then(res => { + parentNode.children = res.content.map(function(obj) { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + setTimeout(() => { + callback() + }, 100) + }) + } + }, + queryClassId() { + const param = { + 'class_idStr': this.class_idStr + } + crudClassstandard.queryClassById(param).then(res => { + this.classes = res.content.map(obj => { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + }) } } }