From 6030506c8be54cc9be55931bedc4ae6b04b2a10c Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Wed, 15 Apr 2026 15:41:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0app-=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8-=E7=94=9F=E4=BA=A7=E6=A6=82=E5=86=B5-?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaogongRecordController.java | 7 ++- .../vo/BaogongRecordTrendDayRespVO.java | 22 +++++++++ .../vo/BaogongRecordTrendReqVO.java | 24 ++++++++++ .../vo/BaogongRecordTrendRespVO.java | 28 +++++++++++ .../baogongrecord/BaogongRecordMapper.java | 3 ++ .../baogongrecord/BaogongRecordService.java | 8 ++++ .../BaogongRecordServiceImpl.java | 18 ++++++++ .../baogongrecord/BaogongRecordMapper.xml | 46 +++++++++++++++++++ 8 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendDayRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendRespVO.java diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java index bee76b806..39fb41778 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java @@ -164,7 +164,12 @@ public class BaogongRecordController { ExcelUtils.write(response, "报工统计.xls", "数据", BaogongRecordStatRespVO.class, list); } - + @GetMapping("/trend") + @Operation(summary = "报工趋势统计") + @PreAuthorize("@ss.hasPermission('mes:baogong-record:query')") + public CommonResult getBaogongRecordTrend(@Valid BaogongRecordTrendReqVO reqVO) { + return success(baogongRecordService.getBaogongRecordTrend(reqVO)); + } } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendDayRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendDayRespVO.java new file mode 100644 index 000000000..65e5ab82a --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendDayRespVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 报工趋势按天 Response VO") +@Data +public class BaogongRecordTrendDayRespVO { + + @Schema(description = "日期,yyyy-MM-dd") + private String day; + + @Schema(description = "报工数量(合格+不合格)") + private Long baogongNum; + + @Schema(description = "合格率(百分比)") + private BigDecimal passRate; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendReqVO.java new file mode 100644 index 000000000..55075dd47 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 报工趋势 Request VO") +@Data +public class BaogongRecordTrendReqVO { + + @Schema(description = "开始时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime beginBaogongTime; + + @Schema(description = "结束时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime endBaogongTime; + +} + diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendRespVO.java new file mode 100644 index 000000000..d9dc78122 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordTrendRespVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Schema(description = "管理后台 - 报工趋势汇总 Response VO") +@Data +public class BaogongRecordTrendRespVO { + + @Schema(description = "报工数量(合格+不合格)") + private Long baogongNum; + + @Schema(description = "合格数量") + private Long passNum; + + @Schema(description = "不合格数量") + private Long noPassNum; + + @Schema(description = "合格率(百分比)") + private BigDecimal passRate; + + @Schema(description = "按天趋势数据") + private List dayTrend; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java index fdd077a6d..39e434982 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java @@ -33,5 +33,8 @@ public interface BaogongRecordMapper extends BaseMapperX { IPage selectStatPage(Page page, @Param("reqVO") BaogongRecordStatPageReqVO reqVO); + BaogongRecordTrendRespVO selectTrendSummary(@Param("reqVO") BaogongRecordTrendReqVO reqVO); + + List selectTrendByDay(@Param("reqVO") BaogongRecordTrendReqVO reqVO); } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java index 9bec8b49a..96212a86e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java @@ -60,5 +60,13 @@ public interface BaogongRecordService { */ PageResult getBaogongRecordStatPage(BaogongRecordStatPageReqVO reqVO); + /** + * app-首页生产概况-产品统计 + * + * @param reqVO 分页查询 + * @return 报工分页 + */ + BaogongRecordTrendRespVO getBaogongRecordTrend(BaogongRecordTrendReqVO reqVO); + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java index 4f1d3c9e3..a5b37c6f1 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java @@ -7,6 +7,7 @@ import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.baogongrecord.BaogongRecordDO; @@ -81,4 +82,21 @@ public class BaogongRecordServiceImpl implements BaogongRecordService { return new PageResult<>(result.getRecords(), result.getTotal()); } + + @Override + public BaogongRecordTrendRespVO getBaogongRecordTrend(BaogongRecordTrendReqVO reqVO) { + BaogongRecordTrendRespVO respVO = baogongRecordMapper.selectTrendSummary(reqVO); + if (respVO == null) { + respVO = new BaogongRecordTrendRespVO(); + respVO.setBaogongNum(0L); + respVO.setPassNum(0L); + respVO.setNoPassNum(0L); + respVO.setPassRate(BigDecimal.ZERO); + } + List dayTrend = baogongRecordMapper.selectTrendByDay(reqVO); + respVO.setDayTrend(dayTrend); + return respVO; + } + + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml index 30efea6ba..526e3384b 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml @@ -42,6 +42,52 @@ ORDER BY r.baogong_time DESC + + + \ No newline at end of file