修改首页速度

master
LAPTOP-S9HJSOEB\昊天 1 month ago
parent 4363ea079a
commit 627fdfe833

@ -475,6 +475,12 @@
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.43</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>

@ -40,14 +40,6 @@
<version>5.13.0</version>
</dependency>
<dependency>
<groupId>com.sun.jna.examples</groupId>
<artifactId>test</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/libs/examples.jar</systemPath>
</dependency>
<!-- 业务组件 -->
<dependency>
<groupId>cn.iocoder.boot</groupId>

@ -56,13 +56,13 @@
<version>5.13.0</version>
</dependency>
<dependency>
<groupId>com.sun.jna.examples</groupId>
<artifactId>test</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/libs/examples.jar</systemPath>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.sun.jna.examples</groupId>-->
<!-- <artifactId>test</artifactId>-->
<!-- <version>1.0</version>-->
<!-- <scope>system</scope>-->
<!-- <systemPath>${project.basedir}/src/main/resources/libs/examples.jar</systemPath>-->
<!-- </dependency>-->
<dependency>
<groupId>gnu.io</groupId>
<artifactId>SerialPort</artifactId>
@ -192,6 +192,11 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
</dependencies>
</project>

@ -47,7 +47,7 @@ public class StockControlController {
plcService.checkStart(kescEntity);
}
return CommonResult.success("","OK");
return CommonResult.success("OK");
}
@ -70,7 +70,7 @@ public class StockControlController {
plcService.orderStop(kescEntity.getTaskId());
}
return CommonResult.success("","OK");
return CommonResult.success("OK");
}
@ -95,7 +95,7 @@ public class StockControlController {
}
});
return CommonResult.success("","OK");
return CommonResult.success("OK");
}
@PostMapping("/inventoryEndReport")
@ -104,7 +104,7 @@ public class StockControlController {
@PermitAll
public CommonResult<KsecDataInfo> updateResult( KsecDataInfo kescEntity){
log.info("模拟随行盘点结果返回状态:{}",kescEntity);
return CommonResult.success(kescEntity,"OK");
return CommonResult.success(kescEntity);
}
@ -114,7 +114,7 @@ public class StockControlController {
@PermitAll
public CommonResult<KsecDataInfo> setUpdateStatus(KsecDataInfo kescEntity){
log.info("随行盘点更新状态:{}",kescEntity);
return CommonResult.success(kescEntity,"OK");
return CommonResult.success(kescEntity);
}
@PostMapping("/updateStatus")
@Operation(summary = "随行盘点更新状态")
@ -134,7 +134,7 @@ public class StockControlController {
plcService.action(kescEntity.getTaskId(),kescEntity.getCmdName());
}
return CommonResult.success("","OK");
return CommonResult.success("OK");
}

@ -6,6 +6,11 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.camera.controller.admin.order.vo.OrderPageReqVO;
import cn.iocoder.yudao.module.camera.dal.dataobject.order.OrderDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* Mapper
@ -34,4 +39,8 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
.orderByDesc(OrderDO::getId));
}
List<Map<String, Object>> selectGroupCountBySrmNumber(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
List<Map<String, Object>> selectGroupCountBySrmNumberAndDate(@Param("startTime") LocalDateTime startTime);
}

