sap拉取优化
This commit is contained in:
parent
d876933b50
commit
bdba53f5e6
|
|
@ -50,7 +50,7 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
//调用SAP查询凭证接口
|
||||
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 accountingsubjects = (String) this.getModel().getValue("shjh_accountingsubjects");//会计科目编号
|
||||
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");
|
||||
JSONArray IT_LIST = new JSONArray();
|
||||
// 添加公司过滤条件
|
||||
// 添加公司过滤条件--改成多选
|
||||
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应付凭证号过滤条件
|
||||
if (StringUtils.isNotEmpty(payablevouchernumber)) {
|
||||
addFilterCondition(IT_LIST, "BELNR", payablevouchernumber, payablevouchernumber);
|
||||
}
|
||||
// 添加会计科目编号过滤条件
|
||||
// 添加会计科目编号过滤条件--改成多选
|
||||
if (StringUtils.isNotEmpty(accountingsubjects)) {
|
||||
addFilterCondition(IT_LIST, "HKONT", accountingsubjects, accountingsubjects);
|
||||
addFilterDumpCondition(IT_LIST, "HKONT", accountingsubjects, accountingsubjects);
|
||||
}
|
||||
// 添加SAP应付凭过账日期过滤条件
|
||||
if (postingdate_start != null || postingdate_endda != null) {
|
||||
|
|
@ -791,7 +794,17 @@ public class SappzFormPlugin extends AbstractFormPlugin {
|
|||
jsonObject.put("SIGN", "I"); // I:包含 E:排除
|
||||
jsonObject.put("LOW", low); // LOW ,枚举字段所代表值的区间开始值
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 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 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 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=?;";
|
||||
|
|
@ -533,7 +533,12 @@ public class ClearAccountBillOperation extends AbstractOperationServicePlugIn im
|
|||
DynamicObject customerinfo = prinfo.getDynamicObject("shjh_customer");//客户对象
|
||||
IS_HEADER.put("BUKRS",companyCode);//公司代码
|
||||
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()));//过账日期-当前日期
|
||||
String isoCode = prinfo.getDynamicObject("shjh_currency").getString("number");
|
||||
IS_HEADER.put("WAERS",JhzjUtils.getCurrencyCode(isoCode));//币种
|
||||
|
|
|
|||
|
|
@ -73,31 +73,32 @@ public class PayBillSubmitOperation extends AbstractOperationServicePlugIn imple
|
|||
if (!tempData1.isEmpty()) {
|
||||
JSONObject tempData = tempData1.getJSONObject(0);
|
||||
if (null != tempData) {
|
||||
String applyamount = tempData.getString("applyamount");//付款金额_actpayamt
|
||||
BigDecimal actpayamt = bill.getBigDecimal("actpayamt");
|
||||
// 将 applyamount 转换为 BigDecimal
|
||||
String applyamount = tempData.getString("applyamount");//费控-付款金额_actpayamt
|
||||
BigDecimal actpayamt = bill.getBigDecimal("actpayamt");//金蝶-付款金额
|
||||
//将 applyamount 转换为 BigDecimal
|
||||
BigDecimal applyAmountBigDecimal = new BigDecimal(applyamount);
|
||||
int comparisonResult = applyAmountBigDecimal.compareTo(actpayamt);
|
||||
if (comparisonResult != 0) {
|
||||
this.addErrorMessage(entity,"费控校验未通过不能提交:付款金额与付款单付款金额不一致");
|
||||
this.addErrorMessage(entity,"费控校验未通过不能提交:付款金额不一致");
|
||||
return;
|
||||
}
|
||||
String assacct = tempData.getString("assacct");//收款银行账号_payeebanknum
|
||||
String payeebanknum = bill.getString("payeebanknum");
|
||||
String assacct = tempData.getString("assacct");//费控-收款银行账号_payeebanknum
|
||||
String payeebanknum = bill.getString("payeebanknum");//金蝶-收款银行账号
|
||||
if (!assacct.equals(payeebanknum)) {
|
||||
this.addErrorMessage(entity,"费控校验未通过不能提交:收款银行账号与付款单银行账号不一致");
|
||||
this.addErrorMessage(entity,"费控校验未通过不能提交:收款账号不一致");
|
||||
return;
|
||||
}
|
||||
String bebank = tempData.getString("bebank");//收款银行名称_payeebankname
|
||||
String payeebankname = bill.getString("payeebankname");
|
||||
if (!bebank.equals(payeebankname)) {
|
||||
// String bebank = tempData.getString("bebank");//收款银行名称-费控是银行简称,先不校验
|
||||
// String payeebankname = bill.getString("payeebankname");
|
||||
// if (!bebank.equals(payeebankname)) {
|
||||
// this.addErrorMessage(entity,"费控校验未通过不能提交:收款银行名称与付款单银行名称不一致");
|
||||
// isMatch = false;
|
||||
}
|
||||
String bebankNum = tempData.getString("bebankNum");//收款联行号_recbanknumber
|
||||
String recbanknumber = bill.getString("recbanknumber");
|
||||
// return;
|
||||
// }
|
||||
String bebankNum = tempData.getString("bebankNum");//费控-收款银行联行号_recbanknumber
|
||||
String recbanknumber = bill.getString("payeebank.number");//金蝶-收款银行联行号
|
||||
|
||||
if (!bebankNum.equals(recbanknumber)) {
|
||||
this.addErrorMessage(entity,"费控校验未通过不能提交:收款联行号与付款单联行号不一致");
|
||||
this.addErrorMessage(entity,"费控校验未通过不能提交:收款银行联行号不一致");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,9 +113,9 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
|||
if (!"D".equals(type)) {
|
||||
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);
|
||||
if (!voucherNum.isEmpty() || result) {
|
||||
if (result) {
|
||||
this.addErrorMessage(dataEntity, "【" + billNo + "】已推送SAP,请勿重复推送。");
|
||||
}
|
||||
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("KOSTL", KOSTL);
|
||||
IT_ITEMS.put("PRCTR", PRCTR);
|
||||
//设置汇票字段
|
||||
if (sourceBillType.equals("cdm_receivablebill")) {
|
||||
IT_ITEMS.put("UMSKZ", "W");//特殊总账标识
|
||||
//源单类型是收票登记时,设置汇票字段
|
||||
if ("cdm_receivablebill".equals(sourceBillType)) {
|
||||
IT_ITEMS.put("UMSKZ", "W");//特殊总账标识-汇票时需设置为W
|
||||
DynamicObjectCollection draftInfo = recBill.getDynamicObjectCollection("cas_draftinfo");
|
||||
if (null != draftInfo && draftInfo.size() != 0) {
|
||||
//应收应付票据登记单
|
||||
DynamicObject draftBillInfo = draftInfo.get(0).getDynamicObject("draftbillinfo");
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date draftBillExpireDate = draftBillInfo.getDate("draftbillexpiredate");
|
||||
IT_ITEMS.put("ZFBDT", draftBillExpireDate !=null ? format.format(draftBillExpireDate) : "");//汇票到期日
|
||||
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("WBZOG",draftBillInfo.getString("receivername"));//受票人
|
||||
IT_ITEMS.put("WBANK",draftBillInfo.getString("draftbillno"));//票据号
|
||||
|
|
@ -494,7 +495,7 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
|||
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("GJAHR", entry.getString("shjh_fiscalyear"));//会计年度-原预付款和借款单的会计年度
|
||||
//行编号--收款即清账的情况仅限于和费控的预付款和员工还款,此时不需要传入行号
|
||||
|
|
|
|||
|
|
@ -45,7 +45,9 @@ public class RecRedPushOperation extends AbstractOperationServicePlugIn implemen
|
|||
@Override
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
//预处理单据属性,把后续校验会用到的字段,尤其是二开字段,在这里加载一下
|
||||
e.getFieldKeys().add(RedPushValidator.KEY_HOT_ACCOUNT);
|
||||
e.getFieldKeys().add(RedPushValidator.IS_PUSH_SAP);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue