diff --git a/modules/i3plus-pojo-aps/pom.xml b/modules/i3plus-pojo-aps/pom.xml index 4426ba9..b0a3f82 100644 --- a/modules/i3plus-pojo-aps/pom.xml +++ b/modules/i3plus-pojo-aps/pom.xml @@ -17,6 +17,10 @@ i3plus.pojo i3plus-pojo-base + + org.hibernate.validator + hibernate-validator + \ No newline at end of file diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/MainKey.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/MainKey.java new file mode 100644 index 0000000..105400d --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/MainKey.java @@ -0,0 +1,20 @@ +package cn.estsh.i3plus.pojo.aps.annotation; + +import cn.estsh.i3plus.pojo.aps.validator.InsertGroup; +import cn.estsh.i3plus.pojo.aps.validator.MainKeyValidator; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy={MainKeyValidator.class}) +public @interface MainKey { + String message() default "主键重复"; + Class[] groups() default {}; + Class[] payload() default {}; +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseOrder.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseOrder.java index 0dfe904..9115264 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseOrder.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseOrder.java @@ -13,6 +13,8 @@ import lombok.EqualsAndHashCode; import javax.persistence.Column; import javax.persistence.MappedSuperclass; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; import java.util.Date; import java.util.List; @@ -37,6 +39,7 @@ public class BaseOrder extends BaseCode { @Column(name="COUNT") @ApiParam(value ="数量") @FieldAnnotation(notEmpty = true) + @Min(0) private Double count; @Column(name="PRIORITY") diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceCapacity.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceCapacity.java index cdf99a2..ea84c13 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceCapacity.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceCapacity.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.pojo.aps.bean; +import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation; import cn.estsh.i3plus.pojo.aps.common.BaseAPS; +import cn.estsh.i3plus.pojo.base.enumutil.ApsEnumUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -11,6 +13,7 @@ import org.hibernate.annotations.DynamicUpdate; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import javax.validation.constraints.Min; /** * @Description :炉资源容量限制 @@ -30,17 +33,21 @@ public class FurnaceCapacity extends BaseAPS { @Column(name="RES_CODES") @ApiParam(value ="资源编码") + @FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.MULTI_OBJECT, typeName = "Resource", notEmpty = true) private String resCodes; @Column(name="STAND_CODE") @ApiParam(value ="标准工序编码") + @FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.MULTI_OBJECT, typeName = "StandOperation") private String standCode; @Column(name="MATERIAL_CODE") @ApiParam(value ="物料编码") + @FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.MULTI_OBJECT, typeName = "Material") private String materialCode; @Column(name="CAPACITY") @ApiParam(value ="容量限制") + @Min(0) private Double capacity; } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceSetting.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceSetting.java index af4ca6f..40835b2 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceSetting.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FurnaceSetting.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.pojo.aps.bean; +import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation; import cn.estsh.i3plus.pojo.aps.common.BaseAPS; +import cn.estsh.i3plus.pojo.base.enumutil.ApsEnumUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -30,6 +32,7 @@ public class FurnaceSetting extends BaseAPS { @Column(name="RES_CODES") @ApiParam(value ="资源编码") + @FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.MULTI_OBJECT, typeName = "Resource", notEmpty = true) private String resCodes; @Column(name="SAME_MATERIAL") diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseCode.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseCode.java index 638f867..e311e89 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseCode.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseCode.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.pojo.aps.common; import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation; +import cn.estsh.i3plus.pojo.aps.annotation.MainKey; +import cn.estsh.i3plus.pojo.aps.validator.InsertGroup; import io.swagger.annotations.ApiParam; import lombok.Data; import lombok.EqualsAndHashCode; @@ -18,6 +20,7 @@ import javax.persistence.MappedSuperclass; @Data @EqualsAndHashCode(callSuper = true) @MappedSuperclass +@MainKey(groups = {InsertGroup.class}) public abstract class BaseCode extends BaseAPS { @Column(name="CODE") @ApiParam(value ="编码") diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/validator/InsertGroup.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/validator/InsertGroup.java new file mode 100644 index 0000000..2efcf07 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/validator/InsertGroup.java @@ -0,0 +1,4 @@ +package cn.estsh.i3plus.pojo.aps.validator; + +public interface InsertGroup { +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/validator/MainKeyValidator.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/validator/MainKeyValidator.java new file mode 100644 index 0000000..15c92bf --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/validator/MainKeyValidator.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.pojo.aps.validator; + +import cn.estsh.i3plus.pojo.aps.annotation.MainKey; +import cn.estsh.i3plus.pojo.base.bean.BaseBean; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +public class MainKeyValidator implements ConstraintValidator { + @Override + public boolean isValid(BaseBean bean, ConstraintValidatorContext constraintValidatorContext) { + return false; + } +} diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/MesEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/MesEnumUtil.java index cb8dae6..3673841 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/MesEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/MesEnumUtil.java @@ -1308,7 +1308,7 @@ public class MesEnumUtil { MES_SHIFT(180, "班次"), MES_SHIFT_GROUP(190, "班组"), MES_WORK_CELL_PARAM_CFG(200, "工作单元参数配置"), - MES_PROCESS_BOM(210, "工序BOM表"); + MES_STATION_BOM(210, "工位BOM表"); private int value; private String description; @@ -1461,10 +1461,10 @@ public class MesEnumUtil { } /** - * mes 工位类型 + * mes 工位Bom 是否可重复 */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) - public enum MES_IS_REPEAT { + public enum MES_STATION_BOM_IS_REPEAT { REPEATABLE(1, "可重复"), NOT_REPEAT(2, "不可重复"); @@ -1472,7 +1472,7 @@ public class MesEnumUtil { private int value; private String description; - MES_IS_REPEAT(int value, String description) { + MES_STATION_BOM_IS_REPEAT(int value, String description) { this.value = value; this.description = description; } @@ -1486,8 +1486,8 @@ public class MesEnumUtil { } // 根据value返回枚举类型,主要在switch中使用 - public static MES_IS_REPEAT getByValue(int value) { - for (MES_IS_REPEAT mesInsertExcel : values()) { + public static MES_STATION_BOM_IS_REPEAT getByValue(int value) { + for (MES_STATION_BOM_IS_REPEAT mesInsertExcel : values()) { if (mesInsertExcel.getValue() == value) { return mesInsertExcel; } @@ -1506,6 +1506,157 @@ public class MesEnumUtil { return tmp; } + public static Integer descriptionOfValue(String description) { + Integer tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(description)) { + tmp = values()[i].value; + } + } + return tmp; + } + + } + + /** + * mes 工位Bom 是否检查 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum MES_STATION_BOM_IS_CHECK { + + REPEATABLE(1, "是"), + NOT_REPEAT(2, "否"); + + private int value; + private String description; + + MES_STATION_BOM_IS_CHECK(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static Integer descriptionOfValue(String description) { + Integer tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(description)) { + tmp = values()[i].value; + } + } + return tmp; + } + + } + + /** + * mes 工位Bom 是否投料配置 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum MES_STATION_BOM_IS_FEED { + + REPEATABLE(1, "是"), + NOT_REPEAT(2, "否"); + + private int value; + private String description; + + MES_STATION_BOM_IS_FEED(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static Integer descriptionOfValue(String description) { + Integer tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(description)) { + tmp = values()[i].value; + } + } + return tmp; + } + + } + + /** + * mes 工位Bom 是否绑定关键件 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum MES_STATION_BOM_IS_BIND_KEY { + + REPEATABLE(1, "是"), + NOT_REPEAT(2, "否"); + + private int value; + private String description; + + MES_STATION_BOM_IS_BIND_KEY(int value, String description) { + this.value = value; + this.description = description; + } + + public int getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static Integer descriptionOfValue(String description) { + Integer tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(description)) { + tmp = values()[i].value; + } + } + return tmp; + } + } /** diff --git a/modules/i3plus-pojo-mes-pcn/src/main/java/cn/estsh/i3plus/pojo/mes/pcn/model/RequestModel.java b/modules/i3plus-pojo-mes-pcn/src/main/java/cn/estsh/i3plus/pojo/mes/pcn/model/RequestModel.java index bec442b..45bf859 100644 --- a/modules/i3plus-pojo-mes-pcn/src/main/java/cn/estsh/i3plus/pojo/mes/pcn/model/RequestModel.java +++ b/modules/i3plus-pojo-mes-pcn/src/main/java/cn/estsh/i3plus/pojo/mes/pcn/model/RequestModel.java @@ -33,6 +33,8 @@ public class RequestModel { private Integer destStatus; // 目的状态 + private List orderNoList;//工单编号 + public RequestModel(List queueOrderList, Double currentSeq, Double nextSeq) { this.queueOrderList = queueOrderList; this.currentSeq = currentSeq; @@ -101,6 +103,14 @@ public class RequestModel { this.queueOrderList = queueOrderList; } + public void setOrderNoList(List orderNoList) { + this.orderNoList = orderNoList; + } + + public List getOrderNoList() { + return orderNoList; + } + public Double getCurrentSeq() { return currentSeq == null ? 0.0d : currentSeq; } diff --git a/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/bean/MesStationBom.java b/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/bean/MesStationBom.java index 233bf70..a0ab37f 100644 --- a/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/bean/MesStationBom.java +++ b/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/bean/MesStationBom.java @@ -16,7 +16,7 @@ import javax.persistence.Table; import javax.persistence.Transient; /** - * @Description :工序物料清单 + * @Description :工位物料清单 * @Reference : * @Author : jack.jia * @CreateDate : 2019-04-02 @@ -28,7 +28,7 @@ import javax.persistence.Transient; @DynamicUpdate @EqualsAndHashCode(callSuper = true) @Table(name = "MES_STATION_BOM") -@Api("工序物料清单") +@Api("工位物料清单") public class MesStationBom extends BaseBean { @Column(name = "PART_NO") @ApiParam("零件号") diff --git a/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/model/RequestModel.java b/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/model/RequestModel.java index 91b5e18..1bada8a 100644 --- a/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/model/RequestModel.java +++ b/modules/i3plus-pojo-mes/src/main/java/cn/estsh/i3plus/pojo/mes/model/RequestModel.java @@ -32,6 +32,10 @@ public class RequestModel { private Integer destStatus; // 目的状态 + private List orderNoList;//工单编号 + + private List requestBeanList;//工单下达 + public RequestModel(List queueOrderList, Double currentSeq, Double nextSeq) { this.queueOrderList = queueOrderList; this.currentSeq = currentSeq; @@ -84,6 +88,20 @@ public class RequestModel { this.queueOrderList = queueOrderList; } + public void setOrderNoList(List orderNoList) { + this.orderNoList = orderNoList; + } + + public List getOrderNoList() { + return orderNoList; + } + + public void setRequestBeanList(List requestBeanList) { + this.requestBeanList = requestBeanList; + } + + public List getRequestBeanList() { return requestBeanList; } + public Double getCurrentSeq() { return currentSeq == null ? 0.0d : currentSeq; }