lc/lc123/cloud/app/plugin/operate/ap/ApFinApBillUnSettleOp.java

85 lines
3.7 KiB
Java

package tqq9.lc123.cloud.app.plugin.operate.ap;
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.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.util.StringUtils;
import kd.fi.arapcommon.api.param.ServiceNameEnum;
import kd.fi.arapcommon.api.param.SettleResult;
import kd.fi.arapcommon.api.settle.IUnSettleService;
import kd.fi.arapcommon.factory.ArApServiceAPIFactory;
import java.util.HashSet;
import java.util.Set;
/**
* 财务应付单反审核调用接口反结算
*/
public class ApFinApBillUnSettleOp extends AbstractOperationServicePlugIn {
@Override
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
e.getFieldKeys().add("org");
e.getFieldKeys().add("planentity.plancorebilltype");
e.getFieldKeys().add("planentity.plancorebillno");
}
@Override
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
DynamicObject[] dataEntities1 = e.getDataEntities();
for (DynamicObject dynamicObject : dataEntities1) {
// DynamicObject org = dynamicObject.getDynamicObject("org");
//财务应付-付款计划
DynamicObjectCollection planentity = dynamicObject.getDynamicObjectCollection("planentity");
Set<String> orderBillnoSet = new HashSet<>();
for (DynamicObject object : planentity) {
String plancorebilltype = object.getString("plancorebilltype");//核心单据类型
if ("pm_purorderbill".equals(plancorebilltype)) {
String plancorebillno = object.getString("plancorebillno");//核心单据号
if (StringUtils.isNotEmpty(plancorebillno)) {
orderBillnoSet.add(plancorebillno);
}
}
}
//付款处理
//采购订单
DynamicObject[] pm_purorderbills = BusinessDataServiceHelper.load("pm_purorderbill",
"id,billno,purbillentry_pay.tqq9_settleamount,purbillentry_pay.tqq9_paybillno,purbillentry_pay.isprepay"
, new QFilter[]{new QFilter("billno", QCP.in, orderBillnoSet)});
Set<String> billNoSet = new HashSet<>();
for (DynamicObject pm_purorderbill : pm_purorderbills) {
if (null != pm_purorderbill) {
//付款计划
DynamicObjectCollection purbillentry_pay = pm_purorderbill.getDynamicObjectCollection("purbillentry_pay");
for (DynamicObject object : purbillentry_pay) {
boolean isprepay = object.getBoolean("isprepay");//是否预付
if (isprepay) {
//付款单
String tqq9_paybillno = object.getString("tqq9_paybillno");
if (StringUtils.isNotEmpty(tqq9_paybillno)) {
billNoSet.add(tqq9_paybillno);
}
}
}
}
}
// 根据单据编号反结算对应的结算记录
if (billNoSet.size() > 0) {
IUnSettleService unSettleService = ArApServiceAPIFactory.getUnSettleService(ServiceNameEnum.APUNSETTLE.getValue());
SettleResult settleResult = unSettleService.unSettleByBillNo("cas_paybill", billNoSet);
}
}
}
}