package com.ltkj.hosp.service.impl; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; import cn.hutool.core.util.StrUtil; 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 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 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 getTjProjectListBySoneId(String proId) { return tjProjectMapper.getTjProjectListBySoneId(proId); } @Override public List 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 getKsTjProjectIdListBydeptId(String ksId) { return tjProjectMapper.getKsTjProjectIdListBydeptId(ksId); } @Override public List 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 getTjParentProjectListByPacId(String pacId) { return tjProjectMapper.getTjParentProjectListByPacId(pacId); } @Override public List selectProjectTreeList(TjProject tjProject) { LambdaQueryWrapper wq=new LambdaQueryWrapper<>(); wq.eq(TjProject::getProStatus,0); if(StrUtil.isNotBlank(tjProject.getProName()))wq.like(TjProject::getProName,tjProject.getProName()); if(StrUtil.isNotBlank(tjProject.getProEngName()))wq.like(TjProject::getProEngName,tjProject.getProEngName()); List projects = SpringUtils.getAopProxy(this).list(wq); return buildProjectTreeSelect(projects); } @Override public List buildProjectTree(List projects) { List res = new ArrayList(); List temp = new ArrayList(); 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 buildProjectTreeSelect(List projects) { List deptTrees = buildProjectTree(projects); return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); } @Override public List getProBySqlAndName(String proName, String checkType, String deptId) { return tjProjectMapper.getProBySqlAndName(proName,checkType,deptId); } @Override public List getTjProListByPacIdAndDeptId(String pacId) { return tjProjectMapper.getTjProListByPacIdAndDeptId(pacId); } @Override public List getAllChildListById(String proId) { return tjProjectMapper.getAllChildListById(proId); } @Override public List getTjProjectList() { return tjProjectMapper.getTjProjectList(); } @Override public List getDxTjProjectList() { return tjProjectMapper.getDxTjProjectList(); } @Override public List getOpenDxTjProjectList(String nr) { return tjProjectMapper.getOpenDxTjProjectList(nr); } @Override public List getPacTjProjectList() { return tjProjectMapper.getPacTjProjectList(); } @Override public List getHuaYanProId() { return tjProjectMapper.getHuaYanProId(); } @Override public List getYingXiangProId() { return tjProjectMapper.getYingXiangProId(); } @Override public List getHuaYanKsProId(String ksId) { return tjProjectMapper.getHuaYanKsProId(ksId); } @Override public List getNotCcCtXdtProId() { return tjProjectMapper.getNotCcCtXdtProId(); } @Override public List getNneedReprotProId() { return tjProjectMapper.getNneedReprotProId(); } @Override public List getTjProjectListByTbTransition(String proParentId, String tjNumber) { return tjProjectMapper.getTjProjectListByTbTransition(proParentId,tjNumber); } @Override public List getTjNumLIstByXmmx(String xmmc) { return tjProjectMapper.getTjNumLIstByXmmx(xmmc); } /** * 递归列表 */ private void recursionFn(List list, TjProject t) { // 得到子节点列表 List childList = getChildList(list, t); t.setChildren(childList); for (TjProject tChild : childList) { if (hasChild(list, tChild)) { recursionFn(list, tChild); } } } /** * 得到子节点列表 */ private List getChildList(List list, TjProject t) { List tlist = new ArrayList(); Iterator 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 list, TjProject t) { return getChildList(list, t).size() > 0; } @Override public List> tjCsXmjgcx(String tjNum, String proId) { Map map=new HashMap<>(); map.put("tjnum",tjNum); map.put("proid",proId); return tjProjectMapper.tjCsXmjgcx(map); } @Override public List> getTjproGzJy(String tjNum, String proId, String gzz, int cgorjyjc) { Map 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 getTjHyBgList(Integer page,Integer pageSize,String pname,String pid,String pym,String checktype) { Map 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 = tjProjectMapper.getTjHyBgList(map); Map map1=new HashMap<>(); map1.put("list",list); map1.put("total",map.get("total")); return map1; } @Override public List> zdysqlcx(String sql) { Map map=new HashMap<>(); map.put("aaa",sql); return tjProjectMapper.zdysqlcx(map); } @Override public void zdysqlxg(String sql) { Map map=new HashMap<>(); map.put("aaa",sql); tjProjectMapper.zdysqlxg(map); } @Override public List getProListByBblx(String bblx) { return tjProjectMapper.getProListByBblx(bblx); } @Override public List getProListByBwwh(String bw) { return tjProjectMapper.getProListByBwwh(bw); } }