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