diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index f7945fe0..261ac1cb 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -305,6 +305,8 @@ springdoc: packages-to-scan: org.dromara.ai - group: 31.投标管理模块 packages-to-scan: org.dromara.bidding + - group: 33.机械模块 + packages-to-scan: org.dromara.mechanical.jxgl - group: 32.设备模块 packages-to-scan: org.dromara.device # knife4j的增强配置,不需要增强可以不配 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxGzwxController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxGzwxController.java new file mode 100644 index 00000000..1c57d717 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxGzwxController.java @@ -0,0 +1,140 @@ +package org.dromara.mechanical.jxgl.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.device.domain.bo.DeviceInfoBo; +import org.dromara.device.domain.vo.DeviceInfoVo; +import org.dromara.device.service.IDeviceInfoService; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlHeadVo; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo; +import org.dromara.mechanical.jxgl.domain.bo.JxGzwxBo; +import org.dromara.mechanical.jxgl.service.IJxGzwxService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械故障维修 + * + * @author Lion Li + * @date 2025-12-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jxgl/gzwx") +public class JxGzwxController extends BaseController { + + private final IJxGzwxService jxGzwxService; + + + private final IDeviceInfoService deviceInfoService; + + + + + + /** + * 查询设备信息列表 + */ + @SaCheckPermission("jxgl:gzwx:list") + @GetMapping("/getlist") + public TableDataInfo list(DeviceInfoBo bo, PageQuery pageQuery) { + return deviceInfoService.queryPageList(bo, pageQuery); + } + + + /** + * 查询机械故障维修列表 + */ + @SaCheckPermission("jxgl:gzwx:list") + @GetMapping("/list") + public TableDataInfo list(JxGzwxBo bo, PageQuery pageQuery) { + return jxGzwxService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械故障维修列表 + */ + @SaCheckPermission("jxgl:gzwx:export") + @Log(title = "机械故障维修", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(JxGzwxBo bo, HttpServletResponse response) { + List list = jxGzwxService.queryList(bo); + ExcelUtil.exportExcel(list, "机械故障维修", JxGzwxVo.class, response); + } + + /** + * 获取机械故障维修详细信息 + * + * @param faultId 主键 + */ + @SaCheckPermission("jxgl:gzwx:query") + @GetMapping("/{faultId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long faultId) { + return R.ok(jxGzwxService.queryById(faultId)); + } + + /** + * 新增机械故障维修 + */ + @SaCheckPermission("jxgl:gzwx:add") + @Log(title = "机械故障维修", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody JxGzwxBo bo) { + return toAjax(jxGzwxService.insertByBo(bo)); + } + + /** + * 修改机械故障维修 + */ + @SaCheckPermission("jxgl:gzwx:edit") + @Log(title = "机械故障维修", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody JxGzwxBo bo) { + return toAjax(jxGzwxService.updateByBo(bo)); + } + + /** + * 删除机械故障维修 + * + * @param faultIds 主键串 + */ + @SaCheckPermission("jxgl:gzwx:remove") + @Log(title = "机械故障维修", businessType = BusinessType.DELETE) + @DeleteMapping("/{faultIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] faultIds) { + return toAjax(jxGzwxService.deleteWithValidByIds(List.of(faultIds), true)); + } + + /** + * 机械故障头部数据返回 + * + * + */ + @SaCheckPermission("jxgl:gzwx:list") + @Log(title = "机械故障头部数据", businessType = BusinessType.DELETE) + @GetMapping("/jxgzwx") + public R jxgzwx() { + return R.ok(jxGzwxService.jxgzwx()); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxGzwxJlController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxGzwxJlController.java new file mode 100644 index 00000000..22e39efd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxGzwxJlController.java @@ -0,0 +1,118 @@ +package org.dromara.mechanical.jxgl.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo; +import org.dromara.mechanical.jxgl.domain.bo.JxGzwxJlBo; +import org.dromara.mechanical.jxgl.service.IJxGzwxJlService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械故障维修记录 + * + * @author Lion Li + * @date 2025-12-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jxgl/gzwxJl") +public class JxGzwxJlController extends BaseController { + + private final IJxGzwxJlService jxGzwxJlService; + + /** + * 查询机械故障维修记录列表 + */ + @SaCheckPermission("jxgl:gzwxJl:list") + @GetMapping("/list") + public TableDataInfo list(JxGzwxJlBo bo, PageQuery pageQuery) { + return jxGzwxJlService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械故障维修记录列表 + */ + @SaCheckPermission("jxgl:gzwxJl:export") + @Log(title = "机械故障维修记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(JxGzwxJlBo bo, HttpServletResponse response) { + List list = jxGzwxJlService.queryList(bo); + ExcelUtil.exportExcel(list, "机械故障维修记录", JxGzwxJlVo.class, response); + } + + /** + * 获取机械故障维修记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jxgl:gzwxJl:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(jxGzwxJlService.queryById(id)); + } + + /** + * 新增机械故障维修记录 + */ + @SaCheckPermission("jxgl:gzwxJl:add") + @Log(title = "机械故障维修记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody JxGzwxJlBo bo) { + return toAjax(jxGzwxJlService.insertByBo(bo)); + } + + /** + * 修改机械故障维修记录 + */ + @SaCheckPermission("jxgl:gzwxJl:edit") + @Log(title = "机械故障维修记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody JxGzwxJlBo bo) { + return toAjax(jxGzwxJlService.updateByBo(bo)); + } + + /** + * 删除机械故障维修记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("jxgl:gzwxJl:remove") + @Log(title = "机械故障维修记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(jxGzwxJlService.deleteWithValidByIds(List.of(ids), true)); + } + + /** + * 机械故障记录头部数据返回 + * + * + */ + @SaCheckPermission("jxgl:gzwxJl:list") + @Log(title = "机械故障记录头部数据", businessType = BusinessType.DELETE) + @GetMapping("/jxgzwx") + public R jxgzwx() { + return R.ok(jxGzwxJlService.jxgzwx()); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxWhjhController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxWhjhController.java new file mode 100644 index 00000000..06a067e9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxWhjhController.java @@ -0,0 +1,138 @@ +package org.dromara.mechanical.jxgl.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.device.domain.bo.DeviceInfoBo; +import org.dromara.device.domain.vo.DeviceInfoVo; +import org.dromara.device.service.IDeviceInfoService; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhHeadVo; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo; +import org.dromara.mechanical.jxgl.domain.bo.JxWhjhBo; +import org.dromara.mechanical.jxgl.service.IJxWhjhService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械维护计划 + * + * @author Lion Li + * @date 2025-12-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jxgl/whjh") +public class JxWhjhController extends BaseController { + + private final IJxWhjhService jxWhjhService; + + private final IDeviceInfoService deviceInfoService; + + + + + + /** + * 查询设备信息列表 + */ + @SaCheckPermission("jxgl:whjh:list") + @GetMapping("/getlist") + public TableDataInfo list(DeviceInfoBo bo, PageQuery pageQuery) { + return deviceInfoService.queryPageList(bo, pageQuery); + } + + + /** + * 查询机械维护计划列表 + */ + @SaCheckPermission("jxgl:whjh:list") + @GetMapping("/list") + public TableDataInfo list(JxWhjhBo bo, PageQuery pageQuery) { + return jxWhjhService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械维护计划列表 + */ + @SaCheckPermission("jxgl:whjh:export") + @Log(title = "机械维护计划", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(JxWhjhBo bo, HttpServletResponse response) { + List list = jxWhjhService.queryList(bo); + ExcelUtil.exportExcel(list, "机械维护计划", JxWhjhVo.class, response); + } + + /** + * 获取机械维护计划详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jxgl:whjh:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(jxWhjhService.queryById(id)); + } + + /** + * 新增机械维护计划 + */ + @SaCheckPermission("jxgl:whjh:add") + @Log(title = "机械维护计划", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody JxWhjhBo bo) { + return toAjax(jxWhjhService.insertByBo(bo)); + } + + /** + * 修改机械维护计划 + */ + @SaCheckPermission("jxgl:whjh:edit") + @Log(title = "机械维护计划", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody JxWhjhBo bo) { + return toAjax(jxWhjhService.updateByBo(bo)); + } + + /** + * 删除机械维护计划 + * + * @param ids 主键串 + */ + @SaCheckPermission("jxgl:whjh:remove") + @Log(title = "机械维护计划", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(jxWhjhService.deleteWithValidByIds(List.of(ids), true)); + } + + + /** + * 机械维护计划头部数据返回 + * + * + */ + @SaCheckPermission("jxgl:whjh:list") + @Log(title = "机械维护计划", businessType = BusinessType.DELETE) + @GetMapping("/jxwh") + public R jxwhHead() { + return R.ok(jxWhjhService.jxwhHead()); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxWhjlController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxWhjlController.java new file mode 100644 index 00000000..353ec7da --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/controller/JxWhjlController.java @@ -0,0 +1,145 @@ +package org.dromara.mechanical.jxgl.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.device.domain.bo.DeviceInfoBo; +import org.dromara.device.domain.vo.DeviceInfoVo; +import org.dromara.mechanical.jxgl.domain.bo.JxWhjhBo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlHeadVo; +import org.dromara.mechanical.jxgl.service.IJxWhjhService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo; +import org.dromara.mechanical.jxgl.domain.bo.JxWhjlBo; +import org.dromara.mechanical.jxgl.service.IJxWhjlService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机械维护记录 + * + * @author Lion Li + * @date 2025-12-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/jxgl/whjl") +public class JxWhjlController extends BaseController { + + private final IJxWhjlService jxWhjlService; + + private final IJxWhjhService jxWhjhService; + + + + + + + /** + * 查询机械维护计划列表 + */ + @SaCheckPermission("jxgl:whjl:list") + @GetMapping("/getlist") + public TableDataInfo list(JxWhjhBo bo, PageQuery pageQuery) { + return jxWhjhService.queryPageList(bo, pageQuery); + } + + /** + * 查询机械维护记录列表 + */ + @SaCheckPermission("jxgl:whjl:list") + @GetMapping("/list") + public TableDataInfo list(JxWhjlBo bo, PageQuery pageQuery) { + return jxWhjlService.queryPageList(bo, pageQuery); + } + + /** + * 导出机械维护记录列表 + */ + @SaCheckPermission("jxgl:whjl:export") + @Log(title = "机械维护记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(JxWhjlBo bo, HttpServletResponse response) { + List list = jxWhjlService.queryList(bo); + ExcelUtil.exportExcel(list, "机械维护记录", JxWhjlVo.class, response); + } + + /** + * 获取机械维护记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("jxgl:whjl:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(jxWhjlService.queryById(id)); + } + + /** + * 新增机械维护记录 + */ + @SaCheckPermission("jxgl:whjl:add") + @Log(title = "机械维护记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody JxWhjlBo bo) { + return toAjax(jxWhjlService.insertByBo(bo)); + } + + /** + * 修改机械维护记录 + */ + @SaCheckPermission("jxgl:whjl:edit") + @Log(title = "机械维护记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody JxWhjlBo bo) { + return toAjax(jxWhjlService.updateByBo(bo)); + } + + /** + * 删除机械维护记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("jxgl:whjl:remove") + @Log(title = "机械维护记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(jxWhjlService.deleteWithValidByIds(List.of(ids), true)); + } + /** + * 机械维护记录头部数据返回 + * + * + */ + @SaCheckPermission("jxgl:whjl:list") + @Log(title = "机械维护记录头部数据", businessType = BusinessType.DELETE) + @GetMapping("/jxwjjl") + public R jxwhHead() { + return R.ok(jxWhjlService.jxwhHead()); + } + + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxGzwx.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxGzwx.java new file mode 100644 index 00000000..aa0cf93d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxGzwx.java @@ -0,0 +1,91 @@ +package org.dromara.mechanical.jxgl.domain; + +import jakarta.validation.constraints.NotBlank; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 机械故障维修对象 jx_gzwx + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_gzwx") +public class JxGzwx extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 故障ID + */ + @TableId(value = "fault_id") + private Long faultId; + + /** + * 台账ID + */ + private Long equipmentId; + + /** + * 设备名称/型号(显示用) + */ + private String equipmentName; + + /** + * 故障发生时间 + */ + private LocalDateTime faultTime; + + /** + * 故障类型 (发动机/液压系统/电器系统/底盘/其他) + */ + private String faultType; + + /** + * 故障描述 + */ + private String faultDescription; + + /** + * 故障严重程度 (轻微/一般/严重/停机) + */ + private String severity; + + /** + * 维修预期完成日期 + */ + private LocalDate repairStartTime; + + /** + * 状态 维修中 已恢复 关闭 + */ + private String status; + + /** + * 故障照片、维修工单 + */ + private String attachments; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxGzwxJl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxGzwxJl.java new file mode 100644 index 00000000..b06e8a2d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxGzwxJl.java @@ -0,0 +1,114 @@ +package org.dromara.mechanical.jxgl.domain; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; +import java.time.LocalDateTime; + +/** + * 机械故障维修记录对象 jx_gzwx_jl + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_gzwx_jl") +public class JxGzwxJl extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @TableId(value = "id") + private Long id; + + /** + * 故障ID + */ + private Long faultId; + + + /** + * 台账ID + */ + private Long equipmentId; + + + /** + * 设备名称/型号(显示用) + */ + private String equipmentName; + + /** + * 维修开始时间 + */ + private LocalDateTime repairStartTime; + + /** + * 维修结束时间 + */ + private LocalDateTime repairEndTime; + + /** + * 维修人员 + */ + private Long repairPerson; + + /** + * 维修内容 + */ + private String repairContent; + + /** + * 更换配件 + */ + private String partsUsed; + + /** + * 维修费用(材料费 + 工时费) + */ + private BigDecimal repairCost; + + /** + * 原因分析 + */ + private String faultCause; + + /** + * 预防措施 + */ + private String preventiveActions; + + /** + * 状态 维修中 已恢复 关闭 + */ + private String status; + + /** + * 故障照片、维修工单 + */ + private String attachments; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxWhjh.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxWhjh.java new file mode 100644 index 00000000..076488d6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxWhjh.java @@ -0,0 +1,103 @@ +package org.dromara.mechanical.jxgl.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; +import java.time.LocalDate; + +/** + * 机械维护计划对象 jx_whjh + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_whjh") +public class JxWhjh extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 计划ID(主键) + */ + @TableId(value = "id") + private Long id; + + /** + * 台账ID(关联设备台账) + */ + private Long equipmentId; + + /** + * 设备名称/型号(显示用) + */ + private String equipmentName; + + /** + * 计划类型 字典 + */ + private String planType; + + /** + * 保养级别 字典 + */ + private String maintenanceLevel; + + /** + * 保养内容 + */ + private String maintenanceItems; + + /** + * 周期类型 字典 + */ + private String cycleType; + + /** + * 周期值 + */ + private BigDecimal cycleValue; + + /** + * 计划开始日期 + */ + private LocalDate expectedStartDate; + + /** + * 计划截止日期 + */ + private LocalDate expectedEndDate; + + /** + * 负责人员 + */ + private Long responsiblePerson; + + /** + * 状态 (未开始/进行中/已完成/逾期) + */ + private String status; + + /** + * 提前几天提醒 + */ + private Long remindBeforeDays; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxWhjl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxWhjl.java new file mode 100644 index 00000000..134cf973 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/JxWhjl.java @@ -0,0 +1,96 @@ +package org.dromara.mechanical.jxgl.domain; + +import jakarta.validation.constraints.NotBlank; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; +import java.time.LocalDate; + +/** + * 机械维护记录对象 jx_whjl + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("jx_whjl") +public class JxWhjl extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 记录ID + */ + @TableId(value = "id") + private Long id; + + /** + * 所属计划ID(可空,因为有些是临时保养) + */ + private Long whjhId; + + /** + * 台账ID + */ + private Long equipmentId; + /** + * 设备名称/型号(显示用) + */ + private String equipmentName; + + + /** + * 实际保养日期 + */ + private LocalDate maintenanceDate; + + /** + * 当日/累计工时(用于判断周期) + */ + private BigDecimal maintenanceHours; + + /** + * 实际保养内容(JSON) + */ + private String maintenanceItems; + + /** + * 更换配件列表 + */ + private String partsReplaced; + + /** + * 使用耗材(润滑油、滤芯等) + */ + private String materialsUsed; + + /** + * 执行人 + */ + private Long maintainer; + + /** + * 保养结果(正常/异常/需复检) + */ + private String maintenanceResult; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxGzwxBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxGzwxBo.java new file mode 100644 index 00000000..dcb583e1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxGzwxBo.java @@ -0,0 +1,95 @@ +package org.dromara.mechanical.jxgl.domain.bo; + +import org.dromara.mechanical.jxgl.domain.JxGzwx; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 机械故障维修业务对象 jx_gzwx + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxGzwx.class, reverseConvertGenerate = false) +public class JxGzwxBo extends BaseEntity { + + /** + * 故障ID + */ + private Long faultId; + + /** + * 台账ID + */ + @NotNull(message = "台账ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long equipmentId; + + + /** + * 设备名称/型号(显示用) + */ + @NotBlank(message = "设备名称/型号(显示用)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + /** + * 故障发生时间 + */ + @NotNull(message = "故障发生时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDateTime faultTime; + + /** + * 故障类型 (发动机/液压系统/电器系统/底盘/其他) + */ + @NotBlank(message = "故障类型 (发动机/液压系统/电器系统/底盘/其他)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String faultType; + + /** + * 故障描述 + */ + @NotBlank(message = "故障描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String faultDescription; + + /** + * 故障严重程度 (轻微/一般/严重/停机) + */ + @NotBlank(message = "故障严重程度 (轻微/一般/严重/停机)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String severity; + + /** + * 维修预期完成日期 + */ + private LocalDate repairStartTime; + + /** + * 状态 维修中 已恢复 关闭 + */ + @NotBlank(message = "状态 维修中 已恢复 关闭不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 故障照片、维修工单 + */ + private String attachments; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxGzwxJlBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxGzwxJlBo.java new file mode 100644 index 00000000..65bdab3d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxGzwxJlBo.java @@ -0,0 +1,111 @@ +package org.dromara.mechanical.jxgl.domain.bo; + +import org.dromara.mechanical.jxgl.domain.JxGzwxJl; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 机械故障维修记录业务对象 jx_gzwx_jl + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxGzwxJl.class, reverseConvertGenerate = false) +public class JxGzwxJlBo extends BaseEntity { + + /** + * ID + */ + private Long id; + + /** + * 故障ID + */ + @NotNull(message = "故障ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long faultId; + + /** + * 台账ID + */ + @NotNull(message = "台账ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long equipmentId; + + + /** + * 设备名称/型号(显示用) + */ + @NotBlank(message = "设备名称/型号(显示用)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + /** + * 维修开始时间 + */ + private LocalDateTime repairStartTime; + + /** + * 维修结束时间 + */ + private LocalDateTime repairEndTime; + + /** + * 维修人员 + */ + private Long repairPerson; + + /** + * 维修内容 + */ + private String repairContent; + + /** + * 更换配件 + */ + private String partsUsed; + + /** + * 维修费用(材料费 + 工时费) + */ + private BigDecimal repairCost; + + /** + * 原因分析 + */ + private String faultCause; + + /** + * 预防措施 + */ + private String preventiveActions; + + /** + * 状态 维修中 已恢复 关闭 + */ + @NotBlank(message = "状态 维修中 已恢复 关闭不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 故障照片、维修工单 + */ + private String attachments; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxWhjhBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxWhjhBo.java new file mode 100644 index 00000000..b240229f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxWhjhBo.java @@ -0,0 +1,109 @@ +package org.dromara.mechanical.jxgl.domain.bo; + +import org.dromara.mechanical.jxgl.domain.JxWhjh; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 机械维护计划业务对象 jx_whjh + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxWhjh.class, reverseConvertGenerate = false) +public class JxWhjhBo extends BaseEntity { + + /** + * 计划ID(主键) + */ + private Long id; + + /** + * 台账ID(关联设备台账) + */ + @NotNull(message = "台账ID(关联设备台账)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long equipmentId; + + /** + * 设备名称/型号(显示用) + */ + @NotBlank(message = "设备名称/型号(显示用)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + /** + * 计划类型 字典 + */ + @NotBlank(message = "计划类型 字典不能为空", groups = { AddGroup.class, EditGroup.class }) + private String planType; + + /** + * 保养级别 字典 + */ + @NotBlank(message = "保养级别 字典不能为空", groups = { AddGroup.class, EditGroup.class }) + private String maintenanceLevel; + + /** + * 保养内容 + */ + private String maintenanceItems; + + /** + * 周期类型 字典 + */ + private String cycleType; + + /** + * 周期值 + */ + private BigDecimal cycleValue; + + /** + * 计划开始日期 + */ + @NotNull(message = "计划开始日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate expectedStartDate; + + /** + * 计划截止日期 + */ + @NotNull(message = "计划截止日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate expectedEndDate; + + /** + * 负责人员 + */ + @NotNull(message = "负责人员不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long responsiblePerson; + + /** + * 状态 (未开始/进行中/已完成/逾期) + */ + @NotBlank(message = "状态 (未开始/进行中/已完成/逾期)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 提前几天提醒 + */ + private Long remindBeforeDays; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxWhjlBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxWhjlBo.java new file mode 100644 index 00000000..28808e00 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/bo/JxWhjlBo.java @@ -0,0 +1,97 @@ +package org.dromara.mechanical.jxgl.domain.bo; + +import org.dromara.mechanical.jxgl.domain.JxWhjl; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 机械维护记录业务对象 jx_whjl + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = JxWhjl.class, reverseConvertGenerate = false) +public class JxWhjlBo extends BaseEntity { + + /** + * 记录ID + */ + private Long id; + + /** + * 所属计划ID(可空,因为有些是临时保养) + */ + private Long whjhId; + + /** + * 台账ID + */ + @NotNull(message = "台账ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long equipmentId; + /** + * 设备名称/型号(显示用) + */ + @NotBlank(message = "设备名称/型号(显示用)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String equipmentName; + + + /** + * 实际保养日期 + */ + @NotNull(message = "实际保养日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private LocalDate maintenanceDate; + + /** + * 当日/累计工时(用于判断周期) + */ + @NotNull(message = "当日/累计工时(用于判断周期)不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal maintenanceHours; + + /** + * 实际保养内容(JSON) + */ + private String maintenanceItems; + + /** + * 更换配件列表 + */ + private String partsReplaced; + + /** + * 使用耗材(润滑油、滤芯等) + */ + private String materialsUsed; + + /** + * 执行人 + */ + @NotNull(message = "执行人不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long maintainer; + + /** + * 保养结果(正常/异常/需复检) + */ + @NotBlank(message = "保养结果(正常/异常/需复检)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String maintenanceResult; + + /** + * 备注 + */ + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxHeadVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxHeadVo.java new file mode 100644 index 00000000..287bcb5c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxHeadVo.java @@ -0,0 +1,21 @@ +package org.dromara.mechanical.jxgl.domain.vo; + + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class JxGzwxHeadVo implements Serializable { + + //总计划数 + private Long zs = 0L; + + //待处理 + private Long dcl = 0L; + + // 已完成 + private Long ywc = 0L; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxJlVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxJlVo.java new file mode 100644 index 00000000..22122ead --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxJlVo.java @@ -0,0 +1,137 @@ +package org.dromara.mechanical.jxgl.domain.vo; + +import java.math.BigDecimal; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.mechanical.jxgl.domain.JxGzwxJl; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + + + +/** + * 机械故障维修记录视图对象 jx_gzwx_jl + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxGzwxJl.class) +public class JxGzwxJlVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ExcelProperty(value = "ID") + private Long id; + + /** + * 台账ID + */ + private Long equipmentId; + + + /** + * 设备名称/型号(显示用) + */ + private String equipmentName; + + /** + * 故障ID + */ + @ExcelProperty(value = "故障ID") + private Long faultId; + + /** + * 维修开始时间 + */ + @ExcelProperty(value = "维修开始时间") + private LocalDateTime repairStartTime; + + /** + * 维修结束时间 + */ + @ExcelProperty(value = "维修结束时间") + private LocalDateTime repairEndTime; + + /** + * 维修人员 + */ + @ExcelProperty(value = "维修人员") + private Long repairPerson; + + /** + * 维修内容 + */ + @ExcelProperty(value = "维修内容") + private String repairContent; + + /** + * 更换配件 + */ + @ExcelProperty(value = "更换配件") + private String partsUsed; + + /** + * 维修费用(材料费 + 工时费) + */ + @ExcelProperty(value = "维修费用", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "材=料费,+=,工=时费") + private BigDecimal repairCost; + + /** + * 原因分析 + */ + @ExcelProperty(value = "原因分析 ") + private String faultCause; + + /** + * 预防措施 + */ + @ExcelProperty(value = "预防措施") + private String preventiveActions; + + /** + * 状态 维修中 已恢复 关闭 + */ + @ExcelProperty(value = "状态 维修中 已恢复 关闭", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_gzwxzt") + private String status; + + /** + * 故障照片、维修工单 + */ + @ExcelProperty(value = "故障照片、维修工单") + private String attachments; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxVo.java new file mode 100644 index 00000000..74f4b586 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxGzwxVo.java @@ -0,0 +1,112 @@ +package org.dromara.mechanical.jxgl.domain.vo; + +import jakarta.validation.constraints.NotBlank; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.mechanical.jxgl.domain.JxGzwx; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; + + + +/** + * 机械故障维修视图对象 jx_gzwx + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxGzwx.class) +public class JxGzwxVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 故障ID + */ + @ExcelProperty(value = "故障ID") + private Long faultId; + + /** + * 台账ID + */ + @ExcelProperty(value = "台账ID") + private Long equipmentId; + + /** + * 设备名称/型号(显示用) + */ + private String equipmentName; + + /** + * 故障发生时间 + */ + @ExcelProperty(value = "故障发生时间") + private LocalDateTime faultTime; + + /** + * 故障类型 (发动机/液压系统/电器系统/底盘/其他) + */ + @ExcelProperty(value = "故障类型 ", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_gzlx") + private String faultType; + + /** + * 故障描述 + */ + @ExcelProperty(value = "故障描述") + private String faultDescription; + + /** + * 故障严重程度 (轻微/一般/严重/停机) + */ + @ExcelProperty(value = "故障严重程度 ", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_gzyzcd") + private String severity; + + /** + * 维修预期完成日期 + */ + @ExcelProperty(value = "维修预期完成日期") + private LocalDate repairStartTime; + + /** + * 状态 维修中 已恢复 关闭 + */ + @ExcelProperty(value = "状态 维修中 已恢复 关闭", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_gzwxzt") + private String status; + + /** + * 故障照片、维修工单 + */ + @ExcelProperty(value = "故障照片、维修工单") + private String attachments; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjhHeadVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjhHeadVo.java new file mode 100644 index 00000000..2ecb573b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjhHeadVo.java @@ -0,0 +1,23 @@ +package org.dromara.mechanical.jxgl.domain.vo; + +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class JxWhjhHeadVo implements Serializable { + //总计划数 + private Long zs = 0L; + + //未完成 + private Long wwc = 0L; + //已完成 + private Long ywc = 0L; + //逾期 + private Long yq = 0L; + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjhVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjhVo.java new file mode 100644 index 00000000..13c866eb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjhVo.java @@ -0,0 +1,132 @@ +package org.dromara.mechanical.jxgl.domain.vo; + +import java.math.BigDecimal; +import org.dromara.mechanical.jxgl.domain.JxWhjh; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Date; + + + +/** + * 机械维护计划视图对象 jx_whjh + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxWhjh.class) +public class JxWhjhVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 计划ID(主键) + */ + @ExcelProperty(value = "计划ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "主=键") + private Long id; + + /** + * 台账ID(关联设备台账) + */ + @ExcelProperty(value = "台账ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "关=联设备台账") + private Long equipmentId; + + /** + * 设备名称/型号(显示用) + */ + @ExcelProperty(value = "设备名称/型号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "显=示用") + private String equipmentName; + + /** + * 计划类型 字典 + */ + @ExcelProperty(value = "计划类型 字典", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_jhlx") + private String planType; + + /** + * 保养级别 字典 + */ + @ExcelProperty(value = "保养级别 字典", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_byjb") + private String maintenanceLevel; + + /** + * 保养内容 + */ + @ExcelProperty(value = "保养内容") + private String maintenanceItems; + + /** + * 周期类型 字典 + */ + @ExcelProperty(value = "周期类型 字典", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_zqlx") + private String cycleType; + + /** + * 周期值 + */ + @ExcelProperty(value = "周期值") + private BigDecimal cycleValue; + + /** + * 计划开始日期 + */ + @ExcelProperty(value = "计划开始日期") + private LocalDate expectedStartDate; + + /** + * 计划截止日期 + */ + @ExcelProperty(value = "计划截止日期") + private LocalDate expectedEndDate; + + /** + * 负责人员 + */ + @ExcelProperty(value = "负责人员") + private Long responsiblePerson; + + /** + * 状态 (未开始/进行中/已完成/逾期) + */ + @ExcelProperty(value = "状态 ", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "jx_whjhzt") + private String status; + + /** + * 提前几天提醒 + */ + @ExcelProperty(value = "提前几天提醒") + private Long remindBeforeDays; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjlHeadVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjlHeadVo.java new file mode 100644 index 00000000..24159744 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjlHeadVo.java @@ -0,0 +1,17 @@ +package org.dromara.mechanical.jxgl.domain.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class JxWhjlHeadVo implements Serializable { + //总数 + private Long zs = 0L; + //正常 + private Long zc = 0L; + //异常 + private Long yc = 0L; + //需复检 + private Long xfc = 0L; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjlVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjlVo.java new file mode 100644 index 00000000..805715b2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/domain/vo/JxWhjlVo.java @@ -0,0 +1,122 @@ +package org.dromara.mechanical.jxgl.domain.vo; + +import java.math.BigDecimal; + +import jakarta.validation.constraints.NotBlank; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.mechanical.jxgl.domain.JxWhjl; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; +import java.util.Date; + + + +/** + * 机械维护记录视图对象 jx_whjl + * + * @author Lion Li + * @date 2025-12-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = JxWhjl.class) +public class JxWhjlVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 记录ID + */ + @ExcelProperty(value = "记录ID") + private Long id; + + /** + * 所属计划ID(可空,因为有些是临时保养) + */ + @ExcelProperty(value = "所属计划ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "可=空,因为有些是临时保养") + private Long whjhId; + + /** + * 台账ID + */ + @ExcelProperty(value = "台账ID") + private Long equipmentId; + + /** + * 设备名称/型号(显示用) + */ + private String equipmentName; + + + /** + * 实际保养日期 + */ + @ExcelProperty(value = "实际保养日期") + private LocalDate maintenanceDate; + + /** + * 当日/累计工时(用于判断周期) + */ + @ExcelProperty(value = "当日/累计工时", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "用=于判断周期") + private BigDecimal maintenanceHours; + + /** + * 实际保养内容(JSON) + */ + @ExcelProperty(value = "实际保养内容", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "J=SON") + private String maintenanceItems; + + /** + * 更换配件列表 + */ + @ExcelProperty(value = "更换配件列表") + private String partsReplaced; + + /** + * 使用耗材(润滑油、滤芯等) + */ + @ExcelProperty(value = "使用耗材", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "润=滑油、滤芯等") + private String materialsUsed; + + /** + * 执行人 + */ + @ExcelProperty(value = "执行人") + private Long maintainer; + + /** + * 保养结果(正常/异常/需复检) + */ + @ExcelProperty(value = "保养结果", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "正=常/异常/需复检") + private String maintenanceResult; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 文件id (多个文件逗号分隔) + */ + @ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "多=个文件逗号分隔") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxGzwxJlMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxGzwxJlMapper.java new file mode 100644 index 00000000..c31756f5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxGzwxJlMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxgl.mapper; + +import org.dromara.mechanical.jxgl.domain.JxGzwxJl; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械故障维修记录Mapper接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface JxGzwxJlMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxGzwxMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxGzwxMapper.java new file mode 100644 index 00000000..51d42287 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxGzwxMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxgl.mapper; + +import org.dromara.mechanical.jxgl.domain.JxGzwx; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械故障维修Mapper接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface JxGzwxMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxWhjhMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxWhjhMapper.java new file mode 100644 index 00000000..c4f3cf0e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxWhjhMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxgl.mapper; + +import org.dromara.mechanical.jxgl.domain.JxWhjh; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械维护计划Mapper接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface JxWhjhMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxWhjlMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxWhjlMapper.java new file mode 100644 index 00000000..d1b9570c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/mapper/JxWhjlMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mechanical.jxgl.mapper; + +import org.dromara.mechanical.jxgl.domain.JxWhjl; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机械维护记录Mapper接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface JxWhjlMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxGzwxJlService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxGzwxJlService.java new file mode 100644 index 00000000..a4b2634d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxGzwxJlService.java @@ -0,0 +1,73 @@ +package org.dromara.mechanical.jxgl.service; + +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo; +import org.dromara.mechanical.jxgl.domain.bo.JxGzwxJlBo; +import org.dromara.mechanical.jxgl.domain.JxGzwxJl; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械故障维修记录Service接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface IJxGzwxJlService extends IService{ + + /** + * 查询机械故障维修记录 + * + * @param id 主键 + * @return 机械故障维修记录 + */ + JxGzwxJlVo queryById(Long id); + + /** + * 分页查询机械故障维修记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械故障维修记录分页列表 + */ + TableDataInfo queryPageList(JxGzwxJlBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械故障维修记录列表 + * + * @param bo 查询条件 + * @return 机械故障维修记录列表 + */ + List queryList(JxGzwxJlBo bo); + + /** + * 新增机械故障维修记录 + * + * @param bo 机械故障维修记录 + * @return 是否新增成功 + */ + Boolean insertByBo(JxGzwxJlBo bo); + + /** + * 修改机械故障维修记录 + * + * @param bo 机械故障维修记录 + * @return 是否修改成功 + */ + Boolean updateByBo(JxGzwxJlBo bo); + + /** + * 校验并批量删除机械故障维修记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JxGzwxHeadVo jxgzwx(); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxGzwxService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxGzwxService.java new file mode 100644 index 00000000..f040ddc5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxGzwxService.java @@ -0,0 +1,73 @@ +package org.dromara.mechanical.jxgl.service; + +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo; +import org.dromara.mechanical.jxgl.domain.bo.JxGzwxBo; +import org.dromara.mechanical.jxgl.domain.JxGzwx; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械故障维修Service接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface IJxGzwxService extends IService{ + + /** + * 查询机械故障维修 + * + * @param faultId 主键 + * @return 机械故障维修 + */ + JxGzwxVo queryById(Long faultId); + + /** + * 分页查询机械故障维修列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械故障维修分页列表 + */ + TableDataInfo queryPageList(JxGzwxBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械故障维修列表 + * + * @param bo 查询条件 + * @return 机械故障维修列表 + */ + List queryList(JxGzwxBo bo); + + /** + * 新增机械故障维修 + * + * @param bo 机械故障维修 + * @return 是否新增成功 + */ + Boolean insertByBo(JxGzwxBo bo); + + /** + * 修改机械故障维修 + * + * @param bo 机械故障维修 + * @return 是否修改成功 + */ + Boolean updateByBo(JxGzwxBo bo); + + /** + * 校验并批量删除机械故障维修信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JxGzwxHeadVo jxgzwx(); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxWhjhService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxWhjhService.java new file mode 100644 index 00000000..3c4127d1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxWhjhService.java @@ -0,0 +1,73 @@ +package org.dromara.mechanical.jxgl.service; + +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo; +import org.dromara.mechanical.jxgl.domain.bo.JxWhjhBo; +import org.dromara.mechanical.jxgl.domain.JxWhjh; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械维护计划Service接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface IJxWhjhService extends IService{ + + /** + * 查询机械维护计划 + * + * @param id 主键 + * @return 机械维护计划 + */ + JxWhjhVo queryById(Long id); + + /** + * 分页查询机械维护计划列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械维护计划分页列表 + */ + TableDataInfo queryPageList(JxWhjhBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械维护计划列表 + * + * @param bo 查询条件 + * @return 机械维护计划列表 + */ + List queryList(JxWhjhBo bo); + + /** + * 新增机械维护计划 + * + * @param bo 机械维护计划 + * @return 是否新增成功 + */ + Boolean insertByBo(JxWhjhBo bo); + + /** + * 修改机械维护计划 + * + * @param bo 机械维护计划 + * @return 是否修改成功 + */ + Boolean updateByBo(JxWhjhBo bo); + + /** + * 校验并批量删除机械维护计划信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JxWhjhHeadVo jxwhHead(); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxWhjlService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxWhjlService.java new file mode 100644 index 00000000..6f2255da --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/IJxWhjlService.java @@ -0,0 +1,73 @@ +package org.dromara.mechanical.jxgl.service; + +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo; +import org.dromara.mechanical.jxgl.domain.bo.JxWhjlBo; +import org.dromara.mechanical.jxgl.domain.JxWhjl; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 机械维护记录Service接口 + * + * @author Lion Li + * @date 2025-12-01 + */ +public interface IJxWhjlService extends IService{ + + /** + * 查询机械维护记录 + * + * @param id 主键 + * @return 机械维护记录 + */ + JxWhjlVo queryById(Long id); + + /** + * 分页查询机械维护记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械维护记录分页列表 + */ + TableDataInfo queryPageList(JxWhjlBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机械维护记录列表 + * + * @param bo 查询条件 + * @return 机械维护记录列表 + */ + List queryList(JxWhjlBo bo); + + /** + * 新增机械维护记录 + * + * @param bo 机械维护记录 + * @return 是否新增成功 + */ + Boolean insertByBo(JxWhjlBo bo); + + /** + * 修改机械维护记录 + * + * @param bo 机械维护记录 + * @return 是否修改成功 + */ + Boolean updateByBo(JxWhjlBo bo); + + /** + * 校验并批量删除机械维护记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + JxWhjlHeadVo jxwhHead(); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxJlServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxJlServiceImpl.java new file mode 100644 index 00000000..34ef2b9e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxJlServiceImpl.java @@ -0,0 +1,171 @@ +package org.dromara.mechanical.jxgl.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.mechanical.jxgl.domain.JxGzwx; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo; +import org.dromara.mechanical.jxgl.service.IJxGzwxService; +import org.springframework.stereotype.Service; +import org.dromara.mechanical.jxgl.domain.bo.JxGzwxJlBo; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo; +import org.dromara.mechanical.jxgl.domain.JxGzwxJl; +import org.dromara.mechanical.jxgl.mapper.JxGzwxJlMapper; +import org.dromara.mechanical.jxgl.service.IJxGzwxJlService; + +import java.time.LocalDate; +import java.time.temporal.TemporalAdjusters; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机械故障维修记录Service业务层处理 + * + * @author Lion Li + * @date 2025-12-01 + */ +@RequiredArgsConstructor +@Service +public class JxGzwxJlServiceImpl extends ServiceImpl implements IJxGzwxJlService { + + private final JxGzwxJlMapper baseMapper; + + private final IJxGzwxService jxGzwxService; + + /** + * 查询机械故障维修记录 + * + * @param id 主键 + * @return 机械故障维修记录 + */ + @Override + public JxGzwxJlVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械故障维修记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械故障维修记录分页列表 + */ + @Override + public TableDataInfo queryPageList(JxGzwxJlBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的机械故障维修记录列表 + * + * @param bo 查询条件 + * @return 机械故障维修记录列表 + */ + @Override + public List queryList(JxGzwxJlBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxGzwxJlBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxGzwxJl::getId); + lqw.eq(bo.getFaultId() != null, JxGzwxJl::getFaultId, bo.getFaultId()); + lqw.eq(bo.getRepairStartTime() != null, JxGzwxJl::getRepairStartTime, bo.getRepairStartTime()); + lqw.eq(bo.getRepairEndTime() != null, JxGzwxJl::getRepairEndTime, bo.getRepairEndTime()); + lqw.eq(bo.getRepairPerson() != null, JxGzwxJl::getRepairPerson, bo.getRepairPerson()); + lqw.eq(StringUtils.isNotBlank(bo.getRepairContent()), JxGzwxJl::getRepairContent, bo.getRepairContent()); + lqw.eq(StringUtils.isNotBlank(bo.getPartsUsed()), JxGzwxJl::getPartsUsed, bo.getPartsUsed()); + lqw.eq(bo.getRepairCost() != null, JxGzwxJl::getRepairCost, bo.getRepairCost()); + lqw.eq(StringUtils.isNotBlank(bo.getFaultCause()), JxGzwxJl::getFaultCause, bo.getFaultCause()); + lqw.eq(StringUtils.isNotBlank(bo.getPreventiveActions()), JxGzwxJl::getPreventiveActions, bo.getPreventiveActions()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), JxGzwxJl::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAttachments()), JxGzwxJl::getAttachments, bo.getAttachments()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxGzwxJl::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械故障维修记录 + * + * @param bo 机械故障维修记录 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxGzwxJlBo bo) { + JxGzwxJl add = MapstructUtils.convert(bo, JxGzwxJl.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (bo != null){ + jxGzwxService.getBaseMapper().update(new UpdateWrapper().eq("fault_id", bo.getFaultId()).set("status",bo.getStatus())); + } + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械故障维修记录 + * + * @param bo 机械故障维修记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxGzwxJlBo bo) { + JxGzwxJl update = MapstructUtils.convert(bo, JxGzwxJl.class); + validEntityBeforeSave(update); + if (bo != null){ + jxGzwxService.getBaseMapper().update(new UpdateWrapper().eq("fault_id", bo.getFaultId()).set("status",bo.getStatus())); + } + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxGzwxJl entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械故障维修记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JxGzwxHeadVo jxgzwx() { + JxGzwxHeadVo jxGzwxHeadVo = new JxGzwxHeadVo(); + List jxGzwxes = this.baseMapper.selectList(new LambdaQueryWrapper().ge(JxGzwxJl::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()))); + if (jxGzwxes != null && jxGzwxes.size() > 0) { + long wxz = jxGzwxes.stream().filter(jxGzwx -> "1".equals(jxGzwx.getStatus())).count(); + long hf = jxGzwxes.stream().filter(jxGzwx -> "2".equals(jxGzwx.getStatus())).count(); + + jxGzwxHeadVo.setDcl(wxz); + jxGzwxHeadVo.setZs(Long.valueOf(jxGzwxes.size())); + jxGzwxHeadVo.setYwc(hf); + } + return jxGzwxHeadVo; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxServiceImpl.java new file mode 100644 index 00000000..9f75c38d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxGzwxServiceImpl.java @@ -0,0 +1,178 @@ +package org.dromara.mechanical.jxgl.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.mechanical.jxgl.domain.JxWhjh; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.springframework.stereotype.Service; +import org.dromara.mechanical.jxgl.domain.bo.JxGzwxBo; +import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo; +import org.dromara.mechanical.jxgl.domain.JxGzwx; +import org.dromara.mechanical.jxgl.mapper.JxGzwxMapper; +import org.dromara.mechanical.jxgl.service.IJxGzwxService; + +import java.time.LocalDate; +import java.time.temporal.TemporalAdjusters; +import java.util.*; + +/** + * 机械故障维修Service业务层处理 + * + * @author Lion Li + * @date 2025-12-01 + */ +@RequiredArgsConstructor +@Service +public class JxGzwxServiceImpl extends ServiceImpl implements IJxGzwxService { + + private final JxGzwxMapper baseMapper; + + private final SysOssServiceImpl sysOssService; + + /** + * 查询机械故障维修 + * + * @param faultId 主键 + * @return 机械故障维修 + */ + @Override + public JxGzwxVo queryById(Long faultId){ + return baseMapper.selectVoById(faultId); + } + + /** + * 分页查询机械故障维修列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械故障维修分页列表 + */ + @Override + public TableDataInfo queryPageList(JxGzwxBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的机械故障维修列表 + * + * @param bo 查询条件 + * @return 机械故障维修列表 + */ + @Override + public List queryList(JxGzwxBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxGzwxBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxGzwx::getFaultId); + lqw.eq(bo.getEquipmentId() != null, JxGzwx::getEquipmentId, bo.getEquipmentId()); + lqw.eq(bo.getFaultTime() != null, JxGzwx::getFaultTime, bo.getFaultTime()); + lqw.eq(StringUtils.isNotBlank(bo.getFaultType()), JxGzwx::getFaultType, bo.getFaultType()); + lqw.eq(StringUtils.isNotBlank(bo.getFaultDescription()), JxGzwx::getFaultDescription, bo.getFaultDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getSeverity()), JxGzwx::getSeverity, bo.getSeverity()); + lqw.eq(bo.getRepairStartTime() != null, JxGzwx::getRepairStartTime, bo.getRepairStartTime()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), JxGzwx::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAttachments()), JxGzwx::getAttachments, bo.getAttachments()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxGzwx::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械故障维修 + * + * @param bo 机械故障维修 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxGzwxBo bo) { + JxGzwx add = MapstructUtils.convert(bo, JxGzwx.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setFaultId(add.getFaultId()); + } + return flag; + } + + /** + * 修改机械故障维修 + * + * @param bo 机械故障维修 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxGzwxBo bo) { + JxGzwx update = MapstructUtils.convert(bo, JxGzwx.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxGzwx entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械故障维修信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + JxGzwxVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JxGzwxHeadVo jxgzwx() { + + JxGzwxHeadVo jxGzwxHeadVo = new JxGzwxHeadVo(); + List jxGzwxes = this.baseMapper.selectList(new LambdaQueryWrapper().ge(JxGzwx::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()))); + if (jxGzwxes != null && jxGzwxes.size() > 0) { + long wxz = jxGzwxes.stream().filter(jxGzwx -> "1".equals(jxGzwx.getStatus())).count(); + long hf = jxGzwxes.stream().filter(jxGzwx -> "2".equals(jxGzwx.getStatus())).count(); + + jxGzwxHeadVo.setDcl(wxz); + jxGzwxHeadVo.setZs(Long.valueOf(jxGzwxes.size())); + jxGzwxHeadVo.setYwc(hf); + } + + + return jxGzwxHeadVo; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxWhjhServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxWhjhServiceImpl.java new file mode 100644 index 00000000..cfe4bf09 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxWhjhServiceImpl.java @@ -0,0 +1,177 @@ +package org.dromara.mechanical.jxgl.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhHeadVo; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.settlement.domain.vo.XzdJsSjJungonVo; +import org.springframework.stereotype.Service; +import org.dromara.mechanical.jxgl.domain.bo.JxWhjhBo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo; +import org.dromara.mechanical.jxgl.domain.JxWhjh; +import org.dromara.mechanical.jxgl.mapper.JxWhjhMapper; +import org.dromara.mechanical.jxgl.service.IJxWhjhService; + +import java.time.LocalDate; +import java.time.temporal.TemporalAdjusters; +import java.util.*; + +/** + * 机械维护计划Service业务层处理 + * + * @author Lion Li + * @date 2025-12-01 + */ +@RequiredArgsConstructor +@Service +public class JxWhjhServiceImpl extends ServiceImpl implements IJxWhjhService { + + private final JxWhjhMapper baseMapper; + private final SysOssServiceImpl sysOssService; + + /** + * 查询机械维护计划 + * + * @param id 主键 + * @return 机械维护计划 + */ + @Override + public JxWhjhVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械维护计划列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械维护计划分页列表 + */ + @Override + public TableDataInfo queryPageList(JxWhjhBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的机械维护计划列表 + * + * @param bo 查询条件 + * @return 机械维护计划列表 + */ + @Override + public List queryList(JxWhjhBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxWhjhBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxWhjh::getId); + lqw.eq(bo.getEquipmentId() != null, JxWhjh::getEquipmentId, bo.getEquipmentId()); + lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), JxWhjh::getEquipmentName, bo.getEquipmentName()); + lqw.eq(StringUtils.isNotBlank(bo.getPlanType()), JxWhjh::getPlanType, bo.getPlanType()); + lqw.eq(StringUtils.isNotBlank(bo.getMaintenanceLevel()), JxWhjh::getMaintenanceLevel, bo.getMaintenanceLevel()); + lqw.eq(StringUtils.isNotBlank(bo.getMaintenanceItems()), JxWhjh::getMaintenanceItems, bo.getMaintenanceItems()); + lqw.eq(StringUtils.isNotBlank(bo.getCycleType()), JxWhjh::getCycleType, bo.getCycleType()); + lqw.eq(bo.getCycleValue() != null, JxWhjh::getCycleValue, bo.getCycleValue()); + lqw.eq(bo.getExpectedStartDate() != null, JxWhjh::getExpectedStartDate, bo.getExpectedStartDate()); + lqw.eq(bo.getExpectedEndDate() != null, JxWhjh::getExpectedEndDate, bo.getExpectedEndDate()); + lqw.eq(bo.getResponsiblePerson() != null, JxWhjh::getResponsiblePerson, bo.getResponsiblePerson()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), JxWhjh::getStatus, bo.getStatus()); + lqw.eq(bo.getRemindBeforeDays() != null, JxWhjh::getRemindBeforeDays, bo.getRemindBeforeDays()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxWhjh::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械维护计划 + * + * @param bo 机械维护计划 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(JxWhjhBo bo) { + JxWhjh add = MapstructUtils.convert(bo, JxWhjh.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械维护计划 + * + * @param bo 机械维护计划 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(JxWhjhBo bo) { + JxWhjh update = MapstructUtils.convert(bo, JxWhjh.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxWhjh entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械维护计划信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + JxWhjhVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JxWhjhHeadVo jxwhHead() { + JxWhjhHeadVo jxWhjhHeadVo = new JxWhjhHeadVo(); + List jxWhjhs = this.baseMapper.selectList(new LambdaQueryWrapper().ge(JxWhjh::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()))); + if (jxWhjhs != null && jxWhjhs.size() > 0) { + long countwwc = jxWhjhs.stream().filter(jxwhjh -> "1".equals(jxwhjh.getStatus()) || "2".equals(jxwhjh.getStatus())).count(); + long countywc = jxWhjhs.stream().filter(jxwhjh -> "3".equals(jxwhjh.getStatus())).count(); + long countyq = jxWhjhs.stream().filter(jxwhjh -> "4".equals(jxwhjh.getStatus())).count(); + jxWhjhHeadVo.setWwc(countwwc); + jxWhjhHeadVo.setYq(countyq); + jxWhjhHeadVo.setYwc(countywc); + jxWhjhHeadVo.setZs(Long.valueOf(jxWhjhs.size())); + } + return jxWhjhHeadVo; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxWhjlServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxWhjlServiceImpl.java new file mode 100644 index 00000000..2b9ccf12 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/mechanical/jxgl/service/impl/JxWhjlServiceImpl.java @@ -0,0 +1,200 @@ +package org.dromara.mechanical.jxgl.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.mechanical.jxgl.domain.JxWhjh; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlHeadVo; +import org.dromara.mechanical.jxgl.service.IJxWhjhService; +import org.dromara.system.service.impl.SysOssServiceImpl; +import org.springframework.stereotype.Service; +import org.dromara.mechanical.jxgl.domain.bo.JxWhjlBo; +import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo; +import org.dromara.mechanical.jxgl.domain.JxWhjl; +import org.dromara.mechanical.jxgl.mapper.JxWhjlMapper; +import org.dromara.mechanical.jxgl.service.IJxWhjlService; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.temporal.TemporalAdjusters; +import java.util.*; + +/** + * 机械维护记录Service业务层处理 + * + * @author Lion Li + * @date 2025-12-01 + */ +@RequiredArgsConstructor +@Service +public class JxWhjlServiceImpl extends ServiceImpl implements IJxWhjlService { + + private final JxWhjlMapper baseMapper; + + private final IJxWhjhService jxWhjhService; + + private final SysOssServiceImpl sysOssService; + + + /** + * 查询机械维护记录 + * + * @param id 主键 + * @return 机械维护记录 + */ + @Override + public JxWhjlVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询机械维护记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机械维护记录分页列表 + */ + @Override + public TableDataInfo queryPageList(JxWhjlBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的机械维护记录列表 + * + * @param bo 查询条件 + * @return 机械维护记录列表 + */ + @Override + public List queryList(JxWhjlBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(JxWhjlBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(JxWhjl::getId); + lqw.eq(bo.getWhjhId() != null, JxWhjl::getWhjhId, bo.getWhjhId()); + lqw.eq(bo.getEquipmentId() != null, JxWhjl::getEquipmentId, bo.getEquipmentId()); + lqw.eq(bo.getMaintenanceDate() != null, JxWhjl::getMaintenanceDate, bo.getMaintenanceDate()); + lqw.eq(bo.getMaintenanceHours() != null, JxWhjl::getMaintenanceHours, bo.getMaintenanceHours()); + lqw.eq(StringUtils.isNotBlank(bo.getMaintenanceItems()), JxWhjl::getMaintenanceItems, bo.getMaintenanceItems()); + lqw.eq(StringUtils.isNotBlank(bo.getPartsReplaced()), JxWhjl::getPartsReplaced, bo.getPartsReplaced()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialsUsed()), JxWhjl::getMaterialsUsed, bo.getMaterialsUsed()); + lqw.eq(bo.getMaintainer() != null, JxWhjl::getMaintainer, bo.getMaintainer()); + lqw.eq(StringUtils.isNotBlank(bo.getMaintenanceResult()), JxWhjl::getMaintenanceResult, bo.getMaintenanceResult()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxWhjl::getFileId, bo.getFileId()); + return lqw; + } + + /** + * 新增机械维护记录 + * + * @param bo 机械维护记录 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(JxWhjlBo bo) { + JxWhjl add = MapstructUtils.convert(bo, JxWhjl.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (bo != null){ + if ("1".equals(bo.getMaintenanceResult())){ + jxWhjhService.getBaseMapper().update(new UpdateWrapper().eq("id",bo.getWhjhId()).set("status","3")); + }else { + jxWhjhService.getBaseMapper().update(new UpdateWrapper().eq("id",bo.getWhjhId()).set("status","2")); + + } + } + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改机械维护记录 + * + * @param bo 机械维护记录 + * @return 是否修改成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(JxWhjlBo bo) { + JxWhjl update = MapstructUtils.convert(bo, JxWhjl.class); + validEntityBeforeSave(update); + if (update != null){ + if ("1".equals(update.getMaintenanceResult())){ + jxWhjhService.getBaseMapper().update(new UpdateWrapper().eq("id",bo.getWhjhId()).set("status","3")); + }else { + jxWhjhService.getBaseMapper().update(new UpdateWrapper().eq("id",bo.getWhjhId()).set("status","2")); + } + } + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(JxWhjl entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除机械维护记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + List deleteIds = new ArrayList<>(); + for (Long id : ids) { + JxWhjlVo vo = baseMapper.selectVoById(id); + if (vo != null){ + //删除附件 + if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){ + List list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList(); + deleteIds.addAll(list); + } + } + } + if (!deleteIds.isEmpty()) { + sysOssService.deleteWithValidByIds(deleteIds, false); + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public JxWhjlHeadVo jxwhHead() { + + JxWhjlHeadVo jxWhjlHeadVo = new JxWhjlHeadVo(); + List jxWhjls = this.baseMapper.selectList(new LambdaQueryWrapper().ge(JxWhjl::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()))); + if (jxWhjls != null && jxWhjls.size() > 0) { + long zc = jxWhjls.stream().filter(jxwhjl -> "1".equals(jxwhjl.getMaintenanceResult())).count(); + long yc = jxWhjls.stream().filter(jxwhjl -> "2".equals(jxwhjl.getMaintenanceResult())).count(); + long fc = jxWhjls.stream().filter(jxwhjl -> "3".equals(jxwhjl.getMaintenanceResult())).count(); + jxWhjlHeadVo.setZs(Long.valueOf(jxWhjls.size())); + jxWhjlHeadVo.setZc(zc); + jxWhjlHeadVo.setYc(yc); + jxWhjlHeadVo.setXfc(fc); + } + return jxWhjlHeadVo; + } +}