Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RaRoomControlHelper.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RaRoomControlHelper.java (.../RaRoomControlHelper.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RaRoomControlHelper.java (.../RaRoomControlHelper.java) (revision 17472) @@ -26,8 +26,13 @@ private DateQueryAdapter dateQueryAdapter; private SupplyRoomControlManager supplyRoomControlManager; - - + + private SupplyRoomControlManager2 supplyRoomControlManagerImpl2; + + public void setSupplyRoomControlManagerImpl2(SupplyRoomControlManager2 supplyRoomControlManagerImpl2) { + this.supplyRoomControlManagerImpl2 = supplyRoomControlManagerImpl2; + } + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { this.dateQueryAdapter = dateQueryAdapter; } @@ -75,6 +80,10 @@ whereSql += String.format(" and po.id in (select ti.id from TousseItem ti join CssdHandleTousses cht on ti.tousseDefinitionId = cht.tousseDefinitionId " + " where cht.taskGroup ='%s' and cht.orgUnitCode = '%s')", taskGroup, AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); } + String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(), "tousseType", "po"); + if (StringUtils.isNotBlank(typeSql)){ + whereSql += String.format(" and %s", typeSql); + } return whereSql; } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl2.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl2.java (.../SupplyRoomControlManagerImpl2.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManagerImpl2.java (.../SupplyRoomControlManagerImpl2.java) (revision 17472) @@ -1,11 +1,16 @@ package com.forgon.disinfectsystem.supplyroomcontrol.service; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.supplyroomcontrol.vo.SupplyRoomVo; import com.forgon.disinfectsystem.vo.TousseOperate; import com.forgon.entity.PageEntity; +import com.forgon.tools.SqlBuilder; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.util.PageUtil; import org.apache.commons.collections.map.HashedMap; +import org.apache.commons.lang.ObjectUtils; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import java.util.List; @@ -168,7 +173,36 @@ throw new RuntimeException(e); } } - + + @Override + public String getGoodsTypeByComboTousseType(String comboTousseType, String type, String alias) { + if (StringUtils.isBlank(comboTousseType) || ObjectUtils.equals("all", comboTousseType)){ + return null; + } + switch (comboTousseType) { + case "allTousse": + return SqlBuilder.createStatusWithAlias(alias, type, TousseDefinition.PACKAGE_TYPE_INSIDE, + TousseDefinition.PACKAGE_TYPE_DRESSING, TousseDefinition.PACKAGE_TYPE_DISINFECTION, TousseDefinition.PACKAGE_TYPE_FOREIGN, + TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY, TousseDefinition.PACKAGE_TYPE_CUSTOM); + case "tousse": + return SqlBuilder.createStatusWithAlias(alias, type, TousseDefinition.PACKAGE_TYPE_INSIDE); + case "dressing": + return SqlBuilder.createStatusWithAlias(alias, type, TousseDefinition.PACKAGE_TYPE_DRESSING); + case "disinfection": + return SqlBuilder.createStatusWithAlias(alias, type, TousseDefinition.PACKAGE_TYPE_DISINFECTION); + case "foreign": + return SqlBuilder.createStatusWithAlias(alias, type, TousseDefinition.PACKAGE_TYPE_FOREIGN); + case "foreignProxy": + return SqlBuilder.createStatusWithAlias(alias, type, TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY); + case "custom": + return SqlBuilder.createStatusWithAlias(alias, type, TousseDefinition.PACKAGE_TYPE_CUSTOM); + case "disposableGood": + return SqlBuilder.createStatusWithAlias(alias, type, DisposableGoods.TYPE_NAME); + default: + return null; + } + } + /** * 查询TousseOperate结果集 * Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/PkRoomControlHelper.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/PkRoomControlHelper.java (.../PkRoomControlHelper.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/PkRoomControlHelper.java (.../PkRoomControlHelper.java) (revision 17472) @@ -27,6 +27,12 @@ private SupplyRoomConfigManager supplyRoomConfigManager; private SupplyRoomControlManager supplyRoomControlManager; + + private SupplyRoomControlManager2 supplyRoomControlManagerImpl2; + + public void setSupplyRoomControlManagerImpl2(SupplyRoomControlManager2 supplyRoomControlManagerImpl2) { + this.supplyRoomControlManagerImpl2 = supplyRoomControlManagerImpl2; + } public void setSupplyRoomControlManager(SupplyRoomControlManager supplyRoomControlManager) { this.supplyRoomControlManager = supplyRoomControlManager; @@ -66,6 +72,10 @@ 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()); } + String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(), "tousseType","po"); + if (StringUtils.isNotBlank(typeSql)){ + whereSql += String.format(" and %s", typeSql); + } return whereSql; } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RvRoomControlHelper.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RvRoomControlHelper.java (.../RvRoomControlHelper.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/RvRoomControlHelper.java (.../RvRoomControlHelper.java) (revision 17472) @@ -28,6 +28,12 @@ private SupplyRoomConfigManager supplyRoomConfigManager; private SupplyRoomControlManager supplyRoomControlManager; + + private SupplyRoomControlManager2 supplyRoomControlManagerImpl2; + + public void setSupplyRoomControlManagerImpl2(SupplyRoomControlManager2 supplyRoomControlManagerImpl2) { + this.supplyRoomControlManagerImpl2 = supplyRoomControlManagerImpl2; + } public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { this.dateQueryAdapter = dateQueryAdapter; @@ -67,7 +73,10 @@ 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()); } - logger.debug("[whereSql]: " + whereSql); + String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(),"tousseType", "tf"); + if (StringUtils.isNotBlank(typeSql)){ + whereSql += String.format(" and %s", typeSql); + } return whereSql; } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/IpRoomControlHelper.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/IpRoomControlHelper.java (.../IpRoomControlHelper.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/IpRoomControlHelper.java (.../IpRoomControlHelper.java) (revision 17472) @@ -27,7 +27,13 @@ private SupplyRoomConfigManager supplyRoomConfigManager; private SupplyRoomControlManager supplyRoomControlManager; - + + private SupplyRoomControlManager2 supplyRoomControlManagerImpl2; + + public void setSupplyRoomControlManagerImpl2(SupplyRoomControlManager2 supplyRoomControlManagerImpl2) { + this.supplyRoomControlManagerImpl2 = supplyRoomControlManagerImpl2; + } + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { this.dateQueryAdapter = dateQueryAdapter; } @@ -65,6 +71,10 @@ 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()); } + String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(), "tousseType", "po"); + if (StringUtils.isNotBlank(typeSql)){ + whereSql += String.format(" and %s", typeSql); + } return whereSql; } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManager2.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManager2.java (.../SupplyRoomControlManager2.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/SupplyRoomControlManager2.java (.../SupplyRoomControlManager2.java) (revision 17472) @@ -59,4 +59,13 @@ * @return */ Map getInvoicePlanList(SupplyRoomVo supplyRoomVo); + + /** + * 根据物品下拉框选择的类型构造出物品类型的查询条件 + * @param comboTousseType 下拉框选择的物品类型 + * @param type 要过滤的类型属性 + * @param alias 属性的别名 + * @return 返回查询条件 + */ + String getGoodsTypeByComboTousseType(String comboTousseType, String type, String alias); } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/WdRoomControlHelper.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/WdRoomControlHelper.java (.../WdRoomControlHelper.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/WdRoomControlHelper.java (.../WdRoomControlHelper.java) (revision 17472) @@ -26,6 +26,12 @@ private DateQueryAdapter dateQueryAdapter; private SupplyRoomConfigManager supplyRoomConfigManager; + + private SupplyRoomControlManager2 supplyRoomControlManagerImpl2; + + public void setSupplyRoomControlManagerImpl2(SupplyRoomControlManager2 supplyRoomControlManagerImpl2) { + this.supplyRoomControlManagerImpl2 = supplyRoomControlManagerImpl2; + } public void setSupplyRoomConfigManager(SupplyRoomConfigManager supplyRoomConfigManager) { this.supplyRoomConfigManager = supplyRoomConfigManager; @@ -74,6 +80,10 @@ if (StringUtils.isNotBlank(taskGroup) && !"全部".equals(taskGroup)) { whereSql += 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()); } + String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(),"itemType", "ci"); + if (StringUtils.isNotBlank(typeSql)){ + whereSql += String.format(" and %s", typeSql); + } return whereSql; } Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/StRoomControlHelper.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/StRoomControlHelper.java (.../StRoomControlHelper.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/service/StRoomControlHelper.java (.../StRoomControlHelper.java) (revision 17472) @@ -28,6 +28,12 @@ private DateQueryAdapter dateQueryAdapter; private SupplyRoomConfigManager supplyRoomConfigManager; + + private SupplyRoomControlManager2 supplyRoomControlManagerImpl2; + + public void setSupplyRoomControlManagerImpl2(SupplyRoomControlManager2 supplyRoomControlManagerImpl2) { + this.supplyRoomControlManagerImpl2 = supplyRoomControlManagerImpl2; + } public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { this.dateQueryAdapter = dateQueryAdapter; @@ -82,6 +88,12 @@ joinedBasketWhereSql += taskGroupSql; notJoinedBasketWhereSql += taskGroupSql; } + String typeSql = supplyRoomControlManagerImpl2.getGoodsTypeByComboTousseType(supplyRoomVo.getComboTousseType(), "tousseType", "td"); + if (StringUtils.isNotBlank(typeSql)){ + joinedBasketWhereSql += String.format(" and %s", typeSql); + notJoinedBasketWhereSql += String.format(" and %s", typeSql); + } + String whereSql = "(" + joinedBasketSql + joinedBasketWhereSql + " union all " + notJoinedBasketSql + notJoinedBasketWhereSql + ") alias " + groupBySql; return whereSql; } Index: ssts-web/src/main/webapp/homepage/supplyRoomOperate.js =================================================================== diff -u -r16768 -r17472 --- ssts-web/src/main/webapp/homepage/supplyRoomOperate.js (.../supplyRoomOperate.js) (revision 16768) +++ ssts-web/src/main/webapp/homepage/supplyRoomOperate.js (.../supplyRoomOperate.js) (revision 17472) @@ -72,6 +72,7 @@ var endDate= $Id('endDate' + IDS).value || $Id('endDate').value; //任务组的displayName var taskGroup = Ext.getCmp('taskGroup').getRawValue(); + var comboTousseType = Ext.getCmp('comboTousseType').getValue(); if(startDate == null || startDate == '' || endDate == null || endDate == ''){ @@ -92,14 +93,16 @@ startDate : startDate, endDate : endDate, taskGroup : taskGroup, - department : department + department : department, + comboTousseType : comboTousseType }; var queryParam2 = { tousseName : goodName, tousseType : tousseType, startDate : startDate, endDate : endDate, - taskGroup : taskGroup + taskGroup : taskGroup, + comboTousseType : comboTousseType }; loadStoreByParams(applicationStore, queryParam1); loadStoreByParams(washStore, queryParam2); @@ -239,7 +242,24 @@ ) }); + //物品类型 + var tousseTypeStore = new Ext.data.SimpleStore( { + fields : ['key', 'value'], + data : [ + ['all','全部'] + ,['allTousse','全部器械包'] + ,['tousse','器械包'] + ,['dressing','敷料包'] + ,['disinfection','消毒物品'] + ,['foreign','外来器械包'] + ,['custom','自定义器械包'] + ,['foreignProxy','外部代理灭菌包'] + ,['disposableGood','一次性物品'] + ] + }); + + var startDate = new Date(); startDate.setHours(0,0,0); @@ -348,6 +368,29 @@ } }] },{ + columnWidth : .15, + layout : 'form', + labelWidth : 60, + items : [{ + xtype : 'combo', + fieldLabel : '物品类型', + id : 'comboTousseType', + name : 'comboTousseType', + valueField : 'key', + displayField : 'value', + store : tousseTypeStore, + forceSelection : true, + value:'全部', + editable : false, + mode : 'local', + triggerAction : 'all', + anchor : '95%', + listeners : { + select : function(store, record){ + } + } + }] + }, { columnWidth : .18, layout : 'form', labelWidth : 60, Index: forgon-tools/src/main/java/com/forgon/tools/SqlBuilder.java =================================================================== diff -u -r16484 -r17472 --- forgon-tools/src/main/java/com/forgon/tools/SqlBuilder.java (.../SqlBuilder.java) (revision 16484) +++ forgon-tools/src/main/java/com/forgon/tools/SqlBuilder.java (.../SqlBuilder.java) (revision 17472) @@ -181,15 +181,27 @@ } /** - * 创建状态sql + * 创建属性in方式的sql * - * @param statusName 对应的状态名字(recyclingStatus,deliverStatus,returnStatus) - * @param status 需要过滤的状态 + * @param statusName 属性名(recyclingStatus,deliverStatus,returnStatus) + * @param status 包含的属性 * @return 返回拼接了条件状态的sql */ public static String createStatus(String statusName, String... status) { - return SqlBuilder.build_IN_Statement("po." + statusName, SqlBuilder.IN, status); + return createStatusWithAlias("po", statusName, status); } + + /** + * 创建属性in方式的sql + * @param alias 属性需要加的前缀 + * @param statusName 属性名 + * @param status 包含的属性 + * @return 返回拼接了条件状态的sql + */ + public static String createStatusWithAlias(String alias, String statusName, String... status) { + alias = StringUtils.isBlank(alias) ? "po" : alias; + return SqlBuilder.build_IN_Statement(alias + "." + statusName, SqlBuilder.IN, status); + } /** * 创建状态sql(预编译方式,返回的状态都是?号) Index: ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/vo/SupplyRoomVo.java =================================================================== diff -u -r16631 -r17472 --- ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/vo/SupplyRoomVo.java (.../SupplyRoomVo.java) (revision 16631) +++ ssts-operationmonitor/src/main/java/com/forgon/disinfectsystem/supplyroomcontrol/vo/SupplyRoomVo.java (.../SupplyRoomVo.java) (revision 17472) @@ -35,6 +35,11 @@ * 结束日期 */ private String endDate; + + /** + * 物品下拉的类型 + */ + private String comboTousseType; public String getTousseType() { return tousseType; @@ -83,4 +88,25 @@ public void setEndDate(String endDate) { this.endDate = endDate; } + + public String getComboTousseType() { + return comboTousseType; + } + + public void setComboTousseType(String comboTousseType) { + this.comboTousseType = comboTousseType; + } + + @Override + public String toString() { + return "SupplyRoomVo{" + + "tousseType='" + tousseType + '\'' + + ", tousseName='" + tousseName + '\'' + + ", department='" + department + '\'' + + ", taskGroup='" + taskGroup + '\'' + + ", startDate='" + startDate + '\'' + + ", endDate='" + endDate + '\'' + + ", comboTousseType='" + comboTousseType + '\'' + + '}'; + } }