Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r21535 -r21536 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 21535) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 21536) @@ -372,7 +372,7 @@ /** * 根据条形码检测器械包的状态 - * + * 可检测器械包实例及一次性物品的高值耗材实例的条码 * @return */ public String checkTousseInstancesStatus() { @@ -405,7 +405,7 @@ if(bd != null && bd instanceof ExpensiveDisposablegoods){ ExpensiveDisposablegoods ed = (ExpensiveDisposablegoods)bd; UseRecord useRecord = ed.getUseRecord(); - if (useRecord != null && useRecordID.equals(useRecord.getId())) { + if (useRecord != null && useRecordID.equals(String.valueOf(useRecord.getId()))) { continue; } if( !ed.delivered()){ Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r21273 -r21536 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 21273) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 21536) @@ -270,8 +270,10 @@ } //待回滚状态的包实例集合(不含聚合包) List needRollbackStatusTousseInstanceList = new ArrayList(); - //待回滚状态的高值耗材实例集合 + //待回滚状态的高值耗材实例集合(新的高值耗材) List needRollbackStatusExpensiveGoodsInstanceList = new ArrayList(); + //待回滚状态的高值耗材实例集合(一次性物品高值耗材) + List needRollbackStatusExpensiveDisposableGoodsList = new ArrayList(); //当前操作用户 String currentOperator = AcegiHelper.getLoginUserFullName(); for (UseRecord useRecord : useRecordList) { @@ -385,14 +387,14 @@ } } - //2.该使用记录所有的高值耗材实例 + //2.该使用记录所有的高值耗材实例(新高值耗材、非一次性高值耗材) List expensiveGoodsInstances = objectDao.findByHql(" from "+ ExpensiveGoodsInstance.class.getSimpleName() +" where useRecord.id=" + useRecordId); JSONArray expensiveGoodsUpdateInfo = new JSONArray(); if (CollectionUtils.isNotEmpty(expensiveGoodsInstances)) { for (ExpensiveGoodsInstance expensiveGoodsInstance : expensiveGoodsInstances) { String oldStatus = expensiveGoodsInstance.getStatus(); - //如果不为聚合包实例时,需要回滚状态至已签收或已发货 + //回滚状态至已签收或已发货 expensiveGoodsInstance.setStatus(ExpensiveGoodsInstance.STATUS_DELIVERED); needRollbackStatusExpensiveGoodsInstanceList.add(expensiveGoodsInstance); expensiveGoodsInstance.setUseRecord(null);// 清除关联关系,并没有把器械包删除 @@ -407,7 +409,29 @@ } } - //3.该使用记录所有的一次性物品 + //3.该使用记录所有的一次性物品高值耗材实例 + List expensiveDisposablegoodsList = + objectDao.findByHql(" from "+ ExpensiveDisposablegoods.class.getSimpleName() +" where useRecord.id=" + useRecordId); + JSONArray expensiveDisposableGoodsUpdateInfo = new JSONArray(); + if (CollectionUtils.isNotEmpty(expensiveDisposablegoodsList)) { + for (ExpensiveDisposablegoods expensiveDisposablegoods : expensiveDisposablegoodsList) { + String oldStatus = expensiveDisposablegoods.getStatus(); + //回滚状态至已签收或已发货 + expensiveDisposablegoods.setStatus(ExpensiveGoodsInstance.STATUS_DELIVERED); + needRollbackStatusExpensiveDisposableGoodsList.add(expensiveDisposablegoods); + expensiveDisposablegoods.setUseRecord(null);// 清除关联关系,并没有把器械包删除 + + JSONObject item = new JSONObject(); + JSONUtil.addLogProperty(item, "barcode", expensiveDisposablegoods.getBarcode()); + JSONUtil.addLogProperty(item, "id", expensiveDisposablegoods.getId()); + JSONUtil.modifyPropertyLog(item, "status", oldStatus, expensiveDisposablegoods.getStatus()); + JSONUtil.modifyPropertyLog(item, "useRecord_id", useRecordId, null); + expensiveDisposableGoodsUpdateInfo.add(item); + + } + } + + //4.该使用记录所有的一次性物品 List useDiposableGoodsItems = useRecord.getDiposableGoodsItems(); JSONObject json = new JSONObject(); @@ -690,6 +714,8 @@ } }catch(Exception e){ logger.error("根据使用记录id查询器械材料使用记录报错:" + e); + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs); } return list; }