feat(qc): 添加质保证书审批功能和钢卷ID字段支持

- 在QcCertificate实体中新增审批状态、审批人、审批时间字段
- 在QcCertificateBo业务对象中添加审批相关字段和时间范围查询功能
- 为QcCertificateItem、QcChemicalItem、QcPhysicalItem等项目表添加钢卷ID字段
- 更新对应的Mapper XML文件映射关系
- 在服务实现类中添加审批字段和钢卷ID的查询条件支持
- 在VO类中添加Excel导出相关的审批字段注解
- 集成DateTimeFormat注解支持审批时间格式化处理
This commit is contained in:
2026-05-18 11:42:15 +08:00
parent 81050ec0b4
commit c2f6e6f7c2
20 changed files with 121 additions and 0 deletions

View File

@@ -54,6 +54,18 @@ public class QcCertificate extends BaseEntity {
* 签发日期
*/
private Date issueDate;
/**
* 审批状态(待提交/审批中/已通过/已驳回)
*/
private String approveStatus;
/**
* 审批人
*/
private String approveBy;
/**
* 审批时间
*/
private Date approveTime;
/**
* 质保证明说明(注释)
*/

View File

@@ -29,6 +29,10 @@ public class QcCertificateItem extends BaseEntity {
* 证书ID
*/
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号
*/

View File

@@ -29,6 +29,10 @@ public class QcChemicalItem extends BaseEntity {
* 证书ID
*/
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号
*/

View File

@@ -29,6 +29,10 @@ public class QcPhysicalItem extends BaseEntity {
* 证书ID
*/
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号(关联化学成分表)
*/

View File

@@ -7,6 +7,7 @@ import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 质量证明书主业务对象 qc_certificate
@@ -59,6 +60,23 @@ public class QcCertificateBo extends BaseEntity {
*/
private Date issueDate;
/**
* 审批状态(待提交/审批中/已通过/已驳回)
*/
private String approveStatus;
/**
* 审批人
*/
private String approveBy;
/**
* 审批时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date approveTime;
/**
* 质保证明说明(注释)
*/
@@ -69,5 +87,20 @@ public class QcCertificateBo extends BaseEntity {
*/
private String remark;
/**
* 审批时间范围查询:查询审批时间在指定范围内的记录
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date approveTimeStart;
/**
* 审批时间结束
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date approveTimeEnd;
}

View File

@@ -28,6 +28,11 @@ public class QcCertificateItemBo extends BaseEntity {
*/
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号
*/

View File

@@ -28,6 +28,11 @@ public class QcChemicalItemBo extends BaseEntity {
*/
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号
*/

View File

@@ -28,6 +28,11 @@ public class QcPhysicalItemBo extends BaseEntity {
*/
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号(关联化学成分表)
*/

View File

@@ -32,6 +32,11 @@ public class QcCertificateItemVo {
@ExcelProperty(value = "证书ID")
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号
*/

View File

@@ -69,6 +69,24 @@ public class QcCertificateVo {
@ExcelProperty(value = "签发日期")
private Date issueDate;
/**
* 审批状态(待提交/审批中/已通过/已驳回)
*/
@ExcelProperty(value = "审批状态")
private String approveStatus;
/**
* 审批人
*/
@ExcelProperty(value = "审批人")
private String approveBy;
/**
* 审批时间
*/
@ExcelProperty(value = "审批时间")
private Date approveTime;
/**
* 质保证明说明(注释)
*/

View File

@@ -32,6 +32,11 @@ public class QcChemicalItemVo {
@ExcelProperty(value = "证书ID")
private Long certificateId;
/**
* 钢卷ID
*/
private Long coilId;
/**
* 钢卷号
*/

View File

@@ -32,6 +32,12 @@ public class QcPhysicalItemVo {
@ExcelProperty(value = "证书ID")
private Long certificateId;
/**
* 钢卷ID
*/
@ExcelProperty(value = "钢卷ID")
private Long coilId;
/**
* 钢卷号(关联化学成分表)
*/

View File

@@ -62,6 +62,7 @@ public class QcCertificateItemServiceImpl implements IQcCertificateItemService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<QcCertificateItem> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCertificateId() != null, QcCertificateItem::getCertificateId, bo.getCertificateId());
lqw.eq(bo.getCoilId() != null, QcCertificateItem::getCoilId, bo.getCoilId());
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());

View File

@@ -68,6 +68,12 @@ public class QcCertificateServiceImpl implements IQcCertificateService {
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.getApproveStatus()), QcCertificate::getApproveStatus, bo.getApproveStatus());
lqw.eq(StringUtils.isNotBlank(bo.getApproveBy()), QcCertificate::getApproveBy, bo.getApproveBy());
// 根据审批时间范围筛选
lqw.ge(bo.getApproveTimeStart() != null, QcCertificate::getApproveTime, bo.getApproveTimeStart()); // 开始时间不为空则进行筛选
lqw.le(bo.getApproveTimeEnd() != null, QcCertificate::getApproveTime, bo.getApproveTimeEnd());
lqw.eq(StringUtils.isNotBlank(bo.getNote()), QcCertificate::getNote, bo.getNote());
return lqw;
}

View File

@@ -62,6 +62,7 @@ public class QcChemicalItemServiceImpl implements IQcChemicalItemService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<QcChemicalItem> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCertificateId() != null, QcChemicalItem::getCertificateId, bo.getCertificateId());
lqw.eq(bo.getCoilId() != null, QcChemicalItem::getCoilId, bo.getCoilId());
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());

View File

@@ -62,6 +62,7 @@ public class QcPhysicalItemServiceImpl implements IQcPhysicalItemService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<QcPhysicalItem> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCertificateId() != null, QcPhysicalItem::getCertificateId, bo.getCertificateId());
lqw.eq(bo.getCoilId() != null, QcPhysicalItem::getCoilId, bo.getCoilId());
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());

View File

@@ -7,6 +7,7 @@
<resultMap type="com.klp.mes.qc.domain.QcCertificateItem" id="QcCertificateItemResult">
<result property="itemId" column="item_id"/>
<result property="certificateId" column="certificate_id"/>
<result property="coilId" column="coil_id"/>
<result property="coilNo" column="coil_no"/>
<result property="heatNo" column="heat_no"/>
<result property="materialType" column="material_type"/>

View File

@@ -13,6 +13,9 @@
<result property="consignee" column="consignee"/>
<result property="manufacturer" column="manufacturer"/>
<result property="issueDate" column="issue_date"/>
<result property="approveStatus" column="approve_status"/>
<result property="approveBy" column="approve_by"/>
<result property="approveTime" column="approve_time"/>
<result property="note" column="note"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>

View File

@@ -7,6 +7,7 @@
<resultMap type="com.klp.mes.qc.domain.QcChemicalItem" id="QcChemicalItemResult">
<result property="itemId" column="item_id"/>
<result property="certificateId" column="certificate_id"/>
<result property="coilId" column="coil_id"/>
<result property="coilNo" column="coil_no"/>
<result property="heatNo" column="heat_no"/>
<result property="c" column="c"/>

View File

@@ -7,6 +7,7 @@
<resultMap type="com.klp.mes.qc.domain.QcPhysicalItem" id="QcPhysicalItemResult">
<result property="physicalId" column="physical_id"/>
<result property="certificateId" column="certificate_id"/>
<result property="coilId" column="coil_id"/>
<result property="coilNo" column="coil_no"/>
<result property="yieldStrength" column="yield_strength"/>
<result property="tensileStrength" column="tensile_strength"/>