diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java index d98873a6..d60897b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java @@ -3,12 +3,14 @@ package org.nl.wms.basedata.em.service.impl; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.wms.basedata.em.service.DevicemaintenanceitemsService; import org.nl.wms.basedata.em.service.dto.DevicemaintenanceitemsDto; +import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wql.WQL; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,8 +42,13 @@ import cn.hutool.core.util.ObjectUtil; @Slf4j public class DevicemaintenanceitemsServiceImpl implements DevicemaintenanceitemsService { + private final ClassstandardService classstandardService; + @Override public Map queryAll(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = (String) whereJson.get("class_idStr"); + String maint_item_code = MapUtil.getStr(whereJson, "maint_item_code"); String contents = MapUtil.getStr(whereJson, "contents"); String requirement = MapUtil.getStr(whereJson, "requirement"); @@ -54,6 +61,15 @@ public class DevicemaintenanceitemsServiceImpl implements Devicemaintenanceitems if (ObjectUtil.isNotEmpty(contents)) map.put("contents","%"+contents+"%"); if (ObjectUtil.isNotEmpty(requirement)) map.put("requirement","%"+requirement+"%"); + //处理物料当前节点的所有子节点 + 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("QEM_BI_DEVICEMAINTAIN001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time DESC"); return json; } @@ -97,6 +113,7 @@ public class DevicemaintenanceitemsServiceImpl implements Devicemaintenanceitems json.put("maint_item_id", IdUtil.getSnowflake(1,1).nextId()); json.put("maint_item_code", CodeUtil.getNewCode("MAINT_ITEM_CODE")); json.put("maint_item_name", whereJson.getString("maint_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("item_level", whereJson.getString("item_level")); json.put("contents", whereJson.getString("contents")); json.put("requirement", whereJson.getString("requirement")); @@ -121,6 +138,7 @@ public class DevicemaintenanceitemsServiceImpl implements Devicemaintenanceitems JSONObject json = wo.query("maint_item_id = '" + whereJson.getString("maint_item_id") + "'").uniqueResult(0); json.put("maint_item_name", whereJson.getString("maint_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("item_level", whereJson.getString("item_level")); json.put("contents", whereJson.getString("contents")); json.put("requirement", whereJson.getString("requirement")); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java index 61ae4063..34b82787 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java @@ -3,12 +3,14 @@ package org.nl.wms.basedata.em.service.impl; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.wms.basedata.em.service.DevicerepairitemsService; import org.nl.wms.basedata.em.service.dto.DevicerepairitemsDto; +import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wql.WQL; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,9 +41,12 @@ import cn.hutool.core.util.ObjectUtil; @RequiredArgsConstructor @Slf4j public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { + private final ClassstandardService classstandardService; @Override public Map queryAll(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = (String) whereJson.get("class_idStr"); String repair_item_code = MapUtil.getStr(whereJson, "repair_item_code"); String requirement = MapUtil.getStr(whereJson, "requirement"); @@ -50,6 +55,16 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { if (ObjectUtil.isNotEmpty(repair_item_code)) map.put("repair_item_code","%"+repair_item_code+"%"); if (ObjectUtil.isNotEmpty(requirement)) map.put("requirement","%"+requirement+"%"); + //处理物料当前节点的所有子节点 + 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("QEM_BI_DEVICEREPAIRITEMS01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time DESC"); return json; } @@ -93,6 +108,7 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { json.put("repair_item_id", IdUtil.getSnowflake(1,1).nextId()); json.put("repair_item_code", CodeUtil.getNewCode("REPAIR_ITEM_CODE")); json.put("repair_item_name", whereJson.getString("repair_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("requirement", whereJson.getString("requirement")); json.put("remark", whereJson.getString("remark")); json.put("create_id",currentUserId ); @@ -117,6 +133,7 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { JSONObject json = wo.query("repair_item_id = '" + whereJson.getString("repair_item_id") + "'").uniqueResult(0); json.put("repair_item_name", whereJson.getString("repair_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("requirement", whereJson.getString("requirement")); json.put("remark", whereJson.getString("remark")); json.put("update_optid",currentUserId ); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql index ae0271e6..e27b22bf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql @@ -18,6 +18,7 @@ 输入.contents TYPEAS s_string 输入.requirement TYPEAS s_string 输入.item_level TYPEAS s_string + 输入.classIds TYPEAS f_string [临时表] @@ -45,27 +46,33 @@ IF 输入.flag = "1" PAGEQUERY SELECT - * + item.*, + class.class_name FROM - EM_BI_DeviceMaintenanceItems + EM_BI_DeviceMaintenanceItems item + LEFT JOIN md_pb_classstandard class ON item.material_type_id = class.class_id WHERE - is_delete = '0' + item.is_delete = '0' OPTION 输入.item_level <> "" - item_level = 输入.item_level + item.item_level = 输入.item_level ENDOPTION OPTION 输入.maint_item_code <> "" - (maint_item_code like 输入.maint_item_code or - maint_item_name like 输入.maint_item_code) + (item.maint_item_code like 输入.maint_item_code or + item.maint_item_name like 输入.maint_item_code) ENDOPTION OPTION 输入.contents <> "" - contents like 输入.contents + item.contents like 输入.contents ENDOPTION OPTION 输入.requirement <> "" - requirement like 输入.requirement + item.requirement like 输入.requirement + ENDOPTION + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds ENDOPTION ENDSELECT diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql index b628695e..dc1f7599 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql @@ -16,6 +16,7 @@ 输入.flag TYPEAS s_string 输入.repair_item_code TYPEAS s_string 输入.requirement TYPEAS s_string + 输入.classIds TYPEAS f_string [临时表] @@ -43,19 +44,25 @@ IF 输入.flag = "1" PAGEQUERY SELECT - * + item.*, + class.class_name FROM - EM_BI_DeviceRepairItems + EM_BI_DeviceRepairItems item + LEFT JOIN md_pb_classstandard class ON item.material_type_id = class.class_id WHERE - is_delete = '0' + item.is_delete = '0' + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION OPTION 输入.requirement <> "" - requirement like 输入.requirement + item.requirement like 输入.requirement ENDOPTION OPTION 输入.repair_item_code <> "" - (repair_item_code like 输入.repair_item_code or - repair_item_name like 输入.repair_item_code) + (item.repair_item_code like 输入.repair_item_code or + item.repair_item_name like 输入.repair_item_code) ENDOPTION ENDSELECT diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/em.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/em.xls index bf8dedfc..48515ace 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/em.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/em.xls differ diff --git a/mes/qd/src/views/wms/basedata/em/devicemaintain/index.vue b/mes/qd/src/views/wms/basedata/em/devicemaintain/index.vue index 67641de9..4e05dbf2 100644 --- a/mes/qd/src/views/wms/basedata/em/devicemaintain/index.vue +++ b/mes/qd/src/views/wms/basedata/em/devicemaintain/index.vue @@ -11,6 +11,15 @@ label-width="80px" label-suffix=":" > + + + + + + + + + + + @@ -124,6 +147,7 @@ + @@ -153,11 +177,15 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +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 = { maint_item_id: null, maint_item_code: null, maint_item_name: null, item_level: null, contents: null, requirement: null, acceptancecriteria: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } +const defaultForm = { material_type_id: null, maint_item_id: null, maint_item_code: null, maint_item_name: null, item_level: null, contents: null, requirement: null, acceptancecriteria: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } export default { name: 'Devicemaintenanceitems', - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { pagination, crudOperation, rrOperation, udOperation, Treeselect }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -176,6 +204,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', itemLevelList: [ { 'label': '日常', 'value': '01' }, { 'label': '一级', 'value': '02' }, @@ -198,9 +229,23 @@ export default { ], acceptancecriteria: [ { required: true, message: '验收标准不能为空', trigger: 'blur' } + ], + material_type_id: [ + { required: true, message: '设备类别不能为空', trigger: 'blur' } ] }} }, + created() { + 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 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { @@ -217,6 +262,34 @@ export default { } else if (row.item_level === '03') { return '二级' } + }, + 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 + }) + }) } } } diff --git a/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue b/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue index 0c64d6d3..9e6a397d 100644 --- a/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue +++ b/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue @@ -11,6 +11,15 @@ label-width="80px" label-suffix=":" > + + + + + + + + + + + @@ -77,6 +100,7 @@ + @@ -103,11 +127,15 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +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 = { repair_item_id: null, repair_item_code: null, repair_item_name: null, requirement: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } +const defaultForm = { material_type_id: null, repair_item_id: null, repair_item_code: null, repair_item_name: null, requirement: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } export default { name: 'Devicerepairitems', - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { pagination, crudOperation, rrOperation, udOperation, Treeselect }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -126,6 +154,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', permission: { }, rules: { @@ -134,13 +165,55 @@ export default { ], requirement: [ { required: true, message: '维修要求不能为空', trigger: 'blur' } + ], + material_type_id: [ + { required: true, message: '设备类别不能为空', trigger: 'blur' } ] }} }, + created() { + 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 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { return true + }, + 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 + }) + }) } } } diff --git a/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue b/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue index 5a903b3f..ff515715 100644 --- a/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue +++ b/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue @@ -14,6 +14,15 @@ label-width="80px" label-suffix=":" > + + + + @@ -73,10 +83,14 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' import crudDevicerepairitems from '@/api/wms/basedata/em/devicerepairitems' +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' export default { name: 'Item', - components: { rrOperation, pagination }, + components: { rrOperation, pagination, Treeselect }, cruds() { return CRUD({ title: '维修项目', @@ -96,6 +110,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', dialogVisible: false, tableRadio: null, checkrow: null, @@ -109,6 +126,17 @@ export default { } } }, + created() { + 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: { clickChange(item) { this.tableRadio = item @@ -148,6 +176,34 @@ export default { this.crud.resetQuery(false) this.$emit('update:dialogShow', false) this.$emit('tableChanged1', this.rows) + }, + 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 + }) + }) } } } diff --git a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue index 0cbbda13..a75898cf 100644 --- a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue +++ b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue @@ -48,10 +48,11 @@ + - - + + diff --git a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue index 94dfb348..8381192d 100644 --- a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue +++ b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue @@ -14,6 +14,15 @@ label-width="80px" label-suffix=":" > + + + - - + + + - + @@ -95,10 +105,14 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' import crudDevicemaintenanceitems from '@/api/wms/basedata/em/devicemaintenanceitems' +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' export default { name: 'Item', - components: { rrOperation, pagination }, + components: { rrOperation, pagination, Treeselect }, cruds() { return CRUD({ title: '保养项目', @@ -118,6 +132,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', dialogVisible: false, tableRadio: null, checkrow: null, @@ -137,6 +154,17 @@ export default { } } }, + created() { + 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: { clickChange(item) { this.tableRadio = item @@ -185,6 +213,34 @@ export default { this.crud.resetQuery(false) this.$emit('update:dialogShow', false) this.$emit('tableChanged1', this.rows) + }, + 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 + }) + }) } } }