Browse Source

删除一些没有用到的服务,优化项目录入中查询项目的sql,添加同一个string 工具。

xiaochan 4 years ago
parent
commit
69f771c52c

+ 0 - 13
src/main/java/thyyxxk/webserver/controller/querydata/QueryDrugsAndProjectsController.java

@@ -1,8 +1,6 @@
 package thyyxxk.webserver.controller.querydata;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
@@ -11,7 +9,6 @@ import thyyxxk.webserver.entity.reports.illegalchargesanalysis.IllegalChargeData
 import thyyxxk.webserver.entity.reports.illegalchargesanalysis.IllegalChargeTemplate;
 import thyyxxk.webserver.service.querydata.QueryDrugsAndProjectsService;
 
-import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.Map;
 
@@ -54,16 +51,6 @@ public class QueryDrugsAndProjectsController {
         return service.chaKanXiangQing(param);
     }
 
-    @RequestMapping("/xiangMuExcel")
-    public void xiangMuExcel(HttpServletResponse response, @RequestBody @Validated QueryDrugsAndProjects param) {
-        service.xiangMuExcel(response, param);
-    }
-
-    @PostMapping("/chaKanYaoPing")
-    public ResultVo<IPage<QueryDrugsAndProjects>> chaKanYaoPing(@RequestBody QueryDrugsAndProjects param) {
-        return service.chaKanYaoPing(param);
-    }
-
     @PostMapping("/yaoPinHuoXiangMuCode")
     public ResultVo<List<GetDropdownBox>> yaoPinHuoXiangMuCode(@RequestParam("pyCode") String pyCode,
                                                                @RequestParam("flag") Integer flag) {

+ 1 - 26
src/main/java/thyyxxk/webserver/dao/his/querydata/QueryDrugsAndProjectsDao.java

@@ -1,6 +1,5 @@
 package thyyxxk.webserver.dao.his.querydata;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -186,30 +185,6 @@ public interface QueryDrugsAndProjectsDao {
             "</script>")
     List<QueryDrugsAndProjects> queryDrugs(QueryDrugsAndProjects param);
 
-    /**
-     * 查询药品
-     *
-     * @param page       分页
-     * @param startTime  开始
-     * @param endTime    结束
-     * @param chargeCode 编码
-     * @return 返回具体信息
-     */
-    @Select("select * from (" +
-            "select a.inpatient_no code,admiss_times times,rtrim(b.name) name,source='住院',rtrim(c.name) xm_name,charge_date charge_date,a.charge_amount number," +
-            "a.charge_fee amount_of_money,charge_code_mx charge_code " +
-            "from zy_detail_charge a,a_patient_mi b ,yp_zd_dict c " +
-            "where a.charge_code_mx = c.code and a.inpatient_no = b.inpatient_no and charge_date >= #{startTime} and charge_date <= #{endTime} and a.charge_code_mx = #{chargeCode} " +
-            "union all " +
-            "select a.patient_id code,a.times times,rtrim(b.name) name,source='门诊',rtrim(c.name) xm_name,charge_date charge_date," +
-            "a.quantity * a.drug_win number,a.quantity*drug_win*unit_price amount_of_money, " +
-            "charge_item_code  charge_code " +
-            "from mz_charge_detail_b a,mz_patient_mi b ,yp_zd_dict c " +
-            "where a.patient_id = b.patient_id and a.charge_item_code = c.code and  charge_date >= #{startTime} and charge_date <= #{endTime} and a.charge_item_code = #{chargeCode}) temp ")
-    IPage<QueryDrugsAndProjects> chaKanYaoPinShiYong(IPage<QueryDrugsAndProjects> page,
-                                                     @Param("startTime") String startTime,
-                                                     @Param("endTime") String endTime,
-                                                     @Param("chargeCode") String chargeCode);
 
     /**
      * 查询药品或者项目名称
@@ -218,7 +193,7 @@ public interface QueryDrugsAndProjectsDao {
      * @param pyCode    首字母 以及 项目编码
      * @return 返回list
      */
-    @Select("select rtrim(code) code,rtrim(name) name from ${tableName} where py_code like #{pyCode} or code like #{pyCode}")
+    @Select("select rtrim(code) code,rtrim(name) name from ${tableName} where (py_code like #{pyCode} or code like #{pyCode} or name like #{pyCode})")
     List<GetDropdownBox> chaXunXiangMuhuoYaoPinCode(@Param("tableName") String tableName,
                                                     @Param("pyCode") String pyCode);
 

+ 2 - 2
src/main/java/thyyxxk/webserver/dao/his/yibao/XiangMuLuRuDao.java

@@ -118,7 +118,7 @@ public interface XiangMuLuRuDao {
      * @param pyCode 拼音编码
      * @return 获取项目的名称和code
      */
-    @Select("select code,name from  zd_charge_item where py_code like #{pyCode} or code like #{pyCode}")
+    @Select("select code,name from  zd_charge_item where (py_code like #{pyCode} or code like #{pyCode} or name like #{pyCode})")
     List<GetDropdownBox> getChargeCode(String pyCode);
 
     /**
@@ -399,7 +399,7 @@ public interface XiangMuLuRuDao {
             "         isnull(a.in_out_flag,'') <> '1' and " +
             "         a.class_code not in ('D','H') and " +
             "         a.exec_unit*=b.code and " +
-            "         a.py_code like #{pyCode} or a.code like #{pyCode}")
+            "         (a.py_code like #{pyCode} or a.code like #{pyCode} or a.name like #{pyCode})")
     List<ZyDetailCharge> queryXiangMu(String pyCode);
 
     /**

+ 5 - 2
src/main/java/thyyxxk/webserver/service/datamodify/YzActOrderModifyService.java

@@ -76,6 +76,9 @@ public class YzActOrderModifyService {
                 TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
         List<TYzActOrderModify> insertList = new ArrayList<>();
         List<TYzActOrderModify> updateList = new ArrayList<>();
+        if (param.getList().size() > 100) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "一次性申请超过100条");
+        }
         for (TYzActOrderModify pojo : param.getList()) {
             //判断 这条医嘱是否已经存在了 如果有就执行 更新的操作 ,没有就插入
             if (dao.chaKansfCunZai(pojo.getActOrderNo()) == 0) {
@@ -85,11 +88,11 @@ public class YzActOrderModifyService {
             }
         }
         //执行批量插入
-        if (insertList.size() > 0) {
+        if (!insertList.isEmpty()) {
             dao.yzActOrderModifyInsert(param, insertList);
         }
         //执行批量更新
-        if (updateList.size() > 0) {
+        if (!updateList.isEmpty()) {
             dao.yzActOrderModifyUpdate(param, updateList);
         }
         //这里是通知有权限的人

+ 9 - 55
src/main/java/thyyxxk/webserver/service/querydata/QueryDrugsAndProjectsService.java

@@ -1,8 +1,6 @@
 package thyyxxk.webserver.service.querydata;
 
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.ListUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,11 +14,9 @@ import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.querydata.QueryDrugsAndProjects;
 import thyyxxk.webserver.entity.reports.illegalchargesanalysis.IllegalChargeData;
 import thyyxxk.webserver.entity.reports.illegalchargesanalysis.IllegalChargeTemplate;
-import thyyxxk.webserver.utils.DateUtil;
-import thyyxxk.webserver.utils.ExcelUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
+import thyyxxk.webserver.utils.StringUtil;
 
-import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -111,8 +107,8 @@ public class QueryDrugsAndProjectsService {
             } else {
                 // 每一个 诊断之间使用 ---- 隔开
                 String pj = pjZhenDuanMap.get(fuZhenDuan);
-                // 这个 单纯的拼接把前面的诊断使用 ---- 拼接
-                pj = null == pj ? "" : pj + "----";
+                // 这个 单纯的拼接把前面的诊断使用 ---- 拼接 三元表达式
+                pj = (null == pj) ? "" : pj + "----";
                 // 下面这个 拼接 副诊断
                 pjZhenDuanMap.put(fuZhenDuan, pj + zhenDuan.getDisDiagComment());
             }
@@ -127,40 +123,6 @@ public class QueryDrugsAndProjectsService {
         return ResultVoUtil.success(xiangMuList);
     }
 
-    /**
-     * 导出 使用这个项目的 excel 表
-     *
-     * @param response 返回
-     * @param param    查询条件
-     */
-    public void xiangMuExcel(HttpServletResponse response, QueryDrugsAndProjects param) {
-        IPage<QueryDrugsAndProjects> page = new Page<>(1, -1);
-        List<QueryDrugsAndProjects> list;
-        if (param.getExcelFlag() == 1) {
-            list = dao.chaXunXiangMuHuoYaoPinJuTiXinXi(param.getStartTime(), param.getEndTime(), param.getChargeCode());
-        } else {
-            list = dao.chaKanYaoPinShiYong(page, param.getStartTime(), param.getEndTime(), param.getChargeCode()).getRecords();
-        }
-        log.info("导出项目或者药品:{}", JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
-        String[] title = {"患者姓名", "住院号", "住院/门诊次数", "收费日期", "数量", "金额", "项目编码", "项目名称", "来源"};
-        String[][] content = new String[list.size()][];
-        for (int i = 0; i < list.size(); i++) {
-            content[i] = new String[title.length];
-            QueryDrugsAndProjects pojo = list.get(i);
-            content[i][0] = pojo.getName();
-            content[i][1] = pojo.getCode();
-            content[i][2] = pojo.getTimes();
-            content[i][3] = DateUtil.formatDatetime(pojo.getChargeDate());
-            content[i][4] = String.valueOf(pojo.getNumber());
-            content[i][5] = String.valueOf(pojo.getAmountOfMoney());
-            content[i][6] = pojo.getChargeCode();
-            content[i][7] = pojo.getXmName();
-            content[i][8] = pojo.getSource();
-        }
-        //传三个参数 一个是 固定的 response ,excel的头部信息,excel的内容
-        ExcelUtil.exportExcel(response, title, content);
-    }
-
     /**
      * 查询药品
      *
@@ -175,17 +137,6 @@ public class QueryDrugsAndProjectsService {
         return ResultVoUtil.success(list);
     }
 
-    /**
-     * 查询使用该药品 的 患者信息
-     *
-     * @param param 查询数据
-     * @return 返回信息
-     */
-    public ResultVo<IPage<QueryDrugsAndProjects>> chaKanYaoPing(QueryDrugsAndProjects param) {
-        IPage<QueryDrugsAndProjects> page = new Page<>(1, 50);
-        return ResultVoUtil.success(dao.chaKanYaoPinShiYong(page, param.getStartTime(), param.getEndTime(), param.getChargeCode()));
-    }
-
     /**
      * 在字典中查询 药品或者项目的 code 以及 name
      *
@@ -195,15 +146,18 @@ public class QueryDrugsAndProjectsService {
      */
     public ResultVo<List<GetDropdownBox>> yaoPinHuoXiangMuCode(String pyCode, Integer flag) {
         if (flag == 1) {
-            return ResultVoUtil.success(dao.chaXunXiangMuhuoYaoPinCode("zd_charge_item", "%" + pyCode.toUpperCase() + "%"));
+            return ResultVoUtil.success(dao.chaXunXiangMuhuoYaoPinCode("zd_charge_item", StringUtil.isContainChinese(pyCode)));
         } else if (flag == 2) {
-            return ResultVoUtil.success(dao.chaXunXiangMuhuoYaoPinCode("yp_zd_dict", "%" + pyCode.toUpperCase() + "%"));
+            return ResultVoUtil.success(dao.chaXunXiangMuhuoYaoPinCode("yp_zd_dict", StringUtil.isContainChinese(pyCode)));
         } else {
             return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER);
         }
     }
 
-
+    /**
+     * @param param 查询条件
+     * @return 返回检验检查的数据
+     */
     public ResultVo<List<IllegalChargeData>> chaXunJianYanJianCha(IllegalChargeTemplate param) {
         List<IllegalChargeData> list = dao.chaXunJianYanJianCha(param.getStart(), param.getEnd(), param.getResponces());
         if (list.isEmpty()) {

+ 6 - 8
src/main/java/thyyxxk/webserver/service/yibao/XiangMuLuRuService.java

@@ -74,7 +74,7 @@ public class XiangMuLuRuService {
      * @return 获取项目code
      */
     public ResultVo<List<GetDropdownBox>> getChargeCode(String pyCode) {
-        return ResultVoUtil.success(dao.getChargeCode("%" + pyCode.toUpperCase() + "%"));
+        return ResultVoUtil.success(dao.getChargeCode(StringUtil.isContainChinese(pyCode)));
     }
 
     /**
@@ -224,13 +224,12 @@ public class XiangMuLuRuService {
      * @return 返回是否匹配成功
      */
     public ResultVo<String> yiZhuTuiFeiPiPei(String inpatientNo, Integer admissTimes) {
-        // 获取正的费用
+        // 获取正的医嘱费用
         List<ZyDetailCharge> getYiZhuFeiYongZhenShu = dao.getYiZhuFeiYong(inpatientNo, admissTimes, ">");
-        // 获取负的费用
+        // 获取负的医嘱费用
         List<ZyDetailCharge> getYiZhuFeiYongFuShu = dao.getYiZhuFeiYong(inpatientNo, admissTimes, "<");
-        // 需要匹配的一些流水数据
+        // 需要保存需要匹配的一些流水数据
         List<ZyDetailCharge> piPei = new ArrayList<>();
-
         // 保存正数的 map 用来匹配
         Map<String, ZyDetailCharge> zhenShuMap = new HashMap<>();
         for (ZyDetailCharge zhenShu : getYiZhuFeiYongZhenShu) {
@@ -253,11 +252,10 @@ public class XiangMuLuRuService {
                 dao.yiZhuTuiFeiPiPei(inpatientNo, admissTimes, list);
             }
             log.info("医嘱退费匹配 ==》 操作人:{} :住院号:{},住院次数:{}", TokenUtil.getTokenUserId(), inpatientNo, admissTimes);
-            return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, String.format("医嘱退费匹配成功共匹配%d条", piPei.size()));
+            return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, String.format("医嘱退费匹配,共有【%d】条,匹配成功【%d】条", getYiZhuFeiYongFuShu.size(), piPei.size()));
         } else {
-            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该患者没有可以匹配的医嘱退费");
+            return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该患者没有可以匹配的医嘱退费");
         }
-
     }
 
 

+ 46 - 21
src/main/java/thyyxxk/webserver/utils/StringUtil.java

@@ -1,13 +1,18 @@
 package thyyxxk.webserver.utils;
 
 
+import com.microsoft.sqlserver.jdbc.StringUtils;
+
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author dj
  */
 public class StringUtil {
+
     public static boolean isBlank(String str) {
         return null == str || "".equals(str.trim());
     }
@@ -25,48 +30,68 @@ public class StringUtil {
 
     /**
      * 把原始字符串分割成指定长度的字符串列表
+     *
      * @param inputString 原始字符串
-     * @param length 指定长度
+     * @param length      指定长度
      * @return 。。
-     * */
-    public static List<String> getStringList(String inputString,int length){
+     */
+    public static List<String> getStringList(String inputString, int length) {
         int size = inputString.length() / length;
-        if (inputString.length()%length!=0){
+        if (inputString.length() % length != 0) {
             size += 1;
         }
-        return getStrList(inputString,length,size);
+        return getStrList(inputString, length, size);
     }
+
     /**
-     *把原始字符串分割成指定长度的字符串列表
+     * 把原始字符串分割成指定长度的字符串列表
+     *
      * @param inputString 原始字符串
-     * @param length  指定长度
-     * @param size 指定列表大小
+     * @param length      指定长度
+     * @param size        指定列表大小
      * @return ..
-     * */
-    public static List<String> getStrList(String inputString,int length,int size){
+     */
+    public static List<String> getStrList(String inputString, int length, int size) {
         List<String> list = new ArrayList<>();
-        for (int i = 0;i<size;i++){
-            String childStr = substring(inputString,i * length,(i+1)*length);
+        for (int i = 0; i < size; i++) {
+            String childStr = substring(inputString, i * length, (i + 1) * length);
             list.add(childStr);
         }
         return list;
     }
 
+    /**
+     * @param str 需要判断的字符串
+     * @return 返回 到底要不要 toUpperCase
+     */
+    public static String isContainChinese(String str) {
+        if (StringUtils.isEmpty(str)) {
+            return "空字符串";
+        }
+        Pattern p = Pattern.compile("[\u4E00-\u9FA5|\\!|\\,|\\。|\\(|\\)|\\《|\\》|\\“|\\”|\\?|\\:|\\;|\\【|\\】]");
+        Matcher m = p.matcher(str);
+        if (m.find()) {
+            return "%" + str + "%";
+        }
+        return "%" + str.toUpperCase() + "%";
+    }
+
     /**
      * 分割字符串,如果开始位置大于字符串长度,返回空
+     *
      * @param str 原始字符串
-     * @param f 开始未知
-     * @param t 结束位置
+     * @param f   开始未知
+     * @param t   结束位置
      * @return 。。
-     * */
-    public static String substring(String str,int f,int t){
-        if (f>str.length()){
+     */
+    public static String substring(String str, int f, int t) {
+        if (f > str.length()) {
             return null;
         }
-        if (t>str.length()){
-            return str.substring(f,str.length());
-        }else {
-            return str.substring(f,t);
+        if (t > str.length()) {
+            return str.substring(f, str.length());
+        } else {
+            return str.substring(f, t);
         }
     }