package com.ltkj.hosp.service.impl;
|
|
import java.math.BigDecimal;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ltkj.common.utils.DateUtils;
|
import com.ltkj.common.utils.StringUtils;
|
import com.ltkj.common.utils.spring.SpringUtils;
|
import com.ltkj.hosp.treeUtil.TreeSelect;
|
import net.sf.ehcache.constructs.scheduledrefresh.OverseerJob;
|
import org.springframework.stereotype.Service;
|
import com.ltkj.hosp.mapper.TjProjectMapper;
|
import com.ltkj.hosp.domain.TjProject;
|
import com.ltkj.hosp.service.ITjProjectService;
|
|
import javax.annotation.Resource;
|
|
/**
|
* 体检项目Service业务层处理
|
*
|
* @author ltkj
|
* @date 2022-11-17
|
*/
|
@Service
|
public class TjProjectServiceImpl extends ServiceImpl<TjProjectMapper, TjProject> implements ITjProjectService {
|
@Resource
|
private TjProjectMapper tjProjectMapper;
|
|
/**
|
* 查询体检项目
|
*
|
* @param proId 体检项目主键
|
* @return 体检项目
|
*/
|
@Override
|
public TjProject selectTjProjectByProId(Long proId) {
|
return tjProjectMapper.selectTjProjectByProId(proId);
|
}
|
|
/**
|
* 查询体检项目列表
|
*
|
* @param tjProject 体检项目
|
* @return 体检项目
|
*/
|
@Override
|
public List<TjProject> selectTjProjectList(TjProject tjProject) {
|
return tjProjectMapper.selectTjProjectList(tjProject);
|
}
|
|
/**
|
* 新增体检项目
|
*
|
* @param tjProject 体检项目
|
* @return 结果
|
*/
|
@Override
|
public int insertTjProject(TjProject tjProject) {
|
tjProject.setCreateTime(DateUtils.getNowDate());
|
return tjProjectMapper.insertTjProject(tjProject);
|
}
|
|
/**
|
* 修改体检项目
|
*
|
* @param tjProject 体检项目
|
* @return 结果
|
*/
|
@Override
|
public int updateTjProject(TjProject tjProject) {
|
tjProject.setUpdateTime(DateUtils.getNowDate());
|
return tjProjectMapper.updateTjProject(tjProject);
|
}
|
|
/**
|
* 批量删除体检项目
|
*
|
* @param proIds 需要删除的体检项目主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteTjProjectByProIds(Long[] proIds) {
|
return tjProjectMapper.deleteTjProjectByProIds(proIds);
|
}
|
|
/**
|
* 删除体检项目信息
|
*
|
* @param proId 体检项目主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteTjProjectByProId(Long proId) {
|
return tjProjectMapper.deleteTjProjectByProId(proId);
|
}
|
|
@Override
|
public List<TjProject> getTjProjectListBySoneId(String proId) {
|
return tjProjectMapper.getTjProjectListBySoneId(proId);
|
}
|
|
@Override
|
public List<TjProject> getTjParentProjectList(String proId) {
|
return tjProjectMapper.getTjParentProjectList(proId);
|
}
|
|
@Override
|
public TjProject getTjProjectById(String proId) {
|
return tjProjectMapper.getTjProjectById(proId);
|
}
|
|
@Override
|
public String appendTjProjectName(String proId) {
|
return tjProjectMapper.appendTjProjectName(proId);
|
}
|
|
@Override
|
public List<Long> getKsTjProjectIdListBydeptId(String ksId) {
|
return tjProjectMapper.getKsTjProjectIdListBydeptId(ksId);
|
}
|
|
@Override
|
public List<Long> getKsTjProjectIdList() {
|
return tjProjectMapper.getKsTjProjectIdList();
|
}
|
|
@Override
|
public String appendTjProjectNames(String[] proIds) {
|
return tjProjectMapper.appendTjProjectNames(proIds);
|
}
|
|
@Override
|
public String getAllSonNames(String proId) {
|
return tjProjectMapper.getAllSonNames(proId);
|
}
|
|
@Override
|
public String getAllNamesByPacId(String pacId) {
|
return tjProjectMapper.getAllNamesByPacId(pacId);
|
}
|
|
@Override
|
public BigDecimal getMoneys(String proId) {
|
return tjProjectMapper.getMoneys(proId);
|
}
|
|
@Override
|
public List<TjProject> getTjParentProjectListByPacId(String pacId) {
|
return tjProjectMapper.getTjParentProjectListByPacId(pacId);
|
}
|
|
@Override
|
public List<TreeSelect> selectProjectTreeList(TjProject tjProject) {
|
LambdaQueryWrapper<TjProject> wq=new LambdaQueryWrapper<>();
|
wq.eq(TjProject::getProStatus,0);
|
List<TjProject> projects = SpringUtils.getAopProxy(this).list(wq);
|
return buildProjectTreeSelect(projects);
|
}
|
|
@Override
|
public List<TjProject> buildProjectTree(List<TjProject> projects) {
|
List<TjProject> res = new ArrayList<TjProject>();
|
List<Long> temp = new ArrayList<Long>();
|
for (TjProject project : projects) {
|
temp.add(project.getProId());
|
}
|
for (TjProject project : projects) {
|
// 如果是顶级节点, 遍历该父节点的所有子节点
|
if (!temp.contains(project.getProParentId())) {
|
recursionFn(projects, project);
|
res.add(project);
|
}
|
}
|
if (res.isEmpty()) {
|
res = projects;
|
}
|
return res;
|
}
|
|
@Override
|
public List<TreeSelect> buildProjectTreeSelect(List<TjProject> projects) {
|
List<TjProject> deptTrees = buildProjectTree(projects);
|
return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
|
}
|
|
@Override
|
public List<TjProject> getProBySqlAndName(String proName, String checkType, String deptId) {
|
return tjProjectMapper.getProBySqlAndName(proName,checkType,deptId);
|
}
|
|
@Override
|
public List<TjProject> getTjProListByPacIdAndDeptId(String pacId) {
|
return tjProjectMapper.getTjProListByPacIdAndDeptId(pacId);
|
}
|
|
@Override
|
public List<TjProject> getAllChildListById(String proId) {
|
return tjProjectMapper.getAllChildListById(proId);
|
}
|
|
@Override
|
public List<TjProject> getTjProjectList() {
|
return tjProjectMapper.getTjProjectList();
|
}
|
|
@Override
|
public List<TjProject> getDxTjProjectList() {
|
return tjProjectMapper.getDxTjProjectList();
|
}
|
|
@Override
|
public List<TjProject> getOpenDxTjProjectList() {
|
return tjProjectMapper.getOpenDxTjProjectList();
|
}
|
|
@Override
|
public List<TjProject> getPacTjProjectList() {
|
return tjProjectMapper.getPacTjProjectList();
|
}
|
|
@Override
|
public List<Long> getHuaYanProId() {
|
return tjProjectMapper.getHuaYanProId();
|
}
|
|
@Override
|
public List<Long> getYingXiangProId() {
|
return tjProjectMapper.getYingXiangProId();
|
}
|
|
@Override
|
public List<Long> getHuaYanKsProId(String ksId) {
|
return tjProjectMapper.getHuaYanKsProId(ksId);
|
}
|
|
@Override
|
public List<Long> getNotCcCtXdtProId() {
|
return tjProjectMapper.getNotCcCtXdtProId();
|
}
|
|
@Override
|
public List<Long> getNneedReprotProId() {
|
return tjProjectMapper.getNneedReprotProId();
|
}
|
|
@Override
|
public List<TjProject> getTjProjectListByTbTransition(String proParentId, String tjNumber) {
|
return tjProjectMapper.getTjProjectListByTbTransition(proParentId,tjNumber);
|
}
|
|
@Override
|
public List<String> getTjNumLIstByXmmx(String xmmc) {
|
return tjProjectMapper.getTjNumLIstByXmmx(xmmc);
|
}
|
|
|
|
/**
|
* 递归列表
|
*/
|
private void recursionFn(List<TjProject> list, TjProject t) {
|
// 得到子节点列表
|
List<TjProject> childList = getChildList(list, t);
|
t.setChildren(childList);
|
for (TjProject tChild : childList) {
|
if (hasChild(list, tChild)) {
|
recursionFn(list, tChild);
|
}
|
}
|
}
|
|
/**
|
* 得到子节点列表
|
*/
|
private List<TjProject> getChildList(List<TjProject> list, TjProject t) {
|
List<TjProject> tlist = new ArrayList<TjProject>();
|
Iterator<TjProject> it = list.iterator();
|
while (it.hasNext()) {
|
TjProject n = (TjProject) it.next();
|
if (StringUtils.isNotNull(n.getProParentId()) && n.getProParentId().longValue() == t.getProId().longValue()) {
|
tlist.add(n);
|
}
|
}
|
return tlist;
|
}
|
|
/**
|
* 判断是否有子节点
|
*/
|
private boolean hasChild(List<TjProject> list, TjProject t) {
|
return getChildList(list, t).size() > 0;
|
}
|
|
|
@Override
|
public List<Map<String,Object>> tjCsXmjgcx(String tjNum, String proId) {
|
|
Map<String,Object> map=new HashMap<>();
|
map.put("tjnum",tjNum);
|
map.put("proid",proId);
|
return tjProjectMapper.tjCsXmjgcx(map);
|
}
|
|
@Override
|
public List<Map<String, Object>> getTjproGzJy(String tjNum, String proId, String gzz, int cgorjyjc) {
|
Map<String,Object> map=new HashMap<>();
|
map.put("tjnum",tjNum);
|
map.put("proid",proId);
|
map.put("jgz",gzz);
|
map.put("cgorjyjc",cgorjyjc);
|
return tjProjectMapper.getTjproGzJy(map);
|
}
|
|
@Override
|
public Map<String,Object> getTjHyBgList(Integer page,Integer pageSize,String pname,String pid,String pym,String checktype) {
|
Map<String,Object> map=new HashMap<>();
|
map.put("page",page);
|
map.put("pageSize",pageSize);
|
map.put("pname",pname);
|
map.put("pid",pid);
|
map.put("pym",pym);
|
map.put("checktype",checktype);
|
List<List<?>> list = tjProjectMapper.getTjHyBgList(map);
|
Map<String,Object> map1=new HashMap<>();
|
map1.put("list",list);
|
map1.put("total",map.get("total"));
|
return map1;
|
}
|
|
}
|