Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r32927 -r33025 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 32927) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 33025) @@ -280,11 +280,12 @@ * @param goodsType * @param showCustonTousseAmount * @param invoicePlanDepart 申请科室 + * @param departGroupStr 科室分组 * @return */ public List getDepartmentMonthDetailList( String startTime,String endTime, String depart,String departCoding,String type, String goodsName, - String batch,String searchType,boolean disinfection,String disposableGoodsType,String goodsType,Boolean showCustonTousseAmount, String invoicePlanDepart); + String batch,String searchType,boolean disinfection,String disposableGoodsType,String goodsType,Boolean showCustonTousseAmount, String invoicePlanDepart, String departGroupStr); /** * 查询单个科室的明细核算月报数据 * @param startTime 开始时间 Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r33010 -r33025 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33010) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33025) @@ -124,6 +124,7 @@ import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceDepartment; import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.invoicemanager.MaterialInvoice; @@ -5330,7 +5331,7 @@ public List getDepartmentMonthDetailList( String startTime,String endTime, String departSearch,String departCoding,String typeSearch, String goodsNameSearch, String batch,String searchType,boolean disinfection,String disposableGoodsType,String goodsType, - Boolean showCustonTousseAmount, String invoicePlanDepartCoding) { + Boolean showCustonTousseAmount, String invoicePlanDepartCoding, String departGroupStr) { //数据库拼接符号 String concatSymbolInDb = DatabaseUtil.isOracle(dbConnection.getDatabase())?"||":"+"; SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); @@ -5349,8 +5350,37 @@ if(StringUtils.equals(loginUserFullName, Constants.ANONYMOUS_USERNAME)){ departCoding = supplyRoomConfigManager.getFirstSupplyRoomConfig().getOrgUnitCoding(); } - Set departCodingSet = SqlUtils.splitStringToSet(departCoding, ","); - Set departSearchSet = SqlUtils.splitStringToSet(departSearch, ","); + Set departCodingSet = null; + Set departSearchSet = null; + if(StringUtils.isNotBlank(departGroupStr)){ + departSearchSet = new HashSet(); + departCodingSet = new HashSet(); + Set departGroupIds = null; + if(departGroupStr.contains(",")){ + departGroupIds = SqlUtils.splitStringToSet(departGroupStr, ","); + }else{ + departGroupIds = new HashSet(); + departGroupIds.add(departGroupStr); + } + List invoiceDepartments = objectDao.findByHql("select po from " + InvoiceDepartment.class.getSimpleName() + " po where " + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", departGroupIds)); + for (InvoiceDepartment invoiceDepartment : invoiceDepartments) { + if("全部".equals(invoiceDepartment)){ + departSearch = null; + departCoding = null; + break; + } + Set thisDepartSearchs = SqlUtils.splitStringToSet(invoiceDepartment.getDepartNames(), ";"); + departSearchSet.addAll(thisDepartSearchs); + Set thisDepartCodings = SqlUtils.splitStringToSet(invoiceDepartment.getDepartCodes(), ";"); + departCodingSet.addAll(thisDepartCodings); + } + departCoding = ""; + departSearch = ""; + invoicePlanDepartCoding = ""; + }else{ + departCodingSet = SqlUtils.splitStringToSet(departCoding, ","); + departSearchSet = SqlUtils.splitStringToSet(departSearch, ","); + } Set invoicePlanDepartCodingSet = SqlUtils.splitStringToSet(invoicePlanDepartCoding, ","); boolean enableToussePointsStatistics = CssdUtils.getSystemSetConfigByNameBool("enableToussePointsStatistics", false); boolean showMaterialsAmountColumnOfDetailMonthReport = CssdUtils.getSystemSetConfigByNameBool("showMaterialsAmountColumnOfDetailMonthReport", false); @@ -5508,7 +5538,7 @@ ogeOrgUnitCodeSql = ""; } String rrSettleAccountsDepartCodingSql = null; - if (StringUtils.isNotBlank(departSearch)) { + if (CollectionUtils.isNotEmpty(departSearchSet)) { departFilterSql = " and "+ SqlUtils.getStringFieldInLargeCollectionsPredicate("i.settleaccountsdepart", departSearchSet); returnGoodsDepartFilterSql = " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("rr.settleAccountsDepart", departSearchSet); packingDisposableGoodsDepartSql = " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("pr.orgUnitName", departSearchSet); @@ -22217,7 +22247,7 @@ ReportDataWriteRecord data = (ReportDataWriteRecord)objectDao.getBySql(ReportDataWriteRecord.class.getSimpleName(), queryCondition); if(data == null){ List resultList = - getDepartmentMonthDetailList(startTime, endTime, null, null, null, null, null, null, false, null, null, showCustonTousseAmount, null); + getDepartmentMonthDetailList(startTime, endTime, null, null, null, null, null, null, false, null, null, showCustonTousseAmount, null, null); if(CollectionUtils.isNotEmpty(resultList)){ JSONObject resultParamData = new JSONObject(); resultParamData.put("startTime", startTime); @@ -22238,7 +22268,7 @@ endTime = ForgonDateUtils.safelyFormatDate(cal.getTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMM, null); List resultList = - getDepartmentMonthDetailList(startTime, endTime, null, null, null, null, null, null, false, null, null, showCustonTousseAmount,null); + getDepartmentMonthDetailList(startTime, endTime, null, null, null, null, null, null, false, null, null, showCustonTousseAmount,null, null); if(CollectionUtils.isNotEmpty(resultList)){ JSONObject resultParamData = new JSONObject(); resultParamData.put("startTime", startTime); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r32928 -r33025 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 32928) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 33025) @@ -1106,6 +1106,8 @@ "departSearch", null); String departCoding = StrutsParamUtils.getPraramValue( "departCoding", null); + String departGroupStr = StrutsParamUtils.getPraramValue( + "departGroup", null); String tousseType = StrutsParamUtils.getPraramValue("tousseType", null); String searchType = StrutsParamUtils.getPraramValue("searchType", @@ -1142,7 +1144,7 @@ } return jasperReportManager.getDepartmentMonthDetailListOfSingleDepart(startTime, endTime, departSearch, departCoding, tousseType, goodsSearch, batch, searchType, disinfection, disposableGoodsType, goodsType, showCustonTousseAmount,invoicePlanDepartCoding); }else{ - return jasperReportManager.getDepartmentMonthDetailList(startTime,endTime, departSearch, departCoding,tousseType, goodsSearch, batch,searchType,disinfection,disposableGoodsType,goodsType,showCustonTousseAmount, invoicePlanDepartCoding); + return jasperReportManager.getDepartmentMonthDetailList(startTime,endTime, departSearch, departCoding,tousseType, goodsSearch, batch,searchType,disinfection,disposableGoodsType,goodsType,showCustonTousseAmount, invoicePlanDepartCoding, departGroupStr); } } else if (reportName.equals("tousseReturnDisinfection")) {// 器械包返消 String startDate = StrutsParamUtils.getPraramValue("startDate", null);