From 488d1a608df89018e269f125addb492ba4b95c0b Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 6 Sep 2022 10:25:32 +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 --- .../service/impl/IostordailyServiceImpl.java | 53 ++++++++++++++++++- .../wql/SendReceiveQuery_query_01.wql | 26 +++++++++ .../wms/statistics/sendReceiveQuery/index.vue | 38 ++++++++----- 3 files changed, 102 insertions(+), 15 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/IostordailyServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/IostordailyServiceImpl.java index 8dfe1859..ebec7f8c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/IostordailyServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/IostordailyServiceImpl.java @@ -9,9 +9,12 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.wms.basedata.master.constant.MaterOptTypeEnum; import org.nl.wms.basedata.master.service.ClassstandardService; +import org.nl.wms.basedata.master.service.MaterialbaseService; import org.nl.wms.statistics.service.IostordailyService; import org.nl.wql.WQL; +import org.nl.wql.core.bean.WQLObject; import org.nl.wql.util.WqlUtil; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -29,6 +32,7 @@ import java.util.Map; @Slf4j public class IostordailyServiceImpl implements IostordailyService { private final ClassstandardService classstandardService; + private final MaterialbaseService materialbaseService; @Override public Map queryAll(Map whereJson, Pageable page){ @@ -55,6 +59,54 @@ public class IostordailyServiceImpl implements IostordailyService { } if (ObjectUtil.isNotEmpty(pcsn)) map.put("pcsn", "%" + pcsn + "%"); JSONObject json = WQL.getWO("SendReceiveQuery_query_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "da.sect_date desc"); + + /* + * 处理所属组织 + * 1.PG粉所属组织:通过物料编码+批次找工令所属组织来获取 + * 2.软废所属组织:物料编码去掉后缀 例如:-YZ 找最近完成的工令获取所属组织,若还有其他事业部,页面单元格底色标黄色 + * 3.除PG粉和软废外其他类型物料所属组织取不到 为空就行 + */ + WQLObject workTab = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工令表 + WQLObject deptTab = WQLObject.getWQLObject("sys_dept"); // 部门表 + + JSONArray contentArr = json.getJSONArray("content"); + for (int i = 0; i < contentArr.size(); i++) { + JSONObject jsonObject = contentArr.getJSONObject(i); + String material_id = jsonObject.getString("material_id"); + String pcsn_1 = jsonObject.getString("pcsn"); + + // 判断物料是PG粉还是软废 + boolean is_pgf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.PGF.getCode(), material_id, null); + boolean is_rf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), material_id, null); + + if (is_pgf) { + JSONObject jsonWork = workTab.query("material_id = '" + material_id + "' and pcsn = '" + pcsn_1 + "' and is_delete ='0'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonWork)) continue; + + JSONObject jsonDept = deptTab.query("dept_id = '" + jsonWork.getString("org_id") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonDept)) jsonObject.put("dept_name", jsonDept.getString("name")); + } + + if (is_rf) { + // 截取 "-" 最后出现的前面的字符串 + String material_code_1 = jsonObject.getString("material_code"); + int lastIndexOf = material_code_1.lastIndexOf('-'); + String material_code_sub = material_code_1.substring(0, lastIndexOf); + + JSONArray workArr = WQL.getWO("SendReceiveQuery_query_01").addParam("flag", "3").addParam("material_code", material_code_sub).process().getResultJSONArray(0); + if (ObjectUtil.isEmpty(workArr)) continue; + if (workArr.size() > 1) { + jsonObject.put("is_yellow", "1"); + JSONObject json_1 = workArr.getJSONObject(0); + jsonObject.put("dept_name",json_1.getString("dept_name")); + } else { + JSONObject json_1 = workArr.getJSONObject(0); + jsonObject.put("dept_name",json_1.getString("dept_name")); + } + } + + } + return json; } @@ -63,5 +115,4 @@ public class IostordailyServiceImpl implements IostordailyService { JSONArray jsonArr = WQL.getWO("SendReceiveQuery_query_01").addParam("flag", "2").process().getResultJSONArray(0); return jsonArr; } - } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/SendReceiveQuery_query_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/SendReceiveQuery_query_01.wql index c76d93fe..531e127b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/SendReceiveQuery_query_01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/SendReceiveQuery_query_01.wql @@ -47,14 +47,18 @@ IF 输入.flag = "1" PAGEQUERY SELECT + stor.stor_name, da.sect_date, da.is_active, da.ivt_level, da.pcsn, da.quality_scode, class.class_name, + class.class_code, + mater.material_id, mater.material_code, mater.material_name, + mater.material_model, unit.unit_name, da.start_num, da.in_num, @@ -137,3 +141,25 @@ ENDSELECT ENDQUERY ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + sum(work.ok_qty) AS ok_qty, + dept.name AS dept_name + FROM + PDM_BI_WorkOrder work + INNER JOIN md_me_materialbase mater ON mater.material_id = work.material_id + INNER JOIN sys_dept dept ON dept.dept_id = work.org_id + WHERE + work.is_delete = '0' + + OPTION 输入.material_code <> "" + mater.material_code = 输入.material_code + ENDOPTION + + group by work.org_id + + ENDSELECT + ENDQUERY + ENDIF diff --git a/mes/qd/src/views/wms/statistics/sendReceiveQuery/index.vue b/mes/qd/src/views/wms/statistics/sendReceiveQuery/index.vue index e54b3ae7..faa5f7e8 100644 --- a/mes/qd/src/views/wms/statistics/sendReceiveQuery/index.vue +++ b/mes/qd/src/views/wms/statistics/sendReceiveQuery/index.vue @@ -81,22 +81,25 @@ - - + + + + - - - - - - - - - - - + + + + + + + + + + + + + @@ -324,6 +327,13 @@ export default { } }) return sums + }, + cellStyleMst({ row, column, rowIndex, columnIndex }) { + if (column.property === 'dept_name') { + if (row.is_yellow !== undefined) { + return 'background: yellow' + } + } } } }