Index: ssts-web/src/test/java/test/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerTests.java =================================================================== diff -u -r12672 -r12683 --- ssts-web/src/test/java/test/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerTests.java (.../DiposableGoodsManagerTests.java) (revision 12672) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerTests.java (.../DiposableGoodsManagerTests.java) (revision 12683) @@ -172,7 +172,7 @@ assertEquals(0, batchs.size()); // 第一次入库,新批次 - DisposableGoodsBatchStock diposableGoodBatchStock = null; + DisposableGoodsBatchStock disposableGoodsBatchStock = null; Map result = new HashMap(); try { GodownEntry entry = new GodownEntry(); @@ -188,18 +188,18 @@ entry.getItemsList().add(godownEntryItem); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry, result); - diposableGoodBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); -// diposableGoodBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( + disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); +// disposableGoodsBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( // goods, 100, "20150704", // 1.6, new Date(), "广州捷康医疗", "", "广州白云山制药厂", ""); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } - assertNotNull(diposableGoodBatchStock); - assertEquals(1.6, diposableGoodBatchStock.getCost()); - assertEquals(100, diposableGoodBatchStock.getStorage().intValue()); + assertNotNull(disposableGoodsBatchStock); + assertEquals(1.6, disposableGoodsBatchStock.getCost()); + assertEquals(100, disposableGoodsBatchStock.getStorage().intValue()); goods = diposableGoodsManager.getDiposableGoodsByName("注射器", "1ML"); batchs = goods.getGoodsBatchs(); @@ -227,8 +227,8 @@ entry.getItemsList().add(godownEntryItem); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry, result); - diposableGoodBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); -// diposableGoodBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( + disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); +// disposableGoodsBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( // goods, 200, "20150704", // 1.71, new Date(), "广州捷康医疗", "", "广州白云山制药厂", ""); } catch (Exception e) { @@ -242,8 +242,8 @@ batchs = goods.getGoodsBatchs(); assertNotNull(batchs); assertEquals(1, batchs.size()); - assertEquals(1.71, diposableGoodBatchStock.getCost()); - assertEquals(300, diposableGoodBatchStock.getStorage().intValue()); + assertEquals(1.71, disposableGoodsBatchStock.getCost()); + assertEquals(300, disposableGoodsBatchStock.getStorage().intValue()); identifications = batchs.iterator().next().getIdentifications(); assertNotNull(identifications); @@ -283,7 +283,7 @@ Map result = new HashMap(); // 第一次入库,新批次 - DisposableGoodsBatchStock diposableGoodBatchStock = null; + DisposableGoodsBatchStock disposableGoodsBatchStock = null; try { GodownEntry entry = new GodownEntry(); GodownEntryItem godownEntryItem = new GodownEntryItem(); @@ -298,16 +298,16 @@ entry.getItemsList().add(godownEntryItem); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry, result); - diposableGoodBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); -// diposableGoodBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( + disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); +// disposableGoodsBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( // goods, 100, "20150704", // 1.6, new Date(), "广州捷康医疗", "", "广州白云山制药厂", ""); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } - assertNotNull(diposableGoodBatchStock); + assertNotNull(disposableGoodsBatchStock); goods = diposableGoodsManager.getDiposableGoodsByName("注射器", "1ML"); batchs = goods.getGoodsBatchs(); @@ -336,8 +336,8 @@ entry.getItemsList().add(godownEntryItem); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry, result); - diposableGoodBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); -// diposableGoodBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( + disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); +// disposableGoodsBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( // goods, 200, "20150704", // 1.6, new Date(), "广州捷康医疗", "", "广州白云山制药厂", ""); } catch (Exception e) { @@ -351,8 +351,8 @@ batchs = goods.getGoodsBatchs(); assertNotNull(batchs); assertEquals(1, batchs.size()); - assertEquals(1.6, diposableGoodBatchStock.getCost()); - assertEquals(300, diposableGoodBatchStock.getStorage().intValue()); + assertEquals(1.6, disposableGoodsBatchStock.getCost()); + assertEquals(300, disposableGoodsBatchStock.getStorage().intValue()); identifications = batchs.iterator().next().getIdentifications(); assertNotNull(identifications); @@ -399,7 +399,7 @@ Map result = new HashMap(); // 第一次入库,新批次 - DisposableGoodsBatchStock diposableGoodBatchStock = null; + DisposableGoodsBatchStock disposableGoodsBatchStock = null; try { GodownEntry entry = new GodownEntry(); GodownEntryItem godownEntryItem = new GodownEntryItem(); @@ -414,17 +414,17 @@ entry.getItemsList().add(godownEntryItem); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry, result); - diposableGoodBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); -// diposableGoodBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( + disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150704"); +// disposableGoodsBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( // goods, 100, "20150704", // 1.6, new Date(), "广州捷康医疗", "", "广州白云山制药厂", ""); } catch (Exception e1) { e1.printStackTrace(); } - assertNotNull(diposableGoodBatchStock); - assertEquals(1.6, diposableGoodBatchStock.getCost()); - assertEquals(100, diposableGoodBatchStock.getStorage().intValue()); + assertNotNull(disposableGoodsBatchStock); + assertEquals(1.6, disposableGoodsBatchStock.getCost()); + assertEquals(100, disposableGoodsBatchStock.getStorage().intValue()); goods = diposableGoodsManager.getDiposableGoodsByName("注射器", "1ML"); assertEquals(1.6, goods.getReferencePrice()); @@ -455,8 +455,8 @@ entry.getItemsList().add(godownEntryItem); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry, result); - diposableGoodBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150705"); -// diposableGoodBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( + disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(goods.getId().toString(), "20150705"); +// disposableGoodsBatchStock = diposableGoodsManager.addDiposableGoodsToStorage( // goods, 200, "20150705", // 1.71, new Date(), "广州捷康医疗", "", "广州白云山制药厂", ""); } catch (Exception e) { @@ -469,8 +469,8 @@ batchs = goods.getGoodsBatchs(); assertNotNull(batchs); assertEquals(2, batchs.size()); - assertEquals(1.71, diposableGoodBatchStock.getCost()); - assertEquals(200, diposableGoodBatchStock.getStorage().intValue()); + assertEquals(1.71, disposableGoodsBatchStock.getCost()); + assertEquals(200, disposableGoodsBatchStock.getStorage().intValue()); DisposableGoodsBatchStock b1 = findBatchByBatchNumber(batchs,"20150704"); DisposableGoodsBatchStock b2 = findBatchByBatchNumber(batchs,"20150705"); Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/godownEntryView.js =================================================================== diff -u -r12643 -r12683 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/godownEntryView.js (.../godownEntryView.js) (revision 12643) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/godownEntryView.js (.../godownEntryView.js) (revision 12683) @@ -2,6 +2,35 @@ var grid; var batchNumStore; var g_localID = 1;// 为了区分每一个item,增加的ID。 + +var wareHouseStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/wareHouseAction!getWareHouseData.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'name',mapping : 'name'}, + {name : 'orgUnitCode',mapping : 'orgUnitCode'}, + ]), + listeners : { + load : function(store,records) { + var id = top.Ext.getCmp('wareHouseId').getValue(); + var name = top.Ext.getCmp('wareHouseName').getValue(); + if(records.length > 0 && (id == null || id == '')){ + id=records[0].data.id; + name = records[0].data.name; + } + top.Ext.getCmp('wareHouse1').setValue(id); + top.Ext.getCmp('wareHouseId').setValue(id); + top.Ext.getCmp('wareHouseName').setValue(name); + } + } +}); + // 全部一次性物品 var allDiposableGoodsStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ @@ -317,6 +346,14 @@ name : 'originalFormParams', id : 'originalFormParams' },{ + xtype : 'hidden', + name : 'wareHouseId', + id : 'wareHouseId' + },{ + xtype : 'hidden', + name : 'wareHouseName', + id : 'wareHouseName' + },{ id : 'serialNum', columnWidth : .25, layout : 'form', @@ -333,6 +370,40 @@ readOnly : true, anchor : '95%' }] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : 40, + items:[{ + xtype : 'combo', + fieldLabel : '仓库', + id : 'wareHouse1', + name : 'wareHouse1', + minChars : 0, + valueField : 'id', + displayField : 'name', + store : wareHouseStore, + forceSelection : true, + lazyInit : false, + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + allowBlank : true, + width : 100, + listeners : { + select : function(combo, record, index) { + top.Ext.getCmp('wareHouse1').setValue(record.data.name); + top.Ext.getCmp('wareHouseId').setValue(record.data.id); + top.Ext.getCmp('wareHouseName').setValue(record.data.name); + top.Ext.getCmp('name1').focus(); + }, + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + top.Ext.getCmp('name1').focus(); + } + } + } + }] }, { columnWidth : .25, layout : 'form', @@ -964,7 +1035,7 @@ var items = buildJSONStringFromStore(top.Ext.getCmp('godownEntryItemGrid').getStore()); // 设置表单参数json - setFormParams(form,['id','remark','time']); + setFormParams(form,['id','remark','time','wareHouseName','wareHouseId']); top.Ext.getCmp("items").setValue(items); // items为json数组字符串,不会为null @@ -1253,7 +1324,6 @@ id = records[0].data['id']; editRecord(id); }; - function editRecord(id){ addGodownEntry(); top.Ext.getCmp("serialNum").show(); @@ -1264,7 +1334,9 @@ params : {id : id}, success : function(form, action) { top.Ext.getCmp("time").setValue(Ext.util.Format.date(new Date(action.result.data.time.time), 'Y-m-d H:i')); - + top.Ext.getCmp("wareHouseId").setValue(action.result.data.wareHouseId); + top.Ext.getCmp("wareHouseName").setValue(action.result.data.wareHouseName); + wareHouseStore.load(); for(var i = 0 ;i < action.result.data.itemsList.length ;i++){ var specification = action.result.data.itemsList[i].diposableGoods.specification; var b = true; @@ -1298,7 +1370,7 @@ } setTotalMoney(top.Ext.getCmp('godownEntryItemGrid')); // 保存原始数据,只需要保存需要修改的属性 - setOriginalFormParams(form,['id','remark','time']); + setOriginalFormParams(form,['id','remark','time','wareHouseName','wareHouseId']); var originalItems = buildJSONStringFromStore(top.Ext.getCmp('godownEntryItemGrid').getStore()); //alert(originalItems); top.Ext.getCmp("originalItems").setValue(originalItems); @@ -1357,6 +1429,7 @@ iconCls : 'btn_ext_application_add', handler : function() { addGodownEntry('insert'); + wareHouseStore.load(); } }, '-', { text : '修改', @@ -1601,6 +1674,4 @@ items : grid }] }); - - }); \ No newline at end of file Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java =================================================================== diff -u -r12672 -r12683 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java (.../TestPDAReturnGoodReInvoiceManager.java) (revision 12672) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java (.../TestPDAReturnGoodReInvoiceManager.java) (revision 12683) @@ -134,7 +134,7 @@ returnGoodsRecordManager.checkAndSaveForReturnTousse(returnGoodsRecord); assertNotNull(returnGoodsRecord.getRecyclingApplicationId()); }else if(type.equals(testDiposableGoods)){ - DisposableGoodsBatchStock diposableGoodBatchStock = diposableGoodBatchStockManager.getByBarcode("201410150001"); + DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodBatchStockManager.getByBarcode("201410150001"); ReturnGoodsRecord returnGoodsRecord = new ReturnGoodsRecord(); returnGoodsRecord.setDepart("外六科护士站18B"); returnGoodsRecord.setDepartCoding("3266"); @@ -148,13 +148,13 @@ returnGoodsItem.setIsDelivery("是"); returnGoodsItem.setPrice(1.2); returnGoodsItem.setReturnGoodsRecord(returnGoodsRecord); - returnGoodsItem.setDiposableGoodBatchStock(diposableGoodBatchStock); - returnGoodsItem.setExpDate(diposableGoodBatchStock.getExpDate().toString()); - returnGoodsItem.setTousseName(diposableGoodBatchStock.getDiposableGoods().getName()); - returnGoodsItem.setBatchNumber(diposableGoodBatchStock.getBatchNumber()); - returnGoodsItem.setBatchID(diposableGoodBatchStock.getId()); - returnGoodsItem.setDiposableGoodsID(diposableGoodBatchStock.getDiposableGoods().getId()); - returnGoodsItem.setBarcode(diposableGoodBatchStock.getBarcode()); + returnGoodsItem.setDiposableGoodBatchStock(disposableGoodsBatchStock); + returnGoodsItem.setExpDate(disposableGoodsBatchStock.getExpDate().toString()); + returnGoodsItem.setTousseName(disposableGoodsBatchStock.getDiposableGoods().getName()); + returnGoodsItem.setBatchNumber(disposableGoodsBatchStock.getBatchNumber()); + returnGoodsItem.setBatchID(disposableGoodsBatchStock.getId()); + returnGoodsItem.setDiposableGoodsID(disposableGoodsBatchStock.getDiposableGoods().getId()); + returnGoodsItem.setBarcode(disposableGoodsBatchStock.getBarcode()); List items = new ArrayList(); items.add(returnGoodsItem); returnGoodsRecord.getReturnGoodsItems().add(returnGoodsItem); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java =================================================================== diff -u -r12679 -r12683 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 12679) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 12683) @@ -389,6 +389,7 @@ public void saveGodownEntry_TRANS_REQUIRED(GodownEntry entry, Map result) { + setGodownEntrySubType(entry, GodownEntry.SUBTYPE_MANUE_IN); saveGodownEntry_internal(entry, result); } @@ -482,6 +483,7 @@ if(itemList.size() > 0){ entry.setSupplierName(itemList.get(0).getSupplierName()); } + syncGodownEntryWareHouse(entry); objectDao.save(entry); for (int i = 0; i < itemList.size(); ++i) { boolean newBatch = false; @@ -501,6 +503,8 @@ batchStock = new DisposableGoodsBatchStock(); batchStock.setDiposableGoods(disposableGoodsStock); disposableGoodsStock.getGoodsBatchs().add(batchStock); + disposableGoodsStock.setWareHouseID(entry.getWareHouseId()); + disposableGoodsStock.setWareHouseName(entry.getWareHouseName()); diposableGoodBatchStockManager.saveOrUpdate(batchStock); newBatch = true; @@ -522,6 +526,8 @@ batchStock.setSterileBatchNumber(godownEntryItem.getSterileBatchNumber()); batchStock.setSupplierName(godownEntryItem.getSupplierName()); batchStock.setProducingArea(godownEntryItem.getProducingArea()); + batchStock.setWareHouseID(entry.getWareHouseId()); + batchStock.setWareHouseName(entry.getWareHouseName()); // 新建标识号对象 IdentificationOfDiposableGoods identification = new IdentificationOfDiposableGoods(); @@ -533,6 +539,8 @@ identification.setEntryDate(entry.getTime()); identification.setIdentification("");// 暂时为空,待确定生成规则 identification.setPrice(godownEntryItem.getCost()); + identification.setWareHouseID(entry.getWareHouseId()); + identification.setWareHouseName(entry.getWareHouseName()); objectDao.save(identification); godownEntryItem.setNewBatch(newBatch); @@ -785,6 +793,8 @@ batchStock.setSterileBatchNumber(godownEntryItem.getSterileBatchNumber()); batchStock.setSupplierName(godownEntryItem.getSupplierName()); batchStock.setProducingArea(godownEntryItem.getProducingArea()); + batchStock.setWareHouseID(entry.getWareHouseId()); + batchStock.setWareHouseName(entry.getWareHouseName()); // 新建标识号对象 IdentificationOfDiposableGoods identification = new IdentificationOfDiposableGoods(); identification.setBatchStock(batchStock); @@ -793,6 +803,8 @@ identification.setIdentification("");// 暂时为空,待确定生成规则 identification.setConclusion(godownEntryItem.getConclusion()); identification.setPrice(godownEntryItem.getCost()); + identification.setWareHouseID(entry.getWareHouseId()); + identification.setWareHouseName(entry.getWareHouseName()); objectDao.save(identification); // 设置godownEntryItem和批次,标识号关联的信息 godownEntryItem.setBatchID(batchStock.getId()); @@ -855,6 +867,8 @@ identification.adjustAmount(amountChange); toUpdateBatchStocks.add(batchStock); + disposableGoodsStock.setWareHouseID(entry.getWareHouseId()); + disposableGoodsStock.setWareHouseName(entry.getWareHouseName()); toUpdateDiposableGoods.add(disposableGoodsStock); // TODO 如果标识号库存为0了,并且没有入库单引用它,那么可以删除标识号 // if(false){ @@ -874,7 +888,7 @@ } // 更新入库单属性 updateGodownEntryProperties(original, entry, curGodownEntry); - setGodownEntryDefaultWareHouse(curGodownEntry); + //setGodownEntryDefaultWareHouse(curGodownEntry); setGodownEntrySubType(curGodownEntry, GodownEntry.SUBTYPE_MANUE_IN); syncGodownEntryWareHouse(curGodownEntry); // 更新入库单对象 @@ -1547,6 +1561,18 @@ saveOrUpdate(curGodownEntry); } + private static boolean ObjectEaqual(Object obj1,Object obj2){ + if(obj1 == null && obj2 != null){ + return false; + } + if(obj1 != null && obj2 == null){ + return false; + } + if(obj1 == null && obj2 == null){ + return true; + } + return obj1.equals(obj2); + } /** * @param original * @param entry @@ -1566,6 +1592,18 @@ if(!originalTime.equals(time)){ curGodownEntry.setTime(time); } + // 仓库id和名称 + Long originalId = original.getWareHouseId(); + Long id = entry.getWareHouseId(); + if(!ObjectEaqual(originalId,id)){ + curGodownEntry.setWareHouseId(id); + } + + String originalName = original.getWareHouseName(); + String wareHouseName = entry.getWareHouseName(); + if(!ObjectEaqual(originalName,wareHouseName)){ + curGodownEntry.setWareHouseName(wareHouseName); + } } // 找出已经存在项 private Collection loadToussePrintData(