!5 chore(抽樣規則): 補物件

Merge pull request
This commit is contained in:
YiLiLin 2023-07-11 08:58:21 +00:00 committed by Gitee
commit 9993423709
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
49 changed files with 535 additions and 2289 deletions

View File

@ -0,0 +1,13 @@
package com.foreverwin.iep.qms.domain;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class Aql {
private BigDecimal sampleSize;
private BigDecimal returnQty;
}

View File

@ -1,123 +0,0 @@
package com.foreverwin.iep.qms.domain;
import lombok.Data;
@Data
public class AqlInfo {
private String handle;
private String samplecode;
private int sampleqty;
private String a1;
private String r1;
private String a2;
private String r2;
private String a3;
private String r3;
private String a4;
private String r4;
private String a5;
private String r5;
private String a6;
private String r6;
private String a7;
private String r7;
private String a8;
private String r8;
private String a9;
private String r9;
private String a10;
private String r10;
private String a11;
private String r11;
private String a12;
private String r12;
private String a13;
private String r13;
private String a14;
private String r14;
private String a15;
private String r15;
private String a16;
private String r16;
private String a17;
private String r17;
private String a18;
private String r18;
private String a19;
private String r19;
private String a20;
private String r20;
private String a21;
private String r21;
private String a22;
private String r22;
private String a23;
private String r23;
private String a24;
private String r24;
private String a25;
private String r25;
private String a26;
private String r26;
private int ac;
private String acStr;
private int r;
}

View File

@ -40,4 +40,6 @@ public class QmsSamplePlanDTO extends QmsSamplePlan {
private List<String> samplePlanTypes;
private List<QmsSamplePlanCustomize> customizeList;
private String wafer;
}

View File

@ -1,90 +0,0 @@
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* AQL区间对照表
*
* @author paul
* @date 2022-12-28 12:00:10
*/
@Data
@TableName("qms_aql_code")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AQL区间对照表")
public class QmsAqlCode extends Model<QmsAqlCode> {
private static final long serialVersionUID = 1L;
/**
* handle
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="handle")
private String handle;
/**
* lotqtymin
*/
@ApiModelProperty(value="lotqtymin")
private Integer lotqtymin;
/**
* lotqtymax
*/
@ApiModelProperty(value="lotqtymax")
private Integer lotqtymax;
/**
* s1
*/
@ApiModelProperty(value="s1")
private String s1;
/**
* s2
*/
@ApiModelProperty(value="s2")
private String s2;
/**
* s3
*/
@ApiModelProperty(value="s3")
private String s3;
/**
* s4
*/
@ApiModelProperty(value="s4")
private String s4;
/**
* i
*/
@ApiModelProperty(value="i")
private String i;
/**
* ii
*/
@ApiModelProperty(value="ii")
private String ii;
/**
* iii
*/
@ApiModelProperty(value="iii")
private String iii;
}

View File

@ -1,360 +0,0 @@
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* AQL正常对应表
*
* @author paul
* @date 2022-12-28 13:36:20
*/
@Data
@TableName("qms_aql_normal")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AQL正常对应表")
public class QmsAqlNormal extends Model<QmsAqlNormal> {
private static final long serialVersionUID = 1L;
/**
* handle
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="handle")
private String handle;
/**
* samplecode
*/
@ApiModelProperty(value="samplecode")
private String samplecode;
/**
* sampleqty
*/
@ApiModelProperty(value="sampleqty")
private Integer sampleqty;
/**
* a1
*/
@ApiModelProperty(value="a1")
private String a1;
/**
* r1
*/
@ApiModelProperty(value="r1")
private String r1;
/**
* a2
*/
@ApiModelProperty(value="a2")
private String a2;
/**
* r2
*/
@ApiModelProperty(value="r2")
private String r2;
/**
* a3
*/
@ApiModelProperty(value="a3")
private String a3;
/**
* r3
*/
@ApiModelProperty(value="r3")
private String r3;
/**
* a4
*/
@ApiModelProperty(value="a4")
private String a4;
/**
* r4
*/
@ApiModelProperty(value="r4")
private String r4;
/**
* a5
*/
@ApiModelProperty(value="a5")
private String a5;
/**
* r5
*/
@ApiModelProperty(value="r5")
private String r5;
/**
* a6
*/
@ApiModelProperty(value="a6")
private String a6;
/**
* r6
*/
@ApiModelProperty(value="r6")
private String r6;
/**
* a7
*/
@ApiModelProperty(value="a7")
private String a7;
/**
* r7
*/
@ApiModelProperty(value="r7")
private String r7;
/**
* a8
*/
@ApiModelProperty(value="a8")
private String a8;
/**
* r8
*/
@ApiModelProperty(value="r8")
private String r8;
/**
* a9
*/
@ApiModelProperty(value="a9")
private String a9;
/**
* r9
*/
@ApiModelProperty(value="r9")
private String r9;
/**
* a10
*/
@ApiModelProperty(value="a10")
private String a10;
/**
* r10
*/
@ApiModelProperty(value="r10")
private String r10;
/**
* a11
*/
@ApiModelProperty(value="a11")
private String a11;
/**
* r11
*/
@ApiModelProperty(value="r11")
private String r11;
/**
* a12
*/
@ApiModelProperty(value="a12")
private String a12;
/**
* r12
*/
@ApiModelProperty(value="r12")
private String r12;
/**
* a13
*/
@ApiModelProperty(value="a13")
private String a13;
/**
* r13
*/
@ApiModelProperty(value="r13")
private String r13;
/**
* a14
*/
@ApiModelProperty(value="a14")
private String a14;
/**
* r14
*/
@ApiModelProperty(value="r14")
private String r14;
/**
* a15
*/
@ApiModelProperty(value="a15")
private String a15;
/**
* r15
*/
@ApiModelProperty(value="r15")
private String r15;
/**
* a16
*/
@ApiModelProperty(value="a16")
private String a16;
/**
* r16
*/
@ApiModelProperty(value="r16")
private String r16;
/**
* a17
*/
@ApiModelProperty(value="a17")
private String a17;
/**
* r17
*/
@ApiModelProperty(value="r17")
private String r17;
/**
* a18
*/
@ApiModelProperty(value="a18")
private String a18;
/**
* r18
*/
@ApiModelProperty(value="r18")
private String r18;
/**
* a19
*/
@ApiModelProperty(value="a19")
private String a19;
/**
* r19
*/
@ApiModelProperty(value="r19")
private String r19;
/**
* a20
*/
@ApiModelProperty(value="a20")
private String a20;
/**
* r20
*/
@ApiModelProperty(value="r20")
private String r20;
/**
* a21
*/
@ApiModelProperty(value="a21")
private String a21;
/**
* r21
*/
@ApiModelProperty(value="r21")
private String r21;
/**
* a22
*/
@ApiModelProperty(value="a22")
private String a22;
/**
* r22
*/
@ApiModelProperty(value="r22")
private String r22;
/**
* a23
*/
@ApiModelProperty(value="a23")
private String a23;
/**
* r23
*/
@ApiModelProperty(value="r23")
private String r23;
/**
* a24
*/
@ApiModelProperty(value="a24")
private String a24;
/**
* r24
*/
@ApiModelProperty(value="r24")
private String r24;
/**
* a25
*/
@ApiModelProperty(value="a25")
private String a25;
/**
* r25
*/
@ApiModelProperty(value="r25")
private String r25;
/**
* a26
*/
@ApiModelProperty(value="a26")
private String a26;
/**
* r26
*/
@ApiModelProperty(value="r26")
private String r26;
}

View File

@ -1,377 +0,0 @@
/*
* Copyright (c) 2018-2025, mom All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the foreverwin.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: mom
*/
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* AQL减量对应表
*
* @author paul
* @date 2022-12-28 13:38:30
*/
@Data
@TableName("qms_aql_reduced")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AQL减量对应表")
public class QmsAqlReduced extends Model<QmsAqlReduced> {
private static final long serialVersionUID = 1L;
/**
* handle
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="handle")
private String handle;
/**
* samplecode
*/
@ApiModelProperty(value="samplecode")
private String samplecode;
/**
* sampleqty
*/
@ApiModelProperty(value="sampleqty")
private Integer sampleqty;
/**
* a1
*/
@ApiModelProperty(value="a1")
private String a1;
/**
* r1
*/
@ApiModelProperty(value="r1")
private String r1;
/**
* a2
*/
@ApiModelProperty(value="a2")
private String a2;
/**
* r2
*/
@ApiModelProperty(value="r2")
private String r2;
/**
* a3
*/
@ApiModelProperty(value="a3")
private String a3;
/**
* r3
*/
@ApiModelProperty(value="r3")
private String r3;
/**
* a4
*/
@ApiModelProperty(value="a4")
private String a4;
/**
* r4
*/
@ApiModelProperty(value="r4")
private String r4;
/**
* a5
*/
@ApiModelProperty(value="a5")
private String a5;
/**
* r5
*/
@ApiModelProperty(value="r5")
private String r5;
/**
* a6
*/
@ApiModelProperty(value="a6")
private String a6;
/**
* r6
*/
@ApiModelProperty(value="r6")
private String r6;
/**
* a7
*/
@ApiModelProperty(value="a7")
private String a7;
/**
* r7
*/
@ApiModelProperty(value="r7")
private String r7;
/**
* a8
*/
@ApiModelProperty(value="a8")
private String a8;
/**
* r8
*/
@ApiModelProperty(value="r8")
private String r8;
/**
* a9
*/
@ApiModelProperty(value="a9")
private String a9;
/**
* r9
*/
@ApiModelProperty(value="r9")
private String r9;
/**
* a10
*/
@ApiModelProperty(value="a10")
private String a10;
/**
* r10
*/
@ApiModelProperty(value="r10")
private String r10;
/**
* a11
*/
@ApiModelProperty(value="a11")
private String a11;
/**
* r11
*/
@ApiModelProperty(value="r11")
private String r11;
/**
* a12
*/
@ApiModelProperty(value="a12")
private String a12;
/**
* r12
*/
@ApiModelProperty(value="r12")
private String r12;
/**
* a13
*/
@ApiModelProperty(value="a13")
private String a13;
/**
* r13
*/
@ApiModelProperty(value="r13")
private String r13;
/**
* a14
*/
@ApiModelProperty(value="a14")
private String a14;
/**
* r14
*/
@ApiModelProperty(value="r14")
private String r14;
/**
* a15
*/
@ApiModelProperty(value="a15")
private String a15;
/**
* r15
*/
@ApiModelProperty(value="r15")
private String r15;
/**
* a16
*/
@ApiModelProperty(value="a16")
private String a16;
/**
* r16
*/
@ApiModelProperty(value="r16")
private String r16;
/**
* a17
*/
@ApiModelProperty(value="a17")
private String a17;
/**
* r17
*/
@ApiModelProperty(value="r17")
private String r17;
/**
* a18
*/
@ApiModelProperty(value="a18")
private String a18;
/**
* r18
*/
@ApiModelProperty(value="r18")
private String r18;
/**
* a19
*/
@ApiModelProperty(value="a19")
private String a19;
/**
* r19
*/
@ApiModelProperty(value="r19")
private String r19;
/**
* a20
*/
@ApiModelProperty(value="a20")
private String a20;
/**
* r20
*/
@ApiModelProperty(value="r20")
private String r20;
/**
* a21
*/
@ApiModelProperty(value="a21")
private String a21;
/**
* r21
*/
@ApiModelProperty(value="r21")
private String r21;
/**
* a22
*/
@ApiModelProperty(value="a22")
private String a22;
/**
* r22
*/
@ApiModelProperty(value="r22")
private String r22;
/**
* a23
*/
@ApiModelProperty(value="a23")
private String a23;
/**
* r23
*/
@ApiModelProperty(value="r23")
private String r23;
/**
* a24
*/
@ApiModelProperty(value="a24")
private String a24;
/**
* r24
*/
@ApiModelProperty(value="r24")
private String r24;
/**
* a25
*/
@ApiModelProperty(value="a25")
private String a25;
/**
* r25
*/
@ApiModelProperty(value="r25")
private String r25;
/**
* a26
*/
@ApiModelProperty(value="a26")
private String a26;
/**
* r26
*/
@ApiModelProperty(value="r26")
private String r26;
}

