入库单计算支出合同结算单支付项目分录金额插件增加循环处理
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,21 +47,24 @@ 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});
|
||||||
OperateOption option= OperateOption.create();
|
|
||||||
// option.setVariableValue("ishasright", "true");//此处是跳过校验权限
|
deleteZeroData(dataId);
|
||||||
// option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
|
OperateOption option= OperateOption.create();
|
||||||
// option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
|
// option.setVariableValue("ishasright", "true");//此处是跳过校验权限
|
||||||
// option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true));
|
// option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
|
||||||
option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验
|
// option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
|
||||||
//option.add(OperateOptionConst.SKIP_PERMISSION_CHECK);
|
// option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true));
|
||||||
OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option);
|
option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验
|
||||||
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString());
|
//option.add(OperateOptionConst.SKIP_PERMISSION_CHECK);
|
||||||
|
OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option);
|
||||||
|
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -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