f659839dd5cd5c5523399b2177d7ec200b9372d8..d76577743763c668a9ebe4ea481e03b62af17596
2025-06-06 zjh
zjh20250606
d76577 对比 | 目录
2025-06-06 zhaowenxuan
增加传递价格规则
57c0be 对比 | 目录
7个文件已修改
159 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-common/src/main/java/com/ltkj/common/core/domain/entity/SysDept.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -165,34 +165,10 @@
            return AjaxResult.error("请输入科室id");
        }
        //根据当前登陆的人的科室id,获取该科室下的所有项目
        List<Long> postIds = sysUser.getPostIds();
        List<Long> ksproList = null;
        String byKey =null;
//        if (postIds != null) {
//            for (Long postId : postIds) {
//                LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>();
//                wq111.eq(SysUserPost::getPostId, postId);
//                SysUserPost one = userPostService.getOne(wq111);
//                if (one != null) {
//                    SysPost byId = postService.getById(one.getPostId());
//                    if (byId.getPostName().equals("录入员")) {
//                        ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
//                    }
//                    if (byId.getPostName().equals("前台")) {
//                        byKey = configService.selectConfigByKey("qt_kjksid");
//
//                    }
//                }
//            }
//        } else {
//            ksproList = projectService.getKsTjProjectIdList();
//        }
//
//        if (ksproList == null || ksproList.isEmpty()) {
//            return AjaxResult.error("请完善科室项目信息");
//        }
        SysDept dept = deptService.getById(ksId);
        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
        if (null != roles && !roles.isEmpty()) {
@@ -208,6 +184,14 @@
        if ( StringUtil.isNotBlank(byKey)) {
            ksId+=(","+byKey);
        }
        if(null !=dept){
            if(StringUtil.isNotBlank(dept.getSjks())){
                ksId+=(","+dept.getSjks());
            }
        }
        if (type == 0) {
            map = deptService.getSysDeptYjWjCustomerList13(ksId, name, tjNumber, 0, page, pageSize);
        }
@@ -594,6 +578,7 @@
            }
            ksId = Math.toIntExact(sysUser.getDeptId());
        }
        SysDept dept = deptService.getById(ksId);
        String configByKey = configService.selectConfigByKey("sfkqdyhis");
        // 判断是否收费 请求接口
        TjOrder tjOrder = orderService.getOrderByTjNum(tjNumber);
