Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.js (revision 22914) @@ -0,0 +1,136 @@ +var entityName = '清洗区人员工作量统计报表'; +var form; + +/** + * 加载报表的数据 + * + */ +var myMask; +function reloadReport(){ + if (!form.getForm().isValid()) { + showResult('请正确填写表单各值'); + return false; + } + + var monthSearch = $Id('monthSearch').value; + var departmentCode = Ext.getCmp('querySupplyRoom').getValue(); + + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do" + + "?jasperreportName=cleaningAreaWorkloadForUser.jasper&reportName=cleaningAreaWorkloadForUser" + + "&monthSearch=" + monthSearch + + "&departmentCode=" + departmentCode, + 'thisIframe', '_self'); +} + + +Ext.onReady(function() { + Ext.QuickTips.init(); + + //任务组combo的store + var taskGroupJsonStore = new Ext.data.SimpleStore({ + fields : [ 'taskGroupName' ], + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getTaskGroupName.do', + listeners : { + beforeload : function(_this, options) { + _this.baseParams.handlerDepartCode = Ext.getCmp('querySupplyRoom').getValue(); + } + } + }); + + 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 : 100, + labelWidth : 70, + width : 1000, + items : [{ + width : 160, + layout : 'form', + labelWidth : 60, + items : [ + new Ext.form.DateField({ + id:'monthSearch', + name : 'monthSearch', + fieldLabel : '月份', + readOnly : true, + allowBlank : false, + format:'Y-m', + value : new Date(), + anchor : '95%' + }) + ] + },{ + columnWidth:.25, + layout : 'form', + labelSeparator : '选择供应室:', + items : [{ + xtype : 'combo', + id : 'querySupplyRoom', + name : 'querySupplyRoom', + valueField : 'departmentCode', + displayField : 'name', + allowBlank : true, + editable : false, + store : supplyRoomStore, + forceSelection : true, + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }] + }] + }], + buttons:[{ + xtype : 'button', + text : '查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + reloadReport(); + } + },{ + xtype : 'button', + text : '重置', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + $Id('monthSearch').value = ""; + } + }] + }); + + 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 + }] + }); + +}); \ No newline at end of file Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r22873 -r22914 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 22873) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 22914) @@ -541,6 +541,7 @@ {hidden :SSTS_USERECORD_ForGoods,text:"使用记录物品分类汇总表",href:WWWROOT+'/disinfectsystem/reportforms/summaryUseRecordForGoodsView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_SterilizingStoveUseCountReport,text:"灭菌炉使用次数统计报表",href:WWWROOT+'/disinfectsystem/reportforms/sterilizingStoveUseCountView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_TousseWorkLoadTotalReport,text:(sstsConfig.tousseWorkLoadName ? sstsConfig.tousseWorkLoadName : "器械包工作量统计报表"),href:WWWROOT+'/disinfectsystem/reportforms/tousseWorkLoadView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_CleaningAreaWorkloadForUser,text:'清洗区人员工作量统计报表',href:WWWROOT+'/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_WaitPackingTaskReport,text:'待装配任务工作表',href:WWWROOT+'/disinfectsystem/reportforms/waitPackingTaskReport.jsp',hrefTarget:linkTarget,leaf:true} ] Index: ssts-web/src/main/resources/systemset/operationDefine.xml =================================================================== diff -u -r22690 -r22914 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 22690) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 22914) @@ -392,6 +392,7 @@ + Index: ssts-web/src/main/webapp/jasperRtp/cleaningAreaWorkloadForUser.jasper =================================================================== diff -u Binary files differ Index: ssts-web/src/main/webapp/homepage/menu.jsp =================================================================== diff -u -r22535 -r22914 --- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 22535) +++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 22914) @@ -129,7 +129,7 @@ * 《消毒供应中心工作量统计报表》菜单 */ var SSTS_WorkLoad_Menu = true; - + if (!notInWhiteList(sstsConfig, 'workloadStatisticsRelatedReports')) { SSTS_WorkLoad_Menu = false; } @@ -217,6 +217,16 @@ /** + * 《清洗区人员工作量统计报表》权限 + */ +var SSTS_CleaningAreaWorkloadForUser = true; + +if (sstsConfig.enableCleaningAreaWorkloadForUser) { + SSTS_CleaningAreaWorkloadForUser = false; +} + + +/** * 《灭菌遗漏检查表》权限 */ var SSTS_SterilizationOmitReport = true; Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r22691 -r22914 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 22691) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 22914) @@ -1019,6 +1019,10 @@ String departCode = StrutsParamUtils.getPraramValue("departCode", ""); String remark = StrutsParamUtils.getPraramValue("remark", ""); return recyclingItemManager.loadUnqualifiedPretreatments(startDate, endDate, departCode, remark); + }else if("cleaningAreaWorkloadForUser".equals(reportName)){ + String monthSearch = StrutsParamUtils.getPraramValue("monthSearch", ""); + String departmentCode = StrutsParamUtils.getPraramValue("departmentCode", ""); + return jasperReportManager.getCleaningAreaWorkloadForUserData(monthSearch, departmentCode); } return null; } @@ -1706,6 +1710,10 @@ String startDate = StrutsParamUtils.getPraramValue("startDate", ""); String endDate = StrutsParamUtils.getPraramValue("endDate", ""); map.put("title", String.format("预处理不合格统计报表(%s~%s)", startDate, endDate)); + }else if("cleaningAreaWorkloadForUser".equals(reportName)){ + String monthSearch = StrutsParamUtils.getPraramValue("monthSearch", ""); + String departmentCode = StrutsParamUtils.getPraramValue("departmentCode", ""); + map.put("title", String.format("清洗区人员工作量统计报表(%s)", monthSearch)); } return map; } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r22691 -r22914 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 22691) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 22914) @@ -16,6 +16,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.ApparatusInfusionisType; import com.forgon.disinfectsystem.jasperreports.javabeansource.BaseBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.BorrowingRecordVo; +import com.forgon.disinfectsystem.jasperreports.javabeansource.CleaningAreaWorkloadForUser; import com.forgon.disinfectsystem.jasperreports.javabeansource.CrossTableBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.DamageErrorMontBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.DepartMentTousseOperate; @@ -684,5 +685,14 @@ */ public List getSupplyRoomQualityQuota(String departmentCode, String queryScope, String queryTime); + + /** + * 获取清洗区人员工作量统计报表的数据 + * @param monthSearch 查询的月份 + * @param departmentCode 供应室的科室编码 + * @return + */ + public List getCleaningAreaWorkloadForUserData(String monthSearch, + String departmentCode); } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/CleaningAreaWorkloadForUser.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/CleaningAreaWorkloadForUser.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/CleaningAreaWorkloadForUser.java (revision 22914) @@ -0,0 +1,62 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; +/** + * 清洗区人员工作量统计报表的javabean + * @author Chenjiaru 2018-04-09 + * + */ +public class CleaningAreaWorkloadForUser { + + /** + * 清洗责任人 + */ + private String personInCharge; + + /** + * 清洗责任人的编码 + */ + private String personInChargeCode; + + /** + * 材料类型 + */ + private String type; + + /** + * 数量 + */ + private Integer amount = 0; + + + public String getPersonInCharge() { + return personInCharge; + } + + public void setPersonInCharge(String personInCharge) { + this.personInCharge = personInCharge; + } + + public String getPersonInChargeCode() { + return personInChargeCode; + } + + public void setPersonInChargeCode(String personInChargeCode) { + this.personInChargeCode = personInChargeCode; + } + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + +} Index: ssts-web/src/main/webapp/disinfectsystem/config/kpszxyy/config.js =================================================================== diff -u -r22653 -r22914 --- ssts-web/src/main/webapp/disinfectsystem/config/kpszxyy/config.js (.../config.js) (revision 22653) +++ ssts-web/src/main/webapp/disinfectsystem/config/kpszxyy/config.js (.../config.js) (revision 22914) @@ -1 +1 @@ -var sstsConfig = {"companyName":"dingxiang","disableIdCard":false,"mustScanBasketForTousseReview":false,"mustScanBasketForTousseReviewOf2ndSupplyRoom":false,"applicationFormType":"2","hidePackageSpec":false,"showTousseUnitColumn":true,"hideToussePriceColumn":true,"hideDisposablePriceColumn":true,"barcodeType":2,"autoReturnTousse":false,"hideEnterReviewListButton":true,"autoFillUserName":false,"autoFillUserNameLength":6,"enableTerminatePartOfApplication":true,"restrictGodownEntryDiposableGoods":false,"showAppliedGoodsBeforeSubmit":true,"hideWashHandNurseOfUseRecord":true,"useRecordWashHandNurseAllowBlank":true,"hideTreatmentNumOfUseRecord":false,"useRecordAuditMode":2,"hideApplyDepartColumn":false,"hideSettleDepartColumn":true,"hideDiposableGoodsPrice":true,"showExternalCodeOfDisposableGoods":true,"autoFillExternalCodeOfDisposableGoods":true,"printValidDateUtil":true,"godownEntryShowInvoice":true,"godownEntryShowBiologicalTestReport":true,"moneyDigitCount":4,"idCardUseAmountNoticeType":1,"showTousseWeight":true,"isHideHospitalNumber":false,"closeFormDefinition":false,"useRecordConvertRecyclingApplicationRemark":"手术台数:@operationAmount;器械包数量:@tousseAmount","useRecordConvertRecyclingApplicationMergeRegular":"operationRoom","confirmRecyclingAmount":false} \ No newline at end of file +var sstsConfig = {"companyName":"dingxiang","disableIdCard":false,"enableCleaningAreaWorkloadForUser":true,"mustScanBasketForTousseReview":false,"mustScanBasketForTousseReviewOf2ndSupplyRoom":false,"applicationFormType":"2","hidePackageSpec":false,"showTousseUnitColumn":true,"hideToussePriceColumn":true,"hideDisposablePriceColumn":true,"barcodeType":2,"autoReturnTousse":false,"hideEnterReviewListButton":true,"autoFillUserName":false,"autoFillUserNameLength":6,"enableTerminatePartOfApplication":true,"restrictGodownEntryDiposableGoods":false,"showAppliedGoodsBeforeSubmit":true,"hideWashHandNurseOfUseRecord":true,"useRecordWashHandNurseAllowBlank":true,"hideTreatmentNumOfUseRecord":false,"useRecordAuditMode":2,"hideApplyDepartColumn":false,"hideSettleDepartColumn":true,"hideDiposableGoodsPrice":true,"showExternalCodeOfDisposableGoods":true,"autoFillExternalCodeOfDisposableGoods":true,"printValidDateUtil":true,"godownEntryShowInvoice":true,"godownEntryShowBiologicalTestReport":true,"moneyDigitCount":4,"idCardUseAmountNoticeType":1,"showTousseWeight":true,"isHideHospitalNumber":false,"closeFormDefinition":false,"useRecordConvertRecyclingApplicationRemark":"手术台数:@operationAmount;器械包数量:@tousseAmount","useRecordConvertRecyclingApplicationMergeRegular":"operationRoom","confirmRecyclingAmount":false} \ No newline at end of file Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r22804 -r22914 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 22804) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 22914) @@ -134,6 +134,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.BaseBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.BorrowingRecordItemVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.BorrowingRecordVo; +import com.forgon.disinfectsystem.jasperreports.javabeansource.CleaningAreaWorkloadForUser; import com.forgon.disinfectsystem.jasperreports.javabeansource.CrossTableBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.DamageErrorMontBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.DepartMentTousseOperate; @@ -20234,5 +20235,68 @@ } return list; } + + @Override + public List getCleaningAreaWorkloadForUserData( + String monthSearch, String departmentCode) { + List list = new ArrayList(); + if (StringTools.isNotBlank(monthSearch) && StringTools.isNotBlank(departmentCode)) { + /** + * 获取当月的时间段 + */ + List dayList = ForgonDateUtils.getFirstDayToLastDay(monthSearch); + String start = dayList.get(0); //这里不会出现空指针和空的集合,所以这里可以直接get + String end = dayList.get(dayList.size() - 1); + String betweenSql = dateQueryAdapter.dateAreaSql("wr.endDate", start, end, true); + + String sql = String.format("select temp.personInChargeCode,min(temp.personInCharge) personInCharge,temp.type,sum(temp.amount) amount " + + "from (" + + "select case when cb.personInChargeCode is null or cb.personInChargeCode='' then wr.operatorCode else cb.personInChargeCode end personInChargeCode," + + "case when cb.personInCharge is null or cb.personInCharge='' then wr.operator else cb.personInCharge end personInCharge," + + "md.type,ci.amount*mi.count amount " + + "from WashAndDisinfectRecord wr " + + "join ClassifyBasket_WashRecord cw on cw.washAndDisinfectRecord_ID=wr.id " + + "join ClassifyBasket cb on cb.id=cw.ClassifyBasket_ID " + + "join ClassifiedItem ci on ci.classifybasket_id=cb.id " + + "join TousseDefinition td on td.id=ci.toussedefinition_id " + + "join MaterialInstance mi on mi.tousse_id=td.id " + + "join MaterialDefinition md on md.id=mi.materialDefinition_id " + + "where wr.orgUnitCoding='%s' and %s " + + "union all " + + "select case when cb.personInChargeCode is null or cb.personInChargeCode='' then wr.operatorCode else cb.personInChargeCode end personInChargeCode," + + "case when cb.personInCharge is null or cb.personInCharge='' then wr.operator else cb.personInCharge end personInCharge," + + "md.type,ci.amount amount " + + "from WashAndDisinfectRecord wr " + + "join ClassifyBasket_WashRecord cw on cw.washAndDisinfectRecord_ID=wr.id " + + "join ClassifyBasket cb on cb.id=cw.ClassifyBasket_ID " + + "join ClassifiedItem ci on ci.classifybasket_id=cb.id " + + "join MaterialDefinition md on md.id=ci.materialDefinition_id " + + "where wr.orgUnitCoding='%s' and %s" + + ") temp group by temp.personInChargeCode,temp.type" + , departmentCode, betweenSql, departmentCode, betweenSql); + + ResultSet rs = objectDao.executeSql(sql); + try { + while (rs.next()) { + String personInChargeCode = StringTools.defaultString(rs.getString("personInChargeCode")); + String personInCharge = StringTools.defaultString(rs.getString("personInCharge")); + String type = StringTools.defaultString(rs.getString("type")); + int amount = rs.getInt("amount"); + + CleaningAreaWorkloadForUser vo = new CleaningAreaWorkloadForUser(); + vo.setPersonInCharge(personInCharge); + vo.setPersonInChargeCode(personInChargeCode); + vo.setType(type); + vo.setAmount(amount); + list.add(vo); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + } + return list; + } } Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/cleaningAreaWorkloadForUser.jsp (revision 22914) @@ -0,0 +1,24 @@ +<%@page contentType="text/html; charset=UTF-8"%> +<%@include file="/common/taglibs.jsp"%> +<%@include file="/common/includeExtJsAndCss.jsp"%> + + + + + + + + +<%-- 月份时间控件 --%> + + + + + +清洗区人员工作量统计 + + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/jasperRtp/cleaningAreaWorkloadForUser.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/cleaningAreaWorkloadForUser.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/cleaningAreaWorkloadForUser.jrxml (revision 22914) @@ -0,0 +1,278 @@ + + + + + +