Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r36700 -r36702 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36700) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36702) @@ -1699,7 +1699,7 @@ } @Override - public List getAllTousseInstanceVOsInReviewedBasket(List reviewedBasketList, boolean queryDiscard){ + public List getAllTousseInstanceVOsInReviewedBasket(List reviewedBasketList, boolean queryDiscard, boolean openGoodsSearch){ if(!CollectionUtils.isNotEmpty(reviewedBasketList)){ return new ArrayList(); } @@ -1723,15 +1723,30 @@ queryDiscardSql = " and t.status <> '" + TousseInstance.STATUS_DISCARD + "' "; } //关联加急对象的sql语句 - String sqlJoin_UrgentLevel = String.format(" left join %s ul on t.urgentLevel_id = ul.id ", UrgentLevel.class.getSimpleName()); - String sqlSelect_UrgentLevel = String.format(" ,ul.colorCode ulColorCode ,ul.grade ulGrade, ul.name ulName , ul.id ulId "); + String sqlJoin_UrgentLevel = null; + String sqlSelect_UrgentLevel = null; + if(enableUrgentFunction){ + sqlJoin_UrgentLevel = String.format(" left join %s ul on t.urgentLevel_id = ul.id ", UrgentLevel.class.getSimpleName()); + sqlSelect_UrgentLevel = String.format(" ,ul.colorCode ulColorCode ,ul.grade ulGrade, ul.name ulName , ul.id ulId "); + }else{ + sqlJoin_UrgentLevel = ""; + sqlSelect_UrgentLevel = ""; + } + String sqlSelect_SpellingSql = null; + if(openGoodsSearch){ + sqlSelect_SpellingSql = ",td.spelling,td.wbCode "; + }else{ + sqlSelect_SpellingSql = ""; + } + //关联来源科室的sql语句 String orgUnitJoinSql = String.format(" left join %s ou on ou.orgUnitCoding = t.departCoding ", OrgUnit.class.getSimpleName()); //1、普通器械包、消毒物品、敷料包 String sql1 = "select distinct t.reviewBasket_id,tdAncestor.id tdId," + " ou.name depart, td.tousseType, td.includeImplant, t.tousseName, b.barcode," + " t.proxyDisinfection_Id,t.isUrgentTousse,tdAncestor.isTraceable,t.SterilingMode " + sqlSelect_UrgentLevel + + sqlSelect_SpellingSql + "from tousseinstance t" + sqlJoin_UrgentLevel + orgUnitJoinSql + " , barcodedevice b , TousseDefinition td , TousseDefinition tdAncestor " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.ancestorID=tdAncestor.id " @@ -1744,39 +1759,39 @@ + ")" + queryDiscardSql; logger.debug("sql:" + sql1); - buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql1, enableUrgentFunction); + buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql1, enableUrgentFunction,openGoodsSearch); //2、外来器械包、外来器械拆分小包 String sql2 = "select t.reviewBasket_id,td.id tdId," + " ou.name depart, td.tousseType, td.includeImplant, t.tousseName, b.barcode," + " t.proxyDisinfection_Id,t.isUrgentTousse , '"+ Constants.STR_YES +"' isTraceable " - + ",t.SterilingMode " + sqlSelect_UrgentLevel + + ",t.SterilingMode " + sqlSelect_UrgentLevel + sqlSelect_SpellingSql + "from tousseinstance t"+ sqlJoin_UrgentLevel + orgUnitJoinSql + ", barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"') " +" and t.reviewBasket_id "+ reviewedBasketIdsSql +" and t.reviewBasket_id is not null " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + queryDiscardSql; logger.debug("sql:" + sql2); - buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql2, enableUrgentFunction); + buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql2, enableUrgentFunction,openGoodsSearch); //3、自定义器械包 String sql3 = "select t.reviewBasket_id,td.id tdId," + " ou.name depart,td.tousseType, td.includeImplant, t.tousseName, b.barcode," + " t.proxyDisinfection_Id,t.isUrgentTousse , '"+ Constants.STR_YES +"' isTraceable " - + ",t.SterilingMode " + sqlSelect_UrgentLevel + + ",t.SterilingMode " + sqlSelect_UrgentLevel + sqlSelect_SpellingSql + "from tousseinstance t" + sqlJoin_UrgentLevel + orgUnitJoinSql + ", barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"') " +" and t.reviewBasket_id "+ reviewedBasketIdsSql +" and t.reviewBasket_id is not null " + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + queryDiscardSql; logger.debug("sql:" + sql3); - buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql3, enableUrgentFunction); + buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql3, enableUrgentFunction,openGoodsSearch); //4、外部代理灭菌 String sql4 = "select t.reviewBasket_id,tdAncestor.id tdId," + " ou.name depart, td.tousseType, td.includeImplant, t.tousseName, b.barcode," + " t.proxyDisinfection_Id,t.isUrgentTousse,tdAncestor.isTraceable,t.SterilingMode " - + sqlSelect_UrgentLevel + + sqlSelect_UrgentLevel+sqlSelect_SpellingSql + "from tousseinstance t" + sqlJoin_UrgentLevel + orgUnitJoinSql + " , barcodedevice b , TousseDefinition td , TousseDefinition tdAncestor " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.ancestorID=tdAncestor.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') " @@ -1786,7 +1801,7 @@ + ") " + queryDiscardSql; logger.debug("sql:" + sql4); - buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql4, enableUrgentFunction); + buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql4, enableUrgentFunction,openGoodsSearch); return vos; } @Override @@ -1964,7 +1979,7 @@ * @param vos * @param sql */ - private void buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(List vos, String sql, boolean enableUrgentFunction){ + private void buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(List vos, String sql, boolean enableUrgentFunction, boolean openGoodsSearch){ ResultSet rs = null; try { rs = objectDao.executeSql(sql); @@ -1997,6 +2012,10 @@ urgentLevelVo.setGrade(rs.getInt("ulGrade")); vo.setUrgentLevelInfo(urgentLevelVo); } + if(openGoodsSearch){ + vo.setSpelling(rs.getString("spelling")); + vo.setWbCode(rs.getString("wbCode")); + } vos.add(vo); } } catch (SQLException e) { Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r36676 -r36702 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 36676) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 36702) @@ -6156,12 +6156,26 @@ } //1、没入篮筐的器械包 Long startTime = new Date().getTime(); - List tousseInstanceListWithoutReviewedBasket = getTousseSimpleVOsBySterilizationRecord(sterilizationRecord , null); + boolean openGoodsSearch = false; + String extraActionItemsOfItemsToBeSterilizedStr = CssdUtils.getSystemSetConfigByName("extraActionItemsOfItemsToBeSterilized"); + if(StringUtils.isNotBlank(extraActionItemsOfItemsToBeSterilizedStr)){ + JSONArray extraActionItemsOfItemsToBeSterilizedArr = JSONArray.fromObject(extraActionItemsOfItemsToBeSterilizedStr); + if(CollectionUtils.isNotEmpty(extraActionItemsOfItemsToBeSterilizedArr)){ + for (int i = 0; i < extraActionItemsOfItemsToBeSterilizedArr.size(); i++) { + String item = extraActionItemsOfItemsToBeSterilizedArr.getString(i); + if("goodsSearch".equals(item)){ + openGoodsSearch = true; + break; + } + } + } + } + List tousseInstanceListWithoutReviewedBasket = getTousseSimpleVOsBySterilizationRecord(sterilizationRecord , null, openGoodsSearch); Long afterWithoutReviewedBasket = new Date().getTime(); // 容器 List reviewedBasketList = sterilizationRecord.getReviewedBaskets(); //2、查询灭菌记录下篮筐内所有的包 - List tousseAllForReviewedBasket = tousseInstanceManager.getAllTousseInstanceVOsInReviewedBasket(reviewedBasketList,true); + List tousseAllForReviewedBasket = tousseInstanceManager.getAllTousseInstanceVOsInReviewedBasket(reviewedBasketList,true,openGoodsSearch); Long afterInReviewedBasket = new Date().getTime(); JSONArray jsonArray = new JSONArray(); Set tdIdIsTraceable = getTdIdIsTraceable(reviewedBasketList, tousseAllForReviewedBasket);// 没入篮筐的不追溯的器械包id @@ -6212,6 +6226,10 @@ obj.put("sterilingMode", tousse.getSterilingMode()); obj.put("scanAmount", itemDefinition.getScanAmount()); obj.put("position", tousse.getSterilizerPosition()); + if(openGoodsSearch){ + obj.put("wbCode", tousse.getWbCode()); + obj.put("spelling", tousse.getSpelling()); + } //覆盖 bMap.put(key, obj); } @@ -6238,6 +6256,10 @@ jsonObj.put("urgentGrade", urgentGrade);//加急等级 jsonObj.put("maxUrgentGrade", urgentGrade);//最高加急等级,用于排序 jsonObj.put("scanAmount", itemDefinition.getScanAmount()); + if(openGoodsSearch){ + jsonObj.put("wbCode", tousse.getWbCode()); + jsonObj.put("spelling", tousse.getSpelling()); + } bMap.put(tousse.getBarcode(), jsonObj); } } @@ -6325,6 +6347,10 @@ //加急信息 obj.put("urgentLevel", urgentLevelInfo);//加急信息 obj.put("urgentGrade", urgentGrade);//加急等级 + if(openGoodsSearch){ + obj.put("wbCode", tousseSimpleVO.getWbCode()); + obj.put("spelling", tousseSimpleVO.getSpelling()); + } cMap.put(tousseName, obj); } }else{ @@ -6346,6 +6372,10 @@ //加急信息 tousseObj.put("urgentLevel", urgentLevelInfo);//加急信息 tousseObj.put("urgentGrade", urgentGrade);//加急等级 + if(openGoodsSearch){ + jsonObj.put("wbCode", tousseSimpleVO.getWbCode()); + jsonObj.put("spelling", tousseSimpleVO.getSpelling()); + } cMap.put(tousseSimpleVO.getBarcode(), tousseObj); } } @@ -6496,7 +6526,7 @@ @Override public JSONArray loadSterilizationGoodsForBootStrap(SterilizationRecord sterilizationRecord) { // 没入篮筐的器械包 - List tousseInstanceListWithoutReviewedBasket = getTousseSimpleVOsBySterilizationRecord(sterilizationRecord , null); + List tousseInstanceListWithoutReviewedBasket = getTousseSimpleVOsBySterilizationRecord(sterilizationRecord , null, true); // 容器 List reviewedBasketList = sterilizationRecord.getReviewedBaskets(); JSONArray jsonArray = new JSONArray(); @@ -6553,7 +6583,7 @@ } //查询灭菌记录下篮筐内所有的包 - List tousseAllForReviewedBasket = tousseInstanceManager.getAllTousseInstanceVOsInReviewedBasket(reviewedBasketList,true); + List tousseAllForReviewedBasket = tousseInstanceManager.getAllTousseInstanceVOsInReviewedBasket(reviewedBasketList,true,true); //循环每一个篮筐 for (ReviewedBasket reviewedBasket : reviewedBasketList) { Container container = reviewedBasket.getContainer(); @@ -6632,30 +6662,45 @@ * @param reviewedBasket * @return */ - private List getTousseSimpleVOsBySterilizationRecord(SterilizationRecord sterilizationRecord , ReviewedBasket reviewedBasket){ + private List getTousseSimpleVOsBySterilizationRecord(SterilizationRecord sterilizationRecord , ReviewedBasket reviewedBasket, boolean openGoodsSearch){ List list = null; StringBuffer queryTousseSql = new StringBuffer(); boolean enableUrgentFunction = CssdUtils.getSystemSetConfigByNameBool("enableUrgentFunction", false); //关联加急对象的sql语句 - String sqlJoin_UrgentLevel = String.format(" left join %s ul on po.urgentLevel_id = ul.id ", UrgentLevel.class.getSimpleName()); - String sqlSelect_UrgentLevel = String.format(" ,ul.colorCode ulColorCode ,ul.grade ulGrade, ul.name ulName , ul.id ulId "); + String sqlJoin_UrgentLevel = null; + String sqlSelect_UrgentLevel = null; + if(enableUrgentFunction){ + sqlJoin_UrgentLevel = String.format(" left join %s ul on po.urgentLevel_id = ul.id ", UrgentLevel.class.getSimpleName()); + sqlSelect_UrgentLevel = String.format(" ,ul.colorCode ulColorCode ,ul.grade ulGrade, ul.name ulName , ul.id ulId "); + }else{ + sqlJoin_UrgentLevel = ""; + sqlSelect_UrgentLevel = ""; + } //拼接sql语句 + String sqlSelect_SpellingSql = null; + if(openGoodsSearch){ + sqlSelect_SpellingSql = ",td.spelling,td.wbCode "; + }else{ + sqlSelect_SpellingSql = ""; + } if(reviewedBasket != null && DatabaseUtil.isPoIdValid(reviewedBasket.getId())){ queryTousseSql.append("select td.id tdId, td.includeImplant, b.barcode,po.tousseName,po.depart,(case when tdAncestor.isTraceable ='" + TousseDefinition.STR_YES + "' then po.sterilingMode else s.sterilizationMode end) sterilingMode,tdAncestor.isTraceable,po.isUrgentTousse,po.sterilingType "); queryTousseSql.append(sqlSelect_UrgentLevel); queryTousseSql.append(",po.proxyDisinfection_id,tdAncestor.tousseType,tdAncestor.isForeignTousse,po.proxyDisinfection_id, tdAncestor.scanAmount, po.sterilizerPosition " - + "from " + TousseInstance.class.getSimpleName() + " po " + + sqlSelect_SpellingSql + + "from " + TousseInstance.class.getSimpleName() + " po " + sqlJoin_UrgentLevel + "join " + BarcodeDevice.class.getSimpleName() + " b on po.id=b.id " + "join "+ TousseDefinition.class.getSimpleName() +" td on po.tousseDefinition_id=td.id " + "join "+ TousseDefinition.class.getSimpleName() +" tdAncestor on td.ancestorId=tdAncestor.id " + "left join " + Sterilisation.class.getSimpleName() + " s on s.sterilisation = tdAncestor.sterilingMethod " + "where po.reviewBasket_id=" + reviewedBasket.getId()); - return getTousseVoDataFromDbForGetTousseSimpleVOsBySterilizationRecord(queryTousseSql.toString(),enableUrgentFunction); + return getTousseVoDataFromDbForGetTousseSimpleVOsBySterilizationRecord(queryTousseSql.toString(),enableUrgentFunction,openGoodsSearch); }else if(sterilizationRecord != null && DatabaseUtil.isPoIdValid(sterilizationRecord.getId())){ queryTousseSql.append("select td.id tdId, td.includeImplant, b.barcode,po.tousseName,po.depart,(case when tdAncestor.isTraceable ='" + TousseDefinition.STR_YES + "' then po.sterilingMode else s.sterilizationMode end) sterilingMode,tdAncestor.isTraceable,po.isUrgentTousse,po.sterilingType "); queryTousseSql.append(sqlSelect_UrgentLevel); queryTousseSql.append(",po.proxyDisinfection_id,tdAncestor.tousseType,tdAncestor.isForeignTousse,po.proxyDisinfection_id, tdAncestor.scanAmount, po.sterilizerPosition " + + sqlSelect_SpellingSql + "from " + TousseInstance.class.getSimpleName() + " po " + sqlJoin_UrgentLevel + "join " + BarcodeDevice.class.getSimpleName() + " b on po.id=b.id " @@ -6664,11 +6709,11 @@ + "join sterilization_tousseInstance st on st.tousseInstance_id=po.id " + "left join " + Sterilisation.class.getSimpleName() + " s on s.sterilisation = tdAncestor.sterilingMethod " + "where st.sterilizationRecord_id=" + sterilizationRecord.getId()); - return getTousseVoDataFromDbForGetTousseSimpleVOsBySterilizationRecord(queryTousseSql.toString(),enableUrgentFunction); + return getTousseVoDataFromDbForGetTousseSimpleVOsBySterilizationRecord(queryTousseSql.toString(),enableUrgentFunction,openGoodsSearch); } return list; } - private List getTousseVoDataFromDbForGetTousseSimpleVOsBySterilizationRecord(String queryTousseSql, boolean enableUrgentFunction){ + private List getTousseVoDataFromDbForGetTousseSimpleVOsBySterilizationRecord(String queryTousseSql, boolean enableUrgentFunction, boolean openGoodsSearch){ List list = new ArrayList(); TousseSimpleVO vo = null; ResultSet rs = null; @@ -6694,16 +6739,21 @@ vo.setSterilizerPosition(rs.getString("sterilizerPosition")); if(enableUrgentFunction){ try{ - if(DatabaseUtil.isPoIdValid(rs.getLong("ulId"))){ + Long ulId = rs.getLong("ulId"); + if(DatabaseUtil.isPoIdValid(ulId)){ UrgentLevelVo urgentLevelVo = new UrgentLevelVo(); - urgentLevelVo.setId(rs.getLong("ulId")); + urgentLevelVo.setId(ulId); urgentLevelVo.setColorCode(rs.getString("ulColorCode")); urgentLevelVo.setName(rs.getString("ulName")); urgentLevelVo.setGrade(rs.getInt("ulGrade")); vo.setUrgentLevelInfo(urgentLevelVo); } }catch(Exception e){} } + if(openGoodsSearch){ + vo.setWbCode(rs.getString("wbCode")); + vo.setSpelling(rs.getString("spelling")); + } list.add(vo); } } catch (Exception e) { Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r36652 -r36702 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 36652) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 36702) @@ -957,7 +957,7 @@ * @param id * @param queryDiscard 查询已废弃的包 */ - public List getAllTousseInstanceVOsInReviewedBasket(List reviewedBasketList, boolean queryDiscard); + public List getAllTousseInstanceVOsInReviewedBasket(List reviewedBasketList, boolean queryDiscard, boolean openGoodsSearch); /** * 设置器械包的灭菌方式。需要先设置包实例的灭菌程序,方法内使用包实例当前的灭菌程序进行灭菌方式的关联查询 * @param packingManagerImpl TODO