Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.6.9_4.7.0.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.6.9_4.7.0.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.6.9_4.7.0.sql (revision 17253) @@ -0,0 +1 @@ +update InventoryItem set sequence = (select sequence from DisposableGoods d where d.id = InventoryItem.diposableGoodsID) where diposableGoodsID is not null; \ No newline at end of file Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r16965 -r17253 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 16965) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 17253) @@ -879,6 +879,7 @@ temp.put("maxApplyAmount",disposableGoods.getMaxApplyAmount()); temp.put("middlePackageUnit",disposableGoods.getMiddlePackageUnit()); temp.put("transferScale",disposableGoods.getTransferScale()); + temp.put("sequence",disposableGoods.getSequence() == null ? 0 : disposableGoods.getSequence()); String displayName = goodsName; temp.put("displayName", displayName + "(库存:0)"); if(goodsStocks != null && goodsStocks.size() > 0){ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/stocktakemanager/InventoryItem.java =================================================================== diff -u -r15651 -r17253 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/stocktakemanager/InventoryItem.java (.../InventoryItem.java) (revision 15651) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/stocktakemanager/InventoryItem.java (.../InventoryItem.java) (revision 17253) @@ -32,7 +32,7 @@ */ @Entity @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) -public class InventoryItem { +public class InventoryItem implements Comparable{ private Long id; @@ -78,6 +78,11 @@ private String unit;//单位 + /** + * 盘点排序号,取值为一次性物品或材料定义sequence字段值 + */ + private Integer sequence; + //导出使用临时变量 private Integer rowIndex; @@ -93,6 +98,7 @@ disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'盘点数量',dataIndex:'amount',type:'int'}"); disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'单价',dataIndex:'price',type:'double'}"); disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'供应商',dataIndex:'supplierName',type:'string'}"); + disposableGoodsColumnNameAndPoPropertyNameArrray.add("{header:'顺序号',dataIndex:'sequence',type:'int'}"); materialColumnNameAndPoPropertyNameArrray.add("{header:'序号',dataIndex:'rowIndex',type:'int'}"); materialColumnNameAndPoPropertyNameArrray.add("{header:'名称',dataIndex:'materialName',type:'string'}"); @@ -349,4 +355,31 @@ this.unit = unit; } + public Integer getSequence() { + return sequence; + } + + public void setSequence(Integer sequence) { + this.sequence = sequence; + } + + @Override + public int compareTo(InventoryItem o) { + Integer t_Sequence = this.sequence; + Integer p_Sequence = o.sequence; + if(t_Sequence == null){ + t_Sequence = 0; + } + if(p_Sequence == null){ + p_Sequence = 0; + } + if (t_Sequence > p_Sequence) { + return 1; + } else if (t_Sequence < p_Sequence) { + return -1; + } else { + return 0; + } + } + } Index: ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java =================================================================== diff -u -r17044 -r17253 --- ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java (.../InventoryRecordManagerImpl.java) (revision 17044) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java (.../InventoryRecordManagerImpl.java) (revision 17253) @@ -8,6 +8,8 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; @@ -512,7 +514,7 @@ item = itemsGroupedByPrice.get(0); item.setStorage(item.getStorage() + 1); }else{ - item = newInventoryItem(record, warehouse,disposableGoodsStock,disposableGoodsBatchStock,price,disposableGoods.getGoodsType()); + item = newInventoryItem(record, warehouse,disposableGoodsStock,disposableGoodsBatchStock,price,disposableGoods); item.setStorage(1); itemsGroupedByPrice.add(item); } @@ -553,7 +555,7 @@ item = itemsGroupedByPrice.get(0); item.setStorage(item.getStorage() + identificationAmount); }else{ - item = newInventoryItem(record, warehouse,disposableGoodsStock,disposableGoodsBatchStock,price,disposableGoods.getGoodsType()); + item = newInventoryItem(record, warehouse,disposableGoodsStock,disposableGoodsBatchStock,price,disposableGoods); item.setStorage(identificationAmount); itemsGroupedByPrice.add(item); } @@ -575,7 +577,7 @@ private InventoryItem newInventoryItem(InventoryRecord record, WareHouse warehouse, DisposableGoodsStock disposableGoodsStock, - DisposableGoodsBatchStock disposableGoodsBatchStock, Double price,String goodsType) { + DisposableGoodsBatchStock disposableGoodsBatchStock, Double price,DisposableGoods disposableGoods) { InventoryItem item = new InventoryItem(); item.setBatchID(disposableGoodsBatchStock.getDisposableGoodsBatchId()); item.setBatchNumber(disposableGoodsBatchStock.getBatchNumber()); @@ -593,7 +595,8 @@ item.setWareHouseName(warehouse.getName()); item.setExternalCode(disposableGoodsStock.getExternalCode()); item.setExpDate(disposableGoodsBatchStock.getExpDate()); - item.setGoodsType(goodsType); + item.setGoodsType(disposableGoods.getGoodsType()); + item.setSequence(disposableGoods.getSequence()); item.setUnit(disposableGoodsStock.getUnit()); return item; } @@ -890,7 +893,10 @@ Map sumColumnMap = new HashMap(); int seriaNum = 1; if(columnJsonArray != null && columnJsonArray.size() > 0 && record.getItems() != null){ - JSONArray itemsArray = JSONArray.fromObject(record.getItems()); + List items = record.getItems(); + //按物品顺序号排序 + Collections.sort(items); + JSONArray itemsArray = JSONArray.fromObject(items); for (int i = 0 ;i < itemsArray.size() ; i++){ HSSFRow operatingRow = sheet.createRow(row); JSONObject obj = itemsArray.optJSONObject(i); @@ -957,7 +963,7 @@ } } } - + private HSSFCellStyle buildNullCellStyle(HSSFWorkbook wb) { HSSFCellStyle cellStyle2 = wb.createCellStyle(); // 数据单元格格式 cellStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中 Index: forgon-core/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r17212 -r17253 --- forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 17212) +++ forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 17253) @@ -20,7 +20,7 @@ "4.0.5","4.0.6","4.0.44","4.0.45","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.1.6","4.1.7","4.1.8","4.1.9","4.2.0","4.2.1","4.2.2", "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.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"};// 版本列表 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-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/action/InventoryRecordAction.java =================================================================== diff -u -r13948 -r17253 --- ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/action/InventoryRecordAction.java (.../InventoryRecordAction.java) (revision 13948) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/action/InventoryRecordAction.java (.../InventoryRecordAction.java) (revision 17253) @@ -123,6 +123,7 @@ obj.put("cost", goods.getPrice()); obj.put("externalCode", goods.getExternalCode()); obj.put("goodsType", goods.getGoodsType()); + obj.put("sequence", goods.getSequence()); if(DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS.equals(goods.getGoodsType())){ List expensiveGoodsItems = goods.getItems(); JSONArray expensiveGoodsArray = new JSONArray(); Index: ssts-web/src/main/webapp/disinfectsystem/stocktakerecordmanager/inventoryDisposableGoodsForm.js =================================================================== diff -u -r17044 -r17253 --- ssts-web/src/main/webapp/disinfectsystem/stocktakerecordmanager/inventoryDisposableGoodsForm.js (.../inventoryDisposableGoodsForm.js) (revision 17044) +++ ssts-web/src/main/webapp/disinfectsystem/stocktakerecordmanager/inventoryDisposableGoodsForm.js (.../inventoryDisposableGoodsForm.js) (revision 17253) @@ -15,7 +15,7 @@ return exist; } -function addItem(batchId,name,specification,amount,batchNumber,cost,supplierName,externalCode,goodsType){ +function addItem(batchId,name,specification,amount,batchNumber,cost,supplierName,externalCode,goodsType,sequence){ var itemsStore = top.Ext.getCmp('inventoryRecordForm').getStore(); var inventoryItem = new inventoryRecordItem({ id:'', @@ -28,7 +28,8 @@ cost:cost, supplierName:supplierName, externalCode:externalCode, - goodsType:goodsType + goodsType:goodsType, + sequence : sequence }); itemsStore.insert(0 , inventoryItem); } @@ -56,7 +57,8 @@ {name : 'supplierName'}, {name : 'externalCode'}, {name : 'goodsType'}, - {name : 'expensiveGoodsInfo'} + {name : 'expensiveGoodsInfo'}, + {name : 'sequence'} ] ) }); @@ -76,7 +78,8 @@ {name : 'displayName',mapping : 'displayName'}, {name : 'referencePrice',mapping : 'referencePrice'}, {name : 'externalCode',mapping : 'externalCode'}, - {name : 'goodsType',mapping : 'goodsType'} + {name : 'goodsType',mapping : 'goodsType'}, + {name : 'sequence',mapping : 'sequence'} ]) }); @@ -174,8 +177,8 @@ store : itemsStore, cm : new top.Ext.grid.ColumnModel([new Ext.grid.RowNumberer({header:'序号',width:40}), selectModel, {header : "外部编码",dataIndex : 'externalCode',width : 40,menuDisabled : true}, - {header : "名称",dataIndex : 'name',width : 150,menuDisabled : true}, - {header : "规格",dataIndex : 'specification',width : 80,menuDisabled : true}, + {header : "名称",dataIndex : 'name',width : 135,menuDisabled : true}, + {header : "规格",dataIndex : 'specification',width : 60,menuDisabled : true}, {header : "批次",width : 50,dataIndex : 'batchNumber',menuDisabled : true}, {header : "账面数量",dataIndex : 'amount',width : 40,menuDisabled : true,renderer : isChange}, {header : "盘点数量",dataIndex : 'inventoryAmount',css: 'background: #F0F0F0;',width : 40,menuDisabled : true, @@ -185,7 +188,7 @@ allowBlank : false }) }, - {header : "高值耗材操作",dataIndex : 'goodsType',width : 60,menuDisabled : true, + {header : "高值耗材操作",dataIndex : 'goodsType',width : 55,menuDisabled : true, renderer: function(v,p,record,rowIndex, columnIndex, store){ if(v == '高值耗材'){ var id = record.get('id'); @@ -204,7 +207,8 @@ } }, {header : "单价",dataIndex : 'cost',width : 30,menuDisabled : true}, - {id : 'expandColumn',header : "供应商",width : 120,dataIndex : 'supplierName',menuDisabled : true} + {header : "供应商",width : 70,dataIndex : 'supplierName',menuDisabled : true}, + {id : 'expandColumn',header : "顺序号",width : 30,dataIndex : 'sequence',menuDisabled : true,sortable:true} ]), autoExpandColumn : 'expandColumn', tbar : [{ @@ -228,6 +232,10 @@ name : 'supplierName', id : 'supplierName' },{ + xtype:'hidden', + name : 'sequence', + id : 'sequence' + },{ text : '物品名称:' },{ xtype : 'combo', @@ -251,6 +259,7 @@ select : function(combo, record, index) { top.Ext.getCmp('externalCode').setValue(record.data.externalCode); top.Ext.getCmp('goodsType').setValue(record.data.goodsType); + top.Ext.getCmp('sequence').setValue(record.data.sequence); batchNumStore.baseParams.disposableGoodsID = record.data.id; batchNumStore.load(); } @@ -402,6 +411,7 @@ var supplierName = top.Ext.getCmp('supplierName').getValue(); var externalCode = top.Ext.getCmp('externalCode').getValue(); var goodsType = top.Ext.getCmp('goodsType').getValue(); + var sequence = top.Ext.getCmp('sequence').getValue(); if(goodsName == ""){ showResult("请选择物品名称!"); return; @@ -426,7 +436,7 @@ } var isExist = isExistItem(goodsName,specification,batchNumber,price); if(!isExist){ - addItem(batchId,goodsName,specification,amount,batchNumber,price,supplierName,externalCode,goodsType); + addItem(batchId,goodsName,specification,amount,batchNumber,price,supplierName,externalCode,goodsType,sequence); cleanSelect(); }else{ showResult(goodsName + ",已存在!");