From f1660b0c23e803f7a24728ef93d8378ef368ea6b Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Mon, 21 Apr 2025 18:44:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E9=87=91=E8=AE=A1=E5=88=92=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/task/FundPlanCollectionTask.java | 3 +- .../fi/plugin/task/FundPlanPaymentTask.java | 51 ++++++++++++++++--- .../shjh/jhzj7/fi/fi/utils/JhzjUtils.java | 38 ++++++++++++++ 3 files changed, 83 insertions(+), 9 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java index 3908473..f5110e6 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanCollectionTask.java @@ -165,7 +165,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { } months = JhzjUtils.getFundPeriodBySAPDate(months); //根据品牌和事业部关系,将该笔金额归属到事业部上 - ppsybinfo = BusinessDataServiceHelper.loadSingleFromCache(ppsybName,new QFilter[]{new QFilter("shjh_pp", QCP.equals, productnum)}); + ppsybinfo = BusinessDataServiceHelper.loadSingleFromCache(ppsybName,new QFilter[]{new QFilter("shjh_productgroup.number", QCP.equals, productnum)}); if(ppsybinfo != null){ sybnum = ppsybinfo.getDynamicObject("shjh_division").getString("number"); mapkey = sybnum+months+accountnum; @@ -176,6 +176,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { } }else{ //TODO 如果品牌没有对应的事业部时,数据放哪里? + logger.info("根据SAP的品牌编号未找到对应的品牌和事业部关系"+productnum); } } return acctamountMap; diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java index 55f7d2f..1e18f22 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/FundPlanPaymentTask.java @@ -170,7 +170,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { } months = JhzjUtils.getFundPeriodBySAPDate(months); //根据二级部门和事业部关系,将该笔金额归属到事业部上 - ppsybinfo = BusinessDataServiceHelper.loadSingleFromCache(ppsybName,new QFilter[]{new QFilter("shjh_orgdept", QCP.equals, deptnum)}); + ppsybinfo = BusinessDataServiceHelper.loadSingleFromCache(ppsybName,new QFilter[]{new QFilter("shjh_orgdept.number", QCP.equals, deptnum)}); if(ppsybinfo != null){ sybnum = ppsybinfo.getDynamicObject("shjh_division").getString("number"); mapkey = sybnum+months+accountnum; @@ -181,6 +181,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { } }else{ //TODO 如果二级部门没有对应的事业部时,数据放哪里? + logger.info("根据SAP的二级部门编号未找到对应的二级部门和事业部关系"+deptnum); } } return acctamountMap; @@ -287,24 +288,58 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { boolean notorgFlag; boolean suppFlag; boolean notsuppFlag; + String sapbillno; + String kdbilltype; + boolean billTypeFlag; + boolean notbillTypeFlag; for (int i = 0; i < pzblist.size(); i++) { pzbinfo = pzblist.get(i); yymFlag = getDOInFlag(pzbinfo,"shjh_yym",sapresult.getString(""));//原因码 + if(!yymFlag){ + continue; + } kmbhFlag = getDOInFlag(pzbinfo,"shjh_kjkm",sapresult.getString(""));//会计科目 + if(!kmbhFlag){ + continue; + } orgFlag = getDOInFlag(pzbinfo,"shjh_companys",sapresult.getString(""));//公司范围 + if(!orgFlag){ + continue; + } suppFlag = getDOInFlag(pzbinfo,"shjh_supplier",sapresult.getString(""));//包含供应商 + if(!suppFlag){ + continue; + } bizbigFlag = getDOInFlag(pzbinfo,"shjh_bizbig",sapresult.getString(""));//业务大类 + if(!bizbigFlag){ + continue; + } bizsmallFlag = getDOInFlag(pzbinfo,"shjh_bizsmall",sapresult.getString(""));//业务小类 + if(!bizsmallFlag){ + continue; + } notsuppFlag = getDOOutFlag(pzbinfo,"shjh_bbhgys",sapresult.getString(""));//不包含供应商 + if(!notsuppFlag){ + continue; + } notorgFlag = getDOOutFlag(pzbinfo,"shjh_bbhzz",sapresult.getString(""));//不包含公司 - - getBooleanFlag(pzbinfo,"shjh_czl",sapresult.getString(""));//是否充值类 - getBooleanFlag(pzbinfo,"shjh_zxcg",sapresult.getString(""));//是否自行采购 - getBooleanFlag(pzbinfo,"shjh_poisnull",sapresult.getString(""));//PO号是否为空 - - getInTextFlag(pzbinfo,"shjh_billtype",sapresult.getString(""));//包含的单据类型 - getOutTextFlag(pzbinfo,"shjh_bbhdjlx",sapresult.getString(""));//不包含的单据类型 + if(!notorgFlag){ + continue; + } +// getBooleanFlag(pzbinfo,"shjh_czl",sapresult.getString(""));//是否充值类 +// getBooleanFlag(pzbinfo,"shjh_zxcg",sapresult.getString(""));//是否自行采购 +// getBooleanFlag(pzbinfo,"shjh_poisnull",sapresult.getString(""));//PO号是否为空 + sapbillno = sapresult.getString("XBLNR");//sap单据号 + kdbilltype = JhzjUtils.getBillTypeForSAP(sapbillno);//根据sap单据号获取对应的金蝶单据类型 + billTypeFlag = getInTextFlag(pzbinfo,"shjh_billtype",kdbilltype);//包含的单据类型 + if(!billTypeFlag){ + continue; + } + notbillTypeFlag = getOutTextFlag(pzbinfo,"shjh_bbhdjlx",kdbilltype);//不包含的单据类型 + if(!notbillTypeFlag){ + continue; + } } return null; diff --git a/main/java/shjh/jhzj7/fi/fi/utils/JhzjUtils.java b/main/java/shjh/jhzj7/fi/fi/utils/JhzjUtils.java index 484d249..81695af 100644 --- a/main/java/shjh/jhzj7/fi/fi/utils/JhzjUtils.java +++ b/main/java/shjh/jhzj7/fi/fi/utils/JhzjUtils.java @@ -107,6 +107,44 @@ public class JhzjUtils { return isocode; } + /** + * 根据sap中的单据号字段,找到金蝶对应的单据类型 + * @param sapbillno sap单据号 + */ + public static String getBillTypeForSAP(String sapbillno){ + if(isEmpty(sapbillno)){ + return null; + }else if (sapbillno.contains("JKY")) { + return "A";//员工借款单 +// ap_payapply_entry.set("e_paymenttype", paytype_s);//对私 + }else if (sapbillno.contains("TYB")) { + return "B";//通用报销单 +// ap_payapply_entry.set("e_paymenttype", paytype_s);//对私 + }else if (sapbillno.contains("CLB")) { + return "C";//差旅报销单 +// ap_payapply_entry.set("e_paymenttype", paytype_s);//对私 + }else if (sapbillno.contains("LWB")) { + return "D";//劳务人员报销单 +// ap_payapply_entry.set("e_paymenttype", paytype_s);//对私 + }else if (sapbillno.contains("YFK")) { + return "E";//预付款单 +// ap_payapply_entry.set("e_paymenttype", paytype_g);//对公 + }else if (sapbillno.contains("JCW")) { + return "F";//请款单无订单 +// ap_payapply_entry.set("e_paymenttype", paytype_g);//对公 + }else if (sapbillno.contains("FWK")) { //服务付款单 + return "G"; +// ap_payapply_entry.set("e_paymenttype", paytype_g);//对公 + }else if (sapbillno.contains("TFK")) { + return "I";//其他付款单 +// ap_payapply_entry.set("e_paymenttype", paytype_g);//对公 + }else if (sapbillno.contains("SPA")) { + return "J";//SPA会员退卡申请单 +// ap_payapply_entry.set("e_paymenttype", paytype_g);//对公 + } + return null; + } + /** * 将认领公告列表组装成html语句中的table * @param billlist 认领公告的列表