Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r16946 -r16947 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 16946) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 16947) @@ -276,6 +276,13 @@ } }else if (reportName.equals("QualityMonitoring")) {// 质量监测 return jasperReportManager.getQualityMonitoringDataSource(); + }else if(reportName.equals("recycleMaterialDetail")){//回收器械材料明细报表 + String startTime = StrutsParamUtils.getPraramValue("startTime", ""); + String endTime = StrutsParamUtils.getPraramValue("endTime", ""); + String handelDepartCoding = StrutsParamUtils.getPraramValue("handelDepartCoding", ""); + String applyDepartCoding = StrutsParamUtils.getPraramValue("applyDepartCoding", ""); + String materialName = StrutsParamUtils.getPraramValue("materialName", ""); + return jasperReportManager.getRecycleMaterialDetail(startTime, endTime, handelDepartCoding, applyDepartCoding, materialName); }else if (reportName.equals("QualityMonitoringInspectMonthReport")) { // 质量监测项统计月报 String queryYear = StrutsParamUtils.getPraramValue("queryYear", ""); @@ -1355,6 +1362,12 @@ map.put("title2", "今年"); } return map; + }else if(reportName.equals("recycleMaterialDetail")){ + String startTime = StrutsParamUtils.getPraramValue("startTime", null); + String endTime = StrutsParamUtils.getPraramValue("endTime", null); + String title = "回收器械材料明细报表 (" + startTime + " ~ " + endTime + ")"; + map.put("title", title); + return map; } return map; Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/recycleMaterialDetailView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/recycleMaterialDetailView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/recycleMaterialDetailView.jsp (revision 16947) @@ -0,0 +1,70 @@ +<%@ 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-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/RecycleMaterialVo.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/RecycleMaterialVo.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/RecycleMaterialVo.java (revision 16947) @@ -0,0 +1,60 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; + +/** + * @author WangYi + * 2017年1月23日 上午10:58:50 + * 回收材料明细Vo + */ +public class RecycleMaterialVo { + + private Integer sortNum; + + private String department; + + private String materialName; + + private Integer amount; + + private String recycleDateTime; + + public Integer getSortNum() { + return sortNum; + } + + public void setSortNum(Integer sortNum) { + this.sortNum = sortNum; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } + + public String getRecycleDateTime() { + return recycleDateTime; + } + + public void setRecycleDateTime(String recycleDateTime) { + this.recycleDateTime = recycleDateTime; + } + +} Index: ssts-web/src/main/webapp/jasperRtp/recycleMaterialReport.jasper =================================================================== diff -u Binary files differ Index: ssts-web/src/main/webapp/jasperRtp/recycleMaterialReport.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/recycleMaterialReport.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/recycleMaterialReport.jrxml (revision 16947) @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + <band height="40" splitType="Stretch"> + <textField> + <reportElement uuid="f0a8789a-1f7c-40a1-b671-4acd24c78f90" x="0" y="0" width="660" height="40"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r16928 -r16947 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 16928) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 16947) @@ -483,6 +483,7 @@ {hidden :SSTS_QuotaReport,text:"十八项指标分析报表",href:WWWROOT+'/disinfectsystem/reportforms/quotaReportView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_WorkQualityCountReport,text:"工作质量持续收集统计报表",href:WWWROOT+'/disinfectsystem/reportforms/workQualityCollectionView.jsp',hrefTarget:linkTarget,leaf:true}, // {hidden :SSTS_WorkQualityCountReport,text:"工作质量持续收集饼状图统计报表",href:WWWROOT+'/disinfectsystem/reportforms/workQualityCollectionPicChartView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_RecycleMaterialDetailReport,text:"回收器械材料明细报表",href:WWWROOT+'/disinfectsystem/reportforms/recycleMaterialDetailView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_WashWorkloadReport,text:"清洗区工作量及不合格率月报",href:WWWROOT+'/disinfectsystem/reportforms/washWorkloadReportView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_WashWorkloadReport,text:"清洗区材料类型工作量统计报表",href:WWWROOT+'/disinfectsystem/reportforms/materialTypeWorkloadReportView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_PackingUnqualifieReport,text:"包装区工作量及不合格率月报",href:WWWROOT+'/disinfectsystem/reportforms/packingUnqualifieReportView.jsp',hrefTarget:linkTarget,leaf:true}, Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/recycleMaterialDetailView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/reportforms/recycleMaterialDetailView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/recycleMaterialDetailView.js (revision 16947) @@ -0,0 +1,250 @@ +var rd = new Ext.data.JsonReader( { + fields : [ + {name : 'id'}, + {name : 'departId'}, + {name : 'name'} + + ] +}); + +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){ + if(records.length > 0){ + Ext.getCmp('querySupplyRoom').setValue(records[0].data.departId); + } + } + } +}); + +var myMask; +Ext.onReady(function() { + Ext.QuickTips.init(); + + function reloadReport(){ + var startTime= Ext.getCmp('startTime').getRawValue(); + var endTime = Ext.getCmp('endTime').getRawValue(); + var handelDepartCoding = Ext.getCmp('querySupplyRoom').getValue(); + var applyDepartCoding = Ext.getCmp('departSearch').getValue(); + var materialName = Ext.getCmp('materialName').getValue(); + if(startTime == "" || endTime == ""){ + showResult("开始时间或结束时间不能为空!"); + return false; + } + if(handelDepartCoding == ""){ + showResult("请选择处理科室!"); + return false; + } + myMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载,请稍候!', + removeMask: true + }); + myMask.show(); + if(Ext.getCmp('departSearch').getRawValue() == ""){ + applyDepartCoding = ""; + } + if(Ext.getCmp('materialName').getRawValue() == ""){ + materialName = ""; + } + window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=recycleMaterialReport.jasper&startTime="+startTime+"&endTime="+endTime+"&handelDepartCoding="+handelDepartCoding+"&applyDepartCoding="+applyDepartCoding+"&materialName="+materialName+"&reportName=recycleMaterialDetail",'thisIframe','_self'); + } + + var departJsonStore = new Ext.data.SimpleStore({ + fields : [ 'departName' ], + url : WWWROOT + '/disinfectSystem/reportFormsCenterAction!getAllDepartName.do' + }); + + var departRecord = Ext.data.Record.create([ { + name : 'id' + }, { + name : 'name' + } ]); + + var departJsonStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getSettleAccountsDepartJson.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + root : 'data' + },departRecord + ) + }); + + var materialDefinitionStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!getMaterialDefinitionDataForMaterial.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'spelling',mapping : 'spelling'}, + {name : 'type',mapping : 'type'}, + {name : 'name',mapping : 'name'} + ]) + }); + + var dt = new Date(); + var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/" + dt.getDate(); + + 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, + items : [{ + layout : 'column', + height : 40, + labelWidth : 70, + items : [{ + columnWidth : .15, + layout : 'form', + labelWidth : 70, + items : [ { + xtype : 'datefieldWithMin', + fieldLabel : '开始时间', + id : 'startTime', + name : 'startTime', + editable : false, + format : 'Y-m-d H:i:s', + allowBlank : false, + anchor : '100%', + value: new Date(startDayofMonth) + } ] + },{ + layout : 'form', + columnWidth : .15, + labelWidth : 70, + items : [ { + xtype : 'datefieldWithMin', + fieldLabel : '结束时间', + id : 'endTime', + name : 'endTime', + editable : false, + format : 'Y-m-d H:i:s', + allowBlank : false, + anchor : '100%', + value: new Date() + } ] + },{ + columnWidth : .2, + 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', + anchor : '95%' + }] + },{ + layout : 'form', + columnWidth:.2, + labelWidth : 70, + items : [{ + xtype : 'combo', + id : 'departSearch', + name : 'departSearch', + queryParam : 'spell', + fieldLabel : '申请科室', + minChars : 0, + valueField : 'id', + displayField : 'name', + anchor : '95%', + store : departJsonStore, + lazyInit : true, + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + allowBlank : true + }] + },{ + layout:'form', + columnWidth:.2, + labelWidth:60, + items:[{ + xtype : 'combo', + id : 'materialName', + name : 'materialName', + queryParam : 'spell', + fieldLabel : '材料名称', + minChars : 0, + valueField : 'name', + displayField : 'name', + store : materialDefinitionStore, + forceSelection : true, + lazyInit : true, + anchor : '95%', + triggerAction : 'all', + hideTrigger : false, + typeAhead : false, + allowBlank : true + }] + }] + }], + buttons:[{ + text : '查询', + minWidth : 70, + iconCls : 'icon_search', + handler : function() { + reloadReport(); + } + },{ + text : '重置', + minWidth : 70, + iconCls : 'icon_set', + handler : function() { + $Id('startTime').value = ""; + $Id('endTime').value = ""; + $Id('querySupplyRoom').value = ""; + $Id('departSearch').value = ""; + $Id('materialName').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 + }] + }); + supplyRoomStore.load(); + }); \ No newline at end of file Index: ssts-web/src/main/resources/systemset/operationDefine.xml =================================================================== diff -u -r16856 -r16947 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 16856) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 16947) @@ -295,6 +295,7 @@ + Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r16946 -r16947 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 16946) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 16947) @@ -145,6 +145,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.PackingFractionDefectiveBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.QualityMonitoringInspectBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.QualityMonitoringInspectMonthLineChartBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.RecycleMaterialVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.ReturnGoodsItemVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.ReturnGoodsVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.ReturnRecordItemVo; @@ -12164,5 +12165,65 @@ listMap.add(map); return listMap; } + + /** + * 获取回收器械材料明细 + */ + @Override + public List getRecycleMaterialDetail(String startTime, String endTime, + String handelDepartCoding, String applyDepartCoding, + String materialName) { + List voList = new ArrayList(); + if(StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime) || StringUtils.isBlank(handelDepartCoding)){ + return voList; + } + String sql = String.format("select po1.depart,po1.recyclingTime,po5.name,po5.specification,(po2.amount * po4.count) " + + "from %s po1, %s po2, %s po3, %s po4, %s po5", RecyclingRecord.class.getSimpleName(),TousseItem.class.getSimpleName(), + TousseDefinition.class.getSimpleName(),MaterialInstance.class.getSimpleName(),MaterialDefinition.class.getSimpleName()); + sql += " where po1.id = po2.recyclingRecord_id and po2.tousseDefinitionId = po3.id and po3.id = po4.tousse_id " + + "and po4.materialDefinition_id = po5.id and po1.recyclingTime between " + dateQueryAdapter.dateAdapter(startTime) + + " and " + dateQueryAdapter.dateAdapter(endTime); + sql += " and po1.orgUnitCoding = '" + handelDepartCoding + "'"; + if(StringUtils.isNotBlank(applyDepartCoding)){ + sql += " and po1.departCode = '" + applyDepartCoding + "'"; + } + if(StringUtils.isNotBlank(materialName)){ + JSONObject json = CssdUtils.getGoodsNameAndSp(materialName); + String goodsName = json.optString("materialName"); + String sp = json.optString("specification"); + sql += " and po5.name = '" + goodsName + "'"; + if(StringUtils.isBlank(sp)){ + sql += " and (po5.specification is null or po5.specification = '')"; + }else{ + sql += " and po5.specification = '" + sp + "' "; + } + } + sql += " order by po1.id asc"; + ResultSet rs = objectDao.executeSql(sql); + try { + int sortNum = 1; + while(rs.next()){ + RecycleMaterialVo vo = new RecycleMaterialVo(); + vo.setDepartment(rs.getString(1)); + Date recyclingTime = rs.getTimestamp(2); + vo.setRecycleDateTime(ForgonDateUtils.safelyFormatDate(recyclingTime, Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); + String name = rs.getString(3); + String sp = rs.getString(4); + if(StringUtils.isNotBlank(sp)){ + name += "[" + sp + "]"; + } + vo.setMaterialName(name); + vo.setAmount(rs.getInt(5)); + vo.setSortNum(sortNum); + voList.add(vo); + sortNum++; + } + } catch (SQLException e) { + e.printStackTrace(); + } finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + return voList; + } } Index: ssts-web/src/main/webapp/homepage/menu.jsp =================================================================== diff -u -r16856 -r16947 --- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 16856) +++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 16947) @@ -131,7 +131,7 @@ var SSTS_QualityMonitoring_Menu_1 = true; - + SSTS_QualityMonitoring_Menu_1 = false; @@ -203,6 +203,11 @@ SSTS_WashWorkloadReport = false; +var SSTS_RecycleMaterialDetailReport = true; + +SSTS_RecycleMaterialDetailReport = false; + + var SSTS_YearWashReportChart = true; SSTS_YearWashReportChart = false; Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r16946 -r16947 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 16946) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 16947) @@ -396,4 +396,15 @@ * @return */ public List getQualityMonitoringInspectMonthParamet(String queryYear,String monitoringType,String inspectItem,String inspectDetail,String type); + + /** + * 回收器械材料明细报表 + * @param startTime + * @param endTime + * @param handelDepartCoding + * @param applyDepartCoding + * @param materialName + * @return + */ + public List getRecycleMaterialDetail(String startTime,String endTime,String handelDepartCoding,String applyDepartCoding,String materialName); }