Browse Source

查询优化

yjwang 6 days ago
parent
commit
eb9751fa43

+ 9 - 7
fs-doctor-app/src/main/java/com/fs/app/controller/PrescribeController.java

@@ -120,13 +120,14 @@ public class PrescribeController extends  AppBaseController {
                 param.setDoctorId(Long.parseLong(getDoctorId()));
             }
             // 问诊列表
-            IPage<Hospital580PrescriptionScrmEntity> page = orderScrmService.page(
-                    new Page<Hospital580PrescriptionScrmEntity>(param.getPageNum(), param.getPageSize())
-                    , new LambdaQueryWrapper<Hospital580PrescriptionScrmEntity>()
-                            .eq(Hospital580PrescriptionScrmEntity::getAuditApothecaryId,param.getDoctorId())
-                            .eq(ObjectUtil.isNotEmpty(param.getStatus()) && param.getStatus()==1,Hospital580PrescriptionScrmEntity::getAuditStatus,1)
-                            .orderByDesc(Hospital580PrescriptionScrmEntity::getCreateTime)
-            );
+//            IPage<Hospital580PrescriptionScrmEntity> page = orderScrmService.page(
+//                    new Page<Hospital580PrescriptionScrmEntity>(param.getPageNum(), param.getPageSize())
+//                    , new LambdaQueryWrapper<Hospital580PrescriptionScrmEntity>()
+//                            .eq(Hospital580PrescriptionScrmEntity::getAuditApothecaryId,param.getDoctorId())
+//                            .eq(ObjectUtil.isNotEmpty(param.getStatus()) && param.getStatus()==1,Hospital580PrescriptionScrmEntity::getAuditStatus,1)
+//                            .orderByDesc(Hospital580PrescriptionScrmEntity::getCreateTime)
+//            );
+            IPage<Hospital580PrescriptionScrmEntity> page = orderScrmService.getPrescription(param);
             List<FsPrescribeListDVO> list = page.getRecords().stream()
                     .map(order -> {
                         FsPrescribeListDVO vo = new FsPrescribeListDVO();
@@ -139,6 +140,7 @@ public class PrescribeController extends  AppBaseController {
                         vo.setPrescribeImgUrl(order.getDstFilePath());
                         vo.setAuditReason(order.getReason());
                         vo.setDiagnose(order.getTags());
+                        vo.setOrderCode(order.getOrderCode());
                         vo.setAuditStatus(order.getAuditStatus());
                         if (order.getAuditTime() != null){
                             vo.setAuditTime(Date.from(order.getAuditTime().atZone(ZoneId.of("Asia/Shanghai")).toInstant()));

+ 4 - 1
fs-service/src/main/java/com/fs/his/param/FsPrescribeListDParam.java

@@ -26,6 +26,9 @@ public class FsPrescribeListDParam extends BaseParam implements Serializable {
     @JsonIgnore
     private String endTime;
 
-
+    /**
+     * 订单号
+     * **/
+    private String orderCode;
 
 }

+ 1 - 1
fs-service/src/main/java/com/fs/his/vo/FsPrescribeListDVO.java

@@ -59,5 +59,5 @@ public class FsPrescribeListDVO implements Serializable {
     // 处方审核状态:1为待审核,2为审核通过,3为审核不通过
     private Integer auditStatus;
 
-
+    private String orderCode;
 }

+ 4 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsStoreAfterSalesScrm.java

@@ -152,4 +152,8 @@ public class FsStoreAfterSalesScrm extends BaseEntity
      */
     private String merchantId;
 
+    /**
+     * 处方编码
+     * **/
+    private String serialNo;
 }

+ 5 - 1
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreAfterSalesScrmMapper.java

@@ -88,11 +88,12 @@ public interface FsStoreAfterSalesScrmMapper
 
     @Select({"<script> " +
             "select s.*,o.delivery_status,o.delivery_id,u.phone as user_phone,c.company_name ," +
-            "cu.nick_name as company_user_nick_name ,cu.phonenumber as company_usere_phonenumber,ssc.store_name as storeName,ssc.store_seq as storeSeq,ssc.merchant_id as merchantId  " +
+            "cu.nick_name as company_user_nick_name ,cu.phonenumber as company_usere_phonenumber,ssc.store_name as storeName,ssc.store_seq as storeSeq,ssc.merchant_id as merchantId,hps.serial_no  " +
             "from fs_store_after_sales_scrm s INNER join fs_store_order_scrm o on o.order_code=s.order_code " +
             "left join fs_user u on s.user_id=u.user_id left join company c on c.company_id=s.company_id " +
             "left join company_user cu on cu.user_id=s.company_user_id " +
             "left join fs_store_scrm ssc on o.store_id=ssc.store_id " +
+            "left join fs_store_hospital580_prescription_scrm hps on hps.store_order_id = o.id " +
             " where 1=1 " +
             "<if test = 'maps.status != null    '> " +
             "and s.status = #{maps.status} " +
@@ -121,6 +122,9 @@ public interface FsStoreAfterSalesScrmMapper
             "<if test = 'maps.storeId != null'> " +
             "and o.store_id = #{maps.storeId} " +
             "</if>" +
+            "     <if test=\"maps.serialNo != null and  maps.serialNo !=''\">\n" +
+            "                and hps.serial_no like CONCAT('%',#{maps.serialNo},'%')\n" +
+            "            </if> " +
             "<if test = 'maps.deliverySn != null and  maps.deliverySn !=  \"\" '> " +
             " and ( o.delivery_id like concat('%', #{maps.deliverySn}, '%') or s.delivery_sn like concat('%', #{maps.deliverySn}, '%')) " +
             "</if>" +

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/param/FsStoreOrderParam.java

@@ -126,4 +126,9 @@ public class FsStoreOrderParam extends BaseEntity implements Serializable
      */
     private  String  merchantId;
 
+    /**
+     * 处方单号
+     * **/
+    private String serialNo;
+
 }

+ 4 - 2
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreAfterSalesVO.java

@@ -113,6 +113,8 @@ public class FsStoreAfterSalesVO implements Serializable
      */
     private String merchantId;
 
-
-
+    /**
+     * 处方编号
+     * **/
+    private String serialNo;
 }

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderVO.java

@@ -269,4 +269,9 @@ public class FsStoreOrderVO implements Serializable
      */
     private  String  merchantId;
 
+    /**
+     * 处方单号
+     * **/
+    private String serialNo;
+
 }

+ 3 - 1
fs-service/src/main/java/com/fs/hospital580/entity/Hospital580PrescriptionScrmEntity.java

@@ -197,7 +197,9 @@ public class Hospital580PrescriptionScrmEntity extends Model<Hospital580Prescrip
     @TableField("store_order_id")
     private Long storeOrderId;
 
-
+    //点单编号
+    @TableField(exist = false)
+    private String orderCode;
     @Override
     public Serializable pkVal() {
         return this.preId;

+ 10 - 0
fs-service/src/main/java/com/fs/hospital580/mapper/Hospital580PrescriptionScrmMapper.java

@@ -1,6 +1,9 @@
 package com.fs.hospital580.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fs.his.param.FsPrescribeListDParam;
 import com.fs.hospital580.entity.Hospital580PrescriptionScrmEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -22,4 +25,11 @@ public interface Hospital580PrescriptionScrmMapper extends BaseMapper<Hospital58
      * @return list
      * **/
     List<Hospital580PrescriptionScrmEntity> getExpiredPrescriptionInfo();
+
+    /**
+     * 分页查询
+     * @param param 数据
+     * @param page 分页
+     * **/
+    IPage<Hospital580PrescriptionScrmEntity>  getPrescription(Page<Hospital580PrescriptionScrmEntity> page,@Param("query") FsPrescribeListDParam param);
 }

+ 8 - 0
fs-service/src/main/java/com/fs/hospital580/service/Hospital580PrescriptionScrmService.java

@@ -1,6 +1,8 @@
 package com.fs.hospital580.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.his.param.FsPrescribeListDParam;
 import com.fs.hospital580.entity.Hospital580PrescriptionScrmEntity;
 
 import javax.validation.constraints.NotNull;
@@ -21,4 +23,10 @@ public interface Hospital580PrescriptionScrmService extends IService<Hospital580
      * 处方失效定时任务
      * **/
     void prescriptionInvalid();
+
+    /**
+     *获取分页数据
+     * @param param 参数
+     * **/
+    IPage<Hospital580PrescriptionScrmEntity> getPrescription(FsPrescribeListDParam param);
 }

+ 9 - 0
fs-service/src/main/java/com/fs/hospital580/service/impl/Hospital580PrescriptionScrmServiceImpl.java

@@ -1,7 +1,10 @@
 package com.fs.hospital580.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.his.param.FsPrescribeListDParam;
 import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
 import com.fs.hospital580.entity.Hospital580PrescriptionScrmEntity;
 import com.fs.hospital580.mapper.Hospital580PrescriptionScrmMapper;
@@ -46,4 +49,10 @@ public class Hospital580PrescriptionScrmServiceImpl extends ServiceImpl<Hospital
             fsStoreOrderScrmMapper.batchUpdateOrderStatusById(orderIds,"-3");
         }
     }