@@ -660,6 +645,15 @@
                }
            }
        }
        if(null !=dept){
            if(StringUtil.isNotBlank(dept.getSjks())){
                String[] arr = dept.getSjks().split(","); // 根据逗号进行切割
                for (String s : arr) {
                    int num = Integer.parseInt(s); // 将每个子字符串转换为integer类型
                    split.add(num); // 添加到列表中
                }
            }
        }
        log.info("查询关联科室集合 ->{}",split);
        List<TjOrderRemark> list;
        if (null != sysUser && sysUser.getUserName().equals("10001")) {
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -13,6 +13,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ltkj.common.annotation.RepeatSubmit;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.core.domain.entity.SysDept;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.core.redis.RedisCache;
import com.ltkj.common.enums.DataSourceType;
@@ -1941,4 +1942,36 @@
        return AjaxResult.success(list);
    }
    @GetMapping("/csymxmxzqtyybcjk")
    @ApiOperation(value = "初审页面项目选择其他原因保存接口")
    @Transactional
    public AjaxResult csymxmxzqtyybcjk(@RequestParam @ApiParam("体检号") String tjNum,@RequestParam @ApiParam("项目ID") String proId,
                                       @RequestParam @ApiParam("原因") String yy) {
        try {
            String czydm = SecurityUtils.getUsername();
            String czy = SecurityUtils.getLoginUser().getUser().getNickName();
            TjProject tjProject = projectService.getById(proId);
            if(null !=  tjProject){
                SysDept dept = deptService.getById(tjProject.getDeptId());
                LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
                wq.eq(TjOrderRemark::getTjNumber, tjNum);
                wq.eq(TjOrderRemark::getProId, proId);
                TjOrderRemark remark = orderRemarkService.getOne(wq);
                remark.setType(1);
                if (orderRemarkService.updateById(remark)) {
                    orderRemarkService.csymxmxzqtyybcjk(tjNum,proId,yy,dept.getOrgType(),czy,czydm);
                    return AjaxResult.success();
                }
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
            throw new RuntimeException(ex);
        }
        return AjaxResult.error();
    }
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjFlowingWaterController.java
@@ -1,6 +1,7 @@
package com.ltkj.web.controller.system;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -36,6 +37,7 @@
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;
import org.springframework.transaction.annotation.Transactional;
@@ -54,6 +56,7 @@
 * @author ltkj
 * @date 2022-11-25
 */
@Slf4j
@RestController
@RequestMapping("/hosp/water")
@Api(tags = "体检流水接口")
@@ -307,6 +310,18 @@
                            return AjaxResult.error("补录失败,所选项目可能已存在 不可补录!");
                        }
                        BigDecimal zongjia = new BigDecimal("0.0");
                        // his直接单开体检费单项目总价编码
                        String tjfhisxmbm = configService.selectConfigByKey("tjfhisxmbm");
                        // 是否开启his直接单开体检费单项目 N使用明细开单 其他都为单项目开总价
                        String lycdzjhmxj = configService.selectConfigByKey("lycdzjhmxj");
                        // 是否使用his价格传递规则 Y开启
                        String sfsyhisjgrule = configService.selectConfigByKey("sfsyhisjgrule");
                        // his价格传递规则保留得位数 默认2位
                        String sfsyhisjgrulebaoliuweishu = configService.selectConfigByKey("sfsyhisjgrulebaoliuweishu");
                        // his价格传递规则 1四舍五入 2直接舍去
                        String sfsyhisjgrulesconfig = configService.selectConfigByKey("sfsyhisjgrulesconfig");
                        for (TbTransition transition : list) {
                            LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                            wrapper1.eq(TjProject::getProId, transition.getProId());
@@ -320,6 +335,26 @@
                            BigDecimal danjia = transition.getNowPrice();
                            Integer sl = project.getSl();
                            BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
                            if (StrUtil.isNotBlank(sfsyhisjgrule) && sfsyhisjgrule.equalsIgnoreCase("Y")){
                                int baoliuweishu = 2;
                                if (StrUtil.isNotBlank(sfsyhisjgrulebaoliuweishu)){
                                    try {
                                        baoliuweishu = Integer.parseInt(sfsyhisjgrulebaoliuweishu);
                                    } catch (NumberFormatException e) {
                                        log.error("his价格传递规则保留位数转换异常 配置值->{}\n{}{}",sfsyhisjgrulebaoliuweishu,e,e.getMessage());
                                        return AjaxResult.error();
                                    }
                                }
                                if (StrUtil.isNotBlank(sfsyhisjgrulesconfig) && !sfsyhisjgrulesconfig.equalsIgnoreCase("1")){
                                    // 其他自定义的规则计算方法
                                }else {
                                    // 四舍五入
                                    danjia = danjia.setScale(baoliuweishu, RoundingMode.HALF_UP);
                                    allPrice = danjia.multiply(new BigDecimal(sl)).setScale(baoliuweishu, RoundingMode.HALF_UP);
                                }
                            }
                            obj.putOpt("danJia", danjia);
                            obj.putOpt("jieSuanJe", allPrice);
                            obj.putOpt("shuliang", sl);
@@ -328,13 +363,29 @@
                            obj.putOpt("shouFeiXmId", project.getHisXmbm());
                            obj.putOpt("shouFeiXmMc", project.getHisXmmc());
//                        obj.putOpt("zhiXingKs","7805");
//                        obj.putOpt("zhiXingKsMc","体检科");
//                        obj.putOpt("shouFeiXmId","4735346");
//                        obj.putOpt("shouFeiXmMc","体检费");
                            array.add(obj);
                            zongjia = zongjia.add(allPrice);
                        }
                        map.put("feiYongInfoList", array);
                        if(StringUtil.isNotBlank(lycdzjhmxj) && lycdzjhmxj.equalsIgnoreCase("N")){
                            map.put("feiYongInfoList", array);
                        }else {
                            zongjia = tjFlowingWater.getPaidIn();
                            JSONArray zjarray = JSONUtil.createArray();
                            JSONObject obj = JSONUtil.createObj();
                            int sl = 1;
                            obj.putOpt("danJia", zongjia);
                            obj.putOpt("jieSuanJe", zongjia);
                            obj.putOpt("shuliang", sl);
                            obj.putOpt("zhiXingKs", "100");
                            obj.putOpt("zhiXingKsMc","体检中心");
                            obj.putOpt("shouFeiXmId", tjfhisxmbm);
                            obj.putOpt("shouFeiXmMc", "体检费");
                            zjarray.add(obj);
                            map.put("feiYongInfoList", zjarray);
                        }
                        log.info("补录调用His接口前 收费总价:{}", zongjia.toString());
                        String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
                        JSONObject object = JSONUtil.parseObj(post);
ltkj-common/src/main/java/com/ltkj/common/core/domain/entity/SysDept.java
@@ -196,6 +196,8 @@
    private String hisksmc;
    private String sjks;
    //以上
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java
@@ -288,8 +288,16 @@
    List<CsProVo> getYxJcXx(@Param("tjh") String tjNumber, @Param("ks") String ks);
    @Select("SELECT a.* FROM tj_order_remark a JOIN tj_project b ON b.pro_id=a.pro_id \n" +
            " WHERE b.need_report='Y' AND b.pro_delivery=1 AND !ISNULL(a.sfbz) AND a.type !=2 AND a.tj_number=#{tjNumber} ")
//    @Select("SELECT a.* FROM tj_order_remark a JOIN tj_project b ON b.pro_id=a.pro_id \n" +
//            " WHERE b.need_report='Y' AND b.pro_delivery=1 AND !ISNULL(a.sfbz) AND a.type !=2 AND a.tj_number=#{tjNumber} ")
    @Select("call  yiShengJianChaGetPrentProWs(#{tjnumber,mode=IN})")
    List<TjOrderRemark> yiShengJianChaGetPrentProWs(String tjNumber);
    @Select("call csymxmxzqtyybcjk(#{tjh,mode=IN},#{xmid,mode=IN},#{yy,mode=IN},#{kslx,mode=IN},#{czy,mode=IN}," +
            "#{czydm,mode=IN}) ")
    void csymxmxzqtyybcjk(@Param("tjh")String tjNum,@Param("xmid") String proId,@Param("yy") String yy,
                          @Param("kslx") String orgType,@Param("czy") String czy,@Param("czydm") String czydm);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java
@@ -100,4 +100,6 @@
    List<TjOrderRemark> yiShengJianChaGetPrentProWs(String tjNumber);
    void csymxmxzqtyybcjk(String tjNum, String proId, String yy, String orgType, String czy, String czydm);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java
@@ -205,4 +205,9 @@
        return mapper.yiShengJianChaGetPrentProWs(tjNumber);
    }
    @Override
    public void csymxmxzqtyybcjk(String tjNum, String proId, String yy, String orgType, String czy, String czydm) {
        mapper.csymxmxzqtyybcjk( tjNum,  proId,  yy,  orgType,  czy,  czydm);
    }
}