Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/foreignTousseApplicationReport.js =================================================================== diff -u -r36219 -r36798 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/foreignTousseApplicationReport.js (.../foreignTousseApplicationReport.js) (revision 36219) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/foreignTousseApplicationReport.js (.../foreignTousseApplicationReport.js) (revision 36798) @@ -6,7 +6,7 @@ var widthArr = []; //获取表头列 -function getTableHeaderColumnArray(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent) { +function getTableHeaderColumnArray(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent,queryRecyclingTime) { var columnNameArray = [{ name: '申请时间', width: 120 @@ -20,10 +20,17 @@ columnNameArray.push({ name: '接收时间', width: 120 - }, { + }); + if(queryRecyclingTime){ + columnNameArray.push({ + name: '二次回收时间', + width: 120 + }); + } + columnNameArray.push({ name: '申请科室', width: 70 - }); + }) if (queryDoctorAccountDepart) { columnNameArray.push({ name: '主刀医生核算科室', @@ -139,9 +146,9 @@ } //获取表头html -function getTableHeadHtml(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent) { +function getTableHeadHtml(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent,queryRecyclingTime) { var html = ''; - var columnNameArray = getTableHeaderColumnArray(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent); + var columnNameArray = getTableHeaderColumnArray(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent,queryRecyclingTime); if (sstsConfig.enableShowForeignTousseApplicationReportSummaryOfMaterials || sstsConfig.enableTheSizeDisplayOfTheForeignTousseApplicationReport) { html += ''; for (var i = 0; i < columnNameArray.length; i++) { @@ -168,7 +175,7 @@ html += ''; is2Column = true; } else { - var columnNameArray = getTableHeaderColumnArray(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent); + var columnNameArray = getTableHeaderColumnArray(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent,queryRecyclingTime); html += ''; for (var i = 0; i < columnNameArray.length; i++) { html += getHeadTd(columnNameArray[i].name, columnNameArray[i].width, 1, 1); @@ -180,7 +187,7 @@ } //获取表内容的html -function getTableBodyHtml(data, totalMaterialDetails, customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent) { +function getTableBodyHtml(data, totalMaterialDetails, customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent,queryRecyclingTime) { var html = ''; var sumTousseInstanceAmount = 0; var sumPrice = 0; @@ -225,6 +232,7 @@ resultSumCount += parseInt(sumCount); var receiveTimeStr = (data[i].receiveTimeStr == null) ? '' : data[i].receiveTimeStr; + var recyclingTimeStr = (data[i].recyclingTimeStr == null) ? '' : data[i].recyclingTimeStr; var tiDoctorName = tousseItems[j].tiDoctorName || ''; if (j == 0) { html += ''; @@ -233,6 +241,9 @@ html += getBodyTd(data[i].receiveMan, tousseItems.length, 1); } html += getBodyTd(receiveTimeStr, tousseItems.length, 1); + if (queryRecyclingTime) { + html += getBodyTd(recyclingTimeStr, tousseItems.length, 1); + } html += getBodyTd(data[i].depart, tousseItems.length, 1); if (queryDoctorAccountDepart) { html += getBodyTd(data[i].doctorAccountDepart, tousseItems.length, 1); @@ -350,6 +361,10 @@ html += getBodyTd(data[i].receiveMan, 1, 1); } html += getBodyTd(receiveTimeStr, 1, 1); + var recyclingTimeStr = (data[i].recyclingTimeStr == null) ? '' : data[i].recyclingTimeStr; + if (queryRecyclingTime) { + html += getBodyTd(recyclingTimeStr, 1, 1); + } html += getBodyTd(data[i].depart, 1, 1); if (queryDoctorAccountDepart) { html += getBodyTd(data[i].doctorAccountDepart, 1, 1); @@ -409,6 +424,9 @@ if (queryReceiveMan) { colspanLen++; } + if (queryRecyclingTime) { + colspanLen++; + } if (queryDoctorAccountDepart) { colspanLen++; } @@ -465,6 +483,7 @@ var queryReturnTime = false; var queryDoctorAccountDepart = false; var queryIsUrgent = false; + var queryRecyclingTime = false; if (result.parametMap) { totalMaterialDetails = result.parametMap.totalMaterialDetails || ''; customColumnName1 = result.parametMap.customColumnName1 || ''; @@ -484,6 +503,9 @@ if (result.parametMap.queryIsUrgent) { queryIsUrgent = result.parametMap.queryIsUrgent; } + if (result.parametMap.queryRecyclingTime) { + queryRecyclingTime = result.parametMap.queryRecyclingTime; + } } if (queryReceiveMan) { tableWidth += 70; @@ -500,12 +522,15 @@ if (queryIsUrgent) { tableWidth += 70; } + if (queryRecyclingTime) { + tableWidth += 120; + } var html = ""; html += ""; - html += getTableHeadHtml(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent); + html += getTableHeadHtml(customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent,queryRecyclingTime); html += ""; html += ""; - html += getTableBodyHtml(result.data, totalMaterialDetails, customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent); + html += getTableBodyHtml(result.data, totalMaterialDetails, customColumnName1, enableTousseOfExclusiveDoctorFunction, queryReceiveMan, queryReturnMan, queryReturnTime, queryDoctorAccountDepart, queryIsUrgent,queryRecyclingTime); html += ""; html += "
"; return html; Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/ForeignTousseApplicationVO.java =================================================================== diff -u -r35302 -r36798 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/ForeignTousseApplicationVO.java (.../ForeignTousseApplicationVO.java) (revision 35302) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/ForeignTousseApplicationVO.java (.../ForeignTousseApplicationVO.java) (revision 36798) @@ -117,7 +117,7 @@ private String recyclingMan;// 回收确认人 private Date recylingTime;// 回收确认时间 - + private String recyclingTimeStr;// 回收时间 private String returnMan;// 归还人 private Date returnTime;// 归还时间 @@ -789,5 +789,14 @@ public void setIsUrgent(String isUrgent) { this.isUrgent = isUrgent; } + + public String getRecyclingTimeStr() { + return recyclingTimeStr; + } + + public void setRecyclingTimeStr(String recyclingTimeStr) { + this.recyclingTimeStr = recyclingTimeStr; + } + } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/ForeignTousseApplicationReportHelper.java =================================================================== diff -u -r36695 -r36798 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/ForeignTousseApplicationReportHelper.java (.../ForeignTousseApplicationReportHelper.java) (revision 36695) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/ForeignTousseApplicationReportHelper.java (.../ForeignTousseApplicationReportHelper.java) (revision 36798) @@ -77,6 +77,10 @@ */ boolean queryDoctorAccountDepart = false; /** + * 查询二次回收时间 + */ + boolean queryRecyclingTime = false; + /** * 配置项所配置的值 用来增加额外的查询列 * DGSETYY-61 目前支持值为receiveMan(接收人),returnMan(归还人),returnTime(归还时间) * ZYYFS-171 新增isUrgent(是否急消),doctorAccountDepart(主刀医生核算科室) @@ -148,6 +152,11 @@ extendedGroupSQL2 += ",f.doctorAccountDepart "; queryDoctorAccountDepart = true; parametMap.put("queryDoctorAccountDepart", true); + }else if("recyclingtime".equals(extendedColumnName.toLowerCase())){//二次回收时间 + queryExtendedColumnSQL += ",max(rr.recyclingTime) recyclingTime "; + queryExtendedColumnSQL2 += ",max(rr.recyclingTime) recyclingTime "; + queryRecyclingTime = true; + parametMap.put("queryRecyclingTime", true); } } } @@ -220,7 +229,7 @@ timeSql = String.format("and (i.applicationTime between %s and %s)", startDay, endDay); }else{ timeFieldName = "rr.recyclingTime"; - timeSql = String.format("and (rr.recyclingTime between %s and %s)", startDay, endDay); + timeSql = String.format("and (rr.recyclingTimes is null and rr.recyclingTime between %s and %s)", startDay, endDay); } String querySummaryOfMaterialsSql = ""; @@ -284,7 +293,7 @@ + "from %s f join %s i on f.id=i.id join %s ti on ti.recyclingApplication_ID=i.id " + "join %s tit on tit.foreignTousseApp_id=f.id " + "join TousseDefinition td on td.id = tit.tousseDefinition_id left join RecyclingRecord rr on rr.recyclingApplication_id=f.id " - + " %s where rr.recyclingTimes is null and (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 ", + + " %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 ", queryExtendedColumnSQL, customColumnName1Sql, queryMaterialNameSql, @@ -362,7 +371,7 @@ TousseDefinition.class.getSimpleName() +" td on td.id = ti.tousseDefinitionId left join RecyclingRecord rr on rr.recyclingApplication_id=f.id " + joinMaterialInstanceSql - + " where rr.recyclingTimes is null and not exists (select id from "+ + + " where not exists (select id from "+ TousseInstance.class.getSimpleName() +" where foreignTousseApp_id=f.id) " + timeSql @@ -415,6 +424,12 @@ vo.setReceiveTime(receiveTime); vo.setReceiveTimeStr(receiveTimeStr); } + if(queryRecyclingTime && receiveTime != null){ + Date recyclingTime = rs.getTimestamp("recyclingTime"); + if(recyclingTime != null && recyclingTime.after(receiveTime)){//最小值等于最大值,说明其实两个时间都是接收时间,也就是未二次回收 + vo.setRecyclingTimeStr(dateFormatYMDHM.format(recyclingTime)); + } + } Date applicationtime = rs.getTimestamp("applicationtime"); if(applicationtime != null){ vo.setApplicationTimeStr(dateFormatYMDHM.format(applicationtime));