liusheng
2024-03-19 519886a70d630e3cdd6c0f40f55fcebc6e780dc5
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
@@ -4,20 +4,28 @@
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;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
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.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业务层处理
@@ -25,6 +33,7 @@
 * @author ruoyi
 * @date 2021-11-10
 */
@Slf4j
@Service
public class ServiceDonateorganServiceImpl extends ServiceImpl<ServiceDonateorganMapper, ServiceDonateorgan> implements IServiceDonateorganService {
@@ -61,6 +70,8 @@
    @Autowired
    private SysDictDataMapper dictDataMapper;
    @Autowired
    IServiceOrganallocationService serviceOrganallocationService;
    /**
@@ -114,6 +125,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 +148,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");
@@ -440,7 +445,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));
@@ -736,53 +742,46 @@
        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("未关联捐献基础信息,infoid为空了" + 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 +916,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);
    }
}