Prechádzať zdrojové kódy

优化代码以及提示信息

xiaochan 3 rokov pred
rodič
commit
c9735892c2

+ 21 - 4
src/main/java/thyyxxk/webserver/controller/PublicController.java

@@ -1,15 +1,14 @@
 package thyyxxk.webserver.controller;
 
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.config.auth.PassToken;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.service.PublicServer;
+import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -61,4 +60,22 @@ public class PublicController {
         return ResultVoUtil.success(new Date());
     }
 
+
+    @PostMapping("/yaoPinXiangMuPiPeiYiBao")
+    public ResultVo<String> yaoPinXiangMuPiPeiYiBao(@RequestBody List<String> listCode) {
+        List<String> xm = new ArrayList<>();
+        List<String> yp = new ArrayList<>();
+        for (String item : listCode) {
+            String[] it = item.split("-");
+            if (it[1].equals("00")) {
+                xm.add(it[0].trim());
+            } else {
+                yp.add(it[0].trim() + it[1].trim());
+            }
+        }
+        String ypTiShi = ListUtil.isBlank(yp) ? "" : service.yaoPinXianZhi(yp, false);
+        String xmTiShi = ListUtil.isBlank(xm) ? "" : service.xiangMuXianZhi(xm, false);
+        return ResultVoUtil.success(ypTiShi + xmTiShi);
+    }
+
 }

+ 23 - 1
src/main/java/thyyxxk/webserver/dao/his/PublicDao.java

@@ -344,9 +344,31 @@ public interface PublicDao {
     YzActOrderCy caoYao(BigDecimal actOrder);
 
 
-    @Select("select isnull(del_flag,0) del_flag ,national_code,rtrim(code) + rtrim(serial) code,rtrim(name) name " +
+    @Select("select cast(rtrim(isnull(nullif(del_flag, ''), 0)) as int) del_flag," +
+            "national_code,rtrim(code) + '-' + rtrim(serial) code,rtrim(name) name, rtrim(name) as zd_name,rtrim(code) zd_code,rtrim(serial) serial " +
             "from yp_zd_dict " +
             "${ew.customSqlSegment}")
     List<YaoPinXiangMu> huoQuYaoPinPiPeiXinXi(@Param(Constants.WRAPPER) Wrapper<?> wp);
 
+
+    @Select("<script>" +
+            "select rtrim(a.order_code) code, " +
+            "       rtrim(a.order_name) name, " +
+            "       national_code, " +
+            "       rtrim(c.code) as zd_code," +
+            "       rtrim(c.name) as zd_name," +
+            "       cast(rtrim(isnull(nullif(c.del_flag, ''), 0)) as int) del_flag," +
+            "       serial = '00' " +
+            "from yz_order_item a with (NOLOCK) , " +
+            "     yz_order_occurence b with (NOLOCK) , " +
+            "     zd_charge_item c with (NOLOCK)" +
+            "where a.order_code in " +
+            "<foreach collection='code' item='item' index='index' open='(' close=')' separator=','>" +
+            "#{item}" +
+            "</foreach>" +
+            "  and a.order_code = b.order_code " +
+            "  and b.occ_code = c.code" +
+            "</script>")
+    List<YaoPinXiangMu> huoQuXiangMuXinXi(List<String> code);
+
 }

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/UpIdCollectionDao.java

@@ -91,7 +91,7 @@ public interface UpIdCollectionDao {
             "       refldept_dept = (select rtrim(si_caty) from zd_unit_code where code = b.zk_ward),  " + //--转科科别
             "        b.dis_date as dscg_time,  " + // -- 出院时间
             "       dscg_caty = (select rtrim(si_caty) from zd_unit_code where code=isnull(zk_ward,small_dept)), " + // -- 出院科别
-            "       case datediff(day, b.admiss_date ,b.dis_date) when 0 then 1 else datediff(day, b.admiss_date ,b.dis_date) end as act_ipt_days," +  // 实际住院天数
+            "       case  when datediff(day, b.admiss_date ,b.dis_date) <= 0 then 1 else datediff(day, b.admiss_date ,b.dis_date) end as act_ipt_days," +  // 实际住院天数
             "       zy_serial_no as biz_sn " +// 业务流水号
             "from batj_ba2 a,zy_inactpatient b " +
             "where a.bah = b.inpatient_no and a.zycs = b.admiss_times " +

+ 1 - 2
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/YiZhuLuRuDao.java

@@ -288,8 +288,7 @@ public interface YiZhuLuRuDao {
             "FROM view_yp_zd_dict_base_yf a with (NOLOCK) " +
             "WHERE isnull(a.visible_flag_zy, '') <> '1' " +
             "  and (a.py_code like #{code} or a.name like #{code} or code like #{code}) " +
-            "  and group_no = #{groupNo} " +
-            "  and isnull(national_code, '') <> '' ")
+            "  and group_no = #{groupNo}  ")
     List<YiZhuMingChen> yiZhuYaoPing(@Param("code") String code,
                                      @Param("groupNo") String groupNo);
 

+ 25 - 1
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/yizhuluru/YaoPinXiangMu.java

@@ -12,8 +12,32 @@ import lombok.Data;
  */
 @Data
 public class YaoPinXiangMu {
-    private String delFlag;
+    /**
+     * 删除标志
+     */
+    private Integer delFlag;
+    /**
+     * 医保编码
+     */
     private String nationalCode;
+    /**
+     * yz_order_item 医嘱项目表中的编码
+     */
     private String code;
+    /**
+     * yz_order_item 这个表中的名字
+     */
     private String name;
+    /**
+     * 00- 项目 01-小包装 99-大包装
+     */
+    private String serial;
+    /**
+     * 字典中的编码
+     */
+    private String zdCode;
+    /**
+     * 字典中的名字
+     */
+    private String zdName;
 }

+ 32 - 19
src/main/java/thyyxxk/webserver/service/PublicServer.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.ListUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import thyyxxk.webserver.config.exception.BizException;
@@ -480,35 +481,47 @@ public class PublicServer {
                 throw new BizException(ExceptionEnum.LOGICAL_ERROR, "该医嘱下的草药已经发药,无法删除。");
             }
         }
