Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r17014 -r17019 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 17014) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 17019) @@ -2513,7 +2513,7 @@ String[] tousseTypeArray = StringUtils.isNotBlank(tousseTypes) ? tousseTypes.split(";") : new String[] {}; List> list = tousseDefinitionManager.searchTousseBySimpleCodeAndAnyTousseTypeArr(spell, - tousseTypeArray, true, null); + tousseTypeArray, true); JSONObject jSONObject = new JSONObject(); jSONObject.put("totalCount", list.size()); jSONObject.put("data", list); Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.js =================================================================== diff -u -r17011 -r17019 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.js (.../statisticalWorkloadView.js) (revision 17011) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.js (.../statisticalWorkloadView.js) (revision 17019) @@ -1,233 +1,227 @@ -var entityName = "消毒中心员工工作统计评分"; -var grid; +var entityName = "消毒中心员工工作统计评分报表"; +var form; -var supplyRoomStore; +/** + * 加载报表的数据 + * + */ +var myMask; +function reloadReport(){ + + if (!form.getForm().isValid()) { + showResult('请正确填写表单各值'); + return false; + } + + var startTime= $Id('startTime').value; + var endTime = $Id('endTime').value; + var departCoding = Ext.getCmp('querySupplyRoom').getValue(); + + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?" + + "jasperreportName=workload.jasper&reportName=workload" + + "&departCoding=" + departCoding + + "&startTime=" + startTime + + "&endTime=" + endTime, + 'thisIframe', '_self'); + +} -var rd = new Ext.data.JsonReader( { - fields : [ - {name : 'id'}, - {name : 'departId'}, - {name : 'name'} - - ] -}); -supplyRoomStore = new Ext.data.Store({ +/** + * “供应室combo”的store + */ +var supplyRoomStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', method : 'POST' }), baseParams :{type:"12"}, - reader : rd, - listeners :{ - 'load' : function(thiz,records,options){ - var length = records.length; - if(length > 0){ - Ext.getCmp('departCoding').setValue(records[0].data.departId); - Ext.getCmp('querySupplyRoom').setValue(records[0].data.name); + reader : new Ext.data.JsonReader({ + fields : [ + {name : 'id', mapping : 'id'}, + {name : 'departCode', mapping : 'departId'}, + {name : 'name', mapping : 'name'} + ] + }), + listeners:{ + load :function (thiz,records,options ){ + if(records.length >0){ + Ext.getCmp('querySupplyRoom').setValue(records[0].data.departCode); } } } }); -var myMask; Ext.onReady(function() { Ext.QuickTips.init(); - function reloadReport(){ - var startTime= $Id('startTime').value; - var endTime = $Id('endTime').value; - var departCoding = $Id('departCoding').value; - myMask = new Ext.LoadMask(Ext.getBody(), { - msg: '正在加载,请稍候!', - removeMask: true - }); - myMask.show(); - window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?departCoding="+departCoding+"&jasperreportName=workload.jasper&startTime="+startTime+"&endTime="+endTime+"&reportName=workload",'thisIframe','_self'); - } + - var departJsonStore = new Ext.data.SimpleStore({ - fields : [ 'departName' ], - url : WWWROOT + '/disinfectSystem/reportFormsCenterAction!getAllDepartName.do' - }); - var dt = new Date(); - var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"; - var form = new Ext.form.FormPanel({ - title : '消毒中心员工工作统计评分报表', - region : 'north', - labelAlign : 'right', - buttonAlign : 'center', - collapsible : true, - collapseMode : 'mini', - split : true, - border : 0, - frame : true, - bodyStyle : 'padding:0px auto;margin:0px',// padding:1px;padding-top:5px; - height : 105, + var dt = new Date(); + var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"; + + form = new Ext.form.FormPanel({ + title : entityName, + region : 'north', + labelAlign : 'right', + buttonAlign : 'center', + collapsible : true, + collapseMode : 'mini', + split : true, + border : 0, + frame : true, + bodyStyle : 'padding:0px auto;margin:0px',// padding:1px;padding-top:5px; + height : 105, + items : [{ + layout : 'column', + height : 40, items : [{ - xtype : 'hidden', - name : 'departCoding', - id : 'departCoding' + width : 200, + layout : 'form', + labelWidth : 60, + items : [{ + xtype : 'datefieldWithMin', + fieldLabel : '开始日期', + id : 'startTime', + name : 'startTime', + editable : false, + format : 'Y-m-d', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + allowBlank : false, + anchor : '95%', + value:new Date(startDayofMonth), + listeners : { + specialkey : function(field, e) { + if (e.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); + var endTime = Ext.getCmp('endTime'); + endTime.setValue(''); + endTime.focus(); + } + + } + } + } + }] },{ - layout : 'column', - height : 40, - labelWidth : 70, + width : 200, + layout : 'form', + labelWidth : 60, items : [{ - width : 230, - layout : 'form', - labelWidth : 60, - items : [ - { - columnWidth : .5, - layout : 'form', - labelWidth : 70, - items : [ { - xtype : 'datefieldWithMin', - fieldLabel : '开始日期', - id : 'startTime', - name : 'startTime', - editable : false, - format : 'Y-m-d', - altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', - allowBlank : false, - anchor : '95%', - value:new Date(startDayofMonth), - listeners : { - specialkey : function(field, e) { - if (e.getKey() == Ext.EventObject.ENTER) { - var isOK = field.validate(); - if(isOK){ - var value = field.getValue(); - field.setValue(value); - var endTime = Ext.getCmp('endTime'); - endTime.setValue(''); - endTime.focus(); - } - - } - } + xtype : 'datefieldWithMin', + fieldLabel : '结束日期', + id : 'endTime', + name : 'endTime', + editable : false, + format : 'Y-m-d', + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + allowBlank : false, + anchor : '95%', + value:new Date(), + listeners : { + specialkey : function(field, e) { + if (e.getKey() == Ext.EventObject.ENTER) { + var isOK = field.validate(); + if(isOK){ + var value = field.getValue(); + field.setValue(value); } - } ] - }] - },{ - width : 230, - layout : 'form', - labelWidth : 50, - items : [{ - columnWidth : .5, - layout : 'form', - labelWidth : 70, - items : [ { - xtype : 'datefieldWithMin', - fieldLabel : '结束日期', - id : 'endTime', - name : 'endTime', - editable : false, - format : 'Y-m-d', - altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', - allowBlank : false, - anchor : '95%', - value:new Date(), - listeners : { - specialkey : function(field, e) { - if (e.getKey() == Ext.EventObject.ENTER) { - var isOK = field.validate(); - if(isOK){ - var value = field.getValue(); - field.setValue(value); - } - - } - } + } - } ] - }] - },{ - - width : 250, - layout : 'form', - labelWidth : 80, - labelSeparator : '选择供应室:', - items : [{ - xtype : 'combo', - id : 'querySupplyRoom', - name : 'querySupplyRoom', - valueField : 'departId', - displayField : 'name', - allowBlank : true, - editable : false, - store : supplyRoomStore, - forceSelection : true, - mode : 'local', - triggerAction : 'all', - listeners : { - 'select' : function(combo,record,index){ - Ext.getCmp('departCoding').setValue(record.data.departId); - } - }, - anchor : '95%' - }] - + } + } }] - }], - buttons:[{ - xtype : 'button', - text : '年度查询', - minWidth : 70, - iconCls : 'icon_search', - handler : function() { - var dateTime = new Date(); - var startDate = dateTime.getFullYear() + "/01/01"; - var endDate = dateTime.getFullYear() + "/12/31"; - Ext.getCmp('startTime').setValue(startDate); - Ext.getCmp('endTime').setValue(endDate); - reloadReport(); - } },{ - xtype : 'button', - text : '查询', - minWidth : 70, - iconCls : 'icon_search', - handler : function() { - reloadReport(); - } - },{ - xtype : 'button', - text : '重置', - minWidth : 70, - iconCls : 'icon_set', - handler : function() { - $Id('startTime').value = ""; - $Id('endTime').value = ""; - } - },{ - xtype : 'button', - text : '设置评分标准', - minWidth : 70, - iconCls : 'icon_set', - handler : function() { - setWorkScoreConfig(); - } + width : 250, + layout : 'form', + labelWidth : 70, + labelSeparator : '选择供应室:', + items : [{ + xtype : 'combo', + id : 'querySupplyRoom', + name : 'querySupplyRoom', + valueField : 'departCode', + displayField : 'name', + allowBlank : true, + editable : false, + store : supplyRoomStore, + forceSelection : true, + mode : 'local', + triggerAction : 'all', + listeners : { + render : function(_this) { + supplyRoomStore.load(); + } + }, + anchor : '95%' + }] }] - }); - - - var reportForm = new Ext.Panel({ - frame:false,//渲染面板 - autoScroll:true,//自动显示滚动条 - collapsible:true,//允许展开和收缩 - bodyPadding:5, - html:'' + }], + buttons:[{ + xtype : 'button', + text : '年度查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + var dateTime = new Date(); + var startDate = dateTime.getFullYear() + "/01/01"; + var endDate = dateTime.getFullYear() + "/12/31"; + Ext.getCmp('startTime').setValue(startDate); + Ext.getCmp('endTime').setValue(endDate); + reloadReport(); + } + },{ + xtype : 'button', + text : '查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + reloadReport(); + } + },{ + xtype : 'button', + text : '重置', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + $Id('startTime').value = ""; + $Id('endTime').value = ""; + } + },{ + xtype : 'button', + text : '设置评分标准', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + setWorkScoreConfig(); + } + }] + }); + + + var reportForm = new Ext.Panel({ + frame:false,//渲染面板 + autoScroll:true,//自动显示滚动条 + collapsible:true,//允许展开和收缩 + bodyPadding:5, + html:'' - }); - - var viewport = new Ext.Viewport({ - layout : 'border', - items : [form, { - region : 'center', - margins : '0 0 0 0', - layout : 'fit', - items : reportForm - }] - }); - supplyRoomStore.load(); - }); \ No newline at end of file + }); + + var viewport = new Ext.Viewport({ + layout : 'border', + items : [form, { + region : 'center', + margins : '0 0 0 0', + layout : 'fit', + items : reportForm + }] + }); +}); \ No newline at end of file Fisheye: Tag 17019 refers to a dead (removed) revision in file `ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseDeliverDetailView.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 17019 refers to a dead (removed) revision in file `ssts-web/src/main/webapp/jasperRtp/tousseDeliverDetailReport.jrxml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 17019 refers to a dead (removed) revision in file `ssts-web/src/main/webapp/disinfectsystem/reportforms/tousseDeliverDetailView.js'. Fisheye: No comparison available. Pass `N' to diff? Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r17011 -r17019 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 17011) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 17019) @@ -746,14 +746,6 @@ return jasperReportManager.getSterilizingStoveUseCountDetailData(startTime,endTime,querySupplyRoom, querySupplyRoomCoding,sterilizationPurpose); } } - }else if(reportName.equals("tousseDeliverDetail")){ - String startDay = StrutsParamUtils.getPraramValue("startDay", ""); - String endDay = StrutsParamUtils.getPraramValue("endDay", ""); - String departCoding = StrutsParamUtils.getPraramValue("departCoding", ""); - if(StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)){ - return jasperReportManager.getTousseDeliverDetailData(startDay,endDay,departCoding); - } - }else if(reportName.equals("tousseWorkLoad")){ //器械包工作量统计报表 String startDay = StrutsParamUtils.getPraramValue("startDay", ""); String endDay = StrutsParamUtils.getPraramValue("endDay", ""); @@ -1275,10 +1267,6 @@ String startTime = StrutsParamUtils.getPraramValue("startTime", ""); String endTime = StrutsParamUtils.getPraramValue("endTime", ""); map.put("title", "灭菌炉灭菌次数统计("+startTime+" ~ "+endTime+")"); - }else if(reportName.equals("tousseDeliverDetail")){ - String startDay = StrutsParamUtils.getPraramValue("startDay", ""); - String endDay = StrutsParamUtils.getPraramValue("endDay", ""); - map.put("title", "器械包各生产环节统计报表("+startDay+" ~ "+endDay+")"); }else if (reportName.equals("tousseWorkLoad")){ String startDay = StrutsParamUtils.getPraramValue("startDay", ""); String endDay = StrutsParamUtils.getPraramValue("endDay", ""); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r16965 -r17019 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 16965) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 17019) @@ -246,7 +246,6 @@ * @param searchString 搜索的关键字:为空时则不需要模糊查询(即:全部符合条件),否则按照用户的检索习惯进行模糊查询 * @param tousseTypeArr 指定的器械包类型的数组,如果不指定则为:所有器械包类型 * @param showDisableGoods 是否要显示已经停用的器械包 - * @param handlerDepartCode 处理科室编码 * * @return 返回值格式如下,取每个器械包对象的12个属性:
* [{
@@ -268,7 +267,7 @@ * */ public List> searchTousseBySimpleCodeAndAnyTousseTypeArr(String searchString, - String[] tousseTypeArr ,boolean showDisableGoods, String handlerDepartCode); + String[] tousseTypeArr ,boolean showDisableGoods); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r17007 -r17019 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 17007) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 17019) @@ -1461,18 +1461,18 @@ TousseDefinition.PACKAGE_TYPE_DRESSING,TousseDefinition.PACKAGE_TYPE_DISINFECTION,TousseDefinition.PACKAGE_TYPE_COMBO }; } mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr( - searchString, searchTousseTypeArray,false,null); + searchString, searchTousseTypeArray,false); //器械包和敷料包 }else if(TousseDefinition.PACKAGE_TYPE_INSIDE_AND_DRESSING.equals(tousseType)){ mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr( searchString, new String[]{TousseDefinition.PACKAGE_TYPE_INSIDE, - TousseDefinition.PACKAGE_TYPE_DRESSING},false,null); + TousseDefinition.PACKAGE_TYPE_DRESSING},false); } // 只搜索器械包(包含敷料包,不含消毒物品) else if (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType)){ mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr( searchString, new String[]{TousseDefinition.PACKAGE_TYPE_INSIDE, - TousseDefinition.PACKAGE_TYPE_DRESSING },false,null); + TousseDefinition.PACKAGE_TYPE_DRESSING },false); } // 只搜索一次性物品 else if (TousseItem.TYPE_DIPOSABLE_GOODS.equals(tousseType)){ @@ -1481,14 +1481,14 @@ } //只搜索消毒物品 else if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType)){ - mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(searchString, new String[]{TousseDefinition.PACKAGE_TYPE_DISINFECTION},false,null); + mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(searchString, new String[]{TousseDefinition.PACKAGE_TYPE_DISINFECTION},false); } // 搜索多种器械包(含消毒物品)和一次性物品,用于组合申请单 else{ mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr( searchString, new String[]{TousseDefinition.PACKAGE_TYPE_INSIDE, TousseDefinition.PACKAGE_TYPE_DRESSING, - TousseDefinition.PACKAGE_TYPE_DISINFECTION },false,null); + TousseDefinition.PACKAGE_TYPE_DISINFECTION },false); mapList.addAll(searchTousseOrDiposableGoodsBySpellAndWbCode( searchString, false, false, false,false,showReferencePrice,"1","0",false,showExternalCodeOfDisposableGoods,deptCode)); @@ -1513,7 +1513,7 @@ */ @Override public List> searchAllTousseAndDiposableGoods(String simpleSpell,boolean showDisableGoods) { - List> mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(simpleSpell, new String[] {},showDisableGoods,null); + List> mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(simpleSpell, new String[] {},showDisableGoods); mapList.addAll(searchTousseOrDiposableGoodsBySpellAndWbCode(simpleSpell, false, false, false,false,false,"1","0",showDisableGoods,false,null)); return mapList; } @@ -1537,7 +1537,7 @@ public List> searchInsideTousseOrDiposableGoods(String simpleSpell, boolean isSearchTousse) { List> mapList = new ArrayList<>(); if (isSearchTousse) { - mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(simpleSpell, new String[] { TousseDefinition.PACKAGE_TYPE_INSIDE, TousseDefinition.PACKAGE_TYPE_DRESSING, TousseDefinition.PACKAGE_TYPE_HOMEMADE },false,null); + mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(simpleSpell, new String[] { TousseDefinition.PACKAGE_TYPE_INSIDE, TousseDefinition.PACKAGE_TYPE_DRESSING, TousseDefinition.PACKAGE_TYPE_HOMEMADE },false); } else { mapList.addAll(searchTousseOrDiposableGoodsBySpellAndWbCode(simpleSpell, false, false, false,false,false,"1","0",false,false,null)); @@ -1567,7 +1567,7 @@ @Override public List> searchTousseForBorrowing(String simpleSpell){ - List> mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(simpleSpell, new String[] { TousseDefinition.PACKAGE_TYPE_INSIDE, TousseDefinition.PACKAGE_TYPE_HOMEMADE },false,null); + List> mapList = searchTousseBySimpleCodeAndAnyTousseTypeArr(simpleSpell, new String[] { TousseDefinition.PACKAGE_TYPE_INSIDE, TousseDefinition.PACKAGE_TYPE_HOMEMADE },false); return mapList; } /* @@ -1812,7 +1812,7 @@ @SuppressWarnings("unchecked") @Override public List> searchTousseBySimpleCodeAndAnyTousseTypeArr(String searchString, - String[] tousseTypeArr ,boolean showDisableGoods, String handlerDepartCode) { + String[] tousseTypeArr ,boolean showDisableGoods) { String sql = createQuerySQL(searchString); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r17017 -r17019 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17017) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17019) @@ -9469,307 +9469,6 @@ return inFilter; } - - @Override - public List getTousseDeliverDetailData(String startTime, String endTime,String departCoding) { - startTime += " 00:00:00"; - endTime += " 23:59:59"; - - GoodsOption option = goodsOptionManager.getGoodsOption(GoodsOption.MODEL_TOUSSEDELIVERDETAIL, departCoding); - boolean notSignedItemsCanRegistUseRecord = CssdUtils.getSystemSetConfigByNameBool("notSignedItemsCanRegistUseRecord"); //已发货但未签收的物品,是否允许登记使用记录 - String signedTimeString = "and ti.invoiceSendTime"; - if (!notSignedItemsCanRegistUseRecord) { - signedTimeString = "and ti.signedDate"; - } - - - String[] optionSqlArray = new String[0]; - Map voMap = new HashMap(); - - if(option != null && StringUtils.isNotBlank(option.getValue())) { - - String[] valueArray = option.getValue().split(";"); - int valueArraySize = valueArray.length; - int optionSqlArraySize = (int) Math.ceil(valueArraySize/1000f); - optionSqlArray = new String[optionSqlArraySize]; - - - for (int i = 0; i < optionSqlArraySize; i ++) { - int startIndex = i * 1000; - int endIndex = (i == (optionSqlArraySize - 1) ? valueArraySize : (i + 1) * 1000); - String optionSql = ""; - for (int j = startIndex; j < endIndex; j ++) { - String tousseName = valueArray[j]; - optionSql += "'" + tousseName + "',"; - } - optionSql = optionSql.substring(0, optionSql.length() - 1); - optionSqlArray[i] = optionSql; - } - - } - - - - String betweenTemp = " between "+dateQueryAdapter.dateConverAdapter2(startTime, "yyyy-mm-dd HH24:MI:SS")+" and "+dateQueryAdapter.dateConverAdapter2(endTime, "yyyy-mm-dd HH24:MI:SS")+" "; - - String sql = - //申请的数量 - "select 'application' 'type',ti.tousseName tousseName,sum(ti.amount) amount " - + "from invoicePlan ip " - + "inner join TousseItem ti on ti.recyclingApplication_ID=ip.id " - + "where 1=1 " - + "and (ti.isTerminated is null or ti.isTerminated<>1) " - + "and ip.handleDepartCoding='"+departCoding+"' " - + "and ip.applicationTime"+betweenTemp - + "group by ti.tousseName " - + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) - - + " union all " - - //回收数量(包的数量) - + "select 'recycling' 'type',ti.tousseName tousseName,sum(ti.amount) amount " - + "from RecyclingRecord rr " - + "inner join TousseItem ti on ti.recyclingRecord_id=rr.id " - + "where 1=1 " - + "and rr.orgUnitCoding='"+departCoding+"' " - + "and rr.recyclingTime"+betweenTemp - + "group by ti.tousseName " - + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) - - + " union all " - - //清洗数量(材料的数量) - + "select 'washForMaterial' 'type',t1.tousseName tousseName,sum(t1.materialCount) amount " - + "from (select ci.tousseNameForMaterial tousseName,sum(ci.amount) materialCount " - + "from WashAndDisinfectRecord wr " - + "inner join ClassifyBasket_WashRecord cw on cw.WashAndDisinfectRecord_ID=wr.id " - + "inner join ClassifyBasket cb on cb.id=cw.ClassifyBasket_ID " - + "inner join ClassifiedItem ci on ci.classifybasket_id=cb.id " - + "where ci.itemType = '材料' " - + "and wr.orgunitcoding='"+departCoding+"' " - + "and wr.endDate"+betweenTemp - + "group by ci.tousseNameForMaterial " + (optionSqlArray.length==0?"having ci.tousseNameForMaterial in('')":createInFilterSql("ci.tousseNameForMaterial", optionSqlArray)) + " " - + "union all " - + "select td.name tousseName,sum(ci.amount*mi.count) materialCount " - + "from WashAndDisinfectRecord wr " - + "inner join ClassifyBasket_WashRecord cw on cw.WashAndDisinfectRecord_ID=wr.id " - + "inner join ClassifyBasket cb on cb.id=cw.ClassifyBasket_ID " - + "inner join ClassifiedItem ci on ci.classifybasket_id=cb.id " - + "inner join TousseDefinition td on ci.toussedefinition_id=td.id " - + "inner join MaterialInstance mi on mi.tousse_id=td.id " - + "where ci.itemType <> '材料' " - + "and wr.orgunitcoding='"+departCoding+"' " - + "and wr.endDate"+betweenTemp - + "group by td.name " + (optionSqlArray.length==0?"having td.name in('')":createInFilterSql("td.name", optionSqlArray)) + ") t1 " - + "group by t1.tousseName " - - + " union all " - - //装配数量(包的数量) - + "select 'packing' 'type',t2.tousseName tousseName,sum(t2.amount) amount " - + "from (select ti.tousseName tousseName,count(ti.tousseName) amount " - + "from PackingRecord pr " - + "inner join TousseInstance ti on ti.packingRecord_id=pr.id " - + "where 1=1 " - + "and pr.orgUnitCoding='"+departCoding+"' " - + "and pr.packTime"+betweenTemp - + "group by ti.tousseName " + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) + " " - + "union all " - + "select packingRecordTemp.tousseName tousseName,count(packingRecordTemp.tousseName) amount " - + "from (select fta.tousseName tousseName " - + "from PackingRecord pr " - + "inner join TousseInstance ti on ti.packingRecord_id=pr.id " - + "inner join TousseDefinition td on td.id=ti.tousseDefinition_id " - + "inner join ForeignTousseApplication fta on fta.id=ti.foreignTousseApp_id " - + "where 1=1 " - + "and td.tousseType='外来器械拆分小包' " - + "and pr.orgUnitCoding='"+departCoding+"' " - + "and pr.packTime"+betweenTemp - + "group by fta.tousseName,fta.id) packingRecordTemp " - + "group by packingRecordTemp.tousseName " + (optionSqlArray.length==0?"having packingRecordTemp.tousseName in('')":createInFilterSql("packingRecordTemp.tousseName", optionSqlArray)) + ") t2 " - + "group by t2.tousseName " - - + " union all " - - //审核数量(包的数量) - + "select 'review' 'type',t3.tousseName tousseName,sum(t3.amount) amount " - + "from (select ti.tousseName tousseName,count(ti.tousseName) amount " - + "from TousseInstance ti " - + "where 1=1 " - + "and ti.orgUnitCoding='"+departCoding+"' " - + "and ti.reviewTime"+betweenTemp - + "group by ti.tousseName " + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) + " " - + "union all " - + "select tousseInstanceTemp.tousseName tousseName,count(tousseInstanceTemp.tousseName) amount " - + "from (select fta.tousseName tousseName " - + "from TousseInstance ti " - + "inner join TousseDefinition td on td.id=ti.tousseDefinition_id " - + "inner join ForeignTousseApplication fta on fta.id=ti.foreignTousseApp_id " - + "where 1=1 " - + "and td.tousseType='外来器械拆分小包' " - + "and ti.orgUnitCoding='"+departCoding+"' " - + "and ti.reviewTime"+betweenTemp - + "group by fta.tousseName,fta.id) tousseInstanceTemp " - + "group by tousseInstanceTemp.tousseName " + (optionSqlArray.length==0?"having tousseInstanceTemp.tousseName in('')":createInFilterSql("tousseInstanceTemp.tousseName", optionSqlArray)) + ") t3 " - + "group by t3.tousseName " - - + " union all " - - //灭菌数量(包的数量) - + "select 'sterilization' 'type',t4.tousseName tousseName,sum(t4.amount) amount " - + "from (select ti.tousseName tousseName,count(ti.tousseName) amount " - + "from SterilizationRecord sr " - + "inner join TousseInstance ti on ti.sterilizationRecord_id=sr.id " - + "where 1=1 " - + "and ti.orgUnitCoding='"+departCoding+"' " - + "and sr.endDate"+betweenTemp - + "group by ti.tousseName " + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) + " " - + "union all " - + "select sterilizationTemp.tousseName tousseName,count(sterilizationTemp.tousseName) amount " - + "from (select fta.tousseName tousseName " - + "from SterilizationRecord sr " - + "inner join TousseInstance ti on ti.sterilizationRecord_id=sr.id " - + "inner join TousseDefinition td on td.id=ti.tousseDefinition_id " - + "inner join ForeignTousseApplication fta on fta.id=ti.foreignTousseApp_id " - + "where 1=1 " - + "and td.tousseType='外来器械拆分小包' " - + "and ti.orgUnitCoding='"+departCoding+"' " - + "and sr.endDate"+betweenTemp - + "group by fta.tousseName,fta.id) sterilizationTemp " - + "group by sterilizationTemp.tousseName " + (optionSqlArray.length==0?"having sterilizationTemp.tousseName in('')":createInFilterSql("sterilizationTemp.tousseName", optionSqlArray)) + ") t4 " - + "group by t4.tousseName " - - + " union all " - - //发货数量(包的数量) - + "select 'invoice' 'type',t5.tousseName tousseName,sum(t5.amount) amount " - + "from (select ti.tousseName tousseName,count(ti.tousseName) amount " - + "from Invoice i " - + "inner join TousseInstance ti on ti.invoice_id=i.id " - + "where 1=1 " - + "and i.orgUnitCoding='"+departCoding+"' " - + "and i.sendTime"+betweenTemp - + "group by ti.tousseName " + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) + " " - + "union all " - + "select invoiceTemp.tousseName tousseName,count(invoiceTemp.tousseName) amount " - + "from (select fta.tousseName tousseName " - + "from Invoice i " - + "inner join TousseInstance ti on ti.invoice_id=i.id " - + "inner join TousseDefinition td on td.id=ti.tousseDefinition_id " - + "inner join ForeignTousseApplication fta on fta.id=ti.foreignTousseApp_id " - + "where 1=1 " - + "and td.tousseType='外来器械拆分小包' " - + "and i.orgUnitCoding='"+departCoding+"' " - + "and i.sendTime"+betweenTemp - + "group by fta.tousseName,fta.id) invoiceTemp " - + "group by invoiceTemp.tousseName " + (optionSqlArray.length==0?"having invoiceTemp.tousseName in('')":createInFilterSql("invoiceTemp.tousseName", optionSqlArray)) + ") t5 " - + "group by t5.tousseName " - - + " union all " - - //发货数量(材料的数量) - + "select 'invoiceForMaterial' 'type',t6.tousseName tousseName,sum(t6.amount) amount " - + "from (select ti.tousseName tousseName,sum(mi.count) amount " - + "from Invoice i " - + "inner join TousseInstance ti on ti.invoice_id=i.id " - + "inner join TousseDefinition td on td.id=ti.tousseDefinition_id " - + "inner join MaterialInstance mi on mi.tousse_id=td.id " - + "where 1=1 " - + "and i.orgUnitCoding='"+departCoding+"' " - + "and i.sendTime"+betweenTemp - + "group by ti.tousseName " + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) + " " - + "union all " - + "select fta.tousseName tousseName,sum(mi.count) amount " - + "from Invoice i " - + "inner join TousseInstance ti on ti.invoice_id=i.id " - + "inner join TousseDefinition td on td.id=ti.tousseDefinition_id " - + "inner join MaterialInstance mi on mi.tousse_id=td.id " - + "inner join ForeignTousseApplication fta on fta.id=ti.foreignTousseApp_id " - + "where 1=1 " - + "and td.tousseType='外来器械拆分小包' " - + "and i.orgUnitCoding='"+departCoding+"' " - + "and i.sendTime"+betweenTemp - + "group by fta.tousseName,fta.id " + (optionSqlArray.length==0?"having fta.tousseName in('')":createInFilterSql("fta.tousseName", optionSqlArray)) + ") t6 " - + "group by t6.tousseName " - - + " union all " - - //签收数量 - + "select 'signed' 'type',t7.tousseName tousseName,sum(t7.amount) amount " - + "from (select ti.tousseName,count(*) amount " - + "from TousseInstance ti " - + "where 1=1 " - + "and ti.orgUnitCoding='"+departCoding+"' " - + signedTimeString + betweenTemp - + "group by ti.tousseName " + (optionSqlArray.length==0?"having ti.tousseName in('')":createInFilterSql("ti.tousseName", optionSqlArray)) + " " - + "union all " - + "select signedTemp.tousseName tousseName,count(*) amount " - + "from (select fta.tousseName tousseName " - + "from TousseInstance ti " - + "inner join TousseDefinition td on td.id=ti.tousseDefinition_id " - + "inner join ForeignTousseApplication fta on fta.id=ti.foreignTousseApp_id " - + "where 1=1 " - + "and td.tousseType='外来器械拆分小包' " - + "and ti.orgUnitCoding='"+departCoding+"' " - + signedTimeString + betweenTemp - + "group by fta.tousseName,fta.id) signedTemp " - + "group by signedTemp.tousseName " + (optionSqlArray.length==0?"having signedTemp.tousseName in('')":createInFilterSql("signedTemp.tousseName", optionSqlArray)) + ") t7 " - + "group by t7.tousseName" - ; - - ResultSet result = objectDao.executeSql(sql); - try { - while(result.next()){ - String type = result.getString("type"); - String tousseName = result.getString("tousseName"); - Integer amount = result.getInt("amount"); - - TousseDeliverDetailVO vo = voMap.get(tousseName); - if(vo == null){ - vo = new TousseDeliverDetailVO(); - vo.setTousseName(tousseName); - voMap.put(tousseName, vo); - } - if ("application".equals(type)) { - vo.setApplicationAmount(amount); - }else if ("recycling".equals(type)) { - vo.setRecyclingAmount(amount); - } else if ("washForMaterial".equals(type)) { - vo.setWashAndDisinfectAmount(amount); - } else if ("packing".equals(type)) { - vo.setPackingAmount(amount); - } else if ("review".equals(type)) { - vo.setReviewAmount(amount); - } else if ("sterilization".equals(type)) { - vo.setSterilizationAmount(amount); - } else if ("invoice".equals(type)) { - vo.setSendOutAmount(amount); - } else if ("invoiceForMaterial".equals(type)) { - vo.setMaterialAmount(amount); - } else if ("signed".equals(type)) { - vo.setSignAmount(amount); - } - } - } catch (SQLException e) { - e.printStackTrace(); - }finally { - DatabaseUtil.closeResultSetAndStatement(result); - } - - List voList = new ArrayList(); - int serialNum = 0; - if(voMap.size() > 0){ - for (String tousseName : voMap.keySet()) { - serialNum++; - TousseDeliverDetailVO vo = voMap.get(tousseName); - vo.setSerialNumber(serialNum); - voList.add(voMap.get(tousseName)); - } - } - - return voList; - } - public Integer getMaterialAmountByTousse(String tousseName,Map map){ if(map.get(tousseName) != null){ return map.get(tousseName); Index: ssts-web/src/main/webapp/jasperRtp/tousseDeliverDetailReport.jasper =================================================================== diff -u -r16880 -r17019 Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r17011 -r17019 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 17011) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 17019) @@ -337,8 +337,6 @@ */ public List getSterilizingStoveUseCountDetailData(String startTime,String endTime,String depart,String departCoding,String sterilizationPurpose); - public List getTousseDeliverDetailData(String startTime,String endTime,String departCoding); - public List getTousseWorkLoadData(String startTime,String endTime,String departCoding); public List getApparatusInfusionis(String startDay,String endDay,String departCoding,String showDetail);