Browse Source

解决BUG

wukai 3 tháng trước cách đây
mục cha
commit
3a9d73ba0b

+ 3 - 3
jjt-admin/src/main/resources/application-test1.yml → jjt-admin/src/main/resources/application-prod.yml

@@ -3,13 +3,13 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: localhost
+    host: 192.168.66.133
     # 端口,默认为6379
-    port: 36379
+    port: 6379
     # 数据库索引
     database: 0
     # 密码
-    password: redis@123
+    password: Twin@2024.
     # 连接超时时间
     timeout: 10s
     lettuce:

+ 3 - 3
jjt-admin/src/main/resources/application-test.yml

@@ -3,9 +3,9 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: 192.168.188.66
+    host: localhost
     # 端口,默认为6379
-    port: 6379
+    port: 36379
     # 数据库索引
     database: 0
     # 密码
@@ -28,7 +28,7 @@ spring:
     druid:
       # 主库数据源
       master:
-        url: jdbc:sqlserver://192.168.188.66:1433;DataBaseName=twin2025
+        url: jdbc:sqlserver://192.168.188.88:1433;DataBaseName=twin2025
         username: sa
         password: abcd@1234
       # 从库数据源

+ 9 - 9
jjt-admin/src/test/java/com/jjt/task/TaskTest.java

@@ -41,16 +41,16 @@ public class TaskTest {
     @Test
     public void last() {
 
-        String date = "2025-02-13";
+        String date = "2025-02-12";
         LocalDate localDate = LocalDate.parse(date);
-//        dayService.day(localDate);
-//        empCalcService.calc(DateUtils.toDate(localDate));
-        LocalDateTime ldt = LocalDateTime.of(localDate, LocalTime.MIN);
-        for (int i = 0; i < 2; i++) {
-            LocalDateTime tt = ldt.plusHours(i);
-            System.err.println(tt.toLocalDate().toString() + tt.getHour());
-            calcHourService.calc(tt.toLocalDate().toString(), tt.getHour());
-        }
+        dayService.day(localDate);
+        empCalcService.calc(DateUtils.toDate(localDate));
+//        LocalDateTime ldt = LocalDateTime.of(localDate, LocalTime.MIN);
+//        for (int i = 0; i < 2; i++) {
+//            LocalDateTime tt = ldt.plusHours(i);
+//            System.err.println(tt.toLocalDate().toString() + tt.getHour());
+//            calcHourService.calc(tt.toLocalDate().toString(), tt.getHour());
+//        }
 
 //        calcHourService.calc("2025-02-12", 1);
 

+ 11 - 3
jjt-biz/src/main/java/com/jjt/biz/controller/ApiProdExportController.java

@@ -1,11 +1,9 @@
 package com.jjt.biz.controller;
 
-import com.jjt.biz.service.ITwinDeviceService;
 import com.jjt.calc.domain.TwinCalcDay;
 import com.jjt.calc.service.ITwinCalcDayService;
-import com.jjt.calc.service.ITwinCalcStopService;
 import com.jjt.common.core.controller.BaseController;
-import com.jjt.common.core.redis.RedisCache;
+import com.jjt.common.core.domain.R;
 import com.jjt.common.utils.DateUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -94,4 +92,14 @@ public class ApiProdExportController extends BaseController {
         }
     }
 
+    @ApiOperation("导出产量数据")
+    @GetMapping("/api/view/production")
+    @CrossOrigin(origins = "*")
+    public R<List<TwinCalcDay>> productionView(String start) {
+        LocalDate localDate = LocalDate.parse(start);
+        Date sd = Date.from(localDate.atStartOfDay(ZoneOffset.of("+8")).toInstant());
+        List<TwinCalcDay> list = twinCalcDayService.selectTwinCalcDayListByTime(sd, sd);
+        return R.success(list);
+    }
+
 }

+ 4 - 6
jjt-biz/src/main/java/com/jjt/biz/controller/ApiProductivityExportController.java

