Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r31334 -r31335 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 31334) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 31335) @@ -15,6 +15,7 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -3767,6 +3768,16 @@ if(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY.equals(tousseType)){ // 外部代理灭菌单不在tousseItem上记器械包的代理灭菌价格,导致打印时物品没有单价(ZSSXLRMYY-201) rowVo.setRowPrice(MathTools.mul(td.getProxyDisinfectionPrice(), printAmount).doubleValue()); + Map tiIdToPriceMap = new HashMap(); + tiIdToPriceMap = getToussePriceByTousseItem(tousseItem); + if(MapUtils.isNotEmpty(tiIdToPriceMap)){ + Double price = 0.0; + for (Long tiId : tiIdToPriceMap.keySet()) { + price = tiIdToPriceMap.get(tiId); + break; + } + rowVo.setRowPrice(MathTools.mul(price, printAmount).doubleValue()); + } } } // rowVo.setPrice(MathTools.divide(rowVo.getRowPrice(), printAmount,4)); @@ -3783,6 +3794,32 @@ } /** + * 根据tousseItem查找包实例上记的包价格 + * @param tousseItem + * @return + */ + private Map getToussePriceByTousseItem(TousseItem tousseItem) { + Map priceMap = new LinkedHashMap(); + String sql = String.format("select ti.id, ti.price from %s ti where ti.invoicePlanID = %s and ti.tousseDefinition_id = %s", + TousseInstance.class.getSimpleName(), tousseItem.getInvoicePlanID(), tousseItem.getTousseDefinitionId()); + ResultSet rs = null; + rs = objectDao.executeSql(sql); + try { + while(rs.next()){ + Long id = rs.getLong("id"); + Double price = rs.getDouble("price"); + priceMap.put(id, price); + } + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return priceMap; + } + + /** * 打印数据中添加装配人、清洗人、审核人、发货员、灭菌员(北京垂杨柳外来器械申请单打印) * @param rowVo * @param tousseItem @@ -8140,6 +8177,7 @@ if(CollectionUtils.isNotEmpty(tdList)){ for (TousseDefinition tousseDefinition : tdList) { amountMap.put(tousseDefinition.getId(), amountMap.get(tousseDefinition.getParentID())); + itemMap.put(tousseDefinition.getId(), itemMap.get(tousseDefinition.getParentID())); } } }