ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistinctOrgansCount.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.ruoyi.project.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "DistinctOrgansCount", description = "DistinctOrgansCount") public class DistinctOrgansCount { /** * è·åå¼ */ @ApiModelProperty(value = "è·åå¼") private Integer gainsum; /** * åºå¼å¼ */ @ApiModelProperty(value = "åºå¼å¼") private Integer abandonCount; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganInfoVO.java
ÎļþÃû´Ó ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java ÐÞ¸Ä @@ -3,7 +3,7 @@ import lombok.Data; @Data public class organInfoVO { public class OrganInfoVO { private String organNo; @@ -11,4 +11,6 @@ private int count; private int abandonCount; } ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganQuality.java
ÎļþÃû´Ó ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java ÐÞ¸Ä @@ -4,7 +4,7 @@ import lombok.Data; @Data public class organQuality { public class OrganQuality { //å¨å®æç®è½¬åç private double donateTransferRate; ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java
@@ -8,6 +8,7 @@ import java.util.List; import com.ruoyi.project.domain.ServiceDonateorgan; import com.ruoyi.project.domain.vo.DistinctOrgansCount; import com.ruoyi.project.domain.vo.DonateOrganVO; import com.ruoyi.project.domain.vo.TimeVO; import org.apache.ibatis.annotations.Mapper; @@ -70,7 +71,7 @@ int getOrgansCount(@Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("organizationid") String organizationid); int getDistinctOrgansCount(@Param("organno") String organno, @Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("city") String city, @Param("reporterno") String reporterno); DistinctOrgansCount getDistinctOrgansCount(@Param("organno") String organno, @Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("city") String city, @Param("reporterno") String reporterno); String getOrganNameByNo(String organno); ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java
@@ -1,15 +1,10 @@ package com.ruoyi.project.service; import java.util.HashMap; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.project.domain.ServiceDonateorgan; import com.ruoyi.project.domain.ServiceOrganallocation; import com.ruoyi.project.domain.vo.*; import org.springframework.web.bind.annotation.PathVariable; /** * æç®å¨å®ç®¡çServiceæ¥å£ @@ -35,7 +30,7 @@ public String getOrganNumber(ServiceDonateorgan serviceDonateorgan); organQuality getOrganQuality(TimeVO timeVO); OrganQuality getOrganQuality(TimeVO timeVO); List<DonateOrganVO> selectVOList(DonateOrganVO donateOrganVO); @@ -70,7 +65,7 @@ List<organNumberByOrgVO> getOrganNumberByOrg(TimeVO timeVO); List<organInfoVO> getOrganCount(TimeVO timeVO); List<OrganInfoVO> getOrganCount(TimeVO timeVO); List<ServiceDonateorgan> saveData(List<ServiceDonateorgan> serviceDonateorgans); ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
@@ -1,10 +1,8 @@ package com.ruoyi.project.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; @@ -21,12 +19,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; /** * æç®å¨å®ç®¡çServiceä¸å¡å±å¤ç @@ -237,8 +232,8 @@ } @Override public organQuality getOrganQuality(TimeVO timeVO) { organQuality og = new organQuality(); public OrganQuality getOrganQuality(TimeVO timeVO) { OrganQuality og = new OrganQuality(); //æ¬å¹´åº¦è·åæç®è æ°é int transferNumber = serviceDonationwitnessMapper.countThisYearByTime(timeVO); @@ -259,6 +254,9 @@ int DCDDonaterNumber = serviceDonationwitnessMapper.getDCDDonaterNumberThisYear(timeVO); //æ¬å¹´åº¦DBCDæ¥æºå¨å®æç®è int DBCDDonaterNumber = serviceDonationwitnessMapper.getDBCDDonaterNumberThisYear(timeVO); //æ¥åºæ¥çtransferNumberæé®é¢ï¼å ä¸ç¨äºï¼ç¨ä¸é¢ç¸å çtransferNumber transferNumber = DBDDonaterNumber + DCDDonaterNumber + DBCDDonaterNumber; log.info("transferNumberçå¼ä¸ºï¼{}, DBDDonaterNumberçå¼ä¸ºï¼{}ï¼ DCDDonaterNumberçå¼ä¸ºï¼{}ï¼ DBCDDonaterNumberçå¼ä¸ºï¼{}", transferNumber, DBDDonaterNumber, DCDDonaterNumber, DBCDDonaterNumber); if (transferNumber == 0) { og.setOrganProductionRate(0.0); og.setDBDDonateRate(0.0); @@ -721,8 +719,8 @@ } @Override public List<organInfoVO> getOrganCount(TimeVO timeVO) { List<organInfoVO> l = new ArrayList<>(); public List<OrganInfoVO> getOrganCount(TimeVO timeVO) { List<OrganInfoVO> l = new ArrayList<>(); //List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.selectAll(timeVO); Map<String, Integer> map_organs = new HashMap<String, Integer>(); @@ -736,17 +734,24 @@ for (SysDictData sysDictData : data) { if (!sysDictData.getDictValue().equals("C00")) { int count = serviceDonateorganMapper.getDistinctOrgansCount(sysDictData.getDictValue(), timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()); map_organs.put(sysDictData.getDictValue(), count); } } for (Map.Entry<String, Integer> entry : map_organs.entrySet()) { organInfoVO organ = new organInfoVO(); organ.setOrganNo(entry.getKey()); //organ.setOrganName(serviceDonateorganMapper.getOrganNameByNo(entry.getKey())); organ.setCount(entry.getValue()); DistinctOrgansCount distinctOrgansCount = serviceDonateorganMapper.getDistinctOrgansCount(sysDictData.getDictValue(), timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno()); // map_organs.put(sysDictData.getDictValue(), distinctOrgansCount.getGainsum()); // map_organs.put("abandonCount", distinctOrgansCount.getAbandonCount()); OrganInfoVO organ = new OrganInfoVO(); organ.setOrganNo(sysDictData.getDictValue()); organ.setCount(distinctOrgansCount.getGainsum()); organ.setAbandonCount(distinctOrgansCount.getAbandonCount()); l.add(organ); } } // for (Map.Entry<String, Integer> entry : map_organs.entrySet()) { // OrganInfoVO organ = new OrganInfoVO(); // organ.setOrganNo(entry.getKey()); // //organ.setOrganName(serviceDonateorganMapper.getOrganNameByNo(entry.getKey())); // organ.setCount(entry.getValue()); // organ.setAbandonCount(); // l.add(organ); // } return l; } ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
@@ -534,8 +534,8 @@ and OrganGetTime >= #{starttime} and OrganGetTime <= #{endtime} </select> <select id="getDistinctOrgansCount" resultType="java.lang.Integer"> select count(*) from service_donationwitnessorgan d <select id="getDistinctOrgansCount" resultType="com.ruoyi.project.domain.vo.DistinctOrgansCount"> select count(*) as gainsum,sum(case when transplantstate=3 then 1 else 0 end) as abandonCount from service_donatecomporgan d inner join service_donatebaseinfo b on b.id = d.InfoID inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID where d.OrganNo = #{organno}