From 9834aeb017832d0421e834d77930064591a6bb19 Mon Sep 17 00:00:00 2001 From: mzr Date: Thu, 29 May 2025 08:54:29 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=89=A9=E6=96=99=E8=A1=8C=E5=A2=9E=E5=8A=A0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java index a5bf14b..30a7086 100644 --- a/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java +++ b/so/src/private/nccloud/api/impl/so/m30/APISaleOrderMaitainImpl.java @@ -1056,6 +1056,7 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain { UFDouble ntaxrate = BFPubTools.getUFDouble_NullAsZero(bodydata.get("ntaxrate")); newBvo.setAttributeValue("ntaxrate", ntaxrate); newBvo.setVbdef11(bodydata.getOrDefault("vbdef11", "") + ""); + newBvo.setVbdef14(bodydata.getOrDefault("vbdef14", "") + ""); newBvo.setCsaleorderbid(null); newBvo.setCcurrencyid(ybpk); newBvo.setFtaxtypeflag(1); From 4cac17c8bd294974eeea43cf8371c9002f6e7fc8 Mon Sep 17 00:00:00 2001 From: maolei Date: Thu, 29 May 2025 10:04:16 +0800 Subject: [PATCH 2/7] =?UTF-8?q?refactor(mmpac):=20=E9=87=8D=E6=9E=84=20MES?= =?UTF-8?q?=20=E5=90=8C=E6=AD=A5=E6=8E=A5=E5=8F=A3=E6=9E=84=E5=BB=BA=20pro?= =?UTF-8?q?perties=20=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 提取 buildProperties 方法,用于构建 MES 同步所需的 properties 数组 - 添加 addProperty 方法,简化单个 property 的添加过程 - 新增 SXZF22、SXZF23、SXZF24 字段的同步- 优化代码结构,提高可读性和可维护性 --- .../bp/rule/AfterApproveRuleSyncMes.java | 62 ++++++++++++++----- 1 file changed, 46 insertions(+), 16 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveRuleSyncMes.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveRuleSyncMes.java index d92f337..2a015f8 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveRuleSyncMes.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApproveRuleSyncMes.java @@ -302,22 +302,7 @@ public class AfterApproveRuleSyncMes implements IRule { } // ͨԶԴ - JSONArray properties = new JSONArray(); - JSONObject SXZF16 = new JSONObject(); - JSONObject SXZF17 = new JSONObject(); - JSONObject SXZF18 = new JSONObject(); - - SXZF16.put("propertyFiled", "SXZF16"); - SXZF17.put("propertyFiled", "SXZF17"); - SXZF18.put("propertyFiled", "SXZF18"); - - SXZF16.put("propertyValue", item.getVparentbillcode()); - SXZF17.put("propertyValue", item.getVparentmorowno()); - SXZF18.put("propertyValue", head.getVtrantypecode()); - - properties.add(SXZF16); - properties.add(SXZF17); - properties.add(SXZF18); + JSONArray properties = buildProperties(head, item); data.put("properties", properties); JSONObject requestPayload = new JSONObject(); @@ -334,6 +319,51 @@ public class AfterApproveRuleSyncMes implements IRule { obmlog.info(" " + vbillcode + " " + itemRow + " ѳɹ͵MESϵͳضѱ¼"); } + /** + * MESͬproperties + * + * @param head ͷ + * @param item ϸ + * @return JSONArray properties + */ + private JSONArray buildProperties(PMOHeadVO head, PMOItemVO item) { + JSONArray properties = new JSONArray(); + + // SXZF16 - ϼ + addProperty(properties, "SXZF16", item.getVparentbillcode()); + + // SXZF17 - ϼк + addProperty(properties, "SXZF17", item.getVparentmorowno()); + + // SXZF18 - ͱ + addProperty(properties, "SXZF18", head.getVtrantypecode()); + + // SXZF22 - ͱ + addProperty(properties, "SXZF22", head.getVtrantypecode()); + + // SXZF23 - + addProperty(properties, "SXZF23", head.getCpmohid()); + + // SXZF24 - ϸ + addProperty(properties, "SXZF24", item.getCmoid()); + + return properties; + } + + /** + * ӵpropertyproperties + * + * @param properties JSONArray + * @param propertyField ֶ + * @param propertyValue ֵ + */ + private void addProperty(JSONArray properties, String propertyField, String propertyValue) { + JSONObject property = new JSONObject(); + property.put("propertyFiled", propertyField); + property.put("propertyValue", propertyValue); + properties.add(property); + } + /** * ѯ From c4cc1be139867c37b30f84c93b2de59c40b736d3 Mon Sep 17 00:00:00 2001 From: maolei Date: Thu, 29 May 2025 10:30:20 +0800 Subject: [PATCH 3/7] =?UTF-8?q?uapbd:=20=E6=9F=A5=E8=AF=A2=20bom=20?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=BC=96=E7=A0=81=E5=92=8C=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=97=B6=E5=A2=9E=E5=8A=A0=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在查询组织编码的 SQL 中添加了 dr = 0 条件,以确保只获取未删除的记录 - 在查询 BOM 版本的 SQL 中也添加了 dr = 0条件,保证只获取有效记录 --- .../nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java b/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java index 30ccfcd..a443322 100644 --- a/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java +++ b/uapbd/src/private/nccloud/api/impl/mmbd/bom/APIBomBusinessServiceImpl.java @@ -1558,7 +1558,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { try { // ѯ֯ - String sql = "SELECT code FROM org_orgs WHERE pk_org = ?"; + String sql = "SELECT code FROM org_orgs WHERE dr = 0 and pk_org = ?"; SQLParameter param = new SQLParameter(); param.addParam(pk_org); String orgCode = (String) DAO.executeQuery(sql, param, new ColumnProcessor()); @@ -1588,7 +1588,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService { StringBuilder sql = new StringBuilder(); sql.append("SELECT MAX(TO_NUMBER(hversion)) as max_version "); sql.append("FROM bd_bom "); - sql.append("WHERE pk_org = ? "); + sql.append("WHERE dr = 0 and pk_org = ? "); SQLParameter param = new SQLParameter(); param.addParam(pk_org); From d38b1d0be0039357132140a6ef28f8b9e85fc8a9 Mon Sep 17 00:00:00 2001 From: mzr Date: Thu, 29 May 2025 10:42:39 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=8D=95=E4=BD=8D=E6=88=90=E6=9C=AC?= =?UTF-8?q?=E5=AF=B9=E6=AF=94=E8=A1=A8-=E5=90=88=E8=AE=A1=E8=A1=8C?= =?UTF-8?q?=E4=B8=8D=E5=9C=A8=E6=9C=80=E6=9C=AB=E4=BF=AE=E5=A4=8D-?= =?UTF-8?q?=E9=9B=86=E5=9B=A2=E8=80=81=E5=B8=88=E8=A1=A5=E4=B8=81=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeascostcontrastComServiceImpl.java | 648 +++++++++++------- 1 file changed, 404 insertions(+), 244 deletions(-) diff --git a/cm/src/private/nccloud/pubimpl/cm/cmreport/meascostcontrast/MeascostcontrastComServiceImpl.java b/cm/src/private/nccloud/pubimpl/cm/cmreport/meascostcontrast/MeascostcontrastComServiceImpl.java index 27a73dd..a5a09ec 100644 --- a/cm/src/private/nccloud/pubimpl/cm/cmreport/meascostcontrast/MeascostcontrastComServiceImpl.java +++ b/cm/src/private/nccloud/pubimpl/cm/cmreport/meascostcontrast/MeascostcontrastComServiceImpl.java @@ -1,29 +1,11 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by FernFlower decompiler) -// - package nccloud.pubimpl.cm.cmreport.meascostcontrast; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import nc.bd.framework.base.CMArrayUtil; import nc.bd.framework.base.CMNumberUtil2; import nc.bd.framework.base.CMStringUtil; import nc.bs.cm.meascostcontrast.MeasCostQueryVOConverter; import nc.cmpub.business.util.CMUtil; -import nc.vo.cm.meascostcontrast.CMCommonConst1614; -import nc.vo.cm.meascostcontrast.CMLangConst1614; -import nc.vo.cm.meascostcontrast.MeasCostItemVO; -import nc.vo.cm.meascostcontrast.MeasCostParamVO; -import nc.vo.cm.meascostcontrast.MeasCostQueryConditionVO; -import nc.vo.cm.meascostcontrast.MeasCostShowVO; -import nc.vo.cm.meascostcontrast.MeasCostUtil; +import nc.vo.cm.meascostcontrast.*; import nc.vo.cmpub.framework.report.CMConditionVO; import nc.vo.pub.BusinessException; import nc.vo.pub.lang.UFDouble; @@ -33,379 +15,557 @@ import nccloud.pubitf.cm.meascostcontrast.ColumnMultiHeadInfo; import nccloud.pubitf.cm.meascostcontrast.IColumnInfo; import nccloud.pubitf.cm.meascostcontrast.IMeascostcontrastComService; +import java.util.*; + +/** + * @author wangjwt + * @version 2019-4-29 11:02:23 + * @since v6.3 + */ public class MeascostcontrastComServiceImpl implements IMeascostcontrastComService { + /** + * ̬ + */ private List sumFieldCode = null; - public MeascostcontrastComServiceImpl() { - } - + @Override public Map queryMeascostcontrast(MeasCostShowVO showVO, MeasCostParamVO paramVO) throws BusinessException { - this.sumFieldCode = new ArrayList(); + this.sumFieldCode = new ArrayList(); + // ȡ߼ѯ Map conditionMap = paramVO.getConditionMap(); + // ȡ̬ List itemgroupMap = null; - List> data = new ArrayList(); - Map result = new HashMap(); + // شжӦ + List> data = new ArrayList>(); + // ܵĽ + Map result = new HashMap(); + // ÷о崦 if (showVO != null) { - Map digitsMap = showVO.getDigitsMap(); + Map digitsMap = showVO.getDigitsMap();// бϢ(ۡ) + // Ҫ FactorVO[] factorVOs = this.filteShowFactor(showVO.getFactorVOs(), showVO.getFactorMapShow(), paramVO); + // ʼ̬ͷ------ֻ̬ʾݵ if (factorVOs != null) { itemgroupMap = this.reBuildItem(conditionMap, factorVOs, digitsMap); } - + // ʼ List itemVOList = showVO.getItemVOList(); if (itemVOList != null) { - MeasCostItemVO[] itemVOs = (MeasCostItemVO[])itemVOList.toArray(new MeasCostItemVO[itemVOList.size()]); + MeasCostItemVO[] itemVOs = itemVOList.toArray(new MeasCostItemVO[itemVOList.size()]); + // װб data = this.dealQueryResult(itemVOs, digitsMap); + // ϼһע͵ this.sortVOByCode2(data); } } - result.put("column", itemgroupMap); result.put("data", data); return result; } + /** + * ձVO + * + * @param data + */ private void sortVOByCode2(List> data) { if (data != null) { Collections.sort(data, new Comparator>() { + @Override public int compare(Map o1, Map o2) { - String code1 = (String)o1.get("bookname"); - String ortname = (String)o1.get("orgname"); + // ģ + int flag; + // 1.ϼ + String code1 = (String) o1.get("bookname"); + String ortname = (String) o1.get("orgname"); + String code2 = (String) o2.get("bookname"); + String ortname2 = (String) o2.get("orgname"); + // Ӣϼ廷Total Ҫ ֻ˲кϼֵûֵֹ߱ if (CMStringUtil.isNotEmpty(code1) && CMStringUtil.isEmpty(ortname)) { - int flag = 1; + flag = 1; return flag; - } else { - code1 = o1.get("profitcentername") == null ? "" : (String)o1.get("profitcentername"); - String code2 = o2.get("profitcentername") == null ? "" : (String)o2.get("profitcentername"); - int flag = code1.compareTo(code2); - if (flag != 0) { - return flag; - } else { - code1 = (String)o1.get("orgname") == null ? "" : (String)o1.get("orgname"); - code2 = (String)o2.get("orgname") == null ? "" : (String)o2.get("orgname"); - flag = code1.compareTo(code2); - if (flag != 0) { - return flag; - } else { - code1 = (String)o1.get("cccode") == null ? "" : (String)o1.get("cccode"); - code2 = (String)o2.get("cccode") == null ? "" : (String)o2.get("cccode"); - flag = code1.compareTo(code2); - if (flag != 0) { - return flag; - } else { - code1 = (String)o1.get("vcostobjcode") == null ? "" : (String)o1.get("vcostobjcode"); - code2 = (String)o2.get("vcostobjcode") == null ? "" : (String)o2.get("vcostobjcode"); - flag = code1.compareTo(code2); - return flag; - } - } - } + } else if (CMStringUtil.isNotEmpty(code2) && CMStringUtil.isEmpty(ortname2)) { + return -1; } + /*if(code1.equals("Total")){ + flag = 1; + return flag; + }else if(code1.equals("ϼ")){ + flag = 1; + return flag; + + }*/ + // 2. + code1 = o1.get("profitcentername") == null ? "" : (String) o1.get("profitcentername"); + code2 = o2.get("profitcentername") == null ? "" : (String) o2.get("profitcentername"); + flag = code1.compareTo(code2); + if (flag != 0) { + return flag; + } + // 3. + code1 = (String) o1.get("orgname") == null ? "" : (String) o1.get("orgname"); + code2 = (String) o2.get("orgname") == null ? "" : (String) o2.get("orgname"); + flag = code1.compareTo(code2); + if (flag != 0) { + return flag; + } + // 4.ɱ + code1 = (String) o1.get("cccode") == null ? "" : (String) o1.get("cccode"); + code2 = (String) o2.get("cccode") == null ? "" : (String) o2.get("cccode"); + flag = code1.compareTo(code2); + if (flag != 0) { + return flag; + } + // 5.ٰƷ + code1 = (String) o1.get("vcostobjcode") == null ? "" : (String) o1.get("vcostobjcode"); + code2 = (String) o2.get("vcostobjcode") == null ? "" : (String) o2.get("vcostobjcode"); + flag = code1.compareTo(code2); + return flag; } }); } - } + /** + * mapkeyΪvalueΪֵ + * ȡļϲͲֵƴװһ + * + * @param itemVOs + * @param digitsMap + * @return + */ private List> dealQueryResult(MeasCostItemVO[] itemVOs, Map digitsMap) { + /** + * "data":[ + * row { + * "nmeascostncost":"204.00", + * "1002ncost":"1000.000", + * "vcostobjcode":"001", + * "vcostobjname":"Ϸ001", + * "nsumncost":"1020.000", + * "nnum":"5.00", + * "cccode":"", + * "ccname":"", + * "hx02ncost":"20.000" + * }, + */ if (CMArrayUtil.isEmpty(itemVOs)) { return null; - } else { - List> data = new ArrayList(); - MeasCostItemVO[] result = new MeasCostItemVO[itemVOs.length + 1]; - UFDouble nsumncost = UFDouble.ZERO_DBL; - UFDouble nnum = UFDouble.ZERO_DBL; - Map sumMap = new HashMap(); - - for(String field : this.sumFieldCode) { - sumMap.put(field, UFDouble.ZERO_DBL); - } - - int i = 0; - - for(MeasCostItemVO item : itemVOs) { - if (item.getNnum() != null) { - nnum = CMNumberUtil2.add(new UFDouble[]{nnum, item.getNnum()}); - } - - if (item.getAttributeValue("nsumncost") != null) { - nsumncost = CMNumberUtil2.add(new UFDouble[]{nsumncost, (UFDouble)item.getAttributeValue("nsumncost")}); - } - - for(String key : sumMap.keySet()) { - UFDouble oldVal = (UFDouble)sumMap.get(key); - if (item.getAttributeValue(key) != null) { - UFDouble newVal = CMNumberUtil2.add(new UFDouble[]{oldVal, (UFDouble)item.getAttributeValue(key)}); - sumMap.put(key, newVal); - } - } - - result[i] = item; - ++i; - } - - this.processNullBignumber(result); - Integer sumBignumber = this.getSumNumBignumber(result); - MeasCostItemVO newItem = new MeasCostItemVO(); - MeasCostItemVO tempMeasCostItemVO = itemVOs[0]; - newItem.setBookname(CMLangConst1614.GET_NSUM_NAME()); - newItem.setAttributeValue("nnum", nnum); - newItem.setAttributeValue("nsumncost", nsumncost); - - for(String key : sumMap.keySet()) { - newItem.setAttributeValue(key, sumMap.get(key)); - } - - result[itemVOs.length] = newItem; - - for(MeasCostItemVO measCostItemVO : result) { - Map row = new HashMap(); - row.put("bookname", measCostItemVO.getBookname()); - row.put("profitcentername", measCostItemVO.getProfitcentername()); - row.put("orgname", measCostItemVO.getOrgname()); - row.put("cccode", measCostItemVO.getCccode()); - row.put("ccname", measCostItemVO.getCcname()); - row.put("vcostobjcode", measCostItemVO.getVcostobjcode()); - row.put("vcostobjname", measCostItemVO.getVcostobjname()); - row.put("nnum", this.setColumnScale(measCostItemVO.getNnum(), measCostItemVO.getBitnumber())); - row.put("measdocname", measCostItemVO.getMeasdocname()); - row.put("materialspec", measCostItemVO.getMaterialspec()); - row.put("materialtype", measCostItemVO.getMaterialtype()); - row.put("projectcode", measCostItemVO.getProjectcode()); - row.put("projectname", measCostItemVO.getProjectname()); - if (measCostItemVO.getFactorMap() != null) { - for(String str : measCostItemVO.getFactorMap().keySet()) { - if (str.equals("nmeascostncost")) { - row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), (Integer)digitsMap.get("PriceDigitsKey"))); - } else if (str.equals("nsumncost")) { - row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), (Integer)digitsMap.get("MoneyDigitsKey"))); - } else if (str.equals("nnum")) { - row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), sumBignumber)); - } else { - row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), (Integer)digitsMap.get("MoneyDigitsKey"))); - } - } - } - - data.add(row); - } - - return data; } + List> data = new ArrayList>(); + MeasCostItemVO[] result = new MeasCostItemVO[itemVOs.length + 1]; + UFDouble nsumncost = UFDouble.ZERO_DBL;// ϼ + UFDouble nnum = UFDouble.ZERO_DBL;// + Map sumMap = new HashMap(); + for (String field : this.sumFieldCode) { + sumMap.put(field, UFDouble.ZERO_DBL); + } + + int i = 0; + for (MeasCostItemVO item : itemVOs) { + if (item.getNnum() != null) { + nnum = CMNumberUtil2.add(nnum, item.getNnum()); + } + if (item.getAttributeValue("nsumncost") != null) { + nsumncost = CMNumberUtil2.add(nsumncost, (UFDouble) item.getAttributeValue("nsumncost")); + } + for (String key : sumMap.keySet()) { + UFDouble oldVal = sumMap.get(key); + if (item.getAttributeValue(key) != null) { + UFDouble newVal = CMNumberUtil2.add(oldVal, (UFDouble) item.getAttributeValue(key)); + sumMap.put(key, newVal); + } + } + result[i] = item; + i++; + } + // ΪյݣĬϾȸ2λһҪڼϼ֮ǰ + this.processNullBignumber(result); + // ȡϼľȣȡÿһеľȣȻȡľȸϼ + Integer sumBignumber = this.getSumNumBignumber(result); + + MeasCostItemVO newItem = new MeasCostItemVO(); + MeasCostItemVO tempMeasCostItemVO = itemVOs[0]; + + // ̬ϼƴ--ϼƷӵ˲ + /*if (!CMStringUtil.isEmpty(tempMeasCostItemVO.getCccode())) { + newItem.setCccode(CMLangConst1614.GET_NSUM_NAME());// res:ϼƵɱ + }else{ + newItem.setCccode(""); + newItem.setVcostobjcode(CMLangConst1614.GET_NSUM_NAME());// res:ϼƵƷ/ɱ + }*/ + newItem.setBookname(CMLangConst1614.GET_NSUM_NAME()); + newItem.setAttributeValue("nnum", nnum); + newItem.setAttributeValue("nsumncost", nsumncost); + for (String key : sumMap.keySet()) { + newItem.setAttributeValue(key, sumMap.get(key)); + } + result[itemVOs.length] = newItem; + for (MeasCostItemVO measCostItemVO : result) { + Map row = new HashMap(); + // ˲ + row.put(CMCommonConst1614.BOOKNAME, measCostItemVO.getBookname()); + // + row.put(CMCommonConst1614.PROFITCENTERNAME, measCostItemVO.getProfitcentername()); + // + row.put(CMCommonConst1614.ORGNAME, measCostItemVO.getOrgname()); + row.put(CMCommonConst1614.CCCODE, measCostItemVO.getCccode()); + row.put(CMCommonConst1614.CCNAME, measCostItemVO.getCcname()); + row.put(CMCommonConst1614.VCOSTOBJCODE, measCostItemVO.getVcostobjcode()); + row.put(CMCommonConst1614.VCOSTOBJNAME, measCostItemVO.getVcostobjname()); + // digitsMap.get("NumDigitsKey")С2λ¾⣬ҪֱӶλ + row.put(CMCommonConst1614.NNUM, this.setColumnScale(measCostItemVO.getNnum(), measCostItemVO.getBitnumber()));// + + // ֶ ͺ λ ----ֵӦ + row.put(CMCommonConst1614.MEASDOCNAME, measCostItemVO.getMeasdocname()); + row.put(CMCommonConst1614.MATERIALSPEC, measCostItemVO.getMaterialspec()); + row.put(CMCommonConst1614.MATERIALTYPE, measCostItemVO.getMaterialtype()); + // ĿĿ + row.put("projectcode", measCostItemVO.getProjectcode()); + row.put("projectname", measCostItemVO.getProjectname()); + if (measCostItemVO.getFactorMap() != null) { + for (String str : measCostItemVO.getFactorMap().keySet()) { + if (str.equals("nmeascostncost")) {// λɱ + row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), digitsMap.get("PriceDigitsKey"))); + } else if (str.equals("nsumncost")) {// ϼ + row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), digitsMap.get("MoneyDigitsKey"))); + } else if (str.equals("nnum")) {// + // digitsMap.get("NumDigitsKey")С2λ¾⣬ҪֱӶλ + row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), sumBignumber)); + } else {// кҪ + row.put(str, this.setColumnScale(measCostItemVO.getFactorMap().get(str), digitsMap.get("MoneyDigitsKey"))); + } + } + } + data.add(row); + } + return data; } + /** + * ȡϼľȣȡÿһеľȣȻȡľȸϼ + * + * @param measCostItemVOS + * @return + */ public Integer getSumNumBignumber(MeasCostItemVO[] measCostItemVOS) { if (CMArrayUtil.isEmpty(measCostItemVOS)) { return 0; - } else { - Integer bignumber = 0; - - for(MeasCostItemVO measCostItemVO : measCostItemVOS) { - if (measCostItemVO != null && measCostItemVO.getBitnumber() != null && measCostItemVO.getBitnumber() > bignumber) { - bignumber = measCostItemVO.getBitnumber(); - } - } - - return bignumber; } + Integer bignumber = 0; + for (MeasCostItemVO measCostItemVO : measCostItemVOS) { + if (measCostItemVO != null && measCostItemVO.getBitnumber() != null && measCostItemVO.getBitnumber() > bignumber) { + bignumber = measCostItemVO.getBitnumber(); + } + } + return bignumber; } + /** + * λnullϲƷࡢϻѯòλĬϰ2λȴ + * + * @param measCostItemVOS + * @return + */ public void processNullBignumber(MeasCostItemVO[] measCostItemVOS) { - if (!CMArrayUtil.isEmpty(measCostItemVOS)) { - for(MeasCostItemVO measCostItemVO : measCostItemVOS) { - if (measCostItemVO != null && measCostItemVO.getBitnumber() == null) { - measCostItemVO.setBitnumber(2); - } + if (CMArrayUtil.isEmpty(measCostItemVOS)) { + return; + } + for (MeasCostItemVO measCostItemVO : measCostItemVOS) { + if (measCostItemVO != null && measCostItemVO.getBitnumber() == null) { + // ȶռλȡϳɱࡢϻȡʱòȣnull2λȴ޸ʱ䣺2023.08.23޸ˣxuluv + measCostItemVO.setBitnumber(2); } - } } + /** + * ȴ + * + * @param value ص + * @param scale + */ private UFDouble setColumnScale(Object value, Integer scale) { - if (value != null && !((UFDouble)value).equals(UFDouble.ZERO_DBL)) { - UFDouble uf = (new UFDouble(Double.valueOf(value.toString()))).setScale(scale, 4); - return uf; - } else { + if (value == null || ((UFDouble) value).equals(UFDouble.ZERO_DBL)) { return null; - } - } - - private List reBuildItem(Map conditionMap, FactorVO[] factorVOs, Map digitsMap) { - String[] showDetailDiff = MeasCostUtil.getShowDetailDiff(conditionMap); - Integer ishowtype = MeasCostQueryConditionVO.PRODUCT_VALUE; - if (conditionMap.containsKey("ishowtype") && ((CMConditionVO)conditionMap.get("ishowtype")).getSingleValue() != null) { - ishowtype = Integer.valueOf(((CMConditionVO)conditionMap.get("ishowtype")).getSingleValue()); - } - - List itemsList = new ArrayList(); - this.setCodeNameItems(itemsList, ishowtype, digitsMap, conditionMap); - List var7; - if (CMArrayUtil.isEquals(CMCommonConst1614.DEFAULT_ITEMS, showDetailDiff)) { - var7 = this.setSingleItems(itemsList, factorVOs, digitsMap); } else { - var7 = this.setDoubleItems(itemsList, factorVOs, showDetailDiff, digitsMap); + UFDouble uf = new UFDouble(Double.valueOf(value.toString())).setScale(scale, 4); + return uf; } - - return var7; } - private void setCodeNameItems(List itemsList, Integer ishowtype, Map digitsMap, Map conditionMap) { - String[] itemNames = this.getItemNameByShowType(ishowtype); - Integer isSumByCostcenter = conditionMap.containsKey("issumbycostcenter") ? Integer.valueOf(((CMConditionVO)conditionMap.get("issumbycostcenter")).getSingleValue()) : MeasCostQueryConditionVO.IS_COSTCENTER_VALUE; - itemsList.add(new ColumnInfo(CMLangConst1614.GET_ACCBOOK(), "bookname", ColumnInfo.LEFT)); - itemsList.add(new ColumnInfo(CMLangConst1614.GET_PROFITCENTER(), "profitcentername", ColumnInfo.LEFT)); - itemsList.add(new ColumnInfo(CMLangConst1614.GET_ORG(), "orgname", ColumnInfo.LEFT)); - if (MeasCostQueryConditionVO.IS_COSTCENTER_VALUE.equals(isSumByCostcenter)) { - itemsList.add(new ColumnInfo(itemNames[0], "cccode", ColumnInfo.LEFT)); - itemsList.add(new ColumnInfo(itemNames[1], "ccname", ColumnInfo.LEFT)); + /** + * ع̬бͷ + * + * @param factorVOs "Ҫ"̬гʼ + * @param conditionMap ߼ѯ + * @param digitsMap б----ۡ + * @return ͷеĶӦϵmap + */ + private List reBuildItem(Map conditionMap, FactorVO[] factorVOs, Map digitsMap) { + + // ȡеʾϸֱ֣½סʾ׼ɱֳɱġĬϣ + String[] showDetailDiff = MeasCostUtil.getShowDetailDiff(conditionMap); + // ȡóɱʾʽɱ󡢲ƷƷɱࡢƷࣩ + Integer ishowtype = MeasCostQueryConditionVO.PRODUCT_VALUE; + if (conditionMap.containsKey(MeasCostQueryConditionVO.ISHOWTYPE) && conditionMap.get(MeasCostQueryConditionVO.ISHOWTYPE).getSingleValue() != null) { + ishowtype = Integer.valueOf(conditionMap.get(MeasCostQueryConditionVO.ISHOWTYPE).getSingleValue()); } - itemsList.add(new ColumnInfo(itemNames[2], "vcostobjcode", ColumnInfo.LEFT)); - itemsList.add(new ColumnInfo(itemNames[3], "vcostobjname", ColumnInfo.LEFT)); + // еlist ----------getColumn + List itemsList = new ArrayList(); + // // еĶӦϵ + // MapList itemgroupMapList = new MapList(); + // ù̶ǰУ浽list + this.setCodeNameItems(itemsList, ishowtype, digitsMap, conditionMap); + // ʾʽΪ㣬б浽list + if (CMArrayUtil.isEquals(CMCommonConst1614.DEFAULT_ITEMS, showDetailDiff)) { + itemsList = this.setSingleItems(itemsList, factorVOs, digitsMap); + } + // ʾʽΪ˫㣬Ӹϵʽ浽list + else { + itemsList = this.setDoubleItems(itemsList, factorVOs, showDetailDiff, digitsMap); + } + // + + return itemsList; + } + + /** + * ù̶УУƷ롢Ʒơ + * + * @param ishowtype ʾʽɱ󡢲ƷƷɱࡢƷࣩ + */ + private void setCodeNameItems(List itemsList, Integer ishowtype, Map digitsMap, Map conditionMap) { + // ȡòƷͲƷе{0Ʒ1Ʒ} + String[] itemNames = this.getItemNameByShowType(ishowtype); + + // ǷаɱĻܣֱӻܳɱ + Integer isSumByCostcenter = conditionMap.containsKey(MeasCostQueryConditionVO.ISSUMBYCOSTCENTER) ? Integer.valueOf(conditionMap.get( + MeasCostQueryConditionVO.ISSUMBYCOSTCENTER).getSingleValue()) : MeasCostQueryConditionVO.IS_COSTCENTER_VALUE; + // ˲ + itemsList.add(new ColumnInfo(CMLangConst1614.GET_ACCBOOK(), CMCommonConst1614.BOOKNAME, ColumnInfo.LEFT)); + // + itemsList.add(new ColumnInfo(CMLangConst1614.GET_PROFITCENTER(), CMCommonConst1614.PROFITCENTERNAME, ColumnInfo.LEFT)); + // + itemsList.add(new ColumnInfo(CMLangConst1614.GET_ORG(), CMCommonConst1614.ORGNAME, ColumnInfo.LEFT)); + // ճɱļ + if (MeasCostQueryConditionVO.IS_COSTCENTER_VALUE.equals(isSumByCostcenter)) { + itemsList.add(new ColumnInfo(itemNames[0], CMCommonConst1614.CCCODE, ColumnInfo.LEFT)); + // "ɱ" + itemsList.add(new ColumnInfo(itemNames[1], CMCommonConst1614.CCNAME, ColumnInfo.LEFT)); + } + // ճɱļ + // Ϸе + // "ɱı" + // "Ʒ" + itemsList.add(new ColumnInfo(itemNames[2], CMCommonConst1614.VCOSTOBJCODE, ColumnInfo.LEFT)); + + // "Ʒ" + itemsList.add(new ColumnInfo(itemNames[3], CMCommonConst1614.VCOSTOBJNAME, ColumnInfo.LEFT)); + if (MeasCostQueryConditionVO.COSTOBJECT_VALUE.equals(ishowtype) || MeasCostQueryConditionVO.PRODUCT_VALUE.equals(ishowtype)) { - itemsList.add(new ColumnInfo(CMLangConst1614.GET_MATERIALSPEC(), "materialspec", ColumnInfo.LEFT)); - itemsList.add(new ColumnInfo(CMLangConst1614.GET_MATERIALTYPE(), "materialtype", ColumnInfo.LEFT)); - itemsList.add(new ColumnInfo(CMLangConst1614.GET_MEASDOCNAME(), "measdocname", ColumnInfo.LEFT)); + // ù + itemsList.add(new ColumnInfo(CMLangConst1614.GET_MATERIALSPEC(), CMCommonConst1614.MATERIALSPEC, ColumnInfo.LEFT)); + // ͺ + itemsList.add(new ColumnInfo(CMLangConst1614.GET_MATERIALTYPE(), CMCommonConst1614.MATERIALTYPE, ColumnInfo.LEFT)); + // üλ + itemsList.add(new ColumnInfo(CMLangConst1614.GET_MEASDOCNAME(), CMCommonConst1614.MEASDOCNAME, ColumnInfo.LEFT)); } // todo ͿĿص itemsList.add(new ColumnInfo("Ŀ", "projectcode", ColumnInfo.LEFT)); itemsList.add(new ColumnInfo("Ŀ", "projectname", ColumnInfo.LEFT)); - - itemsList.add(new ColumnInfo(CMLangConst1614.GET_NNUM_NAME(), "nnum", ColumnInfo.RIGTH)); + // "" + itemsList.add(new ColumnInfo(CMLangConst1614.GET_NNUM_NAME(), CMCommonConst1614.NNUM, ColumnInfo.RIGTH)); } + /** + * ʾʽͬȡǰе + * + * @param ishowtype ʾʽɱ󡢲ƷƷɱࡢƷࣩ + * @return ַ飺{0Ʒ1Ʒ} + */ private String[] getItemNameByShowType(Integer ishowtype) { String[] itemName = new String[4]; itemName[0] = CMLangConst1614.GET_CENTERCODE_NAME(); itemName[1] = CMLangConst1614.GET_CENTERNAME_NAME(); + // ʾʽɱ if (MeasCostQueryConditionVO.COSTOBJECT_VALUE.equals(ishowtype)) { itemName[2] = CMLangConst1614.GET_OBJECT_CODE_NAME(); itemName[3] = CMLangConst1614.GET_OBJECT_NAME(); - } else if (MeasCostQueryConditionVO.PRODUCT_VALUE.equals(ishowtype)) { + } + // ʾʽƷ + else if (MeasCostQueryConditionVO.PRODUCT_VALUE.equals(ishowtype)) { itemName[2] = CMLangConst1614.GET_PRODUCT_CODE_NAME(); itemName[3] = CMLangConst1614.GET_PRODUCT_NAME(); - } else if (MeasCostQueryConditionVO.PRODUCT_COST_VALUE.equals(ishowtype)) { + } + // ʾʽƷɱ + else if (MeasCostQueryConditionVO.PRODUCT_COST_VALUE.equals(ishowtype)) { itemName[2] = CMLangConst1614.GET_PRODUCT_COST_CODE_NAME(); itemName[3] = CMLangConst1614.GET_PRODUCT_COST_NAME(); - } else if (MeasCostQueryConditionVO.PRODUCT_BASIC_VALUE.equals(ishowtype)) { + } + // ʾʽƷ + else if (MeasCostQueryConditionVO.PRODUCT_BASIC_VALUE.equals(ishowtype)) { itemName[2] = CMLangConst1614.GET_PRODUCT_BASIC_CODE_NAME(); itemName[3] = CMLangConst1614.GET_PRODUCT_BASIC_NAME(); } - return itemName; } + /** + * Ҫ + * + * @param vos + * @param factorMapShow + * @param paramVO + * @return + */ private FactorVO[] filteShowFactor(FactorVO[] vos, Map factorMapShow, MeasCostParamVO paramVO) { + // 鿴ǰʾҪءĬΪչʾҪ Map conditionMap = paramVO.getConditionMap(); - Integer isshowallfactors = conditionMap.containsKey("isshowallfactors") ? Integer.valueOf(((CMConditionVO)conditionMap.get("isshowallfactors")).getSingleValue()) : MeasCostQueryConditionVO.NO_SHOW_FACTORS_VALUE; - FactorVO[] result = null; - if (!MeasCostQueryConditionVO.NO_SHOW_FACTORS_VALUE.equals(isshowallfactors)) { - result = (new MeasCostQueryVOConverter()).getShowFactorByParam(paramVO, Arrays.asList(vos), factorMapShow); - } else { - List tmp = new ArrayList(); - String[] factorcodes = (String[])factorMapShow.keySet().toArray(new String[0]); + Integer isshowallfactors = conditionMap.containsKey(MeasCostQueryConditionVO.ISSHOWALLFACTORS) ? Integer.valueOf(conditionMap.get( + MeasCostQueryConditionVO.ISSHOWALLFACTORS).getSingleValue()) : MeasCostQueryConditionVO.NO_SHOW_FACTORS_VALUE; - for(String code : factorcodes) { - for(FactorVO vo : vos) { + FactorVO[] result = null; + + // ֵΪĬֵʱ + if (!MeasCostQueryConditionVO.NO_SHOW_FACTORS_VALUE.equals(isshowallfactors)) { + // ҪԱҪأֻҪҪظݲѯ˺ȫչʾ + result = new MeasCostQueryVOConverter().getShowFactorByParam(paramVO, Arrays.asList(vos), factorMapShow); + + } else { + List tmp = new ArrayList(); + String[] factorcodes = factorMapShow.keySet().toArray(new String[0]); + for (String code : factorcodes) { + for (FactorVO vo : vos) { if (vo.getFactorcode().equals(code)) { tmp.add(vo); break; } } } - - result = (FactorVO[])tmp.toArray(new FactorVO[0]); + result = tmp.toArray(new FactorVO[0]); } + // Ա this.sortVOByCode(result); return result; } + /** + * ձVO + * + * @param vos + */ private void sortVOByCode(FactorVO[] vos) { - if (vos != null && vos.length >= 2) { - Arrays.sort(vos, new Comparator() { - public int compare(FactorVO o1, FactorVO o2) { - String code1 = (String)o1.getAttributeValue("factorcode"); - String code2 = (String)o2.getAttributeValue("factorcode"); - return code1.compareTo(code2); - } - }); + if (vos == null || vos.length < 2) { + return; } + Arrays.sort(vos, new Comparator() { + + @Override + public int compare(FactorVO o1, FactorVO o2) { + String code1 = (String) o1.getAttributeValue(FactorVO.FACTORCODE); + String code2 = (String) o2.getAttributeValue(FactorVO.FACTORCODE); + return code1.compareTo(code2); + } + }); } + /** + * ʱб浽list + * + * @param itemsList еlist + * @param factorVOs "Ҫ"̬гʼ + */ private List setSingleItems(List itemsList, FactorVO[] factorVOs, Map digitsMap) { - itemsList.add(new ColumnInfo(CMLangConst1614.GET_NMEASCOST_NAME(), MeasCostUtil.getItemCodeByRule("nmeascost", "ncost"), ColumnInfo.RIGTH)); - itemsList.add(new ColumnInfo(CMLangConst1614.GET_NSUM_NAME(), MeasCostUtil.getItemCodeByRule("nsum", "ncost"), ColumnInfo.RIGTH)); - - for(FactorVO factorVO : factorVOs) { - String itemCode = MeasCostUtil.getItemCodeByRule(factorVO.getFactorcode(), "ncost"); - String var10000 = factorVO.getFactorcode(); - String itemName = var10000 + "-" + CMUtil.getNameByMultiLang(factorVO, "factorname"); + // "λɱ" + itemsList.add(new ColumnInfo(CMLangConst1614.GET_NMEASCOST_NAME(), MeasCostUtil.getItemCodeByRule(CMCommonConst1614.NMEASCOST, CMCommonConst1614.NCOST), ColumnInfo.RIGTH)); + // "ϼ" + itemsList.add(new ColumnInfo(CMLangConst1614.GET_NSUM_NAME(), MeasCostUtil.getItemCodeByRule(CMCommonConst1614.NSUM, CMCommonConst1614.NCOST), ColumnInfo.RIGTH)); + // "Ҫ" + for (FactorVO factorVO : factorVOs) { + String itemCode = MeasCostUtil.getItemCodeByRule(factorVO.getFactorcode(), CMCommonConst1614.NCOST); + String itemName = factorVO.getFactorcode() + "-" + CMUtil.getNameByMultiLang(factorVO, FactorVO.FACTORNAME); + // Ӷ̬ itemsList.add(new ColumnInfo(itemName, itemCode, ColumnInfo.RIGTH)); this.sumFieldCode.add(itemCode); } - return itemsList; } + /** + * ˫ʱ²б浽listرͷеĶӦϵMap + * + * @param itemsList еlist + * @param factorVOs "Ҫ"̬гʼ + * @param showDetailDiff еʾʽֱ½סʾ׼ɱֳɱġĬϣ + * @return еĶӦϵMap + */ private List setDoubleItems(List itemsList, FactorVO[] factorVOs, String[] showDetailDiff, Map digitsMap) { + // ŶͷʱĶϢ String[] childName = new String[showDetailDiff.length]; String[] childAlign = new String[showDetailDiff.length]; String[] childCode = new String[showDetailDiff.length]; - - for(int i = 0; i < showDetailDiff.length; ++i) { - String itemCode = MeasCostUtil.getItemCodeByRule("nmeascost", showDetailDiff[i]); + // "λɱ" + for (int i = 0; i < showDetailDiff.length; i++) { + String itemCode = MeasCostUtil.getItemCodeByRule(CMCommonConst1614.NMEASCOST, showDetailDiff[i]); String itemName = MeasCostUtil.getItemNameByCode(showDetailDiff[i]); if (CMLangConst1614.GET_NCOST_NAME().equals(itemName)) { itemName = CMLangConst1614.GET_ALL_NMEASCOST_NAME(); } - childName[i] = itemName; childCode[i] = itemCode; childAlign[i] = ColumnInfo.RIGTH; + // itemsList.add(new ColumnInfo(itemName, itemCode, ColumnInfo.RIGTH)); } + // ͷ ʱĹϵ---λɱ + itemsList.add(MeascostcontrastComServiceImpl.getMultHeadColum(CMLangConst1614.GET_NMEASCOST_NAME(), childName, childCode, childAlign)); - itemsList.add(getMultHeadColum(CMLangConst1614.GET_NMEASCOST_NAME(), childName, childCode, childAlign)); - - for(int i = 0; i < showDetailDiff.length; ++i) { - String itemCode = MeasCostUtil.getItemCodeByRule("nsum", showDetailDiff[i]); + // "ϼ" + for (int i = 0; i < showDetailDiff.length; i++) { + String itemCode = MeasCostUtil.getItemCodeByRule(CMCommonConst1614.NSUM, showDetailDiff[i]); String itemName = MeasCostUtil.getItemNameByCode(showDetailDiff[i]); childName[i] = itemName; childCode[i] = itemCode; childAlign[i] = ColumnInfo.RIGTH; + // itemsList.add(new ColumnInfo(itemName, itemCode, ColumnInfo.RIGTH)); } + // ͷ ʱĹϵ---ϼ + itemsList.add(MeascostcontrastComServiceImpl.getMultHeadColum(CMLangConst1614.GET_NSUM_NAME(), childName, childCode, childAlign)); - itemsList.add(getMultHeadColum(CMLangConst1614.GET_NSUM_NAME(), childName, childCode, childAlign)); - - for(FactorVO factorVO : factorVOs) { + // "Ҫ" + for (FactorVO factorVO : factorVOs) { String groupItemCode = factorVO.getFactorcode(); - String var10000 = factorVO.getFactorcode(); - String itemName = var10000 + "-" + CMUtil.getNameByMultiLang(factorVO, "factorname"); + String itemName = factorVO.getFactorcode() + "-" + CMUtil.getNameByMultiLang(factorVO, FactorVO.FACTORNAME); - for(int i = 0; i < showDetailDiff.length; ++i) { + for (int i = 0; i < showDetailDiff.length; i++) { String itemCode = MeasCostUtil.getItemCodeByRule(groupItemCode, showDetailDiff[i]); String itemName1 = MeasCostUtil.getItemNameByCode(showDetailDiff[i]); childName[i] = itemName1; childCode[i] = itemCode; childAlign[i] = ColumnInfo.RIGTH; + // itemsList.add(new ColumnInfo(itemName1, itemCode, ColumnInfo.RIGTH)); this.sumFieldCode.add(MeasCostUtil.getItemCodeByRule(groupItemCode, showDetailDiff[0])); } - - itemsList.add(getMultHeadColum(itemName, childName, childCode, childAlign)); + // ͷ ʱĹϵ---Ҫ + itemsList.add(MeascostcontrastComServiceImpl.getMultHeadColum(itemName, childName, childCode, childAlign)); } return itemsList; } + /** + * Ӹϵ + */ public static ColumnMultiHeadInfo getMultHeadColum(String multStr, String[] childStr, String[] childKey, String[] childAlign) { ColumnMultiHeadInfo multiHead = new ColumnMultiHeadInfo(multStr); ColumnInfo[] children = new ColumnInfo[childStr.length]; - - for(int i = 0; i < children.length; ++i) { + for (int i = 0; i < children.length; i++) { children[i] = new ColumnInfo(childStr[i], childKey[i], childAlign[i]); } - multiHead.setChildren(children); return multiHead; } + } From 1ed9efab708910fd7f89092f47a71fc3d2c1a70e Mon Sep 17 00:00:00 2001 From: lihao Date: Thu, 29 May 2025 10:54:24 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=88=E8=B4=B9=E7=94=A8=E7=AE=A1=E7=90=86=EF=BC=89=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=BA=90=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erm/billmanage/BillManageServiceImpl.java | 661 ++++++++++++++++++ 1 file changed, 661 insertions(+) create mode 100644 erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java diff --git a/erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java b/erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java new file mode 100644 index 0000000..a634b8d --- /dev/null +++ b/erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java @@ -0,0 +1,661 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package nccloud.pubimpl.erm.billmanage; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import nc.bs.framework.common.InvocationInfoProxy; +import nc.bs.framework.common.NCLocator; +import nc.bs.logging.Logger; +import nc.itf.arap.prv.IBXBillPrivate; +import nc.itf.uap.IUAPQueryBS; +import nc.itf.uap.rbac.IUserManageQuery; +import nc.jdbc.framework.DataSourceCenter; +import nc.jdbc.framework.SQLParameter; +import nc.jdbc.framework.page.LimitSQLBuilder; +import nc.jdbc.framework.page.SQLBuilderFactory; +import nc.jdbc.framework.processor.ArrayListProcessor; +import nc.jdbc.framework.processor.ResultSetProcessor; +import nc.pubitf.rbac.IFunctionPermissionPubService; +import nc.ui.querytemplate.querytree.IQueryScheme; +import nc.vo.ep.bx.BXHeaderVO; +import nc.vo.ep.bx.BillManageTradeTypeVO; +import nc.vo.ep.bx.JKBXHeaderVO; +import nc.vo.fi.pub.SqlUtils; +import nc.vo.ml.MultiLangUtil; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDate; +import nc.vo.pub.lang.UFDateTime; +import nc.vo.pub.lang.UFDouble; +import nc.vo.sm.UserVO; +import nccloud.dto.baseapp.querytree.dataformat.Condition; +import nccloud.dto.baseapp.querytree.dataformat.PageInfo; +import nccloud.dto.baseapp.querytree.dataformat.QueryCondition; +import nccloud.dto.baseapp.querytree.dataformat.QueryTreeFormatVO; +import nccloud.pubitf.erm.billmanage.IBillManageService; +import nccloud.pubitf.platform.query.INCCloudQueryService; +import org.apache.commons.lang3.StringUtils; + +public class BillManageServiceImpl implements IBillManageService { + private final String APPCODE_DJGL = "201104DJGL"; + private final String SQLKEY_JK = "JK"; + private final String SQLKEY_BX = "BX"; + private final String SQLKEY_HK = "HK"; + private final String SQLKEY_TZ = "TZ"; + private final String SQLKEY_SQ = "SQ"; + private final String SQLKEY_YT = "YT"; + private final String SQLKEY_JZ = "JZ"; + private final String SQLKEY_TX = "TX"; + + public BillManageServiceImpl() { + } + + public List queryBillInfoByPks(String[] pks) throws Exception { + if (pks != null && pks.length != 0) { + String whereSql = SqlUtils.getInStr("pk_jkbx", pks, true); + StringBuilder sqlBuilder = new StringBuilder(); + sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb where dr = 0 ").append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb where dr = 0 ").append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" redflag as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued where dr=0 ").append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill where dr = 0 ").append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" null as red_status, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(" ) temp where ").append(whereSql); + sqlBuilder.append(" order by temp.djrq desc"); + String sql = sqlBuilder.toString(); + SQLParameter sqlParam = new SQLParameter(); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + List resultList = (List)iuapQryService.executeQuery(sql, sqlParam, new JKBXHeaderResultSetProcessor()); + return resultList; + } else { + return null; + } + } + + public List queryPermBillType(String userId, String currentDate, String pkGroup) { + List permBillTypeList = new ArrayList(); + + try { + String sql = " select distinct pub_publishapp.pk_billtypecode as pk_billtypecode,sm_appregister.code as apppcode,sm_apppage.pagecode as pagecode,sm_apppage.pageurl as url, bd_billtype.parentbilltype as parentbilltype, bd_billtype.pk_billtypeid as pk_billtypeid, bd_billtype.billtypename" + MultiLangUtil.getCurrentLangSeqSuffix() + " as billtypename from sm_appregister inner join pub_publishapp on sm_appregister.pk_appregister=pub_publishapp.publishappid inner join sm_apppage on sm_apppage.parent_id=sm_appregister.pk_appregister inner join bd_billtype on pub_publishapp.pk_billtypecode=bd_billtype.pk_billtypecode where sm_appregister.pk_appregister in ( select distinct ra.pk_app from sm_resp_app ra, sm_perm_func pf, sm_appregister app where ra.pk_responsibility = pf.ruleid and app.pk_appregister = ra.pk_app and exists ( select 1 from sm_user_role ur where pf.subjectid = ur.pk_role and cuserid = ? and enabledate <= ? and ( isnull(cast(disabledate as char),'~')='~' or disabledate > ?)) and app.isenable = 'Y' and ( isnull(app.pk_group,'~') = '~' or app.pk_group = ?) and pf.pk_group = ? and app.own_module='2011') and pub_publishapp.sence=10 and pub_publishapp.dr=0 and bd_billtype.parentbilltype in('261X','262X','263X','264X','265X','266X') and bd_billtype.pk_billtypecode != '264X-Cxx-SKBG' and sm_apppage.isdefault='Y' and bd_billtype.pk_group= ? "; + SQLParameter sqlParam = new SQLParameter(); + sqlParam.addParam(userId); + sqlParam.addParam(currentDate); + sqlParam.addParam(currentDate); + sqlParam.addParam(pkGroup); + sqlParam.addParam(pkGroup); + sqlParam.addParam(pkGroup); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + permBillTypeList = (List)iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList; + BillManageTradeTypeVO billManageTradeTypeVO; + for(resultList = new ArrayList(); rs.next(); resultList.add(billManageTradeTypeVO)) { + billManageTradeTypeVO = new BillManageTradeTypeVO(); + String pk_billtypecode = rs.getString("pk_billtypecode"); + String appcode = rs.getString("apppcode"); + String pagecode = rs.getString("pagecode"); + String url = rs.getString("url"); + String parentbilltype = rs.getString("parentbilltype"); + billManageTradeTypeVO.setPk_billtypecode(pk_billtypecode); + billManageTradeTypeVO.setAppcode(appcode); + billManageTradeTypeVO.setPagecode(pagecode); + billManageTradeTypeVO.setUrl(url); + billManageTradeTypeVO.setParentbilltype(parentbilltype); + billManageTradeTypeVO.setPk_billtypeid(rs.getString("pk_billtypeid")); + billManageTradeTypeVO.setBilltypename(rs.getString("billtypename")); + if ("263X".equals(parentbilltype)) { + billManageTradeTypeVO.setJkbx("jk"); + } else if ("264X".equals(parentbilltype)) { + billManageTradeTypeVO.setJkbx("bx"); + } + } + + return resultList; + } + }); + } catch (BusinessException e) { + Logger.error(e.getMessage(), e); + } + + return permBillTypeList; + } + + private String[] queryPkPsndocByNameLike(String keyWord) throws Exception { + String sql = "select pk_psndoc from bd_psndoc where ( dr = 0 or dr is null ) and name like ? "; + SQLParameter sqlParam = new SQLParameter(); + sqlParam.addParam("%" + keyWord + "%"); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + String[] resultPsndoc = (String[])iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList = new ArrayList(); + + while(rs.next()) { + String pkPsndoc = rs.getString("pk_psndoc"); + resultList.add(pkPsndoc); + } + + return resultList.size() == 0 ? new String[0] : resultList.toArray(new String[resultList.size()]); + } + }); + return resultPsndoc; + } + + private String[] queryPkDeptByNameLike(String keyWord) throws Exception { + String sql = "select pk_dept, name from org_dept where ( dr = 0 or dr is null ) and name like ? "; + SQLParameter sqlParam = new SQLParameter(); + sqlParam.addParam("%" + keyWord + "%"); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + String[] resultPkDept = (String[])iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList = new ArrayList(); + + while(rs.next()) { + String pkDept = rs.getString("pk_dept"); + resultList.add(pkDept); + } + + return resultList.size() == 0 ? new String[0] : resultList.toArray(new String[resultList.size()]); + } + }); + return resultPkDept; + } + + private Map geConditionSqlByConditions(QueryTreeFormatVO queryTreeFormatVO) throws BusinessException { + Map whereSqlMap = new HashMap(); + QueryCondition queryCondition = queryTreeFormatVO.getQuerycondition(); + if (queryCondition != null) { + List conditions = queryCondition.getConditions(); + if (conditions != null && conditions.size() > 0) { + StringBuilder conditionBuilderJK = new StringBuilder(""); + StringBuilder conditionBuilderBX = new StringBuilder(" and djlxbm!='264a' and djlxbm!='2647' and djlxbm != '264X-Cxx-SKBG'"); + StringBuilder conditionBuilderHK = new StringBuilder(" and djlxbm='2647' "); + StringBuilder conditionBuilderTZ = new StringBuilder(" and djlxbm='264a' "); + StringBuilder conditionBuilderSQ = new StringBuilder(""); + StringBuilder conditionBuilderYT = new StringBuilder(""); + StringBuilder conditionBuilderJZ = new StringBuilder(""); + StringBuilder conditionBuilderTX = new StringBuilder(""); + String appCode = queryTreeFormatVO.getAppcode(); + if ("201104DJGL".equals(appCode)) { + String userId = InvocationInfoProxy.getInstance().getUserId(); + String pk_group = InvocationInfoProxy.getInstance().getGroupId(); + String jkbxr = ""; + String[] psnInfos = ((IBXBillPrivate)NCLocator.getInstance().lookup(IBXBillPrivate.class)).queryPsnidAndDeptid(userId, pk_group); + if (psnInfos != null && psnInfos.length > 0) { + jkbxr = psnInfos[0]; + } + + conditionBuilderJK.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); + conditionBuilderBX.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); + conditionBuilderHK.append(" and creator='").append(userId).append("' "); + conditionBuilderTZ.append(" and creator='").append(userId).append("' "); + conditionBuilderSQ.append(" and creator='").append(userId).append("' "); + conditionBuilderYT.append(" and creator='").append(userId).append("' "); + conditionBuilderJZ.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); + conditionBuilderTX.append(" and (e.creator='").append(userId).append("' or e.bx_jkbxr='").append(jkbxr).append("' ) "); + } + + boolean ifHasTradeType = false; + boolean filterByPkOrg = false; + String reconSQ = "1=2"; + String reconYT = "1=2"; + String reconJK = "1=2"; + String reconBX = "1=2"; + String reconHK = "1=2"; + String reconTZ = "1=2"; + String reconJZ = "1=2"; + String reconTX = "1=2"; + boolean hasRecon = false; + + for(Condition condition : conditions) { + if ("261X".equals(condition.getField())) { + reconSQ = SqlUtils.getInStr("pk_mtapp_bill", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("262X".equals(condition.getField())) { + reconYT = SqlUtils.getInStr("pk_accrued_bill", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("263X".equals(condition.getField())) { + reconJK = SqlUtils.getInStr("pk_jkbx", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("264X".equals(condition.getField())) { + reconBX = reconHK = reconTZ = SqlUtils.getInStr("pk_jkbx", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("265X".equals(condition.getField())) { + hasRecon = true; + reconJZ = SqlUtils.getInStr("pk_costshare", condition.getValue().getFirstvalue().split(","), true); + } else if ("266X".equals(condition.getField())) { + hasRecon = true; + reconTX = SqlUtils.getInStr("e.pk_expamtinfo", condition.getValue().getFirstvalue().split(","), true); + } else if ("isReconEmpty".equals(condition.getField())) { + hasRecon = true; + } else { + if ("pk_org".equals(condition.getField())) { + filterByPkOrg = true; + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + String[] orgs = condition.getValue().getFirstvalue().split(","); + String inSql = SqlUtils.getInStr("pk_org", orgs, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.pk_org", orgs, true)); + } + } + if ("defitem11".equals(condition.getField())) { + filterByPkOrg = true; + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + String[] orgs = condition.getValue().getFirstvalue().split(","); +// String inSql = SqlUtils.getInStr("pk_org", orgs, true); er_mtapp_bill assume_dept + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("assume_dept", orgs, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("operator_dept", orgs, true)); + conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.bx_deptid", orgs, true)); + } + } + + if ("djrq".equals(condition.getField())) { + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderBX.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderHK.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTZ.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderSQ.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderYT.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderJZ.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTX.append(" and e.bx_djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + } + + if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { + conditionBuilderJK.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderBX.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderHK.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTZ.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderSQ.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderYT.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderJZ.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTX.append(" and e.bx_djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + } + } + + + if ("paydate".equals(condition.getField())) { + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderBX.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderHK.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTZ.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + } + + if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { + conditionBuilderJK.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderBX.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderHK.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTZ.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + } + } + + if ("djbh".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderHK.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderBX.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderTZ.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderSQ.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderYT.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderJZ.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderTX.append(" and e.bx_billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + } + + if ("pk_tradetypeid".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + ifHasTradeType = true; + String[] tradetypes = condition.getValue().getFirstvalue().split(","); + String inSql = SqlUtils.getInStr("pk_tradetypeid", tradetypes, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("t.pk_billtypeid", tradetypes, true)); + } + + if ("ybje".equals(condition.getField())) { + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderBX.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderHK.append(" and hkybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTZ.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderSQ.append(" and orig_amount\t >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderYT.append(" and org_amount >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderJZ.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTX.append(" and e.total_amount >= '").append(condition.getValue().getFirstvalue()).append("' "); + } + + if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { + conditionBuilderJK.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderBX.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderHK.append(" and hkybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTZ.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderSQ.append(" and orig_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderYT.append(" and org_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderJZ.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTX.append(" and e.total_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); + } + } + + if ("bzbm".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + String[] bzbms = condition.getValue().getFirstvalue().split(","); + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("pk_currtype", bzbms, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("pk_currtype", bzbms, true)); + conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.bzbm", bzbms, true)); + } + + if ("djzt".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + List list = Arrays.asList(condition.getValue().getFirstvalue().split(",")); + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); + list = new ArrayList(list); + if (list.contains("3")) { + list.remove("3"); + } + + if (list.contains("2")) { + Collections.replaceAll(list, "2", "3"); + } + + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("3", list, true)); + } + + if ("spzt".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + List list = Arrays.asList(condition.getValue().getFirstvalue().split(",")); + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("apprstatus", list, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("apprstatus", list, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("1", list, true)); + } + } + } + + if (hasRecon) { + conditionBuilderJK.append(" and ").append(reconJK); + conditionBuilderBX.append(" and ").append(reconBX); + conditionBuilderHK.append(" and ").append(reconHK); + conditionBuilderTZ.append(" and ").append(reconTZ); + conditionBuilderSQ.append(" and ").append(reconSQ); + conditionBuilderYT.append(" and ").append(reconYT); + conditionBuilderJZ.append(" and ").append(reconJZ); + conditionBuilderTX.append(" and ").append(reconTX); + } else { + if (!ifHasTradeType) { + String groupPk = InvocationInfoProxy.getInstance().getGroupId(); + String userId = InvocationInfoProxy.getInstance().getUserId(); + String currentDate = (new UFDateTime()).toLocalString(); + List permBillTypeList = ((IBillManageService)NCLocator.getInstance().lookup(IBillManageService.class)).queryPermBillType(userId, currentDate, groupPk); + if (permBillTypeList != null && permBillTypeList.size() > 0) { + String[] hasPermissionTradeTypecode = new String[permBillTypeList.size()]; + + for(int i = 0; i < permBillTypeList.size(); ++i) { + hasPermissionTradeTypecode[i] = ((BillManageTradeTypeVO)permBillTypeList.get(i)).getPk_billtypeid(); + } + + String inSql = SqlUtils.getInStr("pk_tradetypeid", hasPermissionTradeTypecode, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("t.pk_billtypeid", hasPermissionTradeTypecode, true)); + } else { + conditionBuilderJK.append(" and ").append("1=2"); + conditionBuilderBX.append(" and ").append("1=2"); + conditionBuilderHK.append(" and ").append("1=2"); + conditionBuilderTZ.append(" and ").append("1=2"); + conditionBuilderSQ.append(" and ").append("1=2"); + conditionBuilderYT.append(" and ").append("1=2"); + conditionBuilderJZ.append(" and ").append("1=2"); + conditionBuilderTX.append(" and ").append("1=2"); + } + } + + if (!filterByPkOrg) { + IFunctionPermissionPubService service = (IFunctionPermissionPubService)NCLocator.getInstance().lookup(IFunctionPermissionPubService.class); + String[] orgByIDs = service.getUserPermissionPkOrgs(InvocationInfoProxy.getInstance().getUserId(), (String)null, InvocationInfoProxy.getInstance().getGroupId()); + String inSql = SqlUtils.getInStr("pk_org", orgByIDs, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.pk_org", orgByIDs, true)); + } + } + + whereSqlMap.put("JK", conditionBuilderJK.toString()); + whereSqlMap.put("BX", conditionBuilderBX.toString()); + whereSqlMap.put("HK", conditionBuilderHK.toString()); + whereSqlMap.put("TZ", conditionBuilderTZ.toString()); + whereSqlMap.put("SQ", conditionBuilderSQ.toString()); + whereSqlMap.put("YT", conditionBuilderYT.toString()); + whereSqlMap.put("JZ", conditionBuilderJZ.toString()); + whereSqlMap.put("TX", conditionBuilderTX.toString()); + } + } + + return whereSqlMap; + } + + public List queryBillInfoByPage(QueryTreeFormatVO queryTreeFormatVO) throws Exception { + INCCloudQueryService ncCloudQueryService = (INCCloudQueryService)NCLocator.getInstance().lookup(INCCloudQueryService.class); + PageInfo pageInfo = null; + if (queryTreeFormatVO != null) { + pageInfo = queryTreeFormatVO.getPageInfo(); + } + + IQueryScheme queryscheme = ncCloudQueryService.convertCondition(queryTreeFormatVO); + if (queryscheme == null) { + return null; + } else { + SQLParameter sqlParam = new SQLParameter(); + StringBuilder conditionBuilder = new StringBuilder(); + String conditionSql = null; + QueryCondition queryCondition = queryTreeFormatVO.getQuerycondition(); + List conditions = queryCondition.getConditions(); + if (conditions != null && conditions.size() > 0) { + for(Condition condition : conditions) { + if (condition != null && condition.getValue() != null && "search".equals(condition.getField()) && !StringUtils.isEmpty(condition.getValue().getFirstvalue())) { + String keyWord = condition.getValue().getFirstvalue(); + conditionBuilder.append("and ( djbh like ? "); + sqlParam.addParam("%" + keyWord + "%"); + String[] pkDepts = this.queryPkDeptByNameLike(keyWord); + String[] pkPsndocs = this.queryPkPsndocByNameLike(keyWord); + if (pkDepts != null && pkDepts.length > 0) { + conditionBuilder.append(" or " + SqlUtils.getInStr("deptid_v", pkDepts, true)); + } + + if (pkPsndocs != null && pkPsndocs.length > 0) { + conditionBuilder.append(" or " + SqlUtils.getInStr("jkbxr", pkPsndocs, true)); + } + + conditionBuilder.append(")"); + } + } + } + + conditionSql = conditionBuilder.toString(); + Map sqlMap = this.geConditionSqlByConditions(queryTreeFormatVO); + StringBuilder sqlBuilder = new StringBuilder(); + sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb").append(" where dr = 0 ").append(null == sqlMap.get("JK") ? "" : (String)sqlMap.get("JK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" \t\t\t ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("BX") ? "" : (String)sqlMap.get("BX")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" hkybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("HK") ? "" : (String)sqlMap.get("HK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("TZ") ? "" : (String)sqlMap.get("TZ")).append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" redflag as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued").append(" where dr = 0 ").append(null == sqlMap.get("YT") ? "" : (String)sqlMap.get("YT")).append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill").append(" where dr = 0 ").append(null == sqlMap.get("SQ") ? "" : (String)sqlMap.get("SQ")).append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(null == sqlMap.get("JZ") ? "" : (String)sqlMap.get("JZ")).append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" null as red_status, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(null == sqlMap.get("TX") ? "" : (String)sqlMap.get("TX")).append(" ) temp where 1=1 "); + if (!conditionSql.isEmpty()) { + sqlBuilder.append(conditionSql); + } + + String sql = sqlBuilder.toString(); + if (pageInfo != null) { + if (pageInfo.getTotal() == 0) { + Integer total = this.countBillInfoByCondition(queryTreeFormatVO, conditionSql, sqlParam, sqlMap); + pageInfo.setTotal(total); + } + + Integer pageSize = Integer.valueOf(pageInfo.getPageSize()); + Integer totalPage = pageInfo.getTotal() % pageSize == 0 ? pageInfo.getTotal() / pageSize : pageInfo.getTotal() / pageSize + 1; + pageInfo.setTotalPage(totalPage); + int databaseType = DataSourceCenter.getInstance().getDatabaseType(); + LimitSQLBuilder sqlBuilderPage = SQLBuilderFactory.getInstance().createLimitSQLBuilder(databaseType); + int pageIndex = 0; + if (!StringUtils.isEmpty(pageInfo.getPageIndex())) { + pageIndex = Integer.valueOf(pageInfo.getPageIndex()); + } + + sql = sqlBuilderPage.build(sql + " order by temp.djrq desc", pageIndex + 1, Integer.valueOf(pageInfo.getPageSize())); + } else { + sql = sql + " order by temp.djrq desc"; + } + + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + List resultList = (List)iuapQryService.executeQuery(sql, sqlParam, new JKBXHeaderResultSetProcessor()); + return resultList; + } + } + + public int countBillInfoByCondition(QueryTreeFormatVO queryTreeFormatVO, String conditionSql, SQLParameter sqlParam, Map sqlMap) throws Exception { + StringBuilder sqlBuilder = new StringBuilder(); + sqlBuilder.append("select count(1) as count from("); + sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb").append(" where dr = 0 ").append(null == sqlMap.get("JK") ? "" : (String)sqlMap.get("JK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("BX") ? "" : (String)sqlMap.get("BX")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" hkybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("HK") ? "" : (String)sqlMap.get("HK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("TZ") ? "" : (String)sqlMap.get("TZ")).append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued").append(" where dr = 0 ").append(null == sqlMap.get("YT") ? "" : (String)sqlMap.get("YT")).append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill").append(" where dr = 0 ").append(null == sqlMap.get("SQ") ? "" : (String)sqlMap.get("SQ")).append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(null == sqlMap.get("JZ") ? "" : (String)sqlMap.get("JZ")).append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(null == sqlMap.get("TX") ? "" : (String)sqlMap.get("TX")).append(" )temp where 1=1 "); + if (!conditionSql.isEmpty()) { + sqlBuilder.append(conditionSql); + } + + sqlBuilder.append(") a "); + String sql = sqlBuilder.toString(); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + int count = (Integer)iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + int count; + for(count = 0; rs.next(); count = rs.getInt("count")) { + } + + return count; + } + }); + return count; + } + + public Map qryCurApproveman(List billIds) throws BusinessException { + StringBuilder sqlExe = new StringBuilder(); + sqlExe.append("select n.billid as billid, n.checkman as checkman, n.ischeck as ischeck"); + sqlExe.append(" from pub_wf_task t inner join pub_workflownote n on t.pk_wf_task=n.pk_wf_task"); + sqlExe.append(" where ").append(SqlUtils.getInStr("n.billid", billIds, true)); + sqlExe.append(" and t.taskstatus=0 "); + sqlExe.append(" and n.approvestatus =0 "); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + SQLParameter sqlParam = new SQLParameter(); + List approveInfos = (List)iuapQryService.executeQuery(sqlExe.toString(), sqlParam, new ArrayListProcessor()); + List busiidUserList = new ArrayList(); + List userid = new ArrayList(); + + for(Object[] approveInfo : approveInfos) { + String[] busiidUser = new String[]{(String)approveInfo[0], (String)approveInfo[1]}; + busiidUserList.add(busiidUser); + userid.add((String)approveInfo[1]); + } + + IUserManageQuery userQry = (IUserManageQuery)NCLocator.getInstance().lookup(IUserManageQuery.class); + UserVO[] userVOs = userQry.queryUserByClause(SqlUtils.getInStr("cuserid", userid, true)); + Map userid_username = new HashMap(); + + for(UserVO vo : userVOs) { + userid_username.put(vo.getCuserid(), vo.getUser_name()); + } + + for(String[] busiidUser : busiidUserList) { + busiidUser[1] = (String)userid_username.get(busiidUser[1]); + } + + Map busiid_username = new HashMap(); + + for(String[] busiidUser : busiidUserList) { + if (!busiid_username.containsKey(busiidUser[0])) { + busiid_username.put(busiidUser[0], busiidUser[1]); + } else { + String var10000 = (String)busiid_username.get(busiidUser[0]); + String multiName = var10000 + ", " + busiidUser[1]; + busiid_username.put(busiidUser[0], multiName); + } + } + + return busiid_username; + } + + private class JKBXHeaderResultSetProcessor implements ResultSetProcessor { + private static final long serialVersionUID = 1L; + + private JKBXHeaderResultSetProcessor() { + } + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList = new ArrayList(); + + while(rs.next()) { + JKBXHeaderVO tempHeader = new BXHeaderVO(); + tempHeader.setPk_jkbx(rs.getString("pk_jkbx")); + tempHeader.setPk_tradetypeid(rs.getString("pk_tradetypeid")); + tempHeader.setDjlxbm(rs.getString("djlxbm")); + tempHeader.setPk_billtype(rs.getString("pk_billtype")); + tempHeader.setDjbh(rs.getString("djbh")); + tempHeader.setDjrq(StringUtils.isEmpty(rs.getString("djrq")) ? null : new UFDate(rs.getString("djrq"))); + tempHeader.setBzbm(rs.getString("bzbm")); + tempHeader.setYbje(new UFDouble(rs.getDouble("ybje"))); + tempHeader.setDjzt(rs.getInt("djzt")); + tempHeader.setSpzt(rs.getInt("spzt")); + tempHeader.setDeptid_v(rs.getString("deptid_v")); + tempHeader.setJkbxr(rs.getString("jkbxr")); + tempHeader.setApprover(rs.getString("approver")); + tempHeader.setPk_org(rs.getString("pk_org")); + tempHeader.setCreator(rs.getString("creator")); + tempHeader.setRed_status(rs.getInt("red_status")); + tempHeader.setShrq(StringUtils.isEmpty(rs.getString("shrq")) ? null : new UFDateTime(rs.getString("shrq"))); + tempHeader.setSaga_frozen(rs.getInt("saga_frozen")); + tempHeader.setSaga_btxid(rs.getString("saga_btxid")); + tempHeader.setSaga_gtxid(rs.getString("saga_gtxid")); + tempHeader.setSaga_status(rs.getInt("saga_status")); + resultList.add(tempHeader); + } + + return resultList; + } + } +} From def52b4dd5b8b070a0d400e8cca32d64a79f727d Mon Sep 17 00:00:00 2001 From: "zhangxinah@yonyou.com" Date: Thu, 29 May 2025 11:29:18 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pac0002/bp/rule/AfterApprovingSynchronizeRuleRZ.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApprovingSynchronizeRuleRZ.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApprovingSynchronizeRuleRZ.java index b04036d..78756f3 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApprovingSynchronizeRuleRZ.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterApprovingSynchronizeRuleRZ.java @@ -2,7 +2,6 @@ package nc.bs.mmpac.pmo.pac0002.bp.rule; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.yonyou.iuap.bd.defdoc.dto.DefDoc; import nc.bs.dao.BaseDAO; import nc.bs.logging.Log; import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService; @@ -10,22 +9,17 @@ import nc.bs.uapbd.util.ThirdPartyPostRequestUtil; import nc.impl.pubapp.pattern.rule.IRule; import nc.jdbc.framework.processor.ColumnProcessor; import nc.pubitf.para.SysInitQuery; -import nc.util.mmf.framework.base.MMMapUtil; import nc.util.mmf.framework.base.MMValueCheck; import nc.vo.bd.defdoc.DefdocVO; -import nc.vo.bd.material.MaterialVO; -import nc.vo.bd.stordoc.StordocVO; import nc.vo.cmp.util.StringUtils; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; -import nc.vo.org.DeptVO; import nc.vo.org.OrgVO; import nc.vo.pub.BusinessException; import nc.vo.pub.lang.UFBoolean; import nc.vo.pubapp.pattern.exception.ExceptionUtils; import nc.vo.pubapp.pattern.pub.SqlBuilder; -import nc.vo.rum.stocks.StocksVO; import nc.vo.scmpub.util.ArrayUtil; import java.util.ArrayList; From 1dc59b85773ca8cf5df7f3b8e5325acd12e0f36d Mon Sep 17 00:00:00 2001 From: "zhangxinah@yonyou.com" Date: Thu, 29 May 2025 11:32:54 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=91=E7=A5=A8?= =?UTF-8?q?=E7=A8=8E=E7=A0=81=E6=B2=A1=E6=9C=89=E5=B8=A6=E5=87=BA=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98-=E5=BC=A0=E9=91=AB0529?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java b/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java index 5787c17..3fb851b 100644 --- a/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java +++ b/so/src/public/nccloud/api/so/saleinvoice/operator/IAPISaleInvMaitainImpl.java @@ -407,9 +407,10 @@ public class IAPISaleInvMaitainImpl { } private String getTaxcode(String taxrateStr) throws BusinessException { + UFDouble taxrate = new UFDouble(taxrateStr==null?"0":taxrateStr).multiply(100).setScale(2, UFDouble.ROUND_HALF_UP); IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class); - String sql = " select code FROM bd_taxrate tt inner join bd_taxcode tc on tt.pk_taxcode=tc.pk_taxcode where taxrate='" - + taxrateStr + "' AND ROWNUM = 1 "; + String sql = " select code FROM bd_taxrate tt inner join bd_taxcode tc on tt.pk_taxcode=tc.pk_taxcode where TO_NUMBER(taxrate)='" + + taxrate.toString() + "' AND ROWNUM = 1 "; String taxcodeStr = (String) queryBS.executeQuery(sql, new ColumnProcessor()); return taxcodeStr; }