Compare commits
No commits in common. "732d912314879c48494a0ad0caf548f5318e05d8" and "154c3ad2069e15d8f2fbae0f065c86ad82afdc1c" have entirely different histories.
732d912314
...
154c3ad206
|
|
@ -2,10 +2,6 @@ package org.jeecg.modules.base.mapper;
|
||||||
|
|
||||||
import org.jeecg.modules.base.entity.StasSyncRecord;
|
import org.jeecg.modules.base.entity.StasSyncRecord;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.jeecg.modules.base.vo.TaskStatsVO;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 同步记录表
|
* @Description: 同步记录表
|
||||||
|
|
@ -14,7 +10,5 @@ import java.util.List;
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface StasSyncRecordMapper extends BaseMapper<StasSyncRecord> {
|
public interface StasSyncRecordMapper extends BaseMapper<StasSyncRecord> {
|
||||||
List<TaskStatsVO> taskHistoryStats();
|
|
||||||
List<TaskStatsVO> taskStatsDay(String startTime);
|
|
||||||
List<TaskStatsVO> taskStatsMonth(String startTime);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,54 +2,4 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.jeecg.modules.base.mapper.StasSyncRecordMapper">
|
<mapper namespace="org.jeecg.modules.base.mapper.StasSyncRecordMapper">
|
||||||
|
|
||||||
<select id="taskHistoryStats" resultType="org.jeecg.modules.base.vo.TaskStatsVO">
|
|
||||||
SELECT
|
|
||||||
ta.id id,
|
|
||||||
ta.task_name taskName,
|
|
||||||
r.start_time dateTime,
|
|
||||||
n.sync_num syncNum
|
|
||||||
FROM
|
|
||||||
stas_task_config ta
|
|
||||||
JOIN stas_sync_record r ON ta.id = r.task_id
|
|
||||||
JOIN stas_sync_num n ON r.id = n.record_id
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="taskStatsDay" parameterType="java.lang.String" resultType="org.jeecg.modules.base.vo.TaskStatsVO">
|
|
||||||
SELECT
|
|
||||||
ta.id as id,
|
|
||||||
ta.task_name as taskName,
|
|
||||||
TO_CHAR(r.start_time, 'YYYY-MM-DD') as dateTime,
|
|
||||||
sum(n.sync_num) as syncNum
|
|
||||||
FROM
|
|
||||||
stas_task_config ta
|
|
||||||
JOIN stas_sync_record r ON ta.id = r.task_id
|
|
||||||
LEFT JOIN stas_sync_num n ON r.id = n.record_id
|
|
||||||
<where>
|
|
||||||
<if test="startTime != null">
|
|
||||||
AND r.start_time >= #{startTime}
|
|
||||||
</if>
|
|
||||||
</where>
|
|
||||||
GROUP BY ta.id, ta.task_name, TO_CHAR(r.start_time, 'YYYY-MM-DD')
|
|
||||||
ORDER BY TO_CHAR(r.start_time, 'YYYY-MM-DD'), ta.task_name
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="taskStatsMonth" parameterType="java.lang.String" resultType="org.jeecg.modules.base.vo.TaskStatsVO">
|
|
||||||
SELECT
|
|
||||||
ta.id as id,
|
|
||||||
ta.task_name as taskName,
|
|
||||||
TO_CHAR(r.start_time, 'YYYY-MM') as dateTime, -- 改为按月统计
|
|
||||||
sum(n.sync_num) as syncNum
|
|
||||||
FROM
|
|
||||||
stas_task_config ta
|
|
||||||
JOIN stas_sync_record r ON ta.id = r.task_id
|
|
||||||
LEFT JOIN stas_sync_num n ON r.id = n.record_id
|
|
||||||
<where>
|
|
||||||
<if test="startTime != null">
|
|
||||||
AND r.start_time >= #{startTime}
|
|
||||||
</if>
|
|
||||||
</where>
|
|
||||||
GROUP BY ta.id, ta.task_name, TO_CHAR(r.start_time, 'YYYY-MM')
|
|
||||||
ORDER BY TO_CHAR(r.start_time, 'YYYY-MM') DESC, ta.task_name
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
package org.jeecg.modules.base.vo;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class TaskStatsVO {
|
|
||||||
private String id;
|
|
||||||
private String taskName;
|
|
||||||
private String dateTime;
|
|
||||||
private Long syncNum;
|
|
||||||
}
|
|
||||||
|
|
@ -48,7 +48,8 @@ public class OceanFeignController {
|
||||||
Result<Page<AlarmRecord>> pageResult = objectMapper.readValue(getResult, new TypeReference<>() {});
|
Result<Page<AlarmRecord>> pageResult = objectMapper.readValue(getResult, new TypeReference<>() {});
|
||||||
// 检查响应是否成功
|
// 检查响应是否成功
|
||||||
if (pageResult.getCode() == 200) { // 假设 200 表示成功,根据实际 API 文档调整
|
if (pageResult.getCode() == 200) { // 假设 200 表示成功,根据实际 API 文档调整
|
||||||
return pageResult;
|
IPage<AlarmRecord> alarmRecordList = pageResult.getResult();
|
||||||
|
return Result.OK(pageResult);
|
||||||
} else {
|
} else {
|
||||||
return Result.error("API 请求失败, 错误码: " + pageResult.getCode() + ", 消息: " + pageResult.getMessage());
|
return Result.error("API 请求失败, 错误码: " + pageResult.getCode() + ", 消息: " + pageResult.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,14 +38,14 @@ public class StasSyncNumController extends JeecgController<StasSyncNum, IStasSyn
|
||||||
private IStasSyncNumService stasSyncNumService;
|
private IStasSyncNumService stasSyncNumService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务按表饼图统计
|
* 分页列表查询
|
||||||
*
|
*
|
||||||
* @param stasSyncNum
|
* @param stasSyncNum
|
||||||
* @param req
|
* @param req
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
//@AutoLog(value = "同步数量-分页列表查询")
|
//@AutoLog(value = "同步数量-分页列表查询")
|
||||||
@Operation(summary = "同步数量-任务按表饼图统计")
|
@Operation(summary = "同步数量-分页列表查询")
|
||||||
@GetMapping(value = "/list")
|
@GetMapping(value = "/list")
|
||||||
public Result<List<PieChartVO>> queryPageList(StasSyncNum stasSyncNum,
|
public Result<List<PieChartVO>> queryPageList(StasSyncNum stasSyncNum,
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
|
|
|
||||||
|
|
@ -110,35 +110,4 @@ public class StasSyncRecordController extends JeecgController<StasSyncRecord, IS
|
||||||
return Result.OK(resultPage);
|
return Result.OK(resultPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 历史同步数量统计
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Operation(summary = "同步记录表-任务历史同步数量统计")
|
|
||||||
@GetMapping(value = "/taskHisSta")
|
|
||||||
public Result<?> taskHisSta() {
|
|
||||||
return Result.OK(stasSyncRecordService.taskHisStats());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 按日统计最近一个月同步数量
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Operation(summary = "同步记录表-按日统计最近一个月同步数量")
|
|
||||||
@GetMapping(value = "/taskStatsDay")
|
|
||||||
public Result<?> taskStatsDay() {
|
|
||||||
return Result.OK(stasSyncRecordService.taskStatsDay());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 按月统计最近一年同步数量
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Operation(summary = "同步记录表-按月统计最近一年同步数量")
|
|
||||||
@GetMapping(value = "/taskStatsMonth")
|
|
||||||
public Result<?> taskStatsMonth() {
|
|
||||||
return Result.OK(stasSyncRecordService.taskStatsMonth());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,6 @@ package org.jeecg.syncRecord.service;
|
||||||
|
|
||||||
import org.jeecg.modules.base.entity.StasSyncRecord;
|
import org.jeecg.modules.base.entity.StasSyncRecord;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.jeecg.syncRecord.vo.TaskHisStatsVO;
|
|
||||||
import org.jeecg.syncRecord.vo.TaskStatsResultVO;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 同步记录表
|
* @Description: 同步记录表
|
||||||
|
|
@ -15,8 +11,4 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface IStasSyncRecordService extends IService<StasSyncRecord> {
|
public interface IStasSyncRecordService extends IService<StasSyncRecord> {
|
||||||
|
|
||||||
List<TaskHisStatsVO> taskHisStats();
|
|
||||||
TaskStatsResultVO taskStatsDay();
|
|
||||||
TaskStatsResultVO taskStatsMonth();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,12 @@
|
||||||
package org.jeecg.syncRecord.service.impl;
|
package org.jeecg.syncRecord.service.impl;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.jeecg.common.util.DateUtils;
|
|
||||||
import org.jeecg.modules.base.entity.StasSyncRecord;
|
import org.jeecg.modules.base.entity.StasSyncRecord;
|
||||||
import org.jeecg.modules.base.mapper.StasSyncRecordMapper;
|
import org.jeecg.modules.base.mapper.StasSyncRecordMapper;
|
||||||
import org.jeecg.modules.base.vo.TaskStatsVO;
|
|
||||||
import org.jeecg.syncRecord.service.IStasSyncRecordService;
|
import org.jeecg.syncRecord.service.IStasSyncRecordService;
|
||||||
import org.jeecg.syncRecord.vo.TaskHisStatsVO;
|
|
||||||
import org.jeecg.syncRecord.vo.TaskStatsResultVO;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 同步记录表
|
* @Description: 同步记录表
|
||||||
* @Author: jeecg-boot
|
* @Author: jeecg-boot
|
||||||
|
|
@ -24,108 +14,6 @@ import java.util.stream.Collectors;
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
|
||||||
public class StasSyncRecordServiceImpl extends ServiceImpl<StasSyncRecordMapper, StasSyncRecord> implements IStasSyncRecordService {
|
public class StasSyncRecordServiceImpl extends ServiceImpl<StasSyncRecordMapper, StasSyncRecord> implements IStasSyncRecordService {
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<TaskHisStatsVO> taskHisStats() {
|
|
||||||
List<TaskStatsVO> taskStatsVOS = this.baseMapper.taskHistoryStats();
|
|
||||||
Map<String, TaskHisStatsVO> resultMap = new HashMap<>();
|
|
||||||
|
|
||||||
for (TaskStatsVO vo : taskStatsVOS) {
|
|
||||||
String id = vo.getId();
|
|
||||||
TaskHisStatsVO hisStatsVO = resultMap.get(id);
|
|
||||||
|
|
||||||
if (hisStatsVO == null) {
|
|
||||||
hisStatsVO = new TaskHisStatsVO();
|
|
||||||
hisStatsVO.setTaskName(vo.getTaskName());
|
|
||||||
hisStatsVO.setSyncNum(vo.getSyncNum());
|
|
||||||
resultMap.put(id, hisStatsVO);
|
|
||||||
} else {
|
|
||||||
hisStatsVO.setSyncNum(hisStatsVO.getSyncNum() + vo.getSyncNum());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ArrayList<>(resultMap.values());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TaskStatsResultVO taskStatsDay() {
|
|
||||||
TaskStatsResultVO taskStatsResultVO = new TaskStatsResultVO();
|
|
||||||
taskStatsResultVO.setDateTimes(getLastMonthDates());
|
|
||||||
|
|
||||||
LocalDate today = LocalDate.now();
|
|
||||||
LocalDate monthDate = today.minusMonths(1);
|
|
||||||
String oneMonthAgo = monthDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
||||||
List<TaskStatsVO> taskStatsVOS = this.baseMapper.taskStatsDay(oneMonthAgo);
|
|
||||||
|
|
||||||
Map<String, List<TaskStatsVO>> groupedByTaskName = taskStatsVOS.stream()
|
|
||||||
.collect(Collectors.groupingBy(TaskStatsVO::getTaskName));
|
|
||||||
|
|
||||||
List<TaskStatsResultVO.TaskStatsInfo> taskStatsInfos = new ArrayList<>();
|
|
||||||
for (String taskName : groupedByTaskName.keySet()) {
|
|
||||||
TaskStatsResultVO.TaskStatsInfo taskStatsInfo = new TaskStatsResultVO.TaskStatsInfo();
|
|
||||||
taskStatsInfo.setTaskName(taskName);
|
|
||||||
taskStatsInfo.setTaskStats(groupedByTaskName.get(taskName));
|
|
||||||
taskStatsInfos.add(taskStatsInfo);
|
|
||||||
}
|
|
||||||
taskStatsResultVO.setTaskStatsInfos(taskStatsInfos);
|
|
||||||
return taskStatsResultVO;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TaskStatsResultVO taskStatsMonth() {
|
|
||||||
TaskStatsResultVO taskStatsResultVO = new TaskStatsResultVO();
|
|
||||||
taskStatsResultVO.setDateTimes(getLastYearMonthDates());
|
|
||||||
|
|
||||||
LocalDate today = LocalDate.now();
|
|
||||||
LocalDate monthDate = today.minusMonths(11);;
|
|
||||||
String oneMonthAgo = monthDate.format(DateTimeFormatter.ofPattern("yyyy-MM-01"));
|
|
||||||
List<TaskStatsVO> taskStatsVOS = this.baseMapper.taskStatsMonth(oneMonthAgo);
|
|
||||||
|
|
||||||
Map<String, List<TaskStatsVO>> groupedByTaskName = taskStatsVOS.stream()
|
|
||||||
.collect(Collectors.groupingBy(TaskStatsVO::getTaskName));
|
|
||||||
|
|
||||||
List<TaskStatsResultVO.TaskStatsInfo> taskStatsInfos = new ArrayList<>();
|
|
||||||
for (String taskName : groupedByTaskName.keySet()) {
|
|
||||||
TaskStatsResultVO.TaskStatsInfo taskStatsInfo = new TaskStatsResultVO.TaskStatsInfo();
|
|
||||||
taskStatsInfo.setTaskName(taskName);
|
|
||||||
taskStatsInfo.setTaskStats(groupedByTaskName.get(taskName));
|
|
||||||
taskStatsInfos.add(taskStatsInfo);
|
|
||||||
}
|
|
||||||
taskStatsResultVO.setTaskStatsInfos(taskStatsInfos);
|
|
||||||
return taskStatsResultVO;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static List<String> getLastMonthDates() {
|
|
||||||
List<String> dateList = new ArrayList<>();
|
|
||||||
LocalDate today = LocalDate.now();
|
|
||||||
LocalDate oneMonthAgo = today.minusMonths(1);
|
|
||||||
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
||||||
|
|
||||||
// 从一个月前到今天,包含开始和结束日期
|
|
||||||
LocalDate currentDate = oneMonthAgo;
|
|
||||||
while (!currentDate.isAfter(today)) {
|
|
||||||
dateList.add(currentDate.format(formatter));
|
|
||||||
currentDate = currentDate.plusDays(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return dateList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<String> getLastYearMonthDates() {
|
|
||||||
List<String> monthList = new ArrayList<>();
|
|
||||||
LocalDate today = LocalDate.now();
|
|
||||||
|
|
||||||
// 包含当月,所以从11个月前开始
|
|
||||||
for (int i = 11; i >= 0; i--) {
|
|
||||||
LocalDate monthDate = today.minusMonths(i);
|
|
||||||
String monthStr = monthDate.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
|
||||||
monthList.add(monthStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
return monthList;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
package org.jeecg.syncRecord.vo;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class TaskHisStatsVO {
|
|
||||||
private String taskName;
|
|
||||||
private Long syncNum;
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
package org.jeecg.syncRecord.vo;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import org.jeecg.modules.base.vo.TaskStatsVO;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class TaskStatsResultVO {
|
|
||||||
List<String> dateTimes;
|
|
||||||
List<TaskStatsInfo> taskStatsInfos;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public static class TaskStatsInfo{
|
|
||||||
String taskName;
|
|
||||||
List<TaskStatsVO> taskStats;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user