View File

@ -0,0 +1,59 @@
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* AQL表-抽样代码
*
* @author mom code generator
* @date 2023-07-05 10:56:30
*/
@Data
@TableName("qms_aql_sample_code")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AQL表-抽样代码")
public class QmsAqlSampleCode extends Model<QmsAqlSampleCode> {
private static final long serialVersionUID = 1L;
public static final String KW_QMS_AQL_SAMPLE_CODE_BO = "QmsAqlSampleCodeBO";
/**
* 主键
*/
@TableId(type = IdType.INPUT)
@ApiModelProperty(value = "主键")
private String handle;
/**
* 最小批量
*/
@ApiModelProperty(value = "最小批量")
private Integer lotminqty;
/**
* 最大批量
*/
@ApiModelProperty(value = "最大批量")
private Integer lotmaxqty;
/**
* 检验水平
*/
@ApiModelProperty(value = "检验水平")
private Integer qcLevel;
/**
* 检验水平说明
*/
@ApiModelProperty(value = "检验水平说明")
private String qcLevelDesc;
/**
* 检验码
*/
@ApiModelProperty(value = "检验码")
private String code;
}

View File

@ -0,0 +1,66 @@
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* AQL表-抽样数
*
* @author mom code generator
* @date 2023-07-05 10:58:38
*/
@Data
@TableName("qms_aql_sample_map")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AQL表-抽样数")
public class QmsAqlSampleMap extends Model<QmsAqlSampleMap> {
private static final long serialVersionUID = 1L;
public static final String KW_QMS_AQL_SAMPLE_MAP_BO = "QmsAqlSampleMapBO";
/**
* 主键
*/
@TableId(type = IdType.INPUT)
@ApiModelProperty(value = "主键")
private String handle;
/**
* allowLevel
*/
@ApiModelProperty(value = "allowLevel")
private Integer allowLevel;
/**
* 检验码
*/
@ApiModelProperty(value = "检验码")
private String code;
/**
* 抽样比率
*/
@ApiModelProperty(value = "抽样比率")
private BigDecimal samplingRatio;
/**
* 类型
*/
@ApiModelProperty(value = "类型")
private String type;
/**
* 下一阶检验码
*/
@ApiModelProperty(value = "下一阶检验码")
private String nextCode;
/**
* 值
*/
@ApiModelProperty(value = "值")
private BigDecimal value;
}

View File

@ -1,377 +0,0 @@
/*
* Copyright (c) 2018-2025, mom All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the foreverwin.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: mom
*/
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* AQL加严对应表
*
* @author paul
* @date 2022-12-28 13:42:41
*/
@Data
@TableName("qms_aql_tightened")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AQL加严对应表")
public class QmsAqlTightened extends Model<QmsAqlTightened> {
private static final long serialVersionUID = 1L;
/**
* handle
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="handle")
private String handle;
/**
* samplecode
*/
@ApiModelProperty(value="samplecode")
private String samplecode;
/**
* sampleqty
*/
@ApiModelProperty(value="sampleqty")
private Integer sampleqty;
/**
* a1
*/
@ApiModelProperty(value="a1")
private String a1;
/**
* r1
*/
@ApiModelProperty(value="r1")
private String r1;
/**
* a2
*/
@ApiModelProperty(value="a2")
private String a2;
/**
* r2
*/
@ApiModelProperty(value="r2")
private String r2;
/**
* a3
*/
@ApiModelProperty(value="a3")
private String a3;
/**
* r3
*/
@ApiModelProperty(value="r3")
private String r3;
/**
* a4
*/
@ApiModelProperty(value="a4")
private String a4;
/**
* r4
*/
@ApiModelProperty(value="r4")
private String r4;
/**
* a5
*/
@ApiModelProperty(value="a5")
private String a5;
/**
* r5
*/
@ApiModelProperty(value="r5")
private String r5;
/**
* a6
*/
@ApiModelProperty(value="a6")
private String a6;
/**
* r6
*/
@ApiModelProperty(value="r6")
private String r6;
/**
* a7
*/
@ApiModelProperty(value="a7")
private String a7;
/**
* r7
*/
@ApiModelProperty(value="r7")
private String r7;
/**
* a8
*/
@ApiModelProperty(value="a8")
private String a8;
/**
* r8
*/
@ApiModelProperty(value="r8")
private String r8;
/**
* a9
*/
@ApiModelProperty(value="a9")
private String a9;
/**
* r9
*/
@ApiModelProperty(value="r9")
private String r9;
/**
* a10
*/
@ApiModelProperty(value="a10")
private String a10;
/**
* r10
*/
@ApiModelProperty(value="r10")
private String r10;
/**
* a11
*/
@ApiModelProperty(value="a11")
private String a11;
/**
* r11
*/
@ApiModelProperty(value="r11")
private String r11;
/**
* a12
*/
@ApiModelProperty(value="a12")
private String a12;
/**
* r12
*/
@ApiModelProperty(value="r12")
private String r12;
/**
* a13
*/
@ApiModelProperty(value="a13")
private String a13;
/**
* r13
*/
@ApiModelProperty(value="r13")
private String r13;
/**
* a14
*/
@ApiModelProperty(value="a14")
private String a14;
/**
* r14
*/
@ApiModelProperty(value="r14")
private String r14;
/**
* a15
*/
@ApiModelProperty(value="a15")
private String a15;
/**
* r15
*/
@ApiModelProperty(value="r15")
private String r15;
/**
* a16
*/
@ApiModelProperty(value="a16")
private String a16;
/**
* r16
*/
@ApiModelProperty(value="r16")
private String r16;
/**
* a17
*/
@ApiModelProperty(value="a17")
private String a17;
/**
* r17
*/
@ApiModelProperty(value="r17")
private String r17;
/**
* a18
*/
@ApiModelProperty(value="a18")
private String a18;
/**
* r18
*/
@ApiModelProperty(value="r18")
private String r18;
/**
* a19
*/
@ApiModelProperty(value="a19")
private String a19;
/**
* r19
*/
@ApiModelProperty(value="r19")
private String r19;
/**
* a20
*/
@ApiModelProperty(value="a20")
private String a20;
/**
* r20
*/
@ApiModelProperty(value="r20")
private String r20;
/**
* a21
*/
@ApiModelProperty(value="a21")
private String a21;
/**
* r21
*/
@ApiModelProperty(value="r21")
private String r21;
/**
* a22
*/
@ApiModelProperty(value="a22")
private String a22;
/**
* r22
*/
@ApiModelProperty(value="r22")
private String r22;
/**
* a23
*/
@ApiModelProperty(value="a23")
private String a23;
/**
* r23
*/
@ApiModelProperty(value="r23")
private String r23;
/**
* a24
*/
@ApiModelProperty(value="a24")
private String a24;
/**
* r24
*/
@ApiModelProperty(value="r24")
private String r24;
/**
* a25
*/
@ApiModelProperty(value="a25")
private String a25;
/**
* r25
*/
@ApiModelProperty(value="r25")
private String r25;
/**
* a26
*/
@ApiModelProperty(value="a26")
private String a26;
/**
* r26
*/
@ApiModelProperty(value="r26")
private String r26;
}

View File

