Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r27414 -r27597 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 27414) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 27597) @@ -987,11 +987,28 @@ * 获取本供应室今天审核的未入筐器械包. */ public void getTodayPendingSterilizationTousseAndBasket() { - String status = StrutsParamUtils.getPraramValue("status", ""); - String sterilizerNameTemp = StrutsParamUtils.getPraramValue("sterilizerNameTemp", ""); - String ownGroupTemp = StrutsParamUtils.getPraramValue("ownGroupTemp", ""); - String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); - StrutsResponseUtils.output(tousseInstanceManager.getTodayPendingSterilizationTousseAndBasket(status,sterilizerNameTemp,ownGroupTemp,taskGroup)); + try { + String status = StrutsParamUtils.getPraramValue("status", ""); + String sterilizerNameTemp = StrutsParamUtils.getPraramValue("sterilizerNameTemp", ""); + String ownGroupTemp = StrutsParamUtils.getPraramValue("ownGroupTemp", ""); + String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); + String startTime = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS_SSS.format(new Date()); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_STERILIZATION, Log.TYPE_QUERY, String.format("%s开始查询今天审核的待灭菌列表数据", startTime)); + JSONArray arr = tousseInstanceManager.getTodayPendingSterilizationTousseAndBasket(status,sterilizerNameTemp,ownGroupTemp,taskGroup); + String msg = null; + if(arr == null){ + msg = "null"; + }else if(arr != null && arr.size() > 100){ + msg = arr.toString().substring(0, 100); + }else{ + msg = arr.toString(); + } + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_STERILIZATION, Log.TYPE_QUERY, String.format("%s结束查询今天审核的待灭菌列表数据(返回数据:%s)", Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS_SSS.format(new Date()) + ,msg)); + StrutsResponseUtils.output(arr); + } catch (Exception e) { + e.printStackTrace(); + } } /*** Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r27544 -r27597 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 27544) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 27597) @@ -163,9 +163,10 @@ * 获取指定供应室今天审核的未入筐器械包.(只针对灭菌记录页面,调用这个方法) * @param orgUnitCode * @param enableUrgentFunction 是否开启加急 + * @param extraOrder 排序语句 * @return */ - public List getTodayReviewedTousseInsWithOutBasketBySterilization(String orgUnitCode, boolean enableUrgentFunction); + public List getTodayReviewedTousseInsWithOutBasketBySterilization(String orgUnitCode, boolean enableUrgentFunction, String extraOrder); /** * 根据时间段及科室编码查询所有已审核并且还未入审核篮筐的器械包实例(从结果集的下标为start开始取limit个). Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r27544 -r27597 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 27544) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 27597) @@ -5535,10 +5535,8 @@ //2、 当天审核的,未入筐的器械包 //List toussesOutsideBasketOfToday = getTodayReviewedTousseInstanceWithOutBasket(orgUnitCoding); //当天审核的,未入筐的器械包(新) :包括固定条码汇总 - List toussesOutsideBasketOfToday = getTodayReviewedTousseInsWithOutBasketBySterilization(orgUnitCoding, enableUrgentFunction); - if(StringUtils.isNotBlank(waitSterilizedTousseInstanceDefaultSortOrder)){ - Collections.sort(toussesOutsideBasketOfToday); - } + String extraOrder = getExtraOrderSqlBySystemSetConfig(waitSterilizedTousseInstanceDefaultSortOrder); + List toussesOutsideBasketOfToday = getTodayReviewedTousseInsWithOutBasketBySterilization(orgUnitCoding, enableUrgentFunction, extraOrder); for (TousseSimpleVO tousseOutsideBasket : toussesOutsideBasketOfToday) { //器械包的灭菌程序,属于此灭菌分组或者此灭菌炉(或者器械包的灭菌程序为“无”)才会显示(没选灭菌炉就按灭菌分组过滤) if (sterilingTypeMap != null && !Constants.HAS_TYPE_NO.equals(tousseOutsideBasket.getSterilingType())) { @@ -5601,12 +5599,31 @@ return jsonArray; } catch (Exception e) { e.printStackTrace(); - logger.error(e.getMessage()); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_STERILIZATION, Log.TYPE_QUERY, String.format("查询今天审核的待灭菌列表数据异常:%s", e.getMessage())); } return null; } - /** + * 通过waitSterilizedTousseInstanceDefaultSortOrder的值获取排序的sql + * @param waitSterilizedTousseInstanceDefaultSortOrder + * @return 类似depart asc + */ + private String getExtraOrderSqlBySystemSetConfig(String waitSterilizedTousseInstanceDefaultSortOrder){ + //灭菌管理的待灭菌器械包默认排序方式:配置格式为:{"排序字段1","asc(升序,空也为升序)或desc(降序)"}...,{"排序字段3","asc(升序)或desc(降序)"} + String extraOrder = ""; + if(StringUtils.isNotBlank(waitSterilizedTousseInstanceDefaultSortOrder)){ + JSONObject jsonObject = JSONObject.fromObject(waitSterilizedTousseInstanceDefaultSortOrder); + Iterator keys = jsonObject.keys(); + while (keys.hasNext()) { + String columnName = keys.next(); + String order = jsonObject.optString(columnName); + extraOrder += "," + columnName + " " + order; + } + extraOrder = extraOrder.replaceFirst(",", ""); + } + return extraOrder; + } + /** * 根据固定条码获取包实例的参数 * @param fixedBarcode 固定条码 * @param barcodes 页面上已经扫描过的条码,用逗号分割 @@ -6401,8 +6418,8 @@ @Override public List getTodayReviewedTousseInsWithOutBasketBySterilization( - String orgUnitCode, boolean enableUrgentFunction) { - ResultSet rs = objectDao.executeSql(getToDayReviewedTousseInsSql(orgUnitCode, enableUrgentFunction)); + String orgUnitCode, boolean enableUrgentFunction ,String extraOrder) { + ResultSet rs = objectDao.executeSql(getToDayReviewedTousseInsSql(orgUnitCode, enableUrgentFunction, extraOrder)); List tousseList = new ArrayList(); try { if(enableUrgentFunction){ @@ -6455,9 +6472,10 @@ * 对于已录入代理灭菌单的包,只按代理灭菌单的所属科室为当前科室进行过滤 * @param orgUnitCode * @param enableUrgentFunction 是否开启加急 + * @param extraOrder 排序语句 * @return */ - private String getToDayReviewedTousseInsSql(String orgUnitCode, boolean enableUrgentFunction){ + private String getToDayReviewedTousseInsSql(String orgUnitCode, boolean enableUrgentFunction, String extraOrder){ String todayStr = DateTools.getCurrentDayByFormat("yyyy-MM-dd"); int listDisplayOfItemsToBeSterilized = CssdUtils.getSystemSetConfigByNameInt("listDisplayOfItemsToBeSterilized", 1); String dateSql = ""; @@ -6511,6 +6529,9 @@ + dateSql + " and ti.reviewBasket_id is null and (pd.id is null and ti.orgunitcoding='"+orgUnitCode+"' or pd.id is not null and pd.handleDepartCoding='"+orgUnitCode+"') group by tdancestor.id,tdancestor.name" + "))t"; + if(StringUtils.isNotBlank(extraOrder)){ + sql += " order by " + extraOrder; + } return sql; }