From 2f974c4b6f854c690d7441dd96cddb51091439ef Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 15 May 2026 13:17:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(qc):=20=E6=B7=BB=E5=8A=A0=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E6=A3=80=E9=AA=8C=E4=BB=BB=E5=8A=A1=E5=8F=8A=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=8A=9F=E8=83=BD=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建检验任务主实体、业务对象和服务接口及实现类 - 创建检验任务项目实体、业务对象和服务接口及实现类 - 实现检验任务和项目的增删改查功能 - 添加检验任务和项目的数据访问层和映射配置 - 集成分页查询和导出功能 - 配置数据校验和权限控制 --- .../QcInspectionItemController.java | 99 +++++++++++++++ .../QcInspectionTaskController.java | 99 +++++++++++++++ .../klp/mes/qc/domain/QcInspectionItem.java | 88 +++++++++++++ .../klp/mes/qc/domain/QcInspectionTask.java | 87 +++++++++++++ .../mes/qc/domain/bo/QcInspectionItemBo.java | 94 ++++++++++++++ .../mes/qc/domain/bo/QcInspectionTaskBo.java | 93 ++++++++++++++ .../mes/qc/domain/vo/QcInspectionItemVo.java | 111 ++++++++++++++++ .../mes/qc/domain/vo/QcInspectionTaskVo.java | 114 +++++++++++++++++ .../mes/qc/mapper/QcInspectionItemMapper.java | 15 +++ .../mes/qc/mapper/QcInspectionTaskMapper.java | 15 +++ .../qc/service/IQcInspectionItemService.java | 49 +++++++ .../qc/service/IQcInspectionTaskService.java | 49 +++++++ .../impl/QcInspectionItemServiceImpl.java | 120 ++++++++++++++++++ .../impl/QcInspectionTaskServiceImpl.java | 120 ++++++++++++++++++ .../mapper/qc/QcInspectionItemMapper.xml | 30 +++++ .../mapper/qc/QcInspectionTaskMapper.xml | 30 +++++ 16 files changed, 1213 insertions(+) create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionItemController.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionTaskController.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionItem.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionItemBo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionItemVo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionItemMapper.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionTaskMapper.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionItemService.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionTaskService.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionItemServiceImpl.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java create mode 100644 klp-mes/src/main/resources/mapper/qc/QcInspectionItemMapper.xml create mode 100644 klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml diff --git a/klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionItemController.java b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionItemController.java new file mode 100644 index 00000000..44377e86 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionItemController.java @@ -0,0 +1,99 @@ +package com.klp.mes.qc.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.qc.domain.vo.QcInspectionItemVo; +import com.klp.mes.qc.domain.bo.QcInspectionItemBo; +import com.klp.mes.qc.service.IQcInspectionItemService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 检验任务项目+结果 + * + * @author klp + * @date 2026-05-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/qc/inspectionItem") +public class QcInspectionItemController extends BaseController { + + private final IQcInspectionItemService iQcInspectionItemService; + + /** + * 查询检验任务项目+结果列表 + */ + @GetMapping("/list") + public TableDataInfo list(QcInspectionItemBo bo, PageQuery pageQuery) { + return iQcInspectionItemService.queryPageList(bo, pageQuery); + } + + /** + * 导出检验任务项目+结果列表 + */ + @Log(title = "检验任务项目+结果", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(QcInspectionItemBo bo, HttpServletResponse response) { + List list = iQcInspectionItemService.queryList(bo); + ExcelUtil.exportExcel(list, "检验任务项目+结果", QcInspectionItemVo.class, response); + } + + /** + * 获取检验任务项目+结果详细信息 + * + * @param itemId 主键 + */ + @GetMapping("/{itemId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long itemId) { + return R.ok(iQcInspectionItemService.queryById(itemId)); + } + + /** + * 新增检验任务项目+结果 + */ + @Log(title = "检验任务项目+结果", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody QcInspectionItemBo bo) { + return toAjax(iQcInspectionItemService.insertByBo(bo)); + } + + /** + * 修改检验任务项目+结果 + */ + @Log(title = "检验任务项目+结果", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody QcInspectionItemBo bo) { + return toAjax(iQcInspectionItemService.updateByBo(bo)); + } + + /** + * 删除检验任务项目+结果 + * + * @param itemIds 主键串 + */ + @Log(title = "检验任务项目+结果", businessType = BusinessType.DELETE) + @DeleteMapping("/{itemIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] itemIds) { + return toAjax(iQcInspectionItemService.deleteWithValidByIds(Arrays.asList(itemIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionTaskController.java b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionTaskController.java new file mode 100644 index 00000000..d62e9c02 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcInspectionTaskController.java @@ -0,0 +1,99 @@ +package com.klp.mes.qc.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.qc.domain.vo.QcInspectionTaskVo; +import com.klp.mes.qc.domain.bo.QcInspectionTaskBo; +import com.klp.mes.qc.service.IQcInspectionTaskService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 检验任务主 + * + * @author klp + * @date 2026-05-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/qc/inspectionTask") +public class QcInspectionTaskController extends BaseController { + + private final IQcInspectionTaskService iQcInspectionTaskService; + + /** + * 查询检验任务主列表 + */ + @GetMapping("/list") + public TableDataInfo list(QcInspectionTaskBo bo, PageQuery pageQuery) { + return iQcInspectionTaskService.queryPageList(bo, pageQuery); + } + + /** + * 导出检验任务主列表 + */ + @Log(title = "检验任务主", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(QcInspectionTaskBo bo, HttpServletResponse response) { + List list = iQcInspectionTaskService.queryList(bo); + ExcelUtil.exportExcel(list, "检验任务主", QcInspectionTaskVo.class, response); + } + + /** + * 获取检验任务主详细信息 + * + * @param taskId 主键 + */ + @GetMapping("/{taskId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long taskId) { + return R.ok(iQcInspectionTaskService.queryById(taskId)); + } + + /** + * 新增检验任务主 + */ + @Log(title = "检验任务主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody QcInspectionTaskBo bo) { + return toAjax(iQcInspectionTaskService.insertByBo(bo)); + } + + /** + * 修改检验任务主 + */ + @Log(title = "检验任务主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody QcInspectionTaskBo bo) { + return toAjax(iQcInspectionTaskService.updateByBo(bo)); + } + + /** + * 删除检验任务主 + * + * @param taskIds 主键串 + */ + @Log(title = "检验任务主", businessType = BusinessType.DELETE) + @DeleteMapping("/{taskIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] taskIds) { + return toAjax(iQcInspectionTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionItem.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionItem.java new file mode 100644 index 00000000..b8325d0b --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionItem.java @@ -0,0 +1,88 @@ +package com.klp.mes.qc.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 检验任务项目+结果对象 qc_inspection_item + * + * @author klp + * @date 2026-05-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("qc_inspection_item") +public class QcInspectionItem extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 明细ID + */ + @TableId(value = "item_id") + private Long itemId; + /** + * 任务ID + */ + private Long taskId; + /** + * 检验项目名称 + */ + private String itemName; + /** + * 标准值 + */ + private String standardValue; + /** + * 上限 + */ + private BigDecimal upperLimit; + /** + * 下限 + */ + private BigDecimal lowerLimit; + /** + * 单位 + */ + private String unit; + /** + * 定性/定量 + */ + private String itemType; + /** + * 检验值 + */ + private String inspectValue; + /** + * 是否合格(0不合格 1合格) + */ + private Integer isQualified; + /** + * 判定结果 + */ + private String judgeResult; + /** + * 检验人 + */ + private String inspectUser; + /** + * 检验时间 + */ + private Date inspectTime; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java new file mode 100644 index 00000000..25ebefd2 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcInspectionTask.java @@ -0,0 +1,87 @@ +package com.klp.mes.qc.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; + +/** + * 检验任务主对象 qc_inspection_task + * + * @author klp + * @date 2026-05-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("qc_inspection_task") +public class QcInspectionTask extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 任务ID + */ + @TableId(value = "task_id") + private Long taskId; + /** + * 任务编号 + */ + private String taskCode; + /** + * 任务类型(内控/产品检验) + */ + private String taskType; + /** + * 来源类型(生产/采购/库存) + */ + private String sourceType; + /** + * 来源单据ID(工单/入库单等) + */ + private Long sourceId; + /** + * 检验方案ID + */ + private Long schemeId; + /** + * 检验方案名称 + */ + private String schemeName; + /** + * 状态(0待检验 1检验中 2待审核 3已完成 4已驳回) + */ + private Integer status; + /** + * 检验人 + */ + private String inspectUser; + /** + * 检验时间 + */ + private Date inspectTime; + /** + * 审核人 + */ + private String auditUser; + /** + * 审核时间 + */ + private Date auditTime; + /** + * 最终结果(合格/不合格) + */ + private String result; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionItemBo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionItemBo.java new file mode 100644 index 00000000..350a914c --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionItemBo.java @@ -0,0 +1,94 @@ +package com.klp.mes.qc.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 检验任务项目+结果业务对象 qc_inspection_item + * + * @author klp + * @date 2026-05-15 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class QcInspectionItemBo extends BaseEntity { + + /** + * 明细ID + */ + private Long itemId; + + /** + * 任务ID + */ + private Long taskId; + + /** + * 检验项目名称 + */ + private String itemName; + + /** + * 标准值 + */ + private String standardValue; + + /** + * 上限 + */ + private BigDecimal upperLimit; + + /** + * 下限 + */ + private BigDecimal lowerLimit; + + /** + * 单位 + */ + private String unit; + + /** + * 定性/定量 + */ + private String itemType; + + /** + * 检验值 + */ + private String inspectValue; + + /** + * 是否合格(0不合格 1合格) + */ + private Integer isQualified; + + /** + * 判定结果 + */ + private String judgeResult; + + /** + * 检验人 + */ + private String inspectUser; + + /** + * 检验时间 + */ + private Date inspectTime; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java new file mode 100644 index 00000000..65920902 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcInspectionTaskBo.java @@ -0,0 +1,93 @@ +package com.klp.mes.qc.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; + +/** + * 检验任务主业务对象 qc_inspection_task + * + * @author klp + * @date 2026-05-15 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class QcInspectionTaskBo extends BaseEntity { + + /** + * 任务ID + */ + private Long taskId; + + /** + * 任务编号 + */ + private String taskCode; + + /** + * 任务类型(内控/产品检验) + */ + private String taskType; + + /** + * 来源类型(生产/采购/库存) + */ + private String sourceType; + + /** + * 来源单据ID(工单/入库单等) + */ + private Long sourceId; + + /** + * 检验方案ID + */ + private Long schemeId; + + /** + * 检验方案名称 + */ + private String schemeName; + + /** + * 状态(0待检验 1检验中 2待审核 3已完成 4已驳回) + */ + private Integer status; + + /** + * 检验人 + */ + private String inspectUser; + + /** + * 检验时间 + */ + private Date inspectTime; + + /** + * 审核人 + */ + private String auditUser; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 最终结果(合格/不合格) + */ + private String result; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionItemVo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionItemVo.java new file mode 100644 index 00000000..c35c52ee --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionItemVo.java @@ -0,0 +1,111 @@ +package com.klp.mes.qc.domain.vo; + +import java.math.BigDecimal; +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; + + +/** + * 检验任务项目+结果视图对象 qc_inspection_item + * + * @author klp + * @date 2026-05-15 + */ +@Data +@ExcelIgnoreUnannotated +public class QcInspectionItemVo { + + private static final long serialVersionUID = 1L; + + /** + * 明细ID + */ + @ExcelProperty(value = "明细ID") + private Long itemId; + + /** + * 任务ID + */ + @ExcelProperty(value = "任务ID") + private Long taskId; + + /** + * 检验项目名称 + */ + @ExcelProperty(value = "检验项目名称") + private String itemName; + + /** + * 标准值 + */ + @ExcelProperty(value = "标准值") + private String standardValue; + + /** + * 上限 + */ + @ExcelProperty(value = "上限") + private BigDecimal upperLimit; + + /** + * 下限 + */ + @ExcelProperty(value = "下限") + private BigDecimal lowerLimit; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 定性/定量 + */ + @ExcelProperty(value = "定性/定量") + private String itemType; + + /** + * 检验值 + */ + @ExcelProperty(value = "检验值") + private String inspectValue; + + /** + * 是否合格(0不合格 1合格) + */ + @ExcelProperty(value = "是否合格", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=不合格,1=合格") + private Integer isQualified; + + /** + * 判定结果 + */ + @ExcelProperty(value = "判定结果") + private String judgeResult; + + /** + * 检验人 + */ + @ExcelProperty(value = "检验人") + private String inspectUser; + + /** + * 检验时间 + */ + @ExcelProperty(value = "检验时间") + private Date inspectTime; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java new file mode 100644 index 00000000..dd68d36f --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcInspectionTaskVo.java @@ -0,0 +1,114 @@ +package com.klp.mes.qc.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; + + +/** + * 检验任务主视图对象 qc_inspection_task + * + * @author klp + * @date 2026-05-15 + */ +@Data +@ExcelIgnoreUnannotated +public class QcInspectionTaskVo { + + private static final long serialVersionUID = 1L; + + /** + * 任务ID + */ + @ExcelProperty(value = "任务ID") + private Long taskId; + + /** + * 任务编号 + */ + @ExcelProperty(value = "任务编号") + private String taskCode; + + /** + * 任务类型(内控/产品检验) + */ + @ExcelProperty(value = "任务类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "内=控/产品检验") + private String taskType; + + /** + * 来源类型(生产/采购/库存) + */ + @ExcelProperty(value = "来源类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "生=产/采购/库存") + private String sourceType; + + /** + * 来源单据ID(工单/入库单等) + */ + @ExcelProperty(value = "来源单据ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "工=单/入库单等") + private Long sourceId; + + /** + * 检验方案ID + */ + @ExcelProperty(value = "检验方案ID") + private Long schemeId; + + /** + * 检验方案名称 + */ + @ExcelProperty(value = "检验方案名称") + private String schemeName; + + /** + * 状态(0待检验 1检验中 2待审核 3已完成 4已驳回) + */ + @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=待检验,1=检验中,2=待审核,3=已完成,4=已驳回") + private Integer status; + + /** + * 检验人 + */ + @ExcelProperty(value = "检验人") + private String inspectUser; + + /** + * 检验时间 + */ + @ExcelProperty(value = "检验时间") + private Date inspectTime; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditUser; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 最终结果(合格/不合格) + */ + @ExcelProperty(value = "最终结果", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "合=格/不合格") + private String result; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionItemMapper.java b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionItemMapper.java new file mode 100644 index 00000000..6e8d66a6 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionItemMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.qc.mapper; + +import com.klp.mes.qc.domain.QcInspectionItem; +import com.klp.mes.qc.domain.vo.QcInspectionItemVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 检验任务项目+结果Mapper接口 + * + * @author klp + * @date 2026-05-15 + */ +public interface QcInspectionItemMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionTaskMapper.java b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionTaskMapper.java new file mode 100644 index 00000000..ae24a9d4 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcInspectionTaskMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.qc.mapper; + +import com.klp.mes.qc.domain.QcInspectionTask; +import com.klp.mes.qc.domain.vo.QcInspectionTaskVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 检验任务主Mapper接口 + * + * @author klp + * @date 2026-05-15 + */ +public interface QcInspectionTaskMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionItemService.java b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionItemService.java new file mode 100644 index 00000000..e927be5d --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionItemService.java @@ -0,0 +1,49 @@ +package com.klp.mes.qc.service; + +import com.klp.mes.qc.domain.QcInspectionItem; +import com.klp.mes.qc.domain.vo.QcInspectionItemVo; +import com.klp.mes.qc.domain.bo.QcInspectionItemBo; +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-15 + */ +public interface IQcInspectionItemService { + + /** + * 查询检验任务项目+结果 + */ + QcInspectionItemVo queryById(Long itemId); + + /** + * 查询检验任务项目+结果列表 + */ + TableDataInfo queryPageList(QcInspectionItemBo bo, PageQuery pageQuery); + + /** + * 查询检验任务项目+结果列表 + */ + List queryList(QcInspectionItemBo bo); + + /** + * 新增检验任务项目+结果 + */ + Boolean insertByBo(QcInspectionItemBo bo); + + /** + * 修改检验任务项目+结果 + */ + Boolean updateByBo(QcInspectionItemBo bo); + + /** + * 校验并批量删除检验任务项目+结果信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionTaskService.java b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionTaskService.java new file mode 100644 index 00000000..9d517534 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcInspectionTaskService.java @@ -0,0 +1,49 @@ +package com.klp.mes.qc.service; + +import com.klp.mes.qc.domain.QcInspectionTask; +import com.klp.mes.qc.domain.vo.QcInspectionTaskVo; +import com.klp.mes.qc.domain.bo.QcInspectionTaskBo; +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-15 + */ +public interface IQcInspectionTaskService { + + /** + * 查询检验任务主 + */ + QcInspectionTaskVo queryById(Long taskId); + + /** + * 查询检验任务主列表 + */ + TableDataInfo queryPageList(QcInspectionTaskBo bo, PageQuery pageQuery); + + /** + * 查询检验任务主列表 + */ + List queryList(QcInspectionTaskBo bo); + + /** + * 新增检验任务主 + */ + Boolean insertByBo(QcInspectionTaskBo bo); + + /** + * 修改检验任务主 + */ + Boolean updateByBo(QcInspectionTaskBo bo); + + /** + * 校验并批量删除检验任务主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionItemServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionItemServiceImpl.java new file mode 100644 index 00000000..340c0114 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionItemServiceImpl.java @@ -0,0 +1,120 @@ +package com.klp.mes.qc.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.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.mes.qc.domain.bo.QcInspectionItemBo; +import com.klp.mes.qc.domain.vo.QcInspectionItemVo; +import com.klp.mes.qc.domain.QcInspectionItem; +import com.klp.mes.qc.mapper.QcInspectionItemMapper; +import com.klp.mes.qc.service.IQcInspectionItemService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 检验任务项目+结果Service业务层处理 + * + * @author klp + * @date 2026-05-15 + */ +@RequiredArgsConstructor +@Service +public class QcInspectionItemServiceImpl implements IQcInspectionItemService { + + private final QcInspectionItemMapper baseMapper; + + /** + * 查询检验任务项目+结果 + */ + @Override + public QcInspectionItemVo queryById(Long itemId){ + return baseMapper.selectVoById(itemId); + } + + /** + * 查询检验任务项目+结果列表 + */ + @Override + public TableDataInfo queryPageList(QcInspectionItemBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询检验任务项目+结果列表 + */ + @Override + public List queryList(QcInspectionItemBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(QcInspectionItemBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getTaskId() != null, QcInspectionItem::getTaskId, bo.getTaskId()); + lqw.like(StringUtils.isNotBlank(bo.getItemName()), QcInspectionItem::getItemName, bo.getItemName()); + lqw.eq(StringUtils.isNotBlank(bo.getStandardValue()), QcInspectionItem::getStandardValue, bo.getStandardValue()); + lqw.eq(bo.getUpperLimit() != null, QcInspectionItem::getUpperLimit, bo.getUpperLimit()); + lqw.eq(bo.getLowerLimit() != null, QcInspectionItem::getLowerLimit, bo.getLowerLimit()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), QcInspectionItem::getUnit, bo.getUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getItemType()), QcInspectionItem::getItemType, bo.getItemType()); + lqw.eq(StringUtils.isNotBlank(bo.getInspectValue()), QcInspectionItem::getInspectValue, bo.getInspectValue()); + lqw.eq(bo.getIsQualified() != null, QcInspectionItem::getIsQualified, bo.getIsQualified()); + lqw.eq(StringUtils.isNotBlank(bo.getJudgeResult()), QcInspectionItem::getJudgeResult, bo.getJudgeResult()); + lqw.eq(StringUtils.isNotBlank(bo.getInspectUser()), QcInspectionItem::getInspectUser, bo.getInspectUser()); + lqw.eq(bo.getInspectTime() != null, QcInspectionItem::getInspectTime, bo.getInspectTime()); + return lqw; + } + + /** + * 新增检验任务项目+结果 + */ + @Override + public Boolean insertByBo(QcInspectionItemBo bo) { + QcInspectionItem add = BeanUtil.toBean(bo, QcInspectionItem.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setItemId(add.getItemId()); + } + return flag; + } + + /** + * 修改检验任务项目+结果 + */ + @Override + public Boolean updateByBo(QcInspectionItemBo bo) { + QcInspectionItem update = BeanUtil.toBean(bo, QcInspectionItem.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(QcInspectionItem 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/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java new file mode 100644 index 00000000..f2492075 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcInspectionTaskServiceImpl.java @@ -0,0 +1,120 @@ +package com.klp.mes.qc.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.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.mes.qc.domain.bo.QcInspectionTaskBo; +import com.klp.mes.qc.domain.vo.QcInspectionTaskVo; +import com.klp.mes.qc.domain.QcInspectionTask; +import com.klp.mes.qc.mapper.QcInspectionTaskMapper; +import com.klp.mes.qc.service.IQcInspectionTaskService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 检验任务主Service业务层处理 + * + * @author klp + * @date 2026-05-15 + */ +@RequiredArgsConstructor +@Service +public class QcInspectionTaskServiceImpl implements IQcInspectionTaskService { + + private final QcInspectionTaskMapper baseMapper; + + /** + * 查询检验任务主 + */ + @Override + public QcInspectionTaskVo queryById(Long taskId){ + return baseMapper.selectVoById(taskId); + } + + /** + * 查询检验任务主列表 + */ + @Override + public TableDataInfo queryPageList(QcInspectionTaskBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询检验任务主列表 + */ + @Override + public List queryList(QcInspectionTaskBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(QcInspectionTaskBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getTaskCode()), QcInspectionTask::getTaskCode, bo.getTaskCode()); + lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), QcInspectionTask::getTaskType, bo.getTaskType()); + lqw.eq(StringUtils.isNotBlank(bo.getSourceType()), QcInspectionTask::getSourceType, bo.getSourceType()); + lqw.eq(bo.getSourceId() != null, QcInspectionTask::getSourceId, bo.getSourceId()); + lqw.eq(bo.getSchemeId() != null, QcInspectionTask::getSchemeId, bo.getSchemeId()); + lqw.like(StringUtils.isNotBlank(bo.getSchemeName()), QcInspectionTask::getSchemeName, bo.getSchemeName()); + lqw.eq(bo.getStatus() != null, QcInspectionTask::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getInspectUser()), QcInspectionTask::getInspectUser, bo.getInspectUser()); + lqw.eq(bo.getInspectTime() != null, QcInspectionTask::getInspectTime, bo.getInspectTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditUser()), QcInspectionTask::getAuditUser, bo.getAuditUser()); + lqw.eq(bo.getAuditTime() != null, QcInspectionTask::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getResult()), QcInspectionTask::getResult, bo.getResult()); + return lqw; + } + + /** + * 新增检验任务主 + */ + @Override + public Boolean insertByBo(QcInspectionTaskBo bo) { + QcInspectionTask add = BeanUtil.toBean(bo, QcInspectionTask.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setTaskId(add.getTaskId()); + } + return flag; + } + + /** + * 修改检验任务主 + */ + @Override + public Boolean updateByBo(QcInspectionTaskBo bo) { + QcInspectionTask update = BeanUtil.toBean(bo, QcInspectionTask.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(QcInspectionTask 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/qc/QcInspectionItemMapper.xml b/klp-mes/src/main/resources/mapper/qc/QcInspectionItemMapper.xml new file mode 100644 index 00000000..ba87d64f --- /dev/null +++ b/klp-mes/src/main/resources/mapper/qc/QcInspectionItemMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml b/klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml new file mode 100644 index 00000000..c085cf22 --- /dev/null +++ b/klp-mes/src/main/resources/mapper/qc/QcInspectionTaskMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +