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 1eb5b9d..48942c2 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 @@ -25,5 +25,6 @@ public @interface FieldAnnotation { String defaultValue() default ""; // 字段的默认值 boolean popSearch() default false; // 弹出选择对象时是否显示 EDIT_TYPE editType() default EDIT_TYPE.NONE; // 定义字段的编辑类型 + Class multiEnumClass() default Object.class; // 多选枚举的类型。 String typeName() default ""; // 定义字段类型的简单名称,对于多选关联对象时有用。 } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseRule.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseRule.java index 451a8f4..ff8a94e 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseRule.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/BaseRule.java @@ -1,6 +1,12 @@ package cn.estsh.i3plus.pojo.aps.bean; import cn.estsh.i3plus.pojo.aps.common.BaseAPS; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.MappedSuperclass; /** * @Description :规则基类 @@ -9,5 +15,11 @@ import cn.estsh.i3plus.pojo.aps.common.BaseAPS; * @CreateDate : 2019-09-17 * @Modify: **/ +@Data +@MappedSuperclass +@Api("规则参数基类") public class BaseRule extends BaseAPS { + @Column(name="CODE") + @ApiParam(value ="规则编码") + private String code; } 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 ea3296d..e155d1e 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 @@ -75,7 +75,7 @@ public class FieldInfo extends BaseCode { @Column(name="POSITION") @ApiParam(value ="位置") - private String position; + private Integer position; @Column(name="MAIN_KEY") @ApiParam(value ="主键标识") diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/MatCalcRule.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/MatCalcRule.java index 13689af..b350517 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/MatCalcRule.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/MatCalcRule.java @@ -1,9 +1,12 @@ package cn.estsh.i3plus.pojo.aps.bean; +import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation; +import cn.estsh.i3plus.pojo.aps.enums.EDIT_TYPE; import cn.estsh.i3plus.pojo.aps.enums.ORDER_DEL_LIMIT; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.Data; +import org.hibernate.annotations.Fetch; import javax.persistence.Column; import javax.persistence.Entity; @@ -39,6 +42,7 @@ public class MatCalcRule extends BaseRule { @Column(name="DEL_LIMIT") @ApiParam(value ="删除补充订单限制条件") + @FieldAnnotation(defaultValue = "NONE") private ORDER_DEL_LIMIT delLimit; @Column(name="KEEP_RELATION") @@ -55,6 +59,7 @@ public class MatCalcRule extends BaseRule { @Column(name="ASSIGN_LIMIT") @ApiParam(value ="物料分配制约") + @FieldAnnotation(editType = EDIT_TYPE.MULTI_ENUM, defaultValue = "NONE") private Integer assignLimit; } 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 125255d..fd7bd8f 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 @@ -3,6 +3,7 @@ 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.aps.common.BeanRelation; +import cn.estsh.i3plus.pojo.aps.enums.CALENDAR_WEEK; import cn.estsh.i3plus.pojo.aps.enums.EDIT_TYPE; import cn.estsh.i3plus.pojo.aps.holders.EResCalendar; import com.fasterxml.jackson.annotation.JsonBackReference; @@ -34,6 +35,7 @@ public class ResCalendar extends BaseAPS { @Column(name="WEEKS") @ApiParam(value ="星期") + @FieldAnnotation(multiEnumClass = CALENDAR_WEEK.class) private Integer weeks; @Column(name="DATES") diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/RuleDetail.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/RuleDetail.java new file mode 100644 index 0000000..7ae8cbf --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/RuleDetail.java @@ -0,0 +1,56 @@ +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.aps.common.BeanRelation; +import cn.estsh.i3plus.pojo.aps.enums.RULE_TYPE; +import cn.estsh.i3plus.pojo.aps.holders.ERuleDetail; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @Description :规则组合下的规则明细 + * @Reference : + * @Author : jason.niu + * @CreateDate : 2019-11-05 + * @Modify: + **/ +@Data +@Entity +@Table(name = "APS_RULE_DETAIL") +@Api("规则明细") +public class RuleDetail extends BaseAPS { + + @Column(name="TYPE") + @ApiParam(value ="规则类型") + private RULE_TYPE type; + + @Column(name="RULE_GROUP_ID") + @ApiParam(value ="规则组合ID") + @FieldAnnotation(property = false) + private Long ruleGroupId; + + @Column(name="RULE_ID") + @ApiParam(value ="规则配置ID") + @FieldAnnotation(property = false) + private Long ruleId; + + public RuleGroup getRuleGroup() { return BeanRelation.get(this, ERuleDetail.RuleGroup); } + + public void setRuleGroup(RuleGroup ruleGroup) { + this.ruleGroupId = ruleGroup != null ? ruleGroup.getId() : 0; + BeanRelation.set(this, ERuleDetail.RuleGroup, ruleGroup); + } + + public BaseRule getRule() { return BeanRelation.get(this, ERuleDetail.Rule); } + + public void setRule(BaseRule rule) { + this.ruleId = rule != null ? rule.getId() : 0; + BeanRelation.set(this, ERuleDetail.Rule, rule); + } +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/RuleGroup.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/RuleGroup.java index 70eb6ad..6ad589e 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/RuleGroup.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/bean/RuleGroup.java @@ -1,11 +1,17 @@ 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.ERuleGroup; +import com.fasterxml.jackson.annotation.JsonBackReference; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; import lombok.Data; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import java.util.List; /** * @Description :规则组合 @@ -19,4 +25,14 @@ import javax.persistence.Table; @Table(name = "APS_RULE_GROUP") @Api("规则组合") public class RuleGroup extends BaseAPS { + @Column(name="CODE") + @ApiParam(value ="编码") + private String code; + + @Column(name="ORDER_NUMBER") + @ApiParam(value ="序号") + private Integer orderNumber; + + @JsonBackReference + List getDetails() { return BeanRelation.list(this, ERuleGroup.Details); } } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/converter/CustomDateDeserializer.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/converter/CustomDateDeserializer.java new file mode 100644 index 0000000..20863b2 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/converter/CustomDateDeserializer.java @@ -0,0 +1,25 @@ +package cn.estsh.i3plus.pojo.aps.converter; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class CustomDateDeserializer extends JsonDeserializer { + public static SimpleDateFormat DATETIME_FORMATOR = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Override + public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { + try { + return DATETIME_FORMATOR.parse(jsonParser.getText()); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/converter/CustomDateSerializer.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/converter/CustomDateSerializer.java new file mode 100644 index 0000000..8b8780d --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/converter/CustomDateSerializer.java @@ -0,0 +1,18 @@ +package cn.estsh.i3plus.pojo.aps.converter; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class CustomDateSerializer extends JsonSerializer { + public static SimpleDateFormat DATETIME_FORMATOR = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Override + public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { + jsonGenerator.writeString(DATETIME_FORMATOR.format(date)); + } +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/CALENDAR_WEEK.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/CALENDAR_WEEK.java new file mode 100644 index 0000000..c89ca37 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/CALENDAR_WEEK.java @@ -0,0 +1,21 @@ +package cn.estsh.i3plus.pojo.aps.enums; + +public enum CALENDAR_WEEK { + MONDAY(1), // 星期一 + TUESDAY(2), // 星期二 + WEDNESDAY(4), // 星期三 + THURSDAY(8), // 星期四 + FRIDAY(16), // 星期五 + SATURDAY(32), // 星期六 + SUNDAY(64); // 星期天 + + private int _value; + + CALENDAR_WEEK(int value) { + _value = value; + } + + public int value() { + return this._value; + } +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/RULE_TYPE.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/RULE_TYPE.java new file mode 100644 index 0000000..3cfede4 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/RULE_TYPE.java @@ -0,0 +1,8 @@ +package cn.estsh.i3plus.pojo.aps.enums; + +public enum RULE_TYPE { + CANCEL_PLAN, + MAT_CALC, + HEURISTIC, + FIELD_SET +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EBaseRule.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EBaseRule.java new file mode 100644 index 0000000..9753913 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/EBaseRule.java @@ -0,0 +1,4 @@ +package cn.estsh.i3plus.pojo.aps.holders; + +public enum EBaseRule { +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/ERuleDetail.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/ERuleDetail.java new file mode 100644 index 0000000..d63f726 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/ERuleDetail.java @@ -0,0 +1,6 @@ +package cn.estsh.i3plus.pojo.aps.holders; + +public enum ERuleDetail { + RuleGroup, + Rule +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/ERuleGroup.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/ERuleGroup.java new file mode 100644 index 0000000..db3dba0 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/holders/ERuleGroup.java @@ -0,0 +1,5 @@ +package cn.estsh.i3plus.pojo.aps.holders; + +public enum ERuleGroup { + Details +} diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/model/GanttCalendarModel.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/model/GanttCalendarModel.java index f25c1f7..06540a5 100644 --- a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/model/GanttCalendarModel.java +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/model/GanttCalendarModel.java @@ -1,25 +1,23 @@ package cn.estsh.i3plus.pojo.aps.model; -import com.fasterxml.jackson.annotation.JsonFormat; +import cn.estsh.i3plus.pojo.aps.converter.CustomDateDeserializer; +import cn.estsh.i3plus.pojo.aps.converter.CustomDateSerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; -import java.util.ArrayList; import java.util.Date; -import java.util.List; @Data public class GanttCalendarModel { - @Data - public static class Block { - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date beginTime; - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date endTime; - private Boolean onDuty; - } - private Long resourceId; - private List timeBlocks = new ArrayList<>(); + private Long parent; + @JsonSerialize(using = CustomDateSerializer.class) + @JsonDeserialize(using = CustomDateDeserializer.class) + private Date start_date; + @JsonSerialize(using = CustomDateSerializer.class) + @JsonDeserialize(using = CustomDateDeserializer.class) + private Date end_date; + private String color; + private Long id; + private String text; } diff --git a/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/repository/RuleDetailRepository.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/repository/RuleDetailRepository.java new file mode 100644 index 0000000..497ea8a --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/repository/RuleDetailRepository.java @@ -0,0 +1,9 @@ +package cn.estsh.i3plus.pojo.aps.repository; + +import cn.estsh.i3plus.pojo.aps.bean.RuleDetail; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface RuleDetailRepository extends CrudRepository { +} diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/RuleDetail.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/RuleDetail.xml new file mode 100644 index 0000000..c306489 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/RuleDetail.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/modules/i3plus-pojo-aps/src/main/resources/relations/RuleGroup.xml b/modules/i3plus-pojo-aps/src/main/resources/relations/RuleGroup.xml new file mode 100644 index 0000000..bf4dafa --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/resources/relations/RuleGroup.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file