package cn.besteam.modules.medical.service.impl;
|
|
import cn.besteam.common.constant.DepartmentEnum;
|
import cn.besteam.common.util.DateUtil;
|
import cn.besteam.modules.medical.entity.MwWarningConfigItem;
|
import cn.besteam.modules.medical.mapper.MwWarningConfigItemMapper;
|
import cn.besteam.modules.medical.service.IMwWarningConfigItemService;
|
import cn.besteam.modules.medical.vo.MwWarningConfigItemVO;
|
import cn.besteam.modules.shiro.authc.util.EnvUtils;
|
import cn.besteam.modules.system.entity.SysDepartment;
|
import cn.besteam.modules.system.service.ISysDepartmentService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Description: 预警-自定义配置
|
* @author: besteam
|
* @date: 2020-07-17
|
* @version: V1.0
|
*/
|
@Service
|
public class MwWarningConfigItemServiceImpl extends ServiceImpl<MwWarningConfigItemMapper, MwWarningConfigItem> implements IMwWarningConfigItemService {
|
|
@Autowired
|
private ISysDepartmentService sysDepartmentService;
|
|
@Override
|
public List<MwWarningConfigItemVO> listByType(Integer type, Integer departmentId) {
|
|
List<MwWarningConfigItemVO> voList;
|
if (departmentId != null) {
|
SysDepartment myDepartment = sysDepartmentService.getById(departmentId);
|
if (myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.OFFICE.getType()) || myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.DEPARTMENT.getType())) {
|
return new ArrayList<>();
|
}
|
List<SysDepartment> sysDepartmentList = sysDepartmentService.list(new QueryWrapper<SysDepartment>().lambda().likeRight(SysDepartment::getTreeCode, myDepartment.getTreeCode()).eq(SysDepartment::getOrgType, DepartmentEnum.OrgTypeEnum.HOSPITAL.getType()));
|
if (CollectionUtils.isEmpty(sysDepartmentList)) {
|
return new ArrayList<>();
|
}
|
voList = baseMapper.listByType(type, sysDepartmentList.stream().map(SysDepartment::getId).collect(Collectors.toList()));
|
} else {
|
SysDepartment myDepartment = sysDepartmentService.getMyDepartment(EnvUtils.getUser().getId());
|
if (myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.OFFICE.getType()) || myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.DEPARTMENT.getType())) {
|
return new ArrayList<>();
|
}
|
List<SysDepartment> sysDepartmentList = sysDepartmentService.list(new QueryWrapper<SysDepartment>().lambda().likeRight(SysDepartment::getTreeCode, myDepartment.getTreeCode()).eq(SysDepartment::getOrgType, DepartmentEnum.OrgTypeEnum.HOSPITAL.getType()));
|
if (CollectionUtils.isEmpty(sysDepartmentList)) {
|
return new ArrayList<>();
|
}
|
voList = baseMapper.listByType(type, sysDepartmentList.stream().map(SysDepartment::getId).collect(Collectors.toList()));
|
}
|
for (MwWarningConfigItemVO vo : voList) {
|
if (vo.getCustomHospitalId() != null) {
|
vo.setHospitalIdList(sysDepartmentService.getParentIdList(vo.getCustomHospitalId()));
|
}
|
if (vo.getCustomOfficeId() != null) {
|
vo.setOfficeIdList(sysDepartmentService.getParentIdList(vo.getCustomOfficeId()));
|
}
|
if(vo.getApplyType()!=null && vo.getApplyType()==2){
|
vo.setCustomValueText(vo.getCustomValueText()+"("+vo.getDescription()+")");
|
}else if(vo.getApplyType()!=null && vo.getApplyType()==3){
|
vo.setCustomValueText("临时:"+Double.valueOf(vo.getCustomValueText()).intValue()+"天("+
|
DateUtil.format(vo.getUpdateTime(),"yyyy-MM-dd") +","
|
+DateUtil.format(vo.getExpirationTime(),"yyyy-MM-dd") +")");
|
}else if(vo.getApplyType()!=null && vo.getApplyType()==1){
|
vo.setCustomValueText("固定:"+Double.valueOf(vo.getCustomValueText()).intValue()+"天");
|
}
|
}
|
return voList;
|
}
|
|
@Override
|
public IPage<MwWarningConfigItemVO> listByType(Integer type, Integer departmentId, Integer pageNo, Integer pageSize) {
|
IPage<MwWarningConfigItemVO> page = new Page<>(pageNo, pageSize);
|
List<MwWarningConfigItemVO> voList;
|
if (departmentId != null) {
|
SysDepartment myDepartment = sysDepartmentService.getById(departmentId);
|
if (myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.OFFICE.getType()) || myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.DEPARTMENT.getType())) {
|
return page;
|
}
|
List<SysDepartment> sysDepartmentList = sysDepartmentService.list(new QueryWrapper<SysDepartment>().lambda().likeRight(SysDepartment::getTreeCode, myDepartment.getTreeCode()).eq(SysDepartment::getOrgType, DepartmentEnum.OrgTypeEnum.HOSPITAL.getType()));
|
if (CollectionUtils.isEmpty(sysDepartmentList)) {
|
return page;
|
}
|
voList = baseMapper.listByType(type, sysDepartmentList.stream().map(SysDepartment::getId).collect(Collectors.toList()),page);
|
} else {
|
SysDepartment myDepartment = sysDepartmentService.getMyDepartment(EnvUtils.getUser().getId());
|
if (myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.OFFICE.getType()) || myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.DEPARTMENT.getType())) {
|
return page;
|
}
|
List<SysDepartment> sysDepartmentList = sysDepartmentService.list(new QueryWrapper<SysDepartment>().lambda().likeRight(SysDepartment::getTreeCode, myDepartment.getTreeCode()).eq(SysDepartment::getOrgType, DepartmentEnum.OrgTypeEnum.HOSPITAL.getType()));
|
if (CollectionUtils.isEmpty(sysDepartmentList)) {
|
return page;
|
}
|
voList = baseMapper.listByType(type, sysDepartmentList.stream().map(SysDepartment::getId).collect(Collectors.toList()),page);
|
}
|
for (MwWarningConfigItemVO vo : voList) {
|
if (vo.getCustomHospitalId() != null) {
|
vo.setHospitalIdList(sysDepartmentService.getParentIdList(vo.getCustomHospitalId()));
|
}
|
if (vo.getCustomOfficeId() != null) {
|
vo.setOfficeIdList(sysDepartmentService.getParentIdList(vo.getCustomOfficeId()));
|
}
|
if(vo.getApplyType()!=null && vo.getApplyType()==2){
|
vo.setCustomValueText(vo.getCustomValueText()+"("+vo.getDescription()+")");
|
}else if(vo.getApplyType()!=null && vo.getApplyType()==3){
|
vo.setCustomValueText("临时:"+Double.valueOf(vo.getCustomValueText()).intValue()+"天("+
|
DateUtil.format(vo.getUpdateTime(),"yyyy-MM-dd") +","
|
+DateUtil.format(vo.getExpirationTime(),"yyyy-MM-dd") +")");
|
}else if(vo.getApplyType()!=null && vo.getApplyType()==1){
|
vo.setCustomValueText("固定:"+Double.valueOf(vo.getCustomValueText()).intValue()+"天");
|
}
|
|
}
|
page.setRecords(voList);
|
return page;
|
}
|
|
}
|