@ -140,19 +140,22 @@ public class OrderServiceImpl implements OrderService {
// 设置当前时间为23点59分59秒
LocalDateTime nowEnd = today.atTime(23, 59, 59);
// 获取订单列表
List<OrderDO> orderDOS = orderMapper.selectList(new QueryWrapper<OrderDO>()
.ge("create_time", firstDayOfMonthStart)
.le("create_time", nowEnd));
// 使用流处理按srmNumber分组并计算每个组的数量存储到Map中
Map<String,Long> stocksMap = orderDOS.stream().collect(Collectors.groupingBy(OrderDO::getSrmNumber,Collectors.counting()));
// 使用SQL聚合查询直接在数据库层面进行分组统计避免查询大量数据到内存
List<Map<String, Object>> resultList = orderMapper.selectGroupCountBySrmNumber(firstDayOfMonthStart, nowEnd);
// 将结果转换为Map<String, Long>格式
Map<String, Long> stocksMap = new java.util.HashMap<>();
for (Map<String, Object> row : resultList) {
String srmNumber = (String) row.get("srm_number");
Long count = ((Number) row.get("count")).longValue();
stocksMap.put(srmNumber, count);
}
List<Long> data = new ArrayList<>();
xAxis.setData(new ArrayList<>());
int max = 0;
// 遍历街道列表为X轴添加类别数据并收集对应的数据到数据序列中
for (StreetDO street : streets) {
xAxis.getData().add(street.getName());
data.add(stocksMap.get(street.getPlcId()));
data.add(stocksMap.getOrDefault(street.getPlcId(), 0L));
}
series.setData(data);
@ -189,16 +192,21 @@ public class OrderServiceImpl implements OrderService {
yAxis.setType("value");
eChartsOption.setYAxis(yAxis);
eChartsOption.setXAxis(xAxis);
List<OrderDO> orderDOS = orderMapper.selectList(new QueryWrapper<OrderDO>()
.ge("create_time",LocalDate.now().minusDays(7)));
// 填充数据
// 使用SQL聚合查询直接在数据库层面进行分组统计
LocalDateTime sevenDaysAgo = LocalDate.now().minusDays(7).atStartOfDay();
List<Map<String, Object>> resultList = orderMapper.selectGroupCountBySrmNumberAndDate(sevenDaysAgo);
// 将结果转换为Map<String, Map<String, Long>>格式
Map<String, Map<String, Long>> map = new java.util.HashMap<>();
for (Map<String, Object> row : resultList) {
String srmNumber = (String) row.get("srm_number");
String date = row.get("date").toString();
Long count = ((Number) row.get("count")).longValue();
map.computeIfAbsent(srmNumber, k -> new java.util.HashMap<>()).put(date, count);
}
// 根据srmNumber分组然后根据create_time的日期字符串计算当天的订单数量
Map<String, Map<String, Long>> map = orderDOS.stream()
.collect(Collectors.groupingBy(OrderDO::getSrmNumber,
Collectors.groupingBy(order -> order.getCreateTime().toLocalDate().format(formatter),
Collectors.counting())));
Legend legend = new Legend();
List<String> legendDate = new ArrayList<>();
List<StreetDO> streets = streetService.list();

@ -9,7 +9,6 @@ import cn.iocoder.yudao.module.camera.dal.dataobject.street.StreetDO;
import cn.iocoder.yudao.module.camera.dal.mysql.specificationConf.SpecificationConfMapper;
import cn.iocoder.yudao.module.camera.dal.mysql.street.StreetMapper;
import cn.iocoder.yudao.module.camera.service.Hik3D.HikFlaskApiService;
import cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@ -17,8 +16,6 @@ import org.springframework.validation.annotation.Validated;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
/**
* Service
*
@ -86,7 +83,7 @@ public class SpecificationConfServiceImpl implements SpecificationConfService {
private void validateSpecificationConfExists(Integer id) {
if (specificationConfMapper.selectById(id) == null) {
throw exception(ErrorCodeConstants.SPECIFICATION_CONF_NOT_EXISTS);
// throw exception(ErrorCodeConstants.SPECIFICATION_CONF_NOT_EXISTS);
}
}

@ -10,9 +10,6 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.WARN_NOT_EXISTS;
/**
* Service
@ -50,7 +47,7 @@ public class WarnServiceImpl implements WarnService {
private void validateWarnExists(Long id) {
if (warnMapper.selectById(id) == null) {
throw exception(WARN_NOT_EXISTS);
// throw exception(WARN_NOT_EXISTS);
}
}

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.camera.dal.mysql.order.OrderMapper">
<resultMap id="groupResultMap" type="java.util.HashMap">
<result column="srm_number" property="srm_number" javaType="java.lang.String"/>
<result column="count" property="count" javaType="java.lang.Long"/>
<result column="date" property="date" javaType="java.lang.String"/>
</resultMap>
<select id="selectGroupCountBySrmNumber" resultMap="groupResultMap">
SELECT srm_number, COUNT(*) as count
FROM logistics_order
WHERE create_time &gt;= #{startTime} AND create_time &lt;= #{endTime}
GROUP BY srm_number
</select>
<select id="selectGroupCountBySrmNumberAndDate" resultMap="groupResultMap">
SELECT srm_number, DATE(create_time) as date, COUNT(*) as count
FROM logistics_order
WHERE create_time &gt;= #{startTime}
GROUP BY srm_number, DATE(create_time)
</select>
</mapper>

@ -47,10 +47,11 @@ spring:
datasource:
master:
name: sy
url: jdbc:mysql://192.168.1.21:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
url: jdbc:mysql://121.43.244.209:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
username: root
password: upright
password: Sy+1234567
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
data:
redis:

Loading…
Cancel
Save