合同非定额计算逻辑插件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.entity.plugin.AbstractOperationServicePlugIn;
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.RoundingMode;
@ -13,8 +15,25 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn
@Override
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
super.beforeExecuteOperationTransaction(e);
DynamicObject[] dataEntities1 = e.getDataEntities();
DynamicObject dynamicObject = dataEntities1[0];
try {
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");
for (int i = 0; qeug_orderformentry!=null&&i < qeug_orderformentry.size(); i++) {
DynamicObject dynamicObject1 = qeug_orderformentry.get(i);
@ -32,9 +51,7 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn
}
boolean qty1 = returnComperZero(qty);//数量
if(!qty1){
e.setCancel(true);
e.setCancelMessage("非定额清单的数量必填");
return;
return false;
}
boolean noTaxPrice = returnComperZero(qeug_exclusiveprice);//不含税
boolean TaxPrice = returnComperZero(qeug_taxprice);//含税
@ -131,7 +148,14 @@ public class CalculationQuotaListOpPlugin extends AbstractOperationServicePlugIn
qeug_taxtotalprice = qty.multiply(qeug_taxprice);
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){