Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManager.java =================================================================== diff -u -r16861 -r16984 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManager.java (.../MaterialEntryManager.java) (revision 16861) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManager.java (.../MaterialEntryManager.java) (revision 16984) @@ -27,7 +27,7 @@ public List findMaterialEntryBySql(String sql); - public void saveMaterialEntry(MaterialEntry materialEntry, String items) + public void saveMaterialEntry(MaterialEntry materialEntry, String items,boolean accordingToSupplier) throws Exception; /** Index: ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java =================================================================== diff -u -r16348 -r16984 --- ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java (.../InventoryRecordManagerImpl.java) (revision 16348) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/inventoryrecord/service/InventoryRecordManagerImpl.java (.../InventoryRecordManagerImpl.java) (revision 16984) @@ -373,14 +373,14 @@ MaterialEntry entry = newMaterialEntry(inventoryReocrd, MaterialEntry.TYPE_IN,MaterialEntry.SUBTYPE_STOCKTAKE_IN); - materialEntryManager.saveMaterialEntry(entry,in_array.toString()); + materialEntryManager.saveMaterialEntry(entry,in_array.toString(),false); } // 退库单 if (out_array.size() > 0) { MaterialEntry entry = newMaterialEntry(inventoryReocrd, MaterialEntry.TYPE_OUT,MaterialEntry.SUBTYPE_STOCKTAKE_OUT); materialEntryManager.saveMaterialEntry(entry, - out_array.toString()); + out_array.toString(),false); } } catch (Exception e) { throw new RuntimeException(e.getMessage()); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/material/service/MaterialEntryManagerTests.java =================================================================== diff -u -r16861 -r16984 --- ssts-web/src/test/java/test/forgon/disinfectsystem/material/service/MaterialEntryManagerTests.java (.../MaterialEntryManagerTests.java) (revision 16861) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/material/service/MaterialEntryManagerTests.java (.../MaterialEntryManagerTests.java) (revision 16984) @@ -144,15 +144,15 @@ //5.记录入库前的库存 materialStockBefore = getMaterialStocks(); //6.保存入库单 - materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr()); + materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr(),false); //7.断言 assertion(); //8.准备退库单 buildMaterialEntry(false); //9.记录退库前的库存 materialStockBefore = getMaterialStocks(); //10.保存退库单 - materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr()); + materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr(),true); //11.断言 assertion(); @@ -171,9 +171,9 @@ //5.记录入库前的库存 materialStockBefore = getMaterialStocks(); //需要清除Hibernate缓存 -// objectDao.clearCache(); + objectDao.clearCache(); //6.保存入库单 - materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr()); + materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr(),false); //7.断言 assertion(); //8.准备退库材料和退库单 @@ -182,9 +182,9 @@ //9.记录退库前的库存 materialStockBefore = getMaterialStocks(); //需要清除Hibernate缓存,不然会使用上次入库时产生的对象 -// objectDao.clearCache(); + objectDao.clearCache(); //10.保存退库单 - materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr()); + materialEntryManager.saveMaterialEntry((MaterialEntry)BeanUtilsBean2.getInstance().cloneBean(materialEntry), buildItemsJsonStr(),true); //11.断言 assertion(); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/action/MaterialEntryAction.java =================================================================== diff -u -r16861 -r16984 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/action/MaterialEntryAction.java (.../MaterialEntryAction.java) (revision 16861) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/action/MaterialEntryAction.java (.../MaterialEntryAction.java) (revision 16984) @@ -61,12 +61,33 @@ materialEntry.setTime(new Date()); } try { - materialEntryManager.saveMaterialEntry(materialEntry, items); + materialEntryManager.saveMaterialEntry(materialEntry, items,false); } catch (Exception e) { json = JSONUtil.buildJsonObject(false, e.getMessage()); } StrutsResponseUtils.output(json); } + /** + * 保存退库单。需要根据供应商退库 + */ + public void saveMaterialEntryOut() { + JSONObject json = JSONUtil.buildJsonObject(true, "保存成功"); + String items = StrutsParamUtils.getPraramValue("items", ""); + String id = StrutsParamUtils.getPraramValue("id", ""); + if (StringUtils.isNotBlank(id) && StringUtils.isNumeric(id)) { + materialEntry = materialEntryManager.get(id); + } else { + materialEntry.setSerialNumber(serialNumManager + .getSerialNumberStr(SerialNum.TYPE_INSERT_GODOWN)); + materialEntry.setTime(new Date()); + } + try { + materialEntryManager.saveMaterialEntry(materialEntry, items,true); + } catch (Exception e) { + json = JSONUtil.buildJsonObject(false, e.getMessage()); + } + StrutsResponseUtils.output(json); + } public String loadMaterialEntryItemByid() { String id = StrutsParamUtils.getPraramValue("id", ""); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java =================================================================== diff -u -r16861 -r16984 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java (.../MaterialEntryManagerImpl.java) (revision 16861) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialmanager/service/MaterialEntryManagerImpl.java (.../MaterialEntryManagerImpl.java) (revision 16984) @@ -167,7 +167,7 @@ } @Override - public void saveMaterialEntry(MaterialEntry materialEntry, String items) throws Exception { + public void saveMaterialEntry(MaterialEntry materialEntry, String items,boolean accordingToSupplier) throws Exception { if(materialEntry.getWareHouseId() == null){ throw new RuntimeException("请选择仓库"); @@ -237,7 +237,9 @@ updateAmount = amount - tempAmount; } materialDefinition.setCost(materialEntryItem.getCost()); - materialDefinition.setGoodsType(goodsType); + if(StringTools.isNotBlank(goodsType)){ + materialDefinition.setGoodsType(goodsType); + } updateMaterialDefinition.put(materialDefinition, updateAmount); } } @@ -279,7 +281,8 @@ type = GoodsStockManager.MODE_OUTSTOCK; } try { - if(GoodsStockManager.MODE_OUTSTOCK.equals(type)){ + if(GoodsStockManager.MODE_OUTSTOCK.equals(type) && accordingToSupplier){ + //按供应商退库.目前就材料退库界面是按供应商退库,其他如盘亏及材料发货等都不是按供应商退库 goodsStockManager.outMaterialStock(goodsStockList); }else{ //材料入库 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java =================================================================== diff -u -r16942 -r16984 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java (.../GoodsStockManagerImpl.java) (revision 16942) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java (.../GoodsStockManagerImpl.java) (revision 16984) @@ -264,7 +264,7 @@ */ private String getGoodsStockSupplier(GoodsStock gs){ if(gs != null){ - MaterialEntryItem item = (MaterialEntryItem)objectDao.getByID_ForUpdate(MaterialEntryItem.class.getSimpleName(), gs.getMaterialEntryItemId()); + MaterialEntryItem item = (MaterialEntryItem)objectDao.getByProperty(MaterialEntryItem.class.getSimpleName(), "id",gs.getMaterialEntryItemId()); if(item != null){ return item.getSupplierName(); } Index: ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialOutView.js =================================================================== diff -u -r16861 -r16984 --- ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialOutView.js (.../materialOutView.js) (revision 16861) +++ ssts-web/src/main/webapp/disinfectsystem/materialmanager/materialOutView.js (.../materialOutView.js) (revision 16984) @@ -49,8 +49,11 @@ name : 'name', mapping : 'name' }]), - beforeload : function(store,option) { - store.baseParams['materialId'] = top.Ext.getCmp('materialId').getValue(); + listeners : { + beforeload : function(store,option) { + var materialId = top.Ext.getCmp('materialId').getValue(); + store.baseParams['materialId'] = materialId; + } } }); @@ -396,12 +399,12 @@ allowBlank : false }) }, - {header : "单价",dataIndex : 'cost',width : 80,menuDisabled : true, - editor : new Ext.form.TextField({ - regex: /^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/, - regexText:'只能输入正数', - allowBlank : false - }) + {header : "单价",dataIndex : 'cost',width : 80,menuDisabled : true +// ,editor : new Ext.form.TextField({ +// regex: /^(([1-9]+[0-9]*.{1}[0-9]+)|([0].{1}[1-9]+[0-9]*)|([1-9][0-9]*)|([0][.][0-9]+[1-9]*))$/, +// regexText:'只能输入正数', +// allowBlank : false +// }) }, {header : "供应商",width : 140,dataIndex : 'supplierName',menuDisabled : true, editor : new top.Ext.form.ComboBox({ @@ -463,6 +466,7 @@ select : function(combo, record, index) { top.Ext.getCmp('name1').setValue(record.data.name); top.Ext.getCmp('materialId').setValue(record.data.id); + supplierStore.reload(); // top.Ext.getCmp('cost1').setValue(record.data.cost); }, specialkey : function(field, ee) { @@ -588,7 +592,7 @@ // top.Ext.getCmp("wareHouseId").setValue(top.Ext.getCmp("wareHouseName").getValue()); form.form.submit({ - url : WWWROOT + '/disinfectSystem/MaterialEntryAction!saveMaterialEntryAction.do', + url : WWWROOT + '/disinfectSystem/MaterialEntryAction!saveMaterialEntryOut.do', method : 'POST', waitMsg : '正在保存数据,请稍候', waitTitle : '提交表单',