Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationTransition/service/SterilizationTransitionManagerImpl.java =================================================================== diff -u -r38230 -r38231 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationTransition/service/SterilizationTransitionManagerImpl.java (.../SterilizationTransitionManagerImpl.java) (revision 38230) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationTransition/service/SterilizationTransitionManagerImpl.java (.../SterilizationTransitionManagerImpl.java) (revision 38231) @@ -111,25 +111,28 @@ SterilizationTransition sterilizationTransition, Collection sterilizationTransitionItemVOs,String containerBarcode, String saveType) { save(sterilizationTransition); //如果扫描了篮筐,则将器械包全部装载到篮筐内 + Container container = null; if(StringUtils.isNotBlank(containerBarcode)){ - Collection tousseInstanceBarcodes = new ArrayList(); - for (SterilizationTransitionItemVO vo : sterilizationTransitionItemVOs) { - tousseInstanceBarcodes.add(vo.getTousseInstanceBarcode()); - } - tousseInstanceManager.addTousseInstanceToBasket(containerBarcode, tousseInstanceBarcodes, null); BarcodeDevice basketBarcodeDevice = barcodeManager.getBarcodeByBarcode(containerBarcode); - Container container = (Container)basketBarcodeDevice; + container = (Container)basketBarcodeDevice; sterilizationTransition.setContainerId(container.getId()); - objectDao.saveOrUpdate(sterilizationTransition); } //1、设置流水号 if (StringUtils.isBlank(sterilizationTransition.getSerialNumber())) { sterilizationTransition.setSerialNumber(serialNumManager.getSerialNumberStr(SerialNum.TYPE_RECYCLINGAPPLICATION)); } //2、设置灭菌交接项 setSterilizationTransitionItems(sterilizationTransition, sterilizationTransitionItemVOs, saveType); + //如果扫描了篮筐,则将器械包全部装载到篮筐内 + if(container != null){ + Collection tousseInstanceBarcodes = new ArrayList(); + for (SterilizationTransitionItemVO vo : sterilizationTransitionItemVOs) { + tousseInstanceBarcodes.add(vo.getTousseInstanceBarcode()); + } + tousseInstanceManager.addTousseInstanceToBasket(containerBarcode, tousseInstanceBarcodes, null); + objectDao.saveOrUpdate(sterilizationTransition); + } - } /** Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java =================================================================== diff -u -r38230 -r38231 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java (.../ProxyDisinfectionManagerImpl.java) (revision 38230) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java (.../ProxyDisinfectionManagerImpl.java) (revision 38231) @@ -154,7 +154,7 @@ @Override public void saveOrUpdate(ProxyDisinfection proxyDisinfection, String[] tousseInstanceIdStrs, JSONArray basketInfos,String loginUserName,String loginUserCode, String loginUserOrgUnitCode, ListpakingRecordIDList, - List receiveToussesIDList) { + List receiveToussesIDList, boolean convertProxyDisinfection) { if(StringUtils.equals(proxyDisinfection.getDepartCoding(), proxyDisinfection.getHandleDepartCoding())){ throw new RuntimeException("代理灭菌单申请科室和处理科室不能为同一科室!"); } @@ -171,7 +171,7 @@ // 代理灭菌单新增版本号标识,用于处理表单并发操作的情况(GDSZYY-183) boolean versionEqual = true; - if(DatabaseUtil.isPoIdValid(proxyDisinfection.getId()) + if(!convertProxyDisinfection && DatabaseUtil.isPoIdValid(proxyDisinfection.getId()) && proxyDisinfection.getOldVersion() != null){ if(VersionOperators.versionEquals(proxyDisinfection.getOldVersion(), proxyDisinfection.getVersion())){ versionEqual = true; @@ -181,7 +181,7 @@ VersionOperators.increaseVersion(proxyDisinfection); } - if(!versionEqual){ + if(!versionEqual && !convertProxyDisinfection){ //合并没有放入篮筐的器械包实例 basketInfos = appendProxyDisinfectionBasket(proxyDisinfection, basketInfos); //合并篮筐及篮筐内物品 @@ -429,6 +429,17 @@ allTousseInstanceIdStrList.add(tousseInstanceIdStr); } } + List oldTousseInstances = objectDao.findBySql(TousseInstance.class.getSimpleName(), + String.format("where po.proxyDisinfection_id=%s and po.reviewBasket_id is null", proxyDisinfection.getId())); + if(CollectionUtils.isNotEmpty(oldTousseInstances)){ + for (TousseInstance tousseInstance : oldTousseInstances) { + if(allTousseInstanceIdStrList.contains(tousseInstance.getId()+"")){ + continue; + } + allTousseInstanceIdStrList.add(tousseInstance.getId()+""); + } + } + //移除已经放入篮筐的器械包实例 if (basketInfos != null && !basketInfos.isEmpty()) { for (Object basketInfoObj : basketInfos) { @@ -1129,6 +1140,7 @@ tousseInstances = oldBasket.getTousseInstances(objectDao); if (CollectionUtils.isEmpty(tousseInstances)) { oldBasket.getContainer().setStatus(Container.CONTAINER_STATUS_FREE); + objectDao.excuteSQL("delete from proxyDis_rBasket where reviewedBasket_id="+oldBasket.getId() + " and proxyDisinfection_id="+proxyDisinfection.getId()); reviewedBasketManager.deleteReviewedBasket(oldBasket); } } @@ -1840,7 +1852,7 @@ return jsonObject; } @Override - public void saveProxyDisinfection(ProxyDisinfection proxyDisinfection, JSONArray tousseInstanceIdsArray, JSONArray basketInfos) { + public void saveProxyDisinfection(ProxyDisinfection proxyDisinfection, JSONArray tousseInstanceIdsArray, JSONArray basketInfos, boolean convertProxyDisinfection) { // 装配记录的ID,多条装配记录可以生成一张代理灭菌单 String pakingRecordIDs = StrutsParamUtils.getPraramValue("pakingRecordIDs", ""); List pakingRecordIDList = new ArrayList(); @@ -1904,7 +1916,7 @@ } saveOrUpdate(proxyDisinfection, - tousseInstanceIdStrs, basketInfos, fullName, userName, AcegiHelper.getCurrentOrgUnitCode(), pakingRecordIDList, receiveToussesIDList); + tousseInstanceIdStrs, basketInfos, fullName, userName, AcegiHelper.getCurrentOrgUnitCode(), pakingRecordIDList, receiveToussesIDList, convertProxyDisinfection); } @Override public void saveSterilizationTransitionAndConvertProxyDisinfection( @@ -1922,6 +1934,8 @@ proxyDisinfection.setSterilizationTransitionId(sterilizationTransition.getId()); sterilizationTransition.setStatus(SterilizationTransition.STAUTS_CONVERTED); proxyDisinfection.setReceiveStatus(ProxyDisinfection.RECEIVESTATUS_RECEIVED); + proxyDisinfection.setVersion(0); + proxyDisinfection.setOldVersion(0); objectDao.saveOrUpdate(sterilizationTransition); }else{ proxyDisinfection.setApplicant(sterilizationTransition.getTakeover()); @@ -1945,6 +1959,6 @@ basketObj.put("tousseInstanceIdStrs", tiIdsInBasket); basketsInfo.add(basketObj); } - saveProxyDisinfection(proxyDisinfection, toussesInfo, basketsInfo); + saveProxyDisinfection(proxyDisinfection, toussesInfo, basketsInfo, true); } } \ No newline at end of file Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/action/ProxyDisinfectionAction.java =================================================================== diff -u -r38204 -r38231 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/action/ProxyDisinfectionAction.java (.../ProxyDisinfectionAction.java) (revision 38204) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/action/ProxyDisinfectionAction.java (.../ProxyDisinfectionAction.java) (revision 38231) @@ -123,7 +123,7 @@ JSONArray tousseInstanceIdsArray = JSONArray.fromObject(toussesInfo); String basketInfosStr = StrutsParamUtils.getPraramValue("basketsInfo", ""); JSONArray basketInfos = JSONArray.fromObject(basketInfosStr); - proxyDisinfectionManager.saveProxyDisinfection(proxyDisinfection, tousseInstanceIdsArray, basketInfos); + proxyDisinfectionManager.saveProxyDisinfection(proxyDisinfection, tousseInstanceIdsArray, basketInfos, false); JSONObject json = new JSONObject(); JSONUtil.addSuccess(json, true); JSONUtil.addMessage(json, "保存成功"); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManager.java =================================================================== diff -u -r38204 -r38231 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManager.java (.../ProxyDisinfectionManager.java) (revision 38204) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManager.java (.../ProxyDisinfectionManager.java) (revision 38231) @@ -32,7 +32,7 @@ * @param tousseInstanceIdsArray 未入筐的包 * @param basketInfos 入筐的包 */ - public void saveProxyDisinfection(ProxyDisinfection proxyDisinfection, JSONArray tousseInstanceIdsArray, JSONArray basketInfos); + public void saveProxyDisinfection(ProxyDisinfection proxyDisinfection, JSONArray tousseInstanceIdsArray, JSONArray basketInfos, boolean convertProxyDisinfection); /** * 保存或者更新代理灭菌单. * @param proxyDisinfection 代理灭菌单 @@ -43,9 +43,11 @@ * @param loginUserOrgUnitCode 用户当前登录科室 * @param pakingRecordIDList 装配记录ID,例如:1,2,3 * @param receiveToussesIDList 需要接收的器械包ID,例如:1,2,3 + * @param convertProxyDisinfection 是否转换代理灭菌 */ public void saveOrUpdate(ProxyDisinfection proxyDisinfection, - String[] tousseInstanceIdStrs, JSONArray basketInfos, String loginUserName,String loginUserCode, String loginUserOrgUnitCode, List pakingRecordIDList, List receiveToussesIDList); + String[] tousseInstanceIdStrs, JSONArray basketInfos, String loginUserName,String loginUserCode, String loginUserOrgUnitCode, List pakingRecordIDList, List receiveToussesIDList + , boolean convertProxyDisinfection); /** * 根据id删除代理灭菌单.