diff --git a/klp-mes/src/main/java/com/klp/mes/qc/controller/QcCertificateController.java b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcCertificateController.java new file mode 100644 index 00000000..1913ab45 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcCertificateController.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.QcCertificateVo; +import com.klp.mes.qc.domain.bo.QcCertificateBo; +import com.klp.mes.qc.service.IQcCertificateService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 质量证明书主 + * + * @author klp + * @date 2026-05-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/qc/certificate") +public class QcCertificateController extends BaseController { + + private final IQcCertificateService iQcCertificateService; + + /** + * 查询质量证明书主列表 + */ + @GetMapping("/list") + public TableDataInfo list(QcCertificateBo bo, PageQuery pageQuery) { + return iQcCertificateService.queryPageList(bo, pageQuery); + } + + /** + * 导出质量证明书主列表 + */ + @Log(title = "质量证明书主", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(QcCertificateBo bo, HttpServletResponse response) { + List list = iQcCertificateService.queryList(bo); + ExcelUtil.exportExcel(list, "质量证明书主", QcCertificateVo.class, response); + } + + /** + * 获取质量证明书主详细信息 + * + * @param certificateId 主键 + */ + @GetMapping("/{certificateId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long certificateId) { + return R.ok(iQcCertificateService.queryById(certificateId)); + } + + /** + * 新增质量证明书主 + */ + @Log(title = "质量证明书主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody QcCertificateBo bo) { + return toAjax(iQcCertificateService.insertByBo(bo)); + } + + /** + * 修改质量证明书主 + */ + @Log(title = "质量证明书主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody QcCertificateBo bo) { + return toAjax(iQcCertificateService.updateByBo(bo)); + } + + /** + * 删除质量证明书主 + * + * @param certificateIds 主键串 + */ + @Log(title = "质量证明书主", businessType = BusinessType.DELETE) + @DeleteMapping("/{certificateIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] certificateIds) { + return toAjax(iQcCertificateService.deleteWithValidByIds(Arrays.asList(certificateIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/controller/QcCertificateItemController.java b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcCertificateItemController.java new file mode 100644 index 00000000..1c1545a5 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcCertificateItemController.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.QcCertificateItemVo; +import com.klp.mes.qc.domain.bo.QcCertificateItemBo; +import com.klp.mes.qc.service.IQcCertificateItemService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 质量证明书明细 + * + * @author klp + * @date 2026-05-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/qc/certificateItem") +public class QcCertificateItemController extends BaseController { + + private final IQcCertificateItemService iQcCertificateItemService; + + /** + * 查询质量证明书明细列表 + */ + @GetMapping("/list") + public TableDataInfo list(QcCertificateItemBo bo, PageQuery pageQuery) { + return iQcCertificateItemService.queryPageList(bo, pageQuery); + } + + /** + * 导出质量证明书明细列表 + */ + @Log(title = "质量证明书明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(QcCertificateItemBo bo, HttpServletResponse response) { + List list = iQcCertificateItemService.queryList(bo); + ExcelUtil.exportExcel(list, "质量证明书明细", QcCertificateItemVo.class, response); + } + + /** + * 获取质量证明书明细详细信息 + * + * @param itemId 主键 + */ + @GetMapping("/{itemId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long itemId) { + return R.ok(iQcCertificateItemService.queryById(itemId)); + } + + /** + * 新增质量证明书明细 + */ + @Log(title = "质量证明书明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody QcCertificateItemBo bo) { + return toAjax(iQcCertificateItemService.insertByBo(bo)); + } + + /** + * 修改质量证明书明细 + */ + @Log(title = "质量证明书明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody QcCertificateItemBo bo) { + return toAjax(iQcCertificateItemService.updateByBo(bo)); + } + + /** + * 删除质量证明书明细 + * + * @param itemIds 主键串 + */ + @Log(title = "质量证明书明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{itemIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] itemIds) { + return toAjax(iQcCertificateItemService.deleteWithValidByIds(Arrays.asList(itemIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcCertificate.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcCertificate.java new file mode 100644 index 00000000..bb8e353d --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcCertificate.java @@ -0,0 +1,71 @@ +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_certificate + * + * @author klp + * @date 2026-05-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("qc_certificate") +public class QcCertificate extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 证书ID + */ + @TableId(value = "certificate_id") + private Long certificateId; + /** + * 证明书号 + */ + private String certificateNo; + /** + * 合同号 + */ + private String contractNo; + /** + * 产品名称 + */ + private String productName; + /** + * 执行标准 + */ + private String standard; + /** + * 收货单位 + */ + private String consignee; + /** + * 生产厂家 + */ + private String manufacturer; + /** + * 签发日期 + */ + private Date issueDate; + /** + * 质保证明说明(注释) + */ + private String note; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcCertificateItem.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcCertificateItem.java new file mode 100644 index 00000000..9c6b4bff --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcCertificateItem.java @@ -0,0 +1,122 @@ +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; + +/** + * 质量证明书明细对象 qc_certificate_item + * + * @author klp + * @date 2026-05-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("qc_certificate_item") +public class QcCertificateItem extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 明细ID + */ + @TableId(value = "item_id") + private Long itemId; + /** + * 证书ID + */ + private Long certificateId; + /** + * 钢卷号 + */ + private String coilNo; + /** + * 炉号 + */ + private String heatNo; + /** + * 材质 + */ + private String materialType; + /** + * 规格(mm) + */ + private String size; + /** + * 件数 + */ + private Long pieces; + /** + * 重量(t) + */ + private BigDecimal weight; + /** + * C + */ + private BigDecimal c; + /** + * Si + */ + private BigDecimal si; + /** + * Mn + */ + private BigDecimal mn; + /** + * P + */ + private BigDecimal p; + /** + * S + */ + private BigDecimal s; + /** + * Als + */ + private BigDecimal als; + /** + * 拉伸试验-屈服强度(MPa) + */ + private BigDecimal yieldStrength; + /** + * 拉伸试验-抗拉强度(MPa) + */ + private BigDecimal tensileStrength; + /** + * 拉伸试验-伸长率(%) + */ + private BigDecimal elongation; + /** + * 硬度实验(HRB) + */ + private BigDecimal hardness; + /** + * 弯曲试验 + */ + private String bendingTest; + /** + * 表面质量 + */ + private String surfaceQuality; + /** + * 表面结构 + */ + private String surfaceStructure; + /** + * 边缘状态 + */ + private String edgeStatus; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcCertificateBo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcCertificateBo.java new file mode 100644 index 00000000..7b5e953c --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcCertificateBo.java @@ -0,0 +1,73 @@ +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_certificate + * + * @author klp + * @date 2026-05-15 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class QcCertificateBo extends BaseEntity { + + /** + * 证书ID + */ + private Long certificateId; + + /** + * 证明书号 + */ + private String certificateNo; + + /** + * 合同号 + */ + private String contractNo; + + /** + * 产品名称 + */ + private String productName; + + /** + * 执行标准 + */ + private String standard; + + /** + * 收货单位 + */ + private String consignee; + + /** + * 生产厂家 + */ + private String manufacturer; + + /** + * 签发日期 + */ + private Date issueDate; + + /** + * 质保证明说明(注释) + */ + private String note; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcCertificateItemBo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcCertificateItemBo.java new file mode 100644 index 00000000..ff0005d8 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcCertificateItemBo.java @@ -0,0 +1,137 @@ +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; + +/** + * 质量证明书明细业务对象 qc_certificate_item + * + * @author klp + * @date 2026-05-15 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class QcCertificateItemBo extends BaseEntity { + + /** + * 明细ID + */ + private Long itemId; + + /** + * 证书ID + */ + private Long certificateId; + + /** + * 钢卷号 + */ + private String coilNo; + + /** + * 炉号 + */ + private String heatNo; + + /** + * 材质 + */ + private String materialType; + + /** + * 规格(mm) + */ + private String size; + + /** + * 件数 + */ + private Long pieces; + + /** + * 重量(t) + */ + private BigDecimal weight; + + /** + * C + */ + private BigDecimal c; + + /** + * Si + */ + private BigDecimal si; + + /** + * Mn + */ + private BigDecimal mn; + + /** + * P + */ + private BigDecimal p; + + /** + * S + */ + private BigDecimal s; + + /** + * Als + */ + private BigDecimal als; + + /** + * 拉伸试验-屈服强度(MPa) + */ + private BigDecimal yieldStrength; + + /** + * 拉伸试验-抗拉强度(MPa) + */ + private BigDecimal tensileStrength; + + /** + * 拉伸试验-伸长率(%) + */ + private BigDecimal elongation; + + /** + * 硬度实验(HRB) + */ + private BigDecimal hardness; + + /** + * 弯曲试验 + */ + private String bendingTest; + + /** + * 表面质量 + */ + private String surfaceQuality; + + /** + * 表面结构 + */ + private String surfaceStructure; + + /** + * 边缘状态 + */ + private String edgeStatus; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcCertificateItemVo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcCertificateItemVo.java new file mode 100644 index 00000000..a241bd99 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcCertificateItemVo.java @@ -0,0 +1,162 @@ +package com.klp.mes.qc.domain.vo; + +import java.math.BigDecimal; +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_certificate_item + * + * @author klp + * @date 2026-05-15 + */ +@Data +@ExcelIgnoreUnannotated +public class QcCertificateItemVo { + + private static final long serialVersionUID = 1L; + + /** + * 明细ID + */ + @ExcelProperty(value = "明细ID") + private Long itemId; + + /** + * 证书ID + */ + @ExcelProperty(value = "证书ID") + private Long certificateId; + + /** + * 钢卷号 + */ + @ExcelProperty(value = "钢卷号") + private String coilNo; + + /** + * 炉号 + */ + @ExcelProperty(value = "炉号") + private String heatNo; + + /** + * 材质 + */ + @ExcelProperty(value = "材质") + private String materialType; + + /** + * 规格(mm) + */ + @ExcelProperty(value = "规格(mm)") + private String size; + + /** + * 件数 + */ + @ExcelProperty(value = "件数") + private Long pieces; + + /** + * 重量(t) + */ + @ExcelProperty(value = "重量(t)") + private BigDecimal weight; + + /** + * C + */ + @ExcelProperty(value = "C") + private BigDecimal c; + + /** + * Si + */ + @ExcelProperty(value = "Si") + private BigDecimal si; + + /** + * Mn + */ + @ExcelProperty(value = "Mn") + private BigDecimal mn; + + /** + * P + */ + @ExcelProperty(value = "P") + private BigDecimal p; + + /** + * S + */ + @ExcelProperty(value = "S") + private BigDecimal s; + + /** + * Als + */ + @ExcelProperty(value = "Als") + private BigDecimal als; + + /** + * 拉伸试验-屈服强度(MPa) + */ + @ExcelProperty(value = "拉伸试验-屈服强度(MPa)") + private BigDecimal yieldStrength; + + /** + * 拉伸试验-抗拉强度(MPa) + */ + @ExcelProperty(value = "拉伸试验-抗拉强度(MPa)") + private BigDecimal tensileStrength; + + /** + * 拉伸试验-伸长率(%) + */ + @ExcelProperty(value = "拉伸试验-伸长率(%)") + private BigDecimal elongation; + + /** + * 硬度实验(HRB) + */ + @ExcelProperty(value = "硬度实验(HRB)") + private BigDecimal hardness; + + /** + * 弯曲试验 + */ + @ExcelProperty(value = "弯曲试验") + private String bendingTest; + + /** + * 表面质量 + */ + @ExcelProperty(value = "表面质量") + private String surfaceQuality; + + /** + * 表面结构 + */ + @ExcelProperty(value = "表面结构") + private String surfaceStructure; + + /** + * 边缘状态 + */ + @ExcelProperty(value = "边缘状态") + private String edgeStatus; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcCertificateVo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcCertificateVo.java new file mode 100644 index 00000000..ae701b0d --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcCertificateVo.java @@ -0,0 +1,86 @@ +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_certificate + * + * @author klp + * @date 2026-05-15 + */ +@Data +@ExcelIgnoreUnannotated +public class QcCertificateVo { + + private static final long serialVersionUID = 1L; + + /** + * 证书ID + */ + @ExcelProperty(value = "证书ID") + private Long certificateId; + + /** + * 证明书号 + */ + @ExcelProperty(value = "证明书号") + private String certificateNo; + + /** + * 合同号 + */ + @ExcelProperty(value = "合同号") + private String contractNo; + + /** + * 产品名称 + */ + @ExcelProperty(value = "产品名称") + private String productName; + + /** + * 执行标准 + */ + @ExcelProperty(value = "执行标准") + private String standard; + + /** + * 收货单位 + */ + @ExcelProperty(value = "收货单位") + private String consignee; + + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家") + private String manufacturer; + + /** + * 签发日期 + */ + @ExcelProperty(value = "签发日期") + private Date issueDate; + + /** + * 质保证明说明(注释) + */ + @ExcelProperty(value = "质保证明说明", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "注=释") + private String note; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcCertificateItemMapper.java b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcCertificateItemMapper.java new file mode 100644 index 00000000..e10ce720 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcCertificateItemMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.qc.mapper; + +import com.klp.mes.qc.domain.QcCertificateItem; +import com.klp.mes.qc.domain.vo.QcCertificateItemVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 质量证明书明细Mapper接口 + * + * @author klp + * @date 2026-05-15 + */ +public interface QcCertificateItemMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcCertificateMapper.java b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcCertificateMapper.java new file mode 100644 index 00000000..e3646940 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcCertificateMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.qc.mapper; + +import com.klp.mes.qc.domain.QcCertificate; +import com.klp.mes.qc.domain.vo.QcCertificateVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 质量证明书主Mapper接口 + * + * @author klp + * @date 2026-05-15 + */ +public interface QcCertificateMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/IQcCertificateItemService.java b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcCertificateItemService.java new file mode 100644 index 00000000..7e7e4206 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcCertificateItemService.java @@ -0,0 +1,49 @@ +package com.klp.mes.qc.service; + +import com.klp.mes.qc.domain.QcCertificateItem; +import com.klp.mes.qc.domain.vo.QcCertificateItemVo; +import com.klp.mes.qc.domain.bo.QcCertificateItemBo; +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 IQcCertificateItemService { + + /** + * 查询质量证明书明细 + */ + QcCertificateItemVo queryById(Long itemId); + + /** + * 查询质量证明书明细列表 + */ + TableDataInfo queryPageList(QcCertificateItemBo bo, PageQuery pageQuery); + + /** + * 查询质量证明书明细列表 + */ + List queryList(QcCertificateItemBo bo); + + /** + * 新增质量证明书明细 + */ + Boolean insertByBo(QcCertificateItemBo bo); + + /** + * 修改质量证明书明细 + */ + Boolean updateByBo(QcCertificateItemBo bo); + + /** + * 校验并批量删除质量证明书明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/IQcCertificateService.java b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcCertificateService.java new file mode 100644 index 00000000..7ab1002f --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcCertificateService.java @@ -0,0 +1,49 @@ +package com.klp.mes.qc.service; + +import com.klp.mes.qc.domain.QcCertificate; +import com.klp.mes.qc.domain.vo.QcCertificateVo; +import com.klp.mes.qc.domain.bo.QcCertificateBo; +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 IQcCertificateService { + + /** + * 查询质量证明书主 + */ + QcCertificateVo queryById(Long certificateId); + + /** + * 查询质量证明书主列表 + */ + TableDataInfo queryPageList(QcCertificateBo bo, PageQuery pageQuery); + + /** + * 查询质量证明书主列表 + */ + List queryList(QcCertificateBo bo); + + /** + * 新增质量证明书主 + */ + Boolean insertByBo(QcCertificateBo bo); + + /** + * 修改质量证明书主 + */ + Boolean updateByBo(QcCertificateBo bo); + + /** + * 校验并批量删除质量证明书主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcCertificateItemServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcCertificateItemServiceImpl.java new file mode 100644 index 00000000..44fcb150 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcCertificateItemServiceImpl.java @@ -0,0 +1,129 @@ +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.QcCertificateItemBo; +import com.klp.mes.qc.domain.vo.QcCertificateItemVo; +import com.klp.mes.qc.domain.QcCertificateItem; +import com.klp.mes.qc.mapper.QcCertificateItemMapper; +import com.klp.mes.qc.service.IQcCertificateItemService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 质量证明书明细Service业务层处理 + * + * @author klp + * @date 2026-05-15 + */ +@RequiredArgsConstructor +@Service +public class QcCertificateItemServiceImpl implements IQcCertificateItemService { + + private final QcCertificateItemMapper baseMapper; + + /** + * 查询质量证明书明细 + */ + @Override + public QcCertificateItemVo queryById(Long itemId){ + return baseMapper.selectVoById(itemId); + } + + /** + * 查询质量证明书明细列表 + */ + @Override + public TableDataInfo queryPageList(QcCertificateItemBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询质量证明书明细列表 + */ + @Override + public List queryList(QcCertificateItemBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(QcCertificateItemBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getCertificateId() != null, QcCertificateItem::getCertificateId, bo.getCertificateId()); + lqw.eq(StringUtils.isNotBlank(bo.getCoilNo()), QcCertificateItem::getCoilNo, bo.getCoilNo()); + lqw.eq(StringUtils.isNotBlank(bo.getHeatNo()), QcCertificateItem::getHeatNo, bo.getHeatNo()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialType()), QcCertificateItem::getMaterialType, bo.getMaterialType()); + lqw.eq(StringUtils.isNotBlank(bo.getSize()), QcCertificateItem::getSize, bo.getSize()); + lqw.eq(bo.getPieces() != null, QcCertificateItem::getPieces, bo.getPieces()); + lqw.eq(bo.getWeight() != null, QcCertificateItem::getWeight, bo.getWeight()); + lqw.eq(bo.getC() != null, QcCertificateItem::getC, bo.getC()); + lqw.eq(bo.getSi() != null, QcCertificateItem::getSi, bo.getSi()); + lqw.eq(bo.getMn() != null, QcCertificateItem::getMn, bo.getMn()); + lqw.eq(bo.getP() != null, QcCertificateItem::getP, bo.getP()); + lqw.eq(bo.getS() != null, QcCertificateItem::getS, bo.getS()); + lqw.eq(bo.getAls() != null, QcCertificateItem::getAls, bo.getAls()); + lqw.eq(bo.getYieldStrength() != null, QcCertificateItem::getYieldStrength, bo.getYieldStrength()); + lqw.eq(bo.getTensileStrength() != null, QcCertificateItem::getTensileStrength, bo.getTensileStrength()); + lqw.eq(bo.getElongation() != null, QcCertificateItem::getElongation, bo.getElongation()); + lqw.eq(bo.getHardness() != null, QcCertificateItem::getHardness, bo.getHardness()); + lqw.eq(StringUtils.isNotBlank(bo.getBendingTest()), QcCertificateItem::getBendingTest, bo.getBendingTest()); + lqw.eq(StringUtils.isNotBlank(bo.getSurfaceQuality()), QcCertificateItem::getSurfaceQuality, bo.getSurfaceQuality()); + lqw.eq(StringUtils.isNotBlank(bo.getSurfaceStructure()), QcCertificateItem::getSurfaceStructure, bo.getSurfaceStructure()); + lqw.eq(StringUtils.isNotBlank(bo.getEdgeStatus()), QcCertificateItem::getEdgeStatus, bo.getEdgeStatus()); + return lqw; + } + + /** + * 新增质量证明书明细 + */ + @Override + public Boolean insertByBo(QcCertificateItemBo bo) { + QcCertificateItem add = BeanUtil.toBean(bo, QcCertificateItem.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setItemId(add.getItemId()); + } + return flag; + } + + /** + * 修改质量证明书明细 + */ + @Override + public Boolean updateByBo(QcCertificateItemBo bo) { + QcCertificateItem update = BeanUtil.toBean(bo, QcCertificateItem.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(QcCertificateItem 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/QcCertificateServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcCertificateServiceImpl.java new file mode 100644 index 00000000..2ba5c1ca --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcCertificateServiceImpl.java @@ -0,0 +1,116 @@ +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.QcCertificateBo; +import com.klp.mes.qc.domain.vo.QcCertificateVo; +import com.klp.mes.qc.domain.QcCertificate; +import com.klp.mes.qc.mapper.QcCertificateMapper; +import com.klp.mes.qc.service.IQcCertificateService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 质量证明书主Service业务层处理 + * + * @author klp + * @date 2026-05-15 + */ +@RequiredArgsConstructor +@Service +public class QcCertificateServiceImpl implements IQcCertificateService { + + private final QcCertificateMapper baseMapper; + + /** + * 查询质量证明书主 + */ + @Override + public QcCertificateVo queryById(Long certificateId){ + return baseMapper.selectVoById(certificateId); + } + + /** + * 查询质量证明书主列表 + */ + @Override + public TableDataInfo queryPageList(QcCertificateBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询质量证明书主列表 + */ + @Override + public List queryList(QcCertificateBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(QcCertificateBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getCertificateNo()), QcCertificate::getCertificateNo, bo.getCertificateNo()); + lqw.eq(StringUtils.isNotBlank(bo.getContractNo()), QcCertificate::getContractNo, bo.getContractNo()); + lqw.like(StringUtils.isNotBlank(bo.getProductName()), QcCertificate::getProductName, bo.getProductName()); + lqw.eq(StringUtils.isNotBlank(bo.getStandard()), QcCertificate::getStandard, bo.getStandard()); + lqw.eq(StringUtils.isNotBlank(bo.getConsignee()), QcCertificate::getConsignee, bo.getConsignee()); + lqw.eq(StringUtils.isNotBlank(bo.getManufacturer()), QcCertificate::getManufacturer, bo.getManufacturer()); + lqw.eq(bo.getIssueDate() != null, QcCertificate::getIssueDate, bo.getIssueDate()); + lqw.eq(StringUtils.isNotBlank(bo.getNote()), QcCertificate::getNote, bo.getNote()); + return lqw; + } + + /** + * 新增质量证明书主 + */ + @Override + public Boolean insertByBo(QcCertificateBo bo) { + QcCertificate add = BeanUtil.toBean(bo, QcCertificate.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setCertificateId(add.getCertificateId()); + } + return flag; + } + + /** + * 修改质量证明书主 + */ + @Override + public Boolean updateByBo(QcCertificateBo bo) { + QcCertificate update = BeanUtil.toBean(bo, QcCertificate.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(QcCertificate 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/QcCertificateItemMapper.xml b/klp-mes/src/main/resources/mapper/qc/QcCertificateItemMapper.xml new file mode 100644 index 00000000..e32f6d58 --- /dev/null +++ b/klp-mes/src/main/resources/mapper/qc/QcCertificateItemMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-mes/src/main/resources/mapper/qc/QcCertificateMapper.xml b/klp-mes/src/main/resources/mapper/qc/QcCertificateMapper.xml new file mode 100644 index 00000000..0ba6d536 --- /dev/null +++ b/klp-mes/src/main/resources/mapper/qc/QcCertificateMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + +