Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/returnGoodsSummary.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/returnGoodsSummary.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/returnGoodsSummary.java (revision 12937) @@ -0,0 +1,49 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; + +/** + * 退货汇总表 + * @author WangYi + */ +public class returnGoodsSummary { + + private Long id; + + private String deptName; + + private Integer totalAmount; + + private Double totalPrice; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public Integer getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(Integer totalAmount) { + this.totalAmount = totalAmount; + } + + public Double getTotalPrice() { + return totalPrice; + } + + public void setTotalPrice(Double totalPrice) { + this.totalPrice = totalPrice; + } + +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r12911 -r12937 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 12911) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 12937) @@ -23,19 +23,23 @@ import java.util.List; import java.util.Map; import java.util.Set; + import javax.servlet.http.HttpServletResponse; + import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.util.JRLoader; + import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; + import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.reportoption.GoodsOptionManager; @@ -268,6 +272,12 @@ String querySupplyRoom = StrutsParamUtils.getPraramValue("querySupplyRoom", ""); return jasperReportManager.getDeviceMaintenanceSource(startDay, endDay,querySupplyRoom); + }else if(reportName.equals("returnGoods")){ + String startDay = StrutsParamUtils.getPraramValue("startDay", ""); + String endDay = StrutsParamUtils.getPraramValue("endDay", ""); + String type = StrutsParamUtils.getPraramValue("tousseType", ""); + String depart = StrutsParamUtils.getPraramValue("depart", ""); + return jasperReportManager.getReturnGoodsSummarySource(startDay, endDay, type, depart); } else if (reportName.equals("deviceMonitoring")) {// 设备监测报表 String startDay = StrutsParamUtils.getPraramValue("startDay", ""); String endDay = StrutsParamUtils.getPraramValue("endDay", ""); @@ -1049,7 +1059,6 @@ getUseRecordOperatorTotalViewParam(map); } else if (reportName.equals("invoiceQuery")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String depart = StrutsParamUtils.getPraramValue("depart", "全部"); String startDate = StrutsParamUtils.getPraramValue("startDate", sdf.format(new Date())); String endDate = StrutsParamUtils.getPraramValue("endDate", sdf.format(new Date())); map.put("title", startDate+"至"+endDate+"科室发货物品明细"); @@ -1106,6 +1115,11 @@ map.put("timeStart", startDay); map.put("timeEnd", endDay); map.put("orgUnit", orgUnit); + }else if(reportName.equals("returnGoods")){ + String startDay = StrutsParamUtils.getPraramValue("startDay", ""); + String endDay = StrutsParamUtils.getPraramValue("endDay", ""); + String title = "退货统计报表 " + startDay + "&" + endDay; + map.put("title", title); } return map; @@ -2252,24 +2266,11 @@ */ private void getReturnGoodsParam(Map map) { String depart = StrutsParamUtils.getPraramValue("depart", ""); - String month = StrutsParamUtils.getPraramValue("month", ""); - String title = "退货查询报表" - + (StringUtils.isNotBlank(month) ? "(" + month + ")" : ""); - Map monthMap = getMonthStartAndEndDate(month); - map.put("title", title);// 这里的参数title,其实就是iporet定义的$P{title} - + String startDay = StrutsParamUtils.getPraramValue("startDay", ""); + String endDay = StrutsParamUtils.getPraramValue("endDay", ""); + String title = "退货统计报表 " + startDay + "&" + endDay; + map.put("title", title); String returnGoodsQuery = ""; - - if (StringUtils.isNotBlank(month)) { - String startDay = dateQueryAdapter.dateAdapter(monthMap - .get("startDay")); - String endDay = dateQueryAdapter - .dateAdapter(monthMap.get("endDay")); - returnGoodsQuery += " and i.returnTime between " + startDay - + " and " + endDay + " "; - } else { - returnGoodsQuery += "and 1=2 "; - } String goodsSearch = StrutsParamUtils.getPraramValue("goodsSearch", ""); String tousseType = StrutsParamUtils.getPraramValue("tousseType", ""); @@ -2288,13 +2289,16 @@ returnGoodsQuery += " and t.tousseName like '%" + goodsSearch + "%'"; } + if (StringUtils.isNotBlank(tousseType)) { if (tousseType.equals("一次性物品")) { returnGoodsQuery += " and i.type = '一次性物品'"; } else if (tousseType.equals("器械包")) { returnGoodsQuery += " and i.type = '器械包' "; } } + String deptCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + returnGoodsQuery += " and i.handleDepartCode = '" + deptCode + "' "; map.put("returnGoodsQuery", returnGoodsQuery); } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r12911 -r12937 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 12911) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 12937) @@ -41,6 +41,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.WorkQualityCollection; import com.forgon.disinfectsystem.jasperreports.javabeansource.YearReportChartBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.YearWorkLoadReportBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.returnGoodsSummary; import com.forgon.disinfectsystem.vo.SupplyRoomMaterialStocktaking; /** @@ -89,6 +90,8 @@ public List getDeviceMaintenanceSource( String startDate, String endDate,String querySupplyRoom); + + public List getReturnGoodsSummarySource(String startDay,String endDay,String type,String department); public List getdeviceMonitoringSource( String startDate, String endDate); Index: ssts-web/src/main/webapp/jasperRtp/returnGoods_child_1.jasper =================================================================== diff -u -r12679 -r12937 Binary files differ Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r12790 -r12937 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 12790) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 12937) @@ -398,7 +398,7 @@ //{hidden :SSTS_MonthDiposableGoodsReport,text:"消毒供应中心物资收发月报",href:WWWROOT+'/disinfectsystem/reportforms/monthDiposableGoodsReportView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_EOGoodsDetailReport,text:"发货物品统计月报(按灭菌程序)",href:WWWROOT+'/disinfectsystem/reportforms/EOGoodsDetailView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_GodownEntryStatistic,text:"消耗物品月盘点统计报表",href:WWWROOT+'/disinfectsystem/reportforms/disposableGoodsInventoryView.jsp',hrefTarget:linkTarget,leaf:true}, - {hidden :SSTS_ReturnGoodsDetailReport,text:"退货查询报表",href:WWWROOT+'/disinfectsystem/reportforms/returnGoodsDetailView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_ReturnGoodsDetailReport,text:"退货统计报表",href:WWWROOT+'/disinfectsystem/reportforms/returnGoodsDetailView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_GodownEntryStatistic,text:"入库物品统计报表",href:WWWROOT+'/disinfectsystem/reportforms/godownEntryStatisticView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_GodownEntryStatistic,text:"入库物品统计报表(按供应商)",href:WWWROOT+'/disinfectsystem/reportforms/godownEntrySummaryView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_GodownEntryStatistic,text:"入库物品明细统计报表",href:WWWROOT+'/disinfectsystem/reportforms/godownEntryDetailStatisticView.jsp',hrefTarget:linkTarget,leaf:true}, Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r12915 -r12937 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 12915) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 12937) @@ -68,6 +68,8 @@ import com.forgon.disinfectsystem.entity.recyclingdamagerecord.RecyclingDamageRecord; import com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; +import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsItem; +import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsRecord; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.entity.useRecord.UseRecord; @@ -116,6 +118,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.YearWorkLoad; import com.forgon.disinfectsystem.jasperreports.javabeansource.YearWorkLoadReportBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.YearWorkloadBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.returnGoodsSummary; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; @@ -7531,4 +7534,49 @@ return ret; } + + @Override + public List getReturnGoodsSummarySource(String startDay, String endDay,String type, + String department) { + List summarys = new ArrayList(); + if(StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)){ + String sql = "select min(r.depart),sum(i.amount),sum(i.settlementPrice) from " + + ReturnGoodsItem.class.getSimpleName() + + " i," + + ReturnGoodsRecord.class.getSimpleName() + + " r where r.id = i.returnGoodsRecord_ID and r.returnTime between " + + dateQueryAdapter.dateAdapter(startDay) + " and " + + dateQueryAdapter.dateAdapter(endDay); + if (StringUtils.isNotBlank(type)) { + sql += " and r.type = '" + type + "'"; + } + if (StringUtils.isNotBlank(department)) { + sql += " and r.depart = '" + department + "'"; + } + String deptCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + sql += " and r.handleDepartCode = '" + deptCode + "'"; + sql += "group by r.departCoding"; + ResultSet rs = objectDao.executeSql(sql); + Long i = 1L; + try { + while(rs.next()){ + String dept = rs.getString(1); + Integer tAmount = rs.getInt(2); + Double tPrice = rs.getDouble(3); + returnGoodsSummary summary = new returnGoodsSummary(); + summary.setId(i); + summary.setDeptName(dept); + summary.setTotalAmount(tAmount); + summary.setTotalPrice(tPrice); + summarys.add(summary); + i++; + } + } catch (SQLException e) { + e.printStackTrace(); + } finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + } + return summarys; + } } Index: ssts-web/src/main/webapp/jasperRtp/returnGoodsSummary.jasper =================================================================== diff -u Binary files differ Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/returnGoodsDetailView.js =================================================================== diff -u -r12331 -r12937 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/returnGoodsDetailView.js (.../returnGoodsDetailView.js) (revision 12331) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/returnGoodsDetailView.js (.../returnGoodsDetailView.js) (revision 12937) @@ -1,4 +1,4 @@ -var entityName = "退货明细"; +var entityName = "退货统计"; var grid; var myMask; @@ -8,11 +8,21 @@ function reloadReport(){ - var monthSearch= $Id('monthSearch').value; + var startDay= $Id('startDay').value; + var endDay= $Id('endDay').value; var departSearch = $Id('departSearch').value; var goodsSearch = $Id('goodsSearch').value; - goodsSearch = goodsSearch.replace(/\%/g,'%25'); - goodsSearch = goodsSearch.replace('#','%23'); + var summaryType = $Id('summaryType').value; + if(startDay == "" || endDay == ""){ + showResult("请选择开始日期、结束日期!"); + return; + } + if(summaryType == ""){ + showResult("请选择统计类型!"); + return; + } + goodsSearch = goodsSearch.replace(/\%/g,'%25'); + goodsSearch = goodsSearch.replace('#','%23'); var tousseType = $Id('tousseType').value; if(departSearch == "全部"){ departSearch = ""; @@ -26,7 +36,12 @@ removeMask: true }); myMask.show(); - window.open(WWWROOT + "/jasperreports/jasperreportsAction!createJasperPrint.do?jasperreportName=returnGoods_main_1.jasper&depart="+departSearch+"&month="+monthSearch+"&reportName=returnGoods&goodsSearch="+goodsSearch+"&tousseType="+tousseType+"",'thisIframe','_self'); + + if(summaryType == "退货汇总"){ + window.open(WWWROOT + "/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=returnGoodsSummary.jasper&depart="+departSearch+"&startDay="+startDay+"&endDay="+endDay+"&reportName=returnGoods&goodsSearch="+goodsSearch+"&tousseType="+tousseType+"",'thisIframe','_self'); + }else{ + window.open(WWWROOT + "/jasperreports/jasperreportsAction!createJasperPrint.do?jasperreportName=returnGoods_main_1.jasper&depart="+departSearch+"&startDay="+startDay+"&endDay="+endDay+"&reportName=returnGoods&goodsSearch="+goodsSearch+"&tousseType="+tousseType+"",'thisIframe','_self'); + } } Ext.ux.ForgonPageGrid.prototype.getGridParameterMap = function() {}; @@ -50,6 +65,11 @@ data : [ ['全部'],['器械包'],['一次性物品'] ] }); + var summaryTypeStore = new Ext.data.SimpleStore( { + fields : ['value'], + data : [ ['退货汇总'],['退货明细']] + }); + var tousseAndDiposableGoodsStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchInsideTousseAndDiposableGoods.do?showUnAppDiposableGoods=true', @@ -67,8 +87,11 @@ ) }); + var dt = new Date(); + var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"; + var form = new Ext.form.FormPanel({ - title : '退货明细列表', + title : '退货统计报表', region : 'north', labelAlign : 'right', buttonAlign : 'center', @@ -85,31 +108,50 @@ items : [{ layout : 'form', labelWidth : 60, - columnWidth : .3, + columnWidth : .2, items : [new Ext.form.DateField({ - id:'monthSearch', - name : 'monthSearch', - fieldLabel : '年月', + id:'startDay', + name : 'startDay', + fieldLabel : '开始日期', readOnly : false, - format:'Y-m', - altFormats:'Y-m|Y-n|y-n|y-m|y-m|y-n|Y-n|Y-m|Ym|Yn|yn|ym|ym|yn|Yn|Ym|Y/m|Y/n|y/n|y/m|y/m|y/n|Y/n|Y/m', + format:'Y-m-d', + value : new Date(startDayofMonth), + anchor : '95%' + })] + },{ + layout : 'form', + labelWidth : 60, + columnWidth : .2, + items : [new Ext.form.DateField({ + id:'endDay', + name : 'endDay', + fieldLabel : '结束日期', + readOnly : false, + format:'Y-m-d', value : new Date(), - anchor : '95%', - listeners : { - specialkey : function(field, ee) { - if (ee.getKey() == Ext.EventObject.ENTER) { - var isOK = field.validate(); - if(isOK){ - var value = field.getValue(); - field.setValue(value); - reloadReport(); - } - } - } - } + anchor : '95%' })] + }, { + columnWidth : .2, + layout : 'form', + labelWidth : 60, + items : [{ + xtype : 'combo', + fieldLabel : '统计类型', + id : 'summaryType', + name : 'summaryType', + valueField : 'value', + displayField : 'value', + store : summaryTypeStore, + forceSelection : true, + editable : false, + value : '退货汇总', + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }] },{ - columnWidth : .6, + columnWidth : .2, layout : 'form', labelWidth : 60, items : [{ @@ -128,10 +170,10 @@ hideTrigger : true, typeAhead : false, allowBlank : true, - anchor : '70%' + anchor : '95%' }] }, { - columnWidth : .3, + columnWidth : .2, layout : 'form', labelWidth : 60, items : [{ @@ -149,7 +191,7 @@ anchor : '95%' }] }, { - columnWidth : .6, + columnWidth : .2, width : 300, layout : 'form', labelWidth : 60, @@ -162,7 +204,7 @@ minChars : 0, valueField : 'id', displayField : 'displayName', - anchor : '70%', + anchor : '95%', store : tousseAndDiposableGoodsStore, lazyInit : true, triggerAction : 'all', @@ -204,7 +246,7 @@ autoScroll:true,//自动显示滚动条 collapsible:true,//允许展开和收缩 bodyPadding:5, - html:'' + html:'' }); var viewport = new Ext.Viewport({ Index: ssts-web/src/main/webapp/jasperRtp/returnGoodsSummary.jrxml =================================================================== diff -u --- ssts-web/src/main/webapp/jasperRtp/returnGoodsSummary.jrxml (revision 0) +++ ssts-web/src/main/webapp/jasperRtp/returnGoodsSummary.jrxml (revision 12937) @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="34" splitType="Stretch"> + <textField> + <reportElement uuid="722b0dd0-f1ec-492e-8a80-360209a6322a" x="3" y="0" width="592" height="34"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{title}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +