目标成本评审审核操作插件,系统二开,去除审核通过后反写工序成本清单是否启用逻辑/工序成本预算单审核通过后“是否启用”赋值逻辑

This commit is contained in:
xuhaihui 2025-06-18 15:12:46 +08:00
parent fb120d58c8
commit f60593547b
2 changed files with 62 additions and 1 deletions

View File

@ -0,0 +1,60 @@
package zcgj.zcdev.zcdev.pr.plugin.operate;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
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 java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
//工序成本预算单审核通过后是否启用赋值
public class AimCostBillAuditOp extends AbstractOperationServicePlugIn {
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
String operationKey = e.getOperationKey();//操作标识
DynamicObject[] dataEntities = e.getDataEntities();
List<DynamicObject> modifiedEntities = new ArrayList<>();
for (DynamicObject model : dataEntities) {
long id = model.getLong("id");
QFilter f1 = new QFilter("id", "=", id);
DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("ecco_aimcostbillcbs", new QFilter[]{f1});//工序成本预算单
if (dataEntity == null) {
continue;
}
if (dataEntity.getString("billstatus").equals("C") && operationKey.equals("audit")) {
//单据状态为已审核且操作标识为审核
dataEntity.set("isenable", true);//是否启用
BigDecimal versionno;
String zcgj_periodyear = dataEntity.getString("zcgj_periodyear");//年份
DynamicObject project = dataEntity.getDynamicObject("project");//项目
versionno = dataEntity.getBigDecimal("versionno");//版本号
if (versionno != null && versionno.compareTo(BigDecimal.ONE) > 0) {
versionno = versionno.subtract(BigDecimal.ONE);//版本号减1
}
QFilter filter = new QFilter("zcgj_periodyear", "=", zcgj_periodyear);
filter.and(new QFilter("project", "=", project.getPkValue()));
filter.and(new QFilter("versionno", "=", versionno));
DynamicObject ecco_aimcostbillcbs = BusinessDataServiceHelper.loadSingle("ecco_aimcostbillcbs", new QFilter[]{filter});
if (ecco_aimcostbillcbs != null) {
ecco_aimcostbillcbs.set("isenable", false);//是否启用
modifiedEntities.add(ecco_aimcostbillcbs);
}
} else {
dataEntity.set("isenable", false);//是否启用
}
modifiedEntities.add(dataEntity);
}
if (!modifiedEntities.isEmpty()) {
try {
SaveServiceHelper.save(modifiedEntities.toArray(new DynamicObject[0]));
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
}
}

View File

@ -29,6 +29,7 @@ import kd.ec.cost.common.enums.CostReviewFromTypeEnum;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
//目标成本评审审核操作插件系统二开去除审核通过后反写工序成本清单是否启用逻辑
public class AimCostReviewOpExt extends AbstractOperationServicePlugIn {
public AimCostReviewOpExt() {
}
@ -106,7 +107,7 @@ public class AimCostReviewOpExt extends AbstractOperationServicePlugIn {
}).collect(Collectors.toSet());
QFilter idFilter = new QFilter(AimcostcbsConstant.ID_ENTITY_PK, "in", cbsCostIds);
DynamicObject[] cbsCostEntities = BusinessDataServiceHelper.load("ecco_aimcostbillcbs", "project,unitproject,isenable,versionno", new QFilter[]{idFilter});
this.invokeCbsCostAudit(cbsCostEntities);
// this.invokeCbsCostAudit(cbsCostEntities);
}
}