入库单计算支出合同结算单支付项目分录金额插件增加循环处理
This commit is contained in:
parent
475cc8f4f4
commit
27f8682764
|
|
@ -24,6 +24,7 @@ import kd.ec.contract.common.enums.PayDirectionEnum;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
@ -46,12 +47,14 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi
|
||||||
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:入库单推送支出合同结算单");
|
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:入库单推送支出合同结算单");
|
||||||
if(outContractSettleMap != null && !outContractSettleMap.isEmpty()) {
|
if(outContractSettleMap != null && !outContractSettleMap.isEmpty()) {
|
||||||
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:"+businessKey);
|
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:"+businessKey);
|
||||||
Long dataId = (Long) outContractSettleMap.toArray()[0];
|
for (Long dataId : outContractSettleMap) {
|
||||||
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"));
|
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});
|
||||||
|
|
||||||
|
deleteZeroData(dataId);
|
||||||
OperateOption option= OperateOption.create();
|
OperateOption option= OperateOption.create();
|
||||||
// option.setVariableValue("ishasright", "true");//此处是跳过校验权限
|
// option.setVariableValue("ishasright", "true");//此处是跳过校验权限
|
||||||
// option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
|
// option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
|
||||||
|
|
@ -63,6 +66,7 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi
|
||||||
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString());
|
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void sumMaterialInAmountToItemEntry(DynamicObject outContractSettle) {
|
protected void sumMaterialInAmountToItemEntry(DynamicObject outContractSettle) {
|
||||||
DynamicObjectCollection materialInEntry = outContractSettle.getDynamicObjectCollection("materialinentry");
|
DynamicObjectCollection materialInEntry = outContractSettle.getDynamicObjectCollection("materialinentry");
|
||||||
|
|
@ -284,4 +288,32 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi
|
||||||
outContractSettle.set("totalrealpaytaxamt", totalRealPayTaxAmt);
|
outContractSettle.set("totalrealpaytaxamt", totalRealPayTaxAmt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void deleteZeroData(Long outContractSettleId){
|
||||||
|
DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle",
|
||||||
|
"itementry,itementry.oftaxamount,zcgj_entryentity,zcgj_entryentity.zcgj_oftaxinvoiceamount,zcgj_processallocatentity,zcgj_processallocatentity.zcgj_pa_amount",
|
||||||
|
new QFilter[]{new QFilter("id","=",outContractSettleId)});
|
||||||
|
DynamicObjectCollection itementryCollection = outContractSettle.getDynamicObjectCollection("itementry"); //合同支付项分录
|
||||||
|
for (DynamicObject itementry : itementryCollection) {
|
||||||
|
//删除工序分摊,价税合计为0的数据
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = itementry.getDynamicObjectCollection("zcgj_processallocatentity");
|
||||||
|
dynamicObjectCollection.removeIf(dynamicObject -> dynamicObject.getBigDecimal("zcgj_pa_amount") == null || dynamicObject.getBigDecimal("zcgj_pa_amount").compareTo(BigDecimal.ZERO) == 0);
|
||||||
|
}
|
||||||
|
//删除合同支付项价税合计为0的数据
|
||||||
|
itementryCollection.removeIf(dynamicObject ->
|
||||||
|
//dynamicObject.getBigDecimal("oftaxamount") == null || dynamicObject.getBigDecimal("oftaxamount").compareTo(BigDecimal.ZERO) == 0
|
||||||
|
{
|
||||||
|
boolean isok = dynamicObject.getBigDecimal("oftaxamount") == null || dynamicObject.getBigDecimal("oftaxamount").compareTo(BigDecimal.ZERO) == 0;
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("zcgj_processallocatentity");
|
||||||
|
return isok && dynamicObjectCollection.isEmpty();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
//删除进项发票价税合计为0的数据
|
||||||
|
DynamicObjectCollection entryentityCollection = outContractSettle.getDynamicObjectCollection("zcgj_entryentity");
|
||||||
|
entryentityCollection.removeIf(dynamicObject -> dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount") == null || dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount").compareTo(BigDecimal.ZERO) == 0);
|
||||||
|
|
||||||
|
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-PaAmount");
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{outContractSettle});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue