feat(qc): 添加质检检验任务及项目功能模块
- 创建检验任务主实体、业务对象和服务接口及实现类 - 创建检验任务项目实体、业务对象和服务接口及实现类 - 实现检验任务和项目的增删改查功能 - 添加检验任务和项目的数据访问层和映射配置 - 集成分页查询和导出功能 - 配置数据校验和权限控制
This commit is contained in:
@@ -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<QcInspectionItemVo> 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<QcInspectionItemVo> list = iQcInspectionItemService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "检验任务项目+结果", QcInspectionItemVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取检验任务项目+结果详细信息
|
||||
*
|
||||
* @param itemId 主键
|
||||
*/
|
||||
@GetMapping("/{itemId}")
|
||||
public R<QcInspectionItemVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long itemId) {
|
||||
return R.ok(iQcInspectionItemService.queryById(itemId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增检验任务项目+结果
|
||||
*/
|
||||
@Log(title = "检验任务项目+结果", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionItemBo bo) {
|
||||
return toAjax(iQcInspectionItemService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改检验任务项目+结果
|
||||
*/
|
||||
@Log(title = "检验任务项目+结果", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionItemBo bo) {
|
||||
return toAjax(iQcInspectionItemService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除检验任务项目+结果
|
||||
*
|
||||
* @param itemIds 主键串
|
||||
*/
|
||||
@Log(title = "检验任务项目+结果", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{itemIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] itemIds) {
|
||||
return toAjax(iQcInspectionItemService.deleteWithValidByIds(Arrays.asList(itemIds), true));
|
||||
}
|
||||
}
|
||||
@@ -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<QcInspectionTaskVo> 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<QcInspectionTaskVo> list = iQcInspectionTaskService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "检验任务主", QcInspectionTaskVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取检验任务主详细信息
|
||||
*
|
||||
* @param taskId 主键
|
||||
*/
|
||||
@GetMapping("/{taskId}")
|
||||
public R<QcInspectionTaskVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long taskId) {
|
||||
return R.ok(iQcInspectionTaskService.queryById(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增检验任务主
|
||||
*/
|
||||
@Log(title = "检验任务主", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionTaskBo bo) {
|
||||
return toAjax(iQcInspectionTaskService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改检验任务主
|
||||
*/
|
||||
@Log(title = "检验任务主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionTaskBo bo) {
|
||||
return toAjax(iQcInspectionTaskService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除检验任务主
|
||||
*
|
||||
* @param taskIds 主键串
|
||||
*/
|
||||
@Log(title = "检验任务主", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{taskIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] taskIds) {
|
||||
return toAjax(iQcInspectionTaskService.deleteWithValidByIds(Arrays.asList(taskIds), true));
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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<QcInspectionItemMapper, QcInspectionItem, QcInspectionItemVo> {
|
||||
|
||||
}
|
||||
@@ -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<QcInspectionTaskMapper, QcInspectionTask, QcInspectionTaskVo> {
|
||||
|
||||
}
|
||||
@@ -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<QcInspectionItemVo> queryPageList(QcInspectionItemBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询检验任务项目+结果列表
|
||||
*/
|
||||
List<QcInspectionItemVo> queryList(QcInspectionItemBo bo);
|
||||
|
||||
/**
|
||||
* 新增检验任务项目+结果
|
||||
*/
|
||||
Boolean insertByBo(QcInspectionItemBo bo);
|
||||
|
||||
/**
|
||||
* 修改检验任务项目+结果
|
||||
*/
|
||||
Boolean updateByBo(QcInspectionItemBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除检验任务项目+结果信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -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<QcInspectionTaskVo> queryPageList(QcInspectionTaskBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询检验任务主列表
|
||||
*/
|
||||
List<QcInspectionTaskVo> queryList(QcInspectionTaskBo bo);
|
||||
|
||||
/**
|
||||
* 新增检验任务主
|
||||
*/
|
||||
Boolean insertByBo(QcInspectionTaskBo bo);
|
||||
|
||||
/**
|
||||
* 修改检验任务主
|
||||
*/
|
||||
Boolean updateByBo(QcInspectionTaskBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除检验任务主信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -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<QcInspectionItemVo> queryPageList(QcInspectionItemBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<QcInspectionItem> lqw = buildQueryWrapper(bo);
|
||||
Page<QcInspectionItemVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询检验任务项目+结果列表
|
||||
*/
|
||||
@Override
|
||||
public List<QcInspectionItemVo> queryList(QcInspectionItemBo bo) {
|
||||
LambdaQueryWrapper<QcInspectionItem> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<QcInspectionItem> buildQueryWrapper(QcInspectionItemBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<QcInspectionItem> 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<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -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<QcInspectionTaskVo> queryPageList(QcInspectionTaskBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<QcInspectionTask> lqw = buildQueryWrapper(bo);
|
||||
Page<QcInspectionTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询检验任务主列表
|
||||
*/
|
||||
@Override
|
||||
public List<QcInspectionTaskVo> queryList(QcInspectionTaskBo bo) {
|
||||
LambdaQueryWrapper<QcInspectionTask> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<QcInspectionTask> buildQueryWrapper(QcInspectionTaskBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<QcInspectionTask> 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<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.klp.mes.qc.mapper.QcInspectionItemMapper">
|
||||
|
||||
<resultMap type="com.klp.mes.qc.domain.QcInspectionItem" id="QcInspectionItemResult">
|
||||
<result property="itemId" column="item_id"/>
|
||||
<result property="taskId" column="task_id"/>
|
||||
<result property="itemName" column="item_name"/>
|
||||
<result property="standardValue" column="standard_value"/>
|
||||
<result property="upperLimit" column="upper_limit"/>
|
||||
<result property="lowerLimit" column="lower_limit"/>
|
||||
<result property="unit" column="unit"/>
|
||||
<result property="itemType" column="item_type"/>
|
||||
<result property="inspectValue" column="inspect_value"/>
|
||||
<result property="isQualified" column="is_qualified"/>
|
||||
<result property="judgeResult" column="judge_result"/>
|
||||
<result property="inspectUser" column="inspect_user"/>
|
||||
<result property="inspectTime" column="inspect_time"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.klp.mes.qc.mapper.QcInspectionTaskMapper">
|
||||
|
||||
<resultMap type="com.klp.mes.qc.domain.QcInspectionTask" id="QcInspectionTaskResult">
|
||||
<result property="taskId" column="task_id"/>
|
||||
<result property="taskCode" column="task_code"/>
|
||||
<result property="taskType" column="task_type"/>
|
||||
<result property="sourceType" column="source_type"/>
|
||||
<result property="sourceId" column="source_id"/>
|
||||
<result property="schemeId" column="scheme_id"/>
|
||||
<result property="schemeName" column="scheme_name"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="inspectUser" column="inspect_user"/>
|
||||
<result property="inspectTime" column="inspect_time"/>
|
||||
<result property="auditUser" column="audit_user"/>
|
||||
<result property="auditTime" column="audit_time"/>
|
||||
<result property="result" column="result"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user