Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r30451 -r30478 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 30451) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 30478) @@ -1752,6 +1752,13 @@ tousseInstance.setStatus(TousseInstance.STATUS_REVIEWED); tousseInstanceManager.save(tousseInstance); removeTousseInstanceList.add(tousseInstance); + //如果是聚合包,则将该聚合包下属的普通器械包实例也相应赋值 + if(tousseInstance.isComboTousse()){ + String sql = String.format("update TousseInstance set status='%s' where comboTousseInstanceId=%d", + TousseInstance.STATUS_REVIEWED , + tousseInstance.getId()); + objectDao.excuteSQL(sql); + } } } originalTousseInstances.removeAll(removeTousseInstanceList); @@ -5480,6 +5487,8 @@ String deleteSql = " delete from sterilization_tousseInstance where tousseInstance_id = %s"; //取出删除了的包,放到新的集合中。 List delBarcodeList = CssdUtils.getDiffrentList(new ArrayList(tousseInstanceAndBarcode.values()), tousseInstanceBarcodes); + //聚合包子包的id + List delComboTousseIdList = new ArrayList(); //对删除的包回滚到灭菌前的状态 if(CollectionUtils.isNotEmpty(delBarcodeList) && tousseInstanceAndBarcode.size() > 0){ for (Entry entry : tousseInstanceAndBarcode.entrySet()) { @@ -5488,9 +5497,7 @@ continue;//跳过不删除的器械包 } TousseInstance ti = entry.getKey(); - if(DatabaseUtil.isPoIdValid(ti.getComboTousseInstanceId())){ - continue; - } + if(TousseInstance.STATUS_SHIPPED.equals(ti.getStatus()) || TousseInstance.STATUS_SIGNED.equals(ti.getStatus()) || TousseInstance.STATUS_USED.equals(ti.getStatus()) @@ -5499,6 +5506,11 @@ result.put(JSONUtil.JSON_KEY_MESSAGE, ""+ti.getTousseName()+"处于"+ti.getStatus()+"状态不允许删除"); return result; } + + if(ti.isComboTousse()){ + delComboTousseIdList.add(ti.getId()); + } + ti.setSterileEndTime(null); ti.setStatus(TousseInstance.STATUS_REVIEWED); ti.setSterileStartTime(null); @@ -5512,16 +5524,36 @@ try { objectDao.saveOrUpdate(ti); objectDao.excuteSQL(String.format(deleteSql, ti.getId()));//断掉灭菌记录和包实例中间表的关系 + delTousseInstances.add(ti); } catch (Exception e) { e.printStackTrace(); result.put(JSONUtil.JSON_KEY_SUCCESS, false); result.put(JSONUtil.JSON_KEY_MESSAGE, exHandler.handleException(e)); return result; } - delTousseInstances.add(ti); } } oldTousseInstanceList.removeAll(delTousseInstances); + // 聚合包子包 + if(CollectionUtils.isNotEmpty(delComboTousseIdList)){ + List comboTousseList = objectDao.getCollection(TousseInstance.class.getSimpleName(), "comboTousseInstanceId", delComboTousseIdList); + if(CollectionUtils.isNotEmpty(comboTousseList)){ + for (TousseInstance ti : comboTousseList) { + ti.setSterileEndTime(null); + ti.setStatus(TousseInstance.STATUS_REVIEWED); + ti.setSterileStartTime(null); + ti.setSterilizationRecord_id(null); + ti.setSterilizationUser(null); + ti.setSterilizerName(null); + ti.setSterileFrequency(null); + ti.setSterilingType(null); + ti.setWareHouseId(null); + ti.setWareHouseName(null); + objectDao.saveOrUpdate(ti); + delTousseInstances.add(ti); + } + } + } //扣减器械包库存 if(CollectionUtils.isNotEmpty(delTousseInstances)){ Map tdAmountMap = new HashMap();