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 | 272 +++++++++++++++++++----------------------------------- 1 files changed, 96 insertions(+), 176 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 fced001..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 { @@ -62,22 +67,7 @@ private SysDictDataMapper dictDataMapper; @Autowired - private IServiceMedicalevaluationService serviceMedicalevaluationService; - - @Autowired - private IServiceRelativesconfirmationService serviceRelativesconfirmationService; - - @Autowired - private IServiceEthicalreviewopinionsService serviceEthicalreviewopinionsService; - - @Autowired - private IServiceOrganallocationService serviceOrganallocationService; - - @Autowired - private IServiceDonationwitnessService serviceDonationwitnessService; - - @Autowired - private IServiceDonatecompletioninfoService serviceDonatecompletioninfoService; + IServiceOrganallocationService serviceOrganallocationService; /** @@ -131,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); } @@ -151,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"); @@ -248,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); @@ -262,7 +246,7 @@ og.setDonateTransferRate(transferRate); } - //鏈勾搴︾Щ妞嶅櫒瀹樻暟閲� + //鏈勾搴︾Щ妞嶅櫒瀹樻暟閲忥紙鍚純鐢級 int organTransplantNumber = serviceDonateorganMapper.getAllFinishedOrgansThisYear(timeVO); //鏈勾搴BD鏉ユ簮鍣ㄥ畼鎹愮尞鑰� int DBDDonaterNumber = serviceDonationwitnessMapper.getDBDDonaterNumberThisYear(timeVO); @@ -270,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); @@ -308,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; @@ -457,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)); @@ -723,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>(); @@ -738,159 +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 - public Map<String, Object> getWorkFlow(Long id) { - //鐢ㄤ簬杩斿洖 - Map<String, Object> map = new ConcurrentHashMap<>(); + @Transactional(rollbackFor = Exception.class) + public List<ServiceDonateorgan> saveData(List<ServiceDonateorgan> serviceDonateorgans) { + for (ServiceDonateorgan serviceDonateorgan : serviceDonateorgans) { + if (serviceDonateorgan.getInfoid() == null) { + throw new BaseException("鏈叧鑱旀崘鐚熀纭�淇℃伅锛宨nfoid涓虹┖浜�" + serviceDonateorgan); + } - ServiceDonateorgan serviceDonateorgan = getById(id); - if (ObjectUtils.isEmpty(serviceDonateorgan)) { - return null; + 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); + } - //灏佽serviceDonateorgan娼滃湪鎹愮尞鏁版嵁 - Map<String, String> donateorgan = new HashMap<>(); - donateorgan.put("createtime", serviceDonateorgan.getCreateTime().toString()); - donateorgan.put("updatetime", serviceDonateorgan.getUpdateTime().toString()); - donateorgan.put("process", ""); - - //灏佽鍖诲璇勪及 - Map<String, String> medicalevaluation = new HashMap<>(); - ServiceMedicalevaluation serviceMedicalevaluation = new ServiceMedicalevaluation(); - serviceMedicalevaluation.setInfoid(id); - List<ServiceMedicalevaluation> serviceMedicalevaluations = serviceMedicalevaluationService.queryList(serviceMedicalevaluation); - if (!CollectionUtils.isEmpty(serviceMedicalevaluations)) { - medicalevaluation.put("createtime", serviceMedicalevaluations.get(0).getCreateTime().toString()); - medicalevaluation.put("updatetime", serviceMedicalevaluations.get(0).getUpdateTime().toString()); - medicalevaluation.put("process", ""); - } - - //灏佽鎹愮尞纭 - Map<String, String> relativesconfirmation = new HashMap<>(); - ServiceRelativesconfirmation serviceRelativesconfirmation = new ServiceRelativesconfirmation(); - serviceRelativesconfirmation.setInfoid(id); - List<ServiceRelativesconfirmation> serviceRelativesconfirmations = serviceRelativesconfirmationService.queryList(serviceRelativesconfirmation); - if (!CollectionUtils.isEmpty(serviceRelativesconfirmations)) { - relativesconfirmation.put("createtime", serviceRelativesconfirmations.get(0).getCreateTime().toString()); - relativesconfirmation.put("updatetime", serviceRelativesconfirmations.get(0).getUpdateTime().toString()); - relativesconfirmation.put("process", ""); - } - - - //灏佽浼︾悊瀹℃煡 - Map<String, String> ethicalreviewopinions = new HashMap<>(); - ServiceEthicalreviewopinions serviceEthicalreviewopinions = new ServiceEthicalreviewopinions(); - serviceEthicalreviewopinions.setInfoid(id); - List<ServiceEthicalreviewopinions> serviceEthicalreviewopinionsList = serviceEthicalreviewopinionsService.queryList(serviceEthicalreviewopinions); - if (!CollectionUtils.isEmpty(serviceEthicalreviewopinionsList)) { - ethicalreviewopinions.put("createtime", serviceEthicalreviewopinionsList.get(0).getCreateTime().toString()); - ethicalreviewopinions.put("updatetime", serviceEthicalreviewopinionsList.get(0).getUpdateTime().toString()); - ethicalreviewopinions.put("process", ""); - } - - //灏佽鍣ㄥ畼鍒嗛厤 - Map<String, String> organallocationService = new HashMap<>(); - ServiceOrganallocation serviceOrganallocation = new ServiceOrganallocation(); - serviceOrganallocation.setOrganid(id); - List<ServiceOrganallocation> serviceOrganallocations = serviceOrganallocationService.selectServiceOrganallocationList(serviceOrganallocation); - if (!CollectionUtils.isEmpty(serviceOrganallocations)) { - organallocationService.put("createtime", serviceOrganallocations.get(0).getCreateTime().toString()); - organallocationService.put("updatetime", serviceOrganallocations.get(0).getUpdateTime().toString()); - organallocationService.put("process", ""); - } - - //灏佽鑾峰彇瑙佽瘉 - Map<String, String> donationwitness = new HashMap<>(); - ServiceDonationwitness serviceDonationwitness = serviceDonationwitnessService.getByInfoId(id); - if (!ObjectUtils.isEmpty(serviceDonationwitness)) { - donationwitness.put("createtime", serviceDonationwitness.getCreateTime().toString()); - donationwitness.put("updatetime", serviceDonationwitness.getUpdateTime().toString()); - donationwitness.put("process", ""); - } - - //灏佽瀹屾垚鐧昏 - Map<String, String> donatecompletioninfo = new HashMap<>(); - ServiceDonatecompletioninfo serviceDonatecompletioninfo = new ServiceDonatecompletioninfo(); - serviceDonatecompletioninfo.setInfoid(id); - List<ServiceDonatecompletioninfo> serviceDonatecompletioninfos = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo); - if (!CollectionUtils.isEmpty(serviceDonatecompletioninfos)) { - donatecompletioninfo.put("createtime", serviceDonatecompletioninfos.get(0).getCreateTime().toString()); - donatecompletioninfo.put("updatetime", serviceDonatecompletioninfos.get(0).getUpdateTime().toString()); - donatecompletioninfo.put("process", ""); - } - - //灏嗘暟鎹皝闂紝骞惰繑鍥� - map.put("donateorgan", donateorgan); - map.put("medicalevaluation", medicalevaluation); - map.put("relativesconfirmation", relativesconfirmation); - map.put("ethicalreviewopinions", ethicalreviewopinions); - map.put("organallocationService", organallocationService); - map.put("donationwitness", donationwitness); - map.put("donatecompletioninfo", donatecompletioninfo); - - return map; + 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<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; -// } @Override public List<DonateNumberByMonth> getDonatePeopleByMonth(TimeVO timeVO) { @@ -1025,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