From 7d8defe6e6f3822e5662c210b86a3ac6f8084f9f Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Thu, 9 May 2024 16:51:04 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=95=85=E9=9A=9C=E5=88=86=E6=9E=90=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scequipment/ScEquipmentController.java | 203 ++++++++++-------- .../scequipment/vo/ScDashboardReqVO.java | 27 +++ .../scequipment/vo/ScDashboardResVO.java | 21 ++ .../mysql/scequipment/ScEquipmentMapper.java | 22 +- .../UnqualifiedNotificationMapper.java | 6 +- .../src/api/biz/scequipment/index.ts | 94 ++++---- 6 files changed, 228 insertions(+), 145 deletions(-) create mode 100644 mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardReqVO.java create mode 100644 mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardResVO.java diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/ScEquipmentController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/ScEquipmentController.java index 066434bc..9994fa65 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/ScEquipmentController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/ScEquipmentController.java @@ -1,95 +1,108 @@ -package com.chanko.yunxi.mes.module.biz.controller.admin.scequipment; - -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; -import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; - -import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; - -import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; -import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo.*; -import com.chanko.yunxi.mes.module.biz.dal.dataobject.scequipment.ScEquipmentDO; -import com.chanko.yunxi.mes.module.biz.service.scequipment.ScEquipmentService; - -@Tag(name = "管理后台 - 数采设备表") -@RestController -@RequestMapping("/biz/sc-equipment") -@Validated -public class ScEquipmentController { - - @Resource - private ScEquipmentService scEquipmentService; - - @PostMapping("/create") - @Operation(summary = "创建数采设备表") - @PreAuthorize("@ss.hasPermission('biz:sc-equipment:create')") - public CommonResult createScEquipment(@Valid @RequestBody ScEquipmentSaveReqVO createReqVO) { - return success(scEquipmentService.createScEquipment(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新数采设备表") - @PreAuthorize("@ss.hasPermission('biz:sc-equipment:update')") - public CommonResult updateScEquipment(@Valid @RequestBody ScEquipmentSaveReqVO updateReqVO) { - scEquipmentService.updateScEquipment(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除数采设备表") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('biz:sc-equipment:delete')") - public CommonResult deleteScEquipment(@RequestParam("id") Integer id) { - scEquipmentService.deleteScEquipment(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得数采设备表") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('biz:sc-equipment:query')") - public CommonResult getScEquipment(@RequestParam("id") Integer id) { - ScEquipmentDO scEquipment = scEquipmentService.getScEquipment(id); - return success(BeanUtils.toBean(scEquipment, ScEquipmentRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得数采设备表分页") - @PreAuthorize("@ss.hasPermission('biz:sc-equipment:query')") - public CommonResult> getScEquipmentPage(@Valid ScEquipmentPageReqVO pageReqVO) { - PageResult pageResult = scEquipmentService.getScEquipmentPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, ScEquipmentRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出数采设备表 Excel") - @PreAuthorize("@ss.hasPermission('biz:sc-equipment:export')") - @OperateLog(type = EXPORT) - public void exportScEquipmentExcel(@Valid ScEquipmentPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = scEquipmentService.getScEquipmentPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "数采设备表.xls", "数据", ScEquipmentRespVO.class, - BeanUtils.toBean(list, ScEquipmentRespVO.class)); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.biz.controller.admin.scequipment; + +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.scequipment.ScEquipmentDO; +import com.chanko.yunxi.mes.module.biz.dal.mysql.scequipment.ScEquipmentMapper; +import com.chanko.yunxi.mes.module.biz.service.scequipment.ScEquipmentService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 数采设备表") +@RestController +@RequestMapping("/biz/sc-equipment") +@Validated +public class ScEquipmentController { + + @Resource + private ScEquipmentService scEquipmentService; + @Resource + private ScEquipmentMapper scEquipmentMapper; + + @PostMapping("/create") + @Operation(summary = "创建数采设备表") + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:create')") + public CommonResult createScEquipment(@Valid @RequestBody ScEquipmentSaveReqVO createReqVO) { + return success(scEquipmentService.createScEquipment(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新数采设备表") + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:update')") + public CommonResult updateScEquipment(@Valid @RequestBody ScEquipmentSaveReqVO updateReqVO) { + scEquipmentService.updateScEquipment(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除数采设备表") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:delete')") + public CommonResult deleteScEquipment(@RequestParam("id") Integer id) { + scEquipmentService.deleteScEquipment(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得数采设备表") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:query')") + public CommonResult getScEquipment(@RequestParam("id") Integer id) { + ScEquipmentDO scEquipment = scEquipmentService.getScEquipment(id); + return success(BeanUtils.toBean(scEquipment, ScEquipmentRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得数采设备表分页") + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:query')") + public CommonResult> getScEquipmentPage(@Valid ScEquipmentPageReqVO pageReqVO) { + PageResult pageResult = scEquipmentService.getScEquipmentPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ScEquipmentRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出数采设备表 Excel") + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:export')") + @OperateLog(type = EXPORT) + public void exportScEquipmentExcel(@Valid ScEquipmentPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = scEquipmentService.getScEquipmentPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "数采设备表.xls", "数据", ScEquipmentRespVO.class, + BeanUtils.toBean(list, ScEquipmentRespVO.class)); + } + + @GetMapping("/down-time") + @Operation(summary = "查询停机时间信息") + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:query')") + public CommonResult> getDownTimeInfo(@Valid ScDashboardReqVO reqVO) { + return success(scEquipmentMapper.getDownTimeInfo(reqVO)); + } + + @GetMapping("/fault-time") + @Operation(summary = "查询停机时间信息") + @PreAuthorize("@ss.hasPermission('biz:sc-equipment:query')") + public CommonResult> getFaultTimeInfo(@Valid ScDashboardReqVO reqVO) { + return success(scEquipmentMapper.getFaultTimeInfo(reqVO)); + } + +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardReqVO.java new file mode 100644 index 00000000..66b825e7 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardReqVO.java @@ -0,0 +1,27 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * @author chenxi + * @date 2024-05-09 16:36 + */ +@Data +public class ScDashboardReqVO { + + @Schema(description = "设备id") + @NotNull(message = "设备id 不能为空") + private Long id; + + @Schema(description = "开始日期") + @NotNull(message = "开始日期 不能为空") + private LocalDateTime startTime; + + @Schema(description = "结束日期") + @NotNull(message = "结束日期 不能为空") + private LocalDateTime endTime; +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardResVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardResVO.java new file mode 100644 index 00000000..96cf0943 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/scequipment/vo/ScDashboardResVO.java @@ -0,0 +1,21 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author chenxi + * @date 2024-05-09 16:37 + */ +@Data +public class ScDashboardResVO { + + @Schema(description = "日期") + private LocalDateTime date; + + @Schema(description = "时间") + private BigDecimal time; +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java index 79818c82..e4367eb8 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/scequipment/ScEquipmentMapper.java @@ -1,13 +1,18 @@ package com.chanko.yunxi.mes.module.biz.dal.mysql.scequipment; -import java.util.*; - import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo.ScDashboardReqVO; +import com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo.ScDashboardResVO; +import com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo.ScEquipmentPageReqVO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.scequipment.ScEquipmentDO; import org.apache.ibatis.annotations.Mapper; -import com.chanko.yunxi.mes.module.biz.controller.admin.scequipment.vo.*; +import org.apache.ibatis.annotations.Options; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.mapping.StatementType; + +import java.util.List; /** * 数采设备表 Mapper @@ -29,4 +34,11 @@ public interface ScEquipmentMapper extends BaseMapperX { .orderByDesc(ScEquipmentDO::getId)); } -} \ No newline at end of file + @Select("{CALL Down_Time(#{id,jdbcType=INTEGER,mode=IN}, #{startTime,jdbcType=DATE,mode=IN}, #{endTime,jdbcType=DATE,mode=IN},#{date,jdbcType=DATE,mode=OUT},#{time,jdbcType=DECIMAL,mode=OUT})}") + @Options(statementType = StatementType.CALLABLE) + List getDownTimeInfo(ScDashboardReqVO reqVO); + + @Select("{CALL Down_Time(#{id,jdbcType=INTEGER,mode=IN}, #{startTime,jdbcType=DATE,mode=IN}, #{endTime,jdbcType=DATE,mode=IN},#{time,jdbcType=DECIMAL,mode=OUT},#{date,jdbcType=DATE,mode=OUT})}") + @Options(statementType = StatementType.CALLABLE) + List getFaultTimeInfo(ScDashboardReqVO reqVO); +} diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java index 13a16664..a634e42f 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/unqualifiednotification/UnqualifiedNotificationMapper.java @@ -29,7 +29,7 @@ public interface UnqualifiedNotificationMapper extends BaseMapperX query = new MPJLambdaWrapperX<>(); query.selectAll(UnqualifiedNotificationDO.class) .select("d.code as projectCode", "d.project_name as projectName") - .select("f.name as projectSubName", "f.code as projectSubCode") + .select("f.name as projectSubName", "f.code as projectSubCode", "f.spec") .select("e.name as customerName") .select("u1.nickname as ownerName", "u2.nickname as creatorName", "u3.nickname as auditorName") .select("h.name as procedureName") @@ -70,7 +70,7 @@ public interface UnqualifiedNotificationMapper extends BaseMapperX query = new MPJLambdaWrapper<>(); query.selectAll(UnqualifiedNotificationDO.class) .select("d.code as projectCode", "d.project_name as projectName") - .select("f.name as projectSubName", "f.code as projectSubCode") + .select("f.name as projectSubName", "f.code as projectSubCode", "f.spec") .select("e.name as customerName") .select("u1.nickname as ownerName", "u2.nickname as creatorName", "u3.nickname as auditorName") .select("h.name as procedureName") @@ -95,7 +95,7 @@ public interface UnqualifiedNotificationMapper extends BaseMapperX query = new MPJLambdaWrapperX<>(); query.selectAll(UnqualifiedNotificationDO.class) .select("d.code as projectCode", "d.project_name as projectName") - .select("f.name as projectSubName", "f.code as projectSubCode") + .select("f.name as projectSubName", "f.code as projectSubCode", "f.spec") .select("e.name as customerName") .select("i.name as workshopName") .selectSum(UnqualifiedNotificationDO::getAmount, "statisticAmount") diff --git a/mes-ui/mes-ui-admin-vue3/src/api/biz/scequipment/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/biz/scequipment/index.ts index 5159c21b..cf1e95c2 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/biz/scequipment/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/biz/scequipment/index.ts @@ -1,42 +1,52 @@ -import request from '@/config/axios' - -export interface ScEquipmentVO { - id: number - nmae: string - oee: number - utilizationRate: number - qualificationRate: number - shutdownTime: number - num: number - statuss: number -} - -// 查询数采设备表分页 -export const getScEquipmentPage = async (params) => { - return await request.get({ url: `/biz/sc-equipment/page`, params }) -} - -// 查询数采设备表详情 -export const getScEquipment = async (id: number) => { - return await request.get({ url: `/biz/sc-equipment/get?id=` + id }) -} - -// 新增数采设备表 -export const createScEquipment = async (data: ScEquipmentVO) => { - return await request.post({ url: `/biz/sc-equipment/create`, data }) -} - -// 修改数采设备表 -export const updateScEquipment = async (data: ScEquipmentVO) => { - return await request.put({ url: `/biz/sc-equipment/update`, data }) -} - -// 删除数采设备表 -export const deleteScEquipment = async (id: number) => { - return await request.delete({ url: `/biz/sc-equipment/delete?id=` + id }) -} - -// 导出数采设备表 Excel -export const exportScEquipment = async (params) => { - return await request.download({ url: `/biz/sc-equipment/export-excel`, params }) -} \ No newline at end of file +import request from '@/config/axios' + +export interface ScEquipmentVO { + id: number + nmae: string + oee: number + utilizationRate: number + qualificationRate: number + shutdownTime: number + num: number + statuss: number +} + +// 查询数采设备表分页 +export const getScEquipmentPage = async (params) => { + return await request.get({ url: `/biz/sc-equipment/page`, params }) +} + +// 查询数采设备表详情 +export const getScEquipment = async (id: number) => { + return await request.get({ url: `/biz/sc-equipment/get?id=` + id }) +} + +// 新增数采设备表 +export const createScEquipment = async (data: ScEquipmentVO) => { + return await request.post({ url: `/biz/sc-equipment/create`, data }) +} + +// 修改数采设备表 +export const updateScEquipment = async (data: ScEquipmentVO) => { + return await request.put({ url: `/biz/sc-equipment/update`, data }) +} + +// 删除数采设备表 +export const deleteScEquipment = async (id: number) => { + return await request.delete({ url: `/biz/sc-equipment/delete?id=` + id }) +} + +// 导出数采设备表 Excel +export const exportScEquipment = async (params) => { + return await request.download({ url: `/biz/sc-equipment/export-excel`, params }) +} + +// 查询停机时间信息 +export const getDownTimeInfo = async (params) => { + return await request.get({ url: `/biz/sc-equipment/down-time`, params }) +} + +// 查询故障时间信息 +export const getFaultTimeInfo = async (params) => { + return await request.get({ url: `/biz/sc-equipment/fault-time`, params }) +}