From bd25a6510b0eb1d0108c97b9f5a48d46ef418703 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Thu, 15 May 2025 17:59:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=9C=9F=E8=AE=B0=E8=B4=A6=E9=A2=84?= =?UTF-8?q?=E6=8F=90=E6=8E=A8=E9=80=81sap=E7=9B=B8=E5=85=B3=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/RecBillChangeListExtendPlugin.java | 7 +- .../operate/ClearAccountBillOperation.java | 9 +- .../DepositprebatchAuditOperation.java | 43 ++++ .../operate/DepositpreintSapOperation.java | 205 ++++++++++++++++++ .../plugin/operate/IntBillBatchOperation.java | 18 +- .../plugin/operate/RevenueBillOperation.java | 2 +- .../plugin/operate/VoucherAuditOperation.java | 20 +- .../plugin/operate/VoucherBillOperation.java | 7 +- 8 files changed, 279 insertions(+), 32 deletions(-) create mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositprebatchAuditOperation.java create mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java index 87a9246..fd27f85 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java @@ -101,8 +101,8 @@ public class RecBillChangeListExtendPlugin extends AbstractListPlugin implements } // 清账状态判断 - boolean isAutoCleared = "A".equals(qzState) || "D".equals(qzState); - boolean isToBeCleared = "B".equals(qzState); + boolean isAutoCleared = "A".equals(qzState) || "D".equals(qzState);//无需金蝶清账 反清账 + boolean isToBeCleared = "B".equals(qzState);//待清账 boolean isClearBillCancelled = false; if (isToBeCleared) { @@ -117,6 +117,9 @@ public class RecBillChangeListExtendPlugin extends AbstractListPlugin implements break; } } + }else{ + //未关联下游业务时,也允许变更 + isClearBillCancelled = true; } // else { //未关联下游业务时 diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java index 65eeca1..2c414f1 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java @@ -559,7 +559,8 @@ public class ClearAccountBillOperation extends AbstractOperationServicePlugIn im JSONObject zkitem = new JSONObject(); zkitem.put("HKONT", "1122020700");//科目编号 zkitem.put("KUNNR", customerCode);//客户编号 - zkitem.put("DMBTR", deductionamount.toString());//账扣金额 正数对应借方,负数对应贷方 + zkitem.put("DMBTR", deductionamount.negate().toString());//账扣金额 正数对应借方,负数对应贷方 + //判断收款小于应收时(分录本次核销金额的合计值大于0) 就要传正数 IT_ITEM.add(zkitem); } if(diffamount != null && diffamount.signum() != 0){ @@ -567,7 +568,8 @@ public class ClearAccountBillOperation extends AbstractOperationServicePlugIn im JSONObject wcitem = new JSONObject(); wcitem.put("HKONT", "1122020100");//科目编号 wcitem.put("KUNNR", "1001226");//客户编号 - wcitem.put("DMBTR", diffamount.toString());//尾差金额 正数对应借方,负数对应贷方 + wcitem.put("DMBTR", diffamount.negate().toString());//尾差金额 正数对应借方,负数对应贷方 + //判断收款小于应收时(分录本次核销金额的合计值大于0) 就要传正数 IT_ITEM.add(wcitem); } // customerCode = "1005004";//上海禾诗家化妆品有限公司 -- 仅测试 @@ -583,7 +585,8 @@ public class ClearAccountBillOperation extends AbstractOperationServicePlugIn im clear.put("GJAHR",entryinfo.getString("shjh_e_year"));//会计年度 clear.put("BUZEI",entryinfo.getString("shjh_e_pzhh"));//行编号 clear.put("KUNNR",customerCode);//客户编号 - clear.put("HKONT",entryinfo.getString("shjh_e_account"));//总账科目 + clear.put("HKONT",entryinfo.getString("shjh_e_account"));//总账科目编号 + clear.put("UMSKZ", JhzjUtils.getUMSKZ(entryinfo.getString("shjh_e_account")));//特殊总账标识 clear.put("DMBTR1",entryinfo.getBigDecimal("shjh_e_cursettle").abs());//清账金额--sap接收的正数金额 IT_CLEAR.add(clear); } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositprebatchAuditOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositprebatchAuditOperation.java new file mode 100644 index 0000000..02af389 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositprebatchAuditOperation.java @@ -0,0 +1,43 @@ +package shjh.jhzj7.fi.fi.plugin.operate; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.db.DB; +import kd.bos.db.DBRoute; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + + +/** + * 定期收益批量预提-单据审核操作插件-携带是否需要生成凭证标记 + * shjh_cim_depositpreba_ext + * @author yuxueliang + */ +public class DepositprebatchAuditOperation extends AbstractOperationServicePlugIn implements Plugin { + + private static final String updateVoucher = "update t_cfm_preinterestbill set fk_shjh_needvoucher=1 where fid=?;"; + + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) { + super.afterExecuteOperationTransaction(e); + String eok = e.getOperationKey(); + if("audit".equals(eok)){ + DynamicObject[] dos = e.getDataEntities(); + DynamicObject prinfo;//定期收益批量预提单 + DynamicObjectCollection doc_entry; + for (int i = 0; i < dos.length; i++) { + prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName()); + if(prinfo.getBoolean("shjh_needvoucher")){ + //将此字段值携带至定期预提记账处理单中 + doc_entry = prinfo.getDynamicObjectCollection("entry");//结息分录集合 + for (DynamicObject depositpreintinfo : doc_entry) { + DB.update(DBRoute.of("fi"), updateVoucher, new Object[]{depositpreintinfo.getLong("intbillid")}); + } + } + } + } + } + +} diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java new file mode 100644 index 0000000..5b73e86 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/DepositpreintSapOperation.java @@ -0,0 +1,205 @@ +package shjh.jhzj7.fi.fi.plugin.operate; + + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.sap.db.jdbc.packet.ErrorLevel; +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.db.DB; +import kd.bos.db.DBRoute; +import kd.bos.entity.operate.result.OperateErrorInfo; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.entity.plugin.args.BeforeOperationArgs; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.sdk.plugin.Plugin; +import shjh.jhzj7.fi.fi.utils.ApiUtils; +import shjh.jhzj7.fi.fi.utils.JhzjUtils; +import shjh.jhzj7.fi.fi.utils.SapUtils; +import shjh.jhzj7.fi.fi.utils.domin.ResponseData; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; + +/** + * 定期预提记账处理 shjh_cim_depositprein_ext-单据推送sap操作插件 + * @author yuxueliang + */ +public class DepositpreintSapOperation extends AbstractOperationServicePlugIn implements Plugin { + + private static final String updateVoucherFlag = "update t_cfm_preinterestbill set fk_shjh_sendsap=1,fk_shjh_sappzh=? where fid=?;"; + private static final String userName = "bos_user";//用户 + private static final String voucherName = "gl_voucher";//凭证 + private static final String pcName = "shjh_pc";//利润中心 + private static final String ccName = "bos_costcenter";//成本中心 + private static final String glbdName = "gl_assist_bd";//核算项目组合纵表 + + private final static Log logger = LogFactory.getLog(DepositpreintSapOperation.class); + + @Override + public void beforeExecuteOperationTransaction(BeforeOperationArgs e) { + super.beforeExecuteOperationTransaction(e); + String eok = e.getOperationKey(); + if("sendvoucher".equals(eok)){ + DynamicObject[] dos = e.getDataEntities(); + DynamicObject prinfo; + for (int i = 0; i < dos.length; i++) { + prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName()); + //判断定期预提记账处理单是否已生成金蝶凭证 + if(!prinfo.getBoolean("isvoucher")){ + e.setCancelMessage(prinfo.getString("billno") + "未生成金蝶凭证,无法推送SAP"); + e.setCancel(true); + }else if(prinfo.getBoolean("shjh_sendsap")){ + e.setCancelMessage(prinfo.getString("billno") + "已推送SAP,无需再次推送"); + e.setCancel(true); + } + } + } + } + + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) { + super.afterExecuteOperationTransaction(e); + String eok = e.getOperationKey(); + if("sendvoucher".equals(eok)){ + //推送sap凭证接口 + DynamicObject[] dos = e.getDataEntities(); + DynamicObject prinfo;//定期预提记账处理单 + JSONObject sapReturnData; + ResponseData respdata; + for (int i = 0; i < dos.length; i++) { + prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName()); + if(prinfo.getBoolean("shjh_needvoucher") && !prinfo.getBoolean("shjh_sendsap")){ + //如果定期预提记账处理单需要生成凭证且未推送sap的才推送sap + sapReturnData = sendVoucher(prinfo); + if(sapReturnData != null && "0".equals(sapReturnData.getString("code"))){ + //解析sap凭证接口返回值 + respdata = ApiUtils.getResponseData(sapReturnData); + if(respdata == null){ + addErrorInfo(prinfo,"SAP凭证接口返回值为空,详见接口日志"); + continue; + } + //推送sap成功后,反写已推送标记和sap凭证号至预提单中 + DB.update(DBRoute.of("fi"), updateVoucherFlag, new Object[]{respdata.getNumber(),prinfo.getPkValue()}); + this.operationResult.addSuccessPkId(prinfo.getPkValue()); + }else if(sapReturnData != null){ + addErrorInfo(prinfo,"推送SAP接口失败:"+sapReturnData.getString("msg")); + }else{ + addErrorInfo(prinfo,"推送SAP接口失败,SAP返回值为空;或者金蝶凭证未审核,请检查"); + } + } + } + } + } + + private JSONObject sendVoucher(DynamicObject prinfo){ + //SAP定期预提收益凭证接口入参组装和调用 + JSONObject IS_HEADER = new JSONObject();//抬头 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期格式化工具 + String companyCode = prinfo.getDynamicObject("org").getString("number"); + IS_HEADER.put("BUKRS",companyCode);//公司代码 + IS_HEADER.put("BLART","SA");//凭证类型-总账类凭证 + IS_HEADER.put("BLDAT",sdf.format(prinfo.getDate("bizdate")));//凭证日期-业务日期 + IS_HEADER.put("BUDAT",sdf.format(prinfo.getDate("expiredate")));//过账日期-预提日期 + String isoCode = prinfo.getDynamicObject("currency").getString("number"); + IS_HEADER.put("WAERS", JhzjUtils.getCurrencyCode(isoCode));//币种 + IS_HEADER.put("XBLNR",prinfo.getString("billno"));//参考凭证号-单据编号 固定长度16位 + IS_HEADER.put("BKTXT",prinfo.getString("productname"));//凭证抬头文本 产品名称 + //添加用户名过滤条件-操作审核按钮的用户(OA用户名) + DynamicObject userinfo = BusinessDataServiceHelper.loadSingleFromCache(RequestContext.get().getCurrUserId(), userName); + String oauser = userinfo.getString("shjh_oauser"); + if(JhzjUtils.isEmpty(oauser)){ + IS_HEADER.put("USNAM","资金系统");//用户名 + }else{ + IS_HEADER.put("USNAM",oauser);//用户名 + } + + //----------------处理详细入参--获取对应金蝶凭证-------------------- + JSONArray IT_ITEM = new JSONArray();//详细 + 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,vouchertype", + voucherFilters.toArray()); + if (null != gl_voucher) { + IS_HEADER.put("BLART", gl_voucher.getString("vouchertype.number"));//根据金蝶凭证类型设置 + if(!JhzjUtils.isEmpty(gl_voucher.getString("description"))){ + IS_HEADER.put("BKTXT", gl_voucher.getString("description"));//凭证抬头文本-从金蝶凭证中获取 + } + DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries"); + JSONObject item; + DynamicObject account; + BigDecimal creditlocal; + DynamicObject assgrpinfo; + String asstype; + DynamicObject glassistbd; + DynamicObject hsxminfo; + for (DynamicObject entry : entries) { + item = new JSONObject(); + account = entry.getDynamicObject("account");//科目 + if (null != account) { + item.put("HKONT", account.getString("number")); //总账科目_科目(凭证分录account) + item.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识 + } + //获取贷方金额 + creditlocal = entry.getBigDecimal("creditlocal");//贷方 + //获取分录借贷方向 + String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方) + if ("1".equals(entrydc)) { + //设置sap凭证借方金额 + item.put("DMBTR", String.valueOf(entry.getBigDecimal("debitlocal"))); + } else if ("-1".equals(entrydc)) { + //设置sap凭证贷方金额 sap通过负数体现贷方 + item.put("DMBTR", String.valueOf(creditlocal.negate())); + } + assgrpinfo = entry.getDynamicObject("assgrp");//核算维度(弹性域) + if(assgrpinfo != null){ + DynamicObjectCollection gl_assist_bd = QueryServiceHelper.query(glbdName, "asstype,assval", + new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())}); + + for (int j = 0; j < gl_assist_bd.size(); j++) { + glassistbd = gl_assist_bd.get(j); + asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名 + if("f000012".equals(asstype)){ + //利润中心 f000012 + hsxminfo = QueryServiceHelper.queryOne(pcName, "id,name,number", + new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 + item.put("PRCTR",hsxminfo.getString("number"));//利润中心_利润中心 + }else if("f000011".equals(asstype)){ + //成本中心 f000011 + hsxminfo = QueryServiceHelper.queryOne(ccName, "id,name,number", + new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值 + item.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心 + } + + } + } +// item.put("RSTGR", "014");//原因代码_原因码 +// item.put("SGTXT", SGTXT);//行项目文本_SAP会计科目行项目号 + IT_ITEM.add(item); + } + }else{ + String billNo = prinfo.getString("billno"); + logger.error("无法获取定期预提记账处理单[" + billNo + "]关联的凭证信息,凭证不存在或未审核"); + return null; + } + //组装参数调用推送sap凭证接口 + JSONObject sapReturnData = SapUtils.sapTransactionAPI(IS_HEADER,IT_ITEM,null,prinfo.getString("billno")); + return sapReturnData; + } + + private void addErrorInfo(DynamicObject bill, String errorMsg) { + OperateErrorInfo operateErrorInfo = new OperateErrorInfo(); + operateErrorInfo.setMessage(bill.getString("billno") + errorMsg); + operateErrorInfo.setErrorLevel(ErrorLevel.Error.name()); + operateErrorInfo.setPkValue(bill.getPkValue()); + this.operationResult.addErrorInfo(operateErrorInfo); + } +} diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/IntBillBatchOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/IntBillBatchOperation.java index 575d9f7..a204435 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/IntBillBatchOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/IntBillBatchOperation.java @@ -5,19 +5,18 @@ import kd.bos.db.DB; import kd.bos.db.DBRoute; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.args.AfterOperationArgs; -import kd.bos.orm.query.QCP; -import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; /** - * 理财收益批量预提-单据操作插件 + * 理财收益批量预提-单据审核操作插件-携带是否需要生成凭证标记 + * shjh_cim_intbill_batc_ext * @author yuxueliang */ public class IntBillBatchOperation extends AbstractOperationServicePlugIn implements Plugin { private static final String destName = "cim_intbill_revenue";//预提记账处理 - private static final String updateVoucher = "update t_cim_revenue set fk_shjh_needvoucher=1 where fid=?;"; + private static final String updateVoucher = "update t_cim_revenue set fk_shjh_needvoucher=1 where fintbatchbillid=?;"; @Override public void afterExecuteOperationTransaction(AfterOperationArgs e) { @@ -26,20 +25,11 @@ public class IntBillBatchOperation extends AbstractOperationServicePlugIn implem if("audit".equals(eok)){ DynamicObject[] dos = e.getDataEntities(); DynamicObject prinfo;//理财收益批量预提单 -// DynamicObject destinfo;//预提记账处理单 - QFilter qFilter;//预提记账处理单集合 - DynamicObject[] ytjzdos; for (int i = 0; i < dos.length; i++) { prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(), dos[i].getDataEntityType().getName()); if(prinfo.getBoolean("shjh_needvoucher")){ //将此字段值携带至预提记账处理单中 intbatchbillid - qFilter = new QFilter("intbatchbillid", QCP.equals, prinfo.getLong("id")); - ytjzdos = BusinessDataServiceHelper.load(destName,"id",new QFilter[]{qFilter}); - if(ytjzdos != null){ - for (DynamicObject destinfo : ytjzdos){ - DB.update(DBRoute.of("fi"), updateVoucher, new Object[]{destinfo.getLong("id")}); - } - } + DB.update(DBRoute.of("fi"), updateVoucher, new Object[]{prinfo.getPkValue()}); } } } 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 74127a9..3ab7eaf 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RevenueBillOperation.java @@ -28,7 +28,7 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; /** - * 预提记账处理 shjh_cim_intbill_reve_ext-单据操作插件 + * 理财预提记账处理 shjh_cim_intbill_reve_ext-单据推送sap操作插件 * @author yuxueliang */ public class RevenueBillOperation extends AbstractOperationServicePlugIn implements Plugin { diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java index 69f0db5..d3f4e22 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java @@ -23,7 +23,8 @@ public class VoucherAuditOperation extends AbstractOperationServicePlugIn implem private static final String recbillName = "cas_recbill";//收款单 private static final String paybillName = "cas_paybill";//付款单 - private static final String intbillName = "cim_intbill_revenue";//预提记账处理单 + private static final String intbillName = "cim_intbill_revenue";//理财预提记账处理单 + private static final String depositpreintName = "cim_depositpreint";//定期预提记账处理单 @Override public void afterExecuteOperationTransaction(AfterOperationArgs e) { @@ -44,6 +45,7 @@ public class VoucherAuditOperation extends AbstractOperationServicePlugIn implem //同一个用户在多个界面操作同一张,也不允许操作 operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); OperationResult operResult;//操作执行结果 + List allErrorInfo; for (DynamicObject pzinfo : dos) { //重新加载凭证对象 pzinfo = BusinessDataServiceHelper.loadSingle(pzinfo.getPkValue(), pzinfo.getDataEntityType().getName(), "id,billno,sourcebill,sourcebilltype"); @@ -69,7 +71,7 @@ public class VoucherAuditOperation extends AbstractOperationServicePlugIn implem //可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 if (!operResult.isSuccess()){ logger.error(operResult.getMessage()); - List allErrorInfo = operResult.getAllErrorInfo(); + allErrorInfo = operResult.getAllErrorInfo(); for (OperateErrorInfo errorInfo : allErrorInfo) { this.operationResult.addErrorInfo(errorInfo); } @@ -83,21 +85,21 @@ public class VoucherAuditOperation extends AbstractOperationServicePlugIn implem logger.info("执行付款单 pushsap 成功,单据编号:" + bizbillinfo.getString("billno")); } else { logger.error(operResult.getMessage()); - List allErrorInfo = operResult.getAllErrorInfo(); + allErrorInfo = operResult.getAllErrorInfo(); for (OperateErrorInfo errorInfo : allErrorInfo) { this.operationResult.addErrorInfo(errorInfo); } } - }else if(intbillName.equals(sourcebilltype)){ - bizbillinfo = BusinessDataServiceHelper.loadSingle(sourcebillid,intbillName); - //执行预提记账处理单推送sap操作,并反馈操作执行结果 - operResult = OperationServiceHelper.executeOperate("sendvoucher", intbillName, new DynamicObject[]{bizbillinfo}, operateOption); + }else if(intbillName.equals(sourcebilltype) || depositpreintName.equals(sourcebilltype)){ + bizbillinfo = BusinessDataServiceHelper.loadSingle(sourcebillid,sourcebilltype); + //执行理财和定期预提记账处理单推送sap操作,并反馈操作执行结果 + operResult = OperationServiceHelper.executeOperate("sendvoucher", sourcebilltype, new DynamicObject[]{bizbillinfo}, operateOption); // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 if (operResult.isSuccess()) { - logger.info("执行预提记账处理单 sendvoucher 成功,单据编号:" + bizbillinfo.getString("billno")); + logger.info("执行理财或定期预提记账处理单 sendvoucher 成功,单据编号:" + bizbillinfo.getString("billno")); } else { logger.error(operResult.getMessage()); - List allErrorInfo = operResult.getAllErrorInfo(); + allErrorInfo = operResult.getAllErrorInfo(); for (OperateErrorInfo errorInfo : allErrorInfo) { this.operationResult.addErrorInfo(errorInfo); } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherBillOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherBillOperation.java index c7c963d..de263de 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherBillOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherBillOperation.java @@ -10,7 +10,8 @@ public class VoucherBillOperation extends AbstractOperationServicePlugIn impleme private static final String recbillName = "cas_recbill";//收款单 private static final String paybillName = "cas_paybill";//付款单 - private static final String intbillName = "cim_intbill_revenue";//预提记账处理单 + private static final String intbillName = "cim_intbill_revenue";//理财预提记账处理单 + private static final String depositpreintName = "cim_depositpreint";//定期预提记账处理单 @Override public void beforeExecuteOperationTransaction(BeforeOperationArgs e) { @@ -39,8 +40,8 @@ public class VoucherBillOperation extends AbstractOperationServicePlugIn impleme e.setCancel(true); } - }else if(intbillName.equals(sourcebilltype)){ - bizbillinfo = BusinessDataServiceHelper.loadSingle(sourcebillid,intbillName,"id,billno,shjh_sendsap"); + }else if(intbillName.equals(sourcebilltype) || depositpreintName.equals(sourcebilltype)){ + bizbillinfo = BusinessDataServiceHelper.loadSingle(sourcebillid,sourcebilltype,"id,billno,shjh_sendsap"); if(bizbillinfo.getBoolean("shjh_sendsap")){ e.setCancelMessage(pzinfo.getString("billno")+"对应的预提记账处理单"+bizbillinfo.getString("billno")+"已推送SAP,不允许反审核"); e.setCancel(true);