zjh
2025-01-20 73a816fd2b1e29c25d615c85ce34b12b55c16ccf
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjPackageController.java
@@ -22,6 +22,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -56,18 +57,58 @@
    private ITjConsumablesService tjConsumablesService;
    @Resource
    private ISysConfigService configService;
    @Resource
    private TjAsyncService asyncService;
    @Resource
    private RedisCache redisCache;
    @Autowired
    private IMallKeywordService mallKeywordService;
    @Autowired
    private IMallCategoryService mallCategoryService;
    @GetMapping("/getPacList")
    @ApiOperation(value = "查询体检套餐列表(自带有分页)(新)")
    //@PreAuthorize("@ss.hasPermi('hosp:package:list')")
    public TableDataInfo getPacList(@ApiParam(value = "体检套餐对象") TjPackage tjPackage) {
        startPage();
        List<TjPackage> list = tjPackageService.selectTjPackageList(tjPackage);
        if (null != list && !list.isEmpty()) {
            for (TjPackage aPackage : list) {
                aPackage.setAllProName(tjPackageService.getTjPacProNames(String.valueOf(aPackage.getPacId())));
                final String keywords = aPackage.getKeywords();
                if (keywords != null) {
                    final String[] strings = keywords.split(",");
                    aPackage.setKeyNames(mallKeywordService.getKeyNames(strings));
                    aPackage.setKeyIds(mallKeywordService.getKeyIds(strings));
                }
                final MallCategory byId = mallCategoryService.getById(aPackage.getCategoryId());
                if (byId != null) {
                    aPackage.setCategoryNames(byId.getName());
                }
            }
        }
        return getDataTable(list);
    }
    @GetMapping("/getPacInFo")
    @ApiOperation(value = "查询体检套餐列表(详细)(自带有分页)(新)")
    //@PreAuthorize("@ss.hasPermi('hosp:package:list')")
    public AjaxResult getPacInFo(@ApiParam(value = "体检套餐对象id") String pacId) {
        TjPackage aPackage = tjPackageService.getById(pacId);
        if (null != aPackage) {
                List<TjPackageProject> pplist = ppservice.getTjPackageProjectListByPacId(String.valueOf(aPackage.getPacId()));
                if (null != pplist) {
                    for (TjPackageProject packageProject : pplist) {
                        TjProject tjProject = tjProjectService.getById(packageProject.getProId());
                        if (null != tjProject) {
                            packageProject.setProName(tjProject.getProName());
                        }
                    }
                }
                aPackage.setPackageProjects(pplist);
            return AjaxResult.success(aPackage);
        }
        return AjaxResult.error();
    }
    /**
     * 查询体检套餐列表
@@ -78,7 +119,7 @@
    public TableDataInfo list(@ApiParam(value = "体检套餐对象") TjPackage tjPackage) {
        startPage();
        List<TjPackage> list = tjPackageService.selectTjPackageList(tjPackage);
        if (null != list && list.size() > 0) {
        if (null != list && !list.isEmpty()) {
            for (TjPackage aPackage : list) {
                StringBuilder allProName = new StringBuilder();
                StringBuilder allSonName = new StringBuilder();
@@ -98,14 +139,6 @@
                            }
                            tjProject.setAllSonProName(allSonProName.toString());   //2023.2.7 套餐内每一父项目的子项目字符串
                            tjProjectList.add(tjProject);
//                            LambdaQueryWrapper<TjProConsumables> wrapper1 = new LambdaQueryWrapper<>();
//                            wrapper1.eq(TjProConsumables::getProId, packageProject.getProId());
//                            List<TjProConsumables> list0 = tjProConsumablesService.list(wrapper1);
//                            List<TjConsumables> list1 = new ArrayList<>();
//                            for (TjProConsumables tjProConsumables : list0) {
//                                list1.add(tjConsumablesService.getById(tjProConsumables.getConsumablesId()));
//                            }
//                            tjProject.setConsumablesList(list1);
                            //现价赋值判断null赋原价  2023.2.8
                            if (packageProject.getPriceNow() != null) {
                                tjProject.setPriceNow(packageProject.getPriceNow());
@@ -118,7 +151,7 @@
                }
                aPackage.setTjProjectList(tjProjectList);
                aPackage.setAllProName(allProName.toString());
                aPackage.setAllSonName(allSonName.toString());
//                aPackage.setAllSonName(allSonName.toString());
                StringBuffer a = new StringBuffer();
                List<String> b = new ArrayList<>();
@@ -138,7 +171,7 @@
                }
                final MallCategory byId = mallCategoryService.getById(aPackage.getCategoryId());
                if (byId!=null){
                if (byId != null) {
                    aPackage.setCategoryNames(byId.getName());
                }
            }
@@ -152,35 +185,93 @@
    @GetMapping("getList")
    @ApiOperation(value = "查询体检套餐列表")
    public TableDataInfo getList(@RequestParam(required = false) @ApiParam(value = "性别") String cusSex) {
        List<TjPackage> tjPackageList = null;
        List<TjPackage> list = null;
        if (cusSex == null || cusSex.equals("2")) {
            if (redisCache.hasKey("getTjPackageListBySex")) {
                list = redisCache.getCacheMapValue("getTjPackageListBySex", "getTjPackageListByManAndWoMan");
            } else {
                tjPackageList = tjPackageService.list(new LambdaQueryWrapper<TjPackage>().eq(TjPackage::getPacStatus,0));
//        List<TjPackage> tjPackageList = null;
//        List<TjPackage> list = null;
//        if (cusSex == null || cusSex.equals("2")) {
//            if (redisCache.hasKey("getTjPackageListBySex")) {
//                list = redisCache.getCacheMapValue("getTjPackageListBySex", "getTjPackageListByManAndWoMan");
//            } else {
//                tjPackageList = tjPackageService.list(new LambdaQueryWrapper<TjPackage>().eq(TjPackage::getPacStatus,0));
//            }
//        } else {
//            if (cusSex.equals("0")) {
//                if (redisCache.hasKey("getTjPackageListBySex")) {
//                    list = redisCache.getCacheMapValue("getTjPackageListBySex", "getTjPackageListByMan");
//                } else {
//                    tjPackageList = tjPackageService.getTjPackageListByMan();
//                }
//            } else {
//                if (redisCache.hasKey("getTjPackageListBySex")) {
//                    list = redisCache.getCacheMapValue("getTjPackageListBySex", "getTjPackageListByWoMan");
//                } else {
//                    tjPackageList = tjPackageService.getTjPackageListByWoMan();
//                }
//            }
//        }
//        asyncService.getTjPackageList();
//        if (null != list && list.size() > 0) {
//            return getDataTable(list);
//        } else {
//            getTjPackageList(tjPackageList);
//            return getDataTable(tjPackageList);
//        }
        String pacName="";
        if (cusSex==null || cusSex.equals("2")) {
            final List<TjPackage> pacListBySqlAndAll = tjPackageService.getPacListBySqlAndAll(pacName);
            if (pacListBySqlAndAll!=null){
                for (TjPackage tjPackage : pacListBySqlAndAll) {
                    List<TjProject> res=new ArrayList<>();
                    LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
                    wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
                    final List<TjPackageProject> list = ppservice.list(wqq);
                    if (list!=null){
                        for (TjPackageProject tjPackageProject : list) {
                            final TjProject byId = tjProjectService.getById(tjPackageProject.getProId());
                            res.add(byId);
                        }
                        tjPackage.setTjProjectList(res);
                    }
                }
            }
            return getDataTable(pacListBySqlAndAll);
        } else {
            if (cusSex.equals("0")) {
                if (redisCache.hasKey("getTjPackageListBySex")) {
                    list = redisCache.getCacheMapValue("getTjPackageListBySex", "getTjPackageListByMan");
                } else {
                    tjPackageList = tjPackageService.getTjPackageListByMan();
                final List<TjPackage> pacListBySqlAndMan = tjPackageService.getPacListBySqlAndMan(pacName);
                if (pacListBySqlAndMan!=null){
                    for (TjPackage tjPackage : pacListBySqlAndMan) {
                        List<TjProject> res=new ArrayList<>();
                        LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
                        wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
                        final List<TjPackageProject> list = ppservice.list(wqq);
                        if (list!=null){
                            for (TjPackageProject tjPackageProject : list) {
                                final TjProject byId = tjProjectService.getById(tjPackageProject.getProId());
                                res.add(byId);
                            }
                            tjPackage.setTjProjectList(res);
                        }
                    }
                }
            } else {
                if (redisCache.hasKey("getTjPackageListBySex")) {
                    list = redisCache.getCacheMapValue("getTjPackageListBySex", "getTjPackageListByWoMan");
                } else {
                    tjPackageList = tjPackageService.getTjPackageListByWoMan();
                return getDataTable(pacListBySqlAndMan);
            }else {
                final List<TjPackage> pacListBySqlAndWomen = tjPackageService.getPacListBySqlAndWomen(pacName);
                if (pacListBySqlAndWomen!=null){
                    for (TjPackage tjPackage : pacListBySqlAndWomen) {
                        List<TjProject> res=new ArrayList<>();
                        LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
                        wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
                        final List<TjPackageProject> list = ppservice.list(wqq);
                        if (list!=null){
                            for (TjPackageProject tjPackageProject : list) {
                                final TjProject byId = tjProjectService.getById(tjPackageProject.getProId());
                                res.add(byId);
                            }
                            tjPackage.setTjProjectList(res);
                        }
                    }
                }
                return getDataTable(pacListBySqlAndWomen);
            }
        }
        asyncService.getTjPackageList();
        if (null != list && list.size() > 0) {
            return getDataTable(list);
        } else {
            getTjPackageList(tjPackageList);
            return getDataTable(tjPackageList);
        }
    }
@@ -284,22 +375,32 @@
            BigDecimal money = new BigDecimal("0.00");
            tjPackage.setPrice(money);
        }
        tjPackage.setPym(PinyinUtil.getFirstLetter(tjPackage.getPacName(),""));
        if (tjPackageService.save(tjPackage)) {
            List<TjProject> tjProjectList = tjPackage.getTjProjectList();
            if (null != tjProjectList && tjProjectList.size() > 0) {
            if (null != tjProjectList && !tjProjectList.isEmpty()) {
                BigDecimal money = new BigDecimal("0.00");
                for (TjProject tjProject : tjProjectList) {
                    TjPackageProject tjpp = new TjPackageProject();
                    if (null != tjProject.getPriceNow()) {
                        tjpp.setPriceNow(tjProject.getPriceNow().setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
                    } else {
                        tjpp.setPriceNow(tjProject.getProPrice());
                    }
//                    if (null != tjProject.getPriceNow()) {
//                        tjpp.setPriceNow(tjProject.getPriceNow().setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
//                    } else {
//                        tjpp.setPriceNow(tjProject.getProPrice());
//                    }
                    tjpp.setPriceNow(tjProject.getProPrice());
                    tjpp.setProId(tjProject.getProId());
                    tjpp.setPacId(tjPackage.getPacId());
                    //判断当前套餐下有没有这个项目  有的话跳过添加
                    LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
                    wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
                    wqq.eq(TjPackageProject::getProId,tjProject.getProId());
                    final TjPackageProject one = ppservice.getOne(wqq);
                    if (one!=null){
                        continue;
                    }
                    ppservice.save(tjpp);
                    if (null != tjProject.getPriceNow()) {
                        money = money.add(tjProject.getPriceNow());
                    if (null != tjProject.getProPrice()) {
                        money = money.add(tjProject.getProPrice());
                    }
                }
                tjPackage.setPrice(money.setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
@@ -318,25 +419,36 @@
    @ApiOperation(value = "修改体检套餐")
    //@PreAuthorize("@ss.hasPermi('system:package:edit')")
    public AjaxResult edit(@RequestBody @ApiParam(value = "体检套餐对象") TjPackage tjPackage) {
        tjPackage.setPym(PinyinUtil.getFirstLetter(tjPackage.getPacName(),""));
        if (tjPackageService.updateById(tjPackage)) {
            List<TjProject> tjProjectList = tjPackage.getTjProjectList();
            if (null != tjProjectList && tjProjectList.size() > 0) {
            if (null != tjProjectList && !tjProjectList.isEmpty()) {
                LambdaQueryWrapper<TjPackageProject> wq = new LambdaQueryWrapper<>();
                wq.eq(TjPackageProject::getPacId, tjPackage.getPacId());
                ppservice.remove(wq);
                BigDecimal money = new BigDecimal(0);
                for (TjProject tjProject : tjProjectList) {
                    TjPackageProject tjpp = new TjPackageProject();
                    if (null != tjProject.getPriceNow()) {
                        tjpp.setPriceNow(tjProject.getPriceNow());
                    } else {
                        tjpp.setPriceNow(new BigDecimal(0).setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
                    //判断当前套餐下有没有这个项目  有的话跳过添加
                    LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
                    wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
                    wqq.eq(TjPackageProject::getProId,tjProject.getProId());
                    final TjPackageProject one = ppservice.getOne(wqq);
                    if (one!=null){
                        continue;
                    }
                    TjPackageProject tjpp = new TjPackageProject();
//                    if (null != tjProject.getPriceNow()) {
//                        tjpp.setPriceNow(tjProject.getPriceNow());
//                    } else {
//                        tjpp.setPriceNow(new BigDecimal(0).setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
//                    }
                    tjpp.setPriceNow(tjProject.getProPrice());
                    tjpp.setProId(tjProject.getProId());
                    tjpp.setPacId(tjPackage.getPacId());
                    ppservice.save(tjpp);
                    if (null != tjProject.getPriceNow()) {
                        money = money.add(tjProject.getPriceNow());
                    if (null != tjProject.getProPrice()) {
                        money = money.add(tjProject.getProPrice());
                    }
                }
                tjPackage.setPrice(money.setScale(Integer.parseInt(configService.selectConfigByKey("sys.price.save")), Integer.parseInt(configService.selectConfigByKey("sys.price"))));
@@ -437,7 +549,7 @@
            LambdaQueryWrapper<TjPackage> wq0 = new LambdaQueryWrapper<>();
            wq0.like(TjPackage::getPacName, name);
            List<TjPackage> packageList = tjPackageService.list(wq0);
            if (null != packageList && packageList.size() > 0) {
            if (null != packageList && !packageList.isEmpty()) {
                for (TjPackage aPackage : packageList) {
                    List<TjProject> tjProjectList = new ArrayList<>();
                    LambdaQueryWrapper<TjPackageProject> wq = new LambdaQueryWrapper<>();
@@ -478,7 +590,7 @@
            }
            List<TjPackage> tjPackageList = tjPackageService.list();
            if (null != tjPackageList && tjPackageList.size() > 0) {
            if (null != tjPackageList && !tjPackageList.isEmpty()) {
                List<TjPackage> lisi = new ArrayList<>();
                for (TjPackage aPackage : tjPackageList) {
                    String pinyin = PinyinUtil.getFirstLetter(aPackage.getPacName(), "");
@@ -526,4 +638,27 @@
        }
        return AjaxResult.error("请输入你要查询的内容");
    }
    @PostMapping("/saveOreditTjPacNew")
    @ApiOperation(value = "体检套餐新增修改接口")
    public AjaxResult saveOreditTjPacNew(@RequestBody @ApiParam(value = "体检套餐对象") TjPackage tjPackage) {
        tjPackage.setPym(PinyinUtil.getFirstLetter(tjPackage.getPacName(),""));
        if (tjPackageService.saveOrUpdate(tjPackage)) {
            List<TjPackageProject> projectList = tjPackage.getPackageProjects();
            if (null != projectList && !projectList.isEmpty()) {
                if(StringUtil.isNotBlank(tjPackage.getPacId())){
                    if (ppservice.deleteTjPackageProjectByPacId(tjPackage.getPacId())) {
                        for (TjPackageProject project : projectList) {
                            project.setPacId(tjPackage.getPacId());
                            ppservice.save(project);
                        }
                    }
                }
            }
            return AjaxResult.success();
        }
        return AjaxResult.error();
    }
}