liusheng
2024-07-24 b700ed6963d12a004b2d000e2446b4ef31aac0f0
变更
已添加1个文件
已修改4个文件
已重命名2个文件
98 ■■■■■ 文件已修改
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistinctOrgansCount.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganInfoVO.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganQuality.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
@@ -297,14 +295,14 @@
            og.setMarginOrganRate(0.0);
            og.setGermPositiveRate(0.0);
        } else {
            log.info("timeVO的值为 ï¼š {}",timeVO);
            log.info("timeVO的值为 ï¼š {}", timeVO);
            TimeVO timeVO1 = DtoConversionUtils.sourceToTarget(timeVO, TimeVO.class);
            timeVO1.setTransplantstate(1);
            //获取本年度已经移植器官数量
            int organTransplantNumber2 = serviceDonateorganMapper.getAllFinishedOrgansThisYear(timeVO1);
            log.info("timeVO1的值为 ï¼š {}",timeVO1);
            log.info("organTransplantNumber2的值为 ï¼š {}",organTransplantNumber2);
            log.info("organTransplantNumber的值为 ï¼š {}",organTransplantNumber);
            log.info("timeVO1的值为 ï¼š {}", timeVO1);
            log.info("organTransplantNumber2的值为 ï¼š {}", organTransplantNumber2);
            log.info("organTransplantNumber的值为 ï¼š {}", organTransplantNumber);
            double organUsedRate = (double) organTransplantNumber2 / (double) organTransplantNumber;
            og.setOrganUsedRate(organUsedRate);
@@ -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);
                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());
            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 &lt;= #{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}
@@ -645,4 +645,4 @@
        order by create_time desc
    </select>
</mapper>
</mapper>