sap拉取优化
This commit is contained in:
parent
d876933b50
commit
bdba53f5e6
|
|
@ -50,7 +50,7 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
||||||
//调用SAP查询凭证接口
|
//调用SAP查询凭证接口
|
||||||
case "querysappz":
|
case "querysappz":
|
||||||
//过滤条件
|
//过滤条件
|
||||||
DynamicObject shjhOrgfield = (DynamicObject) this.getModel().getValue("shjh_org");//公司
|
DynamicObject[] shjhOrgfield = (DynamicObject[]) this.getModel().getValue("shjh_org");//公司
|
||||||
String payablevouchernumber = (String) this.getModel().getValue("shjh_payablevouchernumber");//SAP应付凭证号
|
String payablevouchernumber = (String) this.getModel().getValue("shjh_payablevouchernumber");//SAP应付凭证号
|
||||||
String accountingsubjects = (String) this.getModel().getValue("shjh_accountingsubjects");//会计科目编号
|
String accountingsubjects = (String) this.getModel().getValue("shjh_accountingsubjects");//会计科目编号
|
||||||
Date postingdate_start = (Date) this.getModel().getValue("shjh_postingdate_start");//SAP应付凭过账日期(开始)
|
Date postingdate_start = (Date) this.getModel().getValue("shjh_postingdate_start");//SAP应付凭过账日期(开始)
|
||||||
|
|
@ -65,17 +65,20 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
||||||
// 日期格式
|
// 日期格式
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
JSONArray IT_LIST = new JSONArray();
|
JSONArray IT_LIST = new JSONArray();
|
||||||
// 添加公司过滤条件
|
// 添加公司过滤条件--改成多选
|
||||||
if (shjhOrgfield != null) {
|
if (shjhOrgfield != null) {
|
||||||
addFilterCondition(IT_LIST, "BUKRS", shjhOrgfield.getString("number"), shjhOrgfield.getString("number"));
|
for (DynamicObject doinfo : shjhOrgfield) {
|
||||||
|
addFilterDumpCondition(IT_LIST, "BUKRS", doinfo.getString("number"), doinfo.getString("number"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// 添加SAP应付凭证号过滤条件
|
// 添加SAP应付凭证号过滤条件
|
||||||
if (StringUtils.isNotEmpty(payablevouchernumber)) {
|
if (StringUtils.isNotEmpty(payablevouchernumber)) {
|
||||||
addFilterCondition(IT_LIST, "BELNR", payablevouchernumber, payablevouchernumber);
|
addFilterCondition(IT_LIST, "BELNR", payablevouchernumber, payablevouchernumber);
|
||||||
}
|
}
|
||||||
// 添加会计科目编号过滤条件
|
// 添加会计科目编号过滤条件--改成多选
|
||||||
if (StringUtils.isNotEmpty(accountingsubjects)) {
|
if (StringUtils.isNotEmpty(accountingsubjects)) {
|
||||||
addFilterCondition(IT_LIST, "HKONT", accountingsubjects, accountingsubjects);
|
addFilterDumpCondition(IT_LIST, "HKONT", accountingsubjects, accountingsubjects);
|
||||||
}
|
}
|
||||||
// 添加SAP应付凭过账日期过滤条件
|
// 添加SAP应付凭过账日期过滤条件
|
||||||
if (postingdate_start != null || postingdate_endda != null) {
|
if (postingdate_start != null || postingdate_endda != null) {
|
||||||
|
|
@ -791,7 +794,17 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
||||||
jsonObject.put("SIGN", "I"); // I:包含 E:排除
|
jsonObject.put("SIGN", "I"); // I:包含 E:排除
|
||||||
jsonObject.put("LOW", low); // LOW ,枚举字段所代表值的区间开始值
|
jsonObject.put("LOW", low); // LOW ,枚举字段所代表值的区间开始值
|
||||||
jsonObject.put("HIGH", high); // HIGH,枚举字段所代表值的区间结束值
|
jsonObject.put("HIGH", high); // HIGH,枚举字段所代表值的区间结束值
|
||||||
jsonObject.put("OPTION", "BT"); // 默认BT
|
jsonObject.put("OPTION", "BT"); // 默认BT-EQ
|
||||||
|
IT_LIST.add(jsonObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addFilterDumpCondition(JSONArray IT_LIST, String field, String low, String high) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("FIELD", field); // 字段
|
||||||
|
jsonObject.put("SIGN", "I"); // I:包含 E:排除
|
||||||
|
jsonObject.put("LOW", low); // LOW ,枚举字段所代表值的区间开始值
|
||||||
|
jsonObject.put("HIGH", high); // HIGH,枚举字段所代表值的区间结束值
|
||||||
|
jsonObject.put("OPTION", "EQ"); // 默认EQ
|
||||||
IT_LIST.add(jsonObject);
|
IT_LIST.add(jsonObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ public class ClearAccountBillOperation extends AbstractOperationServicePlugIn im
|
||||||
private static final String hadleClearStatusByID = "update tk_shjh_clear_account set fk_shjh_changereason='手工清账',fk_shjh_clearstatus='A',fbillstatus='C' where fid=?;";
|
private static final String hadleClearStatusByID = "update tk_shjh_clear_account set fk_shjh_changereason='手工清账',fk_shjh_clearstatus='A',fbillstatus='C' where fid=?;";
|
||||||
private static final String updateSap = "update tk_shjh_clear_account set fk_shjh_clearstatus='A',fk_shjh_pzh=?,fk_shjh_year=? where fid=?;";
|
private static final String updateSap = "update tk_shjh_clear_account set fk_shjh_clearstatus='A',fk_shjh_pzh=?,fk_shjh_year=? where fid=?;";
|
||||||
private static final String updateSrcClear = "update tk_shjh_clear_account set fk_shjh_iscopy=1 where fid=?;";
|
private static final String updateSrcClear = "update tk_shjh_clear_account set fk_shjh_iscopy=1 where fid=?;";
|
||||||
private static final String updateUnClearStatus = "update tk_shjh_clear_account set fbillstatus='D',fk_shjh_clearstatus='C',fk_shjh_unpzh=? where fid=?;";
|
private static final String updateUnClearStatus = "update tk_shjh_clear_account set fbillstatus='D',fk_shjh_clearstatus='C',fk_shjh_unclearpzh=? where fid=?;";
|
||||||
private static final String updateDetailStatusByBill = "update tk_shjh_clear_acctdetail set fbillstatus='D' where fk_shjh_clearbillid=?;";
|
private static final String updateDetailStatusByBill = "update tk_shjh_clear_acctdetail set fbillstatus='D' where fk_shjh_clearbillid=?;";
|
||||||
private static final String updateDetailStatusByID = "update tk_shjh_clear_acctdetail set fbillstatus='D' where fid=?;";
|
private static final String updateDetailStatusByID = "update tk_shjh_clear_acctdetail set fbillstatus='D' where fid=?;";
|
||||||
private static final String updateDetailClearStatus = "update tk_shjh_clear_acctdetail set fbillstatus='D',fk_shjh_clearstatus='C' where fk_shjh_clearbillid=?;";
|
private static final String updateDetailClearStatus = "update tk_shjh_clear_acctdetail set fbillstatus='D',fk_shjh_clearstatus='C' where fk_shjh_clearbillid=?;";
|
||||||
|
|
@ -533,7 +533,12 @@ public class ClearAccountBillOperation extends AbstractOperationServicePlugIn im
|
||||||
DynamicObject customerinfo = prinfo.getDynamicObject("shjh_customer");//客户对象
|
DynamicObject customerinfo = prinfo.getDynamicObject("shjh_customer");//客户对象
|
||||||
IS_HEADER.put("BUKRS",companyCode);//公司代码
|
IS_HEADER.put("BUKRS",companyCode);//公司代码
|
||||||
IS_HEADER.put("BLART","AB");//凭证类型-清账凭证
|
IS_HEADER.put("BLART","AB");//凭证类型-清账凭证
|
||||||
IS_HEADER.put("BLDAT",sdf.format(prinfo.getDate("shjh_bizdate")));//凭证日期-业务日期
|
//业务日期来源于收款单的流水交易日期,如果日期为空,则使用单据创建日期
|
||||||
|
if(prinfo.getDate("shjh_bizdate") == null){
|
||||||
|
IS_HEADER.put("BLDAT",sdf.format(prinfo.getDate("createtime")));//凭证日期
|
||||||
|
}else{
|
||||||
|
IS_HEADER.put("BLDAT",sdf.format(prinfo.getDate("shjh_bizdate")));//凭证日期
|
||||||
|
}
|
||||||
IS_HEADER.put("BUDAT",sdf.format(new Date()));//过账日期-当前日期
|
IS_HEADER.put("BUDAT",sdf.format(new Date()));//过账日期-当前日期
|
||||||
String isoCode = prinfo.getDynamicObject("shjh_currency").getString("number");
|
String isoCode = prinfo.getDynamicObject("shjh_currency").getString("number");
|
||||||
IS_HEADER.put("WAERS",JhzjUtils.getCurrencyCode(isoCode));//币种
|
IS_HEADER.put("WAERS",JhzjUtils.getCurrencyCode(isoCode));//币种
|
||||||
|
|
|
||||||
|
|
@ -73,31 +73,32 @@ public class PayBillSubmitOperation extends AbstractOperationServicePlugIn imple
|
||||||
if (!tempData1.isEmpty()) {
|
if (!tempData1.isEmpty()) {
|
||||||
JSONObject tempData = tempData1.getJSONObject(0);
|
JSONObject tempData = tempData1.getJSONObject(0);
|
||||||
if (null != tempData) {
|
if (null != tempData) {
|
||||||
String applyamount = tempData.getString("applyamount");//付款金额_actpayamt
|
String applyamount = tempData.getString("applyamount");//费控-付款金额_actpayamt
|
||||||
BigDecimal actpayamt = bill.getBigDecimal("actpayamt");
|
BigDecimal actpayamt = bill.getBigDecimal("actpayamt");//金蝶-付款金额
|
||||||
// 将 applyamount 转换为 BigDecimal
|
//将 applyamount 转换为 BigDecimal
|
||||||
BigDecimal applyAmountBigDecimal = new BigDecimal(applyamount);
|
BigDecimal applyAmountBigDecimal = new BigDecimal(applyamount);
|
||||||
int comparisonResult = applyAmountBigDecimal.compareTo(actpayamt);
|
int comparisonResult = applyAmountBigDecimal.compareTo(actpayamt);
|
||||||
if (comparisonResult != 0) {
|
if (comparisonResult != 0) {
|
||||||
this.addErrorMessage(entity,"费控校验未通过不能提交:付款金额与付款单付款金额不一致");
|
this.addErrorMessage(entity,"费控校验未通过不能提交:付款金额不一致");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String assacct = tempData.getString("assacct");//收款银行账号_payeebanknum
|
String assacct = tempData.getString("assacct");//费控-收款银行账号_payeebanknum
|
||||||
String payeebanknum = bill.getString("payeebanknum");
|
String payeebanknum = bill.getString("payeebanknum");//金蝶-收款银行账号
|
||||||
if (!assacct.equals(payeebanknum)) {
|
if (!assacct.equals(payeebanknum)) {
|
||||||
this.addErrorMessage(entity,"费控校验未通过不能提交:收款银行账号与付款单银行账号不一致");
|
this.addErrorMessage(entity,"费控校验未通过不能提交:收款账号不一致");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String bebank = tempData.getString("bebank");//收款银行名称_payeebankname
|
// String bebank = tempData.getString("bebank");//收款银行名称-费控是银行简称,先不校验
|
||||||
String payeebankname = bill.getString("payeebankname");
|
// String payeebankname = bill.getString("payeebankname");
|
||||||
if (!bebank.equals(payeebankname)) {
|
// if (!bebank.equals(payeebankname)) {
|
||||||
// this.addErrorMessage(entity,"费控校验未通过不能提交:收款银行名称与付款单银行名称不一致");
|
// this.addErrorMessage(entity,"费控校验未通过不能提交:收款银行名称与付款单银行名称不一致");
|
||||||
// isMatch = false;
|
// return;
|
||||||
}
|
// }
|
||||||
String bebankNum = tempData.getString("bebankNum");//收款联行号_recbanknumber
|
String bebankNum = tempData.getString("bebankNum");//费控-收款银行联行号_recbanknumber
|
||||||
String recbanknumber = bill.getString("recbanknumber");
|
String recbanknumber = bill.getString("payeebank.number");//金蝶-收款银行联行号
|
||||||
|
|
||||||
if (!bebankNum.equals(recbanknumber)) {
|
if (!bebankNum.equals(recbanknumber)) {
|
||||||
this.addErrorMessage(entity,"费控校验未通过不能提交:收款联行号与付款单联行号不一致");
|
this.addErrorMessage(entity,"费控校验未通过不能提交:收款银行联行号不一致");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,9 +113,9 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
||||||
if (!"D".equals(type)) {
|
if (!"D".equals(type)) {
|
||||||
this.addErrorMessage(dataEntity, "【" + billNo + "】未付款,无法推送。");
|
this.addErrorMessage(dataEntity, "【" + billNo + "】未付款,无法推送。");
|
||||||
}
|
}
|
||||||
String voucherNum = (String) rowDataModel.getValue(KEY_VOUCHER_NUM);
|
// String voucherNum = (String) rowDataModel.getValue(KEY_VOUCHER_NUM);
|
||||||
boolean result = (boolean) rowDataModel.getValue(KEY_IS_PUSH_SAP);
|
boolean result = (boolean) rowDataModel.getValue(KEY_IS_PUSH_SAP);
|
||||||
if (!voucherNum.isEmpty() || result) {
|
if (result) {
|
||||||
this.addErrorMessage(dataEntity, "【" + billNo + "】已推送SAP,请勿重复推送。");
|
this.addErrorMessage(dataEntity, "【" + billNo + "】已推送SAP,请勿重复推送。");
|
||||||
}
|
}
|
||||||
boolean isVoucher = (boolean) rowDataModel.getValue(KEY_IS_VOUCHER);
|
boolean isVoucher = (boolean) rowDataModel.getValue(KEY_IS_VOUCHER);
|
||||||
|
|
@ -362,17 +362,18 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
||||||
IT_ITEMS.put("RSTGR", RSTGR);
|
IT_ITEMS.put("RSTGR", RSTGR);
|
||||||
IT_ITEMS.put("KOSTL", KOSTL);
|
IT_ITEMS.put("KOSTL", KOSTL);
|
||||||
IT_ITEMS.put("PRCTR", PRCTR);
|
IT_ITEMS.put("PRCTR", PRCTR);
|
||||||
//设置汇票字段
|
//源单类型是收票登记时,设置汇票字段
|
||||||
if (sourceBillType.equals("cdm_receivablebill")) {
|
if ("cdm_receivablebill".equals(sourceBillType)) {
|
||||||
IT_ITEMS.put("UMSKZ", "W");//特殊总账标识
|
IT_ITEMS.put("UMSKZ", "W");//特殊总账标识-汇票时需设置为W
|
||||||
DynamicObjectCollection draftInfo = recBill.getDynamicObjectCollection("cas_draftinfo");
|
DynamicObjectCollection draftInfo = recBill.getDynamicObjectCollection("cas_draftinfo");
|
||||||
if (null != draftInfo && draftInfo.size() != 0) {
|
if (null != draftInfo && draftInfo.size() != 0) {
|
||||||
|
//应收应付票据登记单
|
||||||
DynamicObject draftBillInfo = draftInfo.get(0).getDynamicObject("draftbillinfo");
|
DynamicObject draftBillInfo = draftInfo.get(0).getDynamicObject("draftbillinfo");
|
||||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
Date draftBillExpireDate = draftBillInfo.getDate("draftbillexpiredate");
|
Date draftBillExpireDate = draftBillInfo.getDate("draftbillexpiredate");
|
||||||
IT_ITEMS.put("ZFBDT", draftBillExpireDate !=null ? format.format(draftBillExpireDate) : "");//汇票到期日
|
IT_ITEMS.put("ZFBDT", draftBillExpireDate !=null ? format.format(draftBillExpireDate) : "");//汇票到期日
|
||||||
Date issueDate = draftBillInfo.getDate("issuedate");
|
Date issueDate = draftBillInfo.getDate("issuedate");
|
||||||
IT_ITEMS.put("WDATE",issueDate !=null ? format.format(issueDate) : "");//汇票签发日期
|
IT_ITEMS.put("WDATE",issueDate !=null ? format.format(issueDate) : "");//汇票签发日期-出票日期
|
||||||
IT_ITEMS.put("WNAME",draftBillInfo.getString("drawername"));//出票人
|
IT_ITEMS.put("WNAME",draftBillInfo.getString("drawername"));//出票人
|
||||||
IT_ITEMS.put("WBZOG",draftBillInfo.getString("receivername"));//受票人
|
IT_ITEMS.put("WBZOG",draftBillInfo.getString("receivername"));//受票人
|
||||||
IT_ITEMS.put("WBANK",draftBillInfo.getString("draftbillno"));//票据号
|
IT_ITEMS.put("WBANK",draftBillInfo.getString("draftbillno"));//票据号
|
||||||
|
|
@ -494,7 +495,7 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
||||||
JSONObject item = new JSONObject();
|
JSONObject item = new JSONObject();
|
||||||
|
|
||||||
//公共字段设置
|
//公共字段设置
|
||||||
item.put("BUKRS", entry.getString("realreccompany.number"));//公司代码
|
item.put("BUKRS", entry.getString("e_settleorg.number"));//公司代码-分录结算组织编号
|
||||||
item.put("BELNR", entry.getString("shjh_verificationnum"));//会计凭证编号-原预付款和借款单的凭证号
|
item.put("BELNR", entry.getString("shjh_verificationnum"));//会计凭证编号-原预付款和借款单的凭证号
|
||||||
item.put("GJAHR", entry.getString("shjh_fiscalyear"));//会计年度-原预付款和借款单的会计年度
|
item.put("GJAHR", entry.getString("shjh_fiscalyear"));//会计年度-原预付款和借款单的会计年度
|
||||||
//行编号--收款即清账的情况仅限于和费控的预付款和员工还款,此时不需要传入行号
|
//行编号--收款即清账的情况仅限于和费控的预付款和员工还款,此时不需要传入行号
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,9 @@ public class RecRedPushOperation extends AbstractOperationServicePlugIn implemen
|
||||||
@Override
|
@Override
|
||||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||||
super.onPreparePropertys(e);
|
super.onPreparePropertys(e);
|
||||||
|
//预处理单据属性,把后续校验会用到的字段,尤其是二开字段,在这里加载一下
|
||||||
e.getFieldKeys().add(RedPushValidator.KEY_HOT_ACCOUNT);
|
e.getFieldKeys().add(RedPushValidator.KEY_HOT_ACCOUNT);
|
||||||
|
e.getFieldKeys().add(RedPushValidator.IS_PUSH_SAP);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue