Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r35897 -r35898 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35897) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35898) @@ -186,6 +186,7 @@ import com.forgon.disinfectsystem.jasperreports.util.MonthReportGroupBySterilizationModeHelper; import com.forgon.disinfectsystem.jasperreports.util.MonthReportHelper; import com.forgon.disinfectsystem.jasperreports.util.NurseWorkloadReportHelper; +import com.forgon.disinfectsystem.jasperreports.util.PackingReportHelper; import com.forgon.disinfectsystem.jasperreports.util.PackingUnqualifieReportHelper; import com.forgon.disinfectsystem.jasperreports.util.QualityControlOfClinicHelper; import com.forgon.disinfectsystem.jasperreports.util.QualityMonitoringHelper; @@ -321,8 +322,6 @@ @Autowired private BrancheOfHospitalManager brancheOfHospitalManager; @Autowired - private PackingManager packingManager; - @Autowired private InstrumentRepairReportHelper instrumentRepairReportHelper; @Autowired private ForeignTousseApplicationReportHelper foreignTousseApplicationReportHelper; @@ -418,6 +417,8 @@ private DamageErrorMonthViewHelper damageErrorMonthViewHelper; @Autowired private ForeignTousseReportHelper foreignTousseReportHelper; + @Autowired + private PackingReportHelper packingReportHelper; /** * 利用sql语句做数据源创建JasperPrint对象 * @param realPath 报表的jasper文件在服务器本地机子的全路径 @@ -6628,72 +6629,7 @@ } @Override public List packingRecordReportDate(JSONObject paramObj) { - ResultSet rs = null; - List firstColumnVos = new ArrayList(); - Map firstColumnVosMap = new HashMap(); - String sql = packingManager.getHistoryPackingRecordSql(paramObj); - try { - rs = objectDao.executeSql("select tousseType,depart,supplierName,splitTousseName,tousseName,packTime,packer,reviewer,doctor,amount,materialAmount from " + PackingRecord.class.getSimpleName() + " po " + sql + " order by tousseName"); - int firstColumnTotalAmount = 0; - FirstColumnVo lastfirstColumnVo = null; - boolean containForeignTousse = false; - int orderNum = 1; - while (rs.next()) { - if(!containForeignTousse){ - String tousseType = rs.getString("tousseType"); - if(TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType) || TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tousseType)){ - containForeignTousse = true; - paramObj.put("containForeignTousse", containForeignTousse); - } - } - String depart = rs.getString("depart"); - String supplierName = rs.getString("supplierName"); - String splitTousseName = rs.getString("splitTousseName"); - String tousseName = rs.getString("tousseName"); - Date packTime = rs.getTimestamp("packTime"); - String packer = rs.getString("packer"); - String reviewer = rs.getString("reviewer"); - String doctor = rs.getString("doctor"); - int amount = rs.getInt("amount"); - int materialInstanceAmount = rs.getInt("materialAmount"); - FirstColumnVo firstColumnVo = null; - List firstColumnDetaileds = null; - if(firstColumnVosMap.containsKey(tousseName)){ - firstColumnVo = firstColumnVosMap.get(tousseName); - firstColumnVo.setFirstColumnTotalAmount(MathTools.add(amount, firstColumnVo.getFirstColumnTotalAmount()).intValue()); - firstColumnDetaileds = firstColumnVo.getFirstColumnDetaileds(); - }else{ - firstColumnVosMap.clear(); - firstColumnVo = new FirstColumnVo(); - firstColumnVo.setFirstColumnName(tousseName); - firstColumnVo.setFirstColumnTotalAmount(amount); - firstColumnDetaileds = new ArrayList(); - - firstColumnVo.setFirstColumnDetaileds(firstColumnDetaileds); - firstColumnVosMap.put(tousseName, firstColumnVo); - firstColumnVos.add(firstColumnVo); - } - PackingRecordReportVo packingRecordReportVo = new PackingRecordReportVo(); - packingRecordReportVo.setDepart(depart); - packingRecordReportVo.setSupplierName(supplierName); - packingRecordReportVo.setSplitTousseName(splitTousseName); - packingRecordReportVo.setPackTime(packTime); - packingRecordReportVo.setPacker(packer); - packingRecordReportVo.setReviewer(reviewer); - packingRecordReportVo.setDoctor(doctor); - packingRecordReportVo.setAmount(amount); - packingRecordReportVo.setMaterialInstanceAmount(materialInstanceAmount); - packingRecordReportVo.setOrderNum(orderNum); - orderNum++; - firstColumnDetaileds.add(packingRecordReportVo); - } - paramObj.put("firstColumnTotalAmount", firstColumnTotalAmount); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - DatabaseUtil.closeResultSetAndStatement(rs); - } - return firstColumnVos; + return packingReportHelper.packingRecordReportDate(paramObj); } @Override public List getSatisfyDataSource(Map parametMap) throws SQLException, ParseException { Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/PackingReportHelper.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/PackingReportHelper.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/PackingReportHelper.java (revision 35898) @@ -0,0 +1,103 @@ +package com.forgon.disinfectsystem.jasperreports.util; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import net.sf.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.packing.PackingRecord; +import com.forgon.disinfectsystem.jasperreports.javabeansource.FirstColumnVo; +import com.forgon.disinfectsystem.jasperreports.javabeansource.PackingRecordReportVo; +import com.forgon.disinfectsystem.packing.service.PackingManager; +import com.forgon.tools.MathTools; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.ObjectDao; +/** + * 装配相关的一些报表 + * + */ +@Component +public class PackingReportHelper { + @Autowired + private PackingManager packingManager; + @Autowired + private ObjectDao objectDao; + /** + * 获取装配记录表数据 用于导出 + * @param paramObj 参数 + * @return + */ + public List packingRecordReportDate(JSONObject paramObj) { + ResultSet rs = null; + List firstColumnVos = new ArrayList(); + Map firstColumnVosMap = new HashMap(); + String sql = packingManager.getHistoryPackingRecordSql(paramObj); + try { + rs = objectDao.executeSql("select tousseType,depart,supplierName,splitTousseName,tousseName,packTime,packer,reviewer,doctor,amount,materialAmount from " + PackingRecord.class.getSimpleName() + " po " + sql + " order by tousseName"); + int firstColumnTotalAmount = 0; + boolean containForeignTousse = false; + int orderNum = 1; + while (rs.next()) { + if(!containForeignTousse){ + String tousseType = rs.getString("tousseType"); + if(TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType) || TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tousseType)){ + containForeignTousse = true; + paramObj.put("containForeignTousse", containForeignTousse); + } + } + String depart = rs.getString("depart"); + String supplierName = rs.getString("supplierName"); + String splitTousseName = rs.getString("splitTousseName"); + String tousseName = rs.getString("tousseName"); + Date packTime = rs.getTimestamp("packTime"); + String packer = rs.getString("packer"); + String reviewer = rs.getString("reviewer"); + String doctor = rs.getString("doctor"); + int amount = rs.getInt("amount"); + int materialInstanceAmount = rs.getInt("materialAmount"); + FirstColumnVo firstColumnVo = null; + List firstColumnDetaileds = null; + if(firstColumnVosMap.containsKey(tousseName)){ + firstColumnVo = firstColumnVosMap.get(tousseName); + firstColumnVo.setFirstColumnTotalAmount(MathTools.add(amount, firstColumnVo.getFirstColumnTotalAmount()).intValue()); + firstColumnDetaileds = firstColumnVo.getFirstColumnDetaileds(); + }else{ + firstColumnVosMap.clear(); + firstColumnVo = new FirstColumnVo(); + firstColumnVo.setFirstColumnName(tousseName); + firstColumnVo.setFirstColumnTotalAmount(amount); + firstColumnDetaileds = new ArrayList(); + + firstColumnVo.setFirstColumnDetaileds(firstColumnDetaileds); + firstColumnVosMap.put(tousseName, firstColumnVo); + firstColumnVos.add(firstColumnVo); + } + PackingRecordReportVo packingRecordReportVo = new PackingRecordReportVo(); + packingRecordReportVo.setDepart(depart); + packingRecordReportVo.setSupplierName(supplierName); + packingRecordReportVo.setSplitTousseName(splitTousseName); + packingRecordReportVo.setPackTime(packTime); + packingRecordReportVo.setPacker(packer); + packingRecordReportVo.setReviewer(reviewer); + packingRecordReportVo.setDoctor(doctor); + packingRecordReportVo.setAmount(amount); + packingRecordReportVo.setMaterialInstanceAmount(materialInstanceAmount); + packingRecordReportVo.setOrderNum(orderNum); + orderNum++; + firstColumnDetaileds.add(packingRecordReportVo); + } + paramObj.put("firstColumnTotalAmount", firstColumnTotalAmount); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return firstColumnVos; + } +}