入库单计算支出合同结算单金额插件

This commit is contained in:
zhangzhiguo 2025-09-08 09:41:46 +08:00
parent ffef2c8de3
commit e1f8ead743
1 changed files with 15 additions and 2 deletions

View File

@ -1,14 +1,20 @@
package zcgj.zcdev.zcdev.pr.plugin.workflow; package zcgj.zcdev.zcdev.pr.plugin.workflow;
import kd.bos.dataentity.OperateOption;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils; import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.operate.OperateOptionConst;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.botp.BFTrackerServiceHelper; import kd.bos.servicehelper.botp.BFTrackerServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.bos.workflow.api.AgentExecution; import kd.bos.workflow.api.AgentExecution;
import kd.bos.workflow.engine.extitf.IWorkflowPlugin; import kd.bos.workflow.engine.extitf.IWorkflowPlugin;
@ -22,12 +28,13 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
* 入库单计算支出合同结算单金额插件 * 入库单计算支出合同结算单支付项目分录金额插件
*/ */
public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugin { public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugin {
private static final Log log = LogFactory.getLog(MaterialInAmountToItemEntryWorkFlowPlugin.class);
@Override @Override
public void notify(AgentExecution execution) { public void notify(AgentExecution execution) {
String eventName = execution.getEventName(); String eventName = execution.getEventName();
String businessKey = execution.getBusinessKey(); String businessKey = execution.getBusinessKey();
String entityNumber = execution.getEntityNumber(); String entityNumber = execution.getEntityNumber();
@ -36,12 +43,18 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi
Map<String, HashSet<Long>> sourceBills = BFTrackerServiceHelper.findTargetBills(entityNumber, new Long[]{Long.valueOf(businessKey)}); Map<String, HashSet<Long>> sourceBills = BFTrackerServiceHelper.findTargetBills(entityNumber, new Long[]{Long.valueOf(businessKey)});
HashSet<Long> outContractSettleMap = sourceBills.get("ec_out_contract_settle"); HashSet<Long> outContractSettleMap = sourceBills.get("ec_out_contract_settle");
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:入库单推送支出合同结算单");
if(outContractSettleMap != null && !outContractSettleMap.isEmpty()) { if(outContractSettleMap != null && !outContractSettleMap.isEmpty()) {
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:"+businessKey);
Long dataId = (Long) outContractSettleMap.toArray()[0]; Long dataId = (Long) outContractSettleMap.toArray()[0];
DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle"); DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle");
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-billno:"+outContractSettle.getString("billno"));
sumMaterialInAmountToItemEntry(outContractSettle); sumMaterialInAmountToItemEntry(outContractSettle);
calAllTypeAmount(outContractSettle); calAllTypeAmount(outContractSettle);
SaveServiceHelper.save(new DynamicObject[]{outContractSettle}); SaveServiceHelper.save(new DynamicObject[]{outContractSettle});
OperateOption option= OperateOption.create();
OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option);
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString());
} }
} }