From b700ed6963d12a004b2d000e2446b4ef31aac0f0 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 24 七月 2024 15:10:55 +0800 Subject: [PATCH] 变更 --- ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java | 174 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 101 insertions(+), 73 deletions(-) diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java index 355eb56..ba76377 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java @@ -1,23 +1,27 @@ 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.entity.SysDictData; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.DtoConversionUtils; import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.vo.*; import com.ruoyi.project.mapper.*; import com.ruoyi.project.service.*; import com.ruoyi.system.mapper.SysDictDataMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; +import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.*; -import java.util.concurrent.ConcurrentHashMap; /** * 鎹愮尞鍣ㄥ畼绠$悊Service涓氬姟灞傚鐞� @@ -25,6 +29,7 @@ * @author ruoyi * @date 2021-11-10 */ +@Slf4j @Service public class ServiceDonateorganServiceImpl extends ServiceImpl<ServiceDonateorganMapper, ServiceDonateorgan> implements IServiceDonateorganService { @@ -61,6 +66,8 @@ @Autowired private SysDictDataMapper dictDataMapper; + @Autowired + IServiceOrganallocationService serviceOrganallocationService; /** @@ -114,6 +121,9 @@ if (serviceDonateorgan.getTransplanttime() != null) { wrappers.eq(ServiceDonateorgan::getTransplanttime, serviceDonateorgan.getTransplanttime()); } + if (serviceDonateorgan.getEstimatedtime() != null) { + wrappers.eq(ServiceDonateorgan::getEstimatedtime, serviceDonateorgan.getEstimatedtime()); + } return this.list(wrappers); } @@ -134,15 +144,6 @@ map_accept.put(org_accept.getCity(), map_accept.getOrDefault(org_accept.getCity(), 0) + 1); } } -// List<BasePrcaddressDict> city = basePrcaddressDictMapper.getAllCityOfZJ(); -// for(BasePrcaddressDict c : city){ -// NumberOfOrgans numberOfOrgans = new NumberOfOrgans(); -// numberOfOrgans.setDistrict(c.getAreaname()); -// numberOfOrgans.setNumberOfHospitals(baseOrganizationMapper.getOrganizationByCity(c.getAreanumber())); -// numberOfOrgans.setDonateNumber(map_donate.getOrDefault(c.getAreaname(),0)); -// numberOfOrgans.setAcceptNumber(map_accept.getOrDefault(c.getAreaname(),0)); -// list.add(numberOfOrgans); -// } List<String> regions = new ArrayList<String>(); regions.add("0"); @@ -231,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); @@ -245,7 +246,7 @@ og.setDonateTransferRate(transferRate); } - //鏈勾搴︾Щ妞嶅櫒瀹樻暟閲� + //鏈勾搴︾Щ妞嶅櫒瀹樻暟閲忥紙鍚純鐢級 int organTransplantNumber = serviceDonateorganMapper.getAllFinishedOrgansThisYear(timeVO); //鏈勾搴BD鏉ユ簮鍣ㄥ畼鎹愮尞鑰� int DBDDonaterNumber = serviceDonationwitnessMapper.getDBDDonaterNumberThisYear(timeVO); @@ -253,6 +254,9 @@ int DCDDonaterNumber = serviceDonationwitnessMapper.getDCDDonaterNumberThisYear(timeVO); //鏈勾搴BCD鏉ユ簮鍣ㄥ畼鎹愮尞鑰� int DBCDDonaterNumber = serviceDonationwitnessMapper.getDBCDDonaterNumberThisYear(timeVO); + //鏌ュ嚭鏉ョ殑transferNumber鏈夐棶棰橈紝鍏堜笉鐢ㄤ簡锛岀敤涓嬮潰鐩稿姞鐨則ransferNumber + 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); @@ -291,7 +295,15 @@ og.setMarginOrganRate(0.0); og.setGermPositiveRate(0.0); } else { - double organUsedRate = (double) organTransplantNumber / (double) getOrganNumber; + 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); + double organUsedRate = (double) organTransplantNumber2 / (double) organTransplantNumber; og.setOrganUsedRate(organUsedRate); double biopsyBeforeRate = (double) biopsyBeforeNumber / (double) getOrganNumber; @@ -440,7 +452,8 @@ donateNumber.setNumberOfDonate(serviceDonatebaseinfoMapper.countNumber(timeVO)); donateNumber.setNumberOfMedicalEvaluation(serviceMedicalevaluationMapper.countNumber(timeVO)); donateNumber.setNumberOfRelativeConfirmation(serviceRelativesconfirmationMapper.countNumber(timeVO)); - donateNumber.setNumberOfDonatePeople(serviceOrganallocationMapper.countNumber(timeVO)); +// donateNumber.setNumberOfDonatePeople(serviceOrganallocationMapper.countNumber(timeVO)); + donateNumber.setNumberOfDonatePeople(serviceDonateorganMapper.countNumber(timeVO)); donateNumber.setNumberOfOrgans(serviceDonateorganMapper.countNumber(timeVO)); donateNumber.setNumberOfWitness(serviceDonationwitnessMapper.countNumber(timeVO)); donateNumber.setNumberOfEthicalReview(serviceEthicalreviewopinionsMapper.countNumber(timeVO)); @@ -706,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>(); @@ -721,68 +734,68 @@ 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; } + @Override + @Transactional(rollbackFor = Exception.class) + public List<ServiceDonateorgan> saveData(List<ServiceDonateorgan> serviceDonateorgans) { + for (ServiceDonateorgan serviceDonateorgan : serviceDonateorgans) { + if (serviceDonateorgan.getInfoid() == null) { + throw new BaseException("鏈叧鑱旀崘鐚熀纭�淇℃伅锛宨nfoid涓虹┖浜�" + serviceDonateorgan); + } + String organNumber = serviceDonateorgan.getDonorno() + "." + serviceDonateorgan.getOrganno(); + if (StringUtils.isEmpty(serviceDonateorgan.getDonorno()) || StringUtils.isEmpty(serviceDonateorgan.getOrganno())) { + throw new BaseException("鏂板鏃剁敓鎴愮殑缂栧彿涓虹┖,鍒涘缓澶辫触(璇锋鏌ユ崘鐚�呯紪鍙峰拰鍣ㄥ畼绫诲埆)! 锛�" + serviceDonateorgan.toString()); + } else { + ServiceDonateorgan serviceDonateorgan1 = new ServiceDonateorgan(); + serviceDonateorgan1.setOrgannumber(organNumber); + List<ServiceDonateorgan> listrecord = this.queryList(serviceDonateorgan); + if (listrecord.size() > 0) { + continue; + } + } + serviceDonateorgan.setOrgannumber(organNumber); + log.info("serviceDonateorgan鐨勬暟鎹负: {}", serviceDonateorgan); + boolean save = this.save(serviceDonateorgan); -// @Override -// public List<DonateByRegionVO> OrgansOfHospitalByMonth() { -// List<BaseOrganization> baseOrganizations = baseOrganizationMapper.getHospitalList(); -// List<DonateByRegionVO> l = new ArrayList<>(); -// List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getAllDonateBaseInfo(); -// -// for(BaseOrganization b : baseOrganizations){ -// HashMap<String, Integer> map_baseinfo_count = new HashMap<String, Integer>(); -// HashMap<String, Integer> map_completion_count = new HashMap<String, Integer>(); -// //List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getBaseInfoByHospital(b.getOrganizationid()); -// List<ServiceDonatebaseinfo> serviceDonatebaseinfoOfThisHospital = new ArrayList<>(); -// for(ServiceDonatebaseinfo sd : serviceDonatebaseinfos){ -// if(b.getOrganizationid().equals(sd.getTreatmenthospitalno())){ -// serviceDonatebaseinfoOfThisHospital.add(sd); -// } -// } -// for(ServiceDonatebaseinfo s : serviceDonatebaseinfoOfThisHospital){ -// Date dt = s.getReporttime(); -// SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); -// String date = formatter.format(dt); -// String month = date.substring(0, 7); -// map_baseinfo_count.put(month, map_baseinfo_count.getOrDefault(month,0) + 1); -// ServiceDonatecompletioninfo sc = serviceDonatecompletioninfoMapper.getByInfoId(s.getId()); -// if(sc != null){ -// map_completion_count.put(month, map_completion_count.getOrDefault(month,0) + 1); -// } -// else{ -// map_completion_count.put(month, map_completion_count.getOrDefault(month,0)); -// } -// -// } -// -// for(Map.Entry<String, Integer> entry: map_baseinfo_count.entrySet()) { -// DonateByRegionVO d = new DonateByRegionVO(); -// d.setHospitalNumber(b.getOrganizationid()); -// d.setHospitalName(b.getOrganizationname()); -// d.setRegionLevel(b.getRegionallevel()); -// d.setMonth(entry.getKey()); -// d.setBaseInfoCount(entry.getValue()); -// d.setCompletionCount(map_completion_count.get(entry.getKey())); -// l.add(d); -// } -// } -// return l; -// } + } + return serviceDonateorgans; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean editArrayData(List<ServiceDonateorgan> serviceDonateorgans) { + for (ServiceDonateorgan serviceDonateorgan : serviceDonateorgans) { + if (serviceDonateorgan.getId() == null) { + throw new BaseException("id涓虹┖浜� 锛�" + serviceDonateorgan); + } + this.updateById(serviceDonateorgan); + } + //灏嗗甫ID鐨勬暟鎹繑鍥� + return true; + } + @Override public List<DonateNumberByMonth> getDonatePeopleByMonth(TimeVO timeVO) { @@ -917,5 +930,20 @@ return l; } + @Override + public List<ServiceDonateorgan> countList(ServiceDonateorgan serviceDonateorgan) { + SysUser user = SecurityUtils.getLoginUser().getUser(); + List<SysRole> l = user.getRoles(); + Boolean b = false; + for (SysRole r : l) { + if (r.getRoleId().longValue() == 3) { + b = true; + } + } + if (b) { + serviceDonateorgan.setCreateBy(user.getUserName()); + } + return serviceDonateorganMapper.countList(serviceDonateorgan); + } } -- Gitblit v1.9.3