合同非定额计算逻辑插件1.2

This commit is contained in:
ptt 2025-05-28 14:40:42 +08:00
parent 8c70d425b2
commit b554b09adb
1 changed files with 29 additions and 5 deletions

View File

@ -4,6 +4,8 @@ import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.BeforeOperationArgs; import kd.bos.entity.plugin.args.BeforeOperationArgs;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
@ -13,8 +15,25 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn
@Override @Override
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) { public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
super.beforeExecuteOperationTransaction(e); super.beforeExecuteOperationTransaction(e);
DynamicObject[] dataEntities1 = e.getDataEntities(); try {
DynamicObject dynamicObject = dataEntities1[0]; boolean util = util(e.getDataEntities()[0]);
if(!util){
e.setCancel(true);
e.setCancelMessage("非定额清单的数量必填");
}
}catch (Exception e1){
DynamicObject dataEntity = e.getDataEntities()[0];
dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(),"recon_contractbill");
boolean util = util(dataEntity);
if(!util){
e.setCancel(true);
e.setCancelMessage("非定额清单的数量必填");
}
}
}
private boolean util(DynamicObject dynamicObject){
DynamicObjectCollection qeug_orderformentry = dynamicObject.getDynamicObjectCollection("qeug_orderformentry"); DynamicObjectCollection qeug_orderformentry = dynamicObject.getDynamicObjectCollection("qeug_orderformentry");
for (int i = 0; qeug_orderformentry!=null&&i < qeug_orderformentry.size(); i++) { for (int i = 0; qeug_orderformentry!=null&&i < qeug_orderformentry.size(); i++) {
DynamicObject dynamicObject1 = qeug_orderformentry.get(i); DynamicObject dynamicObject1 = qeug_orderformentry.get(i);
@ -32,9 +51,7 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn
} }
boolean qty1 = returnComperZero(qty);//数量 boolean qty1 = returnComperZero(qty);//数量
if(!qty1){ if(!qty1){
e.setCancel(true); return false;
e.setCancelMessage("非定额清单的数量必填");
return;
} }
boolean noTaxPrice = returnComperZero(qeug_exclusiveprice);//不含税 boolean noTaxPrice = returnComperZero(qeug_exclusiveprice);//不含税
boolean TaxPrice = returnComperZero(qeug_taxprice);//含税 boolean TaxPrice = returnComperZero(qeug_taxprice);//含税
@ -131,7 +148,14 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn
qeug_taxtotalprice = qty.multiply(qeug_taxprice); qeug_taxtotalprice = qty.multiply(qeug_taxprice);
dynamicObject1.set("qeug_taxtotalprice", qeug_taxtotalprice); dynamicObject1.set("qeug_taxtotalprice", qeug_taxtotalprice);
} }
qeug_orderformentry.set(i, dynamicObject1);
} }
// dynamicObject.set("qeug_orderformentry",qeug_orderformentry);
// if("submit".equals(e.getOperationKey())){
// SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
//
// }
return true;
} }
private boolean returnComperZero(BigDecimal bigDecimal){ private boolean returnComperZero(BigDecimal bigDecimal){