@ -1,27 +1,10 @@
/*
* Copyright (c) 2018-2025, mom All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the foreverwin.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: mom
*/
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.foreverwin.iep.common.utils.HandleBoProcessor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -34,7 +17,7 @@ import java.time.LocalDateTime;
* 检验频率表
*
* @author mom code generator
* @date 2023-06-06 15:15:24
* @date 2023-07-06 09:12:51
*/
@Data
@TableName("qms_inspec_freq")
@ -43,138 +26,127 @@ import java.time.LocalDateTime;
public class QmsInspecFreq extends Model<QmsInspecFreq> {
private static final long serialVersionUID = 1L;
public static final String KW_QMS_INSPEC_FREQ_BO = "InspecFreqBO";
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键")
private String sid;
@TableId(type = IdType.INPUT)
@ApiModelProperty(value = "主键")
private String handle;
/**
* 生产点
* 工厂
*/
@ApiModelProperty(value="生产点")
@ApiModelProperty(value = "工厂")
private String site;
/**
* 检验类型
*/
@ApiModelProperty(value = "检验类型")
private String inspecType;
/**
* 检验频率编号
*/
@ApiModelProperty(value="检验频率编号")
@ApiModelProperty(value = "检验频率编号")
private String inspecNo;
/**
* 说明
*/
@ApiModelProperty(value="说明")
@ApiModelProperty(value = "说明")
private String description;
/**
* 工单第一个生产的SFC
* 工单第一个生产的生产批
*/
@ApiModelProperty(value="工单第一个生产的SFC")
@ApiModelProperty(value = "工单第一个生产的生产批")
private String chkFirstSfc;
/**
* 设备换模具后第一个生产的SFC
* 每日第一个生产的生产批
*/
@ApiModelProperty(value="设备换模具后第一个生产的SFC")
@ApiModelProperty(value = "每日第一个生产的生产批")
private String chkDailyFirstSfc;
/**
* 每日起始時間
*/
@ApiModelProperty(value = "每日起始時間")
private String dailyFirstSfc;
/**
* 更换产品后第一个生产的生产批
*/
@ApiModelProperty(value = "更换产品后第一个生产的生产批")
private String chkChangeProduct;
/**
* 设备换工具后第一个生产的生产批
*/
@ApiModelProperty(value = "设备换工具后第一个生产的生产批")
private String chkChangeMould;
/**
* 设备维修后第一个生产的SFC
* 设备维修后第一个生产的生产批
*/
@ApiModelProperty(value="设备维修后第一个生产的SFC")
@ApiModelProperty(value = "设备维修后第一个生产的生产批")
private String chkMaintenFirstSfc;
/**
* 设备停机X小时以上再启用第一个生产的SFC
* 设备停机N小时以上, 生產的第一个生产批
*/
@ApiModelProperty(value="设备停机X小时以上再启用第一个生产的SFC")
@ApiModelProperty(value = "设备停机N小时以上, 生產的第一个生产批")
private String chkStopAfterSfc;
/**
* 停机小时数, 为正数,最多小数点两位
* 停机小时数
*/
@ApiModelProperty(value="停机小时数, 为正数,最多小数点两位")
@ApiModelProperty(value = "停机小时数")
private BigDecimal stopAfterSfc;
/**
* 间隔X小时(设备+物料)
* 生产单一产品每N小时
*/
@ApiModelProperty(value="间隔X小时(设备+物料)")
@ApiModelProperty(value = "生产单一产品每N小时")
private String chkIntervalHour;
/**
* 间隔小时数, 为正数,最多小数点两位
* 间隔小时数
*/
@ApiModelProperty(value="间隔小时数, 为正数,最多小数点两位")
@ApiModelProperty(value = "间隔小时数")
private BigDecimal intervalHour;
/**
* 每_Z_个SFC
* 每N个生产批
*/
@ApiModelProperty(value="每_Z_个SFC")
@ApiModelProperty(value = "每N个生产批")
private String chkSeveralSfc;
/**
* SFC数量, 应为正整数
* 生产批批数
*/
@ApiModelProperty(value="SFC数量, 应为正整数")
@ApiModelProperty(value = "生产批批数")
private Integer severalSfc;
/**
* 机台生产每N小时
*/
@ApiModelProperty(value = "机台生产每N小时")
private String chkIntervalHour2;
/**
* 间隔小时数
*/
@ApiModelProperty(value = "间隔小时数")
private BigDecimal intervalHour2;
/**
* 每日固定N点
*/
@ApiModelProperty(value = "每日固定N点")
private String chkDailyFixedTime;
/**
* 每日固定N点
*/
@ApiModelProperty(value = "每日固定N点")
private String dailyFixedTime;
/**
* 修改时间
*/
@ApiModelProperty(value="修改时间")
@ApiModelProperty(value = "修改时间")
private LocalDateTime modifiedDateTime;
/**
* 修改人员
*/
@ApiModelProperty(value="修改人员")
@ApiModelProperty(value = "修改人员")
private String modifiedUser;
/**
* 每日第一个生产的SFC
*/
@ApiModelProperty(value="每日第一个生产的SFC")
private String chkDailyFirstSfc;
/**
* 每日固定几点
*/
@ApiModelProperty(value="每日固定几点")
private String chkDailyFixedTime;
/**
* 每日固定几点,多个时间时以逗号区隔(ex:9:00,11:00)
*/
@ApiModelProperty(value="每日固定几点,多个时间时以逗号区隔(ex:9:00,11:00)")
private String dailyFixedTime;
/**
* 间隔X小时(设备+检验计划)
*/
@ApiModelProperty(value="间隔X小时(设备+检验计划)")
private String chkIntervalHour2;
/**
* 间隔小时数, 为正数,最多小数点两位
*/
@ApiModelProperty(value="间隔小时数, 为正数,最多小数点两位")
private BigDecimal intervalHour2;
/**
* 每N pcs
*/
@ApiModelProperty(value="每N pcs")
private String chkEachPcs;
/**
* 每N pcs, N为正整数
*/
@ApiModelProperty(value="每N pcs, N为正整数")
private Integer eachPcs;
public static String genHandle(String site, String inspecNo) {
return HandleBoProcessor.genHandle(KW_QMS_INSPEC_FREQ_BO, site, inspecNo);
}
}

View File

@ -1,60 +0,0 @@
/*
* Copyright (c) 2018-2025, mom All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the foreverwin.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: mom
*/
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 抽样比率表
*
* @author paul
* @date 2022-12-28 13:44:30
*/
@Data
@TableName("qms_sample_ratio")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "抽样比率表")
public class QmsSampleRatio extends Model<QmsSampleRatio> {
private static final long serialVersionUID = 1L;
/**
* handle
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="handle")
private String handle;
/**
* sampleRatio
*/
@ApiModelProperty(value="sampleRatio")
private BigDecimal sampleRatio;
}

View File

