- 测试问题优化

--s
This commit is contained in:
weiyunlong 2025-04-24 18:06:08 +08:00
parent 150a1c5fa1
commit 20d5d0fd8a
3 changed files with 19 additions and 21 deletions

View File

@ -85,6 +85,13 @@ public class PayApplySaveOperation extends AbstractOperationServicePlugIn implem
this.operationResult.addSuccessPkId(bill.getPkValue()); this.operationResult.addSuccessPkId(bill.getPkValue());
} }
} }
//费控
else if ("B".equals(sourcesystem)) {
DynamicObject shjhMembersubject = xdMembersubject(bill);
bill.set("shjh_membersubject", shjhMembersubject);
SaveServiceHelper.save(new DynamicObject[]{bill});
this.operationResult.addSuccessPkId(bill.getPkValue());
}
} }
} }

View File

@ -53,13 +53,18 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
if (!"D".equals(billstatus)) { if (!"D".equals(billstatus)) {
this.addErrorMessage(entity, "付款单状态不为已付款,不允许推送SAP凭证"); this.addErrorMessage(entity, "付款单状态不为已付款,不允许推送SAP凭证");
} }
//已推送,校验
if (bill.getBoolean("shjh_ispushsap")) {
this.addErrorMessage(entity, "已推送SAP凭证,不允许重复推送");
}
String shjhSourcesystem = bill.getString("shjh_sourcesystem");//来源系统,A_sap,B_fk String shjhSourcesystem = bill.getString("shjh_sourcesystem");//来源系统,A_sap,B_fk
DynamicObject paymentidentify = bill.getDynamicObject("paymentidentify");//付款单标识 DynamicObject paymentidentify = bill.getDynamicObject("paymentidentify");//付款单标识
String paymenttypeNumber = bill.getString("paymenttype.number");
if (null != paymentidentify) { if (null != paymentidentify) {
//FKBS01 主动付款 FKBS02 被动付款 //FKBS01 主动付款 FKBS02 被动付款
String number = paymentidentify.getString("number");//付款单标识 String number = paymentidentify.getString("number");//付款单标识
if ("FKBS01".equals(number)) { //付款类型:同名转账 跨主体调拨
if ("FKBS01".equals(number) && !("214".equals(paymenttypeNumber) || "217".equals(paymenttypeNumber))) {
if (!"A".equals(shjhSourcesystem)) { if (!"A".equals(shjhSourcesystem)) {
this.addErrorMessage(entity, "付款单为主动付款且来源系统不为SAP,不允许推送SAP凭证"); this.addErrorMessage(entity, "付款单为主动付款且来源系统不为SAP,不允许推送SAP凭证");
} }
@ -171,7 +176,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
} }
private JSONArray getIT_ITEM(DynamicObject bill) { private JSONArray getIT_ITEM(DynamicObject bill) {
String shjhSourcesystem = bill.getString("shjh_sourcesystem");//来源系统
//客户(bd_customer)||供应商(bd_supplier) 收款人id:payee //客户(bd_customer)||供应商(bd_supplier) 收款人id:payee
String payeetype = bill.getString("payeetype");//收款人类型 String payeetype = bill.getString("payeetype");//收款人类型
String customerOrsupnum = getCustomerOrSupplierNumber(payeetype, bill,"payee"); String customerOrsupnum = getCustomerOrSupplierNumber(payeetype, bill,"payee");
@ -231,7 +236,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
if (null != account) { if (null != account) {
//isbank //isbank
boolean isbank = account.getBoolean("isbank"); boolean isbank = account.getBoolean("isbank");
if (!isbank) { if ("A".equals(shjhSourcesystem) &&!isbank) {
continue;//非银行科目 continue;//非银行科目
} }
IT_ITEMS.put("HKONT", account.getString("number")); // 总账科目_科目(凭证分录account) IT_ITEMS.put("HKONT", account.getString("number")); // 总账科目_科目(凭证分录account)
@ -247,14 +252,11 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
// 获取贷方金额 // 获取贷方金额
BigDecimal creditlocal = (BigDecimal) entry.get("creditlocal");//贷方 BigDecimal creditlocal = (BigDecimal) entry.get("creditlocal");//贷方
String shjhSourcesystem = bill.getString("shjh_sourcesystem");//来源系统
String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方) String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
// 进行空值检查 // 进行空值检查
if (debitlocal != null && creditlocal != null && entrydc != null) { if (debitlocal != null && creditlocal != null && entrydc != null) {
BigDecimal amountToPut = BigDecimal.ZERO; BigDecimal amountToPut = BigDecimal.ZERO;
// 获取分录方向 若A,只拿一方,当前拿的借方 // 获取分录方向 若A,只拿一方,当前拿的借方
boolean isSourceSystemA = "A".equals(shjhSourcesystem);
boolean isEntryDC1 = "1".equals(entrydc); boolean isEntryDC1 = "1".equals(entrydc);
boolean isEntryDCNegative1 = "-1".equals(entrydc); boolean isEntryDCNegative1 = "-1".equals(entrydc);
if (isEntryDC1) { if (isEntryDC1) {
@ -262,23 +264,10 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
} else if (isEntryDCNegative1) { } else if (isEntryDCNegative1) {
amountToPut = creditlocal.negate();//相反 amountToPut = creditlocal.negate();//相反
} }
// if (isSourceSystemA && isEntryDC1) {
// amountToPut = debitlocal;
// } else if (!isSourceSystemA) {
//
// }else if (!isSourceSystemA) {
// if (isEntryDC1) {
// amountToPut = debitlocal;
// } else if (isEntryDCNegative1) {
// amountToPut = creditlocal.negate();//相反
// }
IT_ITEMS.put("DMBTR", String.valueOf(amountToPut)); IT_ITEMS.put("DMBTR", String.valueOf(amountToPut));
} }
IT_ITEM.add(IT_ITEMS); IT_ITEM.add(IT_ITEMS);
} }
// entries.forEach(entry -> {
// });
} }
} }
return IT_ITEM; return IT_ITEM;

