瀏覽代碼

xwh修改SystemFormat导入bug

xwh 4 年之前
父節點
當前提交
e513422b5a

+ 28 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -45,6 +45,7 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.Bidi;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -1332,7 +1333,7 @@ public class OrderController {
      * System Format 导出请求
      */
     @RequestMapping(value = "exportSystemFormat")
-    public R exportSystemFormat(@RequestParam Map<String, Object> params, HttpServletResponse response, HttpServletRequest request) {
+    public R exportSystemFormat(@RequestParam Map<String, Object> params, HttpServletResponse response, HttpServletRequest request) throws ParseException {
 
         ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         params = ParamUtils.setTimeMap(params);
@@ -1351,6 +1352,32 @@ public class OrderController {
         list.add(headerMap);
         if (systemFormatList != null && systemFormatList.size() > 0) {
             for (SystemFormatDto systemFormat : systemFormatList) {
+
+                // 如果有退款,获取销售时间的年月和退款时间的年月
+                if (StringUtils.isNotEmpty(systemFormat.getOutRefundNo())){
+                    Date saleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(systemFormat.getTimeStampDetails());
+                    Date refundDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(systemFormat.getRefundTime());
+                    Calendar saleC = Calendar.getInstance();
+                    saleC.setTime(saleDate);
+                    Calendar refundC = Calendar.getInstance();
+                    refundC.setTime(refundDate);
+                    int saleYear = saleC.get(Calendar.YEAR);// 销售的年
+                    int refundYear = refundC.get(Calendar.YEAR);// 退款的年
+                    int saleMonth = saleC.get(Calendar.MONTH);
+                    int refundMonth = refundC.get(Calendar.MONTH);
+
+                    // 如果是同一年并且销售时间是比退款时间少的话
+                    if (saleMonth<refundMonth && saleYear==refundYear){
+                        systemFormat.setOrderStatus(Dict.orderStatus.item_301.getItem());
+                    }
+                    if (saleYear!= refundYear){
+                        systemFormat.setOrderStatus(Dict.orderStatus.item_301.getItem());
+                    }
+
+
+                }
+
+
                 LinkedHashMap<String, Object> map = new LinkedHashMap<>(32);
                 if (Objects.nonNull(systemFormat.getTaxRate()) && Objects.nonNull(systemFormat.getTotalSalesInclTax())){
 

+ 19 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/SystemFormatDto.java

@@ -48,6 +48,25 @@ public class SystemFormatDto implements Serializable {
 
     private String taxPrice; // 税费
 
+    private String outRefundNo;//退款订单号
+
+    private String refundTime;//退款时间
+
+    public String getOutRefundNo() {
+        return outRefundNo;
+    }
+
+    public void setOutRefundNo(String outRefundNo) {
+        this.outRefundNo = outRefundNo;
+    }
+
+    public String getRefundTime() {
+        return refundTime;
+    }
+
+    public void setRefundTime(String refundTime) {
+        this.refundTime = refundTime;
+    }
 
     public String getOrderStatus() {
         return orderStatus;

+ 4 - 1
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -2067,7 +2067,9 @@
         '专柜单品' as productCategory,
         sup.child_supplier_name as supplierName,
         o.order_status as orderStatus,
-        g.tax_price as taxPrice
+        g.tax_price as taxPrice,
+        mor.out_refund_no as outRefundNo,
+        mor.create_time as refundTime
         FROM
         mall_order o
         LEFT JOIN mall_order_goods g ON o.id = g.order_id
@@ -2079,6 +2081,7 @@
         left join mall_product_store_rela sr on sr.goods_id=gs.id
         left join mall_brand b on b.id=sr.brand_id
         left join mall_supplier sup on gs.supplier_id = sup.id
+        left join mall_order_refund mor on mor.out_refund_no = o.order_sn
         WHERE 1=1
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')