zjh
2025-06-04 2e1fc763314f7231780c7d6e36fd6922548b285a
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
@@ -93,7 +93,7 @@
        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
        String config = configService.selectConfigByKey("tj_dxsxtj");
        if (null != config && config.equals("N")) {
            tjProjects = tjProjectService.getOpenDxTjProjectList();
            tjProjects = tjProjectService.getOpenDxTjProjectList(null);
        }
        if (tjProjects != null) {
            for (TjProject project : tjProjects) {
@@ -274,11 +274,11 @@
    @Log(title = "体检项目", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody @ApiParam(value = "体检项目对象") TjProject tjProject) {
        if (null != tjProject.getConsumablesList() && tjProject.getConsumablesList().size() > 0) {
        if (null != tjProject.getConsumablesList() && !tjProject.getConsumablesList().isEmpty()) {
            tjProject.setProPrice(BigDecimal.valueOf(0.00));
            tjProject.setProStandard(0);
        }
        if (null != tjProject.getTjStandardList() && tjProject.getTjStandardList().size() > 0) {
        if (null != tjProject.getTjStandardList() && !tjProject.getTjStandardList().isEmpty()) {
            tjProject.setProStandard(1);
        }
        tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
@@ -290,7 +290,7 @@
                dictProSfxmService.save(proSfxm);
            }
            List<TjConsumables> consumablesList = tjProject.getConsumablesList();
            if (null != consumablesList && consumablesList.size() > 0) {
            if (null != consumablesList && !consumablesList.isEmpty()) {
                for (TjConsumables tjConsumables : consumablesList) {
                    TjProConsumables proConsumables = new TjProConsumables();
                    proConsumables.setProId(tjProject.getProId());
@@ -299,7 +299,7 @@
                }
            }
            List<TjStandard> tjStandardList = tjProject.getTjStandardList();
            if (null != tjStandardList && tjStandardList.size() > 0) {
            if (null != tjStandardList && !tjStandardList.isEmpty()) {
                for (TjStandard tjStandard : tjStandardList) {
                    TjStandard tjStandard1 = new TjStandard();
                    BeanUtils.copyBeanProp(tjStandard1, tjStandard);
@@ -312,23 +312,25 @@
                }
                Long proParentId = tjProject.getProParentId();
                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) {
//                    LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
//                    wq.eq(TjProject::getProParentId, proParentId);
//                    wq.eq(TjProject::getProStatus,0);
//                    List<TjProject> projectList = tjProjectService.list(wq);
                    List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(proParentId));
                    if (null != projectList && !projectList.isEmpty()) {
                        BigDecimal bigDecimal = new BigDecimal("0.00");
                        for (TjProject project : projectList) {
                            if (project.getProPrice() != null) {
                                bigDecimal = bigDecimal.add(project.getProPrice());
                                bigDecimal = bigDecimal.add(project.getProPrice().multiply(new BigDecimal(project.getSl())));
                            }
                        }
                        if (tjProject.getProPrice() != null) {
                            bigDecimal.add(tjProject.getProPrice());
                        }
//                        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);
                        tjProjectService.updateById(byId);
                    }
                }
@@ -347,6 +349,8 @@
    @ApiOperation(value = "修改体检项目")
    @Transactional
    public AjaxResult edit(@RequestBody @ApiParam(value = "体检项目对象") TjProject tjProject) {
        TjProject ytjproject = tjProjectService.getById(tjProject.getProId());
        if(null==ytjproject)return AjaxResult.error();
        if (tjProject.getProStatus() == 1) {
            LambdaQueryWrapper<TjPackageProject> wq1 = new LambdaQueryWrapper<>();
            wq1.eq(TjPackageProject::getProId, tjProject.getProId());
@@ -354,14 +358,21 @@
            if (null != list1 && !list1.isEmpty()) {
                return AjaxResult.error("该项目正在套餐中使用,暂时不能停用");
            }
            if(tjProject.getProParentId() !=0){
                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
                wq.eq(TjProject::getProParentId, tjProject.getProParentId());
                wq.eq(TjProject::getProStatus,0);
                List<TjProject> list = tjProjectService.list(wq);
                if (null != list && !list.isEmpty()) {
                    int i = list.size();
                    if(i<2) return AjaxResult.error("至少保留一个子项目,不可全部停用!!!");
                }
            }
        }
        tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
        TjProject ytjproject = tjProjectService.getById(tjProject.getProId());
        Date date=new Date();
        if (tjProject.getProParentId() == 0) {
            if (tjProjectService.updateById(tjProject)) {
                if(null !=ytjproject){
                    if(ytjproject.getProPrice().compareTo(tjProject.getProPrice())!=0){
                        TjProjectXgjl xgjl=new TjProjectXgjl();
                        BeanUtils.copyBeanProp(xgjl,ytjproject);
@@ -369,7 +380,6 @@
                        xgjl.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
                        xgjlService.save(xgjl);
                    }
                }
                if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
                    if (null != tjProject.getSfxmId()) {
                        DictProSfxm proSfxm = new DictProSfxm();
@@ -378,7 +388,11 @@
                        dictProSfxmService.save(proSfxm);
                    }
                }
                List<TjProject> list = tjProjectService.getTjProjectListBySoneId(String.valueOf(tjProject.getProId()));
                LambdaQueryWrapper<TjProject> wqq = new LambdaQueryWrapper<>();
                wqq.eq(TjProject::getProParentId,tjProject.getProId());
                if(ytjproject.getProStatus()==0)
                    wqq.eq(TjProject::getProStatus,0);
                List<TjProject> list = tjProjectService.list(wqq);
                if (null != list && !list.isEmpty()) {
                    for (TjProject project : list) {
                        project.setDeptId(tjProject.getDeptId());
@@ -413,7 +427,6 @@
            tjProject.setIsSampling(byId1.getIsSampling());
        }
        if (tjProjectService.updateById(tjProject)) {
            if(null !=ytjproject){
                if(ytjproject.getProPrice().compareTo(tjProject.getProPrice())!=0){
                    TjProjectXgjl xgjl=new TjProjectXgjl();
                    BeanUtils.copyBeanProp(xgjl,ytjproject);
@@ -421,7 +434,7 @@
                    xgjl.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
                    xgjlService.save(xgjl);
                }
            }
            if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
                if (null != tjProject.getSfxmId()) {
                    DictProSfxm proSfxm = new DictProSfxm();
@@ -445,19 +458,19 @@
            }
            Long proParentId = tjProject.getProParentId();
            if (null != proParentId) {
                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
                wq.eq(TjProject::getProParentId, proParentId);
                wq.eq(TjProject::getProStatus,0);
//                LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
//                wq.eq(TjProject::getProParentId, proParentId);
//                wq.eq(TjProject::getProStatus,0);
//                List<TjProject> projectList = tjProjectService.list(wq);
                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(proParentId));
                if (null != projectList && !projectList.isEmpty()) {
                    BigDecimal bigDecimal = new BigDecimal("0.00");
                    for (TjProject project : projectList) {
                        bigDecimal = bigDecimal.add(project.getProPrice());
                        bigDecimal = bigDecimal.add(project.getProPrice().multiply(new BigDecimal(project.getSl())));
                    }
                    bigDecimal.add(tjProject.getProPrice());
//                    bigDecimal.add(tjProject.getProPrice());
                    TjProject byId = tjProjectService.getById(proParentId);
                    byId.setProPrice(bigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
                    byId.setProPrice(bigDecimal);
                    tjProjectService.updateById(byId);
                }
            }
@@ -573,19 +586,45 @@
     * 选择体检项目选单项时调用的接口
     */
    @GetMapping("/getProParentIdDxList")
    @ApiOperation(value = "选择体检项目(所有服项目)选单项时调用的接口")
    @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();
            tjProjects = tjProjectService.getOpenDxTjProjectList(null);
        }
        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("/getProParentIdDxListByFenYe")
    @ApiOperation(value = "选择体检项目(所有页面项目)选单项时调用的接口(有分页)")
    public AjaxResult getProParentIdDxListByFenYe(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int pageSize,String nr) {
        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
        String config = configService.selectConfigByKey("tj_dxsxtj");
        if (null != config && config.equals("N")) {
            tjProjects = tjProjectService.getOpenDxTjProjectList(nr);
        }
        String key = configService.selectConfigByKey("is_open_sfxm");
        Map<String, Object> map = new HashMap<>();
        if(null !=tjProjects && !tjProjects.isEmpty()){
            List<TjProject> collect = tjProjects.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
            map.put("total", tjProjects.size());
            map.put("list", collect);
        }else {
            map.put("total",0);
            map.put("list", tjProjects);
        }
        map.put("key", key);
        return AjaxResult.success(map);
    }
    @GetMapping("/getProSonDxList")
    @ApiOperation(value = "选择体检项目(根据父项id选择子项)选单项时调用的接口")
@@ -623,4 +662,147 @@
            throw new RuntimeException(e);
        }
    }
    @GetMapping("/getProListByBblx")
    @ApiOperation(value = "查询标本对应项目或未对应标本的项目")
    public AjaxResult getProListByBblx(@ApiParam(value = "标本类型")@RequestParam(required = false) String bblx) {
        try {
            List<TjProject> projectList =tjProjectService.getProListByBblx(bblx);
            return AjaxResult.success(projectList);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    @GetMapping("/delProByBblx")
    @ApiOperation(value = "删除项目对应标本")
    @Transactional
    public AjaxResult delProByBblx(@ApiParam(value = "项目ID")@RequestParam(required = false) String proId) {
        try {
            TjProject tjProject = tjProjectService.getById(proId);
            tjProject.setSpecimenType(null);
            tjProjectService.updateById(tjProject);
            return AjaxResult.success();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    @PostMapping("/updateProByBblx")
    @ApiOperation(value = "修改所选项目的标本类型")
    @Transactional
    public AjaxResult updateProByBblx(@ApiParam(value = "项目ID集合")@RequestParam(required = false) List<String> proIds,
                                      @ApiParam(value = "标本类型")@RequestParam(required = false)String bblx) {
        try {
            if(null !=  proIds && !proIds.isEmpty()){
                for (String proId : proIds) {
                    TjProject tjProject = tjProjectService.getById(proId);
                    tjProject.setSpecimenType(bblx);
                    tjProjectService.updateById(tjProject);
                }
            }
            return AjaxResult.success();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    @GetMapping("/getProListByBwwh")
    @ApiOperation(value = "查询部位对应项目或未对应部位的项目")
    public AjaxResult getProListByBwwh(@ApiParam(value = "标本类型")@RequestParam(required = false) String bw) {
        try {
            List<TjProject> projectList =tjProjectService.getProListByBwwh(bw);
            return AjaxResult.success(projectList);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    @GetMapping("/delProByBbwwh")
    @ApiOperation(value = "删除项目对应部位")
    @Transactional
    public AjaxResult delProByBbwwh(@ApiParam(value = "项目ID")@RequestParam(required = false) String proId) {
        try {
            TjProject tjProject = tjProjectService.getById(proId);
            tjProject.setCheckBw(null);
            tjProjectService.updateById(tjProject);
            return AjaxResult.success();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    @PostMapping("/updateProByBwwh")
    @ApiOperation(value = "修改所选项目的部位")
    @Transactional
    public AjaxResult updateProByBwwh(@ApiParam(value = "项目ID集合")@RequestParam(required = false) List<String> proIds,
                                      @ApiParam(value = "标本类型")@RequestParam(required = false)String bw) {
        try {
            if(null !=  proIds && !proIds.isEmpty()){
                for (String proId : proIds) {
                    TjProject tjProject = tjProjectService.getById(proId);
                    tjProject.setCheckBw(bw);
                    tjProjectService.updateById(tjProject);
                }
            }
            return AjaxResult.success();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
//    @PostMapping("/addOrupdateProByBz")
//    @ApiOperation(value = "新增或修改所选项目的对应病种信息")
//    @Transactional
//    public AjaxResult addOrupdateProByBz(@ApiParam(value = "项目ID集合")@RequestParam(required = false) List<String> proIds,
//                                         @ApiParam(value = "病种ID")@RequestParam(required = false)String bz) {
//        try {
//            if(null !=  proIds && !proIds.isEmpty()){
//                bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz));
//                for (String proId : proIds) {
//                    TjBzPro bzPro=new TjBzPro();
//                    bzPro.setBzId(Long.valueOf(bz));
//                    bzPro.setProId(Long.valueOf(proId));
//                    bzProService.save(bzPro);
//                }
//            }
//            return AjaxResult.success();
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//
//    @GetMapping("/getProByBz")
//    @ApiOperation(value = "查询病种对应项目")
//    public AjaxResult getProByBz(@ApiParam(value = "病种ID")@RequestParam(required = false)String bz) {
//        try {
//            List<TjBzPro> list = bzProService.list(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId, bz));
//            return AjaxResult.success(list);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//
//    @DeleteMapping("/delProByBz")
//    @ApiOperation(value = "删除病种对应项目")
//    public AjaxResult delProByBz(@ApiParam(value = "病种ID")@RequestParam(required = false)String bz,
//                                 @ApiParam(value = "项目ID")@RequestParam(required = false)String proId) {
//        try {
//            bzProService.remove(new LambdaQueryWrapper<>(TjBzPro.class).eq(TjBzPro::getBzId,bz).eq(TjBzPro::getProId,proId));
//            return AjaxResult.success();
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
}