zjh
2024-04-25 a74b5ffd9c25edd8096220920934e3e42f62cc23
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
@@ -9,10 +9,14 @@
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.entity.SysDept;
import com.ltkj.common.core.redis.RedisCache;
import com.ltkj.common.utils.bean.BeanUtils;
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.treeUtil.TreeSelect;
import com.ltkj.system.service.ISysConfigService;
@@ -57,40 +61,37 @@
    private DictProSfxmService dictProSfxmService;
    @Autowired
    private ITjRulesService tjRulesService;
    @Resource
    private TestMapper testMapper;
    @Resource
    private RedisCache redisCache;
    @GetMapping("/getTjHyBgList")
    @ApiOperation(value = "查询lis数据库项目信息接口")
    public AjaxResult getTjHyBgList(@RequestParam(required = false) String pacCode,
                                    @RequestParam(required = false) String pacName,
                                    @RequestParam(required = false) String pacRemark) {
        List<Map<String, Object>> maps = testMapper.getTjHyBgList(pacCode, pacName, pacRemark);
        DynamicDataSourceContextHolder.clearDataSourceType();
        return AjaxResult.success(maps);
    }
    /**
     * 查询体检项目列表
     * 选择体检项目选单项时调用的接口
     */
    @GetMapping("/getlist")
    @ApiOperation(value = "查询体检项目列表(树形结构)")
    public AjaxResult getlist(@RequestParam(required = false) @ApiParam(value = "项目名称") String proName,
                              @RequestParam(required = false) @ApiParam(value = "检查类别") String checkType,
                              @RequestParam(required = false) @ApiParam(value = "部门id") String deptId) {
        LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>();
        wq0.eq(TjProject::getProParentId, 0);
        if(null !=proName){
            wq0.like(TjProject::getProName,proName);
    @GetMapping("/getDxList")
    @ApiOperation(value = "选择体检项目选单项时调用的接口")
    public AjaxResult getDxList() {
        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
        String config = configService.selectConfigByKey("tj_dxsxtj");
        if(null !=config && config.equals("N")){
            tjProjects = tjProjectService.getOpenDxTjProjectList();
        }
        if(null !=checkType){
            wq0.like(TjProject::getProCheckType,checkType);
        }
        if(null !=deptId){
            wq0.like(TjProject::getDeptId,deptId);
        }
        List<TjProject> tjProjects = tjProjectService.list(wq0);
        if (tjProjects != null) {
            for (TjProject project : tjProjects) {
                LambdaQueryWrapper<TjProject> wq1 = new LambdaQueryWrapper<>();
                wq1.eq(TjProject::getProParentId, project.getProId());
                List<TjProject> projectList = tjProjectService.list(wq1);
                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
                project.setTjProjectList(projectList);
                //根据每个项目的deptId拿到name  2023/2/7
                SysDept sysDept = deptService.selectDeptById(project.getDeptId());
                if (sysDept!=null){
                    project.setDeptName(sysDept.getDeptName());
                }
            }
        }
        String key = configService.selectConfigByKey("is_open_sfxm");
@@ -100,27 +101,118 @@
        return AjaxResult.success(map);
    }
    /**
     * 查询体检项目列表
     */
    @GetMapping("/getlist")
    @ApiOperation(value = "查询体检项目列表(树形结构)")
    public AjaxResult getlist(@RequestParam(required = false) @ApiParam(value = "项目名称") String proName,
                              @RequestParam(required = false) @ApiParam(value = "检查类别") String checkType,
                              @RequestParam(required = false) @ApiParam(value = "部门id") String deptId) {
        //上面的换sql
        final List<TjProject> tjProjects = tjProjectService.getProBySqlAndName(proName, checkType, deptId);
//        if (tjProjects != null) {
//            for (TjProject project : tjProjects) {
//                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
//                project.setTjProjectList(projectList);
//                SysDept sysDept = deptService.selectDeptById(project.getDeptId());
//                if (sysDept != null) {
//                    project.setDeptName(sysDept.getDeptName());
//                }
//
//            }
//        }
        String key = configService.selectConfigByKey("is_open_sfxm");
        Map<String, Object> map = new HashMap<>();
        map.put("list", tjProjects);
        map.put("key", key);
        return AjaxResult.success(map);
    }
    /**
     * 查询项目子项
     */
    @GetMapping("/getAllChildListById")
    @ApiOperation(value = "查询项目子项")
    public AjaxResult getAllChildListById(@RequestParam(required = false)String proId,
                                          @RequestParam(required = false) String proName,
                                          @RequestParam(required = false) String checkType) {
        LambdaQueryWrapper<TjProject> wq=new LambdaQueryWrapper<>();
        if (proId!=null){
            wq.eq(TjProject::getProParentId,proId);
        }
        if (proName!=null){
            wq.like(TjProject::getProName,proName);
        }
        if (checkType!=null){
            wq.eq(TjProject::getProCheckType,checkType);
        }
        List<TjProject> tjProjects = tjProjectService.list(wq);
//        List<TjProject> tjProjects = tjProjectService.getAllChildListById(proId);
        if (tjProjects != null) {
            for (TjProject project : tjProjects) {
                SysDept sysDept = deptService.selectDeptById(project.getDeptId());
                if (sysDept != null) {
                    project.setDeptName(sysDept.getDeptName());
                }
            }
        }
        String key = configService.selectConfigByKey("is_open_sfxm");
        Map<String, Object> map = new HashMap<>();
        map.put("list", tjProjects);
        map.put("key", key);
        return AjaxResult.success(map);
    }
    @GetMapping("/getPacTjProjectList")
    @ApiOperation(value = "维护套餐页面新增项目时调用")
    public AjaxResult getPacTjProjectList() {
        List<TjProject> tjProjects = tjProjectService.getPacTjProjectList();
        return AjaxResult.success(tjProjects);
    }
    /**
     * 查询体检项目列表
     */
    @GetMapping("/list")
    @ApiOperation(value = "查询体检项目列表")
    public AjaxResult list() {
        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
        wq.eq(TjProject::getProParentId, 0);
        wq.eq(TjProject::getProStatus, 0);
        List<TjProject> tjProjects = tjProjectService.list(wq);
//        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
//        wq.eq(TjProject::getProParentId, 0);
//        wq.eq(TjProject::getProStatus, 0);
        List<TjProject> tjProjects = tjProjectService.getTjProjectList();
        if (tjProjects != null) {
            for (TjProject project : tjProjects) {
                LambdaQueryWrapper<TjProject> wq1 = new LambdaQueryWrapper<>();
                wq1.eq(TjProject::getProParentId,project.getProId());
                List<TjProject> projectList = tjProjectService.list(wq1);
                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
                project.setTjProjectList(projectList);
            }
            return AjaxResult.success(tjProjects);
        }
        return AjaxResult.success(null);
    }
    @GetMapping("/getPacProList")
    @ApiOperation(value = "查询体检项目列表")
    public AjaxResult getPacProList() {
        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
        wq.eq(TjProject::getProParentId, 0);
        wq.eq(TjProject::getProStatus, 0);
        List<TjProject> tjProjects = tjProjectService.list(wq);
        return AjaxResult.success(tjProjects);
    }
    /**
     * 导出体检项目列表
@@ -143,12 +235,12 @@
    @ApiOperation(value = "获取体检项目详细信息")
    public AjaxResult getInfo(@PathVariable("proId") @ApiParam(value = "体检项目id") Long proId) {
        TjProject tjProject = tjProjectService.getById(proId);
        if(null !=tjProject){
            if(tjProject.getProParentId()==0){
        if (null != tjProject) {
            if (tjProject.getProParentId() == 0) {
                LambdaQueryWrapper<TjProConsumables> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjProConsumables::getProId, tjProject.getProId());
                List<TjProConsumables> list = proConsumablesService.list(wrapper);
                if(null !=list && list.size()>0){
                if (null != list && list.size() > 0) {
                    List<TjConsumables> list1 = new ArrayList<>();
                    for (TjProConsumables tjProConsumables : list) {
                        TjConsumables byId = consumablesService.getById(tjProConsumables.getConsumablesId());
@@ -156,14 +248,14 @@
                    }
                    tjProject.setConsumablesList(list1);
                }
            }else {
            } else {
                LambdaQueryWrapper<TjStandard> wq = new LambdaQueryWrapper<>();
                wq.eq(TjStandard::getProId, proId);
                tjProject.setTjStandardList(tjStandardService.list(wq));
            }
            //根据每个项目的deptId拿到name  2023/2/7
            SysDept sysDept = deptService.selectDeptById(tjProject.getDeptId());
            if (sysDept!=null){
            if (sysDept != null) {
                tjProject.setDeptName(sysDept.getDeptName());
            }
            return AjaxResult.success(tjProject);
@@ -186,9 +278,9 @@
        if (null != tjProject.getTjStandardList() && tjProject.getTjStandardList().size() > 0) {
            tjProject.setProStandard(1);
        }
        if(tjProjectService.save(tjProject)){
            if(null != tjProject.getSfxmId()){
                DictProSfxm proSfxm=new DictProSfxm();
        if (tjProjectService.save(tjProject)) {
            if (null != tjProject.getSfxmId()) {
                DictProSfxm proSfxm = new DictProSfxm();
                proSfxm.setSfxmId(tjProject.getSfxmId());
                proSfxm.setProId(tjProject.getProId());
                dictProSfxmService.save(proSfxm);
@@ -211,28 +303,28 @@
                    tjStandardService.save(tjStandard1);
                }
                tjProject.setProStandard(1);
                if(null ==tjProject.getProPrice()){
                if (null == tjProject.getProPrice()) {
                    tjProject.setProPrice(BigDecimal.valueOf(0.00));
                }
                Long proParentId = tjProject.getProParentId();
                if(null !=proParentId&&proParentId!=0){
                    LambdaQueryWrapper<TjProject> wq=new LambdaQueryWrapper<>();
                    wq.eq(TjProject::getProParentId,proParentId);
                if (null != proParentId && proParentId != 0) {
                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
                    wq.eq(TjProject::getProParentId, proParentId);
                    List<TjProject> projectList = tjProjectService.list(wq);
                    if(null !=projectList && projectList.size()>0){
                        BigDecimal bigDecimal=new BigDecimal("0.00");
                    if (null != projectList && projectList.size() > 0) {
                        BigDecimal bigDecimal = new BigDecimal("0.00");
                        for (TjProject project : projectList) {
                            if (project.getProPrice()!=null){
                                bigDecimal=bigDecimal.add(project.getProPrice());
                            if (project.getProPrice() != null) {
                                bigDecimal = bigDecimal.add(project.getProPrice());
                            }
                        }
                        if (tjProject.getProPrice()!=null){
                        if (tjProject.getProPrice() != null) {
                            bigDecimal.add(tjProject.getProPrice());
                        }
                        TjProject byId = tjProjectService.getById(proParentId);
                        tjProject.setIsSampling(byId.getIsSampling());
                        tjProjectService.updateById(tjProject);
                        byId.setProPrice(bigDecimal.setScale(2,BigDecimal.ROUND_DOWN));
                        byId.setProPrice(bigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
                        tjProjectService.updateById(byId);
                    }
                }
@@ -260,9 +352,9 @@
        }
        if (tjProject.getProParentId() == 0) {
            if (tjProjectService.updateById(tjProject)) {
                if(dictProSfxmService.deletedProSfxm(tjProject.getProId())){
                    if(null != tjProject.getSfxmId()){
                        DictProSfxm proSfxm=new DictProSfxm();
                if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
                    if (null != tjProject.getSfxmId()) {
                        DictProSfxm proSfxm = new DictProSfxm();
                        proSfxm.setSfxmId(tjProject.getSfxmId());
                        proSfxm.setProId(tjProject.getProId());
                        dictProSfxmService.save(proSfxm);
@@ -271,6 +363,7 @@
                List<TjProject> list = tjProjectService.getTjProjectListBySoneId(String.valueOf(tjProject.getProId()));
                if (null != list && list.size() > 0) {
                    for (TjProject project : list) {
                        project.setDeptId(tjProject.getDeptId());
                        project.setProType(tjProject.getProType());
                        project.setProCheckMethod(tjProject.getProCheckMethod());
                        project.setProStatus(tjProject.getProStatus());
@@ -280,8 +373,8 @@
                }
                List<TjConsumables> consumablesList = tjProject.getConsumablesList();
                if (null != consumablesList && consumablesList.size() > 0) {
                    LambdaQueryWrapper<TjProConsumables>wq=new LambdaQueryWrapper<>();
                    wq.eq(TjProConsumables::getProId,tjProject.getProId());
                    LambdaQueryWrapper<TjProConsumables> wq = new LambdaQueryWrapper<>();
                    wq.eq(TjProConsumables::getProId, tjProject.getProId());
                    proConsumablesService.remove(wq);
                    for (TjConsumables tjConsumables : consumablesList) {
                        TjProConsumables proConsumables = new TjProConsumables();
@@ -295,44 +388,47 @@
            }
        }
        TjProject byId1 = tjProjectService.selectTjProjectByProId(tjProject.getProParentId());
        if(null !=byId1){
        if (null != byId1 && !tjProject.getDeptId().equals(byId1.getDeptId())) {
            return AjaxResult.error("不可更改父项目科室!");
        }
        if (null != byId1) {
            tjProject.setIsSampling(byId1.getIsSampling());
        }
        if (tjProjectService.updateById(tjProject)) {
            if(dictProSfxmService.deletedProSfxm(tjProject.getProId())){
                if(null != tjProject.getSfxmId()){
                    DictProSfxm proSfxm=new DictProSfxm();
            if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
                if (null != tjProject.getSfxmId()) {
                    DictProSfxm proSfxm = new DictProSfxm();
                    proSfxm.setSfxmId(tjProject.getSfxmId());
                    proSfxm.setProId(tjProject.getProId());
                    dictProSfxmService.save(proSfxm);
                }
            }
            List<TjStandard> tjStandardList = tjProject.getTjStandardList();
            if(null !=tjStandardList && tjStandardList.size()>0){
            if (null != tjStandardList && tjStandardList.size() > 0) {
                for (TjStandard tjStandard : tjStandardList) {
                    if(null ==tjStandard.getTjSex()){
                    if (null == tjStandard.getTjSex()) {
                        tjStandard.setTjSex(null);
                    }
                    tjStandard.setProId(tjProject.getProId());
                    tjStandardService.saveOrUpdate(tjStandard);
                }
            }
            if(null ==tjProject.getProPrice()){
            if (null == tjProject.getProPrice()) {
                tjProject.setProPrice(BigDecimal.valueOf(0.00));
            }
            Long proParentId = tjProject.getProParentId();
            if(null !=proParentId){
                LambdaQueryWrapper<TjProject> wq=new LambdaQueryWrapper<>();
                wq.eq(TjProject::getProParentId,proParentId);
            if (null != proParentId) {
                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
                wq.eq(TjProject::getProParentId, proParentId);
                List<TjProject> projectList = tjProjectService.list(wq);
                if(null !=projectList && projectList.size()>0){
                    BigDecimal bigDecimal=new BigDecimal("0.00");
                if (null != projectList && projectList.size() > 0) {
                    BigDecimal bigDecimal = new BigDecimal("0.00");
                    for (TjProject project : projectList) {
                        bigDecimal=bigDecimal.add(project.getProPrice());
                        bigDecimal = bigDecimal.add(project.getProPrice());
                    }
                    bigDecimal.add(tjProject.getProPrice());
                    TjProject byId = tjProjectService.getById(proParentId);
                    byId.setProPrice(bigDecimal.setScale(2,BigDecimal.ROUND_DOWN));
                    byId.setProPrice(bigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
                    tjProjectService.updateById(byId);
                }
            }
@@ -365,15 +461,15 @@
                    if (null != list1 && list1.size() > 0) {
                        return AjaxResult.error("该项目正在套餐中使用,暂时不能删除");
                    }
                   LambdaQueryWrapper<TjPackageProject> wq2 = new LambdaQueryWrapper<>();
                   wq2.eq(TjPackageProject::getProId, proId);
                    LambdaQueryWrapper<TjPackageProject> wq2 = new LambdaQueryWrapper<>();
                    wq2.eq(TjPackageProject::getProId, proId);
                    LambdaQueryWrapper<TjProConsumables> wq3 = new LambdaQueryWrapper<>();
                    wq3.eq(TjProConsumables::getProId, proId);
                   proConsumablesService.remove(wq3);
                   ppservice.remove(wq2);
                   tjProjectService.removeByIds(list.stream().map(TjProject::getProId).collect(Collectors.toList()));
                   tjProjectService.removeById(project1.getProId());
                    proConsumablesService.remove(wq3);
                    ppservice.remove(wq2);
                    tjProjectService.removeByIds(list.stream().map(TjProject::getProId).collect(Collectors.toList()));
                    tjProjectService.removeById(project1.getProId());
                } else {
                    LambdaQueryWrapper<TjStandard> wq = new LambdaQueryWrapper<>();
                    wq.eq(TjStandard::getProId, proId);
@@ -420,21 +516,53 @@
    public AjaxResult getSonsList(@RequestParam(required = false) @ApiParam(value = "项目名称") String proName) {
        LambdaQueryWrapper<TjProject> wq0 = new LambdaQueryWrapper<>();
        wq0.ne(TjProject::getProParentId, 0);
        if(null !=proName){
            wq0.like(TjProject::getProName,proName);
        if (null != proName) {
            wq0.like(TjProject::getProName, proName);
        }
        List<TjProject> tjProjects = tjProjectService.list(wq0);
        return AjaxResult.success(tjProjects);
    }
//    /**
//     * 获取部门树列表
//     */
//    @GetMapping("/deptTree")
//    @ApiOperation("获取部门树列表")
//    public AjaxResult deptTree(SysDept dept) {
//        return success(deptService.selectDeptTreeList(dept));
//    }
    /**
     * 获取体检项目详细信息
     */
    @GetMapping(value = "/getInfoByProId")
    @ApiOperation(value = "获取体检项目详细信息")
    public AjaxResult getInfoByProId(@RequestParam Long proId) {
        TjProject tjProject = tjProjectService.getById(proId);
        return AjaxResult.success(tjProject);
    }
    /**
     * 选择体检项目选单项时调用的接口
     */
    @GetMapping("/getProParentIdDxList")
    @ApiOperation(value = "选择体检项目(所有服项目)选单项时调用的接口")
    public AjaxResult getProParentIdDxList() {
        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
        String config = configService.selectConfigByKey("tj_dxsxtj");
        if(null !=config && config.equals("N")){
            tjProjects = tjProjectService.getOpenDxTjProjectList();
        }
        String key = configService.selectConfigByKey("is_open_sfxm");
        Map<String,Object> map=new HashMap<>();
        map.put("list",tjProjects);
        map.put("key",key);
        return AjaxResult.success(map);
    }
    @GetMapping("/getProSonDxList")
    @ApiOperation(value = "选择体检项目(根据父项id选择子项)选单项时调用的接口")
    public AjaxResult getProSonDxList(@RequestParam String proId) {
        List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(proId);
        String key = configService.selectConfigByKey("is_open_sfxm");
        Map<String,Object> map=new HashMap<>();
        map.put("list",projectList);
        map.put("key",key);
        return AjaxResult.success(map);
    }
}