zhaowenxuan
2024-07-01 c5c11611be159f93d536d691197930ecf0d7210f
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
@@ -9,6 +9,8 @@
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.extra.pinyin.PinyinUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.entity.SysDept;
import com.ltkj.common.core.redis.RedisCache;
@@ -25,6 +27,7 @@
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import com.ltkj.common.annotation.Log;
import com.ltkj.common.core.controller.BaseController;
@@ -68,12 +71,36 @@
    @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);
    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("/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 (tjProjects != null) {
            for (TjProject project : tjProjects) {
                List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
                project.setTjProjectList(projectList);
            }
        }
        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);
    }
@@ -88,25 +115,23 @@
        //上面的换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());
                }
            }
        }
//        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);
        Map<String, Object> map = new HashMap<>();
        map.put("list", tjProjects);
        map.put("key", key);
        return AjaxResult.success(map);
    }
    /**
@@ -114,25 +139,45 @@
     */
    @GetMapping("/getAllChildListById")
    @ApiOperation(value = "查询项目子项")
    public AjaxResult getAllChildListById(String proId) {
       List<TjProject> tjProjects = tjProjectService.getAllChildListById(proId);
    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){
                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);
        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);
    }
    /**
@@ -141,21 +186,31 @@
    @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);
    }
    /**
     * 导出体检项目列表
@@ -178,12 +233,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());
@@ -191,14 +246,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);
@@ -221,9 +276,10 @@
        if (null != tjProject.getTjStandardList() && tjProject.getTjStandardList().size() > 0) {
            tjProject.setProStandard(1);
        }
        if(tjProjectService.save(tjProject)){
            if(null != tjProject.getSfxmId()){
                DictProSfxm proSfxm=new DictProSfxm();
        tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
        if (tjProjectService.save(tjProject)) {
            if (null != tjProject.getSfxmId()) {
                DictProSfxm proSfxm = new DictProSfxm();
                proSfxm.setSfxmId(tjProject.getSfxmId());
                proSfxm.setProId(tjProject.getProId());
                dictProSfxmService.save(proSfxm);
@@ -246,28 +302,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);
                    }
                }
@@ -293,11 +349,12 @@
                return AjaxResult.error("该项目正在套餐中使用,暂时不能停用");
            }
        }
        tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
        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);
@@ -316,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();
@@ -331,47 +388,47 @@
            }
        }
        TjProject byId1 = tjProjectService.selectTjProjectByProId(tjProject.getProParentId());
        if(null !=byId1 && !tjProject.getDeptId().equals(byId1.getDeptId())){
        if (null != byId1 && !tjProject.getDeptId().equals(byId1.getDeptId())) {
            return AjaxResult.error("不可更改父项目科室!");
        }
        if(null !=byId1){
        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);
                }
            }
@@ -387,6 +444,7 @@
    @Log(title = "体检项目", businessType = BusinessType.DELETE)
    @DeleteMapping("/{proIds}")
    @ApiOperation(value = "删除体检项目(可删除父项目和子项目)")
    @Transactional
    public AjaxResult remove(@PathVariable Long[] proIds) {
        if (null == proIds || proIds.length <= 0) {
            return AjaxResult.error("请选择要删除的项目");
@@ -404,20 +462,23 @@
                    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);
                    tjStandardService.remove(wq);
                    tjProjectService.removeById(project1.getProId());
                    TjProject project = tjProjectService.getById(project1.getProParentId());
                    project.setProPrice(tjProjectService.getMoneys(project1.getProParentId().toString()));
                    tjProjectService.updateById(project);
                }
            }
        }
@@ -459,21 +520,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);
    }
}