Explorar o código

feature: 对账下载接口

wuyongyi %!s(int64=2) %!d(string=hai) anos
pai
achega
a24f252901
Modificáronse 22 ficheiros con 519 adicións e 30 borrados
  1. 2 2
      src/main/java/com/ywt/mg/services/DownloadRecordService.java
  2. 2 0
      src/main/java/com/ywt/mg/services/MealOrderService.java
  3. 101 7
      src/main/java/com/ywt/mg/services/NatOrderService.java
  4. 3 0
      src/main/java/com/ywt/mg/services/OfflineNewService.java
  5. 10 0
      src/main/java/com/ywt/mg/services/OrderPaymentService.java
  6. 101 1
      src/main/java/com/ywt/mg/services/PrescriptionServices.java
  7. 10 0
      src/main/java/com/ywt/mg/services/RefundLogService.java
  8. 39 1
      src/main/java/com/ywt/mg/services/RegisteredOrderService.java
  9. 1 1
      src/main/java/com/ywt/mg/web/controllers/CheckUpOrderController.java
  10. 2 8
      src/main/java/com/ywt/mg/web/controllers/DepositController.java
  11. 3 8
      src/main/java/com/ywt/mg/web/controllers/MealOrderController.java
  12. 25 0
      src/main/java/com/ywt/mg/web/controllers/NatOrderController.java
  13. 2 0
      src/main/java/com/ywt/mg/web/controllers/OfflineController.java
  14. 1 1
      src/main/java/com/ywt/mg/web/controllers/OutpatientOrderController.java
  15. 36 0
      src/main/java/com/ywt/mg/web/controllers/PrescriptionController.java
  16. 1 1
      src/main/java/com/ywt/mg/web/controllers/RegisteredOrderController.java
  17. 28 0
      src/main/java/com/ywt/mg/web/controllers/hospital/HospCheckUpOrderController.java
  18. 28 0
      src/main/java/com/ywt/mg/web/controllers/hospital/HospDepositController.java
  19. 46 0
      src/main/java/com/ywt/mg/web/controllers/hospital/HospMealOrderController.java
  20. 24 0
      src/main/java/com/ywt/mg/web/controllers/hospital/HospNatOrderController.java
  21. 23 0
      src/main/java/com/ywt/mg/web/controllers/hospital/HospOutpatientOrderController.java
  22. 31 0
      src/main/java/com/ywt/mg/web/controllers/hospital/HospRegisteredOrderController.java

+ 2 - 2
src/main/java/com/ywt/mg/services/DownloadRecordService.java

@@ -246,8 +246,8 @@ public class DownloadRecordService {
         }
         int status = Checker.getIntegerValue(request.getStatus());
         if(status == 1){
-            whereSql += " and ( status = ?)";
-            paramList.add(status);
+//            whereSql += " and ( status = ?)";
+//            paramList.add(status);
         } else {
             whereSql += " and ( status = 0 or status = 1)";
         }

+ 2 - 0
src/main/java/com/ywt/mg/services/MealOrderService.java

