From d7dab603ee0ee4b7f763794e156e9dc7fde875ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=81=92?= Date: Fri, 20 Oct 2023 13:35:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E8=AF=84=E4=BB=B7=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nursingorder/NursingOrderController.java | 2 +- .../applet/dto/nurseorder/NurseOrderDTO.java | 10 +++++++ .../nursingorder/NursingOrderMapper.java | 6 ++-- .../impl/NursingOrderServiceImpl.java | 29 ++++++++++--------- .../applet/vo/nursingorder/PatientOrder.java | 24 ++++++++++++++- .../nursingorder/NusringOrderMapper.xml | 12 ++++---- 6 files changed, 60 insertions(+), 23 deletions(-) diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nursingorder/NursingOrderController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nursingorder/NursingOrderController.java index fec730d..98b6ad9 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nursingorder/NursingOrderController.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nursingorder/NursingOrderController.java @@ -99,7 +99,7 @@ public class NursingOrderController extends BaseController { /** * 根据openid编号查询对应得订单 */ - //@MobileRequestAuthorization + @MobileRequestAuthorization @GetMapping("/getAppletOrderList") public TableDataInfo getAppletOrderList(NurseOrderDTO nurseOrder) { if (Objects.isNull(nurseOrder) || Objects.isNull(nurseOrder.getParentId()) || StringUtils.isBlank(nurseOrder.getCardNo()) || StringUtils.isBlank(nurseOrder.getOrderStatus())) { diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/nurseorder/NurseOrderDTO.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/nurseorder/NurseOrderDTO.java index 667debd..e05a09b 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/nurseorder/NurseOrderDTO.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/dto/nurseorder/NurseOrderDTO.java @@ -35,4 +35,14 @@ public class NurseOrderDTO extends BaseDomain implements Serializable { * 地区标识 */ private String region; + + /** + * 页码 + */ + private Integer pageNum; + + /** + * 数量 + */ + private Integer pageSize; } \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nursingorder/NursingOrderMapper.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nursingorder/NursingOrderMapper.java index 9a4a956..971e95c 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nursingorder/NursingOrderMapper.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nursingorder/NursingOrderMapper.java @@ -78,11 +78,11 @@ public interface NursingOrderMapper { /** * 根据openid编号查询对应得订单 * - * @param patientId openid编号 - * @param orderStatus 订单状态 + * @param patientId openid编号 + * @param orderStatusList 订单状态 * @return AjaxResult */ - List getGoodsOrderAndConsultationOrder(@Param("patientId") Long patientId, @Param("orderStatus") String orderStatus); + List getGoodsOrderAndConsultationOrder(@Param("patientId") Long patientId, @Param("orderStatusList") List orderStatusList); /** * 根据patientId编号查询评价信息 diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nursingorder/impl/NursingOrderServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nursingorder/impl/NursingOrderServiceImpl.java index afc3bf0..f2e1c78 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nursingorder/impl/NursingOrderServiceImpl.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nursingorder/impl/NursingOrderServiceImpl.java @@ -26,13 +26,9 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; -import static com.xinelu.common.utils.PageUtils.startPage; - /** * @Description 订单分页 * @Author ZhangHeng @@ -144,12 +140,17 @@ public class NursingOrderServiceImpl implements INursingOrderService { List appletOrderList = new ArrayList<>(); List goodsOrderAndConsultationOrder = new ArrayList<>(); if (NOT_EVALUATED.equals(nurseOrder.getOrderStatus())) { + List strings = new ArrayList<>(); + strings.add(GooodsOrderStatusEnum.RECEIVED_GOODS.getInfo()); + strings.add(GooodsOrderStatusEnum.COMPLETED.getInfo()); appletOrderList = nursingOrderMapper.getAppointmentOrderListByParentId(nurseOrder.getParentId(), OrderStatusEnum.COMPLETE.getInfo()); - goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(nurseOrder.getParentId(), GooodsOrderStatusEnum.RECEIVED_GOODS.getInfo()); + goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(nurseOrder.getParentId(), strings); } if (EVALUATED.equals(nurseOrder.getOrderStatus())) { + List strings = new ArrayList<>(); + strings.add(GooodsOrderStatusEnum.EVALUATED.getInfo()); appletOrderList = nursingOrderMapper.getAppointmentOrderListByParentId(nurseOrder.getParentId(), OrderStatusEnum.EVALUATED.getInfo()); - goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(nurseOrder.getParentId(), GooodsOrderStatusEnum.EVALUATED.getInfo()); + goodsOrderAndConsultationOrder = nursingOrderMapper.getGoodsOrderAndConsultationOrder(nurseOrder.getParentId(), strings); } if (CollectionUtils.isNotEmpty(appletOrderList)) { patientOrders.addAll(appletOrderList); @@ -164,23 +165,25 @@ public class NursingOrderServiceImpl implements INursingOrderService { PatientOrderVO resultHttp = JSON.parseObject(result, PatientOrderVO.class); if (Objects.nonNull(resultHttp) && CollectionUtils.isNotEmpty(resultHttp.getData())) { List data = resultHttp.getData(); + data.forEach(item -> item.setOrderSource(OrderSourceEnum.FAMILY_DOCTOR.getInfo())); List orderEvaluate = nursingOrderMapper.getOrderEvaluateByPatientId(nurseOrder.getParentId()); if (CollectionUtils.isNotEmpty(orderEvaluate) && EVALUATED.equals(nurseOrder.getOrderStatus())) { for (PatientOrder patientOrder : orderEvaluate) { PatientOrder dataFirst = data.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getOrderNo()) && patientOrder.getOrderNo().equals(item.getOrderNo())).findFirst().orElse(new PatientOrder()); dataFirst.setCompositeScore(patientOrder.getCompositeScore()); - dataFirst.setOrderSource(OrderSourceEnum.FAMILY_DOCTOR.getInfo()); patientOrders.add(dataFirst); } } if (CollectionUtils.isNotEmpty(orderEvaluate) && NOT_EVALUATED.equals(nurseOrder.getOrderStatus())) { - data.removeAll(orderEvaluate); - data.forEach(item ->item.setOrderSource(OrderSourceEnum.FAMILY_DOCTOR.getInfo())); + Collection subtract = CollectionUtils.subtract(data, orderEvaluate); + patientOrders.addAll(subtract); + } + if (CollectionUtils.isEmpty(orderEvaluate) && NOT_EVALUATED.equals(nurseOrder.getOrderStatus())) { + patientOrders.addAll(data); } - patientOrders.addAll(data); } - startPage(); - patientOrders.sort((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())); + Collections.sort(patientOrders, Comparator.comparing(PatientOrder::getCreateTime, (u1, u2) -> u2.compareTo(u1))); + patientOrders = patientOrders.stream().skip((nurseOrder.getPageNum() - 1) * nurseOrder.getPageSize()).limit(nurseOrder.getPageSize()).collect(Collectors.toList()); return patientOrders; } } \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/nursingorder/PatientOrder.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/nursingorder/PatientOrder.java index 0ef603a..b3771dc 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/nursingorder/PatientOrder.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/nursingorder/PatientOrder.java @@ -1,10 +1,13 @@ package com.xinelu.applet.vo.nursingorder; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.core.domain.BaseDomain; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.Objects; /** * @Description 服务评价 @@ -13,7 +16,7 @@ import java.time.LocalDateTime; */ @Data -public class PatientOrder implements Serializable { +public class PatientOrder extends BaseDomain implements Serializable { /** * 被护理人信息表id @@ -36,6 +39,7 @@ public class PatientOrder implements Serializable { /** * 下单时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime; /** @@ -77,4 +81,22 @@ public class PatientOrder implements Serializable { * 订单来源,泉医模块:SPRING_DOCTOR,家医模块:FAMILY_DOCTOR */ private String orderSource; + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PatientOrder that = (PatientOrder) o; + return Objects.equals(orderNo, that.orderNo); + } + + @Override + public int hashCode() { + return Objects.hash(orderNo); + } } diff --git a/xinelu-nurse-applet/src/main/resources/mapper/applet/nursingorder/NusringOrderMapper.xml b/xinelu-nurse-applet/src/main/resources/mapper/applet/nursingorder/NusringOrderMapper.xml index 72bae6c..d2df7c9 100644 --- a/xinelu-nurse-applet/src/main/resources/mapper/applet/nursingorder/NusringOrderMapper.xml +++ b/xinelu-nurse-applet/src/main/resources/mapper/applet/nursingorder/NusringOrderMapper.xml @@ -155,9 +155,6 @@ and gr.order_type = #{orderType} - - and gr.order_type IN #{orderTypeList} - and gr.del_flag = 0 and god.del_flag = 0 @@ -367,7 +364,7 @@ gor.patient_id, gor.order_no, gor.order_status, - gor.order_time, + gor.order_time createTime, gor.order_type, god.goods_name orderName, gad.attribute_piture_url pictureUrl, @@ -381,7 +378,12 @@ LEFT JOIN hospital_person_info hpi ON hpi.id = gor.hospital_person_id LEFT JOIN order_evaluate_info nei ON nei.order_no = gor.order_no where - gor.order_status = #{orderStatus} + + gor.order_status in + + #{orderStatusList} + + and gor.patient_id = #{patientId} and gor.del_flag = 0