View File

@ -31,7 +31,9 @@ public class PaybillPushSAPTask extends AbstractTask implements Plugin {
QFilter q2 = new QFilter("paymentidentify.number", QCP.equals, "FKBS01");//付款标识为主动付款 QFilter q2 = new QFilter("paymentidentify.number", QCP.equals, "FKBS01");//付款标识为主动付款
QFilter q3 = new QFilter("shjh_sourcesystem", QCP.equals, "A");//来源系统,A_sap,B_fk QFilter q3 = new QFilter("shjh_sourcesystem", QCP.equals, "A");//来源系统,A_sap,B_fk
QFilter q4 = new QFilter("paymentidentify.number", QCP.equals, "FKBS02");//付款标识为被动付款 QFilter q4 = new QFilter("paymentidentify.number", QCP.equals, "FKBS02");//付款标识为被动付款
QFilter filter = q1.and((q2.and(q3)).or(q4));//是否推送SAP为否 + 主动且来源系统为SAP + 被动所有 QFilter q5 = new QFilter("paymenttype.number", QCP.equals, "214");//付款类型:同名转账
QFilter q6 = new QFilter("paymenttype.number", QCP.equals, "217");//付款类型:跨主体调拨
QFilter filter = q1.and((q2.and(q3.or(q5).or(q6))).or(q4));//是否推送SAP为否 + 主动且来源系统为SAP + 被动所有
DynamicObject[] paybills = BusinessDataServiceHelper.load("cas_paybill", "id", filter.toArray()); DynamicObject[] paybills = BusinessDataServiceHelper.load("cas_paybill", "id", filter.toArray());
if (paybills.length!=0){ if (paybills.length!=0){
ArrayList<Long> ids = new ArrayList<>(); ArrayList<Long> ids = new ArrayList<>();