From c36cb73bcf4ff75753fc1d19599e45b727585bd0 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Fri, 17 Mar 2023 19:08:22 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=97=A5=E5=B8=B8=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E8=BF=AD=E4=BB=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/nl/aspect/LogAspect.java | 1 - .../erp/service/impl/WmsToErpServiceImpl.java | 23 +++-- .../PcsIfPurchaseorderprocServiceImpl.java | 30 +++++-- .../service/impl/ReceivemstServiceImpl.java | 2 +- .../service/impl/AutoformulaServiceImpl.java | 4 +- .../main/java/org/nl/wms/ql/wql/QL_ERP.wql | 14 +++- .../impl/StatisticalReportServiceImpl.java | 14 +++- .../wql/statistical_report_query_02.wql | 4 + .../wms/statistics/materPlan/StructIvt2.vue | 84 ++++++++++++------- .../wms/statistics/materPlan/StructIvt3.vue | 54 +++++++++++- .../views/wms/statistics/materPlan/index.vue | 50 ++++++++--- 11 files changed, 209 insertions(+), 71 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/aspect/LogAspect.java b/mes/hd/nladmin-system/src/main/java/org/nl/aspect/LogAspect.java index 5dfc4e50..e681aa4e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/aspect/LogAspect.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/aspect/LogAspect.java @@ -53,7 +53,6 @@ public class LogAspect { //org.nl.ext.lk.rest org.nl.pda.pdm.rest @Pointcut("execution(* org.nl.*.*..rest..*.*(..)) " + - "&& !execution(* org.nl.modules.system.rest.EsLogController.*(..)) " + "&& !execution(* org.nl.pda.pdm.rest.PfScreenController.*(..)) ") public void logPointCut() { } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java index 56ee59da..cd298c94 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/ext/erp/service/impl/WmsToErpServiceImpl.java @@ -24,10 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import java.util.*; @Service @Slf4j @@ -286,20 +283,28 @@ public class WmsToErpServiceImpl implements WmsToErpService { JSONArray ja = WQL.getWO("QERP").setDbname("dataSource1").addParamMap(whereMap).addParam("flag", "3").process().getResultJSONArray(0); log.info("采购订单导入数据---------:" + ja.toString()); + List list = new ArrayList<>(); for (int i = 0; i < ja.size(); i++) { + JSONObject jo2 = ja.getJSONObject(i); + String VBILLCODE = jo2.getString("vbillcode"); + if (list.contains(VBILLCODE)){ + log.warn("采购相同:{}",JSON.toJSONString(jo2)); + continue; + } + list.add(VBILLCODE); //判断该采购订单是否存在,存在的话判断状态是否为生成,生成删除再添加,其他状态不操作 String PURCHASE_ID_B = jo2.getString("purchase_id_b"); - JSONObject purchase_jo = purchase_proc_wql.query("PURCHASE_ID_B = '" + PURCHASE_ID_B + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(purchase_jo)) { - //判断是否生成了入库单 + //判断对于已经生成出入库单/采购通知单的订单不做处理 JSONObject dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl").query("source_billdtl_id = '" + purchase_jo.getString("id") + "'").uniqueResult(0); - if (purchase_jo.getString("proc_status").equals("01") && ObjectUtil.isEmpty(dtl)) { + JSONObject dtlTab = WQLObject.getWQLObject("pcs_rc_receivedtl").query("source_billdtl_id = '" + purchase_jo.getString("id") + "'").uniqueResult(0); + if (purchase_jo.getString("proc_status").equals("01") && ObjectUtil.isEmpty(dtl) && ObjectUtil.isEmpty(dtlTab)) { //删除 purchase_wql.delete("PURCHASE_ID_B = '" + PURCHASE_ID_B + "'"); purchase_proc_wql.delete("PURCHASE_ID_B = '" + PURCHASE_ID_B + "'"); + log.info("order_back_up PURCHASE_ID_B:{},DATA:{}",PURCHASE_ID_B,JSON.toJSONString(purchase_jo)); } else { //跳过 continue; @@ -311,7 +316,7 @@ public class WmsToErpServiceImpl implements WmsToErpService { String PK_DEPT = jo2.getString("pk_dept"); String VEND_ID = jo2.getString("vend_id"); String CEMPLOYEEID = jo2.getString("cemployeeid"); - String VBILLCODE = jo2.getString("vbillcode"); + String CROWNO = jo2.getString("crowno"); String CREATE_BY = jo2.getString("create_by"); String CREATE_DATE = jo2.getString("create_date"); 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 fe725512..c6fa1a76 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 @@ -30,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.locks.ReentrantLock; /** * @author Liuxy @@ -45,6 +46,8 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc @Autowired private WmsToErpService wmsToErpService; + final ReentrantLock lock = new ReentrantLock(); + @Override public Map queryAll(Map whereJson, Pageable page) { HashMap map = new HashMap<>(whereJson); @@ -142,17 +145,28 @@ public class PcsIfPurchaseorderprocServiceImpl implements PcsIfPurchaseorderproc @Override @Transactional(rollbackFor = Exception.class) public void importData(Map whereJson) { - ArrayList arr = (ArrayList) whereJson.get("createTime"); - HashMap map = new HashMap<>(); - if (arr != null && arr.size() != 0) { - if (StrUtil.isNotEmpty(arr.get(0))) { - map.put("begin_time", arr.get(0)); + boolean b = lock.tryLock(); + try { + if (b){ + ArrayList arr = (ArrayList) whereJson.get("createTime"); + HashMap map = new HashMap<>(); + if (arr != null && arr.size() != 0) { + if (StrUtil.isNotEmpty(arr.get(0))) { + map.put("begin_time", arr.get(0)); + } + if (StrUtil.isNotEmpty(arr.get(1))) { + map.put("end_time", arr.get(1)); + } + } + wmsToErpService.getPurchaseInfo(map); + }else { + throw new BadRequestException("正在执行导入数据任务,请稍后再试"); } - if (StrUtil.isNotEmpty(arr.get(1))) { - map.put("end_time", arr.get(1)); + }finally { + if(b){ + lock.unlock(); } } - wmsToErpService.getPurchaseInfo(map); } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java index e201b8d0..8f7c7d0a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pcs/service/impl/ReceivemstServiceImpl.java @@ -169,7 +169,7 @@ public class ReceivemstServiceImpl implements ReceivemstService { jsonMst.put("sysdeptid", deptId); jsonMst.put("syscompanyid", deptId); - //明细 + //明细:对应采购订单导入 JSONArray jsonArr = JSONArray.parseArray(JSON.toJSONString(whereJson.get("tableData"))); for (int i = 0; i < jsonArr.size(); i++) { JSONObject json = jsonArr.getJSONObject(i); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java index eb5b2680..0c15d0f7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java @@ -5237,7 +5237,7 @@ public class AutoformulaServiceImpl implements AutoformulaService { for(int i=0;i0){ //Wp=Wp+W补 Cp = Cp + C_bu; - if(true){//cw_limit_down + if(true){//Cp > cw_limit_down //计算非碳化钨需补重量 double finalR3p_jian = R3p_jian; bj_bomdlts_map.forEach((key, bj_bomdlt)->{ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/wql/QL_ERP.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/wql/QL_ERP.wql index f1bc4eaf..6d7bbab3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/wql/QL_ERP.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/wql/QL_ERP.wql @@ -16,6 +16,8 @@ 输入.flag TYPEAS s_string 输入.ext_id TYPEAS s_string 输入.material_id TYPEAS s_string + 输入.source_name TYPEAS s_string + 输入.hide TYPEAS s_string 输入.pcsn TYPEAS s_string 输入.mater_ids TYPEAS f_string @@ -150,7 +152,8 @@ PURCHASE.ITEM_NAME as material_name, PURCHASE.NAME, PURCHASE.NORIGTAXPRICE, - PURCHASE.NORIGTAXMNY + PURCHASE.NORIGTAXMNY, + sum(PURCHASE.QTY_ZT)*PURCHASE.NORIGTAXPRICE as notmny FROM PURCHASE_CONTRACT_VIEW PURCHASE where @@ -162,7 +165,16 @@ OPTION 输入.mater_ids <> "" PURCHASE.ITEM_ID in 输入.mater_ids ENDOPTION + OPTION 输入.mater_ids <> "" + PURCHASE.NAME like "%" 输入.source_name "%" + ENDOPTION + OPTION 输入.hide <> "" + sum(PURCHASE.QTY_ZT) > 0 + ENDOPTION GROUP BY PURCHASE.ITEM_ID,PURCHASE.VBILLCODE, PURCHASE.ITEM_CODE, PURCHASE.ITEM_NAME,PURCHASE.NAME,PURCHASE.NORIGTAXPRICE,PURCHASE.NORIGTAXMNY + OPTION 输入.hide <> "" + HAVING sum( PURCHASE.QTY_ZT ) > 0 + ENDOPTION ORDER BY PURCHASE.ITEM_CODE, PURCHASE.VBILLCODE ENDSELECT ENDQUERY diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java index 03c799a8..18d345b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java @@ -539,10 +539,12 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { HashMap map = new HashMap<>(whereJson); String material_id = map.get("material_id"); + String sourceName = map.get("source_name"); JSONArray ja = WQL.getWO("statistical_report_query_02") .addParam("flag", "2") .addParam("material_id", material_id) + .addParam("source_name", sourceName) .process().getResultJSONArray(0); return ja; } @@ -552,6 +554,8 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { HashMap map = new HashMap<>(whereJson); WQLObject mater_wql = WQLObject.getWQLObject("md_me_materialbase"); String material_id = map.get("material_id"); + String sourceName = map.get("source_name"); + String hide = map.get("hide"); String ext_id = ""; if(StrUtil.isNotEmpty(material_id)){ JSONObject mater_jo = mater_wql.query("is_delete='0' and material_id = '" + material_id + "'").uniqueResult(0); @@ -572,6 +576,8 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { .setDbname("dataSource1") .addParam("flag", "6") .addParam("material_id", ext_id) + .addParam("source_name", sourceName) + .addParam("hide", hide) .addParam("mater_ids", allmaterialId) .process().getResultJSONArray(0); return ja; @@ -722,7 +728,7 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { list.add(MapOf.ofJ("receive_code", " ","material_code"," ", "material_name"," ","pcsn"," ","receive_qty",rHalfUp,"noin_qty",nHalfUp ,"source_name"," ")); break; case "3": - headers.putAll(MapOf.of("receive_code", "合同号","material_code","物料编码","material_name","物料名称","sumqty","合同重量","notqty","在途重量","norigtaxprice","含税单价","norigtaxmny","金额","name","供应商")); + headers.putAll(MapOf.of("receive_code", "合同号","material_code","物料编码","material_name","物料名称","sumqty","合同重量","notqty","在途重量","norigtaxprice","含税单价","norigtaxmny","金额","notmny","在途金额","name","供应商")); list = query3(whereJson); // byte[] bytes = Files.readAllBytes(Paths.get("/Users/mima0000/Desktop/data.txt")); // String s = new String(bytes); @@ -733,18 +739,22 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { String notqty = new BigDecimal(item.getDoubleValue("notqty")).setScale(2, RoundingMode.HALF_UP).toString(); String norigtaxprice = new BigDecimal(item.getDoubleValue("norigtaxprice")).setScale(2, RoundingMode.HALF_UP).toString(); String norigtaxmny = new BigDecimal(item.getDoubleValue("norigtaxmny")).setScale(2, RoundingMode.HALF_UP).toString(); + String notmny = new BigDecimal(item.getDoubleValue("notmny")).setScale(2, RoundingMode.HALF_UP).toString(); item.put("sumqty",sumqty); item.put("notqty",notqty); item.put("norigtaxprice",norigtaxprice); item.put("norigtaxmny",norigtaxmny); + item.put("notmny",notmny); }); double sumqtyD = list.stream().mapToDouble(o -> ((JSONObject) o).getDouble("sumqty")).sum(); double notqtyD = list.stream().mapToDouble(o -> ((JSONObject) o).getDouble("notqty")).sum(); double norigtaxmnyD = list.stream().mapToDouble(o -> ((JSONObject) o).getDouble("norigtaxmny")).sum(); + double notmnyD = list.stream().mapToDouble(o -> ((JSONObject) o).getDouble("notmny")).sum(); String sumqtySum = new BigDecimal(sumqtyD).setScale(2, RoundingMode.HALF_UP).toString(); String notqtySum = new BigDecimal(notqtyD).setScale(2, RoundingMode.HALF_UP).toString(); String norigtaxmnySum = new BigDecimal(norigtaxmnyD).setScale(2, RoundingMode.HALF_UP).toString(); - list.add(MapOf.ofJ("receive_code", " ","material_code"," ","material_name"," ","sumqty",sumqtySum,"notqty",notqtySum,"norigtaxprice"," ","norigtaxmny",norigtaxmnySum,"name"," ")); + String notmnySum = new BigDecimal(notmnyD).setScale(2, RoundingMode.HALF_UP).toString(); + list.add(MapOf.ofJ("receive_code", " ","material_code"," ","material_name"," ","sumqty",sumqtySum,"notqty",notqtySum,"norigtaxprice"," ","norigtaxmny",norigtaxmnySum,"notmny",notmnySum,"name"," ")); break; default: ; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql index 4ec41e72..ae680399 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_02.wql @@ -20,6 +20,7 @@ 输入.end_date TYPEAS s_string 输入.pcsn TYPEAS s_string 输入.material_code TYPEAS s_string + 输入.source_name TYPEAS s_string 输入.storagevehicle_code TYPEAS s_string 输入.bill_code TYPEAS s_string 输入.io_type TYPEAS s_string @@ -106,6 +107,9 @@ OPTION 输入.material_id <> "" dtl.material_id = 输入.material_id ENDOPTION + OPTION 输入.source_name <> "" + mst.source_name like "%" 输入.source_name "%" + ENDOPTION order by mater.material_code ENDSELECT ENDQUERY diff --git a/mes/qd/src/views/wms/statistics/materPlan/StructIvt2.vue b/mes/qd/src/views/wms/statistics/materPlan/StructIvt2.vue index 276849ac..715f0f22 100644 --- a/mes/qd/src/views/wms/statistics/materPlan/StructIvt2.vue +++ b/mes/qd/src/views/wms/statistics/materPlan/StructIvt2.vue @@ -1,9 +1,9 @@ @@ -98,7 +107,7 @@ export default { cxjList: [], XLList: [], fullscreenLoading: false, - queryrow: { material_id: '' }, + queryrow: { material_id: '', source_name: '' }, sortable: null, rows: [] } @@ -151,6 +160,7 @@ export default { }, close() { this.queryrow.material_id = '' + this.queryrow.source_name = '' this.tableDtl = [] this.$emit('update:dialogShow', false) }, @@ -164,6 +174,16 @@ export default { this.fullscreenLoading = false }) }, + MyQuery3(value) { + this.queryrow.source_name = value + this.fullscreenLoading = true + report.query2(this.queryrow).then(res => { + this.tableDtl = res + this.fullscreenLoading = false + }).catch(() => { + this.fullscreenLoading = false + }) + }, getSummaries(param) { const { columns, data } = param const sums = [] diff --git a/mes/qd/src/views/wms/statistics/materPlan/StructIvt3.vue b/mes/qd/src/views/wms/statistics/materPlan/StructIvt3.vue index 2b499743..4204f949 100644 --- a/mes/qd/src/views/wms/statistics/materPlan/StructIvt3.vue +++ b/mes/qd/src/views/wms/statistics/materPlan/StructIvt3.vue @@ -28,6 +28,19 @@ :value="item.material_id" /> + 供应商: + 隐藏在途重量为零 @@ -42,8 +55,8 @@ size="mini" @click="downExcel" > - 导出Excel - + 导出Excel + @@ -67,6 +80,7 @@ + @@ -99,7 +113,7 @@ export default { cxjList: [], XLList: [], fullscreenLoading: false, - queryrow: { material_id: '' }, + queryrow: { material_id: '', source_name: '', hide: true }, sortable: null, rows: [] } @@ -152,6 +166,8 @@ export default { }, close() { this.queryrow.material_id = '' + this.queryrow.source_name = '' + this.queryrow.hide = true this.tableDtl = [] this.$emit('update:dialogShow', false) }, @@ -165,6 +181,26 @@ export default { this.fullscreenLoading = false }) }, + MyQuery3(value) { + this.queryrow.source_name = value + this.fullscreenLoading = true + report.query3(this.queryrow).then(res => { + this.tableDtl = res + this.fullscreenLoading = false + }).catch(() => { + this.fullscreenLoading = false + }) + }, + MyQuery4(value) { + this.queryrow.hide = value + this.fullscreenLoading = true + report.query3(this.queryrow).then(res => { + this.tableDtl = res + this.fullscreenLoading = false + }).catch(() => { + this.fullscreenLoading = false + }) + }, getSummaries(param) { const { columns, data } = param const sums = [] @@ -212,6 +248,18 @@ export default { sums[index] = parseFloat(total).toFixed(3) sums[index] } + if (column.property === 'notmny') { + const total = values.reduce((prev, curr) => { + const value = Number(curr) + if (!isNaN(value)) { + return prev + curr + } else { + return prev + } + }, 0) + sums[index] = parseFloat(total).toFixed(3) + sums[index] + } }) return sums }, diff --git a/mes/qd/src/views/wms/statistics/materPlan/index.vue b/mes/qd/src/views/wms/statistics/materPlan/index.vue index ec1d2673..94373701 100644 --- a/mes/qd/src/views/wms/statistics/materPlan/index.vue +++ b/mes/qd/src/views/wms/statistics/materPlan/index.vue @@ -12,16 +12,16 @@ label-suffix=":" > - + - +
+
+