@@ -51,6 +51,8 @@ public class MealOrderService {
     private RefundLogService refundLogService;
 
 
+
+
     //客户端类型:商家 PC 端
     public static final int CLIENT_PC_MERCHANT = 1;
     //客户端类型:管理后台

+ 101 - 7
src/main/java/com/ywt/mg/services/NatOrderService.java

@@ -1,17 +1,13 @@
 package com.ywt.mg.services;
 
 import com.ywt.mg.core.SqlHelper;
-import com.ywt.mg.core.utils.Checker;
-import com.ywt.mg.core.utils.FormatUtil;
-import com.ywt.mg.core.utils.IdCardUtil;
+import com.ywt.mg.core.utils.*;
 import com.ywt.mg.domain.entities.NatOrder;
 import com.ywt.mg.domain.entities.OrderPayment;
+import com.ywt.mg.domain.entities.RefundLog;
 import com.ywt.mg.domain.models.ConstantDef;
 import com.ywt.mg.domain.models.ExcelDataMap;
-import com.ywt.mg.domain.models.enums.DatePeriodEnum;
-import com.ywt.mg.domain.models.enums.NatOrderStatusEnum;
-import com.ywt.mg.domain.models.enums.PaymentStatusEnum;
-import com.ywt.mg.domain.models.enums.RefundStatusEnum;
+import com.ywt.mg.domain.models.enums.*;
 import com.ywt.mg.domain.models.pojo.ExcelCollectPojo;
 import com.ywt.mg.params.deposit.QueryDepositListRequest;
 import com.ywt.mg.params.natOrder.NatOrderListRequest;
@@ -25,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class NatOrderService {
@@ -49,6 +46,9 @@ public class NatOrderService {
     @Autowired
     private DownloadRecordService downloadRecordService;
 
+    @Autowired
+    private RefundLogService refundLogService;
+
 
     public List<NatOrder> queryNatOrderList(NatOrderListRequest request) throws Exception {
         Map<String, Object> map = queryNatOrderListCommon(request);
@@ -233,4 +233,98 @@ public class NatOrderService {
         customExcelItemList.add(new ExcelCollectPojo(startColumn + 1, startRows + 3, new String[]{"实际支付金额", FormatUtil.intShrink100ToStr(payTotal - refundTotal)}));
         return customExcelItemList;
     }
+
+    public void downloadNatOrderBillList(int downloadRecordId, String fileName, NatOrderListRequest request) {
+        try {
+            String col0 = "交易类型*";
+            String col1 = "系统参考号*";
+            String col2 = "交易金额*";
+            String col3 = "交易日期*";
+            String col4 = "订单号";
+            String col5 = "类型";
+            String[] columns = new String[]{col0, col1, col2, col3, col4, col5};
+            List<NatOrder> natOrderList = queryNatOrderList(request);
+            ExcelDataMap map = new ExcelDataMap(columns);
+            if(!Checker.isNone(natOrderList)){
+                List<OrderPayment> orderPaymentList = orderPaymentService.getOrderPaymentListByNatOrderList(natOrderList);
+                // 得到退款的记录日志(需要从 refund_log 获取 refund_id 字段)
+                List<RefundLog> refundLogList = refundLogService.getRefundLogListByNatOrderList(natOrderList);
+                List<NatOrder> refundNatOrderList = getRefundNatOrderList(natOrderList);
+                Date billStartTime = DateUtil.stringToDate(request.getBillStartTime() + ConstantDef.BILL_TIME_START_FORMAT);
+                Date billEndTime = DateUtil.stringToDate(request.getBillEndTime() + ConstantDef.BILL_TIME_END_FORMAT);
+                for (NatOrder p : natOrderList) {
+                    if (!Checker.isNone(p) && Checker.getIntegerValue(p.getPaymentStatus()) == PaymentStatusEnum.Success.getValue()
+                            && Checker.getIntegerValue(p.getPaymentChannel()) == PaymentChannelEnum.WeChat.getValue()
+                            && Checker.getIntegerValue(p.getAmount()) > 0
+                            && !Checker.isNone(p.getPayTime())) {
+                        // "交易类型*", "系统参考号*", "交易金额*", "交易日期*", "订单号", "类型"
+                        Date paymentTime = Checker.getDateValue(p.getPayTime());
+                        if (!Checker.isNone(paymentTime) && paymentTime.after(billStartTime) && paymentTime.before(billEndTime)) {
+                            String type = ConstantDef.BILL_PAYMENT_STR;
+                            // 交易流水号
+                            String transactionId = orderPaymentService.getTransactionIdByOrderId(orderPaymentList, Checker.getIntegerValue(p.getOrderId()));
+                            // 交易金额
+                            int total = Checker.getIntegerValue(p.getAmount());
+                            String totalStr = FormatUtil.intShrink100ToStr(total);
+                            // 交易时间
+                            String paymentTimeStr = FormatUtil.createTimeFormatDetail(p.getPayTime());
+                            // 订单号
+                            String orderNo = Checker.getStringValue(p.getOrderNo());
+                            // 类型
+                            String typeStr = "核酸检测缴费";
+
+                            map.getStringListSafely(col0).add(type);
+                            map.getStringListSafely(col1).add(transactionId);
+                            map.getStringListSafely(col2).add(totalStr);
+                            map.getStringListSafely(col3).add(paymentTimeStr);
+                            map.getStringListSafely(col4).add(orderNo);
+                            map.getStringListSafely(col5).add(typeStr);
+
+                        }
+                    }
+                }
+                for (NatOrder p : refundNatOrderList) {
+                    if (!Checker.isNone(p)
+                            && Checker.getIntegerValue(p.getRefundStatus()) == RefundStatusEnum.SUCCESS.getValue()
+                            && Checker.getIntegerValue(p.getAmount()) > 0) {
+                        // "交易类型*", "系统参考号*", "交易金额*", "交易日期*", "订单号", "类型"
+                        Date refundTime = Checker.getDateValue(p.getRefundTime());
+                        if (!Checker.isNone(refundTime) && refundTime.after(billStartTime) && refundTime.before(billEndTime)) {
+                            String type = ConstantDef.BILL_REFUND_STR;
+                            String transactionId = refundLogService.getRefundIdByRefundNo(refundLogList, p.getRefundNo());
+                            // 交易金额
+                            int total = Checker.getIntegerValue(p.getAmount());
+                            String totalStr = FormatUtil.intShrink100ToStr(total);
+                            // 交易时间
+                            String refundTimeStr = FormatUtil.createTimeFormatDetail(p.getRefundTime());
+                            // 订单号
+                            String orderNo = Checker.getStringValue(p.getOrderNo());
+                            // 类型
+                            String typeName = "核酸检测缴费";
+
+                            map.getStringListSafely(col0).add(type);
+                            map.getStringListSafely(col1).add(transactionId);
+                            map.getStringListSafely(col2).add(totalStr);
+                            map.getStringListSafely(col3).add(refundTimeStr);
+                            map.getStringListSafely(col4).add(orderNo);
+                            map.getStringListSafely(col5).add(typeName);
+
+                        }
+                    }
+                }
+            }
+            int size = natOrderList.size();
+            List<ExcelCollectPojo> itemList = new ArrayList<>();
+            downloadRecordService.createFileAndUploadOssAndSaveToDataBase(fileName, downloadRecordId, map, itemList);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private List<NatOrder> getRefundNatOrderList(List<NatOrder> list) {
+        if (!Checker.isNone(list)) {
+            return list.stream().filter(p -> Checker.getIntegerValue(p.getRefundStatus()) == RefundStatusEnum.SUCCESS.getValue()).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
 }

+ 3 - 0
src/main/java/com/ywt/mg/services/OfflineNewService.java

@@ -58,6 +58,9 @@ public class OfflineNewService {
     @Autowired
     private DownloadRecordService downloadRecordService;
 
+    @Autowired
+    private RefundLogService refundLogService;
+
 
     public List<OfflineConsultation> queryDownloadOfflineList(DownloadOfflineListNewRequest request) {
         Map map = queryOfflineListCommon(request);

+ 10 - 0
src/main/java/com/ywt/mg/services/OrderPaymentService.java

@@ -5,6 +5,7 @@ import com.ywt.mg.domain.entities.*;
 import com.ywt.mg.domain.mealEntities.UserMealOrderView;
 import com.ywt.mg.domain.models.enums.PaymentStatusEnum;
 import com.ywt.mg.domain.models.nutrimeal.MealOrderInfo;
+import com.ywt.mg.domain.ywtDrugEntities.PrescriptionInfo;
 import com.ywt.mg.params.deposit.DepositOrderInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -209,4 +210,13 @@ public class OrderPaymentService extends ServiceBase {
         List<String> paymentNos = list.stream().map(MealOrderInfo::getPaymentNo).collect(Collectors.toList());
         return getOrderPaymentListByPaymentNos(paymentNos);
     }
+
+    public List<OrderPayment> getOrderPaymentListByPrescriptionInfoList(List<PrescriptionInfo> prescriptionInfoList) {
+        if (Checker.isNone(prescriptionInfoList)) {
+            return new ArrayList<>();
+        }
+        prescriptionInfoList = prescriptionInfoList.stream().filter(p -> Checker.getIntegerValue(p.getPaymentStatus()) == PaymentStatusEnum.Success.getValue()).collect(Collectors.toList());
+        List<Integer> orderIds = prescriptionInfoList.stream().map(PrescriptionInfo::getOrderId).collect(Collectors.toList());
+        return getOrderPaymentListByOrderIds(orderIds);
+    }
 }

+ 101 - 1
src/main/java/com/ywt/mg/services/PrescriptionServices.java

@@ -1,10 +1,11 @@
 package com.ywt.mg.services;
 
-import com.ywt.mg.core.PagedList;
 import com.ywt.mg.core.utils.Checker;
 import com.ywt.mg.core.utils.DateUtil;
+import com.ywt.mg.core.utils.ExcelHelper;
 import com.ywt.mg.core.utils.FormatUtil;
 import com.ywt.mg.domain.entities.OrderPayment;
+import com.ywt.mg.domain.entities.RefundLog;
 import com.ywt.mg.domain.models.ConstantDef;
 import com.ywt.mg.domain.models.ExcelDataMap;
 import com.ywt.mg.domain.models.enums.*;
@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class PrescriptionServices {
@@ -44,6 +46,8 @@ public class PrescriptionServices {
     @Autowired
     private DownloadRecordService downloadRecordService;
 
+    @Autowired
+    private RefundLogService refundLogService;
 
     /**
      * 根据条件查询用药记录
@@ -866,4 +870,100 @@ public class PrescriptionServices {
         }
     }
 
+    public void downloadPrescriptionBillList(int downloadRecordId, String fileName, QueryPrescriptionListRequest request) {
+        try {
+            String col0 = "交易类型*";
+            String col1 = "系统参考号*";
+            String col2 = "交易金额*";
+            String col3 = "交易日期*";
+            String col4 = "订单号";
+            String col5 = "类型";
+            String[] columns = new String[]{col0, col1, col2, col3, col4, col5};
+            request.setPaymentStatus(PaymentStatusEnum.Success.getValue() + "");
+            request.setPaymentChannel(PaymentChannelEnum.WeChat.getValue() + "");
+            List<PrescriptionInfo> prescriptionInfoList = downloadPrescriptionlistNew(request);
+            ExcelDataMap map = new ExcelDataMap(columns);
+            if (!Checker.isNone(prescriptionInfoList)) {
+                // 得到支付的记录日志(需要从 order_payment 获取 transaction_id 字段)
+                List<OrderPayment> orderPaymentList = orderPaymentService.getOrderPaymentListByPrescriptionInfoList(prescriptionInfoList);
+                // 得到退款的记录日志(需要从 refund_log 获取 refund_id 字段)
+                Date billStartTime = DateUtil.stringToDate(request.getBillStartTime() + ConstantDef.BILL_TIME_START_FORMAT);
+                Date billEndTime = DateUtil.stringToDate(request.getBillEndTime() + ConstantDef.BILL_TIME_END_FORMAT);
+                for (PrescriptionInfo p : prescriptionInfoList) {
+                    if (!Checker.isNone(p) && Checker.getIntegerValue(p.getPaymentStatus()) == PaymentStatusEnum.Success.getValue()
+                            && Checker.getIntegerValue(p.getPaymentChannel()) == PaymentChannelEnum.WeChat.getValue()
+                            && !Checker.isNone(p.getPayTime())) {
+                        // "交易类型", "交易流水号", "交易金额", "交易时间", "订单号", "类型"
+                        Date paymentTime = Checker.getDateValue(p.getPayTime());
+                        if (!Checker.isNone(paymentTime) && paymentTime.after(billStartTime) && paymentTime.before(billEndTime)) {
+                            String type = ConstantDef.BILL_PAYMENT_STR;
+                            // 交易流水号
+                            String transactionId = orderPaymentService.getTransactionIdByOrderId(orderPaymentList, Checker.getIntegerValue(p.getOrderId()));
+                            // 交易金额
+                            int total = Checker.getIntegerValue(p.getTotalPrice()) + Checker.getIntegerValue(p.getFreight());
+                            String totalStr = FormatUtil.intShrink100ToStr(total);
+                            // 交易时间
+                            String paymentTimeStr = FormatUtil.createTimeFormatDetail(p.getPayTime());
+                            // 订单号
+                            String orderNo = Checker.getStringValue(p.getOrderNo());
+                            // 类型
+                            String typeStr = "处方";
+
+                            map.getStringListSafely(col0).add(type);
+                            map.getStringListSafely(col1).add(transactionId);
+                            map.getStringListSafely(col2).add(totalStr);
+                            map.getStringListSafely(col3).add(paymentTimeStr);
+                            map.getStringListSafely(col4).add(orderNo);
+                            map.getStringListSafely(col5).add(typeStr);
+                        }
+                    }
+                }
+                List<RefundLog> refundLogList = refundLogService.getRefundLogListByPrescriptionInfoList(prescriptionInfoList);
+                // 得到支付的excel
+                // 得到退款的处方订单
+                List<PrescriptionInfo> refundPrescriptionInfoList = getRefundPrescriptionInfoList(prescriptionInfoList);
+                // 最后处理退款的部分
+                for (PrescriptionInfo p : prescriptionInfoList) {
+                    if (!Checker.isNone(p) && Checker.getIntegerValue(p.getRefundStatus()) == RefundStatusEnum.SUCCESS.getValue()) {
+                        // "交易类型", "交易流水号", "交易金额", "交易时间", "订单号", "类型"
+                        Date refundTime = Checker.getDateValue(p.getRefundTime());
+                        if (!Checker.isNone(refundTime) && refundTime.after(billStartTime) && refundTime.before(billEndTime)) {
+                            String type = ConstantDef.BILL_REFUND_STR;
+                            String transactionId = refundLogService.getRefundIdByRefundNo(refundLogList, p.getRefundNo());
+                            // 交易金额
+                            int total = Checker.getIntegerValue(p.getTotalPrice()) + Checker.getIntegerValue(p.getFreight());
+                            String totalStr = FormatUtil.intShrink100ToStr(total);
+                            // 交易时间
+                            String refundTimeStr = FormatUtil.createTimeFormatDetail(p.getRefundTime());
+                            // 订单号
+                            String orderNo = Checker.getStringValue(p.getOrderNo());
+                            // 类型
+                            String typeName = "处方";
+
+
+                            map.getStringListSafely(col0).add(type);
+                            map.getStringListSafely(col1).add(transactionId);
+                            map.getStringListSafely(col2).add(totalStr);
+                            map.getStringListSafely(col3).add(refundTimeStr);
+                            map.getStringListSafely(col4).add(orderNo);
+                            map.getStringListSafely(col5).add(typeName);
+                        }
+                    }
+                }
+            }
+            int size = prescriptionInfoList.size();
+            List<ExcelCollectPojo> itemList = new ArrayList<>();
+            downloadRecordService.createFileAndUploadOssAndSaveToDataBase(fileName, downloadRecordId, map, itemList);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private List<PrescriptionInfo> getRefundPrescriptionInfoList(List<PrescriptionInfo> items) {
+        if (!Checker.isNone(items)) {
+            return items.stream().filter(p -> Checker.getIntegerValue(p.getRefundStatus()) == RefundStatusEnum.SUCCESS.getValue()).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
+
 }

+ 10 - 0
src/main/java/com/ywt/mg/services/RefundLogService.java

@@ -4,6 +4,7 @@ import com.ywt.mg.core.utils.Checker;
 import com.ywt.mg.domain.entities.*;
 import com.ywt.mg.domain.models.enums.RefundStatusEnum;
 import com.ywt.mg.domain.models.nutrimeal.MealOrderInfo;
+import com.ywt.mg.domain.ywtDrugEntities.PrescriptionInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -145,4 +146,13 @@ public class RefundLogService extends ServiceBase {
         }
         return "";
     }
+
+    public List<RefundLog> getRefundLogListByPrescriptionInfoList(List<PrescriptionInfo> prescriptionInfoList) {
+        if (Checker.isNone(prescriptionInfoList)) {
+            return new ArrayList<>();
+        }
+        prescriptionInfoList = prescriptionInfoList.stream().filter(p -> Checker.getIntegerValue(p.getRefundStatus()) == RefundStatusEnum.SUCCESS.getValue() && !Checker.isNone(p.getRefundNo())).collect(Collectors.toList());
+        List<String> refundNos = prescriptionInfoList.stream().map(PrescriptionInfo::getRefundNo).collect(Collectors.toList());
+        return getRefundLogListByRefundNos(refundNos);
+    }
 }

+ 39 - 1
src/main/java/com/ywt/mg/services/RegisteredOrderService.java

@@ -3,6 +3,7 @@ package com.ywt.mg.services;
 import com.ywt.mg.core.SqlHelper;
 import com.ywt.mg.core.utils.Checker;
 import com.ywt.mg.core.utils.DateUtil;
+import com.ywt.mg.core.utils.ExcelHelper;
 import com.ywt.mg.core.utils.FormatUtil;
 import com.ywt.mg.domain.entities.*;
 import com.ywt.mg.domain.models.ConstantDef;
@@ -19,6 +20,7 @@ import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class RegisteredOrderService {
@@ -572,7 +574,7 @@ public class RegisteredOrderService {
                 List<OrderPayment> orderPaymentList = orderPaymentService.getOrderPaymentListByRegisteredOrderList(registeredOrderList);
                 // 得到退款的记录日志(需要从 refund_log 获取 refund_id 字段)
                 List<RefundLog> refundLogList = refundLogService.getRefundLogListByRegisteredOrderList(registeredOrderList);
-
+                List<RegisteredOrder> refundRegisteredOrderList = new ArrayList<>(getRefundRegisteredOrderList(registeredOrderList));
                 Date billStartTime = DateUtil.stringToDate(request.getBillStartTime() + ConstantDef.BILL_TIME_START_FORMAT);
                 Date billEndTime = DateUtil.stringToDate(request.getBillEndTime() + ConstantDef.BILL_TIME_END_FORMAT);
                 for (RegisteredOrder p : registeredOrderList) {
@@ -607,6 +609,35 @@ public class RegisteredOrderService {
                         }
                     }
                 }
+                for (RegisteredOrder p : refundRegisteredOrderList) {
+                    if (!Checker.isNone(p) && Checker.getIntegerValue(p.getRefundStatus()) == RefundStatusEnum.SUCCESS.getValue()) {
+                        // "交易类型*", "系统参考号*", "交易金额*", "交易日期*", "订单号", "类型"
+                        Date refundTime = Checker.getDateValue(p.getRefundTime());
+                        if (!Checker.isNone(refundTime) && refundTime.after(billStartTime) && refundTime.before(billEndTime)) {
+                            String type = ConstantDef.BILL_REFUND_STR;
+                            // 交易流水号
+                            String transactionId = refundLogService.getRefundIdByRefundNo(refundLogList, p.getRefundNo());
+                            // 交易金额
+                            String totalStr = FormatUtil.intShrink100ToStr(p.getTotal());
+                            // 交易时间
+                            String refundTimeStr = FormatUtil.createTimeFormatDetail(p.getRefundTime());
+                            // 订单号
+                            String orderNo = Checker.getStringValue(p.getOrderNo());
+                            // 类型
+                            int typeInt = Checker.getIntegerValue(p.getRegisteredType());
+                            String typeName = RegisteredTypeEnum.valueOf(typeInt).getDisplayName();
+                            map.getStringListSafely(col0).add(type);
+                            map.getStringListSafely(col1).add(transactionId);
+                            map.getStringListSafely(col2).add(totalStr);
+                            map.getStringListSafely(col3).add(refundTimeStr);
+                            map.getStringListSafely(col4).add(orderNo);
+                            map.getStringListSafely(col5).add(typeName);
+
+
+                        }
+                    }
+                }
+
             }
             List<ExcelCollectPojo> itemList = new ArrayList<>();
             downloadRecordService.createFileAndUploadOssAndSaveToDataBase(fileName, downloadRecordId, map, itemList);
@@ -616,4 +647,11 @@ public class RegisteredOrderService {
             e.printStackTrace();
         }
     }
+
+    private List<RegisteredOrder> getRefundRegisteredOrderList(List<RegisteredOrder> items) {
+        if (!Checker.isNone(items)) {
+            return items.stream().filter(p -> Checker.getIntegerValue(p.getRefundStatus()) == RefundStatusEnum.SUCCESS.getValue()).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
 }

+ 1 - 1
src/main/java/com/ywt/mg/web/controllers/CheckUpOrderController.java

@@ -74,7 +74,7 @@ public class CheckUpOrderController {
 //        request.setCurrentAdminId(currentAdminId);
         // 插入记录
         int downloadRecordId = idGenerator.genDownloadRecordId();
-        String name = "公司后台-订单管理-住院押金";
+        String name = "体检缴费";
         String fileName = "体检缴费对账数据";
         String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
         String paramUrl = "/checkUp/downloadCheckUpOrderBillList";

+ 2 - 8
src/main/java/com/ywt/mg/web/controllers/DepositController.java

@@ -73,15 +73,9 @@ public class DepositController {
     @RequestMapping({"/downloadDepositBillList"})
     public BaseResponse downloadDepositBillList(QueryDepositListRequest request) {
         int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
-//        request.setCurrentAdminId(currentAdminId);
-        // 插入记录
-        int hospital = 0;
-        if(request.getHospitalId() > 0){
-            hospital = authService.getCurrentHospitalId();
-            request.setHospitalId(hospital);
-        }
+//
         int downloadRecordId = idGenerator.genDownloadRecordId();
-        String name = "公司后台-订单管理-住院押金对账数据";
+        String name = "住院押金对账数据";
         String fileName = "住院押金对账列表";
         String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
         String paramUrl = "/deposit/downloadDepositBillList";

+ 3 - 8
src/main/java/com/ywt/mg/web/controllers/MealOrderController.java

@@ -104,15 +104,10 @@ public class MealOrderController {
     public BaseResponse downloadMealOrderBillList(MealOrderListRequest request) {
 //        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
 //        request.setCurrentAdminId(currentAdminId);
-        // 插入记录
-        int hospital = 0;
-        if(request.getHospitalId() > 0){
-            hospital = authService.getCurrentHospitalId();
-            request.setHospitalId(hospital);
-        }
+
         int downloadRecordId = idGenerator.genDownloadRecordId();
-        String name = "公司后台-订单管理-订餐订单列表列表";
-        String fileName = "订餐订单列表";
+        String name = "订餐订单对账数据";
+        String fileName = "订餐订单对账数据";
         String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
         String paramUrl = "/mealOrder/downloadMealOrderBillList";
         String paramJson = JsonSerializer.toJson(request);

+ 25 - 0
src/main/java/com/ywt/mg/web/controllers/NatOrderController.java

@@ -15,6 +15,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 
@@ -63,4 +64,28 @@ public class NatOrderController {
         return new BaseResponse().succeed("后台下载中...");
     }
 
+    @RequestMapping(value = {"/downloadNatOrderBillList"})
+    public BaseResponse downloadNatOrderBillList(@RequestBody NatOrderListRequest request) {
+        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+//        request.setCurrentAdminId(currentAdminId);
+        // 插入记录
+
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "核酸检测缴费对账数据";
+        String fileName = "核酸检测缴费对账数据";
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "/natOrder/downloadNatOrderList";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                natOrderService.downloadNatOrderBillList(downloadRecordId, fileName, request);
+//
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
+
 }

+ 2 - 0
src/main/java/com/ywt/mg/web/controllers/OfflineController.java

@@ -70,6 +70,8 @@ public class OfflineController {
     @Autowired
     private DownloadRecordService downloadRecordService;
 
+
+
     /**
      * 查询线下就诊列表
      *

+ 1 - 1
src/main/java/com/ywt/mg/web/controllers/OutpatientOrderController.java

@@ -77,7 +77,7 @@ public class OutpatientOrderController {
 //        }
 
         int downloadRecordId = idGenerator.genDownloadRecordId();
-        String name = "公司后台-订单管理-门诊缴费对账记录";
+        String name = "门诊缴费对账记录";
         String fileName = "门诊缴费对账记录";
         String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
         String paramUrl = "/outpatient/downloadOutPatientOrderBillList";

+ 36 - 0
src/main/java/com/ywt/mg/web/controllers/PrescriptionController.java

@@ -4,6 +4,7 @@ import com.ywt.mg.core.MGRight;
 import com.ywt.mg.core.utils.Checker;
 import com.ywt.mg.core.utils.serializers.JsonSerializer;
 import com.ywt.mg.domain.models.ConstantDef;
+import com.ywt.mg.domain.models.enums.DeliveryMethodEnum;
 import com.ywt.mg.params.natOrder.NatOrderListRequest;
 import com.ywt.mg.params.prescription.QueryPrescriptionListRequest;
 import com.ywt.mg.services.*;
@@ -90,4 +91,39 @@ public class PrescriptionController {
         return new BaseResponse().succeed("后台下载中...");
     }
 
+    @RequestMapping({"/downloadPrescriptionBillList"})
+    public BaseResponse downloadPrescriptionBillList(@RequestBody QueryPrescriptionListRequest request) {
+        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+//        request.setCurrentAdminId(currentAdminId);
+        // 插入记录
+        int  hospital = authService.getCurrentHospitalId();
+//        request.setHospitalId(hospital);
+//        if(request.getHosp() > 0){
+//            hospital = authService.getCurrentHospitalId();
+//            request.setHospitalId(hospital);
+//        }
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "处方列表对账数据";
+        String fileName = "处方列表对账数据";
+        if (!Checker.isNone(request.getDeliveryMethod()) && Integer.parseInt(request.getDeliveryMethod()) == DeliveryMethodEnum.HomeDelivery.getValue()) {
+            name = "处方运费订单对账数据";
+            fileName = "处方运费订单对账数据";
+        }
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "/prescription/downloadPrescriptionlist";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        String finalFileName = fileName;
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                prescriptionServices.downloadPrescriptionlist(downloadRecordId, finalFileName, request);
+//
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
+
+
 }

+ 1 - 1
src/main/java/com/ywt/mg/web/controllers/RegisteredOrderController.java

@@ -76,7 +76,7 @@ public class RegisteredOrderController {
 //            request.setHospitalId(hospital);
 //        }
         int downloadRecordId = idGenerator.genDownloadRecordId();
-        String name = "公司后台-订单管理-挂号订单对账数据";
+        String name = "挂号订单对账数据";
         String fileName = "挂号订单对账数据";
         String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
         String paramUrl = "/registeredOrder/downloadRegisteredOrderBillsList";

+ 28 - 0
src/main/java/com/ywt/mg/web/controllers/hospital/HospCheckUpOrderController.java

@@ -66,4 +66,32 @@ public class HospCheckUpOrderController {
         return new BaseResponse().succeed("后台下载中...");
     }
 
+    @RequestMapping({"/downloadCheckUpOrderBillList"})
+    public BaseResponse downloadCheckUpOrderBillList(QueryCheckUpOrderListRequest request) {
+        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+//        request.setCurrentAdminId(currentAdminId);
+        // 插入记录
+        Integer hospital = 0;
+        String hosp = "";
+//        if(request.getHosp()> 0){
+        hospital = authService.getCurrentHospitalId();
+        hosp = hospital.toString();
+        request.setHospitalId(hosp);
+        // 插入记录
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "体检缴费";
+        String fileName = "体检缴费对账数据";
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "/hosp/checkUp/downloadCheckUpOrderBillList";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                checkUpOrderService.downloadOutPatientOrderBillListNew(downloadRecordId, fileName, request);
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
 }

+ 28 - 0
src/main/java/com/ywt/mg/web/controllers/hospital/HospDepositController.java

@@ -70,4 +70,32 @@ public class HospDepositController {
         t.start();
         return new BaseResponse().succeed("后台下载中...");
     }
+
+    @RequestMapping({"/downloadDepositBillList"})
+    public BaseResponse downloadDepositBillList(QueryDepositListRequest request) {
+        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+//
+        int  hospital = authService.getCurrentHospitalId();
+        request.setHospitalId(hospital);
+//        if(request.getHosp() > 0){
+//            hospital = authService.getCurrentHospitalId();
+//            request.setHospitalId(hospital);
+//        }
+        request.setHosp(1);
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "住院押金对账数据";
+        String fileName = "住院押金对账列表";
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "/hosp/deposit/downloadDepositBillList";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                depositService.downloadDepositBillList(downloadRecordId, fileName, request);
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
 }

+ 46 - 0
src/main/java/com/ywt/mg/web/controllers/hospital/HospMealOrderController.java

@@ -99,4 +99,50 @@ public class HospMealOrderController {
             throw new AppMessageException(String.format("参数有误:%s", isStaff));
         }
     }
+
+    @RequestMapping({"/downloadMealOrderBillList"})
+    public BaseResponse downloadMealOrderBillList(MealOrderListRequest request) {
+//        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+//        request.setCurrentAdminId(currentAdminId);
+        // 插入记录
+        int hospital = authService.getCurrentHospitalId();
+        request.setHospitalId(hospital);
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "订餐订单对账数据";
+        String fileName = "订餐订单对账数据";
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "/hosp/mealOrder/downloadMealOrderBillList";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                int adminId = 0;
+//                String shopIds = "";
+//                if (request.getHospitalId() > 0) {
+//                    adminId = authService.getCurrentAdminId();
+//                    shopIds = mgAdminService.getNutrimealShopIdsByAdminId(adminId);
+//                }
+
+                try {
+
+                    String shopIds = "0";
+                    if (!Checker.isNone(request.getShopIds())) {
+                        shopIds = URLDecoder.decode(request.getShopIds(), "UTF-8");
+                    }
+                    request.setShopIds(shopIds);
+                    mealOrderService.downloadMealOrderListNew(downloadRecordId, fileName, request);
+                } catch (Exception e) {
+                    logger.error("MealOrderController#downloadMealOrderList(orderNo={} , name={} , mobile={} , type={} , " +
+                                    "status={} , payStatus={} , payTimeStart={} , payTimeEnd={} , httpServletResponse={} ):\n {}",
+                            request.getOrderNo(), name, request.getMobile(), request.getType(), request.getStatus(), request.getPayStatus(), request.getPayTimeStart(),
+                            request.getPayTimeEnd(), e.getMessage(), e);
+                    e.printStackTrace();
+                }
+
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
 }

+ 24 - 0
src/main/java/com/ywt/mg/web/controllers/hospital/HospNatOrderController.java

@@ -66,4 +66,28 @@ public class HospNatOrderController {
         t.start();
         return new BaseResponse().succeed("后台下载中...");
     }
+
+    @RequestMapping(value = {"/downloadNatOrderBillList"})
+    public BaseResponse downloadNatOrderBillList(@RequestBody NatOrderListRequest request) {
+        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+//        request.setCurrentAdminId(currentAdminId);
+        // 插入记录
+
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "核酸检测缴费对账数据";
+        String fileName = "核酸检测缴费对账数据";
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "hosp/natOrder/downloadNatOrderList";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                natOrderService.downloadNatOrderBillList(downloadRecordId, fileName, request);
+//
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
 }

+ 23 - 0
src/main/java/com/ywt/mg/web/controllers/hospital/HospOutpatientOrderController.java

@@ -62,4 +62,27 @@ public class HospOutpatientOrderController {
         t.start();
         return new BaseResponse().succeed("后台下载中...");
     }
+
+    @RequestMapping({"/downloadOutPatientOrderBillList"})
+    public BaseResponse downloadOutPatientOrderBillList(QueryOutPatientOrderListRequest request) {
+        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+        int hospital = authService.getCurrentHospitalId();
+        request.setHospitalId(hospital);
+
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "门诊缴费对账记录";
+        String fileName = "门诊缴费对账记录";
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "/hosp/outpatient/downloadOutPatientOrderBillList";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                outpatientOrderService.downloadOutPatientOrderBillListNew(downloadRecordId, fileName, request, currentAdminId);
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
 }

+ 31 - 0
src/main/java/com/ywt/mg/web/controllers/hospital/HospRegisteredOrderController.java

@@ -66,4 +66,35 @@ public class HospRegisteredOrderController {
         t.start();
         return new BaseResponse().succeed("后台下载中...");
     }
+
+    @RequestMapping({"/downloadRegisteredOrderBillsList"})
+    public BaseResponse downloadRegisteredOrderBillsList(RegisteredOrderListRequest request) {
+//        int currentAdminId = Checker.getIntegerValue(authService.getCurrentAdminId());
+//        request.setCurrentAdminId(currentAdminId);
+        // 插入记录
+//        int hospital = 0;
+//        if(request.getHosp() > 0){
+//            hospital = authService.getCurrentHospitalId();
+//            request.setHospitalId(hospital);
+//        }
+        int  hospital = authService.getCurrentHospitalId();
+
+        request.setHospitalId(hospital);
+        request.setHosp(1);
+        int downloadRecordId = idGenerator.genDownloadRecordId();
+        String name = "挂号订单对账数据";
+        String fileName = "挂号订单对账数据";
+        String excelSuffixFormat = ConstantDef.EXCEL_SUFFIX_FORMAT;
+        String paramUrl = "/hosp/registeredOrder/downloadRegisteredOrderBillsList";
+        String paramJson = JsonSerializer.toJson(request);
+        downloadRecordService.getOrInsertDownloadRecord(downloadRecordId, name, fileName + excelSuffixFormat, paramUrl, paramJson);
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                registeredOrderService.downloadRegisteredOrderBillsList(downloadRecordId, fileName, request);
+            }
+        };
+        t.start();
+        return new BaseResponse().succeed("后台下载中...");
+    }
 }