入库单计算支出合同结算单支付项目分录金额插件增加循环处理
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.RoundingMode;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
import java.util.Iterator;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -46,21 +47,24 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi
 | 
			
		|||
        log.info("MaterialInAmountToItemEntryWorkFlowPlugin:入库单推送支出合同结算单");
 | 
			
		||||
        if(outContractSettleMap != null && !outContractSettleMap.isEmpty()) {
 | 
			
		||||
            log.info("MaterialInAmountToItemEntryWorkFlowPlugin:"+businessKey);
 | 
			
		||||
            Long dataId = (Long) outContractSettleMap.toArray()[0];
 | 
			
		||||
            DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle");
 | 
			
		||||
            log.info("MaterialInAmountToItemEntryWorkFlowPlugin-billno:"+outContractSettle.getString("billno"));
 | 
			
		||||
            sumMaterialInAmountToItemEntry(outContractSettle);
 | 
			
		||||
            calAllTypeAmount(outContractSettle);
 | 
			
		||||
            SaveServiceHelper.save(new DynamicObject[]{outContractSettle});
 | 
			
		||||
            OperateOption option= OperateOption.create();
 | 
			
		||||
           // option.setVariableValue("ishasright", "true");//此处是跳过校验权限
 | 
			
		||||
           // option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
 | 
			
		||||
           // option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
 | 
			
		||||
           // option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true));
 | 
			
		||||
            option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验
 | 
			
		||||
            //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());
 | 
			
		||||
            for (Long dataId : outContractSettleMap) {
 | 
			
		||||
                DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle");
 | 
			
		||||
                log.info("MaterialInAmountToItemEntryWorkFlowPlugin-billno:"+outContractSettle.getString("billno"));
 | 
			
		||||
                sumMaterialInAmountToItemEntry(outContractSettle);
 | 
			
		||||
                calAllTypeAmount(outContractSettle);
 | 
			
		||||
                SaveServiceHelper.save(new DynamicObject[]{outContractSettle});
 | 
			
		||||
 | 
			
		||||
                deleteZeroData(dataId);
 | 
			
		||||
                OperateOption option= OperateOption.create();
 | 
			
		||||
                // option.setVariableValue("ishasright", "true");//此处是跳过校验权限
 | 
			
		||||
                // option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
 | 
			
		||||
                // option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
 | 
			
		||||
                // option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true));
 | 
			
		||||
                option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验
 | 
			
		||||
                //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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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