定期记账预提推送sap相关逻辑
This commit is contained in:
parent
097d9fa234
commit
bd25a6510b
|
|
@ -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 {
|
||||
//未关联下游业务时
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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")});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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()});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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<OperateErrorInfo> 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<OperateErrorInfo> 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<OperateErrorInfo> 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<OperateErrorInfo> allErrorInfo = operResult.getAllErrorInfo();
|
||||
allErrorInfo = operResult.getAllErrorInfo();
|
||||
for (OperateErrorInfo errorInfo : allErrorInfo) {
|
||||
this.operationResult.addErrorInfo(errorInfo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue