Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManager.java =================================================================== diff -u -r27994 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManager.java (.../SupplyRoomControlManager.java) (revision 27994) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManager.java (.../SupplyRoomControlManager.java) (revision 28333) @@ -17,9 +17,10 @@ * @param tousseType * @param orgUnitCoding 供应室编码 * @param comboTousseType 物品类型 + * @param taskGroups 包定义任务组 * @return */ - public Map getRecyclingApplicationList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType); + public Map getRecyclingApplicationList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups); /** * * @param statDate @@ -31,9 +32,10 @@ * @param tousseType * @param orgUnitCoding 供应室编码 * @param comboTousseType 物品类型 + * @param taskGroups 包定义任务组 * @return */ - public Map getWashDisinfectionList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType); + public Map getWashDisinfectionList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups); /** * * @param statDate @@ -45,9 +47,10 @@ * @param tousseType * @param orgUnitCoding 供应室编码 * @param comboTousseType 物品类型 + * @param taskGroups 包定义任务组 * @return */ - public Map getReviewList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType); + public Map getReviewList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups); /** * * @param statDate @@ -59,9 +62,10 @@ * @param tousseType * @param orgUnitCoding 供应室编码 * @param comboTousseType 物品类型 + * @param taskGroups 包定义任务组 * @return */ - public Map getSterilizationList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType); + public Map getSterilizationList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups); /** * * @param statDate @@ -73,9 +77,10 @@ * @param tousseType * @param orgUnitCoding 供应室编码 * @param comboTousseType 物品类型 + * @param taskGroups 包定义任务组 * @return */ - public Map getPackingList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType); + public Map getPackingList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups); public Map getRecyclingList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType); /** @@ -89,9 +94,10 @@ * @param tousseType * @param orgUnitCoding 供应室编码 * @param comboTousseType 物品类型 + * @param taskGroups 包定义任务组 * @return */ - public Map getInvoicePlanList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType); + public Map getInvoicePlanList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName, String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups); /** * * @param departCoding @@ -148,8 +154,9 @@ * @param endDate * @param orgUnitCoding * @param comboTousseType 物品类型 + * @param taskGroups 包定义任务组 */ - public void createOperateData(HttpServletRequest request,OutputStream ops,String goodNmae,String tousseType,String department,String startDate,String endDate, String orgUnitCoding, String comboTousseType); + public void createOperateData(HttpServletRequest request,OutputStream ops,String goodNmae,String tousseType,String department,String startDate,String endDate, String orgUnitCoding, String comboTousseType, String taskGroups); /** * 查待清洗篮筐列表 * @param departCoding Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RaRoomControlHelper.java =================================================================== diff -u -r27994 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RaRoomControlHelper.java (.../RaRoomControlHelper.java) (revision 27994) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RaRoomControlHelper.java (.../RaRoomControlHelper.java) (revision 28333) @@ -124,8 +124,8 @@ if (StringUtils.isNotBlank(departCoding)) { whereSql += " and po.\"depart\" = '" + departCoding + "'"; } - if (StringUtils.isNotBlank(taskGroup) && !"全部".equals(taskGroup)) { - whereSql += String.format(" and po.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.taskGroup = '%s' and cht.orgUnitCode = '%s')", taskGroup, AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); + if (StringUtils.isNotBlank(taskGroup) && !taskGroup.contains("全部")) { + whereSql += String.format(" and po.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroup)); } String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(), "tousseType", "po"); if (StringUtils.isNotBlank(typeSql)) { Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/IpRoomControlHelper.java =================================================================== diff -u -r28056 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/IpRoomControlHelper.java (.../IpRoomControlHelper.java) (revision 28056) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/IpRoomControlHelper.java (.../IpRoomControlHelper.java) (revision 28333) @@ -76,9 +76,9 @@ if (StringUtils.isNotBlank(departCoding)) { whereSql += " and i.depart = '" + departCoding + "'"; } - if (StringUtils.isNotBlank(taskGroup) && !"全部".equals(taskGroup)) { + if (StringUtils.isNotBlank(taskGroup) && !taskGroup.contains("全部")) { whereSql += String.format(" and ip.id in (select distinct ip.id from invoicePlan ip join tousseItem ti on ip.id = ti.recyclingApplication_ID " + - " join CssdHandleTousses cht on ti.tousseDefinitionId = cht.tousseDefinitionId where cht.taskGroup = '%s' and cht.orgUnitCode = '%s')", taskGroup, AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); + " join CssdHandleTousses cht on ti.tousseDefinitionId = cht.tousseDefinitionId where cht.orgUnitCode = '%s' %s )", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroup)); } String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(), "tousseType", "po"); if (StringUtils.isNotBlank(typeSql)) { Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/WdRoomControlHelper.java =================================================================== diff -u -r27833 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/WdRoomControlHelper.java (.../WdRoomControlHelper.java) (revision 27833) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/WdRoomControlHelper.java (.../WdRoomControlHelper.java) (revision 28333) @@ -85,8 +85,8 @@ } } String taskGroupSql = ""; - if (StringUtils.isNotBlank(taskGroup) && !"全部".equals(taskGroup)) { - taskGroupSql = String.format(" and ci.toussedefinition_id in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.taskGroup = '%s' and cht.orgUnitCode = '%s')", taskGroup, AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); + if (StringUtils.isNotBlank(taskGroup) && !taskGroup.contains("全部")) { + taskGroupSql = String.format(" and ci.toussedefinition_id in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s )", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroup)); } String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(),"tousseType", "td"); if (StringUtils.isNotBlank(typeSql)){ Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl.java =================================================================== diff -u -r28082 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl.java (.../SupplyRoomControlManagerImpl.java) (revision 28082) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl.java (.../SupplyRoomControlManagerImpl.java) (revision 28333) @@ -27,6 +27,7 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; import com.forgon.databaseadapter.service.DateQueryAdapter; +import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; @@ -104,7 +105,7 @@ // 申请单 @Override @SuppressWarnings("unchecked") - public Map getRecyclingApplicationList(String startDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType) { + public Map getRecyclingApplicationList(String startDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups) { String startDateStr = dateQueryAdapter.dateAdapter(startDate); String endDateStr = dateQueryAdapter.dateAdapter(endDate); String invoicePlanOrgUnitCodingSql = ""; @@ -135,7 +136,7 @@ }else{ typeSql2 = ""; } - String sql = " select * from (select distinct ip.id as \"id\",po.tousseName as \"tousseName\",po.amount as \"amount\",ip.depart as \"depart\",po.recyclingAmount as \"recyclingAmount\",ip.applicationTime as \"applicationTime\",ip.submitTime as \"submitTime\",ip.printTime as \"printTime\",ip.applicant as \"applicant\",po.diposable as \"diposable\",rr.recyclingTime as \"recyclingTime\",po.basketName as \"basketName\" " + String sql = " select * from (select distinct ip.id as \"id\",po.tousseName as \"tousseName\",po.amount as \"amount\",ip.depart as \"depart\",po.recyclingAmount as \"recyclingAmount\",ip.applicationTime as \"applicationTime\",ip.submitTime as \"submitTime\",ip.printTime as \"printTime\",ip.applicant as \"applicant\",po.diposable as \"diposable\",rr.recyclingTime as \"recyclingTime\",po.basketName as \"basketName\",po.tousseDefinitionId as \"tousseDefinitionId\" " + " from TousseItem po join invoicePlan ip on po.RecyclingApplication_id = ip.id " +" left join RecyclingRecord rr on rr.recyclingApplication_id = ip.id " +" left join RecyclingItem ri on rr.id = ri.recyclingRecord_id and ri.tousseDefinitionId = po.toussedefinitionid " @@ -149,7 +150,7 @@ + invoicePlanOrgUnitCodingSql + typeSql + " union " - + " select distinct rr.recyclingApplication_id as id,ri.tousseName as tousseName,0 as amount,rr.depart as depart,ri.amount as recyclingAmount,rr.recyclingTime as applicationTime,rr.recyclingTime as submitTime,null as printTime,rr.operator as applicant,'否' as diposable,rr.recyclingTime as recyclingTime,null as basketName " + + " select distinct rr.recyclingApplication_id as id,ri.tousseName as tousseName,0 as amount,rr.depart as depart,ri.amount as recyclingAmount,rr.recyclingTime as applicationTime,rr.recyclingTime as submitTime,null as printTime,rr.operator as applicant,'否' as diposable,rr.recyclingTime as recyclingTime,null as basketName,ri.tousseDefinitionId as \"tousseDefinitionId\" " + " from RecyclingRecord rr join RecyclingItem ri on rr.id = ri.recyclingRecord_id " + " where rr.recyclingApplication_id is null " + recyclingRecordOrgUnitCodingSql @@ -164,6 +165,9 @@ if(StringUtils.isNotBlank(departCoding)){ sql += " and po.depart = '"+departCoding+"'"; } + if (StringUtils.isNotBlank(taskGroups) && !taskGroups.contains("全部")) { + sql += String.format(" and po.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroups)); + } String countSql = "select count(*),sum(temp.\"amount\"),sum(temp.\"recyclingAmount\") from (" + sql +" )temp "; @@ -199,7 +203,7 @@ */ @Override @SuppressWarnings("unchecked") - public Map getWashDisinfectionList(String startDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType){ + public Map getWashDisinfectionList(String startDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups){ String whereSqlForOrgUnitCoding = null; if(StringUtils.isNotBlank(orgUnitCoding)){ if(!orgUnitCoding.contains(",")){ @@ -214,7 +218,7 @@ String selectSql = "select wr.id as \"id\",ci.name as \"tousseName\",(ci.amount-case when numOfUnwashedStops is null then 0 else numOfUnwashedStops end) as \"amount\"," + "wr.startDate as \"startDate\",wr.endDate as \"endDate\","+ "wr.operator as \"operator\",wr.disinfectIdentification as \"disinfectIdentification\"," + - "wr.disinfectProgram as \"disinfectProgram\",cb.containerName as \"basketName\" " ; + "wr.disinfectProgram as \"disinfectProgram\",cb.containerName as \"basketName\",td.id as \"tousseDefinitionId\" " ; //如果科室条件不为空,则增加科室的过滤条件 String leftJoinSql = ""; String departSql = ""; @@ -274,7 +278,7 @@ selectSql = " union all select wr.id as \"id\",ci.name as \"tousseName\",(ci.amount-case when numOfUnwashedStops is null then 0 else numOfUnwashedStops end)*ci.materialAmount as \"amount\"," + "wr.startDate as \"startDate\",wr.endDate as \"endDate\"," + "wr.operator as \"operator\",wr.disinfectIdentification as \"disinfectIdentification\"," + - "wr.disinfectProgram as \"disinfectProgram\",cb.containerName as \"basketName\" "; + "wr.disinfectProgram as \"disinfectProgram\",cb.containerName as \"basketName\",td.id as \"tousseDefinitionId\" "; sql += selectSql + " from WashAndDisinfectRecord wr " + " inner join ClassifyBasket_WashRecord cw on cw.WashAndDisinfectRecord_ID = wr.id " @@ -292,11 +296,11 @@ + departSql + tousseNameSql + typeSql; - if(StringUtils.isBlank(typeSql) && StringUtils.isBlank(departSql) && StringUtils.isBlank(typeSql)){ + if(StringUtils.isBlank(typeSql) && StringUtils.isBlank(departSql) && StringUtils.isBlank(typeSql) && StringUtils.isBlank(taskGroups)){ selectSql = "select wr.id as \"id\",md.name as \"tousseName\",wrm.amount as \"amount\"," + "wr.startDate as \"startDate\",wr.endDate as \"endDate\"," + "wr.operator as \"operator\",wr.disinfectIdentification as \"disinfectIdentification\"," + - "wr.disinfectProgram as \"disinfectProgram\",'' as \"basketName\" "; + "wr.disinfectProgram as \"disinfectProgram\",'' as \"basketName\", 0 as \"tousseDefinitionId\" "; sql += " union all " + selectSql + " from WashAndDisinfectRecord wr, WashRecord_WashMaterial wm,WashAndDisinfectRecordMaterial wrm,MaterialDefinition md, OrgUnit org " @@ -308,6 +312,9 @@ + dateQueryAdapter.dateAdapter(endDate); } sql += ")t"; + if(StringUtils.isNotBlank(taskGroups) && !taskGroups.contains("全部")){ + sql += String.format(" and t.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroups)); + } countSql = countSql + " from (" + sql + ")temp"; sql += " order by \"endDate\" desc "; Integer [] amountArray = countBySql(countSql); @@ -345,7 +352,7 @@ //获取审核数量,器械包名称 @Override @SuppressWarnings("unchecked") - public Map getReviewList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType) { + public Map getReviewList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups) { String whereSqlForOrgUnitCoding = null; if(StringUtils.isNotBlank(orgUnitCoding)){ if(!orgUnitCoding.contains(",")){ @@ -379,6 +386,9 @@ if (StringUtils.isNotBlank(typeSql)) { whereSql += String.format(" and %s", typeSql); } + if(StringUtils.isNotBlank(taskGroups) && !taskGroups.contains("全部")){ + sql += String.format(" and po.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroups)); + } totalCountSql += whereSql; whereSql += " group by po.tousseName,po.reviewer,po.reviewTime,po.sterilizationBasket"; @@ -403,7 +413,7 @@ //获取灭菌记录的已灭菌器械包 @Override @SuppressWarnings("unchecked") - public Map getSterilizationList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType) { + public Map getSterilizationList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups) { String whereSqlForOrgUnitCoding = null; if(StringUtils.isNotBlank(orgUnitCoding)){ if(!orgUnitCoding.contains(",")){ @@ -416,10 +426,10 @@ } String joinedBasketSql = "select ti.tousseName as \"tousseName\",sr.id as \"id\",sr.sterilizationUser as \"operator\",s.name as \"disinfectIdentification\"," + "sr.frequency as \"frequency\",sr.sterilizationType as \"disinfectProgram\",sr.startDate as \"startDate\"," - + "sr.endDate as \"endDate\",c.containerName as \"basketName\" "; + + "sr.endDate as \"endDate\",c.containerName as \"basketName\",td.id as \"tousseDefinitionId\" "; String notJoinedBasketSql = "select ti.tousseName as \"tousseName\",sr.id as \"id\",sr.sterilizationUser as \"operator\",s.name as \"disinfectIdentification\"," + "sr.frequency as \"frequency\",sr.sterilizationType as \"disinfectProgram\",sr.startDate as \"startDate\"," - + "sr.endDate as \"endDate\",'' as \"basketName\" "; + + "sr.endDate as \"endDate\",'' as \"basketName\",td.id as \"tousseDefinitionId\" "; String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(comboTousseType, "tousseType", "td"); if (StringUtils.isNotBlank(typeSql)) { typeSql = String.format(" and %s", typeSql); @@ -463,13 +473,17 @@ + dateQueryAdapter.dateAdapter(endDate); //String groupBySql = " group by ti.tousseName,sr.id,sr.sterilizationUser,s.name,sr.frequency,sr.sterilizationType,sr.startDate,sr.endDate,c.containerName"; - String groupBySql = " group by alias.\"tousseName\",alias.\"id\",alias.\"operator\",alias.\"disinfectProgram\",alias.\"frequency\",alias.\"disinfectIdentification\",alias.\"startDate\",alias.\"endDate\",alias.\"basketName\""; if (StringUtils.isNotBlank(tousseName)) { joinedBasketWhereSql += " and ti.tousseName = '" + tousseName + "'"; notJoinedBasketWhereSql += " and ti.tousseName = '" + tousseName + "'"; } - String whereSql = "(" + joinedBasketSql + joinedBasketWhereSql + " union all " + notJoinedBasketSql + notJoinedBasketWhereSql + ") alias " + groupBySql; + String whereSql = "(" + joinedBasketSql + joinedBasketWhereSql + " union all " + notJoinedBasketSql + notJoinedBasketWhereSql + ") alias "; + if(StringUtils.isNotBlank(taskGroups) && !taskGroups.contains("全部")){ + whereSql += String.format(" and alias.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroups)); + } + String groupBySql = " group by alias.\"tousseName\",alias.\"id\",alias.\"operator\",alias.\"disinfectProgram\",alias.\"frequency\",alias.\"disinfectIdentification\",alias.\"startDate\",alias.\"endDate\",alias.\"basketName\",alias.\"tousseDefinitionId\""; + whereSql += groupBySql; String countSql = "select count(*),count(*),count(*) from (select alias.* from " + whereSql + ") alias1"; String sql = "select count(*) amount from " + whereSql; @@ -492,7 +506,7 @@ // 待装配任务列表 @Override @SuppressWarnings("unchecked") - public Map getPackingList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType) { + public Map getPackingList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups) { String whereSqlForOrgUnitCoding = null; if(StringUtils.isNotBlank(orgUnitCoding)){ if(!orgUnitCoding.contains(",")){ @@ -505,7 +519,7 @@ } String countSql = "select count(*),sum(po.amount),sum(po.amount) "; String sql = "select po.tousseName as \"tousseName\",po.amount as \"amount\"," + - "po.packTime as \"applicationTime\",po.packer as \"operator\" "; + "po.packTime as \"applicationTime\",po.packer as \"operator\",po.tousseDefinitionId as \"tousseDefinitionId\" "; String whereSql = "from PackingRecord po where po.packTime between " + dateQueryAdapter.dateAdapter(statDate) @@ -521,6 +535,9 @@ if (StringUtils.isNotBlank(typeSql)) { whereSql += String.format(" and %s", typeSql); } + if(StringUtils.isNotBlank(taskGroups) && !taskGroups.contains("全部")){ + sql += String.format(" and po.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroups)); + } countSql += whereSql; whereSql += " order by po.packTime desc"; @@ -581,7 +598,7 @@ // 发货计划单 @Override @SuppressWarnings("unchecked") - public Map getInvoicePlanList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType) { + public Map getInvoicePlanList(String statDate,String endDate,String departCoding,String currentPage, String pageSize, String tousseName,String tousseType, String orgUnitCoding, String comboTousseType, String taskGroups) { String whereSqlForOrgUnitCoding = null; if(StringUtils.isNotBlank(orgUnitCoding)){ if(!orgUnitCoding.contains(",")){ @@ -599,7 +616,7 @@ String sql = "select po.tousseName as \"tousseName\",i.depart as \"depart\"," + "i.id as \"id\" ,i.applicant as \"applicant\",i.sender as \"sender\"," + "i.serialNumber as \"serialNumber\",i.sendTime as \"senderTime\"," + - "i.applicationTime as \"applicationTime\",po.amount as \"amount\" "; + "i.applicationTime as \"applicationTime\",po.amount as \"amount\",po.tousseDefinitionId as \"tousseDefinitionId\" "; String whereSql = "from Invoice i,InvoicePlan ip,InvoiceItem po" + " where i.id = po.invoice_id and ip.id = i.invoicePlan_ID" @@ -621,6 +638,10 @@ if (StringUtils.isNotBlank(typeSql)) { whereSql += String.format(" and %s", typeSql); } + if (StringUtils.isNotBlank(taskGroups) && !taskGroups.contains("全部")) { + whereSql += String.format(" and ip.id in (select distinct ip.id from invoicePlan ip join tousseItem ti on ip.id = ti.recyclingApplication_ID " + + " join CssdHandleTousses cht on ti.tousseDefinitionId = cht.tousseDefinitionId where cht.orgUnitCode = '%s' %s )", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroups)); + } sql += whereSql + " order by \"depart\",\"senderTime\" desc"; countSql += whereSql; Integer [] amountArray = countBySql(countSql); @@ -876,32 +897,32 @@ @SuppressWarnings({ "unchecked", "deprecation" }) public void createOperateData(HttpServletRequest request,OutputStream ops, String goodNmae, String tousseType, String department, String startDate, - String endDate, String orgUnitCoding, String comboTousseType) { + String endDate, String orgUnitCoding, String comboTousseType, String taskGroups) { request.getSession().setAttribute("writeecreateOperateDataIsOver", false); request.getSession().setAttribute("operationMonitoringExportMessage", ""); //获取申请和回收数据 List appAndRecycList = (List) getRecyclingApplicationList( - startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType).get("data"); + startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType, taskGroups).get("data"); //获取清洗数据 List washDisinfectionList = (List) getWashDisinfectionList( - startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType).get("data"); + startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType, taskGroups).get("data"); //获取装备数据 List packingList = (List) getPackingList( - startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType).get("data"); + startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType, taskGroups).get("data"); //获取审核数据 List reviewList = (List)getReviewList( - startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType).get("data"); + startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType, taskGroups).get("data"); //获取灭菌数据 List sterilizationList = (List)getSterilizationList( - startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType).get("data"); + startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType, taskGroups).get("data"); //获取发货数据 List invoiceList = (List)getInvoicePlanList( - startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType).get("data"); + startDate,endDate,department,"0","0",goodNmae,tousseType,orgUnitCoding,comboTousseType, taskGroups).get("data"); String inputFile = Path.getWebAppRoot() + "/disinfectsystem/reportforms/demo3.xls"; Index: ssts-web/src/main/webapp/homepage/supplyRoomOperate.js =================================================================== diff -u -r28330 -r28333 --- ssts-web/src/main/webapp/homepage/supplyRoomOperate.js (.../supplyRoomOperate.js) (revision 28330) +++ ssts-web/src/main/webapp/homepage/supplyRoomOperate.js (.../supplyRoomOperate.js) (revision 28333) @@ -434,35 +434,63 @@ } }] },{ - columnWidth : .15, - layout : 'form', - labelWidth : 60, - items : [{ - xtype : 'combo', - id : 'taskGroup', - name : 'taskGroup', + columnWidth : .15, + layout : 'form', + labelWidth : 60, + items:[{ + fieldLabel:'任务组', + xtype : 'multiSelect', + id : 'taskGroup', + name : 'taskGroup', hidden : !sstsConfig.isShowTaskGroup, - queryParam : 'spell', - labelSeparator: sstsConfig.isShowTaskGroup ? ':' : '', - fieldLabel : sstsConfig.isShowTaskGroup ? '任务组' : '', - minChars : 0, - valueField : 'id', + queryParam : 'spell', + labelSeparator: sstsConfig.isShowTaskGroup ? ':' : '', + fieldLabel : sstsConfig.isShowTaskGroup ? '任务组' : '', + minChars : 0, + valueField : 'id', displayField : 'taskGroupName', - anchor : '95%', - listWidth : 150, - store : taskStore, - lazyInit : true, - triggerAction : 'all', - hideTrigger : true, - typeAhead : false, - allowBlank : true, - listeners : { - select : function(combo, record, index) { - // Ext.getCmp('department').setValue(record.data.name); - } - } - }] - },{ + matchFieldWidth: false, + listConfig: {width : 600}, + store : taskStore, + forceSelection : false, + lazyInit : true, + triggerAction : 'all', + hideTrigger : false, + typeAhead : false, + editable: false, + allowBlank : true, + anchor : '95%', + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('taskGroupName') == ALL) { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); + } + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function(record) { + if (record.get('taskGroupName') != ALL && !record.get(this.checkField)) { + selectAll = false; + return; + } + }, combo); + + var all = combo.store.getAt(0); + if (selectAll) { + all.set(combo.checkField, true); + } else { + all.set(combo.checkField, false); + } + combo.setValue(combo.getCheckedValue()); + } + } + }] + },{ columnWidth : .15, layout : 'form', labelWidth : fontSize == 12 ? 60 : 90, @@ -566,6 +594,7 @@ var tousseType = $Id('tousseType').value; var comboTousseType = Ext.getCmp('comboTousseType').getValue(); var department = Ext.getCmp('department').getValue(); + var taskGroups = Ext.getCmp('taskGroup').getValue(); var orgUnitCoding = Ext.getCmp('querySupplyRoom').getValue(); var startDate= $Id('startDate' + IDS).value; var endDate= $Id('endDate' + IDS).value; @@ -580,7 +609,7 @@ }); loadMaskExport.show(); - exportData(goodNmae,tousseType,department,startDate,endDate,orgUnitCoding,comboTousseType); + exportData(goodNmae,tousseType,department,startDate,endDate,orgUnitCoding,comboTousseType,taskGroups); var loop = setInterval(function(){ Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/supplyRoomControlAction!getCreateOperateDataStatus.do', @@ -1066,11 +1095,12 @@ }); }); -function exportData(goodNmae,tousseType,department,startDate,endDate,orgUnitCoding,comboTousseType){ +function exportData(goodNmae,tousseType,department,startDate,endDate,orgUnitCoding,comboTousseType,taskGroups){ location.href = WWWROOT + "/homepage/exportOperateData.jsp?" +"goodNmae="+goodNmae+"&tousseType="+tousseType +"&department="+department+"&startDate="+startDate +"&endDate="+endDate +"&orgUnitCoding="+orgUnitCoding - +"&comboTousseType="+comboTousseType; + +"&comboTousseType="+comboTousseType + +"&taskGroups="+taskGroups; } \ No newline at end of file Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/StRoomControlHelper.java =================================================================== diff -u -r28082 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/StRoomControlHelper.java (.../StRoomControlHelper.java) (revision 28082) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/StRoomControlHelper.java (.../StRoomControlHelper.java) (revision 28333) @@ -99,8 +99,8 @@ joinedBasketWhereSql += tousseNameSql; notJoinedBasketWhereSql += tousseNameSql; } - if (StringUtils.isNotBlank(taskGroup) && !"全部".equals(taskGroup)) { - String taskGroupSql = String.format("and td.id in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.taskGroup = '%s' and cht.orgUnitCode = '%s')", taskGroup, AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); + if (StringUtils.isNotBlank(taskGroup) && !taskGroup.contains("全部")) { + String taskGroupSql = String.format("and td.id in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(),SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroup)); joinedBasketWhereSql += taskGroupSql; notJoinedBasketWhereSql += taskGroupSql; } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/PkRoomControlHelper.java =================================================================== diff -u -r27800 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/PkRoomControlHelper.java (.../PkRoomControlHelper.java) (revision 27800) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/PkRoomControlHelper.java (.../PkRoomControlHelper.java) (revision 28333) @@ -80,8 +80,8 @@ + dateQueryAdapter.dateAdapter(endDate) + whereSqlForOrgUnitCoding; whereSql = supplyRoomControlManager.setDisinfectionGoodsQuerySql(tousseName, tousseType, whereSql); - if (StringUtils.isNotBlank(taskGroup) && !"全部".equals(taskGroup)) { - whereSql += String.format("and po.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.taskGroup = '%s' and cht.orgUnitCode = '%s')", taskGroup, AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); + if (StringUtils.isNotBlank(taskGroup) && !taskGroup.contains("全部")) { + whereSql += String.format("and po.tousseDefinitionId in (select cht.tousseDefinitionId from CssdHandleTousses cht where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroup)); } String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(), "tousseType","po"); if (StringUtils.isNotBlank(typeSql)){ Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RvRoomControlHelper.java =================================================================== diff -u -r27800 -r28333 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RvRoomControlHelper.java (.../RvRoomControlHelper.java) (revision 27800) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RvRoomControlHelper.java (.../RvRoomControlHelper.java) (revision 28333) @@ -81,9 +81,9 @@ + " and " + dateQueryAdapter.dateAdapter(supplyRoomVo.getEndDate()); whereSql = supplyRoomControlManager.setDisinfectionGoodsQuerySql(supplyRoomVo.getTousseName(), supplyRoomVo.getTousseType(), whereSql); - if (StringUtils.isNotBlank(taskGroup) && !"全部".equals(taskGroup)) { + if (StringUtils.isNotBlank(taskGroup) && !taskGroup.contains("全部")) { whereSql += String.format("and tf.id in (select cht.tousseDefinitionId from CssdHandleTousses cht " + - " where cht.taskGroup = '%s' and cht.orgUnitCode = '%s')", taskGroup, AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); + " where cht.orgUnitCode = '%s' %s)", AcegiHelper.getLoginUser().getCurrentOrgUnitCode(), SqlUtils.get_InSql_Extra("cht.taskGroup", taskGroup)); } String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(),"tousseType", "tf"); if (StringUtils.isNotBlank(typeSql)){ Index: ssts-web/src/main/webapp/homepage/exportOperateData.jsp =================================================================== diff -u -r27993 -r28333 --- ssts-web/src/main/webapp/homepage/exportOperateData.jsp (.../exportOperateData.jsp) (revision 27993) +++ ssts-web/src/main/webapp/homepage/exportOperateData.jsp (.../exportOperateData.jsp) (revision 28333) @@ -7,6 +7,7 @@ String tousseType = request.getParameter("tousseType"); String comboTousseType = request.getParameter("comboTousseType"); String department = request.getParameter("department"); +String taskGroups = request.getParameter("taskGroups"); String startDate = request.getParameter("startDate"); String endDate = request.getParameter("endDate"); String orgUnitCoding = request.getParameter("orgUnitCoding"); @@ -17,7 +18,7 @@ response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition","attachment;filename=" + new String(fileName.getBytes("GBK"), "ISO8859_1")); SupplyRoomControlManager supplyRoomControlManager = (SupplyRoomControlManager)SpringBeanManger.getBean("supplyRoomControlManager"); -supplyRoomControlManager.createOperateData(request,servletOutputStream,goodNmae,tousseType,department,startDate,endDate,orgUnitCoding,comboTousseType); +supplyRoomControlManager.createOperateData(request,servletOutputStream,goodNmae,tousseType,department,startDate,endDate,orgUnitCoding,comboTousseType,taskGroups); servletOutputStream.flush(); out.clear(); out = pageContext.pushBody();