Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/vo/InvoiceItemSummaryVo.java =================================================================== diff -u -r21617 -r22859 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/vo/InvoiceItemSummaryVo.java (.../InvoiceItemSummaryVo.java) (revision 21617) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/vo/InvoiceItemSummaryVo.java (.../InvoiceItemSummaryVo.java) (revision 22859) @@ -26,10 +26,27 @@ */ private String batchNumber; /** + * 单位 + */ + private String unit; + + /** + * 申领单位(原来叫中包装单位) + */ + private String middlePackageUnit; + /** * 数量 */ private Integer amount; /** + * 申领单位数量 + */ + private Integer middlePackageUnitAmount; + /** + * 中包装单位转换单位系数 + */ + private Integer transferScale; + /** * 物品的id,包定义的祖先id或者一次性物品批次定义id或者高值耗材定义的id */ private Long goodsId; @@ -84,6 +101,32 @@ public void setTousseType(String tousseType) { this.tousseType = tousseType; } + + public String getUnit() { + return unit; + } + public String getMiddlePackageUnit() { + return middlePackageUnit; + } + public Integer getMiddlePackageUnitAmount() { + return middlePackageUnitAmount; + } + public void setUnit(String unit) { + this.unit = unit; + } + public void setMiddlePackageUnit(String middlePackageUnit) { + this.middlePackageUnit = middlePackageUnit; + } + public void setMiddlePackageUnitAmount(Integer middlePackageUnitAmount) { + this.middlePackageUnitAmount = middlePackageUnitAmount; + } + + public Integer getTransferScale() { + return transferScale; + } + public void setTransferScale(Integer transferScale) { + this.transferScale = transferScale; + } /** * 在集合中按物品id及类型查找对象 * @param items 待查找集合,可能为null Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/util/DisposableGoodsUtils.java =================================================================== diff -u -r21968 -r22859 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/util/DisposableGoodsUtils.java (.../DisposableGoodsUtils.java) (revision 21968) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/util/DisposableGoodsUtils.java (.../DisposableGoodsUtils.java) (revision 22859) @@ -3,6 +3,7 @@ */ package com.forgon.disinfectsystem.diposablegoods.util; +import java.math.RoundingMode; import java.sql.ResultSet; import java.sql.SQLException; import java.util.LinkedList; @@ -149,4 +150,33 @@ } return name; } + public static boolean isMiddlePackageUnitEnabled(Integer transferScale){ + if(transferScale != null && transferScale > 0){ + return true; + } + return false; + } + // 入库单位的数量转换为申领数量 + public static Integer amountToAppAmountNotThrowException(Integer transferScale ,Integer amount ,RoundingMode mode){ + Integer appAmount = null; + if(transferScale == null || transferScale == 0){ + return appAmount; + } + if(amount == null){ + return appAmount; + } + if(amount == 0){ + return 0; + } + if(mode == RoundingMode.UP){ + if(amount % transferScale == 0){ + appAmount = amount/transferScale; + }else{ + appAmount = amount/transferScale + 1; + } + }else{ + appAmount = amount/transferScale; + } + return appAmount; + } } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceItemManagerImpl.java =================================================================== diff -u -r21617 -r22859 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceItemManagerImpl.java (.../InvoiceItemManagerImpl.java) (revision 21617) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceItemManagerImpl.java (.../InvoiceItemManagerImpl.java) (revision 22859) @@ -1,5 +1,6 @@ package com.forgon.disinfectsystem.invoicemanager.service; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -14,6 +15,8 @@ import com.forgon.Constants; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.diposablegoods.service.DisposableGoodsBatchManager; +import com.forgon.disinfectsystem.diposablegoods.util.DisposableGoodsUtils; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; @@ -65,10 +68,11 @@ InvoiceItemSummaryVo find = null; Long goodsId = null; String batchNumber = null; + DisposableGoodsBatch batch = null; if(ii.disposable()){ find = InvoiceItemSummaryVo.find(vos, ii,null); goodsId = ii.getDisposableGoodsBatchId(); - DisposableGoodsBatch batch = IDOperators.find(batches, goodsId); + batch = IDOperators.find(batches, goodsId); if(batch != null){ batchNumber = batch.getBatchNumber(); } @@ -98,6 +102,14 @@ find.setDisposable(ii.getDiposable()); find.setGoodsId(goodsId); find.setTousseType(ii.getTousseType()); + if(batch != null){ + DisposableGoods diposableGoods = batch.getDiposableGoods(); + if(diposableGoods != null){ + find.setUnit(diposableGoods.getUnit()); + find.setMiddlePackageUnit(diposableGoods.getMiddlePackageUnit()); + find.setTransferScale(diposableGoods.getTransferScale()); + } + } vos.add(find); } find.setAmount(MathTools.add(find.getAmount(), ii.getAmount()).intValue()); @@ -107,6 +119,13 @@ int index = 1; for(InvoiceItemSummaryVo vo : vos){ vo.setIndex(index++); + // 设置申领单位数量 + Integer transferScale = vo.getTransferScale(); + if(DisposableGoodsUtils.isMiddlePackageUnitEnabled(transferScale)){ + Integer amount = vo.getAmount(); + Integer appAmount = DisposableGoodsUtils.amountToAppAmountNotThrowException(transferScale, amount, RoundingMode.UP); + vo.setMiddlePackageUnitAmount(appAmount); + } } return vos; } Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceItemSummary.js =================================================================== diff -u -r21617 -r22859 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceItemSummary.js (.../invoiceItemSummary.js) (revision 21617) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoiceItemSummary.js (.../invoiceItemSummary.js) (revision 22859) @@ -26,15 +26,31 @@ {name : 'index',mapping : 'index'}, {name : 'displayName',mapping : 'displayName'}, {name : 'batchNumber',mapping : 'batchNumber'}, - {name : 'amount',mapping : 'amount'} + {name : 'amount',mapping : 'amount'}, + {name : 'middlePackageUnitAmount'}, + {name : 'unit'}, + {name : 'middlePackageUnit'} ] ) }); var cm = new Ext.grid.ColumnModel([ {id : 'displayName',header : "物品名称",dataIndex : 'displayName',width : 160, menuDisabled: true}, {header : "批次",dataIndex : 'batchNumber',width : 60, menuDisabled: true}, - {header : "数量",dataIndex : 'amount',width : 40, menuDisabled: true}, + {header : "数量",dataIndex : 'amount',width : 40, menuDisabled: true,renderer: function(v,p,record){ + var unit = record.data.unit; + if(!isUndefinedOrNullOrEmpty(unit)){ + return v+' '+unit; + } + return v; + }}, + {header : "数量(申领单位)",dataIndex : 'middlePackageUnitAmount',width : 40, menuDisabled: true,renderer: function(v,p,record){ + var middlePackageUnit = record.data.middlePackageUnit; + if(!isUndefinedOrNullOrEmpty(v) && !isUndefinedOrNullOrEmpty(middlePackageUnit)){ + return v+' '+middlePackageUnit; + } + return ''; + }}, {header : "操作",dataIndex : '',width : 20, menuDisabled: true, renderer: function(v,p,record){ var str = "";