parent
501fb59533
commit
9b88ffde84
|
|
@ -201,6 +201,7 @@ public class InterestAccrualGenPaymentOperationPlugin extends AbstractOperationS
|
||||||
payBill.set("exchangerate",BigDecimal.ONE);//付款汇率
|
payBill.set("exchangerate",BigDecimal.ONE);//付款汇率
|
||||||
payBill.set("priority","public");//紧急程度 默认普通
|
payBill.set("priority","public");//紧急程度 默认普通
|
||||||
payBill.set("paymentchannel","counter");//支付渠道:柜台(默认)
|
payBill.set("paymentchannel","counter");//支付渠道:柜台(默认)
|
||||||
|
payBill.set("changestatus","unchange");//变更状态(未变更)
|
||||||
payBill.set("bizdate", currentDate);//业务日期
|
payBill.set("bizdate", currentDate);//业务日期
|
||||||
payBill.set("settletype",settleType);//结算方式
|
payBill.set("settletype",settleType);//结算方式
|
||||||
payBill.set("kdsz_czpaystatue","1");//财资付款状态 默认无需推送
|
payBill.set("kdsz_czpaystatue","1");//财资付款状态 默认无需推送
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
package kdsz.zyf25.tmc.cfm.plugin.operate;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||||
|
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||||
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 源单类型为:计息单的付款单删除时同步删除计息单及计息单上游的原始单据中付款单关联信息
|
||||||
|
*/
|
||||||
|
public class PaymentBillDeleteLkOperationPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||||
|
super.onPreparePropertys(e);
|
||||||
|
e.getFieldKeys().add("sourcebilltype");
|
||||||
|
e.getFieldKeys().add("sourcebillid");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||||
|
super.afterExecuteOperationTransaction(e);
|
||||||
|
DynamicObject[] bills = e.getDataEntities();
|
||||||
|
for (DynamicObject bill : bills) {
|
||||||
|
String srcBillType = bill.getString("sourcebilltype");
|
||||||
|
Long payBillId = bill.getLong("id");
|
||||||
|
if ("kdsz_interestaccrual".equals(srcBillType)){
|
||||||
|
Long srcBillId = bill.getLong("sourcebillid");
|
||||||
|
//查询计息单
|
||||||
|
DynamicObject srcBill = BusinessDataServiceHelper.loadSingle(srcBillId, "kdsz_interestaccrual");
|
||||||
|
if (srcBill != null){
|
||||||
|
DynamicObjectCollection srcEntries = srcBill.getDynamicObjectCollection("entryentity");
|
||||||
|
for (DynamicObject srcEntry : srcEntries) {
|
||||||
|
Long srcPayBillId = srcEntry.getLong("kdsz_e_paybillid");
|
||||||
|
if (srcPayBillId == 0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (srcPayBillId.compareTo(payBillId) == 0){
|
||||||
|
srcEntry.set("kdsz_e_paybillid",0L);
|
||||||
|
srcEntry.set("kdsz_e_paybill",null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SaveServiceHelper.update(srcBill);
|
||||||
|
deletePaymentLk(srcBill,payBillId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void deletePaymentLk(DynamicObject srcBill,Long payBillId){
|
||||||
|
String feeEntity = srcBill.getString("kdsz_srcentity");
|
||||||
|
Object feeBillId = srcBill.get("kdsz_srcbillid");
|
||||||
|
//根据源单id,源单类型找到费用明细
|
||||||
|
DynamicObject feeBill = BusinessDataServiceHelper.loadSingle(feeBillId, feeEntity);
|
||||||
|
if (feeBill != null) {
|
||||||
|
DynamicObjectCollection feeEntries = feeBill.getDynamicObjectCollection("entry");
|
||||||
|
HashSet<Long> oriBillIds = new HashSet<>();
|
||||||
|
for (DynamicObject feeEntry : feeEntries) {
|
||||||
|
long pjId = feeEntry.getLong("srcbillid");
|
||||||
|
oriBillIds.add(pjId);
|
||||||
|
}
|
||||||
|
//根据费用明细分录的上游id查询上游单据的付息记录并将本条计息单的记录删除
|
||||||
|
QFilter filter = new QFilter("id", "in", oriBillIds);
|
||||||
|
//TODO: 2025/12/10 暂时定为开票登记
|
||||||
|
Long jxId = srcBill.getLong("id");//计息单id
|
||||||
|
DynamicObject[] oriBills = BusinessDataServiceHelper.load("cdm_payablebill", "id",
|
||||||
|
new QFilter[]{filter});
|
||||||
|
for (int i = 0; i < oriBills.length; i++) {
|
||||||
|
oriBills[i] = BusinessDataServiceHelper.loadSingle(oriBills[i].getPkValue(),"cdm_payablebill");
|
||||||
|
DynamicObjectCollection srcPayEntries = oriBills[i].getDynamicObjectCollection("kdsz_payentry");
|
||||||
|
for (DynamicObject srcPayEntry : srcPayEntries) {
|
||||||
|
Long srcJXBillId = srcPayEntry.getLong("kdsz_interestbillid");
|
||||||
|
if (srcJXBillId.compareTo( jxId) == 0){
|
||||||
|
//获取计息关联付款分录
|
||||||
|
DynamicObjectCollection jxLkPayEntries = srcPayEntry.getDynamicObjectCollection("kdsz_paylinkentry");
|
||||||
|
Iterator<DynamicObject> iterator = jxLkPayEntries.iterator();
|
||||||
|
while (iterator.hasNext()){
|
||||||
|
DynamicObject next = iterator.next();
|
||||||
|
long lkPayBillId = next.getLong("kdsz_paybillid");
|
||||||
|
if (lkPayBillId == payBillId){
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SaveServiceHelper.save(oriBills);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue