资金计划优化2
This commit is contained in:
		
							parent
							
								
									726a8bc9ec
								
							
						
					
					
						commit
						5cc1516ac8
					
				|  | @ -22,6 +22,7 @@ public class VoucherBillOperation extends AbstractOperationServicePlugIn impleme | |||
|             String sourcebilltype; | ||||
|             DynamicObject bizbillinfo; | ||||
|             for (DynamicObject pzinfo : dos) { | ||||
|                 pzinfo = BusinessDataServiceHelper.loadSingle(pzinfo.getPkValue(), pzinfo.getDataEntityType().getName(), "id,billno,sourcebill,sourcebilltype"); | ||||
|                 sourcebillid = pzinfo.getLong("sourcebill"); | ||||
|                 sourcebilltype = pzinfo.getDynamicObject("sourcebilltype").getString("number"); | ||||
|                 if(recbillName.equals(sourcebilltype)){ | ||||
|  |  | |||
|  | @ -54,6 +54,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|             //调用SAP应收已清接口,按照事业部、月份、计划科目汇总金额 | ||||
|             Map<String, BigDecimal> acctamountMap = getSapARClearedData(); | ||||
|             if(acctamountMap == null || acctamountMap.isEmpty()){ | ||||
|                 logger.info("未获取到月份、计划科目汇总金额"); | ||||
|                 return; | ||||
|             } | ||||
|             ReportDataSDKService reportService = new ReportDataSDKService();//报表服务,用于写入或者查询报表数据 | ||||
|  | @ -92,6 +93,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|                 for(DynamicObject entryinfo : maindimentrys){ | ||||
|                     accountInfo = entryinfo.getDynamicObject("subjectmem"); | ||||
|                     if(!accountInfo.getBoolean("isleaf")){ | ||||
|                         //非叶子节点的数据,不处理 | ||||
|                         continue; | ||||
|                     } | ||||
|                     accountnum = accountInfo.getString("number"); | ||||
|  | @ -105,7 +107,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|                     JSONObject mmInfo = new JSONObject(); | ||||
|                     //PLANREFERENCEAMT 计划参考值 ACTMAT 已执行额度 | ||||
|                     mmInfo.put("templateMetricType","ACTMAT");//度量值预置类型 | ||||
|                     mmInfo.put("amount",acctamountMap.get(sybnum+months+accountnum));//写入金额-从SAP接口中汇总 | ||||
|                     mmInfo.put("amount",acctamountMap.get(months+accountnum));//写入金额-从SAP接口中汇总 | ||||
|                     mmInfo.put("amountUnit","one");//金额单位 one元 thousand千元 ten_thousand 万元 | ||||
|                     mms.add(mmInfo); | ||||
|                     itemInfo.put("metricMembers",mms);//度量值列表 | ||||
|  | @ -144,40 +146,49 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|             if(data != null){ | ||||
|                 JSONArray items = data.getJSONArray("IT_ITEM"); | ||||
|                 Map<String, BigDecimal> acctamountMap = new HashMap<>(); | ||||
|                 BigDecimal amount;//根据事业部编号+月份+资金计划科目编号汇总的金额 | ||||
|                 String productnum;//品牌 | ||||
|                 String sybnum;//事业部编号 | ||||
|                 BigDecimal amount;//根据事业部编号+月份+资金计划科目编号汇总的金额-最新修改为根据月份+资金计划科目编号 | ||||
| //                String productnum;//品牌 | ||||
| //                String sybnum;//事业部编号 | ||||
|                 String months;//月份 | ||||
|                 String accountnum;//资金计划科目编号 | ||||
|                 String mapkey;//事业部编号+月份+资金计划科目编号 | ||||
|                 DynamicObject ppsybinfo;//品牌和事业部关系对象 | ||||
| //                DynamicObject ppsybinfo;//品牌和事业部关系对象 | ||||
|                 for (int i = 0; i < items.size(); i++) { | ||||
|                     sapresult = items.getJSONObject(i); | ||||
|                     amount = sapresult.getBigDecimal("DMBTR");//已清金额 | ||||
|                     productnum = sapresult.getString("SPART");//产品组 | ||||
| //                    productnum = sapresult.getString("SPART");//产品组 | ||||
|                     months = sapresult.getString("BUDAT");//过账日期 | ||||
|                     if(JhzjUtils.isEmpty(months)){ | ||||
|                         logger.info("SAP过账日期为空"+sapresult.toJSONString()); | ||||
|                         continue; | ||||
|                     } | ||||
|                     accountnum = xdMembersubjectNumber(sapresult); | ||||
|                     if(JhzjUtils.isEmpty(accountnum)){ | ||||
|                         logger.info("SAP应收已清未找到对应资金科目"+sapresult.toJSONString()); | ||||
|                         continue; | ||||
|                     } | ||||
|                     months = JhzjUtils.getFundPeriodBySAPDate(months); | ||||
|                     //根据品牌和事业部关系,将该笔金额归属到事业部上 | ||||
|                     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; | ||||
|                         if(acctamountMap.containsKey(mapkey)){ | ||||
|                             acctamountMap.put(mapkey, JhzjUtils.addTwoAmount(amount,acctamountMap.get(mapkey))); | ||||
|                         }else{ | ||||
|                             acctamountMap.put(mapkey,amount); | ||||
|                         } | ||||
|                     mapkey = months+accountnum; | ||||
|                     amount = sapresult.getBigDecimal("DMBTR");//已清金额 | ||||
|                     if(acctamountMap.containsKey(mapkey)){ | ||||
|                         acctamountMap.put(mapkey, JhzjUtils.addTwoAmount(amount,acctamountMap.get(mapkey))); | ||||
|                     }else{ | ||||
|                         //TODO 如果品牌没有对应的事业部时,数据放哪里? | ||||
|                         logger.info("根据SAP的品牌编号未找到对应的品牌和事业部关系"+productnum); | ||||
|                         acctamountMap.put(mapkey,amount); | ||||
|                     } | ||||
| 
 | ||||
|                     //根据品牌和事业部关系,将该笔金额归属到事业部上 | ||||
| //                    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; | ||||
| //                        if(acctamountMap.containsKey(mapkey)){ | ||||
| //                            acctamountMap.put(mapkey, JhzjUtils.addTwoAmount(amount,acctamountMap.get(mapkey))); | ||||
| //                        }else{ | ||||
| //                            acctamountMap.put(mapkey,amount); | ||||
| //                        } | ||||
| //                    }else{ | ||||
| //                        //如果品牌没有对应的事业部时,数据放哪里? | ||||
| //                        logger.info("根据SAP的品牌编号未找到对应的品牌和事业部关系"+productnum); | ||||
| //                    } | ||||
|                 } | ||||
|                 return acctamountMap; | ||||
|             } | ||||
|  | @ -258,10 +269,7 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|             if(customerinfo != null){ | ||||
|                 custinfofives = customerinfo.getDynamicObjectCollection("shjh_entry_five"); | ||||
|             } | ||||
|             DynamicObjectCollection kmcolls;//科目集合 | ||||
|             DynamicObjectCollection custfivecolls;//客户组5集合 | ||||
|             DynamicObjectCollection custcolls;//包含客户的集合 | ||||
|             DynamicObjectCollection nocustcolls;//不包含客户的集合 | ||||
|             boolean kmbhFlag; | ||||
|             boolean custfiveFlag; | ||||
|             boolean custFlag; | ||||
|  | @ -269,19 +277,9 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|             DynamicObject account; | ||||
|             for (int i = 0; i < accounts.length; i++) { | ||||
|                 account = BusinessDataServiceHelper.loadSingle(accounts[i].getPkValue(), payReceName); | ||||
|                 kmbhFlag = false; | ||||
|                 kmcolls = account.getDynamicObjectCollection("shjh_kjkm");//科目 | ||||
|                 if(kmcolls.isEmpty()){ | ||||
|                     //当前配置表没有配置科目,即任何科目都可以匹配 | ||||
|                     kmbhFlag = true; | ||||
|                 }else{ | ||||
|                     //科目上配置有参数,需要判断与当前科目是否匹配 | ||||
|                     for (DynamicObject kminfo : kmcolls) { | ||||
|                         if(kminfo.getDynamicObject("fbasedataid").getString("number").equals(kmbh)){ | ||||
|                             kmbhFlag = true; | ||||
|                             break; | ||||
|                         } | ||||
|                     } | ||||
|                 kmbhFlag = getDOInFlag(account,"shjh_kjkm",kmbh);//科目 | ||||
|                 if(!kmbhFlag){ | ||||
|                     continue; | ||||
|                 } | ||||
|                 custfiveFlag = false; | ||||
|                 custfivecolls = account.getDynamicObjectCollection("shjh_khzw");//客户组5 | ||||
|  | @ -308,36 +306,17 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|                         } | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 custFlag = false; | ||||
|                 custcolls = account.getDynamicObjectCollection("shjh_bhkh");//包含客户 | ||||
|                 if(custcolls.isEmpty()){ | ||||
|                     //当前配置表没有配置客户,即任何客户都可以匹配 | ||||
|                     custFlag = true; | ||||
|                 }else{ | ||||
|                     for (DynamicObject custinfo : custcolls) { | ||||
|                         if(custinfo.getDynamicObject("fbasedataid").getString("number").equals(cust)){ | ||||
|                             custFlag = true; | ||||
|                             break; | ||||
|                         } | ||||
|                     } | ||||
|                 if(!custfiveFlag){ | ||||
|                     continue; | ||||
|                 } | ||||
| 
 | ||||
|                 nocustcolls = account.getDynamicObjectCollection("shjh_bbhkh");//不包含客户 | ||||
|                 if(nocustcolls.isEmpty()){ | ||||
|                     //当前配置表没有配置客户,即任何客户都可以匹配 | ||||
|                     nocustFlag = true; | ||||
|                 }else{ | ||||
|                     nocustFlag = true; | ||||
|                     for (DynamicObject nocustinfo : custcolls) { | ||||
|                         if(nocustinfo.getDynamicObject("fbasedataid").getString("number").equals(cust)){ | ||||
|                             nocustFlag = false; | ||||
|                             break; | ||||
|                         } | ||||
|                     } | ||||
|                 custFlag = getDOInFlag(account,"shjh_bhkh",cust);//包含客户 | ||||
|                 if(!custFlag){ | ||||
|                     continue; | ||||
|                 } | ||||
|                 if(kmbhFlag && custfiveFlag && custFlag && nocustFlag){ | ||||
|                     //所有标记都满足,则返回 | ||||
|                 nocustFlag = getDOOutFlag(account,"shjh_bbhkh",cust);//不包含客户 | ||||
| 
 | ||||
|                 if(nocustFlag){ | ||||
|                     //最后一个标记满足条件,则返回,否则会继续循环 | ||||
|                     return account.getDynamicObject("shjh_membersubject").getString("number"); | ||||
|                 } | ||||
|             } | ||||
|  | @ -350,6 +329,39 @@ public class FundPlanCollectionTask extends AbstractTask implements Plugin { | |||
|         return null; | ||||
|     } | ||||
| 
 | ||||
|     private boolean getDOInFlag(DynamicObject pzbinfo, String property, String sapvalue){ | ||||
|         DynamicObjectCollection kmcolls = pzbinfo.getDynamicObjectCollection(property);//具体的属性可能是科目、原因码、客户、供应商 | ||||
|         if(kmcolls.isEmpty()){ | ||||
|             //当前配置表没有配置property,即任何property都可以匹配 | ||||
|             return true; | ||||
|         }else{ | ||||
|             //配置有参数,需要判断与当前数据是否匹配 | ||||
|             for (DynamicObject kminfo : kmcolls) { | ||||
|                 if(kminfo.getDynamicObject("fbasedataid").getString("number").equals(sapvalue)){ | ||||
|                     return true; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     //获取基础资料不包含情况下的标记 | ||||
|     private boolean getDOOutFlag(DynamicObject pzbinfo, String property, String sapvalue){ | ||||
|         DynamicObjectCollection kmcolls = pzbinfo.getDynamicObjectCollection(property);//具体的属性可能是科目、原因码、客户、供应商 | ||||
|         if(kmcolls.isEmpty()){ | ||||
|             //当前配置表没有配置property,即任何property都可以匹配 | ||||
|             return true; | ||||
|         }else{ | ||||
|             //配置有参数,需要判断与当前参数是否匹配,已匹配表示在排除范围内 | ||||
|             for (DynamicObject kminfo : kmcolls) { | ||||
|                 if(kminfo.getDynamicObject("fbasedataid").getString("number").equals(sapvalue)){ | ||||
|                     return false; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     public void addFilterCondition(JSONArray IT_LIST, String field, String low, String high) { | ||||
|         JSONObject jsonObject = new JSONObject(); | ||||
|         jsonObject.put("FIELD", field); //字段名称 | ||||
|  |  | |||
|  | @ -51,7 +51,8 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|         if(collection.length > 0){ | ||||
|             //调用SAP应付未清接口,按照事业部、月份、计划科目汇总金额 | ||||
|             Map<String, BigDecimal> acctamountMap = getSapAR(); | ||||
|             if(acctamountMap == null){ | ||||
|             if(acctamountMap == null || acctamountMap.isEmpty()){ | ||||
|                 logger.info("未获取到月份、计划科目汇总金额"); | ||||
|                 return; | ||||
|             } | ||||
|             ReportDataSDKService reportService = new ReportDataSDKService();//报表服务,用于写入或者查询报表数据 | ||||
|  | @ -61,7 +62,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|             String reportPeriodCode;//编报期间的编号 | ||||
|             DynamicObject reportOrg;//编报主体对象 | ||||
|             DynamicObject accountInfo;//资金计划科目 | ||||
|             String sybnum;//事业部编号-编报主体的编号 | ||||
|             String sybnum;//编报主体的编号 | ||||
|             String months;//月份-科目编制分录中的期间编号 | ||||
|             String accountnum;//资金计划科目编号 | ||||
|             DynamicObjectCollection maindimentrys; | ||||
|  | @ -90,6 +91,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|                 for(DynamicObject entryinfo : maindimentrys){ | ||||
|                     accountInfo = entryinfo.getDynamicObject("subjectmem"); | ||||
|                     if(!accountInfo.getBoolean("isleaf")){ | ||||
|                         //非叶子节点的数据,不处理 | ||||
|                         continue; | ||||
|                     } | ||||
|                     accountnum = accountInfo.getString("number"); | ||||
|  | @ -103,7 +105,7 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|                     JSONObject mmInfo = new JSONObject(); | ||||
|                     //PLANREFERENCEAMT 计划参考值 ACTMAT 已执行额度 | ||||
|                     mmInfo.put("templateMetricType","PLANREFERENCEAMT");//度量值预置类型 | ||||
|                     mmInfo.put("amount",acctamountMap.get(sybnum+months+accountnum));//写入金额-从SAP接口中获取 | ||||
|                     mmInfo.put("amount",acctamountMap.get(months+accountnum));//写入金额-从SAP接口中获取 | ||||
|                     mmInfo.put("amountUnit","one");//金额单位 one元 thousand千元 ten_thousand 万元 | ||||
|                     mms.add(mmInfo); | ||||
|                     itemInfo.put("metricMembers",mms);//度量值列表 | ||||
|  | @ -143,46 +145,53 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|                 List<DynamicObject> pzblist = getPzb(); | ||||
|                 if(pzblist.isEmpty()){ | ||||
|                     //配置表没有对应规则,返回null | ||||
|                     logger.info("配置表没有对应规则"); | ||||
|                     logger.info("付款申请单配置表没有对应规则"); | ||||
|                     return null; | ||||
|                 } | ||||
|                 JSONArray items = data.getJSONArray("IT_ITEM"); | ||||
|                 Map<String, BigDecimal> acctamountMap = new HashMap<>(); | ||||
|                 BigDecimal amount;//根据事业部编号+月份+资金计划科目编号汇总的金额 | ||||
|                 String deptnum;//部门编号 | ||||
|                 String sybnum;//事业部编号 | ||||
|                 BigDecimal amount;//根据事业部编号+月份+资金计划科目编号汇总的金额-最新修改为根据月份+资金计划科目编号 | ||||
| //                String deptnum;//部门编号 | ||||
| //                String sybnum;//事业部编号 | ||||
|                 String months;//月份 | ||||
|                 String accountnum;//资金计划科目编号 | ||||
|                 String mapkey;//事业部编号+月份+资金计划科目编号 | ||||
|                 DynamicObject ppsybinfo;//二级部门和事业部关系对象 | ||||
| //                DynamicObject ppsybinfo;//二级部门和事业部关系对象 | ||||
|                 for (int i = 0; i < items.size(); i++) { | ||||
|                     sapresult = items.getJSONObject(i); | ||||
|                     sapresult.getString("BUKRS");//公司编号 | ||||
|                     months = sapresult.getString("FAEDT");//到期日 | ||||
|                     amount = sapresult.getBigDecimal("WRBTR");//未清金额 | ||||
|                     deptnum = sapresult.getString("ZREQ_DEPT");//二级部门,需求部门 | ||||
| //                    deptnum = sapresult.getString("ZREQ_DEPT");//二级部门,需求部门 | ||||
|                     if(JhzjUtils.isEmpty(months)){ | ||||
|                         logger.info("SAP到期日为空"+sapresult.toJSONString()); | ||||
|                         continue; | ||||
|                     } | ||||
|                     accountnum = xdMembersubjectNumber(pzblist, sapresult); | ||||
|                     if(JhzjUtils.isEmpty(accountnum)){ | ||||
|                         logger.info("SAP应付凭证未找到对应资金科目"+sapresult.toJSONString()); | ||||
|                         continue; | ||||
|                     } | ||||
|                     months = JhzjUtils.getFundPeriodBySAPDate(months); | ||||
|                     //根据二级部门和事业部关系,将该笔金额归属到事业部上 | ||||
|                     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; | ||||
|                         if(acctamountMap.containsKey(mapkey)){ | ||||
|                             acctamountMap.put(mapkey, JhzjUtils.addTwoAmount(amount,acctamountMap.get(mapkey))); | ||||
|                         }else{ | ||||
|                             acctamountMap.put(mapkey,amount); | ||||
|                         } | ||||
|                     mapkey = months+accountnum; | ||||
|                     amount = sapresult.getBigDecimal("WRBTR");//未清金额 | ||||
|                     if(acctamountMap.containsKey(mapkey)){ | ||||
|                         acctamountMap.put(mapkey, JhzjUtils.addTwoAmount(amount,acctamountMap.get(mapkey))); | ||||
|                     }else{ | ||||
|                         //TODO 如果二级部门没有对应的事业部时,数据放哪里? | ||||
|                         logger.info("根据SAP的二级部门编号未找到对应的二级部门和事业部关系"+deptnum); | ||||
|                         acctamountMap.put(mapkey,amount); | ||||
|                     } | ||||
|                     //根据二级部门和事业部关系,将该笔金额归属到事业部上 | ||||
| //                    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; | ||||
| //                        if(acctamountMap.containsKey(mapkey)){ | ||||
| //                            acctamountMap.put(mapkey, JhzjUtils.addTwoAmount(amount,acctamountMap.get(mapkey))); | ||||
| //                        }else{ | ||||
| //                            acctamountMap.put(mapkey,amount); | ||||
| //                        } | ||||
| //                    }else{ | ||||
| //                        //如果二级部门没有对应的事业部时,数据放哪里? | ||||
| //                        logger.info("根据SAP的二级部门编号未找到对应的二级部门和事业部关系"+deptnum); | ||||
| //                    } | ||||
|                 } | ||||
|                 return acctamountMap; | ||||
|             } | ||||
|  | @ -283,8 +292,8 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|         boolean yymFlag; | ||||
|         boolean kmbhFlag; | ||||
|         boolean orgFlag; | ||||
|         boolean bizbigFlag; | ||||
|         boolean bizsmallFlag; | ||||
| //        boolean bizbigFlag; | ||||
| //        boolean bizsmallFlag; | ||||
|         boolean notorgFlag; | ||||
|         boolean suppFlag; | ||||
|         boolean notsuppFlag; | ||||
|  | @ -292,43 +301,44 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|         String kdbilltype; | ||||
|         boolean billTypeFlag; | ||||
|         boolean notbillTypeFlag; | ||||
|         boolean purGroupFlag; | ||||
|         boolean notpurGroupFlag; | ||||
|         for (int i = 0; i < pzblist.size(); i++) { | ||||
|             pzbinfo = pzblist.get(i); | ||||
|             yymFlag = getDOInFlag(pzbinfo,"shjh_yym",sapresult.getString(""));//原因码 | ||||
|             yymFlag = getDOInFlag(pzbinfo,"shjh_yym",sapresult.getString("RSTGR"));//原因码 | ||||
|             if(!yymFlag){ | ||||
|                 continue; | ||||
|             } | ||||
|             kmbhFlag = getDOInFlag(pzbinfo,"shjh_kjkm",sapresult.getString(""));//会计科目 | ||||
|             kmbhFlag = getDOInFlag(pzbinfo,"shjh_kjkm",sapresult.getString("SAKNR"));//会计科目 | ||||
|             if(!kmbhFlag){ | ||||
|                 continue; | ||||
|             } | ||||
|             orgFlag = getDOInFlag(pzbinfo,"shjh_companys",sapresult.getString(""));//公司范围 | ||||
|             orgFlag = getDOInFlag(pzbinfo,"shjh_companys",sapresult.getString("BUKRS"));//包含公司范围 | ||||
|             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(""));//不包含公司 | ||||
|             notorgFlag = getDOOutFlag(pzbinfo,"shjh_bbhzz",sapresult.getString("BUKRS"));//不包含公司范围 | ||||
|             if(!notorgFlag){ | ||||
|                 continue; | ||||
|             } | ||||
|             suppFlag = getDOInFlag(pzbinfo,"shjh_supplier",sapresult.getString("LIFNR"));//包含供应商 | ||||
|             if(!suppFlag){ | ||||
|                 continue; | ||||
|             } | ||||
|             notsuppFlag = getDOOutFlag(pzbinfo,"shjh_bbhgys",sapresult.getString("LIFNR"));//不包含供应商 | ||||
|             if(!notsuppFlag){ | ||||
|                 continue; | ||||
|             } | ||||
| //            bizbigFlag = getDOInFlag(pzbinfo,"shjh_bizbig",sapresult.getString(""));//业务大类 | ||||
| //            if(!bizbigFlag){ | ||||
| //                continue; | ||||
| //            } | ||||
| //            bizsmallFlag = getDOInFlag(pzbinfo,"shjh_bizsmall",sapresult.getString(""));//业务小类 | ||||
| //            if(!bizsmallFlag){ | ||||
| //                continue; | ||||
| //            } | ||||
| //            getBooleanFlag(pzbinfo,"shjh_czl",sapresult.getString(""));//是否充值类 | ||||
| //            getBooleanFlag(pzbinfo,"shjh_zxcg",sapresult.getString(""));//是否自行采购 | ||||
| //            getBooleanFlag(pzbinfo,"shjh_zxcg",sapresult.getString("ZZXCG_FLAG"));//是否自行采购 | ||||
| //            getBooleanFlag(pzbinfo,"shjh_poisnull",sapresult.getString(""));//PO号是否为空 | ||||
|             sapbillno = sapresult.getString("XBLNR");//sap单据号 | ||||
|             kdbilltype = JhzjUtils.getBillTypeForSAP(sapbillno);//根据sap单据号获取对应的金蝶单据类型 | ||||
|  | @ -340,6 +350,17 @@ public class FundPlanPaymentTask extends AbstractTask implements Plugin { | |||
|             if(!notbillTypeFlag){ | ||||
|                 continue; | ||||
|             } | ||||
| 
 | ||||
|             purGroupFlag = getDOInFlag(pzbinfo,"shjh_cgz",sapresult.getString("EKGRP"));//包含采购组 | ||||
|             if(!purGroupFlag){ | ||||
|                 continue; | ||||
|             } | ||||
|             notpurGroupFlag = getDOInFlag(pzbinfo,"shjh_bbhcgz",sapresult.getString("EKGRP"));//不包含采购组 | ||||
| 
 | ||||
|             if(notpurGroupFlag){ | ||||
|                 //最后一个标记满足条件,则返回,否则会继续循环 | ||||
|                 return pzbinfo.getDynamicObject("shjh_membersubject").getString("number"); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return null; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue