ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTotalsController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,114 @@ package com.ruoyi.web.controller.project; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.project.domain.ServiceTotals; import com.ruoyi.project.domain.vo.*; import com.ruoyi.project.service.iServiceTotalsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Api(description = "opoç»è®¡",tags = {"opoç»è®¡"}) @RestController @RequestMapping("/opo/totals") public class ServiceTotalsController extends BaseController { @Autowired private iServiceTotalsService service; @ApiOperation("æ¡ä¾è¶å¿") @PostMapping("/caseTrend") public Result<List<ServiceTotalsTrend>> caseTrend(@RequestBody ServiceTotals totals) { List<ServiceTotalsTrend> list = service.caseTrend(totals); return Result.success(list); } @ApiOperation("æ¡ä¾è¶å¿æä»½") @PostMapping("/caseTrendMoon") public Result<List<ServiceTotalsTrend>> caseTrendMoon(@RequestBody ServiceTotals totals) { List<ServiceTotalsTrend> list = service.caseTrendMoon(totals); return Result.success(list); } @ApiOperation("æ¡ä¾è¶å¿åºå") @PostMapping("/caseTrendArea") public Result<List<ServiceTotalsTrend>> caseTrendArea(@RequestBody ServiceTotals totals) { List<ServiceTotalsTrend> list = service.caseTrendArea(totals); return Result.success(list); } @ApiOperation("æç®å¨å®ç»è®¡æç»") @PostMapping("/organ") public Result<List<ServiceTotalsOrgan>> organ(@RequestBody ServiceTotals totals) { List<ServiceTotalsOrgan> list = service.organ(totals); return Result.success(list); } @ApiOperation("å¨å®è·å/ç§»æ¤è¶å¿") @PostMapping("/organMoon") public Result<List<ServiceTotalsOrgan>> organMoon(@RequestBody ServiceTotals totals) { List<ServiceTotalsOrgan> list = service.organMoon(totals); return Result.success(list); } @ApiOperation("å¨å®ç±»ååå¸") @PostMapping("/organType") public Result<List<ServiceTotalsOrgan>> organType(@RequestBody ServiceTotals totals) { List<ServiceTotalsOrgan> list = service.organType(totals); return Result.success(list); } @ApiOperation("æç®è 年龿§å«åå¸") @PostMapping("/caseSex") public Result<List<ServiceTotalsSex>> caseSex(@RequestBody ServiceTotals totals) { List<ServiceTotalsSex> list = service.caseSex(totals); return Result.success(list); } @ApiOperation("å¹³åå¹´é¾") @PostMapping("/caseAvgAge") public Result caseAvgAge(@RequestBody ServiceTotals totals) { List<ServiceTotals> list = service.caseAvgAge(totals); return Result.success(list); } @ApiOperation("æ§å«ä¸è¡ååå¸") @PostMapping("/caseBloodType") public Result<List<ServiceTotalsBood>> caseBloodType(@RequestBody ServiceTotals totals) { List<ServiceTotalsBood> list = service.caseBloodType(totals); return Result.success(list); } @ApiOperation("æ»æ½å¨æ»å®ææ°ç»è®¡") @PostMapping("/totals") public Result<List<ServiceTotalsTotal>> totals(@RequestBody ServiceTotals totals) { List<ServiceTotalsTotal> list = service.totals(totals); return Result.success(list); } @ApiOperation("æ¡ä¾æç»å表") @PostMapping("/trendList") public Result<List<trendList>> trendList(@RequestBody ServiceTotals totals) { List<trendList> list = service.trendList(totals); return Result.success(list); } } ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfoReport.java
@@ -463,5 +463,12 @@ @ApiModelProperty("é管çåID") private String notAdminId; /** * å°åº */ @ApiModelProperty("å°åº") @Excel(name = "å°åº", readConverterExp = "å°åº") private String registerCountyName; } ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceTotals.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ package com.ruoyi.project.domain; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data @ApiModel("opoç»è®¡") public class ServiceTotals { @ApiModelProperty("å¼å§æ¶é´") private String startTime; @ApiModelProperty("ç»ææ¶é´") private String endTime; @ApiModelProperty("åºå") private String area; @ApiModelProperty("æ§å«") private String sex; @ApiModelProperty("è¡å") private String boodType; @ApiModelProperty("年龿®µ1:<17;2:18-49;3:50-69;4:>69") private String ageGroup; @ApiModelProperty("å¨ç®¡åç§°") private String organName; @ApiModelProperty("å¹³åå¹´é¾") private Integer avgAge; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsBood.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.project.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("opoè¡åç»è®¡") public class ServiceTotalsBood { @ApiModelProperty("è¡åæ°") private Integer boodTypeCount; @ApiModelProperty("è¡å") private String boodType; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrgan.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.ruoyi.project.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("opoå¨å®ç»è®¡") public class ServiceTotalsOrgan { @ApiModelProperty("æ¡ä¾æ¶é´") private String donateTime; @ApiModelProperty("å¨ç®¡åç§°") private String organName; @ApiModelProperty("è·åæ°") private Integer getCount; @ApiModelProperty("ç§»æ¤æ°") private Integer useCount; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsSex.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.project.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("opoæ§å«ç»è®¡") public class ServiceTotalsSex { @ApiModelProperty("æ»æ°") private Integer totalCount; @ApiModelProperty("ç·æ§æ°") private Integer manCount; @ApiModelProperty("å¥³æ§æ°") private Integer womanCount; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsTotal.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.project.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("opoæ»ç»è®¡") public class ServiceTotalsTotal { @ApiModelProperty("æ»æ½å¨æç®æ¡ä¾") private Integer totalPotential; @ApiModelProperty("æ»å®ææç®æ°") private Integer totalCompletion; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsTrend.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.ruoyi.project.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("opoç»è®¡") public class ServiceTotalsTrend { @ApiModelProperty("åºå") private String area; @ApiModelProperty("æ¡ä¾æ¶é´") private String donateTime; @ApiModelProperty("æ½å¨æç®æ°") private Integer potentialCount; @ApiModelProperty("宿æç®æ°") private Integer completeCount; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/trendList.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ package com.ruoyi.project.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("æ¡ä¾æç»") public class trendList { @ApiModelProperty("id") private Integer id; @ApiModelProperty("æ¡ä¾ç¼å·") private String caseNo; @ApiModelProperty("å§å") private String name; @ApiModelProperty("ä½é¢å·") private String InpatientNo; @ApiModelProperty("å»é¢") private String TreatmentHospitalName; @ApiModelProperty("工使µ:1.ä¾è ç»´æ¤ 2 æç®ææ¿ 3 å»å¦è¯ä¼° 4 æ»äº¡å¤å® 5 伦çå®¡æ¥ 6 å¨å®åé 7 å¨å®å©ç¨ 99 æç®å®æ") private Integer workflow; @ApiModelProperty("æ¡ä¾æ¶é´") private String donatetime; @ApiModelProperty("æ»äº¡åå ") private String DeathReason; @ApiModelProperty("å¨å®") private String OrganName; } ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTotalsMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,83 @@ package com.ruoyi.project.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.project.domain.GiApi; import com.ruoyi.project.domain.ServiceTasknum; import com.ruoyi.project.domain.ServiceTotals; import com.ruoyi.project.domain.vo.*; import io.jsonwebtoken.impl.crypto.MacProvider; import java.util.List; import java.util.Map; public interface ServiceTotalsMapper extends BaseMapper<ServiceTotals> { /** * æ¡ä¾è¶å¿ * */ public List<ServiceTotalsTrend> caseTrend(ServiceTotals totals); /** * æ¡ä¾è¶å¿æä»½ * */ public List<ServiceTotalsTrend> caseTrendMoon(ServiceTotals totals); /** * æ¡ä¾è¶å¿åºå * */ public List<ServiceTotalsTrend> caseTrendArea(ServiceTotals totals); /** * æç®å¨å®ç»è®¡æç» * */ public List<ServiceTotalsOrgan> organ(ServiceTotals totals); /** * å¨å®è·å/ç§»æ¤è¶å¿ * */ public List<ServiceTotalsOrgan> organMoon(ServiceTotals totals); /** * å¨å®ç±»ååå¸ * */ public List<ServiceTotalsOrgan> organType(ServiceTotals totals); /** * æç®è 年龿§å«åå¸ * */ public List<ServiceTotalsSex> caseSex(ServiceTotals totals); /** * å¹³åå¹´é¾ * */ public List<ServiceTotals> caseAvgAge(ServiceTotals totals); /** * æ§å«ä¸è¡ååå¸ * */ public List<ServiceTotalsBood> caseBloodType(ServiceTotals totals); /** * æ»æ½å¨æ»å®ææ°ç»è®¡ * */ public List<ServiceTotalsTotal> totals(ServiceTotals totals); /** * æ¡ä¾æç»å表 * */ public List<trendList> trendList(ServiceTotals totals); } ruoyi-project/src/main/java/com/ruoyi/project/service/iServiceTotalsService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ package com.ruoyi.project.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.project.domain.ServiceTotals; import com.ruoyi.project.domain.vo.*; import java.util.List; public interface iServiceTotalsService extends IService<ServiceTotals> { /** * æ¡ä¾è¶å¿ * */ public List<ServiceTotalsTrend> caseTrend(ServiceTotals totals); /** * æ¡ä¾è¶å¿æä»½ * */ public List<ServiceTotalsTrend> caseTrendMoon(ServiceTotals totals); /** * æ¡ä¾è¶å¿åºå * */ public List<ServiceTotalsTrend> caseTrendArea(ServiceTotals totals); /** * æç®å¨å®ç»è®¡æç» * */ public List<ServiceTotalsOrgan> organ(ServiceTotals totals); /** * å¨å®è·å/ç§»æ¤è¶å¿ * */ public List<ServiceTotalsOrgan> organMoon(ServiceTotals totals); /** * å¨å®ç±»ååå¸ * */ public List<ServiceTotalsOrgan> organType(ServiceTotals totals); /** * æç®è 年龿§å«åå¸ * */ public List<ServiceTotalsSex> caseSex(ServiceTotals totals); /** * å¹³åå¹´é¾ * */ public List<ServiceTotals> caseAvgAge(ServiceTotals totals); /** * æ§å«ä¸è¡ååå¸ * */ public List<ServiceTotalsBood> caseBloodType(ServiceTotals totals); /** * æ»æ½å¨æ»å®ææ°ç»è®¡ * */ List<ServiceTotalsTotal> totals(ServiceTotals totals); /** * æ¡ä¾æç»å表 * */ List<trendList> trendList(ServiceTotals totals); } ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java
@@ -143,6 +143,7 @@ serviceDonatebaseinfo1.setRegistertown(serviceDonatebaseinfoReport.getRegistertownname()); serviceDonatebaseinfo1.setReportHospital(serviceDonatebaseinfoReport.getToHospital()); serviceDonatebaseinfo1.setFirstDept(serviceDonatebaseinfoReport.getDeptName()); serviceDonatebaseinfo1.setRegistercountyname(serviceDonatebaseinfoReport.getRegisterCountyName()); serviceDonatebaseinfo1.setCaseNo(null); //å éè¿caseNoæ¥è¯¢æ¯å¦åå¨ ServiceDonatebaseinfo serviceDonatebaseinfo = new ServiceDonatebaseinfo(); ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTotalsServiceImp.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,126 @@ package com.ruoyi.project.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.project.domain.ServiceTotals; import com.ruoyi.project.domain.vo.*; import com.ruoyi.project.mapper.ServiceTotalsMapper; import com.ruoyi.project.service.iServiceTotalsService; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class ServiceTotalsServiceImp extends ServiceImpl<ServiceTotalsMapper, ServiceTotals> implements iServiceTotalsService { @Autowired ServiceTotalsMapper mapper; /** * æ¡ä¾è¶å¿ * */ @Override public List<ServiceTotalsTrend> caseTrend(ServiceTotals totals) { if(ObjectUtils.isNotEmpty(totals.getAgeGroup())){ switch (totals.getAgeGroup()) { case "1": totals.setAgeGroup(" and age<=17 "); break; case "2": totals.setAgeGroup(" and age>17 and age<=49 "); break; case "3": totals.setAgeGroup(" and age>49 and age<=69 "); break; case "4": totals.setAgeGroup(" and age>69 "); break; default: break; } } return mapper.caseTrend(totals); } /** * æ¡ä¾è¶å¿æä»½ * */ @Override public List<ServiceTotalsTrend> caseTrendMoon(ServiceTotals totals) { return mapper.caseTrendMoon(totals); } /** * æ¡ä¾è¶å¿åºå * */ @Override public List<ServiceTotalsTrend> caseTrendArea(ServiceTotals totals) { return mapper.caseTrendArea(totals); } /** * æç®å¨å®ç»è®¡æç» * */ @Override public List<ServiceTotalsOrgan> organ(ServiceTotals totals) { return mapper.organ(totals); } /** * å¨å®è·å/ç§»æ¤è¶å¿ * */ @Override public List<ServiceTotalsOrgan> organMoon(ServiceTotals totals) { return mapper.organMoon(totals); } /** * å¨å®ç±»ååå¸ * */ @Override public List<ServiceTotalsOrgan> organType(ServiceTotals totals) { return mapper.organType(totals); } /** * æç®è 年龿§å«åå¸ * */ @Override public List<ServiceTotalsSex> caseSex(ServiceTotals totals) { return mapper.caseSex(totals); } /** * å¹³åå¹´é¾ * */ @Override public List<ServiceTotals> caseAvgAge(ServiceTotals totals) { return mapper.caseAvgAge(totals); } /** * æ§å«ä¸è¡ååå¸ * */ @Override public List<ServiceTotalsBood> caseBloodType(ServiceTotals totals) { return mapper.caseBloodType(totals); } /** * æ§å«ä¸è¡ååå¸ * */ @Override public List<ServiceTotalsTotal> totals(ServiceTotals totals) { return mapper.totals(totals); } /** * æ§å«ä¸è¡ååå¸ * */ @Override public List<trendList> trendList(ServiceTotals totals) { return mapper.trendList(totals); } } ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,179 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.project.mapper.ServiceTotalsMapper"> <select id="caseTrend" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsTrend"> SELECT DATE_FORMAT(a.donatetime, '%Y-%m') donateTime, RegisterCountyName area, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id where a.del_flag=0 <where> <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if> <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if> </where> GROUP BY RegisterCountyName, DATE_FORMAT(a.donatetime, '%Y-%m') </select> <select id="caseTrendMoon" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsTrend"> SELECT DATE_FORMAT(a.donatetime, '%Y-%m') donateTime, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id where a.del_flag=0 <where> <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if> <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if> </where> GROUP BY DATE_FORMAT(a.donatetime, '%Y-%m') </select> <select id="caseTrendArea" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsTrend"> SELECT RegisterCountyName area, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id where a.del_flag=0 <where> <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if> <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if> </where> GROUP BY RegisterCountyName </select> <select id="organ" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsOrgan"> SELECT DATE_FORMAT(a.OrganGetTime, '%Y-%m') donateTime,a.OrganName organName, COUNT(*) getCount, COUNT(IF(transplantstate=3, true, NULL)) useCount FROM service_donationwitnessorgan a LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName where a.del_flag=0 <where> <if test="area != null and area != ''"> and a.InfoID in (select id FROM service_donatecompletioninfo where RegisterCountyName>=#{area} ) </if> <if test="organName != null and organName != ''">and a.OrganName>=#{organName}</if> <if test="startTime != null and startTime != ''">and a.OrganGetTime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.OrganGetTime <= #{endTime}</if> </where> GROUP BY DATE_FORMAT(a.OrganGetTime, '%Y-%m'),a.OrganName </select> <select id="organMoon" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsOrgan"> SELECT DATE_FORMAT(a.OrganGetTime, '%Y-%m') donateTime, COUNT(*) getCount, COUNT(IF(transplantstate=3, true, NULL)) useCount FROM service_donationwitnessorgan a LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName where a.del_flag=0 <where> <if test="area != null and area != ''"> and a.InfoID in (select id FROM service_donatecompletioninfo where RegisterCountyName>=#{area} ) </if> <if test="organName != null and organName != ''">and a.OrganName>=#{organName}</if> <if test="startTime != null and startTime != ''">and a.OrganGetTime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.OrganGetTime <= #{endTime}</if> </where> GROUP BY DATE_FORMAT(a.OrganGetTime, '%Y-%m') </select> <select id="organType" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsOrgan"> SELECT a.OrganName organName, COUNT(*) getCount, COUNT(IF(transplantstate=3, true, NULL)) useCount FROM service_donationwitnessorgan a LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName where a.del_flag=0 <where> <if test="area != null and area != ''"> and a.InfoID in (select id FROM service_donatecompletioninfo where RegisterCountyName>=#{area} ) </if> <if test="organName != null and organName != ''">and a.OrganName>=#{organName}</if> <if test="startTime != null and startTime != ''">and a.OrganGetTime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.OrganGetTime <= #{endTime}</if> </where> GROUP BY a.OrganName </select> <select id="caseSex" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsSex"> SELECT COUNT(sex) totalCount, COUNT(IF(sex=1, true, NULL)) manCount ,COUNT(IF(sex=2, true, NULL)) womanCount FROM service_donatebaseinfo where del_flag=0 <where> <if test="area != null and area != ''"> and RegisterCountyName>=#{area} </if> <if test="boodType != null and boodType != ''"> and BloodType>=#{boodType} </if> <if test="sex != null and sex != ''"> and sex>=#{sex} </if> <if test="ageGroup != null and ageGroup != ''"> and ${ageGroup} </if> <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if> </where> GROUP BY sex </select> <select id="caseAvgAge" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotals"> SELECT AVG(age) avgAge FROM service_donatebaseinfo where del_flag=0 <where> <if test="area != null and area != ''"> and RegisterCountyName>=#{area} </if> <if test="boodType != null and boodType != ''"> and BloodType>=#{boodType} </if> <if test="sex != null and sex != ''"> and sex>=#{sex} </if> <if test="ageGroup != null and ageGroup != ''"> and ${ageGroup} </if> <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if> </where> </select> <select id="caseBloodType" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsBood"> SELECT COUNT(BloodType) boodTypeCount,BloodType bloodType FROM service_donatebaseinfo where del_flag=0 <where> <if test="area != null and area != ''"> and RegisterCountyName>=#{area} </if> <if test="boodType != null and boodType != ''"> and BloodType>=#{boodType} </if> <if test="sex != null and sex != ''"> and sex>=#{sex} </if> <if test="ageGroup != null and ageGroup != ''"> and ${ageGroup} </if> <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if> </where> GROUP BY BloodType </select> <select id="totals" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="ServiceTotalsTotal"> SELECT ( SELECT COUNT(*) FROM service_donatebaseinfo_report WHERE del_flag=0) totalPotential, (SELECT COUNT(*) FROM service_donatecompletioninfo WHERE del_flag=0) totalCompletion </select> <select id="trendList" parameterType="com.ruoyi.project.domain.ServiceTotals" resultType="trendList"> SELECT a.id,a.case_no,a.NAME ,a.InpatientNo,a.TreatmentHospitalName,a.workflow,a.donatetime,d.DeathReason, (SELECT GROUP_CONCAT(c.OrganName) FROM service_donateorgan c WHERE c.InfoId=a.id AND c.del_flag=0) OrganName FROM service_donatebaseinfo a LEFT JOIN service_deathinfo d ON d.InfoID=a.id where a.del_flag=0 <where> <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if> <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if> <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if> </where> </select> </mapper>