Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InstrumentRepairVo.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InstrumentRepairVo.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InstrumentRepairVo.java (revision 35517) @@ -0,0 +1,94 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +/** + * CDSLQYQYYY-114 报表器械维修记录vo + * @author zc.li 2023-03-21 + * + */ +public class InstrumentRepairVo { + /** + * 登记时间 + */ + private String registerDateTimeStr; + /** + * 状态(维修中,待维修,已修好,报废) + */ + private String repairStatus; + /** + * 登记人姓名 + */ + private String registrantName; + /** + * 出科时间 + */ + private String outHandoverDateTimeStr; + /** + * 回科时间 + */ + private String returnHandoverDateTimeStr; + /** + * 故障原因 + */ + private String repairDesc; + /** + * 备注 + */ + private String remark; + /** + * 维修物品 + */ + private List instrumentRepairGoodsVos = new ArrayList(); + public String getRegisterDateTimeStr() { + return registerDateTimeStr; + } + public void setRegisterDateTimeStr(String registerDateTimeStr) { + this.registerDateTimeStr = registerDateTimeStr; + } + public String getRepairStatus() { + return repairStatus; + } + public void setRepairStatus(String repairStatus) { + this.repairStatus = repairStatus; + } + public String getRegistrantName() { + return registrantName; + } + public void setRegistrantName(String registrantName) { + this.registrantName = registrantName; + } + public String getOutHandoverDateTimeStr() { + return outHandoverDateTimeStr; + } + public void setOutHandoverDateTimeStr(String outHandoverDateTimeStr) { + this.outHandoverDateTimeStr = outHandoverDateTimeStr; + } + public String getReturnHandoverDateTimeStr() { + return returnHandoverDateTimeStr; + } + public void setReturnHandoverDateTimeStr(String returnHandoverDateTimeStr) { + this.returnHandoverDateTimeStr = returnHandoverDateTimeStr; + } + public String getRepairDesc() { + return repairDesc; + } + public void setRepairDesc(String repairDesc) { + this.repairDesc = repairDesc; + } + public String getRemark() { + return remark; + } + public void setRemark(String remark) { + this.remark = remark; + } + public List getInstrumentRepairGoodsVos() { + return instrumentRepairGoodsVos; + } + public void setInstrumentRepairGoodsVos( + List instrumentRepairGoodsVos) { + this.instrumentRepairGoodsVos = instrumentRepairGoodsVos; + } + +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r35511 -r35517 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 35511) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 35517) @@ -2452,6 +2452,19 @@ endDateStr = sdf.format(calendar.getTime()) + "-01 00:00:00"; return jasperReportManager.getCssdWorkloadReportForTangshanWorkersHospital(tousseTypes, taskGroup, departGroupStr, querySupplyRoom, startDateStr, endDateStr); } + }else if("instrumentRepairReport".equals(reportName)){ + String startTime = StrutsParamUtils.getPraramValue("startTime", ""); + String endTime = StrutsParamUtils.getPraramValue("endTime", ""); + String repairStatus = StrutsParamUtils.getPraramValue("repairStatus", ""); + String registrantName = StrutsParamUtils.getPraramValue("registrantName", ""); + String materialName = StrutsParamUtils.getPraramValue("materialName", ""); + String tousseName = StrutsParamUtils.getPraramValue("tousseName", ""); + if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){ + parametMap.put("title", "器械维修记录报表" + startTime + "至" + endTime); + startTime += ":00"; + endTime += ":59"; + return jasperReportManager.getInstrumentRepairReportData(startTime, endTime, repairStatus, registrantName, materialName, tousseName); + } } return null; } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InstrumentRepairGoodsVo.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InstrumentRepairGoodsVo.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/InstrumentRepairGoodsVo.java (revision 35517) @@ -0,0 +1,39 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; +/** + * CDSLQYQYYY-114 报表器械维修物品vo + * @author zc.li 2023-03-21 + * + */ +public class InstrumentRepairGoodsVo { + /** + * 数量 + */ + private Integer amount; + /** + * 器械包名称 + */ + private String tousseName; + /** + * 器械名称 包含规格 + */ + private String materialName; + public Integer getAmount() { + return amount; + } + public void setAmount(Integer amount) { + this.amount = amount; + } + public String getTousseName() { + return tousseName; + } + public void setTousseName(String tousseName) { + this.tousseName = tousseName; + } + public String getMaterialName() { + return materialName; + } + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r35392 -r35517 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 35392) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 35517) @@ -23,6 +23,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.AdverseEventRecordReportVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.ApparatusInfusionisType; import com.forgon.disinfectsystem.jasperreports.javabeansource.BaseBean; +import com.forgon.disinfectsystem.jasperreports.javabeansource.InstrumentRepairVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.BiologicalMonitoringReportVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.BorrowingRecordItemVo; import com.forgon.disinfectsystem.jasperreports.javabeansource.BorrowingRecordVo; @@ -1345,5 +1346,17 @@ * @return */ public String[] getModelSources(String model, List list); + /** + * CDSLQYQYYY-114 获取器械维修记录报表 + * @param startTime 查询登记开始时间 + * @param endTime 查询登记结束时间 + * @param repairStatus 维修状态 + * @param registrantName 登记人姓名 + * @param materialName 材料名称 可能包含规格 + * @param tousseName 包名称 + * @return + */ + public List getInstrumentRepairReportData(String startTime, String endTime, String repairStatus + , String registrantName, String materialName, String tousseName); } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r35491 -r35517 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35491) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35517) @@ -90,6 +90,8 @@ import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntry; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepair; +import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepairGoods; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.reportoption.GoodsOption; @@ -31114,4 +31116,130 @@ } return Arrays.asList(dayMap.values().toArray()); } + /** + * CDSLQYQYYY-114 器械维修记录报表vo + * + */ + class InstrumentRepairReportVo{ + /** + * 查询语句 + */ + private String sql; + /** + * 最终返回结果器械维修记录信息 + */ + private List instrumentRepairVos = new ArrayList(); + /** + * 初始化信息 + * @param startTime 页面查询的开始时间 + * @param endTime 页面查询的结束时间 + * @param querySupplyRoom 供应室编码 + */ + private void initializationInformation(String startTime, String endTime, String repairStatus + , String registrantName, String materialName, String tousseName){ + setSql(startTime,endTime,repairStatus,registrantName,materialName,tousseName); + setReturnList(); + } + private void setSql(String startTime, String endTime, String repairStatus, String registrantName + ,String materialName, String tousseName){ + String materialNameSQL = null; + if(StringUtils.isNotBlank(materialName)){ + if(materialName.contains("[") && materialName.contains("]") && materialName.lastIndexOf("]") > materialName.indexOf("[")){ + String connector = null; + if(dbConnection.isOracle()){ + connector = " || "; + }else{ + connector = " + "; + } + materialNameSQL = " and md.name "+ connector +" '[' "+ connector +" md.specification "+ connector +" ']' = '" + materialName + "'"; + }else{ + materialNameSQL = " and md.name = '" + materialName + "'"; + } + }else{ + materialNameSQL = ""; + } + this.sql = "select i.id,i.registerDateTime , i.repairStatus, i.registrantName " + + ", i.outHandoverDateTime ,i.returnHandoverDateTime ,i.repairDesc ,i.remark " + + ",g.amount ,md.name materialDefinitionName ,td.name tousseName,md.specification from " + + InstrumentRepair.class.getSimpleName() + +" i join " + + InstrumentRepairGoods.class.getSimpleName() + +" g on i.id=g.instrumentRepair_ID left join " + + TousseDefinition.class.getSimpleName() + +" td on td.id=g.toussedefinitionId left join " + + MaterialDefinition.class.getSimpleName() + +" md on md.id=g.materialDefinitionID where registerDateTime " + + String.format(" between %s and %s ", dateQueryAdapter.dateAdapter(startTime),dateQueryAdapter.dateAdapter(endTime)) + + SqlUtils.getWhereSqlByfilterFieldAndStringValueAndSeparator("i.repairStatus", repairStatus, ",") + + SqlUtils.getWhereSqlByfilterFieldAndStringValue("i.registrantName", registrantName) + + materialNameSQL + + SqlUtils.getWhereSqlByfilterFieldAndStringValue("td.name", tousseName) + + "order by i.registerDateTime desc,i.id desc,md.id desc "; + } + /** + * 设置最终返回数据 + */ + private void setReturnList(){ + ResultSet rs = null; + try { + rs = objectDao.executeSql(this.sql); + InstrumentRepairVo instrumentRepairVo = null; + Map instrumentRepairVoMap = new HashMap(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + while (rs.next()) { + Long id = rs.getLong("id"); + if(instrumentRepairVoMap.containsKey(id)){ + instrumentRepairVo = instrumentRepairVoMap.get(id); + }else{ + instrumentRepairVo = new InstrumentRepairVo(); + Date registerDateTime = rs.getTimestamp("registerDateTime"); + Date outHandoverDateTime = rs.getTimestamp("outHandoverDateTime"); + Date returnHandoverDateTime = rs.getTimestamp("returnHandoverDateTime"); + String repairStatus = rs.getString("repairStatus"); + String registrantName = rs.getString("registrantName"); + String repairDesc = rs.getString("repairDesc"); + String remark = rs.getString("remark"); + if(registerDateTime != null){ + instrumentRepairVo.setRegisterDateTimeStr(sdf.format(registerDateTime)); + } + if(outHandoverDateTime != null){ + instrumentRepairVo.setOutHandoverDateTimeStr(sdf.format(outHandoverDateTime)); + } + if(returnHandoverDateTime != null){ + instrumentRepairVo.setReturnHandoverDateTimeStr(sdf.format(returnHandoverDateTime)); + } + instrumentRepairVo.setRepairStatus(repairStatus); + instrumentRepairVo.setRegistrantName(registrantName); + instrumentRepairVo.setRepairDesc(repairDesc); + instrumentRepairVo.setRemark(remark); + instrumentRepairVoMap.put(id, instrumentRepairVo); + this.instrumentRepairVos.add(instrumentRepairVo); + } + InstrumentRepairGoodsVo goodsVo = new InstrumentRepairGoodsVo(); + goodsVo.setAmount(rs.getInt("amount")); + String materialName = rs.getString("materialDefinitionName"); + String specification = rs.getString("specification"); + if(StringUtils.isNotBlank(specification)){ + materialName += "[" + specification + "]"; + } + goodsVo.setMaterialName(materialName); + + goodsVo.setTousseName(rs.getString("tousseName")); + instrumentRepairVo.getInstrumentRepairGoodsVos().add(goodsVo); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + } + } + @Override + public List getInstrumentRepairReportData(String startTime, String endTime, String repairStatus + , String registrantName, String materialName, String tousseName) { + InstrumentRepairReportVo vo = new InstrumentRepairReportVo(); + vo.initializationInformation(startTime, endTime, repairStatus, registrantName, materialName, tousseName); + System.out.println(vo.sql); + return vo.instrumentRepairVos; + } }