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/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/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 index 78c5e4d..7ae8cbf 100644 --- 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 @@ -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.RULE_TYPE; import cn.estsh.i3plus.pojo.aps.holders.ERuleDetail; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; @@ -24,6 +25,11 @@ import javax.persistence.Table; @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) @@ -34,16 +40,16 @@ public class RuleDetail extends BaseAPS { @FieldAnnotation(property = false) private Long ruleId; - RuleGroup getRuleGroup() { return BeanRelation.get(this, ERuleDetail.RuleGroup); } + public RuleGroup getRuleGroup() { return BeanRelation.get(this, ERuleDetail.RuleGroup); } - void setRuleGroup(RuleGroup ruleGroup) { + public void setRuleGroup(RuleGroup ruleGroup) { this.ruleGroupId = ruleGroup != null ? ruleGroup.getId() : 0; BeanRelation.set(this, ERuleDetail.RuleGroup, ruleGroup); } - BaseRule getRule() { return BeanRelation.get(this, ERuleDetail.Rule); } + public BaseRule getRule() { return BeanRelation.get(this, ERuleDetail.Rule); } - void setRule(BaseRule 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/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..2457263 --- /dev/null +++ b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/enums/CALENDAR_WEEK.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.pojo.aps.enums; + +public enum CALENDAR_WEEK { + NONE(0), // 不进行任何制约 + 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/model/GanttCalendarModel.java b/modules/i3plus-pojo-aps/src/main/java/cn/estsh/i3plus/pojo/aps/model/GanttCalendarModel.java index 72aad17..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,26 +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 { - private Long resourceId; - @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; }