Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.7.9_4.8.0_sqlserver.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.7.9_4.8.0_sqlserver.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.7.9_4.8.0_sqlserver.sql (revision 17715) @@ -0,0 +1 @@ +alter table ReturnGoodsRecord alter column settlementPrice numeric(19,4); \ No newline at end of file Index: ssts-web/src/main/java/com/forgon/disinfectsystem/component/grid/GridManagerImpl.java =================================================================== diff -u -r17135 -r17715 --- ssts-web/src/main/java/com/forgon/disinfectsystem/component/grid/GridManagerImpl.java (.../GridManagerImpl.java) (revision 17135) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/component/grid/GridManagerImpl.java (.../GridManagerImpl.java) (revision 17715) @@ -281,31 +281,18 @@ //如果为退货单,把每条退货单的金额汇总出来(陈家儒改) else if (ReturnGoodsRecord.class.getSimpleName().equals(poClass)) { - for (Object object : list) { - ReturnGoodsRecord returnGoodsRecord = (ReturnGoodsRecord) object; - List returnGoodsItemList = returnGoodsRecord.getReturnGoodsItems(); - BigDecimal settlementPrice = new BigDecimal("0.00"); - for (ReturnGoodsItem returnGoodsItem : returnGoodsItemList) { - settlementPrice = MathTools.add(settlementPrice, returnGoodsItem.getSettlementPrice()); + if ((start + pageSize) >= totalResults) { //请求的是grid的最后一页(把退货单的总价计算出来) + BigDecimal settlementPriceSum = new BigDecimal("0.00"); + for (Object object : list) { //每一条退货单的总金额 + ReturnGoodsRecord returnGoodsRecord = (ReturnGoodsRecord) object; + settlementPriceSum = settlementPriceSum.add(returnGoodsRecord.getSettlementPrice()); } - returnGoodsRecord.setSettlementPrice(settlementPrice.toString()); - } - if ((start + pageSize) >= totalResults) { //而且前台请求的是grid的最后一页(把退货单的总价汇总出来) - BigDecimal settlementPrice = new BigDecimal("0.00"); - List allList = objectDao.findBySql(poClass, sql, orderStr); - for (ReturnGoodsRecord returnGoodsRecord : allList) { - List returnGoodsItemList = returnGoodsRecord.getReturnGoodsItems(); - for (ReturnGoodsItem returnGoodsItem : returnGoodsItemList) { - settlementPrice = settlementPrice.add(returnGoodsItem.getSettlementPrice()); - } - } ReturnGoodsRecord totalPrice = new ReturnGoodsRecord(); totalPrice.setOperator("总价"); totalPrice.setSignStatus(""); - totalPrice.setSettlementPrice(settlementPrice.setScale(4,BigDecimal.ROUND_HALF_UP).toString()); + totalPrice.setSettlementPrice(settlementPriceSum); list.add(totalPrice); } - } //如果为外部代理灭菌单,根据统计到的每个外部代理灭菌单的包实例数量设置单的是否打印状态 Index: forgon-core/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r17647 -r17715 --- forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 17647) +++ forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 17715) @@ -21,7 +21,7 @@ "4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.3.0","4.3.1","4.3.2","4.3.3","4.3.4","4.3.5","4.3.6","4.3.7","4.3.8","4.3.9", "4.4.0","4.4.1","4.4.2","4.4.3","4.4.4","4.4.5","4.4.6","4.4.7","4.4.8","4.4.9","4.5.0","4.5.1","4.5.2","4.5.3","4.5.4","4.5.5","4.5.6","4.5.7","4.5.8", "4.5.9","4.6.0","4.6.1","4.6.2","4.6.3","4.6.4","4.6.5","4.6.6","4.6.7","4.6.8","4.6.9","4.7.0","4.7.1","4.7.2","4.7.3","4.7.4","4.7.5","4.7.6","4.7.7", - "4.7.8","4.7.9"};// 版本列表 + "4.7.8","4.7.9","4.8.0"};// 版本列表 public final static List SOFTWARE_VERSION_LIST = Arrays .asList(SOFTWARE_VERSION_ARRAY); public final static String SOFTWARE_VERSION = SOFTWARE_VERSION_ARRAY[SOFTWARE_VERSION_ARRAY.length - 1];// 软件最新版本 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsRecord.java =================================================================== diff -u -r14488 -r17715 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsRecord.java (.../ReturnGoodsRecord.java) (revision 14488) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/returngoodsrecord/ReturnGoodsRecord.java (.../ReturnGoodsRecord.java) (revision 17715) @@ -1,10 +1,12 @@ package com.forgon.disinfectsystem.entity.returngoodsrecord; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.persistence.CascadeType; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; @@ -85,10 +87,7 @@ private Long inventoryWriteBackEntryId; - /** - * 退货单的总价(陈家儒改) - */ - private String settlementPrice; + private BigDecimal settlementPrice = new BigDecimal("0.00"); @Id @GeneratedValue(strategy = GenerationType.AUTO) @@ -277,13 +276,15 @@ this.handleDepartCode = handleDepartCode; } - - public String getSettlementPrice() { + @Column(scale = 4) + public BigDecimal getSettlementPrice() { + if (settlementPrice == null) { + settlementPrice = new BigDecimal("0.00"); + } return settlementPrice; } - public void setSettlementPrice(String settlementPrice) { + public void setSettlementPrice(BigDecimal settlementPrice) { this.settlementPrice = settlementPrice; } - } Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java =================================================================== diff -u -r16507 -r17715 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 16507) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 17715) @@ -696,6 +696,8 @@ returnGoodsRecord.setRemark(returnEntry.getRemark()); returnGoodsRecord.setType(TousseItem.TYPE_DIPOSABLE_GOODS); objectDao.saveOrUpdate(returnGoodsRecord); + //退货单的总价 + BigDecimal settlementPriceOfRecord = new BigDecimal(0.00); if(CollectionUtils.isNotEmpty(returnEntry.getItems())){ for(StorageEntryItem item : returnEntry.getItems()){ if(StringUtils.isNotBlank(item.getInvCode())){ @@ -723,6 +725,8 @@ returnGoodsItem.setDiposableGoodBatchStock(disposableGoodsBatchStock); returnGoodsItem.setDisposableGoodsBatchStockID(disposableGoodsBatchStock.getId()); returnGoodsItem.setDisposableGoodsID(disposableGoodsStock.getId()); + + settlementPriceOfRecord = settlementPriceOfRecord.add(returnGoodsItem.getSettlementPrice()); objectDao.saveOrUpdate(returnGoodsItem); }else{ //根据一次性物品编号与批次号查不到一次性物品库存,如何处理? @@ -733,6 +737,7 @@ } } } + returnGoodsRecord.setSettlementPrice(settlementPriceOfRecord); } } Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.7.9_4.8.0_oracle.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.7.9_4.8.0_oracle.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.7.9_4.8.0_oracle.sql (revision 17715) @@ -0,0 +1,7 @@ +execute immediate 'alter table returngoodsrecord add tempColumn varchar2(255)'; +execute immediate 'update returngoodsrecord set tempColumn=settlementPrice,settlementPrice=null'; +execute immediate 'commit'; +execute immediate 'alter table returngoodsrecord modify settlementPrice numeric(19,4)'; +execute immediate 'update returngoodsrecord set settlementPrice=tempColumn,tempColumn=null'; +execute immediate 'commit'; +execute immediate 'alter table returngoodsrecord drop column tempColumn'; \ No newline at end of file Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java =================================================================== diff -u -r17431 -r17715 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 17431) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 17715) @@ -134,6 +134,9 @@ this.ids = ids; } + /** + * 一次性物品退货的保存方法 + */ public void saveReturnGoodsRecord() { Map returnMsg = new HashMap(); returnMsg.put("success", false); @@ -640,9 +643,11 @@ .getParameter("returnTousseItemStr"); String[] returnTousseItemDataArr = StringUtils.splitByWholeSeparator(returnTousseItemStr,"@;"); + //退货单的总价 + BigDecimal settlementPriceOfRecord = new BigDecimal(0.00); for (String returnTousseItemData : returnTousseItemDataArr) { String[] returnTousseItemDetailArr = StringUtils.splitByWholeSeparator(returnTousseItemData,"@#"); - ReturnGoodsItem returnTousseItem = new ReturnGoodsItem();; + ReturnGoodsItem returnTousseItem = new ReturnGoodsItem(); int currentAmount = Integer .parseInt(returnTousseItemDetailArr[2]); @@ -719,12 +724,14 @@ settlementFluctuationPrice = settlementFluctuationPrice.add(MathTools.mul(definitionFluctuationPrice, tousseDefinitionAmount)); returnTousseItem.setSettlementPrice(settlementFluctuationPrice); + settlementPriceOfRecord = settlementPriceOfRecord.add(settlementFluctuationPrice); // 重新设置价格 if(reSetPrice){ returnTousseItem.setFluctuationPrice(settlementFluctuationPrice.doubleValue()/currentAmount); returnTousseItem.setPrice(settlementPrice.doubleValue()/currentAmount); } } + returnGoodsRecord.setSettlementPrice(settlementPriceOfRecord); returnGoodsRecordManager.checkAndSaveForReturnTousse(returnGoodsRecord); Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java =================================================================== diff -u -r17431 -r17715 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java (.../ReturnGoodsRecordManagerImpl.java) (revision 17431) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/service/ReturnGoodsRecordManagerImpl.java (.../ReturnGoodsRecordManagerImpl.java) (revision 17715) @@ -739,10 +739,12 @@ // 保存退货记录 saveOrUpdate(returnGoodsRecord); + //退货单的总价 + BigDecimal settlementPriceOfRecord = new BigDecimal(0.00); // 开始退货处理 for(ReturnGoodsItem returnGoodsItem : returnGoodsRecord.getReturnGoodsItems()){ Long disposableGoodsID = returnGoodsItem.getDisposableGoodsID(); - String barcode = returnGoodsItem.getBarcode(); +// String barcode = returnGoodsItem.getBarcode(); DisposableGoods disposableGoods = idToDisposableGoodsMap.get(disposableGoodsID); if(disposableGoods == null){ throw new RuntimeException(String.format("未找到id为%s的物品!", disposableGoods)); @@ -759,8 +761,9 @@ }else{ returnDiposableGoods(warehouseID,depart,returnGoodsItem,idToDisposableGoodsMap,disposableGoodsIDToDisposableGoodsStockMap,idToDisposableGoodsStockMap,idToDisposableGoodsBatchMap,idToDisposableGoodsBatchStockMap,returnDiposableGoodsItems); } - + settlementPriceOfRecord = settlementPriceOfRecord.add(returnGoodsItem.getSettlementPrice()); } + returnGoodsRecord.setSettlementPrice(settlementPriceOfRecord); // 创建发货单 createInvoicePlan(returnGoodsRecord);