guomengjiao 1 napja%!(EXTRA string=óta)
szülő
commit
651b78f73b

+ 16 - 0
ruoyi-info/src/main/java/com/ruoyi/info/order/domain/Order.java

@@ -44,10 +44,18 @@ public class Order extends BaseTimeEntity {
      * 医院ID
      */
     private Long hospitalId;
+    /**
+     * 医院信息冗余
+     */
+    private String hospitalInfo;
     /**
      * 医院科室ID
      */
     private Long hospitalDepartmentId;
+    /**
+     * 医院科室信息冗余
+     */
+    private String hospitalDepartmentInfo;
     /**
      * 房床号
      */
@@ -60,10 +68,18 @@ public class Order extends BaseTimeEntity {
      * 就诊人ID
      */
     private Long patientId;
+    /**
+     * 就诊人信息冗余
+     */
+    private String patientInfo;
     /**
      * 服务ID
      */
     private Long serviceId;
+    /**
+     * 服务信息冗余
+     */
+    private String serviceInfo;
     /**
      * 服务单位
      */

+ 8 - 0
ruoyi-info/src/main/java/com/ruoyi/info/order/domain/vo/OrderVo.java

@@ -69,6 +69,8 @@ public class OrderVo {
      */
     @ApiModelProperty("医院ID")
     private Long hospitalId;
+    @ApiModelProperty("医院信息冗余")
+    private String hospitalInfo;
     @ExcelProperty(value = "下单医院", order = 6)
     @ApiModelProperty(value = "医院名称")
     private String hospitalName;
@@ -82,6 +84,8 @@ public class OrderVo {
      */
     @ApiModelProperty("医院科室ID")
     private Long hospitalDepartmentId;
+    @ApiModelProperty("医院科室信息冗余")
+    private String hospitalDepartmentInfo;
     @ExcelProperty(value = "所在科室", order = 7)
     @ApiModelProperty(value = "医院科室名称")
     private String hospitalDepartmentName;
@@ -105,6 +109,8 @@ public class OrderVo {
      */
     @ApiModelProperty("就诊人ID")
     private Long patientId;
+    @ApiModelProperty("就诊人信息冗余")
+    private String patientInfo;
     @ApiModelProperty("就诊人信息")
     private PatientVo patientVo;
     @ExcelProperty(value = "就诊人姓名", order = 17)
@@ -130,6 +136,8 @@ public class OrderVo {
      */
     @ApiModelProperty("服务ID")
     private Long serviceId;
+    @ApiModelProperty("服务信息冗余")
+    private String serviceInfo;
     @ExcelProperty(value = "服务名称", order = 10)
     @ApiModelProperty("服务名称")
     private String serviceName;

+ 40 - 14
ruoyi-info/src/main/java/com/ruoyi/info/order/service/impl/OrderServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.info.order.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,6 +12,9 @@ import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.info.hospital.domain.Hospital;
+import com.ruoyi.info.hospital.domain.HospitalDepartment;
+import com.ruoyi.info.hospital.domain.vo.HospitalDepartmentVo;
 import com.ruoyi.info.hospital.domain.vo.HospitalStatisticsVo;
 import com.ruoyi.info.hospital.domain.vo.HospitalVo;
 import com.ruoyi.info.hospital.service.IHospitalDepartmentService;
@@ -23,6 +27,7 @@ import com.ruoyi.info.order.enums.OrderStatus;
 import com.ruoyi.info.order.exception.OrderExceptionEnum;
 import com.ruoyi.info.order.mapper.OrderMapper;
 import com.ruoyi.info.order.service.IOrderService;
+import com.ruoyi.info.patient.domain.Patient;
 import com.ruoyi.info.patient.domain.vo.PatientVo;
 import com.ruoyi.info.patient.service.IPatientService;
 import com.ruoyi.info.service.domain.ServiceProduct;
@@ -120,13 +125,16 @@ public class OrderServiceImpl implements IOrderService {
             return vo;
         }
         //医院
-        vo.setHospitalVo(hospitalService.queryDelById(vo.getHospitalId()));
+        vo.setHospitalVo(JSONObject.parseObject(vo.getHospitalInfo(), HospitalVo.class));
         //科室
-        vo.setHospitalDepartmentName(hospitalDepartmentService.queryNameById(vo.getHospitalDepartmentId()));
+        HospitalDepartmentVo hospitalDepartmentVo = JSONObject.parseObject(vo.getHospitalDepartmentInfo(), HospitalDepartmentVo.class);
+        if (ObjectUtil.isNotNull(hospitalDepartmentVo)) {
+            vo.setHospitalDepartmentName(hospitalDepartmentVo.getName());
+        }
         //就诊人
-        vo.setPatientVo(patientService.queryDelById(vo.getPatientId()));
+        vo.setPatientVo(JSONObject.parseObject(vo.getPatientInfo(), PatientVo.class));
         //服务
-        ServiceProductVo serviceProductVo = serviceProductService.queryDelById(vo.getServiceId());
+        ServiceProductVo serviceProductVo = JSONObject.parseObject(vo.getServiceInfo(), ServiceProductVo.class);
         if (ObjectUtil.isNotNull(serviceProductVo)) {
             vo.setServiceName(serviceProductVo.getName());
         }
@@ -179,10 +187,20 @@ public class OrderServiceImpl implements IOrderService {
         add.setStatus(OrderStatus.wait_confirmed);
         //服务
         ServiceProduct serviceProduct = serviceProductService.loadById(add.getServiceId(), true);
+        add.setServiceInfo(JSONObject.toJSONString(serviceProduct));
         add.setSellingPrice(serviceProduct.getSellingPrice());
         add.setTotalPrice(serviceProduct.getSellingPrice().multiply(new BigDecimal(add.getOrderNum())));
         add.setServiceUnit(serviceProduct.getServiceUnit());
         add.setServiceUnitDuration(serviceProduct.getServiceUnitDuration());
+        //医院
+        Hospital hospital = hospitalService.loadById(add.getHospitalId(), true);
+        add.setHospitalInfo(JSONObject.toJSONString(hospital));
+        //科室
+        HospitalDepartment hospitalDepartment = hospitalDepartmentService.loadById(add.getHospitalDepartmentId(), true);
+        add.setHospitalDepartmentInfo(JSONObject.toJSONString(hospitalDepartment));
+        //就诊人
+        Patient patient = patientService.loadById(add.getPatientId(), true);
+        add.setPatientInfo(JSONObject.toJSONString(patient));
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -286,17 +304,25 @@ public class OrderServiceImpl implements IOrderService {
 
     private List<OrderVo> convertAllList(List<OrderVo> list, boolean queryPatient) {
         return list.stream().map(o -> {
-            HospitalVo hospitalVo = hospitalService.queryDelById(o.getHospitalId());
-            o.setHospitalName(hospitalVo.getName());
-            o.setHospitalAddress(hospitalVo.getAddress());
-            o.setHospitalDepartmentName(hospitalDepartmentService.queryNameById(o.getHospitalDepartmentId()));
+            HospitalVo hospitalVo = JSONObject.parseObject(o.getHospitalInfo(), HospitalVo.class);
+            if (ObjectUtil.isNotNull(hospitalVo)) {
+                o.setHospitalName(hospitalVo.getName());
+                o.setHospitalAddress(hospitalVo.getAddress());
+            }
+            //科室
+            HospitalDepartmentVo hospitalDepartmentVo = JSONObject.parseObject(o.getHospitalDepartmentInfo(), HospitalDepartmentVo.class);
+            if (ObjectUtil.isNotNull(hospitalDepartmentVo)) {
+                o.setHospitalDepartmentName(hospitalDepartmentVo.getName());
+            }
             if(queryPatient) {
-                PatientVo patientVo = patientService.queryDelById(o.getPatientId());
-                o.setPatientName(patientVo.getName());
-                o.setPatientMobile(patientVo.getMobile());
-                o.setPatientGender(patientVo.getGender());
-                o.setPatientAge(patientVo.getAge());
-                o.setPatientRelationship(patientVo.getRelationship());
+                PatientVo patientVo = JSONObject.parseObject(o.getPatientInfo(), PatientVo.class);
+                if (ObjectUtil.isNotNull(patientVo)) {
+                    o.setPatientName(patientVo.getName());
+                    o.setPatientMobile(patientVo.getMobile());
+                    o.setPatientGender(patientVo.getGender());
+                    o.setPatientAge(patientVo.getAge());
+                    o.setPatientRelationship(patientVo.getRelationship());
+                }
             }
             return o;
         }).collect(Collectors.toList());

+ 4 - 0
ruoyi-info/src/main/resources/mapper/order/OrderMapper.xml

@@ -10,11 +10,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="userId" column="user_id"/>
         <result property="status" column="status"/>
         <result property="hospitalId" column="hospital_id"/>
+        <result property="hospitalInfo" column="hospital_info"/>
         <result property="hospitalDepartmentId" column="hospital_department_id"/>
+        <result property="hospitalDepartmentInfo" column="hospital_department_info"/>
         <result property="roomNumber" column="room_number"/>
         <result property="remarks" column="remarks"/>
         <result property="patientId" column="patient_id"/>
+        <result property="patientInfo" column="patient_info"/>
         <result property="serviceId" column="service_id"/>
+        <result property="serviceInfo" column="service_info"/>
         <result property="serviceUnit" column="service_unit"/>
         <result property="serviceUnitDuration" column="service_unit_duration"/>
         <result property="expectedTime" column="expected_time"/>