소스 검색

优化代码

DESKTOP-0GD05B0\Administrator 2 년 전
부모
커밋
65c20dc917

+ 10 - 6
src/main/java/thyyxxk/webserver/config/MybatisPlusConfig.java

@@ -1,7 +1,8 @@
 package thyyxxk.webserver.config;
 
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -15,10 +16,13 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 @MapperScan("thyyxxk.webserver.dao")
 public class MybatisPlusConfig {
+
     @Bean
-    public PaginationInterceptor paginationInterceptor() {
-        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
-        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
-        return paginationInterceptor;
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        // 自定义拦截器,先添加先执行。
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.SQL_SERVER2005));
+        return interceptor;
     }
+
 }

+ 5 - 5
src/main/java/thyyxxk/webserver/dao/his/inpatient/XiangMuLuRuDao.java

@@ -916,11 +916,11 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
             "  and group_no = #{groupNo} " +
             "  and page_class = 'HT' " +
             "  AND charge_date >= #{start} AND charge_date <= #{end}")
-    void generateMedicationList(String start,
-                                String end,
-                                String dept,
-                                String groupNo,
-                                int pageNo);
+    int generateMedicationList(String start,
+                               String end,
+                               String dept,
+                               String groupNo,
+                               int pageNo);
 
 
     @Select("select page_no, " +

+ 4 - 4
src/main/java/thyyxxk/webserver/dao/his/reports/KeShiShouRuDao.java

@@ -203,9 +203,9 @@ public interface KeShiShouRuDao {
             "WHERE  trans_flag_yb <> 2 " +
             " and ${ew.sqlSegment} " +
             "  AND a.exec_unit IN (#{unit})")
-    List<KeShiFeiiYongTongJi> test(XcPageHelp<KeShiFeiiYongTongJi> pageHelp,
-                                   @Param(Constants.WRAPPER) QueryWrapper<?> qw,
-                                   @Param("unit") String unit);
+    XcPageHelp<KeShiFeiiYongTongJi> test(XcPageHelp<KeShiFeiiYongTongJi> pageHelp,
+                                         @Param(Constants.WRAPPER) QueryWrapper<?> qw,
+                                         @Param("unit") String unit);
 
     @Select("select ${fenLei} " +
             "sum(charge_fee) charge_fee," +
@@ -371,7 +371,7 @@ public interface KeShiShouRuDao {
 
     @Select("<script>" +
             "select " +
-            " ${fenLei} "+
+            " ${fenLei} " +
             "sum(cast ((quantity*drug_win*unit_price) as decimal(14,2))) charge_fee, " +
             "sum(cast ((quantity*drug_win) as decimal(14,2))) charge_amount,count(1) total,source= '门诊' " +
             "from mz_charge_detail where  bill_item_code NOT IN ('TC','020') and " +

+ 6 - 1
src/main/java/thyyxxk/webserver/service/inpatient/XiangMuLuRuService.java

@@ -13,6 +13,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import thyyxxk.webserver.config.exception.BizException;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.inpatient.XiangMuLuRuDao;
 import thyyxxk.webserver.dao.his.medicalinsurance.SiSettleApplyDao;
@@ -927,8 +928,12 @@ public class XiangMuLuRuService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void generateMedicationListFunc(String startDate, String endDate, String groupNo, Integer pageNo, String dept) {
+        int count = dao.generateMedicationList(startDate, endDate, dept, groupNo, pageNo);
+        if (count == 0) {
+            throw new BizException(ExceptionEnum.LOGICAL_ERROR, "取数为空无法生成药单。");
+        }
         dao.drugReturnForm(pageNo, dept, TokenUtil.getTokenUserId(), groupNo);
-        dao.generateMedicationList(startDate, endDate, dept, groupNo, pageNo);
+        log.info("退药药单生成成功操作人:{},药单号:{}", TokenUtil.getTokenUserId(), pageNo);
     }
 
     /**

+ 2 - 12
src/main/java/thyyxxk/webserver/service/reports/KeShiShouRuServer.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.service.reports;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
@@ -66,7 +67,6 @@ public class KeShiShouRuServer {
         if (StringUtil.notBlank(param.getOpId())) {
             renHuanCodeHeCodeRs = dao.huoQuRenYuanDeCodeHeCodeRs(param.getOpId());
         }
-        String huanZheBiao = "zy_patient";
         Page<KeShiFeiiYongTongJi> page;
         if (param.getTotal() > 0) {
             page = new Page<>(param.getCurrentPage(), param.getPageSize(), false);
@@ -97,7 +97,7 @@ public class KeShiShouRuServer {
                     qw.groupBy("CONVERT(varchar(100), charge_date, 23)");
                     qp.setData(dao.getZhuYuanFeiYongXiangMuFenLeiV2(page,
                             qw,
-                            "CONVERT(varchar(100), charge_date, 23) charge_date_string,"));
+                            " CONVERT(varchar(100), charge_date, 23) charge_date_string,"));
                     qp.setTotal(page.getTotal());
                     break;
                 case 1:
@@ -115,16 +115,6 @@ public class KeShiShouRuServer {
                     qp.setTotal(page.getTotal());
                     break;
                 case 3:
-                    // todo 肖蟾自定义分页插件
-//                    XcPageHelp<KeShiFeiiYongTongJi> pageHelp = new XcPageHelp<>(1, 40);
-//                    QueryWrapper<?> qw2 = new QueryWrapper<>();
-//                    qw2.ge("charge_date", "2023-02-01 00:00:00")
-//                            .le("charge_date", "2023-02-28 23:59:59");
-//
-//                    dao.test(pageHelp, qw2, "3100000");
-//                    if (true) {
-//                        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "测试");
-//                    }
                     if (param.getTotal() == 0) {
                         qp = dao.getKeShiFeiYongZhuYuanTotal(keShiLieBiao, param.getStartTime(), param.getEndTime(), param.getChargeCodeMx(), renHuanCodeHeCodeRs.getCode(), renHuanCodeHeCodeRs.getCodeRs(), param.getReqDeptCode());
                     }