-
     }
 
-    public String yaoPinXinXi(List<String> code) {
+    /**
+     * 药品限制
+     *
+     * @param listCode 药品的编码以及规格 做成code
+     * @return 返回提示
+     */
+    public String yaoPinXianZhi(List<String> listCode, boolean delFlag) {
         StringBuilder sb = new StringBuilder();
         QueryWrapper<?> qw = new QueryWrapper<>();
-        qw.in("rtrim(code) + rtrim(serial)", code);
+        qw.in("rtrim(code) + rtrim(serial)", listCode);
         Map<String, YaoPinXiangMu> map = dao.huoQuYaoPinPiPeiXinXi(qw).stream().collect(
-                Collectors.toMap(YaoPinXiangMu::getCode, a -> a, (k1, k2) -> k1));
-        int index = 1;
-        for (String s : code) {
-            if (map.containsKey(s)) {
-                YaoPinXiangMu yp = map.get(s);
-                if (yp.getDelFlag().equals("1")) {
-                    sb.append(cuoWuXinXi(index, yp.getName(), "该药品已经被停用了。"));
-                }
-                if (StringUtil.isBlank(yp.getNationalCode())) {
-                    sb.append(cuoWuXinXi(index, yp.getName(), "该药品没有匹配医保码。"));
-                }
-            } else {
-                sb.append(cuoWuXinXi(index, "", "没有找到对应的信息。"));
+                Collectors.toMap(YaoPinXiangMu::getZdCode, a -> a, (k1, k2) -> k1));
+        return yaoPingXiangMuXianZhi(map, sb, "药品", delFlag);
+    }
+
+    public String xiangMuXianZhi(List<String> listCode, boolean delFlag) {
+        Map<String, YaoPinXiangMu> map = dao.huoQuXiangMuXinXi(listCode).stream().collect(
+                Collectors.toMap(YaoPinXiangMu::getZdCode, a -> a, (k1, k2) -> k1));
+        StringBuilder sb = new StringBuilder();
+        return yaoPingXiangMuXianZhi(map, sb, "项目", delFlag);
+    }
+
+    @NotNull
+    public String yaoPingXiangMuXianZhi(Map<String, YaoPinXiangMu> map, StringBuilder sb, String name, boolean delFlag) {
+        for (YaoPinXiangMu item : map.values()) {
+            if (delFlag && item.getDelFlag() == 1) {
+                sb.append(cuoWuXinXi(item.getZdCode(), item.getSerial().trim().equals("00") ? "医嘱名:" + item.getName() + " 项目名:" + item.getZdName() : "" + item.getName(), name + "已被停用"));
+            }
+            if (StringUtil.isBlank(item.getNationalCode()) && !delFlag) {
+                sb.append(cuoWuXinXi(item.getZdCode(), item.getSerial().trim().equals("00") ? "医嘱名:" + item.getName() + " 项目名:" + item.getZdName() : "" + item.getName(), name + "没有匹配医保编码"));
             }
-            index++;
         }
         return sb.toString();
     }
 
-    public String cuoWuXinXi(int index, String name, String xinXi) {
-        return "第" + index + "个,【" + name + "】," + xinXi + "<br>";
+    public String cuoWuXinXi(String code, String name, String xinXi) {
+        return "编码:<span style='color:teal'>【" + code + "】</span><br>" +
+                "名称:<span style='color:#a5673f'>【" + name + "】 </span><br>" +
+                "<span style='color:red'>" + xinXi + "</span><br>";
     }
 
 }

+ 0 - 7
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/CaoYaoYiZhuServer.java

@@ -23,7 +23,6 @@ import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.utils.*;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -142,15 +141,9 @@ public class CaoYaoYiZhuServer {
         }
         publicServer.huanZheJieSuan(param.getInpatientNo(), param.getAdmissTimes());
         BigDecimal sum = new BigDecimal(0);
-        List<String> code = new ArrayList<>();
         for (YzActOrderCyDetail item : param.getList()) {
-            code.add(item.getChargeCode().trim() + item.getSerial().trim());
             sum = sum.add(item.getQuantity().multiply(item.getRetprice()));
         }
-        String cuoWuXinXi = publicServer.yaoPinXinXi(code);
-        if (cuoWuXinXi.length() > 0) {
-            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, cuoWuXinXi);
-        }
         param.setOrderJe(sum);
         param.setInputId(TokenUtil.getTokenUserId());
         param.setOrderJeDj(dao.huoQuDaiJianFei());

+ 0 - 8
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -211,8 +211,6 @@ public class YiZhuLuRuServer {
             if (xiangMu != null) {
                 if (xiangMu.getDelFlag() == 1) {
                     return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该医嘱下的项目,已经被停用了,请联系物价科。");
-                } else if (StringUtil.isBlank(xiangMu.getNationalCode())) {
-                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该医嘱下的项目,该项目没有匹配医保编码,请联系物价科。");
                 }
             } else {
                 Integer paiChiYiZhu = dao.shiFouPaiChiYiZhu(code);
@@ -395,18 +393,12 @@ public class YiZhuLuRuServer {
                 if (feiYongXinXi.getYpLevel() > yiShenDengJi && needRule) {
                     cuoWuXinXi.append(getCuoWuXinXi("您没有开此药品的权限", listSize, index));
                 }
-                if (StringUtil.isBlank(feiYongXinXi.getNationalCode())) {
-                    cuoWuXinXi.append(getCuoWuXinXi("没有匹配医保码,请物价科匹配。", listSize, index));
-                }
                 if (feiYongXinXi.getDelFlag() == 1) {
                     cuoWuXinXi.append(getCuoWuXinXi("已被物价科停用,请联系物价科。", listSize, index));
                 }
             } else {
                 feiYongXinXi = xiangMuXinXi.get(item.getOrderCode().trim());
                 if (feiYongXinXi != null) {
-                    if (StringUtil.isBlank(feiYongXinXi.getNationalCode())) {
-                        cuoWuXinXi.append(getCuoWuXinXi("没有匹配医保码,请物价科匹配。", listSize, index));
-                    }
                     if (feiYongXinXi.getDelFlag() == 1) {
                         cuoWuXinXi.append(getCuoWuXinXi("已被物价科停用,请联系物价科。", listSize, index));
                     }