diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java index d541af53..38ee3c41 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java @@ -11,6 +11,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Maps; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.exception.BadRequestException; @@ -32,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author zhouz @@ -50,14 +52,17 @@ public class MaterialParametersServiceImpl implements MaterialParametersService public Map queryAll(Map whereJson, Pageable page) { HashMap map = new HashMap<>(); String material_code = (String) whereJson.get("material_code"); + String material_type_id = (String) whereJson.get("material_type_id"); + String class_idStr = (String) whereJson.get("class_idStr"); + String ids = MapUtil.getStr(whereJson, "ids"); map.put("flag", "1"); if (!StrUtil.isEmpty(material_code)) { //处理转义字符 if (material_code.contains("\\")) material_code = material_code.replace("\\", "\\\\\\"); map.put("material_code", material_code); + map.put("search", material_code); } - String material_type_id = (String) whereJson.get("material_type_id"); - String class_idStr = (String) whereJson.get("class_idStr"); + //处理物料当前节点的所有子节点 if (!StrUtil.isEmpty(material_type_id)) { map.put("material_type_id", material_type_id); @@ -71,8 +76,37 @@ public class MaterialParametersServiceImpl implements MaterialParametersService if (!StrUtil.isEmpty(class_code)) { map.put("class_code", class_code + "%"); } - JSONObject json = WQL.getWO("QMT_MATERIALPARAMETERS_001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id"); - return json; + StringBuffer where = new StringBuffer(); + if (StrUtil.isNotEmpty(ids)) { + ids = ids.replaceAll("\'", ""); + String[] strs = ids.split(","); + where.append("("); + for (int i = 0; i < strs.length; ) { + where.append("class.class_code like '" + strs[i] + "%'"); + i++; + if (i < strs.length) { + where.append(" or "); + } + } + where.append(")"); + map.put("idssql", where.toString()); + } else { + map.put("idssql", "1=1"); + } + map.put("flag", "2"); + JSONObject allmaterialIds = WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id"); + JSONArray array = allmaterialIds.getJSONArray("content"); + String allmaterialId = " "; + if (ObjectUtil.isNotEmpty(array)){ + allmaterialId = "(\""+array.stream().map(o -> ((JSONObject) o).getString("material_id")).collect(Collectors.joining("\",\""))+"\")"; + } + Map query = Maps.newHashMap(); + query.put("flag", "11"); + query.put("materialIds", allmaterialId); + + JSONArray currentArray = WQL.getWO("QMT_MATERIALPARAMETERS_001").addParamMap(query).process().getResultJSONArray(0); + allmaterialIds.put("content",currentArray); + return allmaterialIds; } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql index 89639863..20b575ad 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql @@ -116,7 +116,7 @@ ENDIF IF 输入.flag = "3" - PAGEQUERY + QUERY SELECT mb.material_id, mb.material_code, @@ -147,7 +147,7 @@ mb.material_id in 输入.materialIds ENDOPTION ENDSELECT - ENDPAGEQUERY + ENDQUERY ENDIF diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql index e084baea..e180abb0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql @@ -19,6 +19,7 @@ 输入.material_type_id TYPEAS s_string 输入.class_code TYPEAS s_string 输入.classIds TYPEAS f_string + 输入.materialIds TYPEAS f_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -111,6 +112,67 @@ ENDPAGEQUERY ENDIF + IF 输入.flag = "11" + QUERY + SELECT + m.material_id, + m.material_code, + m.material_name, + m.base_unit_id, + m.material_type_id, + s.is_need_plan, + s.standard_weight AS stock_standard_weight, + s.is_report AS stock_is_report, + s.wc_seqno, + s.report_seqno, + s.is_pure, + s.is_need_move AS stock_is_need_move, + p.old_mark, + p.standard_mark, + p.product_mode, + p.is_auto_open, + p.waste_limit_down, + p.waste_limit_up, + p.report_time, + p.is_report AS produc_is_report, + p.is_again_put, + p.standard_weight AS produc_standard_weight, + p.product_series, + p.c_balance, + p.ball_speed, + p.weight_lost_up, + p.weight_lost_down, + p.product_ball_time, + p.standard_weight_pft, + p.is_need_move AS product_is_need_move, + p.net_rate, + p.technology_code, + p.ball_rate, + p.liquid_rate, + m.is_used, + m.update_optname, + m.update_time, + m.material_height_type, + b.class_name, + b.class_code, + u.unit_name, + work.value AS qm_time + FROM + md_me_materialbase m + LEFT JOIN md_me_stockmaterialext s ON m.material_id = s.material_id + LEFT JOIN md_me_producmaterialext p ON m.material_id = p.material_id + LEFT JOIN md_pb_classstandard b ON m.material_type_id = b.class_id + LEFT JOIN md_pb_measureunit u ON u.measure_unit_id = m.base_unit_id + LEFT JOIN PDM_BI_WorkProcedureParaProduct work ON work.material_id = m.material_id AND para_code = 'QM008' + WHERE + m.is_delete = '0' + OPTION 输入.materialIds <> "" + m.material_id in 输入.materialIds + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "3" PAGEQUERY SELECT diff --git a/mes/qd/src/views/wms/basedata/master/class/index.vue b/mes/qd/src/views/wms/basedata/master/class/index.vue index 4f886133..f1461524 100644 --- a/mes/qd/src/views/wms/basedata/master/class/index.vue +++ b/mes/qd/src/views/wms/basedata/master/class/index.vue @@ -12,6 +12,7 @@