From 2dc63a9a4e0b0e62d0ac9b643c47be2fb0d70ec5 Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 18 Oct 2019 11:15:20 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=9A=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=BB=98=E8=AE=A4=E5=9C=A8=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=202=EF=BC=9A=E4=B8=BA=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=96=B0=E5=A2=9E=E9=BB=98=E8=AE=A4=E5=80=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/aps/annotation/FieldAnnotation.java | 1 + .../cn/estsh/i3plus/pojo/aps/bean/FieldInfo.java | 4 ++ .../cn/estsh/i3plus/pojo/aps/bean/Material.java | 6 +++ .../cn/estsh/i3plus/pojo/aps/bean/ResCalendar.java | 14 +++++ .../java/cn/estsh/i3plus/pojo/aps/bean/Work.java | 2 + .../cn/estsh/i3plus/pojo/aps/bean/WorkPlan.java | 63 ++++++++++++++++++++++ .../cn/estsh/i3plus/pojo/aps/common/BaseAPS.java | 2 + .../cn/estsh/i3plus/pojo/aps/common/BeanInfo.java | 3 ++ .../estsh/i3plus/pojo/aps/common/BeanRelation.java | 4 +- .../pojo/aps/enums/RESOURCE_CHOISE_RULE.java | 4 ++ .../i3plus/pojo/aps/enums/WORK_SORT_RULE.java | 31 +++++++++++ .../i3plus/pojo/aps/holders/EResCalendar.java | 2 + .../cn/estsh/i3plus/pojo/aps/holders/EWork.java | 19 +++---- .../estsh/i3plus/pojo/aps/holders/EWorkPlan.java | 7 +++ .../pojo/aps/repository/IWorkPlanRepository.java | 9 ++++ .../src/main/resources/relations/ResCalendar.xml | 4 ++ .../src/main/resources/relations/WorkInput.xml | 12 ++--- .../src/main/resources/relations/WorkPlan.xml | 9 ++++ 18 files changed, 179 insertions(+), 17 deletions(-) create mode 100644 modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/WorkPlan.java create mode 100644 modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/RESOURCE_CHOISE_RULE.java create mode 100644 modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/WORK_SORT_RULE.java create mode 100644 modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWorkPlan.java create mode 100644 modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/repository/IWorkPlanRepository.java create mode 100644 modules/i3plus-pojo-aps/src/main/resources/relations/WorkPlan.xml diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/FieldAnnotation.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/FieldAnnotation.java index a8484af..6a0a0d2 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/FieldAnnotation.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/FieldAnnotation.java @@ -20,4 +20,5 @@ public @interface FieldAnnotation { boolean display() default true; // 是否需要在界面显示 int pric() default 2; // 对于浮点型,界面显示的精度 boolean mainkey() default false; // 是否为主键 + String defaultValue() default ""; // 字段的默认值 } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FieldInfo.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FieldInfo.java index 817df4a..be169d1 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FieldInfo.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/FieldInfo.java @@ -80,6 +80,10 @@ public class FieldInfo extends BaseCode { @ApiParam(value ="数据库类型") private JDBCType jdbcType; + @Column(name="DEFAULT_VALUE") + @ApiParam(value ="字段默认值") + private String defaultValue; + @JsonIgnore private transient Class clazz; @JsonIgnore diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Material.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Material.java index 4483e7e..46880ed 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Material.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Material.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.pojo.aps.bean; +import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation; import cn.estsh.i3plus.pojo.aps.annotation.RippleAnnotation; import cn.estsh.i3plus.pojo.aps.common.BaseCode; import cn.estsh.i3plus.pojo.aps.common.BeanRelation; @@ -31,10 +32,12 @@ import java.util.List; public class Material extends BaseCode { @Column(name="TYPE") @ApiParam(value ="类型") + @FieldAnnotation(defaultValue = "PRODUCT") private MATERIAL_TYPE type; @Column(name="PREPARE_TYPE") @ApiParam(value ="备料类型") + @FieldAnnotation(defaultValue = "SELF_MAKE") private PREPARE_TYPE prepareType; @Column(name="REPL_TYPE") @@ -68,10 +71,12 @@ public class Material extends BaseCode { @Column(name="LEVEL") @ApiParam(value ="低阶码") @RippleAnnotation(dependence = {"OperOutputs.Operation.ProductRouting.Material"}, method = "calcLevel") + @FieldAnnotation(modify = false) private Integer level; @Column(name="IS_AUTO_FIX_PEGGING") @ApiParam(value ="自动补充标识") + @FieldAnnotation(defaultValue = "true") private Boolean autoFixPegging; @Column(name="MAX_PRODUCT_BATCH") @@ -80,6 +85,7 @@ public class Material extends BaseCode { @Column(name="MIN_PRODUCT_BATCH") @ApiParam(value ="最小制造批量") + @FieldAnnotation(defaultValue = "0.0") private Double minProductBatch; @Column(name="UNIT_PRODUCT_BATCH") diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ResCalendar.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ResCalendar.java index 7edd19f..2ec0cbc 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ResCalendar.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ResCalendar.java @@ -1,6 +1,9 @@ package cn.estsh.i3plus.pojo.aps.bean; import cn.estsh.i3plus.pojo.aps.common.BaseAPS; +import cn.estsh.i3plus.pojo.aps.common.BeanRelation; +import cn.estsh.i3plus.pojo.aps.holders.EResCalendar; +import com.fasterxml.jackson.annotation.JsonBackReference; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -8,6 +11,7 @@ import lombok.Data; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import java.util.List; /** * @Description :日历 @@ -40,4 +44,14 @@ public class ResCalendar extends BaseAPS { @Column(name="PRIORITY") @ApiParam(value ="优先级") private Integer priority; + + @JsonBackReference + public List getDayShifts() { + return BeanRelation.list(this, EResCalendar.DayShifts); + } + + @JsonBackReference + public List getResources() { + return BeanRelation.list(this, EResCalendar.Resources); + } } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Work.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Work.java index a9992f3..896eb83 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Work.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/Work.java @@ -184,4 +184,6 @@ public class Work extends BaseCode { public List getPlanFeedbacks() { return BeanRelation.list(this, EWork.PlanFeedbacks); } + + public WorkPlan getWorkPlan() { return BeanRelation.get(this, EWork.WorkPlan); } } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/WorkPlan.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/WorkPlan.java new file mode 100644 index 0000000..546b590 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/WorkPlan.java @@ -0,0 +1,63 @@ +package cn.estsh.i3plus.pojo.aps.bean; + +import cn.estsh.i3plus.pojo.aps.common.BaseAPS; +import cn.estsh.i3plus.pojo.aps.common.BeanRelation; +import cn.estsh.i3plus.pojo.aps.holders.EWorkPlan; +import cn.estsh.i3plus.pojo.aps.holders.EWorkRelation; +import io.swagger.annotations.Api; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Entity; +import javax.persistence.Table; +import java.util.Date; + +/** + * @Description :工作计划 + * @Reference : + * @Author : jason.niu + * @CreateDate : 2019-10-17 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name="APS_WORK_PLAN") +@Api("工作计划") +public class WorkPlan extends BaseAPS { + private Date prevSetStart; + private Date prevSetEnd; + private String prevSetTime; + private Date produceStart; + private Date produceEnd; + private String produceTime; + private Date postSetStart; + private Date postSetEnd; + private String postSetTime; + private Date lockStart; + private Date lockEnd; + private String lockTime; + + private Date edgeTime; + + private Long workId; + private Long resourceId; + + public Work getWork() { return BeanRelation.get(this, EWorkPlan.Work); } + + public void setWork(Work work) { + this.workId = work != null ? work.getId() : 0l; + BeanRelation.set(this, EWorkPlan.Work, work); + } + + public Resource getResource() { return BeanRelation.get(this, EWorkPlan.Resource); } + + public void setResource(Resource resource) { + this.resourceId = resource != null ? resource.getId() : 0l; + BeanRelation.set(this, EWorkPlan.Resource, resource); + } +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseAPS.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseAPS.java index 8b1c8f9..e61ce60 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseAPS.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BaseAPS.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.pojo.aps.common; import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import javax.persistence.MappedSuperclass; @@ -18,6 +19,7 @@ import java.util.Map; @Data @MappedSuperclass public abstract class BaseAPS extends BaseBean { + @JsonIgnore private transient Map customFields = new HashMap<>(); public Object getCustomField(String code) { diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanInfo.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanInfo.java index de0cb5f..4c43a95 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanInfo.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanInfo.java @@ -287,6 +287,9 @@ public class BeanInfo { case STRING: cls = String.class; break; + case DURATION: + cls = DateDuration.class; + break; default: break; } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanRelation.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanRelation.java index 1eaa05e..6c7e206 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanRelation.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/common/BeanRelation.java @@ -217,7 +217,7 @@ public class BeanRelation { * @param bean * @param holder */ - private static void remove(BaseBean bean, Enum holder) { + public static void remove(BaseBean bean, Enum holder) { if (bean == null || holder == null) { return; } @@ -241,7 +241,7 @@ public class BeanRelation { * @param holder * @param relaBean */ - private static void remove(BaseBean bean, Enum holder, BaseBean relaBean) { + public static void remove(BaseBean bean, Enum holder, BaseBean relaBean) { if (bean == null || holder == null) { return; } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/RESOURCE_CHOISE_RULE.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/RESOURCE_CHOISE_RULE.java new file mode 100644 index 0000000..864cf3e --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/RESOURCE_CHOISE_RULE.java @@ -0,0 +1,4 @@ +package cn.estsh.i3plus.pojo.aps.enums; + +public enum RESOURCE_CHOISE_RULE { +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/WORK_SORT_RULE.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/WORK_SORT_RULE.java new file mode 100644 index 0000000..4984c67 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/WORK_SORT_RULE.java @@ -0,0 +1,31 @@ +package cn.estsh.i3plus.pojo.aps.enums; + +/** + * @Description :预置的工作排序规则 + * @Reference : + * @Author : jason.niu + * @CreateDate : 2019-09-17 + * @Modify: + **/ +public enum WORK_SORT_RULE { + NONE, + ORDER_DELIVERY, // 订单交货期 + ORDER_PRIORITY, // 订单优先级 + ORDER_ESTSTART, // 订单最早开始时刻 + ORDER_COUNT, // 订单数量 + ORDER_RECEIVE_DATE,// 订单接单日期 + ORDER_LET_MINUS_EST,// 订单交货期与订单最早开始时刻之差 + ORDER_PRESSURE, // 订单紧迫程度 + ORDER_SURPLUS, // 订单余裕度 + REMAIN_OPERATION_COUNT,// 残留工序数 + REMAIN_PRODUCT, // 残留生产时间 + MINSTE_PREMAIN,// 最小工序宽裕时间 + WORK_LET, // 工作最晚结束时刻 + WORK_EST, // 工作最早开始时刻 + ORDER_STOCK_RELA, // 订单物品库存量相对值 + ORDER_FIRST_WORK_START,// 订单首工作上次开始时刻 + HAVE_HIGH_WORK, // 订单中含有高级别工作 + WORK_RESOURCE_COUNT, // 工作的可用资源数 + WORK_SCHED_APPROX,// 与已排工作近视度 + TOP_ORDER_DELIVERY;// 顶层订单的交货期 +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EResCalendar.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EResCalendar.java index 86fd054..1717230 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EResCalendar.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EResCalendar.java @@ -1,4 +1,6 @@ package cn.estsh.i3plus.pojo.aps.holders; public enum EResCalendar { + DayShifts, + Resources } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWork.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWork.java index 13dee44..47da0e1 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWork.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWork.java @@ -1,13 +1,14 @@ package cn.estsh.i3plus.pojo.aps.holders; public enum EWork { - Order, - ParentWork, - WorkResources, - WorkInputs, - WorkOutputs, - PrevRelations, - PostRelations, - Operation, - PlanFeedbacks + Order, // 订单 + ParentWork, // 父工作 + WorkResources, // 工作资源 + WorkInputs, // 工作输入 + WorkOutputs, // 工作输出 + PrevRelations, // 前关联 + PostRelations, // 后关联 + Operation, // 工序 + PlanFeedbacks, // 工作计划反馈 + WorkPlan // 关联的为主资源的计划 } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWorkPlan.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWorkPlan.java new file mode 100644 index 0000000..f288a42 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EWorkPlan.java @@ -0,0 +1,7 @@ +package cn.estsh.i3plus.pojo.aps.holders; + +public enum EWorkPlan { + Work, + Resource, + AssPlans // 关联的为副资源的工作计划 +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/repository/IWorkPlanRepository.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/repository/IWorkPlanRepository.java new file mode 100644 index 0000000..a843876 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/repository/IWorkPlanRepository.java @@ -0,0 +1,9 @@ +package cn.estsh.i3plus.pojo.aps.repository; + +import cn.estsh.i3plus.pojo.aps.bean.WorkPlan; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface IWorkPlanRepository extends CrudRepository { +} diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/ResCalendar.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/ResCalendar.xml index d35accc..d2d6643 100644 --- a/modules/i3plus-pojo-aps/src/main/resources/relations/ResCalendar.xml +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/ResCalendar.xml @@ -1,3 +1,7 @@ + + + + \ No newline at end of file diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/WorkInput.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/WorkInput.xml index c1f7586..369d560 100644 --- a/modules/i3plus-pojo-aps/src/main/resources/relations/WorkInput.xml +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/WorkInput.xml @@ -1,9 +1,9 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/WorkPlan.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/WorkPlan.xml new file mode 100644 index 0000000..219bf07 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/WorkPlan.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file