@@ -12,9 +12,7 @@ import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.usermodel.XSSFCellStyle;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -46,7 +44,7 @@ public class ApiProductivityExportController extends BaseController {
     private ITwinEmpCalcService empCalcService;
 
     @ApiOperation("导出绩效日报")
-    @GetMapping("/api/export/productivity-day")
+    @RequestMapping("/api/export/productivity-day")
     @CrossOrigin(origins = "*")
     public void productivityDayExport(String date, HttpServletResponse response) {
         LocalDate localDate = LocalDate.parse(date);
@@ -100,7 +98,7 @@ public class ApiProductivityExportController extends BaseController {
     }
 
     @ApiOperation("导出绩效月报")
-    @GetMapping("/api/export/productivity-month")
+    @RequestMapping("/api/export/productivity-month")
     @CrossOrigin(origins = "*")
     public void productivityMonthExport(String date, HttpServletResponse response)  {
         date = date.substring(0, 7);
@@ -231,7 +229,7 @@ public class ApiProductivityExportController extends BaseController {
                     cells[0].setCellValue(name);
                     cells[1].setCellValue(calc.getDeviceId());
                     if (ssr == rowNum) {
-                        cells[2].setCellValue(calc.getEfficiency().setScale(2, RoundingMode.HALF_UP).doubleValue());
+                        cells[2].setCellValue(calc.getEfficiency().setScale(4, RoundingMode.HALF_UP).doubleValue());
                         cells[2].setCellStyle(percentStyle);
                         ef = ef.add(calc.getEfficiency());
                     }

+ 20 - 8
jjt-biz/src/main/java/com/jjt/biz/service/impl/ApiServiceImpl.java

@@ -8,6 +8,7 @@ import com.jjt.calc.domain.TwinCalcDay;
 import com.jjt.calc.domain.TwinFormulaInfo;
 import com.jjt.calc.domain.TwinPanHeadInfo;
 import com.jjt.calc.service.ITwinCalcDayService;
+import com.jjt.calc.service.ITwinCalcHourService;
 import com.jjt.calc.service.ITwinFormulaInfoService;
 import com.jjt.calc.service.ITwinPanHeadInfoService;
 import com.jjt.common.constant.CacheConstants;
@@ -16,6 +17,8 @@ import com.jjt.utils.AsyncService;
 import com.jjt.utils.IotService;
 import com.jjt.utils.Tools;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
@@ -42,6 +45,8 @@ public class ApiServiceImpl implements IApiService {
     @Resource
     private ITwinCalcDayService twinCalcDayService;
     @Resource
+    private ITwinCalcHourService twinCalcHourService;
+    @Resource
     private ITwinPanHeadInfoService panHeadInfoService;
     @Resource
     private ITwinDeviceService deviceService;
@@ -49,11 +54,12 @@ public class ApiServiceImpl implements IApiService {
     private IotService iotService;
     @Resource
     private AsyncService asyncService;
-
     @Resource
     private ITwinFormulaInfoService twinFormulaInfoService;
     @Resource
     private RedisCache redisCache;
+    @Resource
+    private Environment env;
 
     /**
      * 首页统计数据
@@ -337,12 +343,18 @@ public class ApiServiceImpl implements IApiService {
 
     @PostConstruct
     public void init() {
-//        String flag = "false";
-//        String bl = env.getProperty("data.bl");
-//        if (bl != null && flag.equals(bl)) {
-//            return;
-//        }
-//        curr();
-//        today();
+        String[] activeProfiles = env.getActiveProfiles();
+        System.err.println("================");
+        System.err.println("================");
+        System.err.println("================");
+        System.err.println("================");
+        System.err.println("================");
+        for (String profile : activeProfiles) {
+            System.err.println("Active Profile: " + profile);
+        }
+
+//        twinCalcHourService.calc2Curr();
+////        curr();
+////        today();
     }
 }

+ 6 - 0
jjt-biz/src/main/java/com/jjt/calc/service/ITwinCalcHourService.java

@@ -64,6 +64,12 @@ public interface ITwinCalcHourService {
      * 统计上一时段数据
      */
     public void last();
+
+    /**
+     * 从数据库最后一个时间段统计至上一个时段
+     */
+    public void calc2Curr();
+
     /**
      * 统计指定日期指定时段数据
      *

+ 33 - 0
jjt-biz/src/main/java/com/jjt/calc/service/impl/TwinCalcHourServiceImpl.java

@@ -5,8 +5,11 @@ import com.jjt.biz.service.ITwinDeviceService;
 import com.jjt.calc.domain.*;
 import com.jjt.calc.mapper.*;
 import com.jjt.calc.service.ITwinCalcAlarmsService;
+import com.jjt.calc.service.ITwinCalcDayService;
 import com.jjt.calc.service.ITwinCalcHourService;
 import com.jjt.calc.service.ITwinCalcStopService;
+import com.jjt.common.utils.DateUtils;
+import com.jjt.emp.service.ITwinEmpCalcService;
 import com.jjt.utils.AsyncService;
 import com.jjt.utils.Tools;
 import lombok.extern.slf4j.Slf4j;
@@ -46,6 +49,10 @@ public class TwinCalcHourServiceImpl implements ITwinCalcHourService {
     private ITwinCalcStopService stopService;
     @Resource
     private ITwinCalcAlarmsService alarmsService;
+    @Resource
+    private ITwinCalcDayService dayService;
+    @Resource
+    private ITwinEmpCalcService empCalcService;
 
     /**
      * 查询1小时统计数据
@@ -114,6 +121,32 @@ public class TwinCalcHourServiceImpl implements ITwinCalcHourService {
     }
 
     /**
+     * 从数据库最后一个时间段统计至当前的上一个偶数时间点
+     */
+    @Override
+    public void calc2Curr() {
+        TwinCalcHour lastHour = lastHour();
+        LocalDate localDate = DateUtils.toLocalDate(lastHour.getDataDate());
+        LocalDateTime start = LocalDateTime.of(localDate, LocalTime.MIN).plusHours(lastHour.getHour() + 1);
+        LocalDateTime end = start.plusHours(1);
+
+        LocalDateTime stop = Tools.currWholeTime();
+        while (!end.isAfter(stop)) {
+            start = start.minusSeconds(1);
+            calc4device(start, end);
+            log.info("补录数据===========start:{},end:{},stop:{}", start, end, stop);
+            if (end.getHour() == 7) {
+                //跨天,统计前一天的总数据
+                log.info("----------------{},{}", start, end);
+                dayService.day(start.toLocalDate().minusDays(1));
+                empCalcService.calc(DateUtils.toDate(localDate));
+            }
+            start = end;
+            end = end.plusHours(1);
+        }
+    }
+
+    /**
      * 统计指定日期指定时段数据
      *
      * @param date   指定日期 yyyy-mm-dd

+ 3 - 0
jjt-biz/src/main/java/com/jjt/emp/service/impl/TwinEmpCalcServiceImpl.java

@@ -164,6 +164,9 @@ public class TwinEmpCalcServiceImpl implements ITwinEmpCalcService {
             for (int i = 0; i < devices.length; i++) {
                 Long deviceId = devices[i];
                 List<TwinCalcHourSpec> specs = specHourMap.get(deviceId + "-" + team);
+                if (specs == null || specs.size() == 0) {
+                    continue;
+                }
                 //按密度和米克重、毛高分组统计
                 Map<String, BigDecimal> resultMap = specs.stream().collect(Collectors.groupingBy(t -> t.getDensity() + "-" + t.getMick() + "-" + t.getHeight(), Collectors.reducing(BigDecimal.ZERO, TwinCalcHourSpec::getLength, BigDecimal::add)));
                 for (String ss : resultMap.keySet()) {

+ 5 - 0
jjt-biz/src/main/java/com/jjt/task/CalcTask.java

@@ -2,6 +2,8 @@ package com.jjt.task;
 
 import com.jjt.calc.service.ITwinCalcDayService;
 import com.jjt.calc.service.ITwinCalcHourService;
+import com.jjt.common.utils.DateUtils;
+import com.jjt.emp.service.ITwinEmpCalcService;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -19,6 +21,8 @@ public class CalcTask {
     private ITwinCalcHourService calcHourService;
     @Resource
     private ITwinCalcDayService dayService;
+    @Resource
+    private ITwinEmpCalcService empCalcService;
 
     /**
      * 统计上一时段数据
@@ -34,6 +38,7 @@ public class CalcTask {
     public void day() {
         LocalDate localDate = LocalDate.now().minusDays(1);
         dayService.day(localDate);
+        empCalcService.calc(DateUtils.toDate(localDate));
     }
 
 }