diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java index 0d0fa2f..4ab51b2 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java @@ -26,10 +26,7 @@ import shjh.jhzj7.fi.fi.utils.domin.ResponseData; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -93,18 +90,25 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(), "cas_paybill"); String shjhSourcesystem = bill.getString("shjh_sourcesystem");//来源系统 //主动:{1.fk:不清帐,直传付款凭证给sap;2.SAP:要清账,都传} 被动:{不用传清账} FKZJ2025030040 - //todo:付款单是由票据直接生成,凭证如何推送 JSONObject data = new JSONObject(); //抬头 JSONObject isHeader = getIS_HEADER(bill); - + //组装核算维度map + Map sapMap = new HashMap<>(); + QFilter filter1 = new QFilter("enable", QCP.equals, "1"); + QFilter filter2 = new QFilter("shjh_sap", QCP.not_equals, ""); + DynamicObject[] bdAsstacttypes = BusinessDataServiceHelper.load("bd_asstacttype", "id,shjh_sap,enable,flexfield", new QFilter[]{filter1, filter2}); + for (DynamicObject bdAsstacttype : bdAsstacttypes) { + sapMap.put(bdAsstacttype.getString("flexfield"), bdAsstacttype.getString("shjh_sap")); + } +// 时间问题代码未优化提取公共方法 // 前提:若无凭证,校验 // 票: // 1.遍历付款单明细分录,若任意一行中存在SAP凭证号:组装明细XX,拿号调方法(W);遍历票据分录,拿票据号,查收款单(将表头凭证信息)_无行编号,SAP会计科目(从收款单对应凭证取借方),清张金额取票据(转让金额) // 2.若无SAP凭证号:联查凭证(遍历,借方iteam{SGTXT:凭证行摘要},遍历票_查收款单(将表头凭证信息):行没有) // 非票: -// 1.来源SAP :(iteam{}) -// 2.else +// 1.来源SAP :(付款单查凭证:遍历分录:if贷iteam{钱取贷方} 遍历明细clear{}) +// 2.else(item:付款单联查凭证:遍历分录{原逻辑}) QFilter q1 = new QFilter("sourcebill", QCP.equals, bill.getPkValue()); QFilter q2 = new QFilter("billstatus",QCP.equals,"C"); DynamicObject gl_voucher = BusinessDataServiceHelper.loadSingle("gl_voucher", @@ -343,6 +347,8 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl }else if("f000060".equals(asstype)){ //行项目的参考码 IT_ITEMS.put("XREF3",glassistbd.getString("assval")); + }else if(sapMap.containsKey(asstype)){ + IT_ITEMS.put(sapMap.get(asstype),glassistbd.getString("assval")); } } } @@ -532,6 +538,8 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl }else if("f000060".equals(asstype)){ //行项目的参考码 IT_ITEMS.put("XREF3",glassistbd.getString("assval")); + }else if(sapMap.containsKey(asstype)){ + IT_ITEMS.put(sapMap.get(asstype),glassistbd.getString("assval")); } } } @@ -679,6 +687,8 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl }else if("f000060".equals(asstype)){ //行项目的参考码 IT_ITEMS.put("XREF3",glassistbd.getString("assval")); + }else if(sapMap.containsKey(asstype)){ + IT_ITEMS.put(sapMap.get(asstype),glassistbd.getString("assval")); } } }