|
@@ -4,6 +4,7 @@ import com.jjt.biz.domain.TwinDevice;
|
|
|
import com.jjt.biz.service.IApiService;
|
|
|
import com.jjt.biz.service.ITwinDeviceService;
|
|
|
import com.jjt.biz.vo.*;
|
|
|
+import com.jjt.calc.domain.TwinCalcDay;
|
|
|
import com.jjt.calc.domain.TwinFormulaInfo;
|
|
|
import com.jjt.calc.domain.TwinPanHeadInfo;
|
|
|
import com.jjt.calc.service.ITwinCalcDayService;
|
|
@@ -15,17 +16,16 @@ import com.jjt.utils.AsyncService;
|
|
|
import com.jjt.utils.IotService;
|
|
|
import com.jjt.utils.Tools;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.core.env.Environment;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneOffset;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.ExecutionException;
|
|
|
import java.util.concurrent.Future;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -59,65 +59,61 @@ public class ApiServiceImpl implements IApiService {
|
|
|
* 首页统计数据
|
|
|
*/
|
|
|
@Override
|
|
|
-
|
|
|
- public void indexCalc() {
|
|
|
+ public void today() {
|
|
|
List<WeekData> weekDataList = new ArrayList<>();
|
|
|
IndexData indexData = new IndexData();
|
|
|
IndexEfficiency efficiency = new IndexEfficiency();
|
|
|
-// TwinCalcDay calcDay = twinCalcDayService.calcToday();
|
|
|
-// /*
|
|
|
-// 获取当天产量数据
|
|
|
-// */
|
|
|
-// efficiency.setAEfficiency(calcDay.getEfficiencyA().floatValue());
|
|
|
-// efficiency.setBEfficiency(calcDay.getEfficiencyB().floatValue());
|
|
|
-// efficiency.setTotalLength(calcDay.getLength().floatValue());
|
|
|
-// efficiency.setALength(calcDay.getLengthA().floatValue());
|
|
|
-// efficiency.setBLength(calcDay.getLengthB().floatValue());
|
|
|
-// //界面上重新计算重量 2024-12-25 用总长度除以373
|
|
|
-// BigDecimal tw = calcDay.getLength().divide(BigDecimal.valueOf(373), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
-// BigDecimal aw = calcDay.getLengthA().divide(BigDecimal.valueOf(373), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
-// BigDecimal bw = calcDay.getLengthB().divide(BigDecimal.valueOf(373), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
-// efficiency.setTotalWeight(tw.floatValue());
|
|
|
-// efficiency.setAWeight(aw.floatValue());
|
|
|
-// efficiency.setBWeight(bw.floatValue());
|
|
|
-// efficiency.setATime(calcDay.getOpenTimeA().divide(BigDecimal.valueOf(3600), 2, BigDecimal.ROUND_HALF_UP).floatValue());
|
|
|
-// efficiency.setBTime(calcDay.getOpenTimeB().divide(BigDecimal.valueOf(3600), 2, BigDecimal.ROUND_HALF_UP).floatValue());
|
|
|
-// //如果产量累计产量为0,则稼动和生产时间都为0
|
|
|
-// if (efficiency.getALength() == 0f) {
|
|
|
-// efficiency.setAEfficiency(0f);
|
|
|
-// efficiency.setATime(0f);
|
|
|
-// }
|
|
|
-// //如果产量累计产量为0,则稼动和生产时间都为0
|
|
|
-// if (efficiency.getBLength() == 0f) {
|
|
|
-// efficiency.setBEfficiency(0f);
|
|
|
-// efficiency.setBTime(0f);
|
|
|
-// }
|
|
|
-// indexData.setEfficiency(efficiency);
|
|
|
-//
|
|
|
-// /*
|
|
|
-// *获取前面7天的数据
|
|
|
-// */
|
|
|
-// LocalDateTime ldt = LocalDateTime.now();
|
|
|
-// if (ldt.getHour() < 7) {
|
|
|
-// ldt = ldt.minusDays(1);
|
|
|
-// }
|
|
|
-// LocalDate localDate = ldt.toLocalDate().minusDays(7);
|
|
|
-// Date date = Date.from(localDate.atStartOfDay(ZoneOffset.of("+8")).toInstant());
|
|
|
-// List<TwinCalcDay> list = twinCalcDayService.selectTwinCalcDayListByTime(date);
|
|
|
-// Map<Date, List<TwinCalcDay>> dayGroup = list.stream().collect(Collectors.groupingBy(TwinCalcDay::getTime, LinkedHashMap::new, Collectors.toList()));
|
|
|
-// for (Map.Entry<Date, List<TwinCalcDay>> entry : dayGroup.entrySet()) {
|
|
|
-// TwinCalcDay day = new TwinCalcDay(entry.getKey());
|
|
|
-// List<TwinCalcDay> days = entry.getValue();
|
|
|
-// day.calcDays(days);
|
|
|
-// WeekData weekData = new WeekData();
|
|
|
-// weekData.convert(day);
|
|
|
-// weekDataList.add(weekData);
|
|
|
-// }
|
|
|
-// indexData.setWeekData(weekDataList);
|
|
|
-// IndexDevice device = new IndexDevice();
|
|
|
-// device.setRunningRatio(calcDay.getRunningRatio());
|
|
|
-// indexData.setDevice(device);
|
|
|
-// CacheUtils.put(Constants.IOT_TOKEN, Constants.INDEX_CALC, indexData);
|
|
|
+ TwinCalcDay calcDay = twinCalcDayService.today();
|
|
|
+ /*
|
|
|
+ 获取当天产量数据
|
|
|
+ */
|
|
|
+ efficiency.setAEfficiency(calcDay.getEfficiencyA().floatValue());
|
|
|
+ efficiency.setBEfficiency(calcDay.getEfficiencyB().floatValue());
|
|
|
+ efficiency.setTotalLength(calcDay.getLength().floatValue());
|
|
|
+ efficiency.setALength(calcDay.getLengthA().floatValue());
|
|
|
+ efficiency.setBLength(calcDay.getLengthB().floatValue());
|
|
|
+ //界面上重新计算重量 2024-12-25 用总长度除以373
|
|
|
+ BigDecimal tw = calcDay.getLength().divide(BigDecimal.valueOf(373), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal aw = calcDay.getLengthA().divide(BigDecimal.valueOf(373), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal bw = calcDay.getLengthB().divide(BigDecimal.valueOf(373), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ efficiency.setTotalWeight(tw.floatValue());
|
|
|
+ efficiency.setAWeight(aw.floatValue());
|
|
|
+ efficiency.setBWeight(bw.floatValue());
|
|
|
+ efficiency.setATime(calcDay.getOpenTimeA().divide(BigDecimal.valueOf(3600), 2, BigDecimal.ROUND_HALF_UP).floatValue());
|
|
|
+ efficiency.setBTime(calcDay.getOpenTimeB().divide(BigDecimal.valueOf(3600), 2, BigDecimal.ROUND_HALF_UP).floatValue());
|
|
|
+ //如果产量累计产量为0,则稼动和生产时间都为0
|
|
|
+ if (efficiency.getALength() == 0f) {
|
|
|
+ efficiency.setAEfficiency(0f);
|
|
|
+ efficiency.setATime(0f);
|
|
|
+ }
|
|
|
+ //如果产量累计产量为0,则稼动和生产时间都为0
|
|
|
+ if (efficiency.getBLength() == 0f) {
|
|
|
+ efficiency.setBEfficiency(0f);
|
|
|
+ efficiency.setBTime(0f);
|
|
|
+ }
|
|
|
+ indexData.setEfficiency(efficiency);
|
|
|
+
|
|
|
+ //7点前是属于前一生产天,所以这里直接减7小时即可
|
|
|
+ LocalDateTime ldt = LocalDateTime.now().minusHours(7);
|
|
|
+ //获取前面7天的数据
|
|
|
+ LocalDate localDate = ldt.toLocalDate().minusDays(7);
|
|
|
+ Date date = Date.from(localDate.atStartOfDay(ZoneOffset.of("+8")).toInstant());
|
|
|
+ List<TwinCalcDay> list = twinCalcDayService.selectTwinCalcDayListByTime(date);
|
|
|
+ Map<Date, List<TwinCalcDay>> dayGroup = list.stream().collect(Collectors.groupingBy(TwinCalcDay::getTime, LinkedHashMap::new, Collectors.toList()));
|
|
|
+ for (Map.Entry<Date, List<TwinCalcDay>> entry : dayGroup.entrySet()) {
|
|
|
+ TwinCalcDay day = new TwinCalcDay(entry.getKey());
|
|
|
+ List<TwinCalcDay> days = entry.getValue();
|
|
|
+ day.calcDays(days);
|
|
|
+ WeekData weekData = new WeekData();
|
|
|
+ weekData.convert(day);
|
|
|
+ weekDataList.add(weekData);
|
|
|
+ }
|
|
|
+ indexData.setWeekData(weekDataList);
|
|
|
+ IndexDevice device = new IndexDevice();
|
|
|
+ device.setRunningRatio(calcDay.getRunningRatio());
|
|
|
+ indexData.setDevice(device);
|
|
|
+
|
|
|
+ redisCache.setCacheObject(CacheConstants.INDEX_CALC, indexData);
|
|
|
}
|
|
|
|
|
|
/**
|