工程量清单成本预算提交操作插件:去除调整操作校验项目逻辑,且在提交审核时校验年月和项目的组合是否有重复
This commit is contained in:
parent
734761f095
commit
bec5bc505b
|
@ -0,0 +1,86 @@
|
|||
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.ec.basedata.business.model.ecco.AimCostBoqSplitModelConstant;
|
||||
|
||||
//二开系统插件
|
||||
//工程量清单成本预算提交操作插件:去除调整操作校验项目逻辑,且在审核时校验年月和项目的组合是否有重复
|
||||
|
||||
public class AimCostBoqBillOpExt extends AbstractOperationServicePlugIn {
|
||||
public AimCostBoqBillOpExt() {
|
||||
}
|
||||
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
e.getFieldKeys().add("iseffective");
|
||||
e.getFieldKeys().add("billstatus");
|
||||
e.getFieldKeys().add("vision");
|
||||
e.getFieldKeys().add("project");
|
||||
e.getFieldKeys().add("unitproject");
|
||||
}
|
||||
|
||||
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||
super.onAddValidators(e);
|
||||
e.getValidators().add(new AimCostBoqBillValidatorExt());
|
||||
}
|
||||
|
||||
public void beginOperationTransaction(BeginOperationTransactionArgs e) {
|
||||
super.beginOperationTransaction(e);
|
||||
String operationKey = e.getOperationKey();
|
||||
DynamicObject[] dataEntities = e.getDataEntities();
|
||||
if (StringUtils.equals("audit", operationKey)) {
|
||||
this.doAudit(dataEntities);
|
||||
e.setDataEntities(dataEntities);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void doAudit(DynamicObject[] dataEntities) {
|
||||
Set<DynamicObject> updateBills = new HashSet();
|
||||
DynamicObject[] var3 = dataEntities;
|
||||
int var4 = dataEntities.length;
|
||||
|
||||
for(int var5 = 0; var5 < var4; ++var5) {
|
||||
DynamicObject bill = var3[var5];
|
||||
DynamicObject project = bill.getDynamicObject("project");
|
||||
boolean isNeedReview = project.getBoolean("istargetcost");
|
||||
if (!isNeedReview) {
|
||||
bill.set("iseffective", true);
|
||||
DynamicObject unitProject = bill.getDynamicObject("unitproject");
|
||||
QFilter filter = new QFilter("project", "=", project.getPkValue());
|
||||
filter.and(new QFilter("zcgj_periodyear", "=", bill.get("zcgj_periodyear")));//年月(二开添加
|
||||
if (unitProject != null) {
|
||||
filter.and(new QFilter("unitproject", "=", unitProject.getPkValue()));
|
||||
}
|
||||
|
||||
filter.and(new QFilter("iseffective", "=", "1"));
|
||||
DynamicObject[] boqBills = BusinessDataServiceHelper.load("ecco_aimcostboqsplitmodel", AimCostBoqSplitModelConstant.ID_ENTITY_PK + "," + "iseffective", new QFilter[]{filter});
|
||||
if (boqBills != null && boqBills.length > 0) {
|
||||
DynamicObject[] var12 = boqBills;
|
||||
int var13 = boqBills.length;
|
||||
|
||||
for(int var14 = 0; var14 < var13; ++var14) {
|
||||
DynamicObject boqBill = var12[var14];
|
||||
boqBill.set("iseffective", "0");
|
||||
updateBills.add(boqBill);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!updateBills.isEmpty()) {
|
||||
SaveServiceHelper.update((DynamicObject[])updateBills.toArray(new DynamicObject[0]));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.resource.ResManager;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.ExtendedDataEntity;
|
||||
import kd.bos.entity.validate.AbstractValidator;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.ec.basedata.business.model.ecco.AimCostBoqSplitModelConstant;
|
||||
|
||||
//二开系统插件
|
||||
//工程量清单成本预算提交操作调用插件:去除调整操作校验项目逻辑,且在提交时校验年月和项目的组合是否有重复
|
||||
|
||||
class AimCostBoqBillValidatorExt extends AbstractValidator {
|
||||
AimCostBoqBillValidatorExt() {
|
||||
}
|
||||
|
||||
public void validate() {
|
||||
String key = this.getOperateKey();
|
||||
if (StringUtils.equals("submit", key)) {
|
||||
this.submitValidate();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void submitValidate() {
|
||||
ExtendedDataEntity[] dataEntities = this.getDataEntities();
|
||||
ExtendedDataEntity[] var2 = dataEntities;
|
||||
int var3 = dataEntities.length;
|
||||
|
||||
for(int var4 = 0; var4 < var3; ++var4) {
|
||||
ExtendedDataEntity extendedDataEntity = var2[var4];
|
||||
DynamicObject bill = extendedDataEntity.getDataEntity();
|
||||
DynamicObject project = bill.getDynamicObject("project");
|
||||
DynamicObject unitProject = bill.getDynamicObject("unitproject");
|
||||
BigDecimal vision = bill.getBigDecimal("vision");
|
||||
Object pkValue = bill.getPkValue();
|
||||
QFilter filter = new QFilter("project", "=", project.getPkValue());
|
||||
filter.and(new QFilter("zcgj_periodyear", "=", bill.get("zcgj_periodyear")));//年月(二开添加
|
||||
if (unitProject != null) {
|
||||
filter.and(new QFilter("unitproject", "=", unitProject.getPkValue()));
|
||||
}
|
||||
|
||||
if (pkValue != null) {
|
||||
filter.and(new QFilter(AimCostBoqSplitModelConstant.ID_ENTITY_PK, "!=", pkValue));
|
||||
}
|
||||
|
||||
filter.and(new QFilter("vision", "=", vision));
|
||||
boolean isExist = QueryServiceHelper.exists("ecco_aimcostboqsplitmodel", new QFilter[]{filter});
|
||||
if (isExist && vision.compareTo(BigDecimal.ONE) == 0) {
|
||||
if (unitProject != null) {
|
||||
this.addErrorMessage(extendedDataEntity, ResManager.loadKDString("该单位工程已存在BOQ预算。", "AimCostBoqBillOp_0", "ec-ecco-opplugin", new Object[0]));
|
||||
}/* else {
|
||||
this.addErrorMessage(extendedDataEntity, ResManager.loadKDString("该项目已存在BOQ预算。", "AimCostBoqBillOp_1", "ec-ecco-opplugin", new Object[0]));
|
||||
}*///二开注释掉的
|
||||
} else if (isExist) {
|
||||
if (unitProject != null) {
|
||||
this.addErrorMessage(extendedDataEntity, ResManager.loadKDString("该单位工程已存在相同版本的BOQ预算。", "AimCostBoqBillOp_2", "ec-ecco-opplugin", new Object[0]));
|
||||
}/* else {
|
||||
this.addErrorMessage(extendedDataEntity, ResManager.loadKDString("该项目已存在相同版本的BOQ预算。", "AimCostBoqBillOp_3", "ec-ecco-opplugin", new Object[0]));
|
||||
}*///二开注释掉的
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue