Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/ForeignTousseApplicationVO.java =================================================================== diff -u -r33237 -r33252 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/ForeignTousseApplicationVO.java (.../ForeignTousseApplicationVO.java) (revision 33237) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/ForeignTousseApplicationVO.java (.../ForeignTousseApplicationVO.java) (revision 33252) @@ -169,7 +169,14 @@ * 配包人 */ private String operator; - + /** + * 大包数量 + */ + private Integer bigTousseAmount; + /** + * 小包数量 + */ + private Integer smallTousseAmount; public String getSerialNumber() { return serialNumber; } @@ -729,5 +736,21 @@ public void setReceiveTimeStr(String receiveTimeStr) { this.receiveTimeStr = receiveTimeStr; } + + public Integer getBigTousseAmount() { + return bigTousseAmount; + } + + public void setBigTousseAmount(Integer bigTousseAmount) { + this.bigTousseAmount = bigTousseAmount; + } + + public Integer getSmallTousseAmount() { + return smallTousseAmount; + } + + public void setSmallTousseAmount(Integer smallTousseAmount) { + this.smallTousseAmount = smallTousseAmount; + } } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r33243 -r33252 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33243) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33252) @@ -13235,58 +13235,70 @@ timeSql = String.format("and (f.receiveTime between %s and %s)", startDay, endDay); } boolean enableShowForeignTousseApplicationReportSummaryOfMaterials = CssdUtils.getSystemSetConfigByNameBool("enableShowForeignTousseApplicationReportSummaryOfMaterials", false); - String queryPackageSizeInfo = ""; - String groupByPackageSizeSql = ""; - String joinSqlForPackageSize = ""; + String querySummaryOfMaterialsSql = ""; if(enableShowForeignTousseApplicationReportSummaryOfMaterials){ - queryPackageSizeInfo = ",sum(case when mi.isImplant='是' then mi.count else 0 end) implantAmount ,sum(case when mi.isImplant='是' then 0 else mi.count end) toolAmount,td.parentID,cb.basketSize "; - groupByPackageSizeSql = ",td.parentID,cb.basketSize "; - joinSqlForPackageSize = " left join ClassifyBasket cb on cb.id=tit.classifyBasket_id "; + querySummaryOfMaterialsSql = ",sum(case when mi.isImplant='是' then mi.count else 0 end) implantAmount ,sum(case when mi.isImplant='是' then 0 else mi.count end) toolAmount "; } + boolean enableTheSizeDisplayOfTheForeignTousseApplicationReport = CssdUtils.getSystemSetConfigByNameBool("enableTheSizeDisplayOfTheForeignTousseApplicationReport", false); + String sizeSql = ""; + if(enableTheSizeDisplayOfTheForeignTousseApplicationReport){ + sizeSql = String.format(",(select count(distinct cb.id) from %s cb join " + + " ClassifyBasket_RecyclingRecord cr on cb.id=cr.ClassifyBasket_ID " + + " join %s rr on rr.id=cr.RecyclingRecord_ID " + + " where rr.recyclingApplication_id=f.id and rr.recyclingTimes is null " + + " and cb.basketSize='大包') bigTousseAmount, (select count(distinct cb.id) from %s cb join " + + " ClassifyBasket_RecyclingRecord cr on cb.id=cr.ClassifyBasket_ID" + + " join %s rr on rr.id=cr.RecyclingRecord_ID " + + " where rr.recyclingApplication_id=f.id and rr.recyclingTimes is null " + + " and cb.basketSize='小包') smallTousseAmount " + , ClassifyBasket.class.getSimpleName(), + RecyclingRecord.class.getSimpleName(), + ClassifyBasket.class.getSimpleName(), + RecyclingRecord.class.getSimpleName()); + } String customTimePeriodSql = ""; if(DatabaseUtil.isPoIdValid(customTimePeriodId)){ CustomTimePeriod customTimePeriod = (CustomTimePeriod)objectDao.getById(CustomTimePeriod.class.getSimpleName(), customTimePeriodId); if("发货时间".equals(timeType)){ String startTime = customTimePeriod.getStartTime(); String endTime = customTimePeriod.getEndTime(); - String timeFieldQueryStatementSql = null; if(dbConnection.isSqlServer()){ String[] startTimeArr = startTime.split(":"); String startTimeHour = startTimeArr[0]; String startTimeMinute = startTimeArr[1]; String[] endTimeArr = endTime.split(":"); String endTimeHour = endTimeArr[0]; String endTimeMinute = endTimeArr[1]; - timeFieldQueryStatementSql = " and (tit.invoiceSendTime2 is not null and (datepart(hour,tit.invoiceSendTime2)="+ startTimeHour +" and datepart(MINUTE,tit.invoiceSendTime2)>="+ startTimeMinute + customTimePeriodSql = " and (tit.invoiceSendTime2 is not null and (datepart(hour,tit.invoiceSendTime2)="+ startTimeHour +" and datepart(MINUTE,tit.invoiceSendTime2)>="+ startTimeMinute + " or datepart(hour,tit.invoiceSendTime2)="+ endTimeHour +" and datepart(MINUTE,tit.invoiceSendTime2)<= " + endTimeMinute + " or datepart(hour,tit.invoiceSendTime2)>"+ startTimeHour +" and datepart(hour,tit.invoiceSendTime2)< " + endTimeHour + " ) or tit.invoiceSendTime2 is null and " + " (datepart(hour,tit.invoiceSendTime)="+ startTimeHour +" and datepart(MINUTE,tit.invoiceSendTime)>="+ startTimeMinute + " or datepart(hour,tit.invoiceSendTime)="+ endTimeHour +" and datepart(MINUTE,tit.invoiceSendTime)<= " + endTimeMinute + " or datepart(hour,tit.invoiceSendTime)>"+ startTimeHour +" and datepart(hour,tit.invoiceSendTime)< " + endTimeHour + ")) "; }else if(dbConnection.isOracle()){ - timeFieldQueryStatementSql = " and (tit.invoiceSendTime2 is not null and TO_CHAR(tit.invoiceSendTime2, 'hh24:mi:ss') BETWEEN '" + customTimePeriodSql = " and (tit.invoiceSendTime2 is not null and TO_CHAR(tit.invoiceSendTime2, 'hh24:mi:ss') BETWEEN '" + startTime +":00' AND '" + endTime +":00' or tit.invoiceSendTime2 is null and tit.invoiceSendTime BETWEEN '" + startTime +":00' AND '" + endTime + ":00')"; }else{ - timeFieldQueryStatementSql = ""; + customTimePeriodSql = ""; } }else{ customTimePeriodSql = getTimeFieldQueryStatement(dbConnection, customTimePeriod.getStartTime(), customTimePeriod.getEndTime(), timeFieldName); } } String sql = String - .format("select i.applicationtime,case when tit.invoiceSendTime2 is not null then tit.invoiceSendTime2 else tit.invoiceSendTime end invoiceSendTime,f.receiveTime,tit.tousseName,tit.price,f.id,ti.supplierName,i.applicant,i.remark,f.patient,f.surgery,f.hospitalNumber,i.depart,i.deliverStatus %s,f.doctor,f.processType,count(distinct tit.id) amount,f.bedNumber,tit.useRecord_id %s %s from %s f join %s i on f.id=i.id left join %s ti on ti.recyclingApplication_ID=i.id left join %s tit on tit.foreignTousseApp_id=f.id left join TousseDefinition td on td.id = tit.tousseDefinition_id %s %s where (tit.id is null or td.parentID is null and ti.tousseDefinitionId=tit.tousseDefinition_id or ti.tousseDefinitionId=td.parentID) %s %s %s %s %s ", + .format("select i.applicationtime,case when tit.invoiceSendTime2 is not null then tit.invoiceSendTime2 else tit.invoiceSendTime end invoiceSendTime,f.receiveTime,tit.tousseName,tit.price,f.id,ti.supplierName,i.applicant,i.remark,f.patient,f.surgery,f.hospitalNumber,i.depart,i.deliverStatus %s,f.doctor,f.processType,count(distinct tit.id) amount,f.bedNumber,tit.useRecord_id %s %s %s from %s f join %s i on f.id=i.id left join %s ti on ti.recyclingApplication_ID=i.id left join %s tit on tit.foreignTousseApp_id=f.id left join TousseDefinition td on td.id = tit.tousseDefinition_id %s where (tit.id is null or td.parentID is null and ti.tousseDefinitionId=tit.tousseDefinition_id or ti.tousseDefinitionId=td.parentID) %s %s %s %s %s ", customColumnName1Sql, queryMaterialNameSql, - queryPackageSizeInfo, + querySummaryOfMaterialsSql, + sizeSql, ForeignTousseApplication.class.getSimpleName(), InvoicePlan.class.getSimpleName(), TousseItem.class.getSimpleName(), TousseInstance.class.getSimpleName(), joinMaterialInstanceSql, - joinSqlForPackageSize, materialInstanceSql, showNoInvoieSql, tousseSql, @@ -13320,7 +13332,7 @@ sqlBuilder.append(" and (i.deliverStatus<>'").append(InvoicePlan.STATUS_END).append("' or i.deliverStatus is null) "); } sqlBuilder.append(customTimePeriodSql); - sqlBuilder.append(" group by tit.invoiceSendTime,tit.invoiceSendTime2,f.receiveTime,tit.tousseName,tit.price,f.id,ti.supplierName,i.applicant,i.remark,f.patient,f.surgery,f.hospitalNumber,i.depart,i.deliverStatus,f.bedNumber,tit.useRecord_id,i.applicationtime " + groupByPackageSizeSql); + sqlBuilder.append(" group by tit.invoiceSendTime,tit.invoiceSendTime2,f.receiveTime,tit.tousseName,tit.price,f.id,ti.supplierName,i.applicant,i.remark,f.patient,f.surgery,f.hospitalNumber,i.depart,i.deliverStatus,f.bedNumber,tit.useRecord_id,i.applicationtime "); sqlBuilder.append(customColumnName1Sql); sqlBuilder.append(groupByMaterialInstanceSql); sqlBuilder.append(",f.doctor,f.processType order by f.id asc "); @@ -13333,14 +13345,17 @@ Map tousseItemVOMap = new HashMap(); int totalAmount = 0; Set ids = new HashSet(); - Set parentIDs = new HashSet(); while (rs.next()) { Long id = rs.getLong("id"); ForeignTousseApplicationVO vo = null; if(voMap.containsKey(id)){ vo = voMap.get(id); }else{ - vo = new ForeignTousseApplicationVO(); + vo = new ForeignTousseApplicationVO(); + if(enableTheSizeDisplayOfTheForeignTousseApplicationReport){ + vo.setBigTousseAmount(rs.getInt("bigTousseAmount")); + vo.setSmallTousseAmount(rs.getInt("smallTousseAmount")); + } String applicationTimeStr = ""; Date receiveTime = rs.getTimestamp("receiveTime"); ForeignTousseApplication foreignTousseApplication = null; @@ -13352,7 +13367,7 @@ } Date applicationtime = rs.getTimestamp("applicationtime"); if(applicationtime != null){ - vo.setApplicationTimeStr(Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(receiveTime)); + vo.setApplicationTimeStr(Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(applicationtime)); } vo.setApplicant(StringTools.defaultIfBlank(rs.getString("applicant"),"")); vo.setRemark(StringTools.defaultIfBlank(rs.getString("remark"),"")); @@ -13434,15 +13449,6 @@ if(enableShowForeignTousseApplicationReportSummaryOfMaterials){ tousseItemVO.setToolAmount(rs.getInt("toolAmount")); tousseItemVO.setImplantAmount(rs.getInt("implantAmount")); - Long parentID = rs.getLong("parentID"); - if(DatabaseUtil.isPoIdValid(parentID)){ - if(!parentIDs.contains(parentID)){ - parentIDs.add(parentID); - tousseItemVO.setPackageSize(rs.getString("basketSize")); - } - }else{ - tousseItemVO.setPackageSize(rs.getString("basketSize")); - } } totalAmount += amount; if(StringUtils.isNotBlank(supplierName)){ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/TousseItemVO.java =================================================================== diff -u -r33227 -r33252 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/TousseItemVO.java (.../TousseItemVO.java) (revision 33227) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/TousseItemVO.java (.../TousseItemVO.java) (revision 33252) @@ -41,10 +41,6 @@ * 植入物数量 */ private Integer implantAmount = 0; - /** - * 包大小 - */ - private String packageSize; public String getItemName() { return itemName; } @@ -116,13 +112,5 @@ public void setImplantAmount(Integer implantAmount) { this.implantAmount = implantAmount; } - - public String getPackageSize() { - return packageSize; - } - - public void setPackageSize(String packageSize) { - this.packageSize = packageSize; - } } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r33237 -r33252 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 33237) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 33252) @@ -4368,6 +4368,7 @@ List dataSourceList = getDataSourceList(null , reportName, StrutsParamUtils.getParameters(), parametMap); JSONArray arr = JSONArray.fromObject(dataSourceList); obj.put("data", arr); + obj.put("parametMap", JSONObject.fromObject(parametMap)); } catch (Exception e) { e.printStackTrace(); }finally{