Browse Source

✨ feat(mes): 增加生产趋势查询参数验证和首页组件优化

为生产趋势查询添加最小和最大天数验证,确保输入有效性。
优化首页组件,增加数据存在性判断,提升用户体验。
YunaiV 4 months ago
parent
commit
46b31f43a5

+ 3 - 1
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/home/MesHomeStatisticsController.java

@@ -9,6 +9,8 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.annotation.Resource;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -48,7 +50,7 @@ public class MesHomeStatisticsController {
     @Parameter(name = "days", description = "天数", example = "7")
     @PreAuthorize("@ss.hasPermission('mes:home:query')")
     public CommonResult<List<MesHomeProductionTrendRespVO>> getProductionTrend(
-            @RequestParam(value = "days", defaultValue = "7") Integer days) {
+            @RequestParam(value = "days", defaultValue = "7") @Min(1) @Max(90) Integer days) {
         return success(homeStatisticsService.getProductionTrend(days));
     }
 

+ 6 - 2
yudao-module-mes/src/main/resources/mapper/home/MesHomeStatisticsMapper.xml

@@ -17,6 +17,7 @@
                IFNULL(SUM(unqualified_quantity), 0)  AS unqualifiedQuantity
         FROM mes_pro_feedback
         WHERE deleted = 0
+          AND status = ${@cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum@FINISHED.status}
           AND feedback_time >= #{beginTime}
           <if test="endTime != null">
               AND feedback_time &lt; #{endTime}
@@ -36,7 +37,7 @@
         SELECT COUNT(*)
         FROM mes_pro_andon_record
         WHERE deleted = 0
-          AND status = 0
+          AND status = ${@cn.iocoder.yudao.module.mes.enums.pro.MesProAndonStatusEnum@ACTIVE.status}
     </select>
 
     <!-- 统计未完成维修工单数(草稿 0、维修中 1、待验收 2) -->
@@ -44,7 +45,9 @@
         SELECT COUNT(*)
         FROM mes_dv_repair
         WHERE deleted = 0
-          AND status IN (0, 1, 2)
+          AND status IN (${@cn.iocoder.yudao.module.mes.enums.dv.MesDvRepairStatusEnum@PREPARE.status},
+                        ${@cn.iocoder.yudao.module.mes.enums.dv.MesDvRepairStatusEnum@CONFIRMED.status},
+                        ${@cn.iocoder.yudao.module.mes.enums.dv.MesDvRepairStatusEnum@APPROVING.status})
     </select>
 
     <!-- 按天聚合报工产量 -->
@@ -55,6 +58,7 @@
                IFNULL(SUM(unqualified_quantity), 0)      AS unqualifiedQuantity
         FROM mes_pro_feedback
         WHERE deleted = 0
+          AND status = ${@cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum@FINISHED.status}
           AND feedback_time >= #{beginTime}
           <if test="endTime != null">
               AND feedback_time &lt; #{endTime}