请款申请
This commit is contained in:
		
							parent
							
								
									336efdb5ec
								
							
						
					
					
						commit
						12f86885fc
					
				|  | @ -10,6 +10,7 @@ import kd.bos.entity.plugin.args.BeforeOperationArgs; | |||
| import kd.bos.entity.validate.AbstractValidator; | ||||
| import kd.bos.logging.Log; | ||||
| import kd.bos.logging.LogFactory; | ||||
| import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||
| import kd.sdk.plugin.Plugin; | ||||
| import kd.tmc.fbp.common.bean.BizBalanceModelBean; | ||||
| import kd.tmc.fbp.common.enums.TmcAppEnum; | ||||
|  | @ -37,30 +38,35 @@ public class ApplyTransBillSaveOperation extends AbstractOperationServicePlugIn | |||
|                     ExtendedDataEntity[] entities = this.getDataEntities(); | ||||
|                     for (ExtendedDataEntity entity : entities) { | ||||
|                         DynamicObject aDo = entity.getDataEntity(); | ||||
|                         DynamicObject currency = aDo.getDynamicObject("currency"); | ||||
|                         Long currencyId = currency.getLong("id"); | ||||
|                         DynamicObject org = aDo.getDynamicObject("company"); | ||||
|                         Long orgId = org.getLong("id"); | ||||
|                         String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue"); | ||||
|                         BalanceModelService balanceModelService = new BalanceModelService(); | ||||
|                         boolean revAmount = aDo.getBoolean("shjh_revamount");//是否已赋值 | ||||
|                         if (!revAmount){ | ||||
|                             DynamicObject currency = aDo.getDynamicObject("currency"); | ||||
|                             Long currencyId = currency.getLong("id"); | ||||
|                             DynamicObject org = aDo.getDynamicObject("company"); | ||||
|                             Long orgId = org.getLong("id"); | ||||
|                             String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue"); | ||||
|                             BalanceModelService balanceModelService = new BalanceModelService(); | ||||
| 
 | ||||
|                         DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys"); | ||||
|                         for (DynamicObject entry : entrys) { | ||||
|                             DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys"); | ||||
|                             for (DynamicObject entry : entrys) { | ||||
|                                 DynamicObject bankAcct = entry.getDynamicObject("subacct"); | ||||
| 
 | ||||
|                             DynamicObject bankAcct = entry.getDynamicObject("subacct"); | ||||
|                             BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId); | ||||
|                             BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额 | ||||
|                             BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额 | ||||
|                             // 如果subcurbalance小于applyamt,则调整applyamt的值 | ||||
|                             if (subcurbalance.compareTo(applyamt) >= 0) { | ||||
|                                 this.addMessage(entity,"子账户即时余额 >= 申请下拨金额,不允许生成请款单!"); | ||||
|                                 DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bankAcct.getLong("id"), "bd_accountbanks"); | ||||
|                                 BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId); | ||||
|                                 BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额 | ||||
|                                 //请款留底金额 | ||||
|                                 BigDecimal decimal =dynamicObject.getBigDecimal("shjh_ldje"); | ||||
|                                 BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额 | ||||
|                                 // 如果subcurbalance小于applyamt,则调整applyamt的值 | ||||
|                                 if ((subcurbalance.subtract(decimal)).compareTo(applyamt) >= 0) { | ||||
|                                     this.addMessage(entity,"子账户即时余额-请款留底金额 >= 申请下拨金额,不允许生成请款单!"); | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  | @ -71,26 +77,33 @@ public class ApplyTransBillSaveOperation extends AbstractOperationServicePlugIn | |||
|         if("save".equals(eok)){ | ||||
|             DynamicObject[] dos =  e.getDataEntities(); | ||||
|             for (DynamicObject aDo : dos) { | ||||
|                 DynamicObject currency = aDo.getDynamicObject("currency"); | ||||
|                 Long currencyId = currency.getLong("id"); | ||||
|                 DynamicObject org = aDo.getDynamicObject("company"); | ||||
|                 Long orgId = org.getLong("id"); | ||||
|                 String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue"); | ||||
|                 BalanceModelService balanceModelService = new BalanceModelService(); | ||||
|                 boolean revAmount = aDo.getBoolean("shjh_revamount");//是否已赋值 | ||||
|                 if (!revAmount) { | ||||
|                     DynamicObject currency = aDo.getDynamicObject("currency"); | ||||
|                     Long currencyId = currency.getLong("id"); | ||||
|                     DynamicObject org = aDo.getDynamicObject("company"); | ||||
|                     Long orgId = org.getLong("id"); | ||||
|                     String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue"); | ||||
|                     BalanceModelService balanceModelService = new BalanceModelService(); | ||||
| 
 | ||||
|                 DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys"); | ||||
|                 for (DynamicObject entry : entrys) { | ||||
|                     DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys"); | ||||
|                     for (DynamicObject entry : entrys) { | ||||
| 
 | ||||
|                     DynamicObject bankAcct = entry.getDynamicObject("subacct"); | ||||
|                     BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId); | ||||
|                     BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额 | ||||
|                         DynamicObject bankAcct = entry.getDynamicObject("subacct"); | ||||
|                         DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bankAcct.getLong("id"), "bd_accountbanks"); | ||||
| 
 | ||||
|                         BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId); | ||||
|                         BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额 | ||||
|                         //请款留底金额 | ||||
|                         BigDecimal decimal = dynamicObject.getBigDecimal("shjh_ldje"); | ||||
| //                    BigDecimal subcurbalance = entry.getBigDecimal("subcurbalance");//子账户即时余额 | ||||
|                     BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额 | ||||
|                     // 如果subcurbalance小于applyamt,则调整applyamt的值 | ||||
|                     if (subcurbalance.compareTo(applyamt) < 0) { | ||||
|                         applyamt = applyamt.subtract(subcurbalance); | ||||
|                         entry.set("applyamt", applyamt);//重新赋值--申请下拨金额 | ||||
|                         BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额 | ||||
|                         // 如果subcurbalance小于applyamt,则调整applyamt的值 | ||||
|                         if (subcurbalance.subtract(decimal).compareTo(applyamt) < 0) { | ||||
|                             applyamt = applyamt.subtract(subcurbalance).add(decimal); | ||||
|                             entry.set("applyamt", applyamt);//重新赋值--申请下拨金额 | ||||
|                             aDo.set("shjh_revamount",true); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue