From 5c68a15d0c0ed49b5e8833e2a4290aec5b9becc6 Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 10 Oct 2019 15:28:47 +0800 Subject: [PATCH] add mrp function to aps --- .../i3plus/pojo/aps/annotation/RippleAnnotation.java | 13 +++++++++++++ .../main/java/cn/estsh/i3plus/pojo/aps/bean/Material.java | 2 ++ .../cn/estsh/i3plus/pojo/aps/bean/ProductRouting.java | 2 +- .../src/main/java/cn/estsh/i3plus/pojo/aps/bean/Work.java | 8 ++++---- .../cn/estsh/i3plus/pojo/aps/common/BeanRelation.java | 15 +++++++++++++-- .../main/java/cn/estsh/i3plus/pojo/aps/holders/EWork.java | 4 ++-- .../src/main/resources/relations/BaseOrder.xml | 4 ++-- .../src/main/resources/relations/OperResource.xml | 2 +- .../src/main/resources/relations/Operation.xml | 2 ++ .../src/main/resources/relations/StandOperation.xml | 2 -- .../i3plus-pojo-aps/src/main/resources/relations/Work.xml | 4 ++-- 11 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/RippleAnnotation.java diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/RippleAnnotation.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/RippleAnnotation.java new file mode 100644 index 0000000..9b577f0 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/annotation/RippleAnnotation.java @@ -0,0 +1,13 @@ +package cn.estsh.i3plus.pojo.aps.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface RippleAnnotation { + String[] dependence() default {}; + String method() default ""; +} 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 fc3af62..f3f1368 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.RippleAnnotation; import cn.estsh.i3plus.pojo.aps.common.BaseCode; import cn.estsh.i3plus.pojo.aps.common.BeanRelation; import cn.estsh.i3plus.pojo.aps.enums.MATERIAL_TYPE; @@ -66,6 +67,7 @@ public class Material extends BaseCode { @Column(name="LEVEL") @ApiParam(value ="低阶码") + @RippleAnnotation(dependence = {"OperOutputs.Operation.ProductRouting.Material"}, method = "calcLevel") private Integer level; @Column(name="IS_AUTO_FIX_PEGGING") diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ProductRouting.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ProductRouting.java index 7cf68ed..92c4fa2 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ProductRouting.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/ProductRouting.java @@ -24,7 +24,7 @@ import java.util.List; **/ @Data @Entity -@Table(name = "APS_PRODUCTROUTING") +@Table(name = "APS_PRODUCT_ROUTING") @Api("物料") public class ProductRouting extends BaseCode { @Column(name="VALID_START") 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 ee20430..e7c42df 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 @@ -155,13 +155,13 @@ public class Work extends BaseCode { } @JsonBackReference - public List getWorkRelationInputs() { - return BeanRelation.list(this, EWork.WorkRelationInputs); + public List getPrevRelations() { + return BeanRelation.list(this, EWork.PrevRelations); } @JsonBackReference - public List getWorkRelationOutputs() { - return BeanRelation.list(this, EWork.WorkRelationOutputs); + public List getPostRelations() { + return BeanRelation.list(this, EWork.PostRelations); } @JsonBackReference 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 85b62df..d5fb2b3 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 @@ -117,6 +117,17 @@ public class BeanRelation { return result; } + public static List listByClass(BaseBean bean, Class cls, Enum holder, Enum... args) { + List beans = new ArrayList<>(); + List nextBeans = list(bean, holder, args); + for (BaseBean nextBean : nextBeans) { + if (nextBean.getClass() == cls) { + beans.add((T)nextBean); + } + } + return beans; + } + private static void listImpl(List result, BaseBean bean, Predicate pred, Enum[] holders, int index) { if (index >= holders.length) { if (pred == null || pred.test((T)bean)) { @@ -191,7 +202,7 @@ public class BeanRelation { * @param holder */ private static void remove(BaseBean bean, Enum holder) { - if (holder == null) { + if (bean == null || holder == null) { return; } BeanInfo beanInfo = BeanInfo.getBeanInfo(bean.getClass()); @@ -215,7 +226,7 @@ public class BeanRelation { * @param relaBean */ private static void remove(BaseBean bean, Enum holder, BaseBean relaBean) { - if (bean == null) { + if (bean == null || holder == null) { return; } BeanInfo beanInfo = BeanInfo.getBeanInfo(bean.getClass()); 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 59568c1..13dee44 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 @@ -6,8 +6,8 @@ public enum EWork { WorkResources, WorkInputs, WorkOutputs, - WorkRelationInputs, - WorkRelationOutputs, + PrevRelations, + PostRelations, Operation, PlanFeedbacks } diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/BaseOrder.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/BaseOrder.xml index 3b1c1f3..e1e512a 100644 --- a/modules/i3plus-pojo-aps/src/main/resources/relations/BaseOrder.xml +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/BaseOrder.xml @@ -4,8 +4,8 @@ - + - + \ No newline at end of file diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/OperResource.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/OperResource.xml index 27afb26..ab4dd08 100644 --- a/modules/i3plus-pojo-aps/src/main/resources/relations/OperResource.xml +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/OperResource.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/Operation.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/Operation.xml index 8b21555..1371655 100644 --- a/modules/i3plus-pojo-aps/src/main/resources/relations/Operation.xml +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/Operation.xml @@ -1,5 +1,7 @@ + + diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/StandOperation.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/StandOperation.xml index 5c82b55..ead1a31 100644 --- a/modules/i3plus-pojo-aps/src/main/resources/relations/StandOperation.xml +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/StandOperation.xml @@ -1,5 +1,3 @@ - - \ No newline at end of file diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/Work.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/Work.xml index 5bb1d26..3f8ab14 100644 --- a/modules/i3plus-pojo-aps/src/main/resources/relations/Work.xml +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/Work.xml @@ -6,9 +6,9 @@ - + - +