Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r25396 -r25621 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 25396) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 25621) @@ -163,7 +163,7 @@ * @param isHideDisinfection 查询结果是否隐藏消毒物品 * @return 包装区工作量及不合格率的bean */ - public List getPackingFDSource(String month,String deptCode,boolean isHideDisinfection); + public List getPackingFDSource(String month,String deptCode,boolean isHideDisinfection, String taskGroup); public List getDeviceMaintenanceSource( String startDate, String endDate,String querySupplyRoom); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r25611 -r25621 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25611) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25621) @@ -1604,7 +1604,7 @@ * @return 包装区工作量及不合格率的bean */ @Override - public List getPackingFDSource(String month,String deptCode,boolean isHideDisinfection) { + public List getPackingFDSource(String month,String deptCode,boolean isHideDisinfection, String taskGroup) { List returnList = new ArrayList(); // 排序 Map sourceSortMap = new HashMap(); @@ -1619,6 +1619,9 @@ sourceSortMap.put("外部代理灭菌", 7); sourceSortMap.put("自制物品", 8); sourceSortMap.put("配包总数", 9); + sourceSortMap.put("大包", 10); + sourceSortMap.put("中包", 11); + sourceSortMap.put("小包", 12); if (StringUtils.isNotBlank(month)) { List dateOfMonth = DisinfectionFractionDefectiveBean .getDateOfMonth(month); @@ -1641,7 +1644,13 @@ params.selectTousseType = true; params.tousseTypeAndPackageSizeSql = " and td.tousseType <> '消毒物品' "; + //任务组的过滤 + params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = SqlUtils.get_InSql_Extra("td.taskGroup", taskGroup); + //按包的大小进行分组 + params.extraSelectColumns = " ,td.packageSize packageSize "; + params.extraGroupBy = " ,td.packageSize "; + // 取配包数量,不包括消毒物品 String sql = dataIndex.getWorkAmountByPackageSQL("配包数量", params); @@ -1650,7 +1659,7 @@ Integer totalAmount = 0; try { while(rs.next()){ - String tousseType = rs.getString(2); + String tousseType = rs.getString(2); if(isHideDisinfection == true && "消毒物品".equals(tousseType)){ continue; } @@ -1667,7 +1676,16 @@ }else{ tousseTypeMap.put(tousseType,amount); } - + String packageSize = rs.getString("packageSize"); + if(tousseTypeMap.containsKey(packageSize)){ + int count = tousseTypeMap.get(packageSize); + tousseTypeMap.put(packageSize,count+amount); + }else{ + if(StringUtils.isBlank(packageSize)){ + packageSize = "未定义包大小"; + } + tousseTypeMap.put(packageSize, amount); + } } } catch (SQLException e) { e.printStackTrace(); @@ -1679,7 +1697,6 @@ if (isHideDisinfection == false) { params.tousseTypeAndPackageSizeSql = " and td.tousseType = '消毒物品' "; sql = dataIndex.getWorkAmountByMaterialSQL("配包数量", params); - rs = objectDao.executeSql(sql); try { while (rs.next()) { @@ -1692,7 +1709,16 @@ } else { tousseTypeMap.put(tousseType, amount); } - + String packageSize = rs.getString("packageSize"); + if(tousseTypeMap.containsKey(packageSize)){ + int count = tousseTypeMap.get(packageSize); + tousseTypeMap.put(packageSize,count+amount); + }else{ + if(StringUtils.isBlank(packageSize)){ + packageSize = "未定义包大小"; + } + tousseTypeMap.put(packageSize, amount); + } } } catch (SQLException e) { e.printStackTrace(); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r25494 -r25621 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 25494) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 25621) @@ -1646,6 +1646,7 @@ String month = StrutsParamUtils.getPraramValue("month", ""); String querySupplyRoom = StrutsParamUtils.getPraramValue("querySupplyRoom", ""); String hideDisinfectionStr = StrutsParamUtils.getPraramValue("hideDisinfection", ""); + String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); boolean isHideDisinfection = false; if("true".equals(hideDisinfectionStr)){ isHideDisinfection = true; @@ -1655,7 +1656,7 @@ return customReportsOfDgsfy.getPackingFDSource(month,querySupplyRoom,isHideDisinfection); } else{ - return jasperReportManager.getPackingFDSource(month,querySupplyRoom,isHideDisinfection); + return jasperReportManager.getPackingFDSource(month,querySupplyRoom,isHideDisinfection,taskGroup); } } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java =================================================================== diff -u -r25493 -r25621 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java (.../DataIndex.java) (revision 25493) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java (.../DataIndex.java) (revision 25621) @@ -413,34 +413,38 @@ amountSql = String .format("select " + s + " amount ,case when (ti.operator is null) then '系统用户' else ti.operator end userName, td.tousseType,td.name tousseName " - + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id " + + "%s from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id " + "inner join MaterialInstance mi on td.id = mi.tousse_id " + "where ti.operationTime %s %s " + "%s %s %s %s " - + "group by ti.operator,td.tousseType,td.name ", + + "group by ti.operator,td.tousseType,td.name %s", + obj.extraSelectColumns, obj.betweenSql, SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseTypeAndPackageSizeSql); + obj.tousseTypeAndPackageSizeSql, + obj.extraGroupBy); } // 按包定义的材料数量统计 else{ amountSql = String .format("select sum(mi.count) amount ,case when (ti.operator is null) then '系统用户' else ti.operator end userName, td.tousseType,td.name tousseName " - + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id " + + "%s from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id " + "inner join MaterialInstance mi on td.id = mi.tousse_id " + "where ti.operationTime %s %s " + "%s %s %s %s " - + "group by ti.operator,td.tousseType,td.name ", + + "group by ti.operator,td.tousseType,td.name %s", + obj.extraSelectColumns, obj.betweenSql, SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseTypeAndPackageSizeSql); + obj.tousseTypeAndPackageSizeSql, + obj.extraGroupBy); } break; Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/packingUnqualifieReportView.js =================================================================== diff -u -r25328 -r25621 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/packingUnqualifieReportView.js (.../packingUnqualifieReportView.js) (revision 25328) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/packingUnqualifieReportView.js (.../packingUnqualifieReportView.js) (revision 25621) @@ -5,6 +5,32 @@ var myMask; Ext.onReady(function() { Ext.QuickTips.init(); + //任务组数据源 + var taskGroupStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/taskGroupAction!getTaskGroupList.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'name',mapping : 'name'} + ]), + listeners : { + beforeload:function(){ + taskGroupStore.baseParams["departCoding"] = Ext.getCmp("querySupplyRoom").getValue(); + }, + load :function (thiz,records,options ){ + if(taskGroupStore.getCount() > 1){ + taskGroupStore.insert(0 , new testRecord({'name':ALL})); + } + } + } + }); + var testRecord = Ext.data.Record.create([ + {name: 'name', type: 'string'} + ]); //20181225 var supplyRoomRecord = Ext.data.Record.create([ {name: 'departCode', type: 'string'}, @@ -97,9 +123,13 @@ function reloadReport(){ var monthSearch= $Id('monthSearch').value; var querySupplyRoom = Ext.getCmp('querySupplyRoom').getValue(); + var taskGroup = Ext.getCmp('taskGroup').getValue(); if(querySupplyRoom.indexOf(ALL) == 0){ querySupplyRoom = ""; } + if(taskGroup.indexOf(ALL) == 0){ + taskGroup = ""; + } myMask = new Ext.LoadMask(Ext.getBody(), { msg: '正在加载,请稍候!', removeMask: true @@ -109,7 +139,7 @@ if(sstsConfig.hasOwnProperty('isPackingUnqualifieReportHideDisinfection') && sstsConfig.isPackingUnqualifieReportHideDisinfection){ hideDisinfection = true; } - window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=packingUnqualifieReport.jasper&month="+monthSearch+"&querySupplyRoom="+querySupplyRoom+"&reportName=packingUnqualifieReport"+"&hideDisinfection="+hideDisinfection,'thisIframe','_self'); + window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=packingUnqualifieReport.jasper&month="+monthSearch+"&querySupplyRoom="+querySupplyRoom+"&reportName=packingUnqualifieReport"+"&hideDisinfection="+hideDisinfection+"&taskGroup="+taskGroup,'thisIframe','_self'); } var form = new Ext.form.FormPanel({ @@ -143,7 +173,7 @@ anchor : '95%' })] },{ - columnWidth : .4, + columnWidth : .2, layout : 'form', labelWidth : 50, items : [{ @@ -194,6 +224,7 @@ all.set(combo.checkField, false); } combo.setValue(combo.getCheckedValue()); + taskGroupStore.reload(); } } }] @@ -214,14 +245,67 @@ // }] }] - }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : 50, + items:[{ + fieldLabel:'任务组', + xtype : 'multiSelect', + id : 'taskGroup', + name : 'taskGroup', + queryParam : 'spell', + minChars : 0, + valueField : 'name', + displayField : 'name', + matchFieldWidth: false, + listConfig: {width : 600}, + store : taskGroupStore, + forceSelection : false, + lazyInit : true, + triggerAction : 'all', + hideTrigger : false, + typeAhead : false, + allowBlank : true, + anchor : '100%', + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('name') == ALL) { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); + } + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function(record) { + if (record.get('name') != 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()); + } + } + }] + }] }], buttons:[{ xtype : 'button', text : '查询', minWidth : 70, iconCls : 'icon_search', - handler : function() { + handler : function() { reloadReport(); } },{ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/taskGroup/action/TaskGroupAction.java =================================================================== diff -u -r22459 -r25621 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/taskGroup/action/TaskGroupAction.java (.../TaskGroupAction.java) (revision 22459) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/taskGroup/action/TaskGroupAction.java (.../TaskGroupAction.java) (revision 25621) @@ -106,7 +106,20 @@ try { List taskGroupList = new ArrayList(); if(StringUtils.isNotBlank(departCoding)){ - taskGroupList = taskGroupManager.findTaskGroupByDepartCode(departCoding); + if(departCoding.indexOf(",") == -1){ + taskGroupList = taskGroupManager.findTaskGroupByDepartCode(departCoding); + }else{//查询多个供应室的任务组 + String[] departCodingArray= departCoding.split(","); + for (int i = 0; i < departCodingArray.length; i++) { + if(i == 0 && "全部".equals(departCodingArray[i])){ + continue; + } + List eachList = taskGroupManager.findTaskGroupByDepartCode(departCodingArray[i]); + for (int j = 0; j < eachList.size(); j++) { + taskGroupList.add(eachList.get(j)); + } + } + } } JSONObject jsonObject = new JSONObject(); //Map> taskGroupNameMap = new HashMap>();