+
+    @Override
+    public IPage<Hospital580PrescriptionScrmEntity> getPrescription(FsPrescribeListDParam param) {
+        Page<Hospital580PrescriptionScrmEntity> page = new Page<>(param.getPageNum(), param.getPageSize());
+        return baseMapper.getPrescription(page,param);
+    }
 }

+ 5 - 1
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -1579,8 +1579,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select o.*,u.phone,u.register_code,u.register_date,u.source, c.company_name ,cu.nick_name as company_user_nick_name ,cu.phonenumber as company_usere_phonenumber
         , csc.name miniProgramName,ssc.store_name,
         ssc.store_seq,
-        ssc.merchant_id
+        ssc.merchant_id,hps.serial_no
         from fs_store_order_scrm o
+        left join fs_store_hospital580_prescription_scrm hps on hps.store_order_id = o.id
         left join fs_user u on o.user_id=u.user_id
         left join company c on c.company_id=o.company_id
         left join company_user cu on cu.user_id=o.company_user_id
@@ -1614,6 +1615,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="maps.orderCode != null and  maps.orderCode !=''">
                 and o.order_code like CONCAT('%',#{maps.orderCode},'%')
             </if>
+            <if test="maps.serialNo != null and  maps.serialNo !=''">
+                and hps.serial_no like CONCAT('%',#{maps.serialNo},'%')
+            </if>
             <if test="maps.storeId != null">
                 and ssc.store_id = #{maps.storeId}
             </if>

+ 46 - 0
fs-service/src/main/resources/mapper/hospital580/Hospital580PrescriptionScrmMapper.xml

@@ -63,4 +63,50 @@
             TIMESTAMPDIFF(MINUTE, ps.create_time, NOW()) >= 1440
           AND sos.`status` = 0
     </select>
+
+    <select id="getPrescription" resultType="com.fs.hospital580.entity.Hospital580PrescriptionScrmEntity">
+        SELECT
+        hps.*,
+        sos.order_code AS orderCode
+        FROM
+        fs_store_hospital580_prescription_scrm hps
+        LEFT JOIN fs_store_order_scrm sos ON sos.id = hps.store_order_id
+        WHERE
+        1=1
+        <if test="query.doctorId != null">
+            AND hps.audit_apothecary_id = #{query.doctorId}
+        </if>
+        <if test="query.status != null and query.status == 1">
+            AND hps.audit_status = 1
+        </if>
+        <if test="query.doctorDrugId != null">
+            AND hps.doctor_drug_id = #{query.doctorDrugId}
+        </if>
+        <if test="query.type != null">
+            AND hps.type = #{query.type}
+        </if>
+        <if test="query.patientName != null and query.patientName != ''">
+            AND hps.patient_name LIKE CONCAT('%', #{query.patientName}, '%')
+        </if>
+        <if test="query.orderCode != null and query.orderCode != ''">
+            AND sos.order_code LIKE CONCAT('%', #{query.orderCode}, '%')
+        </if>
+        <if test="query.prescribeCode != null and query.prescribeCode != ''">
+            AND hps.prescribe_code = #{query.prescribeCode}
+        </if>
+
+        <if test="query.prescribeType != null">
+            AND hps.prescribe_type = #{query.prescribeType}
+        </if>
+        <if test="query.companyUserId != null">
+            AND hps.company_user_id = #{query.companyUserId}
+        </if>
+        <if test="query.beginTime != null and query.beginTime != ''">
+            AND hps.create_time >= #{query.beginTime}
+        </if>
+        <if test="query.endTime != null and query.endTime != ''">
+            AND hps.create_time &lt;= #{query.endTime}
+        </if>
+        ORDER BY hps.create_time DESC
+    </select>
 </mapper>