From f2a554dc32fc6ba032c1f61a49f4a71648b95dc4 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Sun, 25 May 2025 21:10:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E4=BB=98=E6=AC=BE=E3=80=81=E7=90=86?= =?UTF-8?q?=E8=B4=A2=E5=AE=9A=E6=9C=9F=E5=87=AD=E8=AF=81-=E5=8F=8D?= =?UTF-8?q?=E8=AE=B0=E8=B4=A6=E3=80=81=E7=A8=8E=E7=A0=81=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=8E=A8=E9=80=81sap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/DepositpreintSapOperation.java | 7 +++++-- .../plugin/operate/PaybillPushSapOperation.java | 12 +++++++++++- .../plugin/operate/RecPushVoucherOperation.java | 1 + .../fi/plugin/operate/RevenueBillOperation.java | 7 +++++-- .../jhzj7/fi/fi/webapi/AspAccountControler.java | 16 ++++++++++++++-- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java index 3c1e72b..9ba9417 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java @@ -196,7 +196,7 @@ public class DepositpreintSapOperation extends AbstractOperationServicePlugIn im QFilter voucherFilters = new QFilter("sourcebill", QCP.equals, prinfo.getPkValue());//凭证源单ID为预提单 voucherFilters.and(new QFilter("billstatus",QCP.equals,"C"));//凭证状态已审核 DynamicObject gl_voucher = BusinessDataServiceHelper.loadSingle(voucherName, - "id,description,sourcebill,entries,entries.account,entries.assgrp,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype", + "id,description,shjh_fjz,sourcebill,entries,entries.account,entries.assgrp,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype", voucherFilters.toArray()); if (null != gl_voucher) { IS_HEADER.put("BLART", gl_voucher.getString("vouchertype.number"));//根据金蝶凭证类型设置 @@ -219,6 +219,10 @@ public class DepositpreintSapOperation extends AbstractOperationServicePlugIn im item.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识 } item.put("SGTXT", entry.getString("edescription"));//凭证行摘要 + //凭证反记账标识判断,如果凭证上已勾选,则传X给sap + if(gl_voucher.getBoolean("shjh_fjz")){ + item.put("XNEGP", "X"); + } //获取贷方金额 creditlocal = entry.getBigDecimal("creditlocal");//贷方 //获取分录借贷方向 @@ -249,7 +253,6 @@ public class DepositpreintSapOperation extends AbstractOperationServicePlugIn im new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 item.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心 } - } } // item.put("RSTGR", "014");//原因代码_原因码 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 f5db13e..0b1006b 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java @@ -254,7 +254,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl QFilter q1 = new QFilter("sourcebill", QCP.equals, bill.getPkValue()); QFilter q2 = new QFilter("billstatus",QCP.equals,"C"); DynamicObject gl_voucher = BusinessDataServiceHelper.loadSingle("gl_voucher", - "id,description,sourcebill,entries,entries.account,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype,entries.assgrp", + "id,description,shjh_fjz,sourcebill,entries,entries.account,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype,entries.assgrp", new QFilter[]{q1, q2}); if (null != gl_voucher) { //todo:对header 凭证类型重新赋值 @@ -286,6 +286,10 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl IT_ITEMS.put("KOSTL", KOSTL);//成本中心_成本中心(付款单shjh_costcenter) IT_ITEMS.put("PRCTR", PRCTR);//利润中心_利润中心(付款单shjh_pc) IT_ITEMS.put("SGTXT", entry.getString("edescription"));//SAP凭证行摘要 + //凭证反记账标识判断,如果凭证上已勾选,则传X给sap + if(gl_voucher.getBoolean("shjh_fjz")){ + IT_ITEMS.put("XNEGP", "X"); + } assgrpinfo = entry.getDynamicObject("assgrp");//核算维度(弹性域) if(assgrpinfo != null){ @@ -330,6 +334,12 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl }else if("f000056".equals(asstype)){ //分配编号 f000056 IT_ITEMS.put("ZUONR",glassistbd.getString("assval")); + }else if("f000023".equals(asstype)){ + //税码 f000023 + IT_ITEMS.put("MWSKZ",glassistbd.getString("assval")); + }else if("f000031".equals(asstype)){ + //税基 f000031 +// IT_ITEMS.put("MWSBP",glassistbd.getString("assval")); } } } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java index b8e2ff9..8ef32f9 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java @@ -458,6 +458,7 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl }else if("f000031".equals(asstype)){ //税基 f000031 // IT_ITEMS.put("MWSBP",glassistbd.getString("assval")); + } } } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java index 186a4f1..409a2a9 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java @@ -203,7 +203,7 @@ public class RevenueBillOperation extends AbstractOperationServicePlugIn impleme QFilter voucherFilters = new QFilter("sourcebill", QCP.equals, prinfo.getPkValue());//凭证源单ID为预提单 voucherFilters.and(new QFilter("billstatus",QCP.equals,"C"));//凭证状态已审核 DynamicObject gl_voucher = BusinessDataServiceHelper.loadSingle(voucherName, - "id,description,sourcebill,entries,entries.account,entries.assgrp,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype", + "id,description,shjh_fjz,sourcebill,entries,entries.account,entries.assgrp,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype", voucherFilters.toArray()); if (null != gl_voucher) { IS_HEADER.put("BLART", gl_voucher.getString("vouchertype.number"));//根据金蝶凭证类型设置 @@ -226,6 +226,10 @@ public class RevenueBillOperation extends AbstractOperationServicePlugIn impleme item.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识 } item.put("SGTXT", entry.getString("edescription"));//凭证行摘要 + //凭证反记账标识判断,如果凭证上已勾选,则传X给sap + if(gl_voucher.getBoolean("shjh_fjz")){ + item.put("XNEGP", "X"); + } //获取贷方金额 creditlocal = entry.getBigDecimal("creditlocal");//贷方 //获取分录借贷方向 @@ -256,7 +260,6 @@ public class RevenueBillOperation extends AbstractOperationServicePlugIn impleme new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 item.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心 } - } } // item.put("RSTGR", "014");//原因代码_原因码 diff --git a/main/java/shjh/jhzj7/fi/fi/webapi/AspAccountControler.java b/main/java/shjh/jhzj7/fi/fi/webapi/AspAccountControler.java index 471942d..4eb253c 100644 --- a/main/java/shjh/jhzj7/fi/fi/webapi/AspAccountControler.java +++ b/main/java/shjh/jhzj7/fi/fi/webapi/AspAccountControler.java @@ -213,7 +213,7 @@ public class AspAccountControler { JSONArray companysJson = json_obj.getJSONArray("companys"); //处理科目分配 EsbUtils.handleAssignNew(companysJson, acctids, entityName); - //处理科目在每个公司生成 + //处理科目在每个公司生成 2211开头的科目统一在科目接口上设置税基和税码的核算维度 Map companyAcctMaps = handleAccountCompany(accountMaps,companysJson); //处理每个公司下科目的核算维度和禁用状态 JSONArray asstacttypesJson = json_obj.getJSONArray("asstacttypes"); @@ -390,10 +390,22 @@ public class AspAccountControler { bbiso = dess[j]; bbInfo = BusinessDataServiceHelper.loadSingleFromCache(bbName,new QFilter[]{new QFilter("number","=",bbiso)}); if(bbInfo != null){ - docbb.addNew().set("currency",bbInfo.getLong("id")); + docbb.addNew().set("currency",bbInfo); } } } + if(olddo.getString("number").startsWith("2211")){ + //2211开头的科目统一在科目接口上设置税基和税码的核算维度 + DynamicObjectCollection dochswd = newAcctInfo.getDynamicObjectCollection("checkitementry"); + DynamicObject itementryInfo = dochswd.addNew(); + itementryInfo.set("asstactitem",getHsxmInfo("税基")); + itementryInfo.set("isdetail", true);//明细 + itementryInfo.set("isrequire", false);//必录 + DynamicObject itementryInfo1 = dochswd.addNew(); + itementryInfo1.set("asstactitem",getHsxmInfo("税码")); + itementryInfo1.set("isdetail", true);//明细 + itementryInfo1.set("isrequire", false);//必录 + } //损益类型 newAcctInfo.set("pltype", olddo.getString("pltype")); newAcctInfo.set("parent", olddo.getDynamicObject("parent"));