diff --git a/cloudutil/src/main/resources/application-util-test.yml b/cloudutil/src/main/resources/application-util-test.yml index 46e5e128..55720f8c 100644 --- a/cloudutil/src/main/resources/application-util-test.yml +++ b/cloudutil/src/main/resources/application-util-test.yml @@ -1,60 +1,60 @@ -#服务端点暴露 -management: - endpoints: - web: - exposure: - # 暴露xxx端点,如需暴露多个,用,分隔;如需暴露所有端点,用'*' - include: auditevents,caches,conditions,flyway,health,heapdump,httptrace,info,integrationgraph,jolokia,logfile,loggers,liquibase,metrics,mappings,prometheus,scheduledtasks,sessions,shutdown,threaddump,hystrix.stream -# # 不暴露哪些端点 -# exclude: env,beans,configprops - endpoint: - health: - # 是否展示健康检查详情 - show-details: always - health: - redis: - enabled: false -#eureka注册 -eureka: - client: - service-url: - # 指定eureka server通信地址,注意/eureka/小尾巴不能少 - #defaultZone: http://admin:admin@peer1:8761/eureka/,http://admin:admin@peer2:8762/eureka/ - defaultZone: http://admin:admin@49.233.89.188:7010/eureka/ - instance: - # 是否注册IP到eureka server,如不指定或设为false,那就回注册主机名到eureka server - prefer-ip-address: true - metadata-map: - management: - context-path: ${server.servlet.context-path:}/actuator - home-page-url-path: ${server.servlet.context-path:}/ - status-page-url-path: ${server.servlet.context-path:}/actuator/info - health-check-url-path: ${server.servlet.context-path:}/actuator/health -feign: - client: - config: - default: - connectTime: 5000 - readTimeout: 5000 - # NONE【性能最佳,适用于生产】:不记录任何日志(默认值)。 - # BASIC【适用于生产环境追踪问题】:仅记录请求方法、URL、响应状态代码以及执行时间。 - # HEADERS:记录BASIC级别的基础上,记录请求和响应的header。 - # FULL【比较适用于开发及测试环境定位问题】:记录请求和响应的header、body和元数据 - loggerLevel: basic - hystrix: - enabled: true -# sleuth -logging: - level: - root: info - org.springframework.cloud.sleuth: DEBUG -spring: -# zipkin: -# base-url: http://49.233.89.188:9411 -# sleuth: -# sampler: -# # 采样率,模式0.1,也就是10%,为了便于观察效果,改为1.0,也就是100%。生产环境建议保持默认。 -# probability: 1.0 - cloud: - inetutils: +#服务端点暴露 +management: + endpoints: + web: + exposure: + # 暴露xxx端点,如需暴露多个,用,分隔;如需暴露所有端点,用'*' + include: auditevents,caches,conditions,flyway,health,heapdump,httptrace,info,integrationgraph,jolokia,logfile,loggers,liquibase,metrics,mappings,prometheus,scheduledtasks,sessions,shutdown,threaddump,hystrix.stream +# # 不暴露哪些端点 +# exclude: env,beans,configprops + endpoint: + health: + # 是否展示健康检查详情 + show-details: always + health: + redis: + enabled: false +#eureka注册 +eureka: + client: + service-url: + # 指定eureka server通信地址,注意/eureka/小尾巴不能少 + #defaultZone: http://admin:admin@peer1:8761/eureka/,http://admin:admin@peer2:8762/eureka/ + defaultZone: http://admin:admin@192.168.0.99:7010/eureka/ + instance: + # 是否注册IP到eureka server,如不指定或设为false,那就回注册主机名到eureka server + prefer-ip-address: true + metadata-map: + management: + context-path: ${server.servlet.context-path:}/actuator + home-page-url-path: ${server.servlet.context-path:}/ + status-page-url-path: ${server.servlet.context-path:}/actuator/info + health-check-url-path: ${server.servlet.context-path:}/actuator/health +feign: + client: + config: + default: + connectTime: 5000 + readTimeout: 5000 + # NONE【性能最佳,适用于生产】:不记录任何日志(默认值)。 + # BASIC【适用于生产环境追踪问题】:仅记录请求方法、URL、响应状态代码以及执行时间。 + # HEADERS:记录BASIC级别的基础上,记录请求和响应的header。 + # FULL【比较适用于开发及测试环境定位问题】:记录请求和响应的header、body和元数据 + loggerLevel: basic + hystrix: + enabled: true +# sleuth +logging: + level: + root: info + org.springframework.cloud.sleuth: DEBUG +spring: +# zipkin: +# base-url: http://49.233.89.188:9411 +# sleuth: +# sampler: +# # 采样率,模式0.1,也就是10%,为了便于观察效果,改为1.0,也就是100%。生产环境建议保持默认。 +# probability: 1.0 + cloud: + inetutils: ignored-interfaces: ['VMware.*'] \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/ChartDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/ChartDto.java new file mode 100644 index 00000000..7125b550 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/ChartDto.java @@ -0,0 +1,26 @@ +package com.ccsens.tall.bean.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +public class ChartDto { + + @Data + public static class ProjectTrendDto{ + @NotNull + @ApiModelProperty("项目id") + private Long projectId; + @NotEmpty + @ApiModelProperty("开始日期") + private String start; + @NotEmpty + @ApiModelProperty("结束日期") + private String end; + @ApiModelProperty("角色id") + private Long roleId; + } +} diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/LabelDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/LabelDto.java index 29c43506..c448d2f1 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/LabelDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/LabelDto.java @@ -13,11 +13,12 @@ public class LabelDto { @Data @ApiModel("添加标签") public static class AddLabel{ - @NotEmpty + @NotEmpty(message = "请输入标签名") @ApiModelProperty("标签名") private String name; @ApiModelProperty("标签code") private String code; + @NotEmpty(message = "请选择颜色") @ApiModelProperty("颜色") private String color; @ApiModelProperty("备注信息") @@ -57,7 +58,7 @@ public class LabelDto { @NotNull @ApiModelProperty("项目id") private Long projectId; - @ApiModelProperty("项目id") + @ApiModelProperty("标签id") private List labelList; } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java index 87f44a95..810af30c 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java @@ -30,6 +30,8 @@ public class ProShow implements Serializable { private Byte selectTaskType; + private String detailPath; + private static final long serialVersionUID = 1L; public Long getId() { @@ -136,6 +138,14 @@ public class ProShow implements Serializable { this.selectTaskType = selectTaskType; } + public String getDetailPath() { + return detailPath; + } + + public void setDetailPath(String detailPath) { + this.detailPath = detailPath == null ? null : detailPath.trim(); + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -155,6 +165,7 @@ public class ProShow implements Serializable { sb.append(", duration=").append(duration); sb.append(", showShortcuts=").append(showShortcuts); sb.append(", selectTaskType=").append(selectTaskType); + sb.append(", detailPath=").append(detailPath); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java index 81ecc10d..099806e4 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java @@ -894,6 +894,76 @@ public class ProShowExample { addCriterion("select_task_type not between", value1, value2, "selectTaskType"); return (Criteria) this; } + + public Criteria andDetailPathIsNull() { + addCriterion("detail_path is null"); + return (Criteria) this; + } + + public Criteria andDetailPathIsNotNull() { + addCriterion("detail_path is not null"); + return (Criteria) this; + } + + public Criteria andDetailPathEqualTo(String value) { + addCriterion("detail_path =", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathNotEqualTo(String value) { + addCriterion("detail_path <>", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathGreaterThan(String value) { + addCriterion("detail_path >", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathGreaterThanOrEqualTo(String value) { + addCriterion("detail_path >=", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathLessThan(String value) { + addCriterion("detail_path <", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathLessThanOrEqualTo(String value) { + addCriterion("detail_path <=", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathLike(String value) { + addCriterion("detail_path like", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathNotLike(String value) { + addCriterion("detail_path not like", value, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathIn(List values) { + addCriterion("detail_path in", values, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathNotIn(List values) { + addCriterion("detail_path not in", values, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathBetween(String value1, String value2) { + addCriterion("detail_path between", value1, value2, "detailPath"); + return (Criteria) this; + } + + public Criteria andDetailPathNotBetween(String value1, String value2) { + addCriterion("detail_path not between", value1, value2, "detailPath"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java index d42802ac..bc03deca 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java @@ -1,95 +1,106 @@ -package com.ccsens.tall.bean.po; - -import java.io.Serializable; -import java.util.Date; - -public class SysPlugin implements Serializable { - private Long id; - - private String name; - - private String description; - - private Byte scene; - - private Date createdAt; - - private Date updatedAt; - - private Byte recStatus; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name == null ? null : name.trim(); - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description == null ? null : description.trim(); - } - - public Byte getScene() { - return scene; - } - - public void setScene(Byte scene) { - this.scene = scene; - } - - public Date getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Date createdAt) { - this.createdAt = createdAt; - } - - public Date getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Date updatedAt) { - this.updatedAt = updatedAt; - } - - public Byte getRecStatus() { - return recStatus; - } - - public void setRecStatus(Byte recStatus) { - this.recStatus = recStatus; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", scene=").append(scene); - sb.append(", createdAt=").append(createdAt); - sb.append(", updatedAt=").append(updatedAt); - sb.append(", recStatus=").append(recStatus); - sb.append("]"); - return sb.toString(); - } +package com.ccsens.tall.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class SysPlugin implements Serializable { + private Long id; + + private String name; + + private String description; + + private Byte scene; + + private Date createdAt; + + private Date updatedAt; + + private Byte recStatus; + + private Byte showType; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description == null ? null : description.trim(); + } + + public Byte getScene() { + return scene; + } + + public void setScene(Byte scene) { + this.scene = scene; + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + public Byte getRecStatus() { + return recStatus; + } + + public void setRecStatus(Byte recStatus) { + this.recStatus = recStatus; + } + + public Byte getShowType() { + return showType; + } + + public void setShowType(Byte showType) { + this.showType = showType; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", name=").append(name); + sb.append(", description=").append(description); + sb.append(", scene=").append(scene); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append(", showType=").append(showType); + sb.append("]"); + return sb.toString(); + } } \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java index f7f2f57b..21985a1d 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java @@ -1,641 +1,701 @@ -package com.ccsens.tall.bean.po; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class SysPluginExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public SysPluginExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andSceneIsNull() { - addCriterion("scene is null"); - return (Criteria) this; - } - - public Criteria andSceneIsNotNull() { - addCriterion("scene is not null"); - return (Criteria) this; - } - - public Criteria andSceneEqualTo(Byte value) { - addCriterion("scene =", value, "scene"); - return (Criteria) this; - } - - public Criteria andSceneNotEqualTo(Byte value) { - addCriterion("scene <>", value, "scene"); - return (Criteria) this; - } - - public Criteria andSceneGreaterThan(Byte value) { - addCriterion("scene >", value, "scene"); - return (Criteria) this; - } - - public Criteria andSceneGreaterThanOrEqualTo(Byte value) { - addCriterion("scene >=", value, "scene"); - return (Criteria) this; - } - - public Criteria andSceneLessThan(Byte value) { - addCriterion("scene <", value, "scene"); - return (Criteria) this; - } - - public Criteria andSceneLessThanOrEqualTo(Byte value) { - addCriterion("scene <=", value, "scene"); - return (Criteria) this; - } - - public Criteria andSceneIn(List values) { - addCriterion("scene in", values, "scene"); - return (Criteria) this; - } - - public Criteria andSceneNotIn(List values) { - addCriterion("scene not in", values, "scene"); - return (Criteria) this; - } - - public Criteria andSceneBetween(Byte value1, Byte value2) { - addCriterion("scene between", value1, value2, "scene"); - return (Criteria) this; - } - - public Criteria andSceneNotBetween(Byte value1, Byte value2) { - addCriterion("scene not between", value1, value2, "scene"); - return (Criteria) this; - } - - public Criteria andCreatedAtIsNull() { - addCriterion("created_at is null"); - return (Criteria) this; - } - - public Criteria andCreatedAtIsNotNull() { - addCriterion("created_at is not null"); - return (Criteria) this; - } - - public Criteria andCreatedAtEqualTo(Date value) { - addCriterion("created_at =", value, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtNotEqualTo(Date value) { - addCriterion("created_at <>", value, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtGreaterThan(Date value) { - addCriterion("created_at >", value, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { - addCriterion("created_at >=", value, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtLessThan(Date value) { - addCriterion("created_at <", value, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtLessThanOrEqualTo(Date value) { - addCriterion("created_at <=", value, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtIn(List values) { - addCriterion("created_at in", values, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtNotIn(List values) { - addCriterion("created_at not in", values, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtBetween(Date value1, Date value2) { - addCriterion("created_at between", value1, value2, "createdAt"); - return (Criteria) this; - } - - public Criteria andCreatedAtNotBetween(Date value1, Date value2) { - addCriterion("created_at not between", value1, value2, "createdAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtIsNull() { - addCriterion("updated_at is null"); - return (Criteria) this; - } - - public Criteria andUpdatedAtIsNotNull() { - addCriterion("updated_at is not null"); - return (Criteria) this; - } - - public Criteria andUpdatedAtEqualTo(Date value) { - addCriterion("updated_at =", value, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtNotEqualTo(Date value) { - addCriterion("updated_at <>", value, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtGreaterThan(Date value) { - addCriterion("updated_at >", value, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { - addCriterion("updated_at >=", value, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtLessThan(Date value) { - addCriterion("updated_at <", value, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { - addCriterion("updated_at <=", value, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtIn(List values) { - addCriterion("updated_at in", values, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtNotIn(List values) { - addCriterion("updated_at not in", values, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtBetween(Date value1, Date value2) { - addCriterion("updated_at between", value1, value2, "updatedAt"); - return (Criteria) this; - } - - public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { - addCriterion("updated_at not between", value1, value2, "updatedAt"); - return (Criteria) this; - } - - public Criteria andRecStatusIsNull() { - addCriterion("rec_status is null"); - return (Criteria) this; - } - - public Criteria andRecStatusIsNotNull() { - addCriterion("rec_status is not null"); - return (Criteria) this; - } - - public Criteria andRecStatusEqualTo(Byte value) { - addCriterion("rec_status =", value, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusNotEqualTo(Byte value) { - addCriterion("rec_status <>", value, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusGreaterThan(Byte value) { - addCriterion("rec_status >", value, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { - addCriterion("rec_status >=", value, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusLessThan(Byte value) { - addCriterion("rec_status <", value, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusLessThanOrEqualTo(Byte value) { - addCriterion("rec_status <=", value, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusIn(List values) { - addCriterion("rec_status in", values, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusNotIn(List values) { - addCriterion("rec_status not in", values, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusBetween(Byte value1, Byte value2) { - addCriterion("rec_status between", value1, value2, "recStatus"); - return (Criteria) this; - } - - public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { - addCriterion("rec_status not between", value1, value2, "recStatus"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } +package com.ccsens.tall.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class SysPluginExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SysPluginExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andSceneIsNull() { + addCriterion("scene is null"); + return (Criteria) this; + } + + public Criteria andSceneIsNotNull() { + addCriterion("scene is not null"); + return (Criteria) this; + } + + public Criteria andSceneEqualTo(Byte value) { + addCriterion("scene =", value, "scene"); + return (Criteria) this; + } + + public Criteria andSceneNotEqualTo(Byte value) { + addCriterion("scene <>", value, "scene"); + return (Criteria) this; + } + + public Criteria andSceneGreaterThan(Byte value) { + addCriterion("scene >", value, "scene"); + return (Criteria) this; + } + + public Criteria andSceneGreaterThanOrEqualTo(Byte value) { + addCriterion("scene >=", value, "scene"); + return (Criteria) this; + } + + public Criteria andSceneLessThan(Byte value) { + addCriterion("scene <", value, "scene"); + return (Criteria) this; + } + + public Criteria andSceneLessThanOrEqualTo(Byte value) { + addCriterion("scene <=", value, "scene"); + return (Criteria) this; + } + + public Criteria andSceneIn(List values) { + addCriterion("scene in", values, "scene"); + return (Criteria) this; + } + + public Criteria andSceneNotIn(List values) { + addCriterion("scene not in", values, "scene"); + return (Criteria) this; + } + + public Criteria andSceneBetween(Byte value1, Byte value2) { + addCriterion("scene between", value1, value2, "scene"); + return (Criteria) this; + } + + public Criteria andSceneNotBetween(Byte value1, Byte value2) { + addCriterion("scene not between", value1, value2, "scene"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNull() { + addCriterion("created_at is null"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNotNull() { + addCriterion("created_at is not null"); + return (Criteria) this; + } + + public Criteria andCreatedAtEqualTo(Date value) { + addCriterion("created_at =", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotEqualTo(Date value) { + addCriterion("created_at <>", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThan(Date value) { + addCriterion("created_at >", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("created_at >=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThan(Date value) { + addCriterion("created_at <", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThanOrEqualTo(Date value) { + addCriterion("created_at <=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtIn(List values) { + addCriterion("created_at in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotIn(List values) { + addCriterion("created_at not in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtBetween(Date value1, Date value2) { + addCriterion("created_at between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotBetween(Date value1, Date value2) { + addCriterion("created_at not between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNull() { + addCriterion("updated_at is null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNotNull() { + addCriterion("updated_at is not null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtEqualTo(Date value) { + addCriterion("updated_at =", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotEqualTo(Date value) { + addCriterion("updated_at <>", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThan(Date value) { + addCriterion("updated_at >", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("updated_at >=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThan(Date value) { + addCriterion("updated_at <", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { + addCriterion("updated_at <=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIn(List values) { + addCriterion("updated_at in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotIn(List values) { + addCriterion("updated_at not in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtBetween(Date value1, Date value2) { + addCriterion("updated_at between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { + addCriterion("updated_at not between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNull() { + addCriterion("rec_status is null"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNotNull() { + addCriterion("rec_status is not null"); + return (Criteria) this; + } + + public Criteria andRecStatusEqualTo(Byte value) { + addCriterion("rec_status =", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotEqualTo(Byte value) { + addCriterion("rec_status <>", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThan(Byte value) { + addCriterion("rec_status >", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("rec_status >=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThan(Byte value) { + addCriterion("rec_status <", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThanOrEqualTo(Byte value) { + addCriterion("rec_status <=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusIn(List values) { + addCriterion("rec_status in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotIn(List values) { + addCriterion("rec_status not in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusBetween(Byte value1, Byte value2) { + addCriterion("rec_status between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { + addCriterion("rec_status not between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andShowTypeIsNull() { + addCriterion("show_type is null"); + return (Criteria) this; + } + + public Criteria andShowTypeIsNotNull() { + addCriterion("show_type is not null"); + return (Criteria) this; + } + + public Criteria andShowTypeEqualTo(Byte value) { + addCriterion("show_type =", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotEqualTo(Byte value) { + addCriterion("show_type <>", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeGreaterThan(Byte value) { + addCriterion("show_type >", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeGreaterThanOrEqualTo(Byte value) { + addCriterion("show_type >=", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeLessThan(Byte value) { + addCriterion("show_type <", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeLessThanOrEqualTo(Byte value) { + addCriterion("show_type <=", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeIn(List values) { + addCriterion("show_type in", values, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotIn(List values) { + addCriterion("show_type not in", values, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeBetween(Byte value1, Byte value2) { + addCriterion("show_type between", value1, value2, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotBetween(Byte value1, Byte value2) { + addCriterion("show_type not between", value1, value2, "showType"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } } \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/ChartVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/ChartVo.java new file mode 100644 index 00000000..a449422d --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/ChartVo.java @@ -0,0 +1,114 @@ +package com.ccsens.tall.bean.vo; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class ChartVo { + + @Data + public static class ExecutorChart{ + @ApiModelProperty("查询类型") + private int type; + @ApiModelProperty("查询类型") + private List<__ExecutorChart> executorChart; + } + @Data + public static class __ExecutorChart{ + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("角色名") + private String roleName; + @ApiModelProperty("value") + private Integer value; + } + + + @Data + public static class CompleteTaskNum{ + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("角色名") + private String roleName; + @ApiModelProperty("完成数量") + private Integer value; + @ApiModelProperty("任务总数") + private Integer total; + } + + + @Data + public static class ProjectTrendVo { + @ApiModelProperty("日期") + private String date; + @ApiModelProperty("当天任务总数") + private Integer total; + @ApiModelProperty("当天已完成的任务数") + private Integer completed; + } + + @Data + public static class ProjectOverview { + @ApiModelProperty("任务总数") + private Integer total; + @ApiModelProperty("已完成的任务数") + private Integer completed; + @ApiModelProperty("未完成的任务数") + private Integer undone; + @ApiModelProperty("按时完成") + private Integer completedOnTime; + @ApiModelProperty("逾期完成") + private Integer completedOverTime; + @ApiModelProperty("今天任务总数") + private Integer today; + @ApiModelProperty("今日已完成") + private Integer todayCompleted; + @ApiModelProperty("今日未完成") + private Integer todayUndone; + + public Integer getUndone(){ + if(ObjectUtil.isNotNull(total) && ObjectUtil.isNotNull(completed)){ + return total - completed; + } + return null; + } + + public Integer getCompletedOverTime(){ + if(ObjectUtil.isNotNull(completed) && ObjectUtil.isNotNull(completedOnTime)){ + return completed - completedOnTime; + } + return null; + } + + public Integer getTodayUndone(){ + if(ObjectUtil.isNotNull(today) && ObjectUtil.isNotNull(todayCompleted)){ + return today - todayCompleted; + } + return null; + } + } + + @Data + public static class BurnoutFigure { + @ApiModelProperty("日期 MM-DD") + private String date; + @ApiModelProperty("理想的剩余任务数,回出现小数 保留1位小数") + private BigDecimal ideal; + @ApiModelProperty("计划的剩余任务数") + private Integer planned; + @ApiModelProperty("实际的剩余任务数") + private Integer realistic; + @JsonIgnore//任务总数 + private Integer total; + @JsonIgnore//每天的任务数 + private Integer totalDay; + @JsonIgnore//每天完成的任务数量 + private Integer completed; + } +} diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java index 6551962b..09f6c28d 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java @@ -59,6 +59,8 @@ public class PluginVo { private Long commentTime; @ApiModelProperty("评论内容") private String description; + @ApiModelProperty("是否属于自己的评论,0否 1是") + private int mine; } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java index 277142b4..8e57cd2b 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java @@ -96,9 +96,11 @@ public class ProjectVo { @ApiModelProperty("是否展示MVP 0:不展示 1:展示") private int showMvp = 1; @JsonIgnore//0日程,1天,2周,3月 - private int selectTaskType = 0; + private int selectTaskType = 1; @ApiModelProperty("查询任务类型") private String selectType; + @ApiModelProperty("第三列展示页面的路径") + private String detailPath = "/project"; public String getSelectType(){ if(ObjectUtil.isNull(selectTaskType)) { diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java index e15df8c7..d6c4218d 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java @@ -96,12 +96,6 @@ public class TaskVo { private Long endTime; @ApiModelProperty("时长") private Long duration; -// @ApiModelProperty("显示的日期格式") -// private String showTimeFormat; -// @ApiModelProperty("是否展示快捷方式(交付物硬件按钮)0不展示 1展示") -// private int showShortcuts; -// @ApiModelProperty("是否展示添加任务的按钮 0不展示 1展示") -// private int createTask; @ApiModelProperty("循环周期") private String cycle; @ApiModelProperty("跳转模式 0自动,1延迟,2手动") @@ -120,6 +114,8 @@ public class TaskVo { private BigDecimal money; @ApiModelProperty("状态:0-未开始,1-进行中,2-已完成") private int process; + @ApiModelProperty("子项目id") + private Long subProjectId; @ApiModelProperty("服务器时间") private Long serverTime; @ApiModelProperty("任务类型 0普通任务 1虚拟任务") @@ -213,6 +209,8 @@ public class TaskVo { private String name; @ApiModelProperty("插件描述") private String description; + @ApiModelProperty("显示分类") + private String showType; @JsonIgnore private Long roleId; } diff --git a/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java b/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java index 0d363e44..8bcbf634 100644 --- a/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java +++ b/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java @@ -154,7 +154,8 @@ public class SpringConfig implements WebMvcConfigurer { .addPathPatterns("/members/**") .addPathPatterns("/templates/**") .addPathPatterns("/hardware/**") - .addPathPatterns("/labels/**"); + .addPathPatterns("/labels/**") + .addPathPatterns("/charts/**"); //super.addInterceptors(registry); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProTaskCommentDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProTaskCommentDao.java index af6df15f..95293cce 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProTaskCommentDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProTaskCommentDao.java @@ -9,6 +9,6 @@ import java.util.List; @Repository public interface ProTaskCommentDao extends ProTaskCommentMapper { - List getCommentByTaskId(@Param("taskId") Long taskId); + List getCommentByTaskId(@Param("userId")Long userId,@Param("taskId") Long taskId); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/SysLabelDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/SysLabelDao.java index 21c3fecf..064794c6 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/SysLabelDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/SysLabelDao.java @@ -9,7 +9,7 @@ import java.util.List; @Repository public interface SysLabelDao extends SysLabelMapper { - List selectLabelByUserId(@Param("userId")Long userId); + List selectLabelByUserId(@Param("userId")Long userId,@Param("key")String key); - List selectLabelByProjectId(@Param("projectId")Long projectId); + List selectLabelByProjectId(@Param("userId")Long userId,@Param("projectId")Long projectId); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java index dad2aa8e..c0d62698 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java @@ -1,6 +1,7 @@ package com.ccsens.tall.persist.dao; import com.ccsens.tall.bean.po.SysProject; +import com.ccsens.tall.bean.vo.ChartVo; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.persist.mapper.SysProjectMapper; import org.apache.ibatis.annotations.Param; @@ -22,5 +23,21 @@ public interface SysProjectDao extends SysProjectMapper{ List selectByLabelName(@Param("userId")Long currentUserId, @Param("labelName")String labelName); - List selectRelevanceProject(@Param("labelName")Long projectId); + List selectRelevanceProject(@Param("projectId")Long projectId); + + List getExecutorChart(@Param("projectId")Long projectId,@Param("type")Integer type); + + List getCompleteTaskByTime(@Param("projectId")Long projectId); + + List getProjectTrend(@Param("projectId")Long projectId, @Param("start")Long start, @Param("end")Long end, @Param("roleId")Long roleId); + + ChartVo.ProjectOverview getOverview(@Param("projectId")Long projectId); + + List getBurnoutFigure(@Param("projectId")Long projectId, + @Param("start")Long start, @Param("end")Long end, + @Param("roleId")Long roleIdm,@Param("type") Integer type); + + Integer getTaskTotalByProjectId(@Param("projectId")Long projectId, @Param("start")Long start, @Param("end")Long end, @Param("roleId")Long roleId); + + ChartVo.ProjectOverview getOverviewByToDay(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/mapper/SysPluginMapper.java b/tall/src/main/java/com/ccsens/tall/persist/mapper/SysPluginMapper.java index 8e39c537..0d759fec 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/mapper/SysPluginMapper.java +++ b/tall/src/main/java/com/ccsens/tall/persist/mapper/SysPluginMapper.java @@ -1,31 +1,30 @@ -package com.ccsens.tall.persist.mapper; - -import com.ccsens.tall.bean.po.SysPlugin; -import com.ccsens.tall.bean.po.SysPluginExample; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface SysPluginMapper { - long countByExample(SysPluginExample example); - - int deleteByExample(SysPluginExample example); - - int deleteByPrimaryKey(Long id); - - int insert(SysPlugin record); - - int insertSelective(SysPlugin record); - - List selectByExample(SysPluginExample example); - - SysPlugin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") SysPlugin record, @Param("example") SysPluginExample example); - - int updateByExample(@Param("record") SysPlugin record, @Param("example") SysPluginExample example); - - int updateByPrimaryKeySelective(SysPlugin record); - - int updateByPrimaryKey(SysPlugin record); +package com.ccsens.tall.persist.mapper; + +import com.ccsens.tall.bean.po.SysPlugin; +import com.ccsens.tall.bean.po.SysPluginExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface SysPluginMapper { + long countByExample(SysPluginExample example); + + int deleteByExample(SysPluginExample example); + + int deleteByPrimaryKey(Long id); + + int insert(SysPlugin record); + + int insertSelective(SysPlugin record); + + List selectByExample(SysPluginExample example); + + SysPlugin selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") SysPlugin record, @Param("example") SysPluginExample example); + + int updateByExample(@Param("record") SysPlugin record, @Param("example") SysPluginExample example); + + int updateByPrimaryKeySelective(SysPlugin record); + + int updateByPrimaryKey(SysPlugin record); } \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/service/ChartService.java b/tall/src/main/java/com/ccsens/tall/service/ChartService.java new file mode 100644 index 00000000..b0fa3c0c --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/service/ChartService.java @@ -0,0 +1,146 @@ +package com.ccsens.tall.service; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.ccsens.tall.bean.dto.ChartDto; +import com.ccsens.tall.bean.po.SysProject; +import com.ccsens.tall.bean.vo.ChartVo; +import com.ccsens.tall.persist.dao.SysProjectDao; +import com.ccsens.util.CodeEnum; +import com.ccsens.util.exception.BaseException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; + +@Service +public class ChartService implements IChartService{ + @Autowired + private SysProjectDao sysProjectDao; + + /** + * 任务执行者分布图 + * @param currentUserId + * @param type + * @return + */ + @Override + public ChartVo.ExecutorChart getExecutorChart(Long currentUserId,Long projectId,Integer type) { + SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId); + if(ObjectUtil.isNull(sysProject)){ + throw new BaseException(CodeEnum.NOT_PROJECT); + } + List executorChartList = sysProjectDao.getExecutorChart(projectId,type); + ChartVo.ExecutorChart executorChart = new ChartVo.ExecutorChart(); + executorChart.setType(type); + executorChart.setExecutorChart(executorChartList); + return executorChart; + } + + /** + * 计划时间内完成任务 + * @param currentUserId + * @param projectId + * @return + */ + @Override + public List getCompleteTaskByTime(Long currentUserId, Long projectId) { + //查找所有角色及任务数量 + List completeTaskNumList = sysProjectDao.getCompleteTaskByTime(projectId); + return completeTaskNumList; + } + + /** + * 项目进展趋势图 + * @param currentUserId + * @param projectTrendDto + * @return + */ + @Override + public List getProjectTrend(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto) { + Long start = DateUtil.parse(projectTrendDto.getStart()).getTime(); + Long end = DateUtil.parse(projectTrendDto.getEnd()).getTime(); + List projectTrendVoList = sysProjectDao.getProjectTrend(projectTrendDto.getProjectId(),start,end,projectTrendDto.getRoleId()); + return projectTrendVoList; + } + + /** + * 概览报表 + * @param currentUserId + * @param projectId + * @return + */ + @Override + public ChartVo.ProjectOverview getOverview(Long currentUserId, Long projectId) throws Exception { + //获取全部的数据 + ChartVo.ProjectOverview projectOverview = sysProjectDao.getOverview(projectId); + //获取当天零点和二十四点的时间 + Long startTime = DateUtil.beginOfDay(new Date()).getTime(); + Long endTime = DateUtil.endOfDay(new Date()).getTime(); + //获取当天的数据 + ChartVo.ProjectOverview projectOverview1 = sysProjectDao.getOverviewByToDay(projectId,startTime,endTime); + //将数据整合在一起 + projectOverview.setTodayCompleted(projectOverview1.getTodayCompleted() == null ? 0 : projectOverview1.getTodayCompleted()); + projectOverview.setToday(projectOverview1.getToday()); + return projectOverview; + } + + /** + * 燃尽图 + * @param currentUserId + * @param projectTrendDto + * @return + */ + @Override + public List getBurnoutFigure(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto) { + Long start = DateUtil.parse(projectTrendDto.getStart()).getTime(); + Long end = DateUtil.parse(projectTrendDto.getEnd()).getTime(); + //获取任务总数(如果type传1 查询规定条件内的任务总数,若传null,则按天分组查找) + List totalList = sysProjectDao.getBurnoutFigure(projectTrendDto.getProjectId(),start,end,projectTrendDto.getRoleId(),1); + //理想 + AtomicReference idealTotal = new AtomicReference<>(); + BigDecimal idealTotalInt = new BigDecimal(0); + //计划 + AtomicInteger plannedTotal = new AtomicInteger(); + //实际 + AtomicInteger realTotal = new AtomicInteger(); + if(CollectionUtil.isNotEmpty(totalList)) { + idealTotal.set(BigDecimal.valueOf(totalList.get(0).getTotalDay())); + idealTotalInt = BigDecimal.valueOf(totalList.get(0).getTotalDay()); + plannedTotal.set(totalList.get(0).getTotalDay()); + realTotal.set(totalList.get(0).getTotalDay()); + } + //按天获取信息 + List burnoutFigureList = sysProjectDao.getBurnoutFigure(projectTrendDto.getProjectId(),start,end,projectTrendDto.getRoleId(),null); + if(CollectionUtil.isNotEmpty(burnoutFigureList)){ + //每天理想完成数,总数/天数=每天理想完成数 + BigDecimal idealFinish = idealTotalInt.divide(BigDecimal.valueOf(burnoutFigureList.size()),1,BigDecimal.ROUND_HALF_UP); + burnoutFigureList.forEach(burnoutFigure -> { + //理想剩余数量 + idealTotal.set(idealTotal.get().subtract(idealFinish)); + if(idealTotal.get().compareTo(BigDecimal.valueOf(0)) < 1){ + burnoutFigure.setIdeal(BigDecimal.valueOf(0)); + }else { + burnoutFigure.setIdeal(idealTotal.get()); + } + //计划剩余数量 + plannedTotal.set(plannedTotal.get() - burnoutFigure.getTotalDay()); + burnoutFigure.setPlanned(plannedTotal.get()); + //实际剩余数量 + if(ObjectUtil.isNotNull(burnoutFigure.getCompleted())){ + realTotal.set(realTotal.get() - burnoutFigure.getCompleted()); + burnoutFigure.setRealistic(realTotal.get()); + }else{ + burnoutFigure.setRealistic(realTotal.get()); + } + }); + } + return burnoutFigureList; + } +} diff --git a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java index 76297eb9..709c2db2 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java @@ -15,8 +15,6 @@ import com.ccsens.util.cron.CronConstant; import com.ccsens.util.cron.NatureToDate; import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; -import net.sf.jsqlparser.expression.LongValue; -import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; @@ -28,8 +26,6 @@ import org.springframework.transaction.annotation.Transactional; import java.io.FileInputStream; import java.io.InputStream; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.*; @Slf4j @@ -690,13 +686,18 @@ public class ExcelService implements IExcelService { taskDetail.setAllMember((byte) 1); //子项目 if (StrUtil.isNotEmpty(subProject)) { + subProject = StringUtil.replaceComma(subProject); + List projectId = StringUtil.extractMessage(subProject); + if(CollectionUtil.isNotEmpty(projectId)) { + Long projectId1 = Long.valueOf(projectId.get(0)); // SysProject project = projectService.selectByNameAndUserId(subProject, currentUserId); - SysProject project = sysProjectDao.selectByPrimaryKey(Long.valueOf(subProject)); - if (ObjectUtil.isNotNull(project)) { - taskDetail.setSubProjectId(project.getId()); - taskDetail.setSubProject(project.getName()); - project.setParentTaskId(taskDetail.getId()); - projectService.updateProject(project); + SysProject project = sysProjectDao.selectByPrimaryKey(projectId1); + if (ObjectUtil.isNotNull(project)) { + taskDetail.setSubProjectId(project.getId()); + taskDetail.setSubProject(project.getName()); + project.setParentTaskId(taskDetail.getId()); + projectService.updateProject(project); + } } } //负责人 diff --git a/tall/src/main/java/com/ccsens/tall/service/IChartService.java b/tall/src/main/java/com/ccsens/tall/service/IChartService.java new file mode 100644 index 00000000..852ca89f --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/service/IChartService.java @@ -0,0 +1,19 @@ +package com.ccsens.tall.service; + +import com.ccsens.tall.bean.dto.ChartDto; +import com.ccsens.tall.bean.vo.ChartVo; + +import java.util.List; + +public interface IChartService { + ChartVo.ExecutorChart getExecutorChart(Long currentUserId,Long projectId, Integer type); + + List getCompleteTaskByTime(Long currentUserId, Long projectId); + + List getProjectTrend(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto); + + ChartVo.ProjectOverview getOverview(Long currentUserId, Long projectId) throws Exception; + + List getBurnoutFigure(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto); + +} diff --git a/tall/src/main/java/com/ccsens/tall/service/ILabelService.java b/tall/src/main/java/com/ccsens/tall/service/ILabelService.java index 10fc6836..f921fee1 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ILabelService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ILabelService.java @@ -6,15 +6,15 @@ import com.ccsens.tall.bean.vo.LabelVo; import java.util.List; public interface ILabelService { - List addLabel(Long userId,List labelList); + List addLabel(Long userId,LabelDto.AddLabel labelList); - List selectLabel(Long currentUserId); + List selectLabel(Long currentUserId,String key); void delLabel(Long currentUserId, LabelDto.DelLabel delLabel); void changeLabel(Long currentUserId, LabelDto.ChangeLabel changeLabel); - void projectAddLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel); + List projectAddLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel); - void projectRemoveLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel); + List projectRemoveLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel); } diff --git a/tall/src/main/java/com/ccsens/tall/service/LabelService.java b/tall/src/main/java/com/ccsens/tall/service/LabelService.java index 16e10ae8..cf3d283d 100644 --- a/tall/src/main/java/com/ccsens/tall/service/LabelService.java +++ b/tall/src/main/java/com/ccsens/tall/service/LabelService.java @@ -17,6 +17,7 @@ import com.ccsens.util.exception.BaseException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; @Service @@ -34,26 +35,24 @@ public class LabelService implements ILabelService{ /** * 添加标签 - * @param labelList 添加的标签信息 + * @param label 添加的标签信息 */ @Override - public List addLabel(Long userId,List labelList) { - if(CollectionUtil.isNotEmpty(labelList)){ - labelList.forEach(label->{ - SysLabelExample sysLabelExample = new SysLabelExample(); - sysLabelExample.createCriteria().andNameEqualTo(label.getName()); - List sysLabels = sysLabelDao.selectByExample(sysLabelExample); - if(CollectionUtil.isNotEmpty(sysLabels)){ - throw new BaseException(CodeEnum.REPEAT_LABEL); - } - SysLabel sysLabel = new SysLabel(); - sysLabel.setId(snowflake.nextId()); - sysLabel.setUserId(userId); - BeanUtil.copyProperties(label,sysLabel); - sysLabelDao.insertSelective(sysLabel); - }); + public List addLabel(Long userId,LabelDto.AddLabel label) { + if(ObjectUtil.isNotNull(label)){ + SysLabelExample sysLabelExample = new SysLabelExample(); + sysLabelExample.createCriteria().andNameEqualTo(label.getName()).andUserIdEqualTo(userId); + List sysLabels = sysLabelDao.selectByExample(sysLabelExample); + if(CollectionUtil.isNotEmpty(sysLabels)){ + throw new BaseException(CodeEnum.REPEAT_LABEL); + } + SysLabel sysLabel = new SysLabel(); + sysLabel.setId(snowflake.nextId()); + sysLabel.setUserId(userId); + BeanUtil.copyProperties(label,sysLabel); + sysLabelDao.insertSelective(sysLabel); } - return sysLabelDao.selectLabelByUserId(userId); + return sysLabelDao.selectLabelByUserId(userId,null); } /** @@ -62,8 +61,8 @@ public class LabelService implements ILabelService{ * @return 返回该用户添加的所有标签 */ @Override - public List selectLabel(Long currentUserId) { - return sysLabelDao.selectLabelByUserId(currentUserId); + public List selectLabel(Long currentUserId,String key) { + return sysLabelDao.selectLabelByUserId(currentUserId,key); } /** @@ -123,12 +122,13 @@ public class LabelService implements ILabelService{ * @param projectLabel 项目id和标签id */ @Override - public void projectAddLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel) { + public List projectAddLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel) { + List selectLabelList = new ArrayList<>(); SysProject project = sysProjectDao.selectByPrimaryKey(projectLabel.getProjectId()); if (ObjectUtil.isNotNull(project)) { //用户在项目中的最高权限 - int power = proRoleService.selectPowerByRoleName(currentUserId, projectLabel.getProjectId()); - if (power > 1) { +// int power = proRoleService.selectPowerByRoleName(currentUserId, projectLabel.getProjectId()); +// if (power > 1) { if(CollectionUtil.isNotEmpty(projectLabel.getLabelList())){ projectLabel.getLabelList().forEach(labelId->{ SysLabel sysLabel = sysLabelDao.selectByPrimaryKey(labelId); @@ -146,12 +146,15 @@ public class LabelService implements ILabelService{ sysProjectLabelDao.insertSelective(sysProjectLabel); }); } - } else { - throw new BaseException(CodeEnum.NOT_POWER); - } + //查询项目内的标签信息 + selectLabelList = sysLabelDao.selectLabelByProjectId(currentUserId,project.getId()); +// } else { +// throw new BaseException(CodeEnum.NOT_POWER); +// } } else { throw new BaseException(CodeEnum.NOT_PROJECT); } + return selectLabelList; } /** @@ -160,12 +163,13 @@ public class LabelService implements ILabelService{ * @param projectLabel 项目id和被删除的标签的id */ @Override - public void projectRemoveLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel) { + public List projectRemoveLabel(Long currentUserId, LabelDto.ProjectLabel projectLabel) { + List selectLabelList = new ArrayList<>(); SysProject project = sysProjectDao.selectByPrimaryKey(projectLabel.getProjectId()); if (ObjectUtil.isNotNull(project)) { //用户在项目中的最高权限 - int power = proRoleService.selectPowerByRoleName(currentUserId, projectLabel.getProjectId()); - if (power > 1) { +// int power = proRoleService.selectPowerByRoleName(currentUserId, projectLabel.getProjectId()); +// if (power > 1) { if(CollectionUtil.isNotEmpty(projectLabel.getLabelList())){ projectLabel.getLabelList().forEach(labelId -> { SysLabel sysLabel = sysLabelDao.selectByPrimaryKey(labelId); @@ -187,11 +191,14 @@ public class LabelService implements ILabelService{ } }); } + //查询项目内的标签信息 + selectLabelList = sysLabelDao.selectLabelByProjectId(currentUserId,project.getId()); } else { throw new BaseException(CodeEnum.NOT_POWER); } - } else { - throw new BaseException(CodeEnum.NOT_PROJECT); - } +// } else { +// throw new BaseException(CodeEnum.NOT_PROJECT); +// } + return selectLabelList; } } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java index 40f06eb7..719910ea 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -23,6 +23,7 @@ import com.ccsens.util.cron.CronConstant; import com.ccsens.util.cron.NatureToDate; import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; +import org.aspectj.apache.bcel.classfile.Code; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -453,6 +454,7 @@ public class ProTaskDetailService implements IProTaskDetailService { String[] pluginIds = pluginVo.getId().split(","); String[] pluginNames = pluginVo.getName().split(","); String[] pluginDescription = pluginVo.getDescription().split(","); + String[] pluginShowType = pluginVo.getShowType().split(","); TaskVo.PluginVo plugin = null; for(int i = 0;i labelList = sysLabelDao.selectLabelByProjectId(project.getId()); + List labelList = sysLabelDao.selectLabelByProjectId(currentUserId,project.getId()); if(CollectionUtil.isNotEmpty(labelList)){ projectInfo.setLabelList(labelList); } @@ -301,16 +299,14 @@ public class ProjectService implements IProjectService { projectConfig.setCreateTask(proShowList.get(0).getCreateTask()); projectConfig.setShowMvp(proShowList.get(0).getIsShowMvp()); projectConfig.setSelectTaskType(proShowList.get(0).getSelectTaskType()); + projectConfig.setDetailPath(proShowList.get(0).getDetailPath()); projectInfo.setProjectConfig(projectConfig); } else { ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig(); - projectConfig.setSlide(0); - projectConfig.setFilter(0); - projectConfig.setCreateTask(1); projectInfo.setProjectConfig(projectConfig); } //获取项目下的标签信息 - List labelList = sysLabelDao.selectLabelByProjectId(projectId); + List labelList = sysLabelDao.selectLabelByProjectId(userId,projectId); if(CollectionUtil.isNotEmpty(labelList)){ projectInfo.setLabelList(labelList); } @@ -329,7 +325,6 @@ public class ProjectService implements IProjectService { PageHelper.startPage(1, 4); List templateProject = sysProjectDao.selectByTemplateStatus(1); - PageHelper.startPage(1, 2); List commonProject = sysProjectDao.selectByTemplateStatus(0); // PageInfo pageInfo =new PageInfo<>(project); diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java index 3a3fe025..62dbec24 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java @@ -780,9 +780,10 @@ public class TaskDeliverService implements ITaskDeliverService { for(ProTaskDeliverPostLog deliverPostLog : postLogList){ //删除文件 SysCommitedFile file = commitedFileDao.selectByPrimaryKey(deliverPostLog.getFileId()); - file.setRecStatus((byte) 2); - commitedFileDao.updateByPrimaryKeySelective(file); - + if(ObjectUtil.isNotNull(file)) { + file.setRecStatus((byte) 2); + commitedFileDao.updateByPrimaryKeySelective(file); + } // deleteFile(file.getPath()); // commitedFileDao.deleteByPrimaryKey(deliverPostLog.getId()); //删除交付物和文件、检查人的关联信息 diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java b/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java index c1f6048d..ccb202c9 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java @@ -136,6 +136,7 @@ public class TaskPluginService implements ITaskPluginService{ commentInfo.setTaskId(proTaskComment.getTaskSubTimeId()); commentInfo.setCommentTime(proTaskComment.getTime()); commentInfo.setDescription(proTaskComment.getDescription()); + commentInfo.setMine(1); //查询用户头像和昵称 SysUser sysUser = sysUserDao.selectByPrimaryKey(userId); commentInfo.setAvatarUrl(sysUser.getAvatarUrl()); @@ -158,7 +159,7 @@ public class TaskPluginService implements ITaskPluginService{ @Override public List getComment(Long currentUserId, Long taskId) { - List commentInfoList = proTaskCommentDao.getCommentByTaskId(taskId); + List commentInfoList = proTaskCommentDao.getCommentByTaskId(currentUserId,taskId); return commentInfoList; } diff --git a/tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java b/tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java index 7cea343a..cb6a55ff 100644 --- a/tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java +++ b/tall/src/main/java/com/ccsens/tall/service/WbsSubSheetService.java @@ -557,17 +557,19 @@ public class WbsSubSheetService implements IWbsSubSheetService { XSSFSheet relevanceSheet = xssfWorkbook.getSheet("关联项目表"); if(ObjectUtil.isNotNull(relevanceSheet)){ for (int i = 1; i <= relevanceSheet.getLastRowNum(); i++) { - String relevanceProjectId = ExcelUtil.getCellValue(relevanceSheet.getRow(i).getCell(2)); - if(StrUtil.isNotEmpty(relevanceProjectId)){ - SysProject sysProject = sysProjectDao.selectByPrimaryKey(Long.valueOf(relevanceProjectId)); - if(ObjectUtil.isNull(sysProject)){ - throw new BaseException(CodeEnum.NOT_PROJECT.addMsg("关联项目表" + i)); + if (ObjectUtil.isNotNull(relevanceSheet.getRow(i))){ + String relevanceProjectId = ExcelUtil.getCellValue(relevanceSheet.getRow(i).getCell(2)); + if (StrUtil.isNotEmpty(relevanceProjectId)) { + SysProject sysProject = sysProjectDao.selectByPrimaryKey(Long.valueOf(relevanceProjectId)); + if (ObjectUtil.isNull(sysProject)) { + throw new BaseException(CodeEnum.NOT_PROJECT.addMsg("关联项目表" + i)); + } + SysRelevanceProject sysRelevanceProject = new SysRelevanceProject(); + sysRelevanceProject.setId(snowflake.nextId()); + sysRelevanceProject.setProjectId(projectId); + sysRelevanceProject.setRelevanceProjectId(Long.valueOf(relevanceProjectId)); + relevanceProjectDao.insertSelective(sysRelevanceProject); } - SysRelevanceProject sysRelevanceProject = new SysRelevanceProject(); - sysRelevanceProject.setId(snowflake.nextId()); - sysRelevanceProject.setProjectId(projectId); - sysRelevanceProject.setRelevanceProjectId(Long.valueOf(relevanceProjectId)); - relevanceProjectDao.insertSelective(sysRelevanceProject); } } } diff --git a/tall/src/main/java/com/ccsens/tall/web/ChartController.java b/tall/src/main/java/com/ccsens/tall/web/ChartController.java new file mode 100644 index 00000000..822bb1ef --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/web/ChartController.java @@ -0,0 +1,86 @@ +package com.ccsens.tall.web; + +import com.ccsens.tall.bean.dto.ChartDto; +import com.ccsens.tall.bean.dto.TaskDto; +import com.ccsens.tall.bean.vo.ChartVo; +import com.ccsens.tall.bean.vo.TaskVo; +import com.ccsens.tall.service.IChartService; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.WebConstant; +import io.jsonwebtoken.Claims; +import io.swagger.annotations.*; +import jdk.internal.dynalink.linker.LinkerServices; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@Api(tags = "图表相关API", description = "") +@RestController +@RequestMapping("/charts") +public class ChartController { + @Autowired + private IChartService chartService; + + + @ApiOperation(value = "任务执行者分布图",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/executor", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) + public JsonResponse getTasksByTaskId(HttpServletRequest request, + @RequestParam(required = true)Long projectId, + @RequestParam(required = false)Integer type) throws Exception{ + type = type == null ? 0 : type; + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + ChartVo.ExecutorChart executorChart = chartService.getExecutorChart(currentUserId,projectId,type); + return JsonResponse.newInstance().ok(executorChart); + } + + @ApiOperation(value = "计划时间内完成任务",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/complete", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> getCompleteTaskByTime(HttpServletRequest request, + @RequestParam(required = true)Long projectId) throws Exception{ + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + List completeTaskNumList = chartService.getCompleteTaskByTime(currentUserId,projectId); + return JsonResponse.newInstance().ok(completeTaskNumList); + } + + + @ApiOperation(value = "项目进展趋势图",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/trend", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> getProjectTrend(HttpServletRequest request, + @Validated @RequestBody ChartDto.ProjectTrendDto projectTrendDto) throws Exception{ + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + List projectTrendVoList = chartService.getProjectTrend(currentUserId,projectTrendDto); + return JsonResponse.newInstance().ok(projectTrendVoList); + } + + + @ApiOperation(value = "概览报表",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/overview", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) + public JsonResponse getOverview(HttpServletRequest request, + @RequestParam(required = true)Long projectId) throws Exception{ + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + ChartVo.ProjectOverview projectOverview = chartService.getOverview(currentUserId,projectId); + return JsonResponse.newInstance().ok(projectOverview); + } + + @ApiOperation(value = "燃尽图",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/burnout", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> getBurnoutFigure(HttpServletRequest request, + @Validated @RequestBody ChartDto.ProjectTrendDto projectTrendDto) throws Exception{ + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + List burnoutFigure = chartService.getBurnoutFigure(currentUserId,projectTrendDto); + return JsonResponse.newInstance().ok(burnoutFigure); + } +} diff --git a/tall/src/main/java/com/ccsens/tall/web/LabelController.java b/tall/src/main/java/com/ccsens/tall/web/LabelController.java index 1537b961..5b6b95f1 100644 --- a/tall/src/main/java/com/ccsens/tall/web/LabelController.java +++ b/tall/src/main/java/com/ccsens/tall/web/LabelController.java @@ -4,6 +4,7 @@ import com.ccsens.tall.bean.dto.LabelDto; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.vo.DomainVo; import com.ccsens.tall.bean.vo.LabelVo; +import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.service.ILabelService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; @@ -30,9 +31,10 @@ public class LabelController { @ApiImplicitParams({ }) @RequestMapping(value = "", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> selectLabel(HttpServletRequest request) throws Exception { + public JsonResponse> selectLabel(HttpServletRequest request, + @RequestParam(required = false)String key) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - List selectLabelList = labelService.selectLabel(currentUserId); + List selectLabelList = labelService.selectLabel(currentUserId,key); return JsonResponse.newInstance().ok(selectLabelList); } @@ -41,7 +43,7 @@ public class LabelController { }) @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse> addLabel(HttpServletRequest request, - @Validated @RequestBody List labelList ) throws Exception { + @Validated @RequestBody LabelDto.AddLabel labelList ) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); List selectLabelList = labelService.addLabel(currentUserId,labelList); return JsonResponse.newInstance().ok(selectLabelList); @@ -73,22 +75,22 @@ public class LabelController { @ApiImplicitParams({ }) @RequestMapping(value = "/project", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse projectAddLabel(HttpServletRequest request, - @Validated @RequestBody LabelDto.ProjectLabel projectLabel) throws Exception { + public JsonResponse> projectAddLabel(HttpServletRequest request, + @Validated @RequestBody LabelDto.ProjectLabel projectLabel) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - labelService.projectAddLabel(currentUserId,projectLabel); - return JsonResponse.newInstance().ok(); + List selectLabelList = labelService.projectAddLabel(currentUserId,projectLabel); + return JsonResponse.newInstance().ok(selectLabelList); } @ApiOperation(value = "删除项目关联的标签",notes = "") @ApiImplicitParams({ }) @RequestMapping(value = "/project/del", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse projectRemoveLabel(HttpServletRequest request, + public JsonResponse> projectRemoveLabel(HttpServletRequest request, @Validated @RequestBody LabelDto.ProjectLabel projectLabel) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - labelService.projectRemoveLabel(currentUserId,projectLabel); - return JsonResponse.newInstance().ok(); + List selectLabelList = labelService.projectRemoveLabel(currentUserId,projectLabel); + return JsonResponse.newInstance().ok(selectLabelList); } } diff --git a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java index 258203f9..8a75e283 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java @@ -237,15 +237,15 @@ public class ProjectController { return JsonResponse.newInstance().ok(projectInfoList); } -// @ApiOperation(value = "查找关联的项目",notes = "") -// @ApiImplicitParams({ -// }) -// @RequestMapping(value = "/relevance", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse> selectRelevanceProject(HttpServletRequest request, -// @RequestParam(required = false) Long projectId) throws Exception { -// Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); -// List projectInfoList = projectService.selectRelevanceProject(currentUserId,projectId); -// return JsonResponse.newInstance().ok(projectInfoList); -// } + @ApiOperation(value = "查找关联的项目",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/relevance", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> selectRelevanceProject(HttpServletRequest request, + @RequestParam(required = true) Long projectId) throws Exception { + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + List projectInfoList = projectService.selectRelevanceProject(currentUserId,projectId); + return JsonResponse.newInstance().ok(projectInfoList); + } } diff --git a/tall/src/main/resources/application-test.yml b/tall/src/main/resources/application-test.yml index a04dbabd..62fa2570 100644 --- a/tall/src/main/resources/application-test.yml +++ b/tall/src/main/resources/application-test.yml @@ -1,35 +1,35 @@ -server: - port: 7030 - servlet: - context-path: /v1.0 -spring: - snowflake: - datacenterId: 1 - workerId: 1 - application: - name: tall - datasource: - type: com.alibaba.druid.pool.DruidDataSource - rabbitmq: - host: api.ccsens.com - password: 111111 - port: 5672 - username: admin - redis: - database: 0 - host: 127.0.0.1 - jedis: - pool: - max-active: 200 - max-idle: 10 - max-wait: -1ms - min-idle: 0 - password: '' - port: 6379 - timeout: 1000ms -swagger: - enable: true -eureka: - instance: - ip-address: 49.233.89.188 -gatewayUrl: https://test.tall.wiki/gateway/ \ No newline at end of file +server: + port: 7030 + servlet: + context-path: /v1.0 +spring: + snowflake: + datacenterId: 1 + workerId: 1 + application: + name: tall + datasource: + type: com.alibaba.druid.pool.DruidDataSource + rabbitmq: + host: 127.0.0.1 + password: 111111 + port: 5672 + username: admin + redis: + database: 0 + host: 127.0.0.1 + jedis: + pool: + max-active: 200 + max-idle: 10 + max-wait: -1ms + min-idle: 0 + password: '' + port: 6379 + timeout: 1000ms +swagger: + enable: true +eureka: + instance: + ip-address: 192.168.0.99 +gatewayUrl: http://192.168.0.99/gateway/ \ No newline at end of file diff --git a/tall/src/main/resources/druid-test.yml b/tall/src/main/resources/druid-test.yml index 0452b17f..37acaa54 100644 --- a/tall/src/main/resources/druid-test.yml +++ b/tall/src/main/resources/druid-test.yml @@ -1,33 +1,33 @@ -spring: - datasource: - druid: - connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 - driverClassName: com.mysql.cj.jdbc.Driver - dynamicUrl: jdbc:mysql://localhost:3306/${schema} - filterExclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*' - filterName: druidFilter - filterProfileEnable: true - filterUrlPattern: /* - filters: stat,wall - initialSize: 5 - maxActive: 20 - maxPoolPreparedStatementPerConnectionSize: 20 - maxWait: 60000 - minEvictableIdleTimeMillis: 300000 - minIdle: 5 - password: - poolPreparedStatements: true - servletLogSlowSql: true - servletLoginPassword: 111111 - servletLoginUsername: druid - servletName: druidServlet - servletResetEnable: true - servletUrlMapping: /druid/* - testOnBorrow: false - testOnReturn: false - testWhileIdle: true - timeBetweenEvictionRunsMillis: 60000 - url: jdbc:mysql://127.0.0.1/tall?useUnicode=true&characterEncoding=UTF-8 - username: root - validationQuery: SELECT 1 FROM DUAL +spring: + datasource: + druid: + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 + driverClassName: com.mysql.cj.jdbc.Driver + dynamicUrl: jdbc:mysql://localhost:3306/${schema} + filterExclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*' + filterName: druidFilter + filterProfileEnable: true + filterUrlPattern: /* + filters: stat,wall + initialSize: 5 + maxActive: 20 + maxPoolPreparedStatementPerConnectionSize: 20 + maxWait: 60000 + minEvictableIdleTimeMillis: 300000 + minIdle: 5 + password: 68073a279b399baa1fa12cf39bfbb65bfc1480ffee7b659ccc81cf19be8c4473 + poolPreparedStatements: true + servletLogSlowSql: true + servletLoginPassword: 111111 + servletLoginUsername: druid + servletName: druidServlet + servletResetEnable: true + servletUrlMapping: /druid/* + testOnBorrow: false + testOnReturn: false + testWhileIdle: true + timeBetweenEvictionRunsMillis: 60000 + url: jdbc:mysql://49.233.89.188/tall?useUnicode=true&characterEncoding=UTF-8 + username: root + validationQuery: SELECT 1 FROM DUAL env: CCSENS_TALL \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProTaskCommentDao.xml b/tall/src/main/resources/mapper_dao/ProTaskCommentDao.xml index 06eac376..0d66b7d6 100644 --- a/tall/src/main/resources/mapper_dao/ProTaskCommentDao.xml +++ b/tall/src/main/resources/mapper_dao/ProTaskCommentDao.xml @@ -10,7 +10,8 @@ s.avatar_url as avatarUrl, c.task_sub_time_id as taskId, c.`time` as commentTime, - c.description as description + c.description as description, + if(c.user_id = #{userId},1,0) as mine FROM `t_pro_task_comment` c left join t_sys_user s on c.user_id = s.id left join t_sys_auth a on s.id = a.user_id and a.identify_type = 3 WHERE diff --git a/tall/src/main/resources/mapper_dao/SysLabelDao.xml b/tall/src/main/resources/mapper_dao/SysLabelDao.xml index a5ea7bfe..27f92b6f 100644 --- a/tall/src/main/resources/mapper_dao/SysLabelDao.xml +++ b/tall/src/main/resources/mapper_dao/SysLabelDao.xml @@ -8,6 +8,10 @@ rec_status = 0 and user_id = #{userId} + + and + `name` like concat('%',#{key},'%') + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/SysProjectDao.xml b/tall/src/main/resources/mapper_dao/SysProjectDao.xml index 8956f898..b5199196 100644 --- a/tall/src/main/resources/mapper_dao/SysProjectDao.xml +++ b/tall/src/main/resources/mapper_dao/SysProjectDao.xml @@ -55,6 +55,15 @@ + + + + + + + + + SELECT - * + p.id AS pId, + p.NAME AS pName, + p.address AS pAddress, + p.begin_time AS pBeginTime, + p.end_time AS pEndTime, + l.id as lId, + l.name as lName, + l.code as lCode, + l.color as lColor, + l.level as lLevle, + l.description as lDescription FROM - t_sys_project p LEFT JOIN - (SELECT - r.relevance_project_id as rProjectId - FROM - t_sys_relevance_project r left JOIN t_sys_project sp ON r.project_id = sp.id - WHERE - r.project_id = #{projectId} - ) t - on p.id = t.rProjectId left join t_sys_project_label pl on pl.project_id = p.id + ( + SELECT + r.relevance_project_id as rProjectId + FROM + t_sys_relevance_project r left JOIN t_sys_project sp ON r.project_id = sp.id + WHERE + r.project_id = #{projectId} + ) t + LEFT JOIN t_sys_project p on p.id = t.rProjectId left join t_sys_project_label pl on pl.project_id = p.id left join t_sys_label l on pl.label_id = l.id WHERE p.rec_status = 0 @@ -228,6 +247,220 @@ (pl.rec_status = 0 or pl.rec_status is null) AND p.template = 0 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/SysUserDao.xml b/tall/src/main/resources/mapper_dao/SysUserDao.xml index af17504a..74db048b 100644 --- a/tall/src/main/resources/mapper_dao/SysUserDao.xml +++ b/tall/src/main/resources/mapper_dao/SysUserDao.xml @@ -76,9 +76,9 @@ AND a.identify_type = 3 WHERE u.rec_status = 0 - and + and a.rec_status = 0 - and + and u.id = #{userId} limit 1 diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index b6b6f290..5694701f 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -27,6 +27,7 @@ + @@ -38,6 +39,7 @@ + @@ -57,7 +59,8 @@ *, GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, - GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription + GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, + GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM (SELECT d.id as tDetailId, @@ -72,6 +75,7 @@ s.real_begin_time as tRealBeginTime, s.real_end_time as tRealEndTime, s.complated_status as tProcess, + d.sub_project_id as tSubProjectId, d.money as tMoney, d.virtual as tVirtual, d.delay as tDelay, @@ -82,7 +86,8 @@ sp.name as spName, p.id as p_id, sp.description as spDescription, - sp.id as spid + sp.id as spid, + sp.show_type as spShowType FROM t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id @@ -130,7 +135,8 @@ *, GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, - GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription + GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, + GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM (SELECT d.id as tDetailId, @@ -145,6 +151,7 @@ s.real_begin_time as tRealBeginTime, s.real_end_time as tRealEndTime, s.complated_status as tProcess, + d.sub_project_id as tSubProjectId, d.money as tMoney, d.virtual as tVirtual, d.delay as tDelay, @@ -155,7 +162,8 @@ sp.name as spName, p.id as p_id, sp.description as spDescription, - sp.id as spid + sp.id as spid, + sp.show_type as spShowType FROM t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id @@ -200,7 +208,8 @@ *, GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, - GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription + GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, + GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM (SELECT d.id as tDetailId, @@ -215,6 +224,7 @@ s.real_begin_time as tRealBeginTime, s.real_end_time as tRealEndTime, s.complated_status as tProcess, + d.sub_project_id as tSubProjectId, d.money as tMoney, d.virtual as tVirtual, d.delay as tDelay, @@ -222,7 +232,8 @@ sp.name as spName, p.id as p_id, sp.description as spDescription, - sp.id as spid + sp.id as spid, + sp.show_type as spShowType FROM t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id @@ -251,7 +262,8 @@ *, GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, - GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription + GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, + GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM (SELECT d.id as tDetailId, @@ -266,6 +278,7 @@ s.real_begin_time as tRealBeginTime, s.real_end_time as tRealEndTime, s.complated_status as tProcess, + d.sub_project_id as tSubProjectId, d.money as tMoney, d.virtual as tVirtual, d.delay as tDelay, @@ -273,7 +286,8 @@ sp.name as spName, p.id as p_id, sp.description as spDescription, - sp.id as spid + sp.id as spid, + sp.show_type as spShowType FROM t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id @@ -329,7 +343,8 @@ *, GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, - GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription + GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, + GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM (SELECT d.id as tDetailId, @@ -344,6 +359,7 @@ s.real_begin_time as tRealBeginTime, s.real_end_time as tRealEndTime, s.complated_status as tProcess, + d.sub_project_id as tSubProjectId, d.money as tMoney, d.virtual as tVirtual, d.delay as tDelay, @@ -351,7 +367,8 @@ sp.name as spName, p.id as p_id, sp.description as spDescription, - sp.id as spid + sp.id as spid, + sp.show_type as spShowType FROM t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d ON s.task_detail_id = d.id LEFT JOIN t_pro_task_plugin p ON p.task_detail_id = d.id diff --git a/tall/src/main/resources/mapper_raw/ProShowMapper.xml b/tall/src/main/resources/mapper_raw/ProShowMapper.xml index f980e2b9..b9b652e7 100644 --- a/tall/src/main/resources/mapper_raw/ProShowMapper.xml +++ b/tall/src/main/resources/mapper_raw/ProShowMapper.xml @@ -15,6 +15,7 @@ + @@ -76,7 +77,7 @@ id, project_id, slide, filter, is_show_mvp, create_task, created_at, updated_at, - rec_status, time_show, duration, show_shortcuts, select_task_type + rec_status, time_show, duration, show_shortcuts, select_task_type, detail_path @@ -253,6 +260,9 @@ select_task_type = #{record.selectTaskType,jdbcType=TINYINT}, + + detail_path = #{record.detailPath,jdbcType=VARCHAR}, + @@ -272,7 +282,8 @@ time_show = #{record.timeShow,jdbcType=VARCHAR}, duration = #{record.duration,jdbcType=TINYINT}, show_shortcuts = #{record.showShortcuts,jdbcType=TINYINT}, - select_task_type = #{record.selectTaskType,jdbcType=TINYINT} + select_task_type = #{record.selectTaskType,jdbcType=TINYINT}, + detail_path = #{record.detailPath,jdbcType=VARCHAR} @@ -316,6 +327,9 @@ select_task_type = #{selectTaskType,jdbcType=TINYINT}, + + detail_path = #{detailPath,jdbcType=VARCHAR}, + where id = #{id,jdbcType=BIGINT} @@ -332,7 +346,8 @@ time_show = #{timeShow,jdbcType=VARCHAR}, duration = #{duration,jdbcType=TINYINT}, show_shortcuts = #{showShortcuts,jdbcType=TINYINT}, - select_task_type = #{selectTaskType,jdbcType=TINYINT} + select_task_type = #{selectTaskType,jdbcType=TINYINT}, + detail_path = #{detailPath,jdbcType=VARCHAR} where id = #{id,jdbcType=BIGINT} \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/SysPluginMapper.xml b/tall/src/main/resources/mapper_raw/SysPluginMapper.xml index 69846018..d9e9f440 100644 --- a/tall/src/main/resources/mapper_raw/SysPluginMapper.xml +++ b/tall/src/main/resources/mapper_raw/SysPluginMapper.xml @@ -1,243 +1,258 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, scene, created_at, updated_at, rec_status - - - - - delete from t_sys_plugin - where id = #{id,jdbcType=BIGINT} - - - delete from t_sys_plugin - - - - - - insert into t_sys_plugin (id, name, description, - scene, created_at, updated_at, - rec_status) - values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, - #{scene,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, - #{recStatus,jdbcType=TINYINT}) - - - insert into t_sys_plugin - - - id, - - - name, - - - description, - - - scene, - - - created_at, - - - updated_at, - - - rec_status, - - - - - #{id,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{scene,jdbcType=TINYINT}, - - - #{createdAt,jdbcType=TIMESTAMP}, - - - #{updatedAt,jdbcType=TIMESTAMP}, - - - #{recStatus,jdbcType=TINYINT}, - - - - - - update t_sys_plugin - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - scene = #{record.scene,jdbcType=TINYINT}, - - - created_at = #{record.createdAt,jdbcType=TIMESTAMP}, - - - updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, - - - rec_status = #{record.recStatus,jdbcType=TINYINT}, - - - - - - - - update t_sys_plugin - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - scene = #{record.scene,jdbcType=TINYINT}, - created_at = #{record.createdAt,jdbcType=TIMESTAMP}, - updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{record.recStatus,jdbcType=TINYINT} - - - - - - update t_sys_plugin - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - scene = #{scene,jdbcType=TINYINT}, - - - created_at = #{createdAt,jdbcType=TIMESTAMP}, - - - updated_at = #{updatedAt,jdbcType=TIMESTAMP}, - - - rec_status = #{recStatus,jdbcType=TINYINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update t_sys_plugin - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - scene = #{scene,jdbcType=TINYINT}, - created_at = #{createdAt,jdbcType=TIMESTAMP}, - updated_at = #{updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{recStatus,jdbcType=TINYINT} - where id = #{id,jdbcType=BIGINT} - + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, description, scene, created_at, updated_at, rec_status, show_type + + + + + delete from t_sys_plugin + where id = #{id,jdbcType=BIGINT} + + + delete from t_sys_plugin + + + + + + insert into t_sys_plugin (id, name, description, + scene, created_at, updated_at, + rec_status, show_type) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, + #{scene,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}, #{showType,jdbcType=TINYINT}) + + + insert into t_sys_plugin + + + id, + + + name, + + + description, + + + scene, + + + created_at, + + + updated_at, + + + rec_status, + + + show_type, + + + + + #{id,jdbcType=BIGINT}, + + + #{name,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{scene,jdbcType=TINYINT}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + #{showType,jdbcType=TINYINT}, + + + + + + update t_sys_plugin + + + id = #{record.id,jdbcType=BIGINT}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + scene = #{record.scene,jdbcType=TINYINT}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + show_type = #{record.showType,jdbcType=TINYINT}, + + + + + + + + update t_sys_plugin + set id = #{record.id,jdbcType=BIGINT}, + name = #{record.name,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=VARCHAR}, + scene = #{record.scene,jdbcType=TINYINT}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT}, + show_type = #{record.showType,jdbcType=TINYINT} + + + + + + update t_sys_plugin + + + name = #{name,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + scene = #{scene,jdbcType=TINYINT}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + show_type = #{showType,jdbcType=TINYINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_sys_plugin + set name = #{name,jdbcType=VARCHAR}, + description = #{description,jdbcType=VARCHAR}, + scene = #{scene,jdbcType=TINYINT}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT}, + show_type = #{showType,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + \ No newline at end of file diff --git a/util/src/main/java/com/ccsens/util/DateUtil.java b/util/src/main/java/com/ccsens/util/DateUtil.java index c23a9302..603ac764 100644 --- a/util/src/main/java/com/ccsens/util/DateUtil.java +++ b/util/src/main/java/com/ccsens/util/DateUtil.java @@ -1,5 +1,6 @@ package com.ccsens.util; +import cn.hutool.core.date.DateTime; import cn.hutool.core.util.StrUtil; import com.ccsens.util.exception.BaseException; @@ -153,10 +154,12 @@ public class DateUtil extends cn.hutool.core.date.DateUtil { calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime().getTime(); } -// + // public static void main(String[] args) throws Exception { -// -// System.out.println(getZeroTime(new Date())); +// DateTime endTime = cn.hutool.core.date.DateUtil.endOfDay(new Date()); +// DateTime beginTime = cn.hutool.core.date.DateUtil.beginOfDay(new Date()); +// System.out.println(endTime); +// System.out.println(beginTime); // } } diff --git a/util/src/main/java/com/ccsens/util/StringUtil.java b/util/src/main/java/com/ccsens/util/StringUtil.java index 6100bbc7..63ea759c 100644 --- a/util/src/main/java/com/ccsens/util/StringUtil.java +++ b/util/src/main/java/com/ccsens/util/StringUtil.java @@ -13,7 +13,7 @@ import java.util.regex.Pattern; public class StringUtil { public final static String WEEK_DAY = "(每?隔\\d周)|(每?隔\\d星期)|(每?周[0-7]+)|(每?星期[0-7]+)|(每?周一)|(每?周二)|(每?周三)|(每?周四)|(每?周五)|(每?周六)|(每?周日)|(每?周天)"; - public final static String DAY = "(每?隔\\d+天)|(每?隔\\d+日)|(\\d+号)|(\\d+日)|(\\d+\\-\\d+号)|(\\d+\\-\\d+日)|(\\d+到\\d+号)|(\\d+到\\d+日)"; + public final static String DAY = "(每\\d+天)|(每\\d+日)|(每?隔\\d+天)|(每?隔\\d+日)|(\\d+号)|(\\d+日)|(\\d+\\-\\d+号)|(\\d+\\-\\d+日)|(\\d+到\\d+号)|(\\d+到\\d+日)"; public final static String CONTINUE_RANGE = ".*(到|\\-|至).*"; @@ -59,21 +59,21 @@ public class StringUtil { return matcher.matches(); } - public static void main(String[] args) { -// matchSingle("每天5分", MINUTE_REGEXP); +// public static void main(String[] args) { +//// matchSingle("每天5分", MINUTE_REGEXP); +//// +//// String[] split = "a至b".split("[到\\-至]"); +//// for (String s: split) { +//// System.out.println("split:" + s); +//// } +//// System.out.println(isMatch("3到5",CONTINUE_RANGE)); +//// System.out.println("------------------------------------------------" + (null + "hello wold")); +//// match("3-5小时", "(每隔?\\d*小?时)|(\\d+\\-\\d+小?时)|(\\d*点)|(\\d*时)"); // -// String[] split = "a至b".split("[到\\-至]"); -// for (String s: split) { -// System.out.println("split:" + s); -// } -// System.out.println(isMatch("3到5",CONTINUE_RANGE)); -// System.out.println("------------------------------------------------" + (null + "hello wold")); -// match("3-5小时", "(每隔?\\d*小?时)|(\\d+\\-\\d+小?时)|(\\d*点)|(\\d*时)"); - -// System.out.println(isMatch("每周一5点", EVERY_WEEK_MORE)); -// System.out.println(isMatch("每周5点", EVERY_WEEK_MORE)); - System.out.println(matchSingle("第一百零三个", CHINESE_NUM)); - } +//// System.out.println(isMatch("每周一5点", EVERY_WEEK_MORE)); +//// System.out.println(isMatch("每周5点", EVERY_WEEK_MORE)); +// System.out.println(matchSingle("第一百零三个", CHINESE_NUM)); +// } @@ -235,7 +235,9 @@ public class StringUtil { } // public static void main(String[] args) { -// List list = extractMessage(""); +// String a = "员工成长(112333)"; +// +// List list = extractMessage(a); // for(String s : list){ // System.out.println(s); // }