Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r40302 -r40808 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 40302) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 40808) @@ -857,6 +857,7 @@ String field = StrutsParamUtils.getPraramValue("field", ""); String direction = StrutsParamUtils.getPraramValue("direction", ""); String sterilingMode = StrutsParamUtils.getPraramValue("sterilingMode", ""); + String taskGroups = StrutsParamUtils.getPraramValue("taskGroups", ""); if(StringUtils.equals(field, "objBarcode")){ field = "barcode"; } @@ -868,11 +869,11 @@ int count = 0; boolean enableUrgentFunction = ConfigUtils.getSystemSetConfigByNameBool("enableUrgentFunction"); try { - count = tousseInstanceManager.countReviewedTousseInstanceWithOutBasketAmount(acegiHelper.getCurrentOrgUnitCode(),searchKeyWord,sterilingMode); + count = tousseInstanceManager.countReviewedTousseInstanceWithOutBasketAmount(acegiHelper.getCurrentOrgUnitCode(),searchKeyWord,sterilingMode, taskGroups); if(count > 0){ //采用原生sql分页 toussesList = tousseInstanceManager. - getAllReviewedTousseInstanceWithOutBasketDate(acegiHelper.getCurrentOrgUnitCode(),Integer.parseInt(start),Integer.parseInt(limit),searchKeyWord,field,direction,sterilingMode,enableUrgentFunction); + getAllReviewedTousseInstanceWithOutBasketDate(acegiHelper.getCurrentOrgUnitCode(),Integer.parseInt(start),Integer.parseInt(limit),searchKeyWord,field,direction,sterilingMode,enableUrgentFunction, taskGroups); } } catch (Exception e) { e.printStackTrace(); @@ -888,6 +889,7 @@ jsonObject.put("tousseName", tousseInstanceVo.getTousseName()); jsonObject.put("objBarcode", tousseInstanceVo.getBarcode()); jsonObject.put("amount", tousseInstanceVo.getAmount()); + jsonObject.put("taskGroup", tousseInstanceVo.getTaskGroup()); jsonObject.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseInstanceVo.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); jsonObject.put("sterilingMode", tousseInstanceVo.getSterilingMode()); //加急信息 Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r40806 -r40808 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 40806) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 40808) @@ -1401,7 +1401,7 @@ * @return 条数 */ @Override - public int countReviewedTousseInstanceWithOutBasketAmount(String orgUnitCode,String searchKeyWord, String sterilingMode){ + public int countReviewedTousseInstanceWithOutBasketAmount(String orgUnitCode,String searchKeyWord, String sterilingMode, String taskGroups){ boolean isDepart=false; //搜索内容中是否包括科室名,格式为:'搜索内容|科室code' if(StringUtils.isNotBlank(searchKeyWord)){ @@ -1424,9 +1424,9 @@ + "or tdancestor.wbCode like '%" + searchKeyWord + "%') "; } if(dbConnection.isSqlServer() || dbConnection.isMySQLOrTiDB()){ - return objectDao.countBySql(getCountTousseInstanceWithOutBasketSqlBySqlServer(orgUnitCode, departSearchSql, keyWordSearchSql, sterilingMode)); + return objectDao.countBySql(getCountTousseInstanceWithOutBasketSqlBySqlServer(orgUnitCode, departSearchSql, keyWordSearchSql, sterilingMode, taskGroups)); }else if(dbConnection.isOracle()){ - return objectDao.countBySql(getCountTousseInstanceWithOutBasketSqlByOracle(orgUnitCode, departSearchSql, keyWordSearchSql, sterilingMode)); + return objectDao.countBySql(getCountTousseInstanceWithOutBasketSqlByOracle(orgUnitCode, departSearchSql, keyWordSearchSql, sterilingMode, taskGroups)); } return 0; } @@ -1436,7 +1436,7 @@ * @param orgUnitCode 当前登陆科室 * @return */ - private String getCountTousseInstanceWithOutBasketSqlBySqlServer(String orgUnitCode,String departSearchSql,String keyWordSearchSql, String sterilingMode){ + private String getCountTousseInstanceWithOutBasketSqlBySqlServer(String orgUnitCode,String departSearchSql,String keyWordSearchSql, String sterilingMode, String taskGroups){ // 根据灭菌方式过滤SZYK-5 String sterilingModeSql = ""; String sterilingModeAncestorSql = ""; @@ -1457,6 +1457,7 @@ + "TousseInstance ti join toussedefinition td on ti.tousseDefinition_id=td.id " + "join toussedefinition tdancestor on td.ancestorID=tdancestor.id where ti.comboTousseInstanceId is null " + sterilingModeSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + "and tdancestor.isTraceable='是' "+keyWordSearchSql+" and ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null and " + "((ti.proxyDisinfection_id is null and ti.orgUnitCoding='"+orgUnitCode+"') " + "or ( exists (select 1 from InvoicePlan ip where ti.proxyDisinfection_id=ip.id and ip.handleDepartCoding='"+orgUnitCode+"')))) " @@ -1468,6 +1469,7 @@ +keyWordSearchSql +" and ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null " + sterilingModeAncestorSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + "and ((ti.proxyDisinfection_id is null and ti.orgUnitCoding='"+orgUnitCode+"')" + " or ( exists (select 1 from InvoicePlan ip where ti.proxyDisinfection_id=ip.id and ip.handleDepartCoding='"+orgUnitCode+"')))group by tdancestor.id)) t"; } @@ -1477,7 +1479,7 @@ * @param orgUnitCode 当前登陆科室 * @return */ - private String getCountTousseInstanceWithOutBasketSqlByOracle(String orgUnitCode,String departSearchSql,String keyWordSearchSql, String sterilingMode){ + private String getCountTousseInstanceWithOutBasketSqlByOracle(String orgUnitCode,String departSearchSql,String keyWordSearchSql, String sterilingMode, String taskGroups){ // 根据灭菌方式过滤SZYK-5 String sterilingModeSql = ""; String sterilingModeAncestorSql = ""; @@ -1497,6 +1499,7 @@ + "join toussedefinition td on ti.tousseDefinition_id=td.id " + "join toussedefinition tdancestor on td.ancestorID=tdancestor.id where ti.comboTousseInstanceId is null " + sterilingModeSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + " and tdancestor.isTraceable='是' "+keyWordSearchSql+" and ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null " + "and ((ti.proxyDisinfection_id is null and ti.orgUnitCoding='"+orgUnitCode+"') or (ti.proxyDisinfection_id " + "is not null and exists (select 1 from InvoicePlan ip " @@ -1511,6 +1514,7 @@ + " where 1=1 and ti.comboTousseInstanceId is null and " + "tdancestor.isTraceable='否'"+keyWordSearchSql+" and ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null " + sterilingModeAncestorSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + "and ((ti.proxyDisinfection_id is null and ti.orgUnitCoding='"+orgUnitCode+"') or " + "( exists " + "(select 1 from InvoicePlan ip where ti.proxyDisinfection_id=ip.id and ip.handleDepartCoding='"+orgUnitCode+"'))" @@ -1527,7 +1531,7 @@ * @param sterilingMode 灭菌方式 * @return */ - private String getTousseInstanceWithOutBasketByOracle(int start,int limit,String orgUnitCoding,String departSearchSql,String keyWordSearchSql,String orderSql, String sterilingMode){ + private String getTousseInstanceWithOutBasketByOracle(int start,int limit,String orgUnitCoding,String departSearchSql,String keyWordSearchSql,String orderSql, String sterilingMode, String taskGroups){ int amount = start+limit; //加急信息(不追溯器械包暂不考虑加急) String urgentLevel_SelectSql = " ,ti.isUrgentTousse,ul.id ulId,ul.grade ulGrade ,ul.name ulName,ul.colorCode ulColorCode "; @@ -1552,6 +1556,7 @@ +urgentLevel_JoinSql + " where ti.comboTousseInstanceId is null and tdancestor.isTraceable='是' "+keyWordSearchSql+" " + sterilingModeSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + "and ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null and ((ti.proxyDisinfection_id is null and ti.orgUnitCoding='"+orgUnitCoding+"') " + "or ( exists " + "(select 1 from InvoicePlan ip where ti.proxyDisinfection_id=ip.id and ip.handleDepartCoding='"+orgUnitCoding+"')) ) ) " @@ -1567,6 +1572,7 @@ + "left join Sterilisation s on s.sterilisation = tdancestor.sterilingMethod " + " where 1=1 and ti.comboTousseInstanceId is null and tdancestor.isTraceable='否' "+keyWordSearchSql+" " + sterilingModeAncestorSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + "and ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null and ((ti.proxyDisinfection_id is null and ti.orgUnitCoding='"+orgUnitCoding+"') " + "or (exists " + "(select 1 from InvoicePlan ip where ti.proxyDisinfection_id=ip.id and ip.handleDepartCoding='"+orgUnitCoding+"')))group by tdancestor.id,tdancestor.name,s.sterilizationMode) " + orderSql + " ) " @@ -1582,7 +1588,7 @@ * @param sterilingMode 灭菌方式 * @return */ - private String getTousseInstanceWithOutBasketBySqlServer(int start,int limit,String orgUnitCoding,String departSearchSql,String keyWordSearchSql,String orderSql, String sterilingMode, boolean enableUrgentFunction){ + private String getTousseInstanceWithOutBasketBySqlServer(int start,int limit,String orgUnitCoding,String departSearchSql,String keyWordSearchSql,String orderSql, String sterilingMode, boolean enableUrgentFunction, String taskGroups){ int amount = start+limit; //加急信息(不追溯器械包暂不考虑加急) @@ -1613,13 +1619,14 @@ + " from " + "((select '是' isTraceable,null tdAncestorId,ti.id,(select max(ou.name) from OrgUnit ou where ou.orgUnitCoding=ti.departCoding) depart,ti.tousseName,b.barcode,ti.reviewTime,ti.sterilingMode,1 amount,ti.isUrgentTousse " + urgentLevel_SelectSql//加急信息 - + "from TousseInstance ti " + + " from TousseInstance ti " + " join barcodeDevice b on b.id=ti.id join toussedefinition td on ti.tousseDefinition_id=td.id " + " join toussedefinition tdancestor on td.ancestorID=tdancestor.id " + urgentLevel_JoinSql + " where tdancestor.isTraceable='是' "+keyWordSearchSql+" and " + "ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null " + sterilingModeSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + "and ((ti.proxyDisinfection_id is null and ti.orgUnitCoding='"+orgUnitCoding+"') " + "or ( exists (select 1 from InvoicePlan ip where ti.proxyDisinfection_id=ip.id and ip.handleDepartCoding='"+orgUnitCoding+"'))))" @@ -1635,6 +1642,7 @@ + " left join Sterilisation s on s.sterilisation = tdancestor.sterilingMethod " + " where 1=1 and tdancestor.isTraceable='否' "+keyWordSearchSql+" " + sterilingModeAncestorSql + + (StringUtils.isNotBlank(taskGroups)?SqlUtils.getInStringListSql("tdancestor.taskGroup", SqlUtils.splitStringToSet(taskGroups, Constants.IDS_SEPARATOR)):"") + "and ti.status='"+TousseInstance.STATUS_REVIEWED+"' and ti.comboTousseInstanceId is null "+departSearchSql+" and ti.reviewBasket_id is null " + "and (ti.proxyDisinfection_id is null and ti.orgunitcoding='"+orgUnitCoding+"' " + "or exists " @@ -1648,7 +1656,7 @@ */ @Override public List getAllReviewedTousseInstanceWithOutBasketDate(String orgUnitCode,int start ,int limit,String searchKeyWord,String field,String direction,String sterilingMode - , boolean enableUrgentFunction){ + , boolean enableUrgentFunction, String taskGroups){ String findSql = ""; boolean isDepart=false; //搜索内容中是否包括科室名,格式为:'搜索内容|科室code' @@ -1686,9 +1694,9 @@ orderSql = " order by id asc "; } if(dbConnection.isSqlServer() || dbConnection.isMySQLOrTiDB()){ - findSql = getTousseInstanceWithOutBasketBySqlServer(start,limit,orgUnitCode,departSearchSql,keyWordSearchSql,orderSql,sterilingMode,enableUrgentFunction); + findSql = getTousseInstanceWithOutBasketBySqlServer(start,limit,orgUnitCode,departSearchSql,keyWordSearchSql,orderSql,sterilingMode,enableUrgentFunction, taskGroups); }else if(dbConnection.isOracle()){ - findSql = getTousseInstanceWithOutBasketByOracle(start,limit,orgUnitCode,departSearchSql,keyWordSearchSql,orderSql,sterilingMode); + findSql = getTousseInstanceWithOutBasketByOracle(start,limit,orgUnitCode,departSearchSql,keyWordSearchSql,orderSql,sterilingMode ,taskGroups); } ResultSet rs = null; List tousseList = new ArrayList(); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r40702 -r40808 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 40702) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 40808) @@ -44,7 +44,7 @@ */ public interface TousseInstanceManager extends BasePoManager { - public int countReviewedTousseInstanceWithOutBasketAmount(String OrgUnitCode,String searchKeyWord, String sterilingMode); + public int countReviewedTousseInstanceWithOutBasketAmount(String OrgUnitCode,String searchKeyWord, String sterilingMode, String taskGroups); /** * 把器械包实例转成{@link SterilizationTransitionItemVO}. @@ -955,11 +955,12 @@ * @param searchKeyWord * @param sterilingMode 灭菌方式 SZYK-5(不追溯的包取包定义的默认灭菌程序关联的灭菌方式;追溯的包直接取包实例上的灭菌方式) * @param enableUrgentFunction 开启加急 + * @param taskGroups 包定义任务组 ;分割 * @return */ public List getAllReviewedTousseInstanceWithOutBasketDate( String currentOrgUnitCode,int start, int limit, - String searchKeyWord,String field,String direction, String sterilingMode, boolean enableUrgentFunction); + String searchKeyWord,String field,String direction, String sterilingMode, boolean enableUrgentFunction, String taskGroups); /** * 根据器械包的包定义,设置包实例的状态。聚合包不包含在内 * @param tousseInstance 器械包实例,需要先设置好与包定义的关联关系,不然会抛出异常