Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingdamagerecord/service/RecyclingDamageRecordManagerImpl.java =================================================================== diff -u -r13683 -r14711 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingdamagerecord/service/RecyclingDamageRecordManagerImpl.java (.../RecyclingDamageRecordManagerImpl.java) (revision 13683) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingdamagerecord/service/RecyclingDamageRecordManagerImpl.java (.../RecyclingDamageRecordManagerImpl.java) (revision 14711) @@ -383,24 +383,41 @@ if(amount == null || amount < 0){ return false; } - //检查库存是否够减 - String name = ""; - String specification = null; - if(materialName.lastIndexOf("[") >= 0){ - name = materialName.substring(0,materialName.lastIndexOf("[")); - specification = materialName.substring(materialName.lastIndexOf("[")+1,materialName.length()-1); + //当前登录用户所属科室代码 + LoginUserData loginUser = AcegiHelper.getLoginUser(); + String filterDeptCode = loginUser.getOrgUnitCodingFromSupplyRoomConfig(); + OrgUnit orgUnit = new OrgUnit(); + orgUnit.setOrgUnitCoding(filterDeptCode); + List wareHouseList = wareHouseManager.getWareHouseListByOrgUnit(orgUnit); + if(wareHouseList == null || wareHouseList.size() == 0){ + throw new RuntimeException("该科室未定义仓库,不能补充器械!"); + } + WareHouse defaultWareHouse = wareHouseList.get(0); + + List stockList = new ArrayList(); + GoodsStock stock = new GoodsStock(); + stock.setAmount(amount); + stock.setGoodsType(GoodsStock.TYPE_MATERIAL); + + JSONObject obj = CssdUtils.getGoodsNameAndSp(materialName); + MaterialDefinition md = materialDefinitionManager + .getMaterialDefinitionByName(obj.optString("materialName"), + obj.optString("specification")); + if(md != null){ + stock.setMaterialDefinitionId(md.getId()); }else{ - name = materialName; + throw new RuntimeException(materialName + "未定义,不能补充!"); } - MaterialDefinition materialDefinition = materialDefinitionManager - .getMaterialDefinitionByName(name,specification); - Long newStorage = materialDefinition.getStorage() - amount; - if(newStorage >= 0) { - materialDefinition.setStorage(newStorage); - materialDefinitionManager.saveOrUpdate(materialDefinition); - } else { - return false; - } + //名称需要带上规格 + stock.setName(materialName); + stock.setOrgUnitCode(defaultWareHouse.getOrgUnitCode()); + stock.setOrgUnitName(defaultWareHouse.getOrgUnitName()); + stock.setWareHouseId(defaultWareHouse.getId()); + stock.setWareHouseName(defaultWareHouse.getName()); + stockList.add(stock); + //检查库存是否够减 + goodsStockManager.saveOrUpdateGoodsStock(stockList, + GoodsStockManager.MODE_OUTSTOCK); return true; } Index: ssts-web/src/main/webapp/disinfectsystem/recyclingdamagerecord/recyclingDamageRecordForm.js =================================================================== diff -u -r12331 -r14711 --- ssts-web/src/main/webapp/disinfectsystem/recyclingdamagerecord/recyclingDamageRecordForm.js (.../recyclingDamageRecordForm.js) (revision 12331) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingdamagerecord/recyclingDamageRecordForm.js (.../recyclingDamageRecordForm.js) (revision 14711) @@ -876,13 +876,13 @@ if(param && action.result.recyclingDamageRecordId){ param.record.set('recyclingDamageRecordId',action.result.recyclingDamageRecordId); } - top.Ext.getCmp('recyclingDamageRecordWin').close(); showResult(action.result.message); if(grid){ try{ grid.dwrReload(); }catch(e){} } + top.Ext.getCmp('recyclingDamageRecordWin').close(); }, failure : function(form, action) { showResult(action.result.message);