Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r20716 -r20801 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 20716) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 20801) @@ -764,8 +764,9 @@ SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); List vos = new ArrayList(); String currentOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); - //普通器械包、消毒物品、敷料包 - String sql = " select distinct t.id id, t.depart depart, t.departCoding departCoding, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + + //1、普通器械包、消毒物品、敷料包 + String sql1 = "select distinct t.id id, t.depart depart, t.departCoding departCoding, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , cssdHandleTousses tt , TousseDefinition td " + "where t.id = b.id and tt.tousseDefinitionId=td.ancestorID and t.tousseDefinition_id=td.id and t.reviewBasket_id =" @@ -777,68 +778,86 @@ + "(t.proxyDisinfection_id is null and t.orgUnitCoding='"+currentOrgUnitCode+"' and tt.orgUnitCode='"+currentOrgUnitCode+"') or " + "(t.proxyDisinfection_id is not null and t.proxyDisinfection_id in (select ip.id from invoicePlan ip where ip.handleDepartCoding='"+currentOrgUnitCode+"'))" + ")" - + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; + + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "' " + + (StringUtils.isNotBlank(taskGroup) ? String.format(" and tt.taskGroup = '%s' ", taskGroup) : ""); + buildTousseSimpleVOs(vos, sql1); + if(StringUtils.isNotBlank(taskGroup)){ - sql += String.format(" and tt.taskGroup = '%s'", taskGroup); - - //外来器械包、外来器械拆分小包 + //2、外来器械包、外来器械拆分小包 if(taskGroup.equals(supplyRoomConfig.getDefalutTaskGroup())){ - sql += " union all select t.id id, t.depart depart, t.departCoding departCoding, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + String sql2 = "select t.id id, t.depart depart, t.departCoding departCoding, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, 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 =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; + buildTousseSimpleVOs(vos, sql2); } - //自定义器械包 + + //3、自定义器械包 if(taskGroup.equals(supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ - sql += " union all select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + String sql3 = "select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, 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 =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; + buildTousseSimpleVOs(vos, sql3); } - //外部代理灭菌 - sql += " union all select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + + //4、外部代理灭菌 + String sql4 = "select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; + buildTousseSimpleVOs(vos, sql4); }else{ - //外来器械包、外来器械拆分小包 - sql += " union all select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + //2、外来器械包、外来器械拆分小包 + String sql2 = "select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, 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 =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; - //自定义器械包 - sql += " union all select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + buildTousseSimpleVOs(vos, sql2); + + //3、自定义器械包 + String sql3 = "select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, 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 =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; - //外部代理灭菌 - sql += " union all select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + buildTousseSimpleVOs(vos, sql3); + + //4、外部代理灭菌 + String sql4 = "select t.id id, t.depart depart, t.departCoding departCoding,t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; + buildTousseSimpleVOs(vos, sql4); } - + return vos; + } + + /** + * 构建TousseSimpleVO集合. + * @param vos + * @param sql + */ + private void buildTousseSimpleVOs(List vos, String sql) { ResultSet rs = objectDao.executeSql(sql); - try { while(rs.next()){ TousseSimpleVO vo = new TousseSimpleVO(); @@ -875,7 +894,6 @@ }finally { DatabaseUtil.closeResultSetAndStatement(rs); } - return vos; } /**