zjh
2025-01-06 d5cd702a6985a208dae4a2e532c984252fbca4d4
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java
@@ -1,18 +1,17 @@
package com.ltkj.web.controller.system;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.*;
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;
import com.ltkj.common.utils.SecurityUtils;
import com.ltkj.common.utils.bean.BeanUtils;
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
import com.ltkj.hosp.domain.*;
@@ -24,8 +23,13 @@
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 net.sf.ehcache.constructs.scheduledrefresh.OverseerJob;
import org.apache.ibatis.session.SqlSession;
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;
@@ -42,6 +46,7 @@
@RestController
@RequestMapping("/hosp/project")
@Api(tags = "体检项目管理")
@Slf4j
public class TjProjectController extends BaseController {
    @Resource
    private ITjProjectService tjProjectService;
@@ -65,6 +70,8 @@
    private TestMapper testMapper;
    @Resource
    private RedisCache redisCache;
    @Autowired
    private TjProjectXgjlService xgjlService;
    @GetMapping("/getTjHyBgList")
@@ -85,7 +92,7 @@
    public AjaxResult getDxList() {
        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
        String config = configService.selectConfigByKey("tj_dxsxtj");
        if(null !=config && config.equals("N")){
        if (null != config && config.equals("N")) {
            tjProjects = tjProjectService.getOpenDxTjProjectList();
        }
        if (tjProjects != null) {
@@ -95,14 +102,11 @@
            }
        }
        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);
    }
    /**
@@ -140,18 +144,18 @@
     */
    @GetMapping("/getAllChildListById")
    @ApiOperation(value = "查询项目子项")
    public AjaxResult getAllChildListById(@RequestParam(required = false)String 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);
        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
        if (proId != null) {
            wq.eq(TjProject::getProParentId, proId);
        }
        if (proName!=null){
            wq.like(TjProject::getProName,proName);
        if (proName != null) {
            wq.like(TjProject::getProName, proName);
        }
        if (checkType!=null){
            wq.eq(TjProject::getProCheckType,checkType);
        if (checkType != null) {
            wq.eq(TjProject::getProCheckType, checkType);
        }
        List<TjProject> tjProjects = tjProjectService.list(wq);
//        List<TjProject> tjProjects = tjProjectService.getAllChildListById(proId);
@@ -211,7 +215,6 @@
        List<TjProject> tjProjects = tjProjectService.list(wq);
        return AjaxResult.success(tjProjects);
    }
    /**
@@ -278,6 +281,7 @@
        if (null != tjProject.getTjStandardList() && tjProject.getTjStandardList().size() > 0) {
            tjProject.setProStandard(1);
        }
        tjProject.setProEngName(PinyinUtil.getFirstLetter(tjProject.getProName(),""));
        if (tjProjectService.save(tjProject)) {
            if (null != tjProject.getSfxmId()) {
                DictProSfxm proSfxm = new DictProSfxm();
@@ -341,17 +345,31 @@
    @Log(title = "体检项目", businessType = BusinessType.UPDATE)
    @PutMapping
    @ApiOperation(value = "修改体检项目")
    @Transactional
    public AjaxResult edit(@RequestBody @ApiParam(value = "体检项目对象") TjProject tjProject) {
        if (tjProject.getProStatus() == 1) {
            LambdaQueryWrapper<TjPackageProject> wq1 = new LambdaQueryWrapper<>();
            wq1.eq(TjPackageProject::getProId, tjProject.getProId());
            List<TjPackageProject> list1 = ppservice.list(wq1);
            if (null != list1 && list1.size() > 0) {
            if (null != list1 && !list1.isEmpty()) {
                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);
                        xgjl.setCreateTime(date);
                        xgjl.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
                        xgjlService.save(xgjl);
                    }
                }
                if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
                    if (null != tjProject.getSfxmId()) {
                        DictProSfxm proSfxm = new DictProSfxm();
@@ -361,7 +379,7 @@
                    }
                }
                List<TjProject> list = tjProjectService.getTjProjectListBySoneId(String.valueOf(tjProject.getProId()));
                if (null != list && list.size() > 0) {
                if (null != list && !list.isEmpty()) {
                    for (TjProject project : list) {
                        project.setDeptId(tjProject.getDeptId());
                        project.setProType(tjProject.getProType());
@@ -372,7 +390,7 @@
                    }
                }
                List<TjConsumables> consumablesList = tjProject.getConsumablesList();
                if (null != consumablesList && consumablesList.size() > 0) {
                if (null != consumablesList && !consumablesList.isEmpty()) {
                    LambdaQueryWrapper<TjProConsumables> wq = new LambdaQueryWrapper<>();
                    wq.eq(TjProConsumables::getProId, tjProject.getProId());
                    proConsumablesService.remove(wq);
@@ -395,6 +413,15 @@
            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);
                    xgjl.setCreateTime(date);
                    xgjl.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
                    xgjlService.save(xgjl);
                }
            }
            if (dictProSfxmService.deletedProSfxm(tjProject.getProId())) {
                if (null != tjProject.getSfxmId()) {
                    DictProSfxm proSfxm = new DictProSfxm();
@@ -404,7 +431,7 @@
                }
            }
            List<TjStandard> tjStandardList = tjProject.getTjStandardList();
            if (null != tjStandardList && tjStandardList.size() > 0) {
            if (null != tjStandardList && !tjStandardList.isEmpty()) {
                for (TjStandard tjStandard : tjStandardList) {
                    if (null == tjStandard.getTjSex()) {
                        tjStandard.setTjSex(null);
@@ -420,8 +447,10 @@
            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) {
                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());
@@ -444,6 +473,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("请选择要删除的项目");
@@ -475,6 +505,9 @@
                    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);
                }
            }
        }
@@ -544,13 +577,13 @@
    public AjaxResult getProParentIdDxList() {
        List<TjProject> tjProjects = tjProjectService.getDxTjProjectList();
        String config = configService.selectConfigByKey("tj_dxsxtj");
        if(null !=config && config.equals("N")){
        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);
        Map<String, Object> map = new HashMap<>();
        map.put("list", tjProjects);
        map.put("key", key);
        return AjaxResult.success(map);
    }
@@ -559,10 +592,35 @@
    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);
        Map<String, Object> map = new HashMap<>();
        map.put("list", projectList);
        map.put("key", key);
        return AjaxResult.success(map);
    }
    @GetMapping("/plxgpym")
    @ApiOperation(value = "批量修改拼音码")
    public AjaxResult plxgpym(@RequestParam String tbname,@RequestParam String zd,@RequestParam String pymzd) {
        String sql="SELECT 1";
        try {
             sql="SELECT "+ zd +","+ pymzd +" FROM "+tbname;
            List<Map<String,Object>> projectList =  tjProjectService.zdysqlcx(sql);
            if(null !=projectList && !projectList.isEmpty()){
                for (Map<String, Object> map : projectList) {
                    Object zd1 = map.get(zd);
                    if(null !=zd1 && StringUtil.isNotBlank(zd1.toString())){
                        String letter = PinyinUtil.getFirstLetter(zd1.toString(), "");
                        sql="UPDATE "+ tbname +" "+ " set " +pymzd+" = "+ "'" +letter+"'"+" where  "+zd+" = "+"'"+zd1+"'" ;
                        tjProjectService.zdysqlxg(sql);
                    }
                }
            }
            return AjaxResult.success(projectList);
        } catch (Exception e) {
            log.info("sql查询失败"+ sql);
            throw new RuntimeException(e);
        }
    }
}