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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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);
}