@ -7,7 +7,6 @@ import com.foreverwin.iep.qms.entity.QmsInspecFreq;
import com.foreverwin.iep.qms.service.QmsInspecFreqService;
import com.foreverwin.mom.common.core.util.R;
import com.foreverwin.mom.common.data.tenant.TenantContextHolder;
import com.foreverwin.mom.common.log.annotation.SysLog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -39,23 +38,11 @@ public class QmsInspecFreqController {
public R getQmsInspecFreqPage(Page page, QmsInspecFreq qmsInspecFreq) {
return R.ok(qmsInspecFreqService.page(page, Wrappers.lambdaQuery(QmsInspecFreq.class)
.eq(QmsInspecFreq::getSite, TenantContextHolder.getTenantId())
.like(StrUtil.isNotBlank(qmsInspecFreq.getInspecNo()),
QmsInspecFreq::getInspecNo, qmsInspecFreq.getInspecNo())
.like(StrUtil.isNotBlank(qmsInspecFreq.getInspecNo()), QmsInspecFreq::getInspecNo, qmsInspecFreq.getInspecNo())
.eq(StrUtil.isNotBlank(qmsInspecFreq.getInspecType()), QmsInspecFreq::getInspecType, qmsInspecFreq.getInspecType())
.orderByAsc(QmsInspecFreq::getInspecNo)));
}
/**
* 通过id查询检验频率表
*
* @param sid id
* @return R
*/
@ApiOperation(value = "通过id查询", notes = "通过id查询")
@GetMapping("/{sid}")
public R getById(@PathVariable("sid") String sid) {
return R.ok(qmsInspecFreqService.getById(sid));
}
@PostMapping
public R save(@RequestBody QmsInspecFreq qmsInspecFreq) {
qmsInspecFreq.setSite(TenantContextHolder.getTenantId());
@ -63,17 +50,10 @@ public class QmsInspecFreqController {
return R.ok();
}
/**
* 通过id删除检验频率表
*
* @param sid id
* @return R
*/
@ApiOperation(value = "通过id删除检验频率表", notes = "通过id删除检验频率表")
@SysLog("通过id删除检验频率表")
@DeleteMapping("/{sid}")
public R removeById(@PathVariable String sid) {
qmsInspecFreqService.deleteFreq(sid);
@DeleteMapping("/{handle}")
public R removeById(@PathVariable String handle) {
qmsInspecFreqService.deleteFreq(handle);
return R.ok();
}

View File

@ -1,26 +1,25 @@
package com.foreverwin.iep.qms.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.foreverwin.iep.common.base.FrontPage;
import com.foreverwin.iep.common.utils.ListUtils;
import com.foreverwin.iep.qms.dto.QmsSamplePlanDTO;
import com.foreverwin.iep.qms.entity.QmsAqlSampleMap;
import com.foreverwin.iep.qms.entity.QmsSamplePlan;
import com.foreverwin.iep.qms.service.QmsAqlSampleMapService;
import com.foreverwin.iep.qms.service.QmsSamplePlanService;
import com.foreverwin.iep.qms.service.QmsSampleRatioService;
import com.foreverwin.mom.common.core.util.R;
import com.foreverwin.mom.common.data.tenant.TenantContextHolder;
import com.foreverwin.mom.common.log.annotation.SysLog;
import com.foreverwin.mom.common.security.annotation.Inner;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 抽样计划主表
*
@ -30,12 +29,11 @@ import java.util.List;
@RestController
@RequiredArgsConstructor
@RequestMapping("/sample-plan")
@Api(value = "sample-plan", tags = "抽样计划主表管理")
@Api(value = "sample-plan", tags = "抽样规则主表管理")
public class QmsSamplePlanController {
private final QmsSamplePlanService qmsSamplePlanService;
private final QmsSampleRatioService qmsSampleRatioService;
public final QmsAqlSampleMapService qmsAqlSampleMapService;
/**
* 分页查询
@ -47,19 +45,23 @@ public class QmsSamplePlanController {
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping("/page")
public R getQmsSamplePlanPage(FrontPage page, QmsSamplePlanDTO qmsSamplePlan) {
List<String> types = new ArrayList<>();
if (!"*".equals(qmsSamplePlan.getSamplePlanType())) {
if (StrUtil.isNotBlank(qmsSamplePlan.getSamplePlanType())) {
types.add(qmsSamplePlan.getSamplePlan());
} else {
types.addAll(Arrays.asList("0", "1", "2"));
}
}
return R.ok(qmsSamplePlanService.page(page.genOrders(), Wrappers.<QmsSamplePlan>lambdaQuery()
.eq(QmsSamplePlan::getSite, TenantContextHolder.getTenantId())
.like(StrUtil.isNotBlank(qmsSamplePlan.getSamplePlan()), QmsSamplePlan::getSamplePlan, qmsSamplePlan.getSamplePlan())
.in(!ListUtils.isEmpty(types), QmsSamplePlan::getSamplePlanType, types)
.eq(StrUtil.isNotBlank(qmsSamplePlan.getKind()), QmsSamplePlan::getKind, qmsSamplePlan.getKind())
.in(!ListUtils.isEmpty(qmsSamplePlan.getSamplePlanTypes()), QmsSamplePlan::getSamplePlanType, qmsSamplePlan.getSamplePlanTypes())
.and(StrUtil.isNotBlank(qmsSamplePlan.getWafer()),
lambda -> lambda.isNull("false".equals(qmsSamplePlan.getWafer()), QmsSamplePlan::getAreaQty)
.isNotNull("true".equals(qmsSamplePlan.getWafer()), QmsSamplePlan::getAreaQty))
.orderByAsc(QmsSamplePlan::getSamplePlan)));
}
@ApiOperation(value = "查询", notes = "查询")
@GetMapping("/search")
public R getPage(FrontPage page, QmsSamplePlanDTO qmsSamplePlan) {
return R.ok(qmsSamplePlanService.page(page.genOrders(), Wrappers.<QmsSamplePlan>lambdaQuery()
.eq(QmsSamplePlan::getSite, TenantContextHolder.getTenantId())
.like(StrUtil.isNotBlank(qmsSamplePlan.getSamplePlan()), QmsSamplePlan::getSamplePlan, qmsSamplePlan.getSamplePlan())
.eq(StrUtil.isNotBlank(qmsSamplePlan.getSamplePlanType()), QmsSamplePlan::getSamplePlanType, qmsSamplePlan.getSamplePlanType())
.orderByAsc(QmsSamplePlan::getSamplePlan)));
}
@ -78,6 +80,12 @@ public class QmsSamplePlanController {
@SysLog("新增抽样计划主表")
@PostMapping
public R save(@RequestBody QmsSamplePlanDTO qmsSamplePlanDTO) {
if (StrUtil.isBlank(qmsSamplePlanDTO.getSite())) {
qmsSamplePlanDTO.setSite(TenantContextHolder.getTenantId());
}
if (StrUtil.isBlank(qmsSamplePlanDTO.getCreatedUser())) {
qmsSamplePlanDTO.setCreatedUser(SecurityUtils.getUserName());
}
qmsSamplePlanService.save(qmsSamplePlanDTO);
return R.ok();
}
@ -119,11 +127,6 @@ public class QmsSamplePlanController {
return R.ok(qmsSamplePlanService.calculate(qmsSamplePlan));
}
@GetMapping("/ratio")
public R getQmsSampleRatio() {
return R.ok(qmsSampleRatioService.list());
}
@GetMapping("/{handle}/info")
public R getById(@PathVariable("handle") String handle) {
return R.ok(qmsSamplePlanService.getById(handle));
@ -134,4 +137,12 @@ public class QmsSamplePlanController {
public R getByIdApi(@PathVariable("handle") String handle) {
return R.ok(qmsSamplePlanService.getById(handle));
}
@GetMapping("/aql")
public R getAql() {
QueryWrapper<QmsAqlSampleMap> queryWrapper = new QueryWrapper<>();
queryWrapper.select("DISTINCT SAMPLING_RATIO");
queryWrapper.orderByAsc("SAMPLING_RATIO");
return R.ok(qmsAqlSampleMapService.list(queryWrapper));
}
}

View File

@ -1,14 +0,0 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsAqlCode;
/**
* AQL区间对照表
*
* @author paul
* @date 2022-12-28 12:00:10
*/
public interface QmsAqlCodeService extends IService<QmsAqlCode> {
}

View File

@ -1,14 +0,0 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsAqlNormal;
/**
* AQL正常对应表
*
* @author paul
* @date 2022-12-28 13:36:20
*/
public interface QmsAqlNormalService extends IService<QmsAqlNormal> {
}

View File

@ -1,14 +0,0 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsAqlReduced;
/**
* AQL减量对应表
*
* @author paul
* @date 2022-12-28 13:38:30
*/
public interface QmsAqlReducedService extends IService<QmsAqlReduced> {
}

View File

@ -0,0 +1,13 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsAqlSampleCode;
/**
* AQL表-抽样代码
*
* @author mom code generator
* @date 2023-07-05 10:56:30
*/
public interface QmsAqlSampleCodeService extends IService<QmsAqlSampleCode> {
}

View File

@ -0,0 +1,13 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsAqlSampleMap;
/**
* AQL表-抽样数
*
* @author mom code generator
* @date 2023-07-05 10:58:38
*/
public interface QmsAqlSampleMapService extends IService<QmsAqlSampleMap> {
}

View File

@ -1,14 +0,0 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsAqlTightened;
/**
* AQL加严对应表
*
* @author paul
* @date 2022-12-28 13:42:41
*/
public interface QmsAqlTightenedService extends IService<QmsAqlTightened> {
}

View File

@ -18,7 +18,7 @@ public interface QmsInspecFreqService extends IService<QmsInspecFreq> {
void insertFreq(QmsInspecFreq qmsInspecFreq);
void deleteFreq(String sid);
void deleteFreq(String handle);
List<QmsInspecFreq> findInspec(String site, String inspecNo);
}

View File

@ -12,11 +12,11 @@ import com.foreverwin.iep.qms.entity.QmsSamplePlan;
*/
public interface QmsSamplePlanService extends IService<QmsSamplePlan> {
QmsSamplePlanDTO calculate( QmsSamplePlanDTO qmsSamplePlanDTO );
QmsSamplePlanDTO calculate(QmsSamplePlanDTO qmsSamplePlanDTO);
void save( QmsSamplePlanDTO qmsSamplePlanDTO );
void save(QmsSamplePlanDTO qmsSamplePlanDTO);
void delete( String site, String samplePlan );
void delete(String site, String samplePlan);
QmsSamplePlanDTO getSamplePlan( String site, String samplePlan );
QmsSamplePlanDTO getSamplePlan(String site, String samplePlan);
}

View File

@ -1,14 +0,0 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsSampleRatio;
/**
* 抽样比率表
*
* @author paul
* @date 2022-12-28 13:44:30
*/
public interface QmsSampleRatioService extends IService<QmsSampleRatio> {
}

View File

@ -1,18 +0,0 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsAqlCode;
import com.foreverwin.iep.qms.mapper.QmsAqlCodeMapper;
import com.foreverwin.iep.qms.service.QmsAqlCodeService;
import org.springframework.stereotype.Service;
/**
* AQL区间对照表
*
* @author paul
* @date 2022-12-28 12:00:10
*/
@Service
public class QmsAqlCodeServiceImpl extends ServiceImpl<QmsAqlCodeMapper, QmsAqlCode> implements QmsAqlCodeService {
}

View File

@ -1,18 +0,0 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsAqlNormal;
import com.foreverwin.iep.qms.mapper.QmsAqlNormalMapper;
import com.foreverwin.iep.qms.service.QmsAqlNormalService;
import org.springframework.stereotype.Service;
/**
* AQL正常对应表
*
* @author paul
* @date 2022-12-28 13:36:20
*/
@Service
public class QmsAqlNormalServiceImpl extends ServiceImpl<QmsAqlNormalMapper, QmsAqlNormal> implements QmsAqlNormalService {
}

View File

@ -1,18 +0,0 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsAqlReduced;
import com.foreverwin.iep.qms.mapper.QmsAqlReducedMapper;
import com.foreverwin.iep.qms.service.QmsAqlReducedService;
import org.springframework.stereotype.Service;
/**
* AQL减量对应表
*
* @author paul
* @date 2022-12-28 13:38:30
*/
@Service
public class QmsAqlReducedServiceImpl extends ServiceImpl<QmsAqlReducedMapper, QmsAqlReduced> implements QmsAqlReducedService {
}

View File

@ -0,0 +1,19 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsAqlSampleCode;
import com.foreverwin.iep.qms.mapper.QmsAqlSampleCodeMapper;
import com.foreverwin.iep.qms.service.QmsAqlSampleCodeService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* AQL表-抽样代码
*
* @author mom code generator
* @date 2023-07-05 10:56:30
*/
@Service
@AllArgsConstructor
public class QmsAqlSampleCodeServiceImpl extends ServiceImpl<QmsAqlSampleCodeMapper, QmsAqlSampleCode> implements QmsAqlSampleCodeService {
}

View File

@ -0,0 +1,19 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsAqlSampleMap;
import com.foreverwin.iep.qms.mapper.QmsAqlSampleMapMapper;
import com.foreverwin.iep.qms.service.QmsAqlSampleMapService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* AQL表-抽样数
*
* @author mom code generator
* @date 2023-07-05 10:58:38
*/
@Service
@AllArgsConstructor
public class QmsAqlSampleMapServiceImpl extends ServiceImpl<QmsAqlSampleMapMapper, QmsAqlSampleMap> implements QmsAqlSampleMapService {
}

View File

@ -1,18 +0,0 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsAqlTightened;
import com.foreverwin.iep.qms.mapper.QmsAqlTightenedMapper;
import com.foreverwin.iep.qms.service.QmsAqlTightenedService;
import org.springframework.stereotype.Service;
/**
* AQL加严对应表
*
* @author paul
* @date 2022-12-28 13:42:41
*/
@Service
public class QmsAqlTightenedServiceImpl extends ServiceImpl<QmsAqlTightenedMapper, QmsAqlTightened> implements QmsAqlTightenedService {
}

View File

@ -2,19 +2,13 @@ package com.foreverwin.iep.qms.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.common.utils.SidUtils;
import com.foreverwin.iep.qms.domain.FreqItem;
import com.foreverwin.iep.qms.domain.InspecFreq;
import com.foreverwin.iep.qms.entity.QmsInspecFreq;
import com.foreverwin.iep.qms.entity.QmsQcPlan;
import com.foreverwin.iep.qms.mapper.QmsInspecFreqMapper;
import com.foreverwin.iep.qms.service.QmsInspecFreqService;
import com.foreverwin.iep.qms.service.QmsQcPlanService;
import com.foreverwin.mom.common.core.exception.BusinessException;
import com.foreverwin.mom.common.core.util.I18nUtil;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@ -36,10 +30,6 @@ import java.util.Map;
@AllArgsConstructor
public class QmsInspecFreqServiceImpl extends ServiceImpl<QmsInspecFreqMapper, QmsInspecFreq> implements QmsInspecFreqService {
private QmsQcPlanService getQmsQcPlanService() {
return SpringUtil.getBean(QmsQcPlanService.class);
}
@Override
public InspecFreq getFreq(String site, String inspecNo) {
QmsInspecFreq inspecFreq = getOne(Wrappers.lambdaQuery(QmsInspecFreq.class)
@ -53,11 +43,11 @@ public class QmsInspecFreqServiceImpl extends ServiceImpl<QmsInspecFreqMapper, Q
String intervalHour2 = inspecFreq.getIntervalHour2().stripTrailingZeros().toPlainString();
String severalSfc = inspecFreq.getSeveralSfc().toString();
String dailyFixedTime = inspecFreq.getDailyFixedTime();
String eachPcs = inspecFreq.getEachPcs().toString();
String dailyFirstSfc = inspecFreq.getDailyFirstSfc();
List<FreqItem> iList = new ArrayList<>();
iList.add(new FreqItem(inspecFreq.getChkFirstSfc(), "inspec.chk.sfc", null));
iList.add(new FreqItem(inspecFreq.getChkDailyFirstSfc(), "inspec.chk.daily.first.sfc", null));
iList.add(new FreqItem(inspecFreq.getChkDailyFirstSfc(), "inspec.chk.daily.first.sfc", dailyFirstSfc));
iList.add(new FreqItem(inspecFreq.getChkChangeMould(), "inspec.chk.change.mould", null));
iList.add(new FreqItem(inspecFreq.getChkMaintenFirstSfc(), "inspec.chk.mainten.first.sfc", null));
iList.add(new FreqItem(inspecFreq.getChkStopAfterSfc(), "inspec.chk.stop.after.sfc", afterSfc));
@ -65,7 +55,7 @@ public class QmsInspecFreqServiceImpl extends ServiceImpl<QmsInspecFreqMapper, Q
iList.add(new FreqItem(inspecFreq.getChkIntervalHour2(), "inspec.chk.interval.hour2", intervalHour2));
iList.add(new FreqItem(inspecFreq.getChkSeveralSfc(), "inspec.chk.several.sfc", severalSfc));
iList.add(new FreqItem(inspecFreq.getChkDailyFixedTime(), "inspec.chk.daily.fixed.time", dailyFixedTime));
iList.add(new FreqItem(inspecFreq.getChkEachPcs(), "inspec.chk.each.pcs", eachPcs));
iList.add(new FreqItem(inspecFreq.getChkChangeProduct(), "inspec.chk.change.product", null));
inspecFreqMap.put(inspecFreq.getInspecNo(), iList);
}
return new InspecFreq(inspecFreq, inspecFreqMap);
@ -78,9 +68,9 @@ public class QmsInspecFreqServiceImpl extends ServiceImpl<QmsInspecFreqMapper, Q
.eq(QmsInspecFreq::getSite, qmsInspecFreq.getSite())
.eq(QmsInspecFreq::getInspecNo, qmsInspecFreq.getInspecNo()));
if (ObjectUtil.isNotNull(inspecFreq)) {
removeById(inspecFreq.getSid());
removeById(inspecFreq.getHandle());
}
qmsInspecFreq.setSid(SidUtils.genSid());
qmsInspecFreq.setHandle(QmsInspecFreq.genHandle(qmsInspecFreq.getSite(), qmsInspecFreq.getInspecNo()));
qmsInspecFreq.setModifiedUser(SecurityUtils.getUserName());
qmsInspecFreq.setModifiedDateTime(LocalDateTime.now());
save(qmsInspecFreq);
@ -88,14 +78,8 @@ public class QmsInspecFreqServiceImpl extends ServiceImpl<QmsInspecFreqMapper, Q
@Transactional
@Override
public void deleteFreq(String sid) {
QmsInspecFreq qmsInspecFreq = getById(sid);
if (getQmsQcPlanService().count(Wrappers.lambdaQuery(QmsQcPlan.class)
.eq(QmsQcPlan::getSite, qmsInspecFreq.getSite())
.eq(QmsQcPlan::getInspecNo, qmsInspecFreq.getInspecNo())) > 0) {
throw BusinessException.build(I18nUtil.getI18nText("qms.inspec.error2"));
}
removeById(sid);
public void deleteFreq(String handle) {
removeById(handle);
}
@Override

View File

@ -1,10 +1,12 @@
package com.foreverwin.iep.qms.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.common.utils.ListUtils;
import com.foreverwin.iep.common.utils.SidUtils;
import com.foreverwin.iep.qms.domain.AqlInfo;
import com.foreverwin.iep.qms.domain.Aql;
import com.foreverwin.iep.qms.dto.QmsSamplePlanDTO;
import com.foreverwin.iep.qms.entity.*;
import com.foreverwin.iep.qms.mapper.QmsSamplePlanMapper;
@ -16,11 +18,10 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@ -33,24 +34,14 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, QmsSamplePlan> implements QmsSamplePlanService {
private final QmsAqlCodeService qmsAqlCodeService;
private final QmsAqlNormalService qmsAqlNormalService;
private final QmsAqlReducedService qmsAqlReducedService;
private final QmsAqlTightenedService qmsAqlTightenedService;
private final Qms1916CodeService qms1916CodeService;
private final Qms1916SamplePlanService qms1916SamplePlanService;
private final QmsSamplePlanCustomizeService qmsSamplePlanCustomizeService;
private final QmsQcPlanDetailService qmsQcPlanDetailService;
private final Qms1916CodeService qms1916CodeService;
private final Qms1916SamplePlanService qms1916SamplePlanService;
private final QmsAqlSampleCodeService qmsAqlSampleCodeService;
private final QmsAqlSampleMapService qmsAqlSampleMapService;
@Override
public QmsSamplePlanDTO calculate( QmsSamplePlanDTO qmsSamplePlanDTO ) {
public QmsSamplePlanDTO calculate(QmsSamplePlanDTO qmsSamplePlanDTO) {
QmsSamplePlanDTO response = new QmsSamplePlanDTO();
QmsSamplePlan qmsSamplePlan = super.getById(qmsSamplePlanDTO.getHandle());
@ -69,14 +60,17 @@ public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, Q
break;
case "2":
//MIL-STD-105E表 (AQL)
AqlInfo aqlInfo = aqlOfSamples(qmsSamplePlan, qmsSamplePlanDTO.getQty());
BigDecimal aqlQty = new BigDecimal(aqlInfo.getSampleqty());
Aql aql = aqlOfSamples(qmsSamplePlan, qmsSamplePlanDTO.getQty());
BigDecimal aqlSampleSize = aql.getSampleSize();
if (aqlQty.compareTo(qmsSamplePlanDTO.getQty()) > 0) {
aqlQty = qmsSamplePlanDTO.getQty();
if (ObjectUtil.isNotNull(aqlSampleSize)) {
if (aqlSampleSize.compareTo(qmsSamplePlanDTO.getQty()) > 0) {
aqlSampleSize = qmsSamplePlanDTO.getQty();
}
}
response.setReturnAllowedQty(new BigDecimal(aqlInfo.getR()));
response.setSampleSize(aqlQty);
response.setReturnAllowedQty(toZero(aql.getReturnQty()));
response.setSampleSize(toZero(aqlSampleSize));
break;
case "3":
//1916 表
@ -90,12 +84,11 @@ public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, Q
response.setSampleSize(new BigDecimal(1));
break;
}
return response;
}
@Override
public void save( QmsSamplePlanDTO qmsSamplePlanDTO ) {
public void save(QmsSamplePlanDTO qmsSamplePlanDTO) {
String site = qmsSamplePlanDTO.getSite();
List<QmsSamplePlanCustomize> customizeList = qmsSamplePlanDTO.getCustomizeList();
String samplePlanBo = QmsSamplePlan.genHandle(qmsSamplePlanDTO.getSite(), qmsSamplePlanDTO.getSamplePlan());
@ -105,6 +98,10 @@ public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, Q
BeanUtils.copyProperties(qmsSamplePlanDTO, qmsSamplePlan);
qmsSamplePlan.setHandle(samplePlanBo);
if (StrUtil.isBlank(qmsSamplePlan.getKind())) {
qmsSamplePlan.setKind("L");
}
qmsSamplePlanCustomizeService.remove(Wrappers.lambdaQuery(QmsSamplePlanCustomize.class)
.eq(QmsSamplePlanCustomize::getSamplePlanBo, samplePlanBo));
@ -135,17 +132,19 @@ public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, Q
}
@Override
public void delete( String site, String samplePlan ) {
public void delete(String site, String samplePlan) {
String samplePlanBo = QmsSamplePlan.genHandle(site, samplePlan);
QmsSamplePlan qmsSamplePlan = this.getById(samplePlanBo);
if (qmsSamplePlan == null) {
throw BusinessException.build(I18nUtil.getI18nText("qms.sample.plan.not.found"));
Integer eqc = baseMapper.checkEqc(samplePlanBo);
if (ObjectUtil.isNotNull(eqc) && eqc > 0) {
throw BusinessException.build(I18nUtil.getI18nText("qms.sample.plan.error1", samplePlan));
}
QmsQcPlanDetail qmsQcPlanDetail = qmsQcPlanDetailService.getOne(Wrappers.lambdaQuery(QmsQcPlanDetail.class)
.eq(QmsQcPlanDetail::getSamplePlanBo, samplePlanBo), false);
if (qmsQcPlanDetail != null) {
throw BusinessException.build(I18nUtil.getI18nText("qms.sample.plan.has.binding"));
Integer iqc = baseMapper.checkIqc(samplePlanBo);
Integer iqcTap = baseMapper.checkIqcTap(samplePlanBo);
if ((ObjectUtil.isNotNull(iqc) && iqc > 0) ||
(ObjectUtil.isNotNull(iqcTap) && iqcTap > 0)) {
throw BusinessException.build(I18nUtil.getI18nText("qms.sample.plan.error2", samplePlan));
}
this.removeById(samplePlanBo);
@ -154,253 +153,102 @@ public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, Q
}
@Override
public QmsSamplePlanDTO getSamplePlan( String site, String samplePlan ) {
public QmsSamplePlanDTO getSamplePlan(String site, String samplePlan) {
String samplePlanBo = QmsSamplePlan.genHandle(site, samplePlan);
QmsSamplePlan qmsSamplePlan = this.getById(samplePlanBo);
if (qmsSamplePlan == null) {
throw BusinessException.build(I18nUtil.getI18nText("qms.sample.plan.not.found"));
return null;
}
QmsSamplePlanDTO dto = new QmsSamplePlanDTO();
BeanUtils.copyProperties(qmsSamplePlan, dto);
dto.setCustomizeList(qmsSamplePlanCustomizeService.list(Wrappers.lambdaQuery(QmsSamplePlanCustomize.class)
.eq(QmsSamplePlanCustomize::getSamplePlanBo, samplePlanBo)).stream()
.sorted(Comparator.comparing(( custom ) -> Integer.parseInt(custom.getSeq())))
.collect(Collectors.toList()));
.eq(QmsSamplePlanCustomize::getSamplePlanBo, samplePlanBo))
.stream()
.sorted(Comparator.comparing((custom) -> Integer.parseInt(custom.getSeq())))
.collect(Collectors.toList()));
return dto;
}
//固定抽樣數
private BigDecimal fixedNumberOfSamples( QmsSamplePlan qmsSamplePlan, BigDecimal sfcQty ) {
BigDecimal fixed = new BigDecimal(0);
private BigDecimal fixedNumberOfSamples(QmsSamplePlan qmsSamplePlan, BigDecimal qty) {
// SFC數量小於固定抽樣,使用SFC數量
if (sfcQty.compareTo(qmsSamplePlan.getFixedNumber()) < 0) {
return sfcQty;
if (qty.compareTo(qmsSamplePlan.getFixedNumber()) < 0) {
return qty;
} else {
return qmsSamplePlan.getFixedNumber();
}
}
//固定抽樣比例
private BigDecimal fixedSamplingRatio( QmsSamplePlan samplePlan, BigDecimal sfcQty ) {
BigDecimal percent = samplePlan.getFixedPercentage().divide(new BigDecimal(100));
return sfcQty.multiply(percent).setScale(0, BigDecimal.ROUND_CEILING);
private BigDecimal fixedSamplingRatio(QmsSamplePlan samplePlan, BigDecimal qty) {
BigDecimal percent = samplePlan.getFixedPercentage().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
return qty.multiply(percent).setScale(0, RoundingMode.CEILING);
}
//MIL-STD-105E表 (AQL)
private AqlInfo aqlOfSamples( QmsSamplePlan samplePlan, BigDecimal sfcQty ) {
return getAqlSampleQty(sfcQty.intValue(), samplePlan.getQcLevel(),
samplePlan.getAllowLevel(), samplePlan.getSampleRatio());
}
private Aql aqlOfSamples(QmsSamplePlan samplePlan, BigDecimal qty) {
String allowLevel = samplePlan.getAllowLevel();
BigDecimal sampleRatio = samplePlan.getSampleRatio();
/**
* 取得AQL抽樣數
*
* @param qty 數量
* @param aqlLevel 檢驗水準
* @param allowLevel 允收水準
* @return
*/
private AqlInfo getAqlSampleQty( int qty, String aqlLevel, String allowLevel, BigDecimal ratio ) {
String sampleCode = null;
List<QmsAqlCode> cList = qmsAqlCodeService.list(Wrappers.<QmsAqlCode>query().lambda()
.le(QmsAqlCode::getLotqtymin, qty)
.ge(QmsAqlCode::getLotqtymax, qty));
if (cList == null || cList.size() == 0) {
throw BusinessException.build("抽样数量不正确: " + qty);
QmsAqlSampleCode qmsAqlSampleCode = qmsAqlSampleCodeService.getOne(Wrappers.lambdaQuery(QmsAqlSampleCode.class)
.eq(QmsAqlSampleCode::getQcLevel, samplePlan.getQcLevel())
.le(QmsAqlSampleCode::getLotminqty, qty)
.ge(QmsAqlSampleCode::getLotmaxqty, qty));
if (ObjectUtil.isNull(qmsAqlSampleCode)) {
throw BusinessException.build(I18nUtil.getI18nText("qms.sample.plan.error3", qty));
}
// 取得SampleCode
switch (aqlLevel) {
case "0":
sampleCode = cList.get(0).getI();
break;
case "1":
sampleCode = cList.get(0).getIi();
break;
case "2":
sampleCode = cList.get(0).getIii();
break;
case "3":
sampleCode = cList.get(0).getS1();
break;
case "4":
sampleCode = cList.get(0).getS2();
break;
case "5":
sampleCode = cList.get(0).getS3();
break;
case "6":
sampleCode = cList.get(0).getS4();
break;
}
// 取得抽樣數
switch (allowLevel) {
case "0":
// 正常
AqlInfo aqlInfo1 = new AqlInfo();
QmsAqlNormal aqlNormal = qmsAqlNormalService.getOne(Wrappers.<QmsAqlNormal>query().lambda()
.eq(QmsAqlNormal::getSamplecode, sampleCode));
BeanUtils.copyProperties(aqlNormal, aqlInfo1);
return ratioRange(ratio, allowLevel, aqlInfo1);
case "1":
// 加嚴
AqlInfo aqlInfo2 = new AqlInfo();
QmsAqlTightened aqlTightened = qmsAqlTightenedService.getOne(Wrappers.<QmsAqlTightened>query().lambda()
.eq(QmsAqlTightened::getSamplecode, sampleCode));
BeanUtils.copyProperties(aqlTightened, aqlInfo2);
return ratioRange(ratio, allowLevel, aqlInfo2);
case "2":
// 減量
AqlInfo aqlInfo3 = new AqlInfo();
QmsAqlReduced aqlReduced = qmsAqlReducedService.getOne(Wrappers.<QmsAqlReduced>query().lambda()
.eq(QmsAqlReduced::getSamplecode, sampleCode));
BeanUtils.copyProperties(aqlReduced, aqlInfo3);
return ratioRange(ratio, allowLevel, aqlInfo3);
}
return new AqlInfo();
}
Aql aql = new Aql();
String code = qmsAqlSampleCode.getCode();
List<QmsAqlSampleMap> qmsAqlSampleMaps = getAqlSample(code, allowLevel, sampleRatio);
if (!ListUtils.isEmpty(qmsAqlSampleMaps)) {
QmsAqlSampleMap $R = filter(qmsAqlSampleMaps, "R");
/**
* 判斷抽樣比率
*
* @param ratio
* @param allowLevel
* @param aqlInfo
* @return
*/
private AqlInfo ratioRange( BigDecimal ratio, String allowLevel, AqlInfo aqlInfo ) {
setAcAndR(ratio, aqlInfo);
if (isNumeric(aqlInfo.getAcStr())) {
// 對照抽樣表,如果是數字直接傳當前sample qty
return aqlInfo;
} else {
// 不是數字用當前取得文字,在檢索一次,取sample qty
AqlInfo aqlInfo1 = aqlInfo;
switch (allowLevel) {
case "0":
// 正常
QmsAqlNormal aqlNormal = qmsAqlNormalService.getOne(Wrappers.<QmsAqlNormal>query().lambda()
.eq(QmsAqlNormal::getSamplecode, aqlInfo.getAcStr()));
BeanUtils.copyProperties(aqlNormal, aqlInfo1);
break;
case "1":
// 加嚴
QmsAqlTightened aqlTightened = qmsAqlTightenedService.getOne(Wrappers.<QmsAqlTightened>query().lambda()
.eq(QmsAqlTightened::getSamplecode, aqlInfo.getAcStr()));
BeanUtils.copyProperties(aqlTightened, aqlInfo1);
break;
case "2":
// 減量
QmsAqlReduced aqlReduced = qmsAqlReducedService.getOne(Wrappers.<QmsAqlReduced>query().lambda()
.eq(QmsAqlReduced::getSamplecode, aqlInfo.getAcStr()));
BeanUtils.copyProperties(aqlReduced, aqlInfo1);
break;
if (ObjectUtil.isNotNull($R)) {
QmsAqlSampleMap $S = qmsAqlSampleMapService.getOne(Wrappers.lambdaQuery(QmsAqlSampleMap.class)
.eq(QmsAqlSampleMap::getCode, $R.getCode())
.eq(QmsAqlSampleMap::getAllowLevel, allowLevel)
.eq(QmsAqlSampleMap::getType, "S"));
if (ObjectUtil.isNotNull($S)) {
aql.setSampleSize($S.getValue());
}
aql.setReturnQty($R.getValue());
}
setAcAndR(ratio, aqlInfo1);
return aqlInfo1;
}
return aql;
}
private void setAcAndR( BigDecimal ratio, AqlInfo aqlInfo ) {
String ac = null;
String r = null;
// 判斷抽樣比率
if (ratio.compareTo(new BigDecimal("0.01")) == 0) {
ac = aqlInfo.getA1();
r = aqlInfo.getR1();
} else if (ratio.compareTo(new BigDecimal("0.015")) == 0) {
ac = aqlInfo.getA2();
r = aqlInfo.getR2();
} else if (ratio.compareTo(new BigDecimal("0.025")) == 0) {
ac = aqlInfo.getA3();
r = aqlInfo.getR3();
} else if (ratio.compareTo(new BigDecimal("0.04")) == 0) {
ac = aqlInfo.getA4();
r = aqlInfo.getR4();
} else if (ratio.compareTo(new BigDecimal("0.065")) == 0) {
ac = aqlInfo.getA5();
r = aqlInfo.getR5();
} else if (ratio.compareTo(new BigDecimal("0.1")) == 0) {
ac = aqlInfo.getA6();
r = aqlInfo.getR6();
} else if (ratio.compareTo(new BigDecimal("0.15")) == 0) {
ac = aqlInfo.getA7();
r = aqlInfo.getR7();
} else if (ratio.compareTo(new BigDecimal("0.25")) == 0) {
ac = aqlInfo.getA8();
r = aqlInfo.getR8();
} else if (ratio.compareTo(new BigDecimal("0.4")) == 0) {
ac = aqlInfo.getA9();
r = aqlInfo.getR9();
} else if (ratio.compareTo(new BigDecimal("0.65")) == 0) {
ac = aqlInfo.getA10();
r = aqlInfo.getR10();
} else if (ratio.compareTo(new BigDecimal("1")) == 0) {
ac = aqlInfo.getA11();
r = aqlInfo.getR11();
} else if (ratio.compareTo(new BigDecimal("1.5")) == 0) {
ac = aqlInfo.getA12();
r = aqlInfo.getR12();
} else if (ratio.compareTo(new BigDecimal("2.5")) == 0) {
ac = aqlInfo.getA13();
r = aqlInfo.getR13();
} else if (ratio.compareTo(new BigDecimal("4")) == 0) {
ac = aqlInfo.getA14();
r = aqlInfo.getR14();
} else if (ratio.compareTo(new BigDecimal("6.5")) == 0) {
ac = aqlInfo.getA15();
r = aqlInfo.getR15();
} else if (ratio.compareTo(new BigDecimal("10")) == 0) {
ac = aqlInfo.getA16();
r = aqlInfo.getR16();
} else if (ratio.compareTo(new BigDecimal("15")) == 0) {
ac = aqlInfo.getA17();
r = aqlInfo.getR17();
} else if (ratio.compareTo(new BigDecimal("25")) == 0) {
ac = aqlInfo.getA18();
r = aqlInfo.getR18();
} else if (ratio.compareTo(new BigDecimal("40")) == 0) {
ac = aqlInfo.getA19();
r = aqlInfo.getR19();
} else if (ratio.compareTo(new BigDecimal("65")) == 0) {
ac = aqlInfo.getA20();
r = aqlInfo.getR20();
} else if (ratio.compareTo(new BigDecimal("100")) == 0) {
ac = aqlInfo.getA21();
r = aqlInfo.getR21();
} else if (ratio.compareTo(new BigDecimal("150")) == 0) {
ac = aqlInfo.getA22();
r = aqlInfo.getR22();
} else if (ratio.compareTo(new BigDecimal("250")) == 0) {
ac = aqlInfo.getA23();
r = aqlInfo.getR23();
} else if (ratio.compareTo(new BigDecimal("400")) == 0) {
ac = aqlInfo.getA24();
r = aqlInfo.getR24();
} else if (ratio.compareTo(new BigDecimal("650")) == 0) {
ac = aqlInfo.getA25();
r = aqlInfo.getR25();
} else if (ratio.compareTo(new BigDecimal("1000")) == 0) {
ac = aqlInfo.getA26();
r = aqlInfo.getR26();
}
private List<QmsAqlSampleMap> getAqlSample(String code, String allowLevel, BigDecimal sampleRatio) {
List<QmsAqlSampleMap> qmsAqlSampleMaps = qmsAqlSampleMapService.list(Wrappers.lambdaQuery(QmsAqlSampleMap.class)
.eq(QmsAqlSampleMap::getCode, code)
.eq(QmsAqlSampleMap::getAllowLevel, allowLevel)
.eq(QmsAqlSampleMap::getSamplingRatio, sampleRatio));
QmsAqlSampleMap $A = filter(qmsAqlSampleMaps, "A");
aqlInfo.setAcStr(ac);
if (isNumeric(aqlInfo.getAcStr())) {
aqlInfo.setAc(Integer.parseInt(ac));
aqlInfo.setR(Integer.parseInt(r));
if (ObjectUtil.isNotNull($A)) {
if (StrUtil.isBlank($A.getNextCode())) {
return qmsAqlSampleMaps;
}
return getAqlSample($A.getNextCode(), allowLevel, sampleRatio);
}
return null;
}
private BigDecimal samplesBy1916( QmsSamplePlan samplePlan, BigDecimal qty ) {
private QmsAqlSampleMap filter(List<QmsAqlSampleMap> qmsAqlSampleMaps, String type) {
return qmsAqlSampleMaps.stream()
.filter(filters -> type.equals(filters.getType()))
.findFirst()
.orElse(null);
}
private BigDecimal samplesBy1916(QmsSamplePlan samplePlan, BigDecimal qty) {
Qms1916Code qms1916Code = qms1916CodeService.getOne(Wrappers.<Qms1916Code>query().lambda()
.eq(Qms1916Code::getQcLevel, samplePlan.getQcLevel())
.le(Qms1916Code::getLotminqty, qty)
.ge(Qms1916Code::getLotmaxqty, qty));
Qms1916SamplePlan qms1916SamplePlan = qms1916SamplePlanService.getOne(Wrappers.<Qms1916SamplePlan>query().lambda()
Qms1916SamplePlan qms1916SamplePlan = qms1916SamplePlanService.getOne(Wrappers.<Qms1916SamplePlan>query()
.lambda()
.eq(Qms1916SamplePlan::getCode, qms1916Code.getCode())
.eq(Qms1916SamplePlan::getQcLevel, samplePlan.getQcLevel())
.eq(Qms1916SamplePlan::getAllowLevel, samplePlan.getAllowLevel())
@ -413,15 +261,22 @@ public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, Q
}
}
private BigDecimal customOfSamples( QmsSamplePlan samplePlan, BigDecimal qty ) {
QmsSamplePlanCustomize qmsSamplePlanCustomize = qmsSamplePlanCustomizeService.getOne(Wrappers.<QmsSamplePlanCustomize>query().lambda()
.eq(QmsSamplePlanCustomize::getSamplePlanBo, samplePlan.getHandle())
.lt(QmsSamplePlanCustomize::getMinValue, qty)
.ge(QmsSamplePlanCustomize::getMaxValue, qty));
if (qmsSamplePlanCustomize == null || qmsSamplePlanCustomize.getSampleSize() == null) {
private BigDecimal customOfSamples(QmsSamplePlan samplePlan, BigDecimal qty) {
List<QmsSamplePlanCustomize> qmsSamplePlanCustomizes = qmsSamplePlanCustomizeService.list(Wrappers.<QmsSamplePlanCustomize>query()
.lambda()
.eq(QmsSamplePlanCustomize::getSamplePlanBo, samplePlan.getHandle()));
QmsSamplePlanCustomize qmsSamplePlanCustomize = qmsSamplePlanCustomizes.stream()
.filter(filters -> {
BigDecimal min = BigDecimal.valueOf(filters.getMinValue());
BigDecimal max = BigDecimal.valueOf(filters.getMaxValue() + 1);
return min.compareTo(qty) <= 0 && max.compareTo(qty) > 0;
})
.findFirst()
.orElse(null);
if (ObjectUtil.isNull(qmsSamplePlanCustomize)) {
return null;
}
BigDecimal sampleSize = new BigDecimal(qmsSamplePlanCustomize.getSampleSize());
if (sampleSize.compareTo(qty) > 0) {
sampleSize = qty;
@ -429,9 +284,10 @@ public class QmsSamplePlanServiceImpl extends ServiceImpl<QmsSamplePlanMapper, Q
return sampleSize;
}
private boolean isNumeric( String str ) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
return isNum.matches();
private BigDecimal toZero(BigDecimal decimal) {
if (ObjectUtil.isNull(decimal)) {
return BigDecimal.ZERO;
}
return decimal;
}
}

View File

@ -1,18 +0,0 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsSampleRatio;
import com.foreverwin.iep.qms.mapper.QmsSampleRatioMapper;
import com.foreverwin.iep.qms.service.QmsSampleRatioService;
import org.springframework.stereotype.Service;
/**
* 抽样比率表
*
* @author paul
* @date 2022-12-28 13:44:30
*/
@Service
public class QmsSampleRatioServiceImpl extends ServiceImpl<QmsSampleRatioMapper, QmsSampleRatio> implements QmsSampleRatioService {
}

View File

@ -18,6 +18,9 @@ qms.g.fail=\u5931\u8D25
#\u62BD\u6837\u8BA1\u753B
qms.sample.plan.not.found=\u8BE5\u62BD\u6837\u8BA1\u753B\u4E0D\u5B58\u5728
qms.sample.plan.has.binding=\u62BD\u6837\u8BA1\u5212\u5DF2\u7ED1\u5B9A\u68C0\u9A8C\u8BA1\u5212\uFF0C\u4E0D\u53EF\u5220\u9664
qms.sample.plan.error1=\u7535\u6027\u62BD\u6D4B\u89C4\u5219\u5DF2\u914D\u7F6E\u300E{0}\u300F\uFF0C\u4E0D\u5F97\u5220\u9664
qms.sample.plan.error2=\u300E{0}\u300F\u5DF2\u88ABIQC\u4F7F\u7528\uFF0C\u4E0D\u5F97\u5220\u9664
qms.sample.plan.error3=\u62BD\u6837\u6570\u91CF\u4E0D\u6B63\u786E: {0}
#inspec
qms.inspec.error1=\u6B64\u68C0\u9A8C\u9891\u7387\u7F16\u53F7\u4E0D\u5B58\u5728

View File

@ -1,16 +0,0 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsAqlCode;
import org.apache.ibatis.annotations.Mapper;
/**
* AQL区间对照表
*
* @author paul
* @date 2022-12-28 12:00:10
*/
@Mapper
public interface QmsAqlCodeMapper extends MomBaseMapper<QmsAqlCode> {
}

View File

@ -1,16 +0,0 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsAqlNormal;
import org.apache.ibatis.annotations.Mapper;
/**
* AQL正常对应表
*
* @author paul
* @date 2022-12-28 13:36:20
*/
@Mapper
public interface QmsAqlNormalMapper extends MomBaseMapper<QmsAqlNormal> {
}

View File

@ -1,16 +0,0 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsAqlReduced;
import org.apache.ibatis.annotations.Mapper;
/**
* AQL减量对应表
*
* @author paul
* @date 2022-12-28 13:38:30
*/
@Mapper
public interface QmsAqlReducedMapper extends MomBaseMapper<QmsAqlReduced> {
}

View File

@ -0,0 +1,16 @@
package com.foreverwin.iep.qms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.foreverwin.iep.qms.entity.QmsAqlSampleCode;
import org.apache.ibatis.annotations.Mapper;
/**
* AQL表-抽样代码
*
* @author mom code generator
* @date 2023-07-05 10:56:30
*/
@Mapper
public interface QmsAqlSampleCodeMapper extends BaseMapper<QmsAqlSampleCode> {
}

View File

@ -0,0 +1,16 @@
package com.foreverwin.iep.qms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.foreverwin.iep.qms.entity.QmsAqlSampleMap;
import org.apache.ibatis.annotations.Mapper;
/**
* AQL表-抽样数
*
* @author mom code generator
* @date 2023-07-05 10:58:38
*/
@Mapper
public interface QmsAqlSampleMapMapper extends BaseMapper<QmsAqlSampleMap> {
}

View File

@ -1,16 +0,0 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsAqlTightened;
import org.apache.ibatis.annotations.Mapper;
/**
* AQL加严对应表
*
* @author paul
* @date 2022-12-28 13:42:41
*/
@Mapper
public interface QmsAqlTightenedMapper extends MomBaseMapper<QmsAqlTightened> {
}

View File

@ -3,6 +3,7 @@ package com.foreverwin.iep.qms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.foreverwin.iep.qms.entity.QmsSamplePlan;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 抽样计划主表
@ -13,4 +14,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface QmsSamplePlanMapper extends BaseMapper<QmsSamplePlan> {
Integer checkEqc(@Param("samplePlanBo") String samplePlanBo);
Integer checkIqc(@Param("samplePlanBo") String samplePlanBo);
Integer checkIqcTap(@Param("samplePlanBo") String samplePlanBo);
}

View File

@ -1,16 +0,0 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsSampleRatio;
import org.apache.ibatis.annotations.Mapper;
/**
* 抽样比率表
*
* @author paul
* @date 2022-12-28 13:44:30
*/
@Mapper
public interface QmsSampleRatioMapper extends MomBaseMapper<QmsSampleRatio> {
}

View File

@ -1,19 +0,0 @@
<?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.foreverwin.iep.qms.mapper.QmsAqlCodeMapper">
<resultMap id="qmsAqlCodeMap" type="com.foreverwin.iep.qms.entity.QmsAqlCode">
<id property="handle" column="HANDLE"/>
<result property="lotqtymin" column="LOTQTYMIN"/>
<result property="lotqtymax" column="LOTQTYMAX"/>
<result property="s1" column="S1"/>
<result property="s2" column="S2"/>
<result property="s3" column="S3"/>
<result property="s4" column="S4"/>
<result property="i" column="I"/>
<result property="ii" column="II"/>
<result property="iii" column="III"/>
</resultMap>
</mapper>

View File

@ -1,64 +0,0 @@
<?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.foreverwin.iep.qms.mapper.QmsAqlNormalMapper">
<resultMap id="qmsAqlNormalMap" type="com.foreverwin.iep.qms.entity.QmsAqlNormal">
<id property="handle" column="HANDLE"/>
<result property="samplecode" column="SAMPLECODE"/>
<result property="sampleqty" column="SAMPLEQTY"/>
<result property="a1" column="A1"/>
<result property="r1" column="R1"/>
<result property="a2" column="A2"/>
<result property="r2" column="R2"/>
<result property="a3" column="A3"/>
<result property="r3" column="R3"/>
<result property="a4" column="A4"/>
<result property="r4" column="R4"/>
<result property="a5" column="A5"/>
<result property="r5" column="R5"/>
<result property="a6" column="A6"/>
<result property="r6" column="R6"/>
<result property="a7" column="A7"/>
<result property="r7" column="R7"/>
<result property="a8" column="A8"/>
<result property="r8" column="R8"/>
<result property="a9" column="A9"/>
<result property="r9" column="R9"/>
<result property="a10" column="A10"/>
<result property="r10" column="R10"/>
<result property="a11" column="A11"/>
<result property="r11" column="R11"/>
<result property="a12" column="A12"/>
<result property="r12" column="R12"/>
<result property="a13" column="A13"/>
<result property="r13" column="R13"/>
<result property="a14" column="A14"/>
<result property="r14" column="R14"/>
<result property="a15" column="A15"/>
<result property="r15" column="R15"/>
<result property="a16" column="A16"/>
<result property="r16" column="R16"/>
<result property="a17" column="A17"/>
<result property="r17" column="R17"/>
<result property="a18" column="A18"/>
<result property="r18" column="R18"/>
<result property="a19" column="A19"/>
<result property="r19" column="R19"/>
<result property="a20" column="A20"/>
<result property="r20" column="R20"/>
<result property="a21" column="A21"/>
<result property="r21" column="R21"/>
<result property="a22" column="A22"/>
<result property="r22" column="R22"/>
<result property="a23" column="A23"/>
<result property="r23" column="R23"/>
<result property="a24" column="A24"/>
<result property="r24" column="R24"/>
<result property="a25" column="A25"/>
<result property="r25" column="R25"/>
<result property="a26" column="A26"/>
<result property="r26" column="R26"/>
</resultMap>
</mapper>

View File

@ -1,64 +0,0 @@
<?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.foreverwin.iep.qms.mapper.QmsAqlReducedMapper">
<resultMap id="qmsAqlReducedMap" type="com.foreverwin.iep.qms.entity.QmsAqlReduced">
<id property="handle" column="HANDLE"/>
<result property="samplecode" column="SAMPLECODE"/>
<result property="sampleqty" column="SAMPLEQTY"/>
<result property="a1" column="A1"/>
<result property="r1" column="R1"/>
<result property="a2" column="A2"/>
<result property="r2" column="R2"/>
<result property="a3" column="A3"/>
<result property="r3" column="R3"/>
<result property="a4" column="A4"/>
<result property="r4" column="R4"/>
<result property="a5" column="A5"/>
<result property="r5" column="R5"/>
<result property="a6" column="A6"/>
<result property="r6" column="R6"/>
<result property="a7" column="A7"/>
<result property="r7" column="R7"/>
<result property="a8" column="A8"/>
<result property="r8" column="R8"/>
<result property="a9" column="A9"/>
<result property="r9" column="R9"/>
<result property="a10" column="A10"/>
<result property="r10" column="R10"/>
<result property="a11" column="A11"/>
<result property="r11" column="R11"/>
<result property="a12" column="A12"/>
<result property="r12" column="R12"/>
<result property="a13" column="A13"/>
<result property="r13" column="R13"/>
<result property="a14" column="A14"/>
<result property="r14" column="R14"/>
<result property="a15" column="A15"/>
<result property="r15" column="R15"/>
<result property="a16" column="A16"/>
<result property="r16" column="R16"/>
<result property="a17" column="A17"/>
<result property="r17" column="R17"/>
<result property="a18" column="A18"/>
<result property="r18" column="R18"/>
<result property="a19" column="A19"/>
<result property="r19" column="R19"/>
<result property="a20" column="A20"/>
<result property="r20" column="R20"/>
<result property="a21" column="A21"/>
<result property="r21" column="R21"/>
<result property="a22" column="A22"/>
<result property="r22" column="R22"/>
<result property="a23" column="A23"/>
<result property="r23" column="R23"/>
<result property="a24" column="A24"/>
<result property="r24" column="R24"/>
<result property="a25" column="A25"/>
<result property="r25" column="R25"/>
<result property="a26" column="A26"/>
<result property="r26" column="R26"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,15 @@
<?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.foreverwin.iep.qms.mapper.QmsAqlSampleCodeMapper">
<resultMap id="qmsAqlSampleCodeMap" type="com.foreverwin.iep.qms.entity.QmsAqlSampleCode">
<id property="handle" column="HANDLE"/>
<result property="lotminqty" column="LOTMINQTY"/>
<result property="lotmaxqty" column="LOTMAXQTY"/>
<result property="qcLevel" column="QC_LEVEL"/>
<result property="qcLevelDesc" column="QC_LEVEL_DESC"/>
<result property="code" column="CODE"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,16 @@
<?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.foreverwin.iep.qms.mapper.QmsAqlSampleMapMapper">
<resultMap id="qmsAqlSampleMapMap" type="com.foreverwin.iep.qms.entity.QmsAqlSampleMap">
<id property="handle" column="HANDLE"/>
<result property="allowLevel" column="ALLOW_LEVEL"/>
<result property="code" column="CODE"/>
<result property="samplingRatio" column="SAMPLING_RATIO"/>
<result property="type" column="TYPE"/>
<result property="nextCode" column="NEXT_CODE"/>
<result property="value" column="VALUE"/>
</resultMap>
</mapper>

View File

@ -1,64 +0,0 @@
<?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.foreverwin.iep.qms.mapper.QmsAqlTightenedMapper">
<resultMap id="qmsAqlTightenedMap" type="com.foreverwin.iep.qms.entity.QmsAqlTightened">
<id property="handle" column="HANDLE"/>
<result property="samplecode" column="SAMPLECODE"/>
<result property="sampleqty" column="SAMPLEQTY"/>
<result property="a1" column="A1"/>
<result property="r1" column="R1"/>
<result property="a2" column="A2"/>
<result property="r2" column="R2"/>
<result property="a3" column="A3"/>
<result property="r3" column="R3"/>
<result property="a4" column="A4"/>
<result property="r4" column="R4"/>
<result property="a5" column="A5"/>
<result property="r5" column="R5"/>
<result property="a6" column="A6"/>
<result property="r6" column="R6"/>
<result property="a7" column="A7"/>
<result property="r7" column="R7"/>
<result property="a8" column="A8"/>
<result property="r8" column="R8"/>
<result property="a9" column="A9"/>
<result property="r9" column="R9"/>
<result property="a10" column="A10"/>
<result property="r10" column="R10"/>
<result property="a11" column="A11"/>
<result property="r11" column="R11"/>
<result property="a12" column="A12"/>
<result property="r12" column="R12"/>
<result property="a13" column="A13"/>
<result property="r13" column="R13"/>
<result property="a14" column="A14"/>
<result property="r14" column="R14"/>
<result property="a15" column="A15"/>
<result property="r15" column="R15"/>
<result property="a16" column="A16"/>
<result property="r16" column="R16"/>
<result property="a17" column="A17"/>
<result property="r17" column="R17"/>
<result property="a18" column="A18"/>
<result property="r18" column="R18"/>
<result property="a19" column="A19"/>
<result property="r19" column="R19"/>
<result property="a20" column="A20"/>
<result property="r20" column="R20"/>
<result property="a21" column="A21"/>
<result property="r21" column="R21"/>
<result property="a22" column="A22"/>
<result property="r22" column="R22"/>
<result property="a23" column="A23"/>
<result property="r23" column="R23"/>
<result property="a24" column="A24"/>
<result property="r24" column="R24"/>
<result property="a25" column="A25"/>
<result property="r25" column="R25"/>
<result property="a26" column="A26"/>
<result property="r26" column="R26"/>
</resultMap>
</mapper>

View File

@ -5,11 +5,15 @@
<mapper namespace="com.foreverwin.iep.qms.mapper.QmsInspecFreqMapper">
<resultMap id="qmsInspecFreqMap" type="com.foreverwin.iep.qms.entity.QmsInspecFreq">
<id property="sid" column="SID"/>
<id property="handle" column="HANDLE"/>
<result property="site" column="SITE"/>
<result property="inspecType" column="INSPEC_TYPE"/>
<result property="inspecNo" column="INSPEC_NO"/>
<result property="description" column="DESCRIPTION"/>
<result property="chkFirstSfc" column="CHK_FIRST_SFC"/>
<result property="chkDailyFirstSfc" column="CHK_DAILY_FIRST_SFC"/>
<result property="dailyFirstSfc" column="DAILY_FIRST_SFC"/>
<result property="chkChangeProduct" column="CHK_CHANGE_PRODUCT"/>
<result property="chkChangeMould" column="CHK_CHANGE_MOULD"/>
<result property="chkMaintenFirstSfc" column="CHK_MAINTEN_FIRST_SFC"/>
<result property="chkStopAfterSfc" column="CHK_STOP_AFTER_SFC"/>
@ -18,14 +22,11 @@
<result property="intervalHour" column="INTERVAL_HOUR"/>
<result property="chkSeveralSfc" column="CHK_SEVERAL_SFC"/>
<result property="severalSfc" column="SEVERAL_SFC"/>
<result property="modifiedDateTime" column="MODIFIED_DATE_TIME"/>
<result property="modifiedUser" column="MODIFIED_USER"/>
<result property="chkDailyFirstSfc" column="CHK_DAILY_FIRST_SFC"/>
<result property="chkDailyFixedTime" column="CHK_DAILY_FIXED_TIME"/>
<result property="dailyFixedTime" column="DAILY_FIXED_TIME"/>
<result property="chkIntervalHour2" column="CHK_INTERVAL_HOUR2"/>
<result property="intervalHour2" column="INTERVAL_HOUR2"/>
<result property="chkEachPcs" column="CHK_EACH_PCS"/>
<result property="eachPcs" column="EACH_PCS"/>
<result property="chkDailyFixedTime" column="CHK_DAILY_FIXED_TIME"/>
<result property="dailyFixedTime" column="DAILY_FIXED_TIME"/>
<result property="modifiedDateTime" column="MODIFIED_DATE_TIME"/>
<result property="modifiedUser" column="MODIFIED_USER"/>
</resultMap>
</mapper>

View File

@ -23,4 +23,19 @@
<result property="dieQty" column="DIE_QTY"/>
<result property="areaInfo" column="AREA_INFO"/>
</resultMap>
<select id="checkEqc" resultType="java.lang.Integer">
select count(1) from eqc_rule_tap
where SAMPLE_PLAN_BO = #{samplePlanBo}
</select>
<select id="checkIqc" resultType="java.lang.Integer">
select count(1) from receipt_iqc
where SAMPLE_PLAN_BO = #{samplePlanBo}
</select>
<select id="checkIqcTap" resultType="java.lang.Integer">
select count(1) from receipt_iqc_tap
where SAMPLE_PLAN_BO = #{samplePlanBo}
</select>
</mapper>

View File

@ -1,11 +0,0 @@
<?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.foreverwin.iep.qms.mapper.QmsSampleRatioMapper">
<resultMap id="qmsSampleRatioMap" type="com.foreverwin.iep.qms.entity.QmsSampleRatio">
<id property="handle" column="HANDLE"/>
<result property="sampleRatio" column="SAMPLE_RATIO"/>
</resultMap>
</mapper>