From 9ccc7715fde6d02d9fc64194975e4abf704ae07a Mon Sep 17 00:00:00 2001 From: liuxy Date: Sat, 14 Sep 2024 14:31:50 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E5=90=88=E5=90=8C=E5=8F=B0?= =?UTF-8?q?=E8=B4=A6=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/ext/erp/wql/QERP.wql | 15 +++ .../PcsIfPurchaseorderprocServiceImpl.java | 100 +++++++++++++++++- .../pcs/wql/QPCS_IF_PURCHASEORDERPROC02.wql | 25 ++--- .../statistics/ledgerQuery/ReceiveDialog.vue | 25 ++--- .../wms/statistics/ledgerQuery/index.vue | 18 ++-- 5 files changed, 140 insertions(+), 43 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql index 917ab5f6..da417273 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/wql/QERP.wql @@ -194,6 +194,21 @@ ENDQUERY ENDIF + IF 输入.flag = "9" + QUERY + SELECT + pp.* + FROM + purchase_contract_view pp + WHERE + 1=1 + OPTION 输入.no_ids <> "" + pp.vbillcode in 输入.no_ids + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/PcsIfPurchaseorderprocServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/PcsIfPurchaseorderprocServiceImpl.java index 50e3a536..a486402b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/PcsIfPurchaseorderprocServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/PcsIfPurchaseorderprocServiceImpl.java @@ -186,8 +186,8 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc orderTab.update(json); } - @Override - public Map ledgerQuery(Map whereJson, Pageable page) { + + public Map ledgerQuery2(Map whereJson, Pageable page) { String material_code = MapUtil.getStr(whereJson, "material_code"); HashMap map = new HashMap<>(); map.put("flag", "11"); @@ -257,9 +257,101 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc } @Override - public Map receiveQuery(Map whereJson, Pageable page) { + public Map ledgerQuery(Map whereJson, Pageable page) { + String material_code = MapUtil.getStr(whereJson, "material_code"); + HashMap map = new HashMap<>(); + map.put("flag", "11"); + map.put("begin_time", MapUtil.getStr(whereJson, "begin_time")); + map.put("end_time", MapUtil.getStr(whereJson, "end_time")); + if (!ObjectUtil.isEmpty(material_code)) { + //处理转义字符 + if (material_code.contains("\\")) { + material_code = material_code.replace("\\", "\\\\\\"); + } + map.put("material_code", "%" + material_code + "%"); + } String vbillcode = MapUtil.getStr(whereJson, "vbillcode"); - JSONObject json = WQL.getWO("QPCS_IF_PURCHASEORDERPROC02").addParam("vbillcode", vbillcode).addParam("flag", "2").pageQuery(WqlUtil.getHttpContext(page), "mst.receive_date desc"); + String proc_status = MapUtil.getStr(whereJson, "proc_status"); + String contract_no = MapUtil.getStr(whereJson, "contract_no"); + String supp_name = MapUtil.getStr(whereJson, "supp_name"); + String iszero = MapUtil.getStr(whereJson, "iszero"); + if (!ObjectUtil.isEmpty(vbillcode)) { + map.put("vbillcode", "%" + vbillcode + "%"); + } + if (!ObjectUtil.isEmpty(proc_status)) { + map.put("proc_status", proc_status); + } + if (!ObjectUtil.isEmpty(contract_no)) { + map.put("contract_no", "%" + contract_no + "%"); + } + if (!ObjectUtil.isEmpty(supp_name)) { + map.put("supp_name", "%" + supp_name + "%"); + } + + String classIds = classstandardService.getAllChildIdStr(MaterOptTypeEnum.ZLFL.getClass_idStr()); + map.put("classIds",classIds); + + List content = WQL.getWO("QPCS_IF_PURCHASEORDERPROC02") + .addParamMap(map).process().getResultJSONArray(0).toJavaList(JSONObject.class); + + + String no_ids = content.stream() + .filter(row -> ObjectUtil.isNotEmpty(row.getString("contract_no"))) + .map(row -> row.getString("contract_no")) + .collect(Collectors.joining("','")); + + // 查询erp视图 QTY_HT 重量 ,QTY_ZT 未到货重量,NORIGTAXMNY 合同金额 + List ja = WQL.getWO("QERP").setDbname("dataSource1").addParam("flag", "8").addParam("no_ids", "('"+no_ids+"')").process().getResultJSONArray(0).toJavaList(JSONObject.class); + + for (int i = 0; i < content.size(); i++) { + JSONObject jsonObject = content.get(i); + + Optional first = ja.stream() + .filter(row -> row.getString("vbillcode").equals(jsonObject.getString("contract_no")) + && row.getString("item_code").equals(jsonObject.getString("material_code"))).findAny(); + jsonObject.put("subscribedate",first.isPresent() ? first.get().get("subscribedate"): ""); + // 合同重量 + jsonObject.put("qty_ht",first.isPresent() ? first.get().get("qty_ht"): 0); + // 合同未到货重量 + jsonObject.put("qty_zt",first.isPresent() ? first.get().get("qty_zt"): 0); + // 合同金额 + jsonObject.put("norigtaxmny",first.isPresent() ? first.get().get("norigtaxmny"): 0); + } + + // 判断是否有'合同未到货重量'的条件 + if (ObjectUtil.isNotEmpty(iszero)) { + boolean is_zero = "true".equals(iszero); + if (is_zero) { + // 过滤掉不为零的数据 + content = content.stream() + .filter(row -> row.getDoubleValue("qty_zt") == 0) + .collect(Collectors.toList()); + } else { + // 过滤掉为零的数据 + content = content.stream() + .filter(row -> row.getDoubleValue("qty_zt") != 0) + .collect(Collectors.toList()); + } + } + + // 根据签订时间排序(倒序) + content = content.stream() + .sorted(Comparator.comparing(row -> row.getString("subscribedate"),Comparator.reverseOrder())) + .collect(Collectors.toList()); + + // 组织分页查询并返回 + Map json = PageUtil.toPage( + PageUtil.toPage(page.getPageNumber(), page.getPageSize(), content), + content.size() + ); + + return json; + } + + @Override + public Map receiveQuery(Map whereJson, Pageable page) { + String id = MapUtil.getStr(whereJson, "id"); + JSONObject json = WQL.getWO("QPCS_IF_PURCHASEORDERPROC02").addParam("source_billdtl_id", id).addParam("flag", "2").pageQuery(WqlUtil.getHttpContext(page), "mst.receive_date desc"); return json; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_IF_PURCHASEORDERPROC02.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_IF_PURCHASEORDERPROC02.wql index f7be0e67..0ad2d980 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_IF_PURCHASEORDERPROC02.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/wql/QPCS_IF_PURCHASEORDERPROC02.wql @@ -21,6 +21,7 @@ 输入.proc_status TYPEAS s_string 输入.contract_no TYPEAS s_string 输入.supp_name TYPEAS s_string + 输入.source_billdtl_id TYPEAS s_string 输入.classIds TYPEAS f_string 输入.vbillcodes TYPEAS f_string 输入.iszero TYPEAS f_string @@ -153,7 +154,7 @@ oder.remark FROM PCS_IF_PurchaseOrderProc oder - LEFT JOIN PCS_RC_ReceiveDtl dtl ON dtl.source_billdtl_id = oder.id AND dtl.source_bill_code = oder.vbillcode + LEFT JOIN PCS_RC_ReceiveDtl dtl ON dtl.source_billdtl_id = oder.id LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id LEFT JOIN md_me_materialbase mater ON oder.ITEM_ID = mater.ext_id LEFT JOIN ( @@ -165,7 +166,7 @@ max( a.receive_id ) AS receive_id FROM PCS_RC_ReceiveDtl a - LEFT JOIN PCS_IF_PurchaseOrderProc p ON a.source_billdtl_id = p.id AND a.source_bill_code = p.vbillcode + LEFT JOIN PCS_IF_PurchaseOrderProc p ON a.source_billdtl_id = p.id GROUP BY a.source_billdtl_id ) @@ -217,19 +218,11 @@ IF 输入.flag = "2" PAGEQUERY SELECT - oder.contract_no, - dtl.receive_code, - mater.material_code, - mater.material_name, - dtl.pcsn, - dtl.receive_qty, - dtl.instor_qty, - dtl.qty_unit_name, - dtl.status, - mst.input_optname, - oder.honor_time, - supp.honour_days, - mst.receive_date + mst.receive_code, + LEFT(mst.input_time,10) as input_time, + dtl.receive_qty, + dtl.receive_qty * oder.PRICE_TAX AS valmoney, + DATE_ADD(LEFT(mst.input_time,10),INTERVAL supp.honour_days DAY) AS plan_date FROM PCS_RC_ReceiveDtl dtl LEFT JOIN PCS_IF_PurchaseOrderProc oder ON oder.id = dtl.source_billdtl_id @@ -237,7 +230,7 @@ LEFT JOIN PCS_RC_ReceiveMst mst ON dtl.receive_id = mst.receive_id LEFT JOIN md_cs_supplierbase supp ON oder.VEND_ID = supp.ext_id WHERE - oder.vbillcode = 输入.vbillcode + dtl.source_billdtl_id = 输入.source_billdtl_id ENDSELECT ENDPAGEQUERY diff --git a/mes/qd/src/views/wms/statistics/ledgerQuery/ReceiveDialog.vue b/mes/qd/src/views/wms/statistics/ledgerQuery/ReceiveDialog.vue index 5e8c9dc6..b563b26c 100644 --- a/mes/qd/src/views/wms/statistics/ledgerQuery/ReceiveDialog.vue +++ b/mes/qd/src/views/wms/statistics/ledgerQuery/ReceiveDialog.vue @@ -1,6 +1,6 @@