Parcourir la source

fix:“修复订单分析月年汇总不同步问题"

soobin il y a 7 mois
Parent
commit
4d3b024a28

+ 75 - 0
src/main/java/com/szwl/controller/EsController.java

@@ -9,6 +9,7 @@ import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.TCoinOrder;
 import com.szwl.model.entity.TOrder;
+import com.szwl.model.query.StatisticsParam;
 import com.szwl.model.query.TCoinOrderParam;
 import com.szwl.model.query.TOrderParam;
 import com.szwl.service.TCoinOrderService;
@@ -23,6 +24,8 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 
 @Slf4j
@@ -186,4 +189,76 @@ public class EsController {
         }
         return R.ok();
     }
+
+    @ApiOperation("同步月汇总数据")
+    @GetMapping("/saveEsTOrderMonth")
+    public ResponseModel<?> saveEsTOrderMonth() {
+        // 参数
+        StatisticsParam param = new StatisticsParam();
+        // 获取昨天的时间
+        LocalDate yesterday = LocalDate.now().minusDays(1);
+
+        // 创建DateTimeFormatter对象,用于格式化成 "yyyy-MM"
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+
+        // 格式化并输出昨天的日期
+        String statisticsDate = yesterday.format(formatter);
+        param.setStartDate(statisticsDate + "-01 00:00:00");
+        param.setEndDate(statisticsDate + "-31 23:59:59");
+        // 按月统计
+        param.setDateType("0");
+        param.setSize(5000);
+        try {
+            // 同步国内,按商户统计
+            param.setIfForeign("0");
+            param.setPacketType("0");
+            esTOrderService.getSummaryStatistics(param);
+            // 同步国内,按设备统计
+            param.setPacketType("1");
+            esTOrderService.getSummaryStatistics(param);
+            // 同步国外,按商户统计
+            param.setIfForeign("1");
+            param.setPacketType("0");
+            esTOrderService.getSummaryStatistics(param);
+            // 同步国外,按设备统计
+            param.setPacketType("1");
+            esTOrderService.getSummaryStatistics(param);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation("同步年汇总数据")
+    @GetMapping("/saveEsTOrderYear")
+    public ResponseModel<?> saveEsTOrderYear() {
+        // 参数
+        StatisticsParam param = new StatisticsParam();
+        // 获取昨天的时间
+        LocalDate yesterday = LocalDate.now().minusDays(1);
+        String year = yesterday.format(DateTimeFormatter.ofPattern("yyyy"));
+        param.setStartDate(year + "-01-01 00:00:00");
+        param.setEndDate(year + "-12-31 23:59:59");
+        param.setDateType("1");
+        param.setSize(5000);
+        try {
+            // 同步国内,按商户统计
+            param.setIfForeign("0");
+            param.setPacketType("0");
+            esTOrderService.getSummaryStatistics(param);
+            // 同步国内,按设备统计
+            param.setPacketType("1");
+            esTOrderService.getSummaryStatistics(param);
+            // 同步国外,按商户统计
+            param.setIfForeign("1");
+            param.setPacketType("0");
+            esTOrderService.getSummaryStatistics(param);
+            // 同步国外,按设备统计
+            param.setPacketType("1");
+            esTOrderService.getSummaryStatistics(param);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
 }

+ 4 - 0
src/main/java/com/szwl/feign/SzwlFeign.java

@@ -100,4 +100,8 @@ public interface SzwlFeign {
     @ApiOperation("获取国外地址")
     @GetMapping("/tArea/getForeignArea")
     ResponseModel<String> getForeignArea(@RequestParam Long id);
+
+    @ApiOperation("获取账号公司平台")
+    @GetMapping("/tAdmin/getCompanyTypeById")
+    ResponseModel<String> getCompanyTypeById(@RequestParam String adminId);
 }

+ 36 - 18
src/main/java/com/szwl/service/es/EsTOrderService.java

@@ -713,8 +713,13 @@ public class EsTOrderService extends EsBaseService<TOrder, TOrderParam> {
                         if (equipment == null) {
                             continue;
                         }
-                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(equipment.getAdminId())));
-                        if (admin == null) {
+//                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(equipment.getAdminId())));
+//                        if (admin == null) {
+//                            continue;
+//                        }
+                        Long adminId = equipment.getAdminId();
+                        String companyType = R.getDataIfSuccess(szwlFeign.getCompanyTypeById(String.valueOf(equipment.getAdminId())));
+                        if (StringUtils.isEmpty(companyType)) {
                             continue;
                         }
                         // 先查询是否已有数据
@@ -740,23 +745,27 @@ public class EsTOrderService extends EsBaseService<TOrder, TOrderParam> {
                         }
                         // 没有的话就插入数据
                         orderStatistics.setSalePrice(new BigDecimal(priceTotal).setScale(2, RoundingMode.HALF_UP));
-                        orderStatistics.setAdminId(admin.getId());
+                        orderStatistics.setAdminId(adminId);
                         orderStatistics.setEquipmentId(equipment.getId());
                         orderStatistics.setClientId(key);
                         orderStatistics.setSaleNum(saleNum);
                         orderStatistics.setOrderNum(Long.valueOf(docCount).intValue());
-                        orderStatistics.setCompanyType(admin.getCompanyType());
+                        orderStatistics.setCompanyType(companyType);
                         orderStatistics.setStatisticsDate(statisticsDate);
                         insertYearList.add(orderStatistics);
                     } else {
                         // 按商户分组
-                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(key));
-                        if (admin == null) {
+//                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(key));
+//                        if (admin == null) {
+//                            continue;
+//                        }
+                        String companyType = R.getDataIfSuccess(szwlFeign.getCompanyTypeById(key));
+                        if (StringUtils.isEmpty(companyType)) {
                             continue;
                         }
                         // 先查询是否已有数据
                         LambdaQueryWrapper<OrderStatisticsYear> query = Wrappers.lambdaQuery();
-                        query.eq(OrderStatisticsYear::getAdminId, admin.getId());
+                        query.eq(OrderStatisticsYear::getAdminId, key);
                         query.eq(OrderStatisticsYear::getStatisticsDate, statisticsDate);
                         query.eq(OrderStatisticsYear::getType, param.getPacketType());
                         query.eq(OrderStatisticsYear::getIfForeign, param.getIfForeign());
@@ -775,10 +784,10 @@ public class EsTOrderService extends EsBaseService<TOrder, TOrderParam> {
                             continue;
                         }
                         orderStatistics.setSalePrice(new BigDecimal(priceTotal).setScale(2, RoundingMode.HALF_UP));
-                        orderStatistics.setAdminId(admin.getId());
+                        orderStatistics.setAdminId(Long.valueOf(key));
                         orderStatistics.setSaleNum(saleNum);
                         orderStatistics.setOrderNum(Long.valueOf(docCount).intValue());
-                        orderStatistics.setCompanyType(admin.getCompanyType());
+                        orderStatistics.setCompanyType(companyType);
                         orderStatistics.setStatisticsDate(statisticsDate);
                         insertYearList.add(orderStatistics);
 
@@ -793,8 +802,13 @@ public class EsTOrderService extends EsBaseService<TOrder, TOrderParam> {
                         if (equipment == null) {
                             continue;
                         }
-                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(equipment.getAdminId())));
-                        if (admin == null) {
+//                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(equipment.getAdminId())));
+//                        if (admin == null) {
+//                            continue;
+//                        }
+                        Long adminId = equipment.getAdminId();
+                        String companyType = R.getDataIfSuccess(szwlFeign.getCompanyTypeById(String.valueOf(adminId)));
+                        if (StringUtils.isEmpty(companyType)) {
                             continue;
                         }
                         // 先查询是否已有数据
@@ -820,23 +834,27 @@ public class EsTOrderService extends EsBaseService<TOrder, TOrderParam> {
                         }
 
                         orderStatistics.setSalePrice(new BigDecimal(priceTotal).setScale(2, RoundingMode.HALF_UP));
-                        orderStatistics.setAdminId(admin.getId());
+                        orderStatistics.setAdminId(adminId);
                         orderStatistics.setEquipmentId(equipment.getId());
                         orderStatistics.setClientId(key);
                         orderStatistics.setSaleNum(saleNum);
                         orderStatistics.setOrderNum(Long.valueOf(docCount).intValue());
-                        orderStatistics.setCompanyType(admin.getCompanyType());
+                        orderStatistics.setCompanyType(companyType);
                         orderStatistics.setStatisticsDate(statisticsDate);
                         insertMonthList.add(orderStatistics);
                     } else {
                         // 按商户分组
-                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(key));
-                        if (admin == null) {
+//                        TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(key));
+//                        if (admin == null) {
+//                            continue;
+//                        }
+                        String companyType = R.getDataIfSuccess(szwlFeign.getCompanyTypeById(key));
+                        if (StringUtils.isEmpty(companyType)) {
                             continue;
                         }
                         // 先查询是否已有数据
                         LambdaQueryWrapper<OrderStatisticsMonth> query = Wrappers.lambdaQuery();
-                        query.eq(OrderStatisticsMonth::getAdminId, admin.getId());
+                        query.eq(OrderStatisticsMonth::getAdminId, key);
                         query.eq(OrderStatisticsMonth::getStatisticsDate, statisticsDate);
                         query.eq(OrderStatisticsMonth::getType, param.getPacketType());
                         query.eq(OrderStatisticsMonth::getIfForeign, param.getIfForeign());
@@ -855,10 +873,10 @@ public class EsTOrderService extends EsBaseService<TOrder, TOrderParam> {
                             continue;
                         }
                         orderStatistics.setSalePrice(new BigDecimal(priceTotal).setScale(2, RoundingMode.HALF_UP));
-                        orderStatistics.setAdminId(admin.getId());
+                        orderStatistics.setAdminId(Long.valueOf(key));
                         orderStatistics.setSaleNum(saleNum);
                         orderStatistics.setOrderNum(Long.valueOf(docCount).intValue());
-                        orderStatistics.setCompanyType(admin.getCompanyType());
+                        orderStatistics.setCompanyType(companyType);
                         orderStatistics.setStatisticsDate(statisticsDate);
                         insertMonthList.add(orderStatistics);
                     }