Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r26719 -r26804 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 26719) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 26804) @@ -45,6 +45,7 @@ import com.forgon.disinfectsystem.basedatamanager.goodsdepartshareconfig.service.GoodsDepartShareConfigManager; import com.forgon.disinfectsystem.basedatamanager.goodsstock.service.GoodsStockManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.basedatamanager.warehouse.service.StorageRecordManager; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; @@ -181,6 +182,8 @@ private ExpensiveGoodsInstanceManager expensiveGoodsInstanceManager; private InitDbConnection dbConnection; + + private StorageRecordManager storageRecordManager; public void setInvoicePlanManager(InvoicePlanManager invoicePlanManager) { this.invoicePlanManager = invoicePlanManager; @@ -290,6 +293,10 @@ this.dbConnection = dbConnection; } + public void setStorageRecordManager(StorageRecordManager storageRecordManager) { + this.storageRecordManager = storageRecordManager; + } + @Override public void deleteUseRecordById(String useRecordIds){ deleteUseRecordById(useRecordIds , false); @@ -756,6 +763,8 @@ } } objectDao.saveOrUpdate(useRecord); + // 已经放入库位的器械包需要取出 + updateStorageRecordByUserRecord(useRecord); } /** @@ -1348,6 +1357,26 @@ appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_USERECORD, "新增或修改使用记录", "id=" + modified.getId() + ",useRecord=" + modified.toString()); } + + /** + * 录入使用记录时取出已经放入库位的物品 + * @param useRecord + */ + public void updateStorageRecordByUserRecord (UseRecord useRecord) { + if (useRecord == null) { + return; + } + List list = useRecord.getTousseInstanceList(); + if (CollectionUtils.isEmpty(list)) { + return; + } + List tousseInstanceIdList = new ArrayList(); + for (TousseInstance ti : list) { + tousseInstanceIdList.add(ti.getId()); + } + // 根据器械包实例id批量修改库存记录为取出状态 + storageRecordManager.takeOutByTousseInstanceIdList(tousseInstanceIdList); + } /** * 该手术间是否存在另外的未审核的使用记录 Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r26797 -r26804 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 26797) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 26804) @@ -308,8 +308,6 @@ tousseInstanceManager,barcodeManager,objectDao); useRecordManager.saveUseRecord_TRANS_REQUIRED(modified); } - // 如果存在库存记录,就需要设置库存记录为“取出”状态 - updateStorageRecordByItems(items); JSONUtil.addSuccess(json, true); } catch (RuntimeException e) { e.printStackTrace(); @@ -320,32 +318,6 @@ } StrutsResponseUtils.output(json); } - - private void updateStorageRecordByItems(String items) { - if (StringUtils.isBlank(items)) { - return; - } - JSONArray itemsArray = JSONArray.fromObject(items); - if (itemsArray == null) { - return; - } - List tousseInstanceIdList = new ArrayList(); - int size = itemsArray.size(); - for (int i = 0; i < size; i++) { - JSONObject obj = itemsArray.getJSONObject(i); - if (obj == null) continue; - Long itemId = JSONUtil.optLong(obj, "id", null); - String itemBarcode = JSONUtil.optString(obj, "barcode", null); - if(StringUtils.isNotBlank(itemBarcode) && DatabaseUtil.isPoIdValid(itemId)){ - BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(itemBarcode); - if (bd instanceof TousseInstance) { - tousseInstanceIdList.add(itemId); - } - } - } - // 根据器械包实例id批量修改库存记录为取出状态 - storageRecordManager.takeOutByTousseInstanceIdList(tousseInstanceIdList); - } /** * 使用记录审核与返回为未审核的action