zhaowenxuan
2025-06-18 75ee6a6218f67d3720f9ab8824809ddb2abe525c
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1507,8 +1507,19 @@
            List<TbTransition> list = tbTransitionService.list(wrapper);
            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");
            // 传递项目是否使用his科室
            String isUseHisKs = configService.selectConfigByKey("isCreateMenZhenFyUseHisKs");
            String createMenZhenFyZJUseHisKs = configService.selectConfigByKey("createMenZhenFyZJUseHisKs");
            for (TbTransition transition : list) {
                LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
@@ -1524,11 +1535,34 @@
                int sl = 1;
                BigDecimal danjia = transition.getNowPrice();
                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);
                obj.putOpt("zhiXingKs", dept.getDeptId());
                obj.putOpt("zhiXingKsMc", dept.getDeptName());
                if (isUseHisKs.equalsIgnoreCase("Y")){
                    obj.putOpt("zhiXingKs", dept.getHisksid());
                    obj.putOpt("zhiXingKsMc", dept.getHisksmc());
                }else {
                    obj.putOpt("zhiXingKs", dept.getDeptId());
                    obj.putOpt("zhiXingKsMc", dept.getDeptName());
                }
                obj.putOpt("shouFeiXmId", project.getHisXmbm());
                obj.putOpt("shouFeiXmMc", project.getHisXmmc());
                array.add(obj);
@@ -1545,7 +1579,12 @@
                obj.putOpt("danJia", zongjia);
                obj.putOpt("jieSuanJe", zongjia);
                obj.putOpt("shuliang", sl);
                obj.putOpt("zhiXingKs", "100");
                if (isUseHisKs.equalsIgnoreCase("Y")){
                    if (StrUtil.isBlank(createMenZhenFyZJUseHisKs)) return AjaxResult.error();
                    obj.putOpt("zhiXingKs", createMenZhenFyZJUseHisKs);
                }else {
                    obj.putOpt("zhiXingKs", "100");
                }
                obj.putOpt("zhiXingKsMc","体检中心");
                obj.putOpt("shouFeiXmId", tjfhisxmbm);
                obj.putOpt("shouFeiXmMc", "体检费");