From 5e9bf6069ef30ce44c9d127079a077edb2275ff8 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 29 May 2026 15:24:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(mes/eqp):=20=E6=96=B0=E5=A2=9E=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=B7=A1=E6=A3=80=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增设备巡检审批(按产线+时间范围审批)模块,包含以下内容: 1. 新增EqpEquipmentInspectionApproval实体类、Bo、Vo,定义审批相关字段 2. 新增EqpEquipmentInspectionApprovalController,提供增删改查及导出接口 3. 新增EqpEquipmentInspectionApprovalMapper及XML映射文件 4. 新增IEqpEquipmentInspectionApprovalService接口及ServiceImpl实现类,实现分页查询、新增、修改、删除等业务逻辑 5. 支持按产线、时间范围、申请人、审批状态等条件进行筛选查询 --- ...EquipmentInspectionApprovalController.java | 99 ++++++++++++++ .../EqpEquipmentInspectionApproval.java | 75 +++++++++++ .../bo/EqpEquipmentInspectionApprovalBo.java | 78 +++++++++++ .../vo/EqpEquipmentInspectionApprovalVo.java | 92 +++++++++++++ .../EqpEquipmentInspectionApprovalMapper.java | 15 +++ ...EqpEquipmentInspectionApprovalService.java | 49 +++++++ ...quipmentInspectionApprovalServiceImpl.java | 125 ++++++++++++++++++ .../EqpEquipmentInspectionApprovalMapper.xml | 27 ++++ 8 files changed, 560 insertions(+) create mode 100644 klp-mes/src/main/java/com/klp/mes/eqp/controller/EqpEquipmentInspectionApprovalController.java create mode 100644 klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionApproval.java create mode 100644 klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionApprovalBo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionApprovalVo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/eqp/mapper/EqpEquipmentInspectionApprovalMapper.java create mode 100644 klp-mes/src/main/java/com/klp/mes/eqp/service/IEqpEquipmentInspectionApprovalService.java create mode 100644 klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionApprovalServiceImpl.java create mode 100644 klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionApprovalMapper.xml diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/controller/EqpEquipmentInspectionApprovalController.java b/klp-mes/src/main/java/com/klp/mes/eqp/controller/EqpEquipmentInspectionApprovalController.java new file mode 100644 index 00000000..a432ca4c --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/controller/EqpEquipmentInspectionApprovalController.java @@ -0,0 +1,99 @@ +package com.klp.mes.eqp.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo; +import com.klp.mes.eqp.service.IEqpEquipmentInspectionApprovalService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 设备巡检审批(按产线+时间范围审批) + * + * @author klp + * @date 2026-05-29 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/eqp/equipmentInspectionApproval") +public class EqpEquipmentInspectionApprovalController extends BaseController { + + private final IEqpEquipmentInspectionApprovalService iEqpEquipmentInspectionApprovalService; + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + @GetMapping("/list") + public TableDataInfo list(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery) { + return iEqpEquipmentInspectionApprovalService.queryPageList(bo, pageQuery); + } + + /** + * 导出设备巡检审批(按产线+时间范围审批)列表 + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(EqpEquipmentInspectionApprovalBo bo, HttpServletResponse response) { + List list = iEqpEquipmentInspectionApprovalService.queryList(bo); + ExcelUtil.exportExcel(list, "设备巡检审批(按产线+时间范围审批)", EqpEquipmentInspectionApprovalVo.class, response); + } + + /** + * 获取设备巡检审批(按产线+时间范围审批)详细信息 + * + * @param approvalId 主键 + */ + @GetMapping("/{approvalId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long approvalId) { + return R.ok(iEqpEquipmentInspectionApprovalService.queryById(approvalId)); + } + + /** + * 新增设备巡检审批(按产线+时间范围审批) + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody EqpEquipmentInspectionApprovalBo bo) { + return toAjax(iEqpEquipmentInspectionApprovalService.insertByBo(bo)); + } + + /** + * 修改设备巡检审批(按产线+时间范围审批) + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody EqpEquipmentInspectionApprovalBo bo) { + return toAjax(iEqpEquipmentInspectionApprovalService.updateByBo(bo)); + } + + /** + * 删除设备巡检审批(按产线+时间范围审批) + * + * @param approvalIds 主键串 + */ + @Log(title = "设备巡检审批(按产线+时间范围审批)", businessType = BusinessType.DELETE) + @DeleteMapping("/{approvalIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] approvalIds) { + return toAjax(iEqpEquipmentInspectionApprovalService.deleteWithValidByIds(Arrays.asList(approvalIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionApproval.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionApproval.java new file mode 100644 index 00000000..6af2fa9d --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpEquipmentInspectionApproval.java @@ -0,0 +1,75 @@ +package com.klp.mes.eqp.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 设备巡检审批(按产线+时间范围审批)对象 eqp_equipment_inspection_approval + * + * @author klp + * @date 2026-05-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("eqp_equipment_inspection_approval") +public class EqpEquipmentInspectionApproval extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 审批ID 主键 + */ + @TableId(value = "approval_id") + private Long approvalId; + /** + * 产线ID(对应你刚改的bigint类型) + */ + private Long productionLine; + /** + * 巡检开始时间 + */ + private Date insStartTime; + /** + * 巡检结束时间 + */ + private Date insEndTime; + /** + * 申请人 + */ + private String applyUser; + /** + * 申请时间 + */ + private Date applyTime; + /** + * 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销 + */ + private Integer approvalStatus; + /** + * 审批人 + */ + private String approvalUser; + /** + * 审批时间 + */ + private Date approvalTime; + /** + * 审批意见 + */ + private String approvalOpinion; + /** + * 备注 + */ + private String remark; + /** + * 删除标识 0正常 2删除 + */ + @TableLogic + private Long delFlag; + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionApprovalBo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionApprovalBo.java new file mode 100644 index 00000000..f7d52619 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpEquipmentInspectionApprovalBo.java @@ -0,0 +1,78 @@ +package com.klp.mes.eqp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 设备巡检审批(按产线+时间范围审批)业务对象 eqp_equipment_inspection_approval + * + * @author klp + * @date 2026-05-29 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class EqpEquipmentInspectionApprovalBo extends BaseEntity { + + /** + * 审批ID 主键 + */ + private Long approvalId; + + /** + * 产线ID(对应你刚改的bigint类型) + */ + private Long productionLine; + + /** + * 巡检开始时间 + */ + private Date insStartTime; + + /** + * 巡检结束时间 + */ + private Date insEndTime; + + /** + * 申请人 + */ + private String applyUser; + + /** + * 申请时间 + */ + private Date applyTime; + + /** + * 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销 + */ + private Integer approvalStatus; + + /** + * 审批人 + */ + private String approvalUser; + + /** + * 审批时间 + */ + private Date approvalTime; + + /** + * 审批意见 + */ + private String approvalOpinion; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionApprovalVo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionApprovalVo.java new file mode 100644 index 00000000..c6233487 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/vo/EqpEquipmentInspectionApprovalVo.java @@ -0,0 +1,92 @@ +package com.klp.mes.eqp.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 设备巡检审批(按产线+时间范围审批)视图对象 eqp_equipment_inspection_approval + * + * @author klp + * @date 2026-05-29 + */ +@Data +@ExcelIgnoreUnannotated +public class EqpEquipmentInspectionApprovalVo { + + private static final long serialVersionUID = 1L; + + /** + * 审批ID 主键 + */ + @ExcelProperty(value = "审批ID 主键") + private Long approvalId; + + /** + * 产线ID(对应你刚改的bigint类型) + */ + @ExcelProperty(value = "产线ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "对=应你刚改的bigint类型") + private Long productionLine; + + /** + * 巡检开始时间 + */ + @ExcelProperty(value = "巡检开始时间") + private Date insStartTime; + + /** + * 巡检结束时间 + */ + @ExcelProperty(value = "巡检结束时间") + private Date insEndTime; + + /** + * 申请人 + */ + @ExcelProperty(value = "申请人") + private String applyUser; + + /** + * 申请时间 + */ + @ExcelProperty(value = "申请时间") + private Date applyTime; + + /** + * 审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销 + */ + @ExcelProperty(value = "审批状态 1=待审批 2=已通过 3=已驳回 4=已撤销") + private Integer approvalStatus; + + /** + * 审批人 + */ + @ExcelProperty(value = "审批人") + private String approvalUser; + + /** + * 审批时间 + */ + @ExcelProperty(value = "审批时间") + private Date approvalTime; + + /** + * 审批意见 + */ + @ExcelProperty(value = "审批意见") + private String approvalOpinion; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/mapper/EqpEquipmentInspectionApprovalMapper.java b/klp-mes/src/main/java/com/klp/mes/eqp/mapper/EqpEquipmentInspectionApprovalMapper.java new file mode 100644 index 00000000..eafcae8b --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/mapper/EqpEquipmentInspectionApprovalMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.eqp.mapper; + +import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval; +import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 设备巡检审批(按产线+时间范围审批)Mapper接口 + * + * @author klp + * @date 2026-05-29 + */ +public interface EqpEquipmentInspectionApprovalMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/service/IEqpEquipmentInspectionApprovalService.java b/klp-mes/src/main/java/com/klp/mes/eqp/service/IEqpEquipmentInspectionApprovalService.java new file mode 100644 index 00000000..4c0d20d7 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/service/IEqpEquipmentInspectionApprovalService.java @@ -0,0 +1,49 @@ +package com.klp.mes.eqp.service; + +import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval; +import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 设备巡检审批(按产线+时间范围审批)Service接口 + * + * @author klp + * @date 2026-05-29 + */ +public interface IEqpEquipmentInspectionApprovalService { + + /** + * 查询设备巡检审批(按产线+时间范围审批) + */ + EqpEquipmentInspectionApprovalVo queryById(Long approvalId); + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + TableDataInfo queryPageList(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery); + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + List queryList(EqpEquipmentInspectionApprovalBo bo); + + /** + * 新增设备巡检审批(按产线+时间范围审批) + */ + Boolean insertByBo(EqpEquipmentInspectionApprovalBo bo); + + /** + * 修改设备巡检审批(按产线+时间范围审批) + */ + Boolean updateByBo(EqpEquipmentInspectionApprovalBo bo); + + /** + * 校验并批量删除设备巡检审批(按产线+时间范围审批)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionApprovalServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionApprovalServiceImpl.java new file mode 100644 index 00000000..736a8993 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpEquipmentInspectionApprovalServiceImpl.java @@ -0,0 +1,125 @@ +package com.klp.mes.eqp.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.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 com.klp.common.helper.LoginHelper; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.mes.eqp.domain.bo.EqpEquipmentInspectionApprovalBo; +import com.klp.mes.eqp.domain.vo.EqpEquipmentInspectionApprovalVo; +import com.klp.mes.eqp.domain.EqpEquipmentInspectionApproval; +import com.klp.mes.eqp.mapper.EqpEquipmentInspectionApprovalMapper; +import com.klp.mes.eqp.service.IEqpEquipmentInspectionApprovalService; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 设备巡检审批(按产线+时间范围审批)Service业务层处理 + * + * @author klp + * @date 2026-05-29 + */ +@RequiredArgsConstructor +@Service +public class EqpEquipmentInspectionApprovalServiceImpl implements IEqpEquipmentInspectionApprovalService { + + private final EqpEquipmentInspectionApprovalMapper baseMapper; + + /** + * 查询设备巡检审批(按产线+时间范围审批) + */ + @Override + public EqpEquipmentInspectionApprovalVo queryById(Long approvalId){ + return baseMapper.selectVoById(approvalId); + } + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + @Override + public TableDataInfo queryPageList(EqpEquipmentInspectionApprovalBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询设备巡检审批(按产线+时间范围审批)列表 + */ + @Override + public List queryList(EqpEquipmentInspectionApprovalBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(EqpEquipmentInspectionApprovalBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getProductionLine() != null, EqpEquipmentInspectionApproval::getProductionLine, bo.getProductionLine()); + lqw.eq(bo.getInsStartTime() != null, EqpEquipmentInspectionApproval::getInsStartTime, bo.getInsStartTime()); + lqw.eq(bo.getInsEndTime() != null, EqpEquipmentInspectionApproval::getInsEndTime, bo.getInsEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getApplyUser()), EqpEquipmentInspectionApproval::getApplyUser, bo.getApplyUser()); + lqw.eq(bo.getApplyTime() != null, EqpEquipmentInspectionApproval::getApplyTime, bo.getApplyTime()); + lqw.eq(bo.getApprovalStatus() != null, EqpEquipmentInspectionApproval::getApprovalStatus, bo.getApprovalStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getApprovalUser()), EqpEquipmentInspectionApproval::getApprovalUser, bo.getApprovalUser()); + lqw.eq(bo.getApprovalTime() != null, EqpEquipmentInspectionApproval::getApprovalTime, bo.getApprovalTime()); + lqw.eq(StringUtils.isNotBlank(bo.getApprovalOpinion()), EqpEquipmentInspectionApproval::getApprovalOpinion, bo.getApprovalOpinion()); + return lqw; + } + + /** + * 新增设备巡检审批(按产线+时间范围审批) + */ + @Override + public Boolean insertByBo(EqpEquipmentInspectionApprovalBo bo) { + EqpEquipmentInspectionApproval add = BeanUtil.toBean(bo, EqpEquipmentInspectionApproval.class); + if (StringUtils.isBlank(bo.getApprovalUser())) { + add.setApprovalUser(LoginHelper.getNickName()); + } + if (bo.getApplyTime() == null) { + add.setApplyTime(new Date()); + } + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setApprovalId(add.getApprovalId()); + } + return flag; + } + + /** + * 修改设备巡检审批(按产线+时间范围审批) + */ + @Override + public Boolean updateByBo(EqpEquipmentInspectionApprovalBo bo) { + EqpEquipmentInspectionApproval update = BeanUtil.toBean(bo, EqpEquipmentInspectionApproval.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(EqpEquipmentInspectionApproval entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除设备巡检审批(按产线+时间范围审批) + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionApprovalMapper.xml b/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionApprovalMapper.xml new file mode 100644 index 00000000..b76a4a3a --- /dev/null +++ b/klp-mes/src/main/resources/mapper/eqp/EqpEquipmentInspectionApprovalMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +