From 9d4a5afb4960c363e8f082ae56586ae2db0d737c Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 18 May 2026 09:53:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(exception):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=B3=BB=E7=BB=9F=E8=BF=9E=E6=8E=A5=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 ResourceAccessException 处理器 - 实现二级系统连接失败的特殊错误响应 - 添加 Connection refused 和 sql-server-api 相关错误检测 - 返回 503 状态码并提示二级系统停机 - 记录详细的错误日志信息 - 提供用户友好的错误提示信息 --- .../web/exception/GlobalExceptionHandler.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/klp-framework/src/main/java/com/klp/framework/web/exception/GlobalExceptionHandler.java b/klp-framework/src/main/java/com/klp/framework/web/exception/GlobalExceptionHandler.java index cec8ee50..7020d516 100644 --- a/klp-framework/src/main/java/com/klp/framework/web/exception/GlobalExceptionHandler.java +++ b/klp-framework/src/main/java/com/klp/framework/web/exception/GlobalExceptionHandler.java @@ -18,6 +18,7 @@ import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.client.ResourceAccessException; import javax.servlet.http.HttpServletRequest; import javax.validation.ConstraintViolation; @@ -158,6 +159,21 @@ public class GlobalExceptionHandler { return R.fail(message); } + /** + * 二级系统(L2)连接失败 + */ + @ExceptionHandler(ResourceAccessException.class) + public R handleResourceAccessException(ResourceAccessException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + String message = e.getMessage(); + if (message != null && (message.contains("Connection refused") || message.contains("sql-server-api"))) { + log.error("请求地址'{}', 二级系统连接失败'{}'", requestURI, message); + return R.fail(503, "二级系统状态异常,已停机,请稍后重试或联系管理员确认"); + } + log.error("请求地址'{}', 资源访问异常", requestURI, e); + return R.fail("服务连接异常,请稍后重试"); + } + /** * 演示模式异常 */ From 825879c1a8345235e7bcde5f3988b038042e6802 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 18 May 2026 10:16:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(qc):=20=E6=B7=BB=E5=8A=A0=E8=B4=A8?= =?UTF-8?q?=E9=87=8F=E6=A3=80=E9=AA=8C=E5=8C=96=E5=AD=A6=E6=88=90=E5=88=86?= =?UTF-8?q?=E5=92=8C=E7=89=A9=E7=90=86=E6=80=A7=E8=83=BD=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建化学成分明细相关实体类、业务对象、视图对象和映射文件 - 实现化学成分明细的增删改查、分页查询和导出功能 - 创建物理性能明细相关实体类、业务对象、视图对象和映射文件 - 实现物理性能明细的增删改查、分页查询和导出功能 - 添加对应的服务接口和实现类 - 配置控制器端点和数据验证规则 - 实现MyBatis映射配置和查询构建器 --- .../controller/QcChemicalItemController.java | 99 +++++++++++++++ .../controller/QcPhysicalItemController.java | 99 +++++++++++++++ .../com/klp/mes/qc/domain/QcChemicalItem.java | 74 +++++++++++ .../com/klp/mes/qc/domain/QcPhysicalItem.java | 78 ++++++++++++ .../mes/qc/domain/bo/QcChemicalItemBo.java | 77 ++++++++++++ .../mes/qc/domain/bo/QcPhysicalItemBo.java | 82 ++++++++++++ .../mes/qc/domain/vo/QcChemicalItemVo.java | 90 +++++++++++++ .../mes/qc/domain/vo/QcPhysicalItemVo.java | 96 ++++++++++++++ .../mes/qc/mapper/QcChemicalItemMapper.java | 15 +++ .../mes/qc/mapper/QcPhysicalItemMapper.java | 15 +++ .../qc/service/IQcChemicalItemService.java | 49 ++++++++ .../qc/service/IQcPhysicalItemService.java | 49 ++++++++ .../impl/QcChemicalItemServiceImpl.java | 117 +++++++++++++++++ .../impl/QcPhysicalItemServiceImpl.java | 118 ++++++++++++++++++ .../mapper/qc/QcChemicalItemMapper.xml | 27 ++++ .../mapper/qc/QcPhysicalItemMapper.xml | 28 +++++ 16 files changed, 1113 insertions(+) create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/controller/QcChemicalItemController.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/controller/QcPhysicalItemController.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/QcChemicalItem.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/QcPhysicalItem.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcChemicalItemBo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcPhysicalItemBo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcChemicalItemVo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcPhysicalItemVo.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/mapper/QcChemicalItemMapper.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/mapper/QcPhysicalItemMapper.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/IQcChemicalItemService.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/IQcPhysicalItemService.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcChemicalItemServiceImpl.java create mode 100644 klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcPhysicalItemServiceImpl.java create mode 100644 klp-mes/src/main/resources/mapper/qc/QcChemicalItemMapper.xml create mode 100644 klp-mes/src/main/resources/mapper/qc/QcPhysicalItemMapper.xml diff --git a/klp-mes/src/main/java/com/klp/mes/qc/controller/QcChemicalItemController.java b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcChemicalItemController.java new file mode 100644 index 00000000..d249c037 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcChemicalItemController.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.QcChemicalItemVo; +import com.klp.mes.qc.domain.bo.QcChemicalItemBo; +import com.klp.mes.qc.service.IQcChemicalItemService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 质量的化学成分明细 + * + * @author klp + * @date 2026-05-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/qc/chemicalItem") +public class QcChemicalItemController extends BaseController { + + private final IQcChemicalItemService iQcChemicalItemService; + + /** + * 查询质量的化学成分明细列表 + */ + @GetMapping("/list") + public TableDataInfo list(QcChemicalItemBo bo, PageQuery pageQuery) { + return iQcChemicalItemService.queryPageList(bo, pageQuery); + } + + /** + * 导出质量的化学成分明细列表 + */ + @Log(title = "质量的化学成分明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(QcChemicalItemBo bo, HttpServletResponse response) { + List list = iQcChemicalItemService.queryList(bo); + ExcelUtil.exportExcel(list, "质量的化学成分明细", QcChemicalItemVo.class, response); + } + + /** + * 获取质量的化学成分明细详细信息 + * + * @param itemId 主键 + */ + @GetMapping("/{itemId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long itemId) { + return R.ok(iQcChemicalItemService.queryById(itemId)); + } + + /** + * 新增质量的化学成分明细 + */ + @Log(title = "质量的化学成分明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody QcChemicalItemBo bo) { + return toAjax(iQcChemicalItemService.insertByBo(bo)); + } + + /** + * 修改质量的化学成分明细 + */ + @Log(title = "质量的化学成分明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody QcChemicalItemBo bo) { + return toAjax(iQcChemicalItemService.updateByBo(bo)); + } + + /** + * 删除质量的化学成分明细 + * + * @param itemIds 主键串 + */ + @Log(title = "质量的化学成分明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{itemIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] itemIds) { + return toAjax(iQcChemicalItemService.deleteWithValidByIds(Arrays.asList(itemIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/controller/QcPhysicalItemController.java b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcPhysicalItemController.java new file mode 100644 index 00000000..c47e1722 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/controller/QcPhysicalItemController.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.QcPhysicalItemVo; +import com.klp.mes.qc.domain.bo.QcPhysicalItemBo; +import com.klp.mes.qc.service.IQcPhysicalItemService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 物理性能明细 + * + * @author klp + * @date 2026-05-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/qc/physicalItem") +public class QcPhysicalItemController extends BaseController { + + private final IQcPhysicalItemService iQcPhysicalItemService; + + /** + * 查询物理性能明细列表 + */ + @GetMapping("/list") + public TableDataInfo list(QcPhysicalItemBo bo, PageQuery pageQuery) { + return iQcPhysicalItemService.queryPageList(bo, pageQuery); + } + + /** + * 导出物理性能明细列表 + */ + @Log(title = "物理性能明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(QcPhysicalItemBo bo, HttpServletResponse response) { + List list = iQcPhysicalItemService.queryList(bo); + ExcelUtil.exportExcel(list, "物理性能明细", QcPhysicalItemVo.class, response); + } + + /** + * 获取物理性能明细详细信息 + * + * @param physicalId 主键 + */ + @GetMapping("/{physicalId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long physicalId) { + return R.ok(iQcPhysicalItemService.queryById(physicalId)); + } + + /** + * 新增物理性能明细 + */ + @Log(title = "物理性能明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody QcPhysicalItemBo bo) { + return toAjax(iQcPhysicalItemService.insertByBo(bo)); + } + + /** + * 修改物理性能明细 + */ + @Log(title = "物理性能明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody QcPhysicalItemBo bo) { + return toAjax(iQcPhysicalItemService.updateByBo(bo)); + } + + /** + * 删除物理性能明细 + * + * @param physicalIds 主键串 + */ + @Log(title = "物理性能明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{physicalIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] physicalIds) { + return toAjax(iQcPhysicalItemService.deleteWithValidByIds(Arrays.asList(physicalIds), true)); + } +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcChemicalItem.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcChemicalItem.java new file mode 100644 index 00000000..e4ee9c0f --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcChemicalItem.java @@ -0,0 +1,74 @@ +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_chemical_item + * + * @author klp + * @date 2026-05-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("qc_chemical_item") +public class QcChemicalItem 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 BigDecimal c; + /** + * 硅(%) + */ + private BigDecimal si; + /** + * 锰(%) + */ + private BigDecimal mn; + /** + * 磷(%) + */ + private BigDecimal p; + /** + * 硫(%) + */ + private BigDecimal s; + /** + * 酸溶铝(%) + */ + private BigDecimal als; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/QcPhysicalItem.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcPhysicalItem.java new file mode 100644 index 00000000..245132dc --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/QcPhysicalItem.java @@ -0,0 +1,78 @@ +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_physical_item + * + * @author klp + * @date 2026-05-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("qc_physical_item") +public class QcPhysicalItem extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 物理性能ID + */ + @TableId(value = "physical_id") + private Long physicalId; + /** + * 证书ID + */ + private Long certificateId; + /** + * 钢卷号(关联化学成分表) + */ + private String coilNo; + /** + * 拉伸试验-屈服强度(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/QcChemicalItemBo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcChemicalItemBo.java new file mode 100644 index 00000000..67e2e7cb --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcChemicalItemBo.java @@ -0,0 +1,77 @@ +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_chemical_item + * + * @author klp + * @date 2026-05-18 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class QcChemicalItemBo extends BaseEntity { + + /** + * 明细ID + */ + private Long itemId; + + /** + * 证书ID + */ + private Long certificateId; + + /** + * 钢卷号 + */ + private String coilNo; + + /** + * 炉号 + */ + private String heatNo; + + /** + * 碳(%) + */ + private BigDecimal c; + + /** + * 硅(%) + */ + private BigDecimal si; + + /** + * 锰(%) + */ + private BigDecimal mn; + + /** + * 磷(%) + */ + private BigDecimal p; + + /** + * 硫(%) + */ + private BigDecimal s; + + /** + * 酸溶铝(%) + */ + private BigDecimal als; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcPhysicalItemBo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcPhysicalItemBo.java new file mode 100644 index 00000000..3b23a314 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/bo/QcPhysicalItemBo.java @@ -0,0 +1,82 @@ +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_physical_item + * + * @author klp + * @date 2026-05-18 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class QcPhysicalItemBo extends BaseEntity { + + /** + * 物理性能ID + */ + private Long physicalId; + + /** + * 证书ID + */ + private Long certificateId; + + /** + * 钢卷号(关联化学成分表) + */ + private String coilNo; + + /** + * 拉伸试验-屈服强度(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/QcChemicalItemVo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcChemicalItemVo.java new file mode 100644 index 00000000..df27018b --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcChemicalItemVo.java @@ -0,0 +1,90 @@ +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_chemical_item + * + * @author klp + * @date 2026-05-18 + */ +@Data +@ExcelIgnoreUnannotated +public class QcChemicalItemVo { + + 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 BigDecimal c; + + /** + * 硅(%) + */ + @ExcelProperty(value = "硅(%)") + private BigDecimal si; + + /** + * 锰(%) + */ + @ExcelProperty(value = "锰(%)") + private BigDecimal mn; + + /** + * 磷(%) + */ + @ExcelProperty(value = "磷(%)") + private BigDecimal p; + + /** + * 硫(%) + */ + @ExcelProperty(value = "硫(%)") + private BigDecimal s; + + /** + * 酸溶铝(%) + */ + @ExcelProperty(value = "酸溶铝(%)") + private BigDecimal als; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcPhysicalItemVo.java b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcPhysicalItemVo.java new file mode 100644 index 00000000..0706f277 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/domain/vo/QcPhysicalItemVo.java @@ -0,0 +1,96 @@ +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_physical_item + * + * @author klp + * @date 2026-05-18 + */ +@Data +@ExcelIgnoreUnannotated +public class QcPhysicalItemVo { + + private static final long serialVersionUID = 1L; + + /** + * 物理性能ID + */ + @ExcelProperty(value = "物理性能ID") + private Long physicalId; + + /** + * 证书ID + */ + @ExcelProperty(value = "证书ID") + private Long certificateId; + + /** + * 钢卷号(关联化学成分表) + */ + @ExcelProperty(value = "钢卷号(关联化学成分表)") + private String coilNo; + + /** + * 拉伸试验-屈服强度(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/mapper/QcChemicalItemMapper.java b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcChemicalItemMapper.java new file mode 100644 index 00000000..7d7059a3 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcChemicalItemMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.qc.mapper; + +import com.klp.mes.qc.domain.QcChemicalItem; +import com.klp.mes.qc.domain.vo.QcChemicalItemVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 质量的化学成分明细Mapper接口 + * + * @author klp + * @date 2026-05-18 + */ +public interface QcChemicalItemMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcPhysicalItemMapper.java b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcPhysicalItemMapper.java new file mode 100644 index 00000000..51456207 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/mapper/QcPhysicalItemMapper.java @@ -0,0 +1,15 @@ +package com.klp.mes.qc.mapper; + +import com.klp.mes.qc.domain.QcPhysicalItem; +import com.klp.mes.qc.domain.vo.QcPhysicalItemVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 物理性能明细Mapper接口 + * + * @author klp + * @date 2026-05-18 + */ +public interface QcPhysicalItemMapper extends BaseMapperPlus { + +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/IQcChemicalItemService.java b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcChemicalItemService.java new file mode 100644 index 00000000..ebd51312 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcChemicalItemService.java @@ -0,0 +1,49 @@ +package com.klp.mes.qc.service; + +import com.klp.mes.qc.domain.QcChemicalItem; +import com.klp.mes.qc.domain.vo.QcChemicalItemVo; +import com.klp.mes.qc.domain.bo.QcChemicalItemBo; +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-18 + */ +public interface IQcChemicalItemService { + + /** + * 查询质量的化学成分明细 + */ + QcChemicalItemVo queryById(Long itemId); + + /** + * 查询质量的化学成分明细列表 + */ + TableDataInfo queryPageList(QcChemicalItemBo bo, PageQuery pageQuery); + + /** + * 查询质量的化学成分明细列表 + */ + List queryList(QcChemicalItemBo bo); + + /** + * 新增质量的化学成分明细 + */ + Boolean insertByBo(QcChemicalItemBo bo); + + /** + * 修改质量的化学成分明细 + */ + Boolean updateByBo(QcChemicalItemBo bo); + + /** + * 校验并批量删除质量的化学成分明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/IQcPhysicalItemService.java b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcPhysicalItemService.java new file mode 100644 index 00000000..3ba41b51 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/IQcPhysicalItemService.java @@ -0,0 +1,49 @@ +package com.klp.mes.qc.service; + +import com.klp.mes.qc.domain.QcPhysicalItem; +import com.klp.mes.qc.domain.vo.QcPhysicalItemVo; +import com.klp.mes.qc.domain.bo.QcPhysicalItemBo; +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-18 + */ +public interface IQcPhysicalItemService { + + /** + * 查询物理性能明细 + */ + QcPhysicalItemVo queryById(Long physicalId); + + /** + * 查询物理性能明细列表 + */ + TableDataInfo queryPageList(QcPhysicalItemBo bo, PageQuery pageQuery); + + /** + * 查询物理性能明细列表 + */ + List queryList(QcPhysicalItemBo bo); + + /** + * 新增物理性能明细 + */ + Boolean insertByBo(QcPhysicalItemBo bo); + + /** + * 修改物理性能明细 + */ + Boolean updateByBo(QcPhysicalItemBo bo); + + /** + * 校验并批量删除物理性能明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcChemicalItemServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcChemicalItemServiceImpl.java new file mode 100644 index 00000000..6b98a3e3 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcChemicalItemServiceImpl.java @@ -0,0 +1,117 @@ +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.QcChemicalItemBo; +import com.klp.mes.qc.domain.vo.QcChemicalItemVo; +import com.klp.mes.qc.domain.QcChemicalItem; +import com.klp.mes.qc.mapper.QcChemicalItemMapper; +import com.klp.mes.qc.service.IQcChemicalItemService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 质量的化学成分明细Service业务层处理 + * + * @author klp + * @date 2026-05-18 + */ +@RequiredArgsConstructor +@Service +public class QcChemicalItemServiceImpl implements IQcChemicalItemService { + + private final QcChemicalItemMapper baseMapper; + + /** + * 查询质量的化学成分明细 + */ + @Override + public QcChemicalItemVo queryById(Long itemId){ + return baseMapper.selectVoById(itemId); + } + + /** + * 查询质量的化学成分明细列表 + */ + @Override + public TableDataInfo queryPageList(QcChemicalItemBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询质量的化学成分明细列表 + */ + @Override + public List queryList(QcChemicalItemBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(QcChemicalItemBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getCertificateId() != null, QcChemicalItem::getCertificateId, bo.getCertificateId()); + lqw.eq(StringUtils.isNotBlank(bo.getCoilNo()), QcChemicalItem::getCoilNo, bo.getCoilNo()); + lqw.eq(StringUtils.isNotBlank(bo.getHeatNo()), QcChemicalItem::getHeatNo, bo.getHeatNo()); + lqw.eq(bo.getC() != null, QcChemicalItem::getC, bo.getC()); + lqw.eq(bo.getSi() != null, QcChemicalItem::getSi, bo.getSi()); + lqw.eq(bo.getMn() != null, QcChemicalItem::getMn, bo.getMn()); + lqw.eq(bo.getP() != null, QcChemicalItem::getP, bo.getP()); + lqw.eq(bo.getS() != null, QcChemicalItem::getS, bo.getS()); + lqw.eq(bo.getAls() != null, QcChemicalItem::getAls, bo.getAls()); + return lqw; + } + + /** + * 新增质量的化学成分明细 + */ + @Override + public Boolean insertByBo(QcChemicalItemBo bo) { + QcChemicalItem add = BeanUtil.toBean(bo, QcChemicalItem.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setItemId(add.getItemId()); + } + return flag; + } + + /** + * 修改质量的化学成分明细 + */ + @Override + public Boolean updateByBo(QcChemicalItemBo bo) { + QcChemicalItem update = BeanUtil.toBean(bo, QcChemicalItem.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(QcChemicalItem 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/QcPhysicalItemServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcPhysicalItemServiceImpl.java new file mode 100644 index 00000000..ca8acfb9 --- /dev/null +++ b/klp-mes/src/main/java/com/klp/mes/qc/service/impl/QcPhysicalItemServiceImpl.java @@ -0,0 +1,118 @@ +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.QcPhysicalItemBo; +import com.klp.mes.qc.domain.vo.QcPhysicalItemVo; +import com.klp.mes.qc.domain.QcPhysicalItem; +import com.klp.mes.qc.mapper.QcPhysicalItemMapper; +import com.klp.mes.qc.service.IQcPhysicalItemService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 物理性能明细Service业务层处理 + * + * @author klp + * @date 2026-05-18 + */ +@RequiredArgsConstructor +@Service +public class QcPhysicalItemServiceImpl implements IQcPhysicalItemService { + + private final QcPhysicalItemMapper baseMapper; + + /** + * 查询物理性能明细 + */ + @Override + public QcPhysicalItemVo queryById(Long physicalId){ + return baseMapper.selectVoById(physicalId); + } + + /** + * 查询物理性能明细列表 + */ + @Override + public TableDataInfo queryPageList(QcPhysicalItemBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询物理性能明细列表 + */ + @Override + public List queryList(QcPhysicalItemBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(QcPhysicalItemBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getCertificateId() != null, QcPhysicalItem::getCertificateId, bo.getCertificateId()); + lqw.eq(StringUtils.isNotBlank(bo.getCoilNo()), QcPhysicalItem::getCoilNo, bo.getCoilNo()); + lqw.eq(bo.getYieldStrength() != null, QcPhysicalItem::getYieldStrength, bo.getYieldStrength()); + lqw.eq(bo.getTensileStrength() != null, QcPhysicalItem::getTensileStrength, bo.getTensileStrength()); + lqw.eq(bo.getElongation() != null, QcPhysicalItem::getElongation, bo.getElongation()); + lqw.eq(bo.getHardness() != null, QcPhysicalItem::getHardness, bo.getHardness()); + lqw.eq(StringUtils.isNotBlank(bo.getBendingTest()), QcPhysicalItem::getBendingTest, bo.getBendingTest()); + lqw.eq(StringUtils.isNotBlank(bo.getSurfaceQuality()), QcPhysicalItem::getSurfaceQuality, bo.getSurfaceQuality()); + lqw.eq(StringUtils.isNotBlank(bo.getSurfaceStructure()), QcPhysicalItem::getSurfaceStructure, bo.getSurfaceStructure()); + lqw.eq(StringUtils.isNotBlank(bo.getEdgeStatus()), QcPhysicalItem::getEdgeStatus, bo.getEdgeStatus()); + return lqw; + } + + /** + * 新增物理性能明细 + */ + @Override + public Boolean insertByBo(QcPhysicalItemBo bo) { + QcPhysicalItem add = BeanUtil.toBean(bo, QcPhysicalItem.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPhysicalId(add.getPhysicalId()); + } + return flag; + } + + /** + * 修改物理性能明细 + */ + @Override + public Boolean updateByBo(QcPhysicalItemBo bo) { + QcPhysicalItem update = BeanUtil.toBean(bo, QcPhysicalItem.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(QcPhysicalItem 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/QcChemicalItemMapper.xml b/klp-mes/src/main/resources/mapper/qc/QcChemicalItemMapper.xml new file mode 100644 index 00000000..93df91e7 --- /dev/null +++ b/klp-mes/src/main/resources/mapper/qc/QcChemicalItemMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/klp-mes/src/main/resources/mapper/qc/QcPhysicalItemMapper.xml b/klp-mes/src/main/resources/mapper/qc/QcPhysicalItemMapper.xml new file mode 100644 index 00000000..e43e4646 --- /dev/null +++ b/klp-mes/src/main/resources/mapper/qc/QcPhysicalItemMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +