From d5728a7249f9f5b4fe83d6f274a0cb2fcbe90ceb Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Fri, 10 Jul 2020 15:52:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/game/mq/GameScoreListener.java | 2 +- .../ccsens/game/service/MessageService.java | 2 +- .../ccsens/mt/service/MessageServicer.java | 2 +- .../com/ccsens/tall/bean/dto/TaskDto.java | 36 + .../com/ccsens/tall/bean/po/ProRemind.java | 117 +++ .../ccsens/tall/bean/po/ProRemindExample.java | 741 ++++++++++++++++++ .../ccsens/tall/bean/po/ProTaskDetail.java | 11 + .../tall/bean/po/ProTaskDetailExample.java | 60 ++ .../ccsens/tall/persist/dao/ProRemindDao.java | 11 + .../tall/persist/dao/TaskDetailDao.java | 2 +- .../tall/persist/mapper/ProRemindMapper.java | 30 + .../persist/mapper/ProTaskDetailMapper.java | 59 +- .../tall/service/IProTaskDetailService.java | 2 +- .../tall/service/ITaskSubTimeService.java | 7 + .../ccsens/tall/service/MessageService.java | 4 +- .../tall/service/ProTaskDetailService.java | 14 +- .../com/ccsens/tall/service/RingService.java | 5 +- .../tall/service/TaskDeliverService.java | 10 +- .../tall/service/TaskSubTimeService.java | 102 ++- .../com/ccsens/tall/util/TallConstant.java | 19 + .../ccsens/tall/web/ProjectController.java | 8 +- .../com/ccsens/tall/web/TaskController.java | 20 +- tall/src/main/resources/application.yml | 4 +- .../resources/mapper_dao/TaskDetailDao.xml | 9 +- .../resources/mapper_raw/ProRemindMapper.xml | 276 +++++++ .../mapper_raw/ProTaskDetailMapper.xml | 27 +- 26 files changed, 1487 insertions(+), 93 deletions(-) create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProRemind.java create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProRemindExample.java create mode 100644 tall/src/main/java/com/ccsens/tall/persist/dao/ProRemindDao.java create mode 100644 tall/src/main/java/com/ccsens/tall/persist/mapper/ProRemindMapper.java create mode 100644 tall/src/main/resources/mapper_raw/ProRemindMapper.xml diff --git a/game/src/main/java/com/ccsens/game/mq/GameScoreListener.java b/game/src/main/java/com/ccsens/game/mq/GameScoreListener.java index 1d8583cd..fcade896 100644 --- a/game/src/main/java/com/ccsens/game/mq/GameScoreListener.java +++ b/game/src/main/java/com/ccsens/game/mq/GameScoreListener.java @@ -65,7 +65,7 @@ public class GameScoreListener { tos.add(JSONObject.toJSONString(new InMessage.To(userId))); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(tos); - inMessage.setData(JSONObject.toJSONString(gameMessageCountOut.getData())); + inMessage.setData(JSONObject.toJSONString(gameMessageCountOut)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage); }); diff --git a/game/src/main/java/com/ccsens/game/service/MessageService.java b/game/src/main/java/com/ccsens/game/service/MessageService.java index d38ecdf7..7e89080f 100644 --- a/game/src/main/java/com/ccsens/game/service/MessageService.java +++ b/game/src/main/java/com/ccsens/game/service/MessageService.java @@ -43,7 +43,7 @@ public class MessageService implements IMessageService { InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(message.receiversTransTos()); - inMessage.setData(JSONObject.toJSONString(message.getData())); + inMessage.setData(JSONObject.toJSONString(message)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage); } diff --git a/mt/src/main/java/com/ccsens/mt/service/MessageServicer.java b/mt/src/main/java/com/ccsens/mt/service/MessageServicer.java index 88afe702..c94d5bce 100644 --- a/mt/src/main/java/com/ccsens/mt/service/MessageServicer.java +++ b/mt/src/main/java/com/ccsens/mt/service/MessageServicer.java @@ -23,7 +23,7 @@ public class MessageServicer implements IMessageService{ InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(message.receiversTransTos()); - inMessage.setData(JSONObject.toJSONString(message.getData())); + inMessage.setData(JSONObject.toJSONString(message)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java index c3d421d1..95be0ece 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java @@ -1,5 +1,8 @@ package com.ccsens.tall.bean.dto; +import cn.hutool.core.util.ObjectUtil; +import com.ccsens.tall.util.TallConstant; +import com.ccsens.util.exception.BaseException; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -212,4 +215,37 @@ public class TaskDto { private Integer showFinish; } + @Data + @ApiModel("设置任务提醒") + public static class TaskRemind{ + @NotNull + @ApiModelProperty("任务日期id(subTimeId)") + private Long taskId; + @ApiModelProperty("提醒时机 0不提醒 1开始前,2开始时,3开始后,4结束前,5结束时,6结束后,7自定义时间") + private Byte remindTiming; + @ApiModelProperty("时长 提醒时机是“开始时”或“结束时”可以为空") + private Long duration = 0L; + @ApiModelProperty("时间单位 0分钟 1小时 2天") + private Byte unit; + + public Long getDuration(){ + if(ObjectUtil.isNull(unit)) { + throw new BaseException("时间单位不能为空"); + } + if(remindTiming == 7){ + return duration; + } + switch (unit) { + case 0: + return duration * 60 * 1000L; + case 1: + return duration * 60 * 60 * 1000L; + case 2: + return duration * 24 * 60 * 60 * 1000L; + default: + return duration; + } + } + } + } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProRemind.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProRemind.java new file mode 100644 index 00000000..d7019676 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProRemind.java @@ -0,0 +1,117 @@ +package com.ccsens.tall.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class ProRemind implements Serializable { + private Long id; + + private Long subTaskId; + + private Byte remindTiming; + + private Long remindAbsoluteTime; + + private Byte finishStatus; + + private Integer remindTimes; + + 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 Long getSubTaskId() { + return subTaskId; + } + + public void setSubTaskId(Long subTaskId) { + this.subTaskId = subTaskId; + } + + public Byte getRemindTiming() { + return remindTiming; + } + + public void setRemindTiming(Byte remindTiming) { + this.remindTiming = remindTiming; + } + + public Long getRemindAbsoluteTime() { + return remindAbsoluteTime; + } + + public void setRemindAbsoluteTime(Long remindAbsoluteTime) { + this.remindAbsoluteTime = remindAbsoluteTime; + } + + public Byte getFinishStatus() { + return finishStatus; + } + + public void setFinishStatus(Byte finishStatus) { + this.finishStatus = finishStatus; + } + + public Integer getRemindTimes() { + return remindTimes; + } + + public void setRemindTimes(Integer remindTimes) { + this.remindTimes = remindTimes; + } + + 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(", subTaskId=").append(subTaskId); + sb.append(", remindTiming=").append(remindTiming); + sb.append(", remindAbsoluteTime=").append(remindAbsoluteTime); + sb.append(", finishStatus=").append(finishStatus); + sb.append(", remindTimes=").append(remindTimes); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProRemindExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProRemindExample.java new file mode 100644 index 00000000..2b89c5b4 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProRemindExample.java @@ -0,0 +1,741 @@ +package com.ccsens.tall.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class ProRemindExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ProRemindExample() { + 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 andSubTaskIdIsNull() { + addCriterion("sub_task_id is null"); + return (Criteria) this; + } + + public Criteria andSubTaskIdIsNotNull() { + addCriterion("sub_task_id is not null"); + return (Criteria) this; + } + + public Criteria andSubTaskIdEqualTo(Long value) { + addCriterion("sub_task_id =", value, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdNotEqualTo(Long value) { + addCriterion("sub_task_id <>", value, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdGreaterThan(Long value) { + addCriterion("sub_task_id >", value, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdGreaterThanOrEqualTo(Long value) { + addCriterion("sub_task_id >=", value, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdLessThan(Long value) { + addCriterion("sub_task_id <", value, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdLessThanOrEqualTo(Long value) { + addCriterion("sub_task_id <=", value, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdIn(List values) { + addCriterion("sub_task_id in", values, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdNotIn(List values) { + addCriterion("sub_task_id not in", values, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdBetween(Long value1, Long value2) { + addCriterion("sub_task_id between", value1, value2, "subTaskId"); + return (Criteria) this; + } + + public Criteria andSubTaskIdNotBetween(Long value1, Long value2) { + addCriterion("sub_task_id not between", value1, value2, "subTaskId"); + return (Criteria) this; + } + + public Criteria andRemindTimingIsNull() { + addCriterion("remind_timing is null"); + return (Criteria) this; + } + + public Criteria andRemindTimingIsNotNull() { + addCriterion("remind_timing is not null"); + return (Criteria) this; + } + + public Criteria andRemindTimingEqualTo(Byte value) { + addCriterion("remind_timing =", value, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingNotEqualTo(Byte value) { + addCriterion("remind_timing <>", value, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingGreaterThan(Byte value) { + addCriterion("remind_timing >", value, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingGreaterThanOrEqualTo(Byte value) { + addCriterion("remind_timing >=", value, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingLessThan(Byte value) { + addCriterion("remind_timing <", value, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingLessThanOrEqualTo(Byte value) { + addCriterion("remind_timing <=", value, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingIn(List values) { + addCriterion("remind_timing in", values, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingNotIn(List values) { + addCriterion("remind_timing not in", values, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingBetween(Byte value1, Byte value2) { + addCriterion("remind_timing between", value1, value2, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindTimingNotBetween(Byte value1, Byte value2) { + addCriterion("remind_timing not between", value1, value2, "remindTiming"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeIsNull() { + addCriterion("remind_absolute_time is null"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeIsNotNull() { + addCriterion("remind_absolute_time is not null"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeEqualTo(Long value) { + addCriterion("remind_absolute_time =", value, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeNotEqualTo(Long value) { + addCriterion("remind_absolute_time <>", value, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeGreaterThan(Long value) { + addCriterion("remind_absolute_time >", value, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeGreaterThanOrEqualTo(Long value) { + addCriterion("remind_absolute_time >=", value, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeLessThan(Long value) { + addCriterion("remind_absolute_time <", value, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeLessThanOrEqualTo(Long value) { + addCriterion("remind_absolute_time <=", value, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeIn(List values) { + addCriterion("remind_absolute_time in", values, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeNotIn(List values) { + addCriterion("remind_absolute_time not in", values, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeBetween(Long value1, Long value2) { + addCriterion("remind_absolute_time between", value1, value2, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andRemindAbsoluteTimeNotBetween(Long value1, Long value2) { + addCriterion("remind_absolute_time not between", value1, value2, "remindAbsoluteTime"); + return (Criteria) this; + } + + public Criteria andFinishStatusIsNull() { + addCriterion("finish_status is null"); + return (Criteria) this; + } + + public Criteria andFinishStatusIsNotNull() { + addCriterion("finish_status is not null"); + return (Criteria) this; + } + + public Criteria andFinishStatusEqualTo(Byte value) { + addCriterion("finish_status =", value, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusNotEqualTo(Byte value) { + addCriterion("finish_status <>", value, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusGreaterThan(Byte value) { + addCriterion("finish_status >", value, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("finish_status >=", value, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusLessThan(Byte value) { + addCriterion("finish_status <", value, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusLessThanOrEqualTo(Byte value) { + addCriterion("finish_status <=", value, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusIn(List values) { + addCriterion("finish_status in", values, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusNotIn(List values) { + addCriterion("finish_status not in", values, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusBetween(Byte value1, Byte value2) { + addCriterion("finish_status between", value1, value2, "finishStatus"); + return (Criteria) this; + } + + public Criteria andFinishStatusNotBetween(Byte value1, Byte value2) { + addCriterion("finish_status not between", value1, value2, "finishStatus"); + return (Criteria) this; + } + + public Criteria andRemindTimesIsNull() { + addCriterion("remind_times is null"); + return (Criteria) this; + } + + public Criteria andRemindTimesIsNotNull() { + addCriterion("remind_times is not null"); + return (Criteria) this; + } + + public Criteria andRemindTimesEqualTo(Integer value) { + addCriterion("remind_times =", value, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesNotEqualTo(Integer value) { + addCriterion("remind_times <>", value, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesGreaterThan(Integer value) { + addCriterion("remind_times >", value, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesGreaterThanOrEqualTo(Integer value) { + addCriterion("remind_times >=", value, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesLessThan(Integer value) { + addCriterion("remind_times <", value, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesLessThanOrEqualTo(Integer value) { + addCriterion("remind_times <=", value, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesIn(List values) { + addCriterion("remind_times in", values, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesNotIn(List values) { + addCriterion("remind_times not in", values, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesBetween(Integer value1, Integer value2) { + addCriterion("remind_times between", value1, value2, "remindTimes"); + return (Criteria) this; + } + + public Criteria andRemindTimesNotBetween(Integer value1, Integer value2) { + addCriterion("remind_times not between", value1, value2, "remindTimes"); + 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); + } + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java index 91736b43..d6e1bc07 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetail.java @@ -56,6 +56,8 @@ public class ProTaskDetail implements Serializable { private Byte recStatus; + private Byte priority; + private static final long serialVersionUID = 1L; public Long getId() { @@ -266,6 +268,14 @@ public class ProTaskDetail implements Serializable { this.recStatus = recStatus; } + public Byte getPriority() { + return priority; + } + + public void setPriority(Byte priority) { + this.priority = priority; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -298,6 +308,7 @@ public class ProTaskDetail implements Serializable { sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); + sb.append(", priority=").append(priority); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java index b2a280ea..ddc69c30 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDetailExample.java @@ -1714,6 +1714,66 @@ public class ProTaskDetailExample { addCriterion("rec_status not between", value1, value2, "recStatus"); return (Criteria) this; } + + public Criteria andPriorityIsNull() { + addCriterion("priority is null"); + return (Criteria) this; + } + + public Criteria andPriorityIsNotNull() { + addCriterion("priority is not null"); + return (Criteria) this; + } + + public Criteria andPriorityEqualTo(Byte value) { + addCriterion("priority =", value, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityNotEqualTo(Byte value) { + addCriterion("priority <>", value, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityGreaterThan(Byte value) { + addCriterion("priority >", value, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityGreaterThanOrEqualTo(Byte value) { + addCriterion("priority >=", value, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityLessThan(Byte value) { + addCriterion("priority <", value, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityLessThanOrEqualTo(Byte value) { + addCriterion("priority <=", value, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityIn(List values) { + addCriterion("priority in", values, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityNotIn(List values) { + addCriterion("priority not in", values, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityBetween(Byte value1, Byte value2) { + addCriterion("priority between", value1, value2, "priority"); + return (Criteria) this; + } + + public Criteria andPriorityNotBetween(Byte value1, Byte value2) { + addCriterion("priority not between", value1, value2, "priority"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRemindDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRemindDao.java new file mode 100644 index 00000000..eee43488 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRemindDao.java @@ -0,0 +1,11 @@ +package com.ccsens.tall.persist.dao; + +import com.ccsens.tall.persist.mapper.ProRemindMapper; +import org.springframework.stereotype.Repository; + +/** + * @author 逗 + */ +@Repository +public interface ProRemindDao extends ProRemindMapper { +} diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java index a80b1cb3..7e4cadf3 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java @@ -17,7 +17,7 @@ public interface TaskDetailDao extends ProTaskDetailMapper { @Param("startTime") Long startTime, @Param("endTime") Long endTime,@Param("roleId") Long roleId); List selectTaskByRoleAndAllMembers(@Param("projectId") Long projectId, @Param("roleId") Long roleId,@Param("allMemberId") Long allMemberId, - @Param("startTime") Long startTime, @Param("endTime") Long endTime); + @Param("startTime") Long startTime, @Param("endTime") Long endTime,@Param("priority") Integer priority); TaskVo.NormalTask selectTaskByTaskId(@Param("subTimeId") Long subTimeId, @Param("taskId") Long taskId,@Param("roleId") Long roleId); diff --git a/tall/src/main/java/com/ccsens/tall/persist/mapper/ProRemindMapper.java b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProRemindMapper.java new file mode 100644 index 00000000..3e324eb0 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProRemindMapper.java @@ -0,0 +1,30 @@ +package com.ccsens.tall.persist.mapper; + +import com.ccsens.tall.bean.po.ProRemind; +import com.ccsens.tall.bean.po.ProRemindExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface ProRemindMapper { + long countByExample(ProRemindExample example); + + int deleteByExample(ProRemindExample example); + + int deleteByPrimaryKey(Long id); + + int insert(ProRemind record); + + int insertSelective(ProRemind record); + + List selectByExample(ProRemindExample example); + + ProRemind selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") ProRemind record, @Param("example") ProRemindExample example); + + int updateByExample(@Param("record") ProRemind record, @Param("example") ProRemindExample example); + + int updateByPrimaryKeySelective(ProRemind record); + + int updateByPrimaryKey(ProRemind record); +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/persist/mapper/ProTaskDetailMapper.java b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProTaskDetailMapper.java index 75f08e74..a9105e86 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/mapper/ProTaskDetailMapper.java +++ b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProTaskDetailMapper.java @@ -1,31 +1,30 @@ -package com.ccsens.tall.persist.mapper; - -import com.ccsens.tall.bean.po.ProTaskDetail; -import com.ccsens.tall.bean.po.ProTaskDetailExample; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface ProTaskDetailMapper { - long countByExample(ProTaskDetailExample example); - - int deleteByExample(ProTaskDetailExample example); - - int deleteByPrimaryKey(Long id); - - int insert(ProTaskDetail record); - - int insertSelective(ProTaskDetail record); - - List selectByExample(ProTaskDetailExample example); - - ProTaskDetail selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") ProTaskDetail record, @Param("example") ProTaskDetailExample example); - - int updateByExample(@Param("record") ProTaskDetail record, @Param("example") ProTaskDetailExample example); - - int updateByPrimaryKeySelective(ProTaskDetail record); - - int updateByPrimaryKey(ProTaskDetail record); +package com.ccsens.tall.persist.mapper; + +import com.ccsens.tall.bean.po.ProTaskDetail; +import com.ccsens.tall.bean.po.ProTaskDetailExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface ProTaskDetailMapper { + long countByExample(ProTaskDetailExample example); + + int deleteByExample(ProTaskDetailExample example); + + int deleteByPrimaryKey(Long id); + + int insert(ProTaskDetail record); + + int insertSelective(ProTaskDetail record); + + List selectByExample(ProTaskDetailExample example); + + ProTaskDetail selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") ProTaskDetail record, @Param("example") ProTaskDetailExample example); + + int updateByExample(@Param("record") ProTaskDetail record, @Param("example") ProTaskDetailExample example); + + int updateByPrimaryKeySelective(ProTaskDetail record); + + int updateByPrimaryKey(ProTaskDetail record); } \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java index 4f640bad..3d5858df 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java @@ -12,7 +12,7 @@ public interface IProTaskDetailService { void saveTaskDetail(ProTaskDetail taskDetail); Object getTasksByRoleId(Long currentUserId, Long projectId, Long roleId, Long startTime, Long endTime, Integer process, - Integer page, Integer pageSize) throws Exception; + Integer page, Integer pageSize,Integer priority) throws Exception; List getTaskInfoByMvp(Long projectId); diff --git a/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java index f2bccfca..481c90de 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java @@ -23,4 +23,11 @@ public interface ITaskSubTimeService { Integer page, Integer pageSize, Integer orderType, Integer order) throws Exception; void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask) throws Exception; + + /** + * 给任务添加提醒 + * @param userId 当前用户的id + * @param taskRemind 任务id 提醒的时机和时间 + */ + void saveRemind(Long userId, TaskDto.TaskRemind taskRemind) throws Exception; } diff --git a/tall/src/main/java/com/ccsens/tall/service/MessageService.java b/tall/src/main/java/com/ccsens/tall/service/MessageService.java index b82dcf2f..40fb82cf 100644 --- a/tall/src/main/java/com/ccsens/tall/service/MessageService.java +++ b/tall/src/main/java/com/ccsens/tall/service/MessageService.java @@ -69,7 +69,7 @@ public class MessageService implements IMessageService{ InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(message.receiversTransTos()); - inMessage.setData(JSONObject.toJSONString(message.getData())); + inMessage.setData(JSONObject.toJSONString(message)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage); } } @@ -106,7 +106,7 @@ public class MessageService implements IMessageService{ InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(syncMessage.receiversTransTos()); - inMessage.setData(JSONObject.toJSONString(syncMessage.getData())); + inMessage.setData(JSONObject.toJSONString(syncMessage)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, inMessage); 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 7f50d30d..c3b8e0d6 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -80,7 +80,7 @@ public class ProTaskDetailService implements IProTaskDetailService { @Override public Object getTasksByRoleId(Long currentUserId, Long projectId, Long roleId, Long startTime, Long endTime, Integer process, - Integer page, Integer pageSize) throws Exception { + Integer page, Integer pageSize,Integer priority) throws Exception { SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId); if (ObjectUtil.isNull(sysProject)) { throw new BaseException(CodeEnum.NOT_PROJECT); @@ -104,7 +104,7 @@ public class ProTaskDetailService implements IProTaskDetailService { if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.PM.value)) { obj = getTaskInfoByProjectIdAndPM(currentUserId, projectId, roleId, startTime, endTime, process, page, pageSize); } else if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.Member.value)) { - obj = getTaskInfoByProjectIdAndRoleId(currentUserId, projectId, roleId, startTime, endTime, process, page, pageSize); + obj = getTaskInfoByProjectIdAndRoleId(currentUserId, projectId, roleId, startTime, endTime, process, page, pageSize,priority); } } else { throw new BaseException(CodeEnum.NOT_ROLE); @@ -235,7 +235,7 @@ public class ProTaskDetailService implements IProTaskDetailService { * 查看任务 项目成员 */ private TaskVo.ProTaskInfo getTaskInfoByProjectIdAndRoleId(Long currentUserId, Long projectId, Long roleId, Long startTime, - Long endTime, Integer process, Integer page, Integer pageSize) throws Exception { + Long endTime, Integer process, Integer page, Integer pageSize,Integer priority) throws Exception { TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); List globalTaskList = new ArrayList<>(); @@ -249,7 +249,7 @@ public class ProTaskDetailService implements IProTaskDetailService { } //查找该角色的所有任务(全体成员的任务也是这个角色的任务) List secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, - allMemberId, startTime, endTime); + allMemberId, startTime, endTime,priority); if (CollectionUtil.isNotEmpty(secondTaskVoList)) { for (TaskVo.NormalTask normalTask : secondTaskVoList) { @@ -288,7 +288,11 @@ public class ProTaskDetailService implements IProTaskDetailService { } } if (CollectionUtil.isNotEmpty(task.getCommonTask())) { + if (priority == 0) { normalTaskList = sortTaskTime(task.getCommonTask()); + }else { + normalTaskList = task.getCommonTask(); + } } } @@ -766,7 +770,7 @@ public class ProTaskDetailService implements IProTaskDetailService { for (ProRole role : roleList) { SysProject sysProject = sysProjectDao.selectByPrimaryKey(role.getProjectId()); List taskList = - taskDetailDao.selectTaskByRoleAndAllMembers(project.getId(), role.getId(), null,startTime, endTime); + taskDetailDao.selectTaskByRoleAndAllMembers(project.getId(), role.getId(), null,startTime, endTime,0); if (CollectionUtil.isNotEmpty(taskList)) { for (TaskVo.NormalTask normalTask : taskList) { //任务的完成状态 diff --git a/tall/src/main/java/com/ccsens/tall/service/RingService.java b/tall/src/main/java/com/ccsens/tall/service/RingService.java index d665e99f..a9660d69 100644 --- a/tall/src/main/java/com/ccsens/tall/service/RingService.java +++ b/tall/src/main/java/com/ccsens/tall/service/RingService.java @@ -106,7 +106,8 @@ public class RingService implements IRingService { InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(userIdSet); - inMessage.setData(JSONObject.toJSONString(ringMessageWithSendDto.getData())); + inMessage.setData(JSONObject.toJSONString(ringMessageWithSendDto)); + log.info("发送的ring消息:{}",JSONObject.toJSONString(inMessage)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JSONObject.toJSONString(inMessage)); } @@ -305,7 +306,7 @@ public class RingService implements IRingService { InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(userIdSet); - inMessage.setData(JSONObject.toJSONString(ringMessageWithReadDto.getData())); + inMessage.setData(JSONObject.toJSONString(ringMessageWithReadDto)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JSONObject.toJSONString(inMessage)); } } 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 a7fa873a..e4aa2281 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java @@ -275,11 +275,13 @@ public class TaskDeliverService implements ITaskDeliverService { data.setUploader(currentUserId); data.setUploadTime(now); data.setFile(uploadDeliver.getFileInfo()); + DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto(); + uploadMessage.setData(data); InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(userIds); - inMessage.setData(JacksonUtil.beanToJson(data)); + inMessage.setData(JacksonUtil.beanToJson(uploadMessage)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JacksonUtil.beanToJson(inMessage) ); // //用智能助手发送消息 @@ -598,10 +600,10 @@ public class TaskDeliverService implements ITaskDeliverService { messageUserList.add(messageUser); } } - checkerDto.setReceivers(messageUserList); +// checkerDto.setReceivers(messageUserList); 旧消息系统的接收者列表 log.info("检查交付物:{}",JacksonUtil.beanToJson(checkerDto)); MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); - String s = JacksonUtil.beanToJson(checkerDtoData); + String s = JacksonUtil.beanToJson(checkerDto); InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s); messageService.sendDeliverMessageWithChecker(inMessage); @@ -800,7 +802,7 @@ public class TaskDeliverService implements ITaskDeliverService { InMessage inMessage = new InMessage(); inMessage.setToDomain(MessageConstant.DomainType.User); inMessage.setTos(userIdSet); - inMessage.setData(JacksonUtil.beanToJson(deleteMessageData)); + inMessage.setData(JacksonUtil.beanToJson(deleteMessage)); rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JacksonUtil.beanToJson(inMessage)); diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java index 1b60930b..3af4d6ff 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java @@ -12,6 +12,7 @@ import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.persist.dao.*; +import com.ccsens.tall.util.TallConstant; import com.ccsens.util.CodeEnum; import com.ccsens.util.WebConstant; import com.ccsens.util.cron.CronConstant; @@ -20,47 +21,52 @@ import com.ccsens.util.exception.BaseException; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; +/** + * @author 逗 + */ @Slf4j @Service @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class TaskSubTimeService implements ITaskSubTimeService { - @Autowired + @Resource private TaskSubTimeDao taskSubTimeDao; - @Autowired + @Resource private SysProjectDao sysProjectDao; - @Autowired + @Resource private TaskDeliverDao taskDeliverDao; - @Autowired + @Resource private TaskPluginDao taskPluginDao; - @Autowired + @Resource private ProSubTimeMemberDao proSubTimeMemberDao; - @Autowired + @Resource private ProTaskDeliverPostLogDao proTaskDeliverPostLogDao; - @Autowired + @Resource private TaskDetailDao taskDetailDao; - @Autowired + @Resource private ProRoleDao proRoleDao; - @Autowired + @Resource private ProMemberDao proMemberDao; - @Autowired + @Resource private IProMemberService proMemberService; - @Autowired + @Resource private IProTaskDetailService taskDetailService; - @Autowired + @Resource private IMessageService messageService; - @Autowired + @Resource private IProLogService proLogService; - @Autowired + @Resource private Snowflake snowflake; - @Autowired + @Resource private IRobotService robotService; + @Resource + private ProRemindDao proRemindDao; @Override public void saveProTaskSubTask(ProTaskSubTime proTaskSubTime) { @@ -265,8 +271,6 @@ public class TaskSubTimeService implements ITaskSubTimeService { messageUser1998.setUserId(1998L); messageUserList.add(messageUser1998); -// syncMessage.setData(syncMessageData); -// syncMessage.setReceivers(messageUserList); Long duration = taskSubTime.getEndTime() - taskSubTime.getBeginTime(); SyncMessageWithStartDto syncMessage = new SyncMessageWithStartDto(startTaskDto.getProjectId(),null,messageUserList, startTaskDto.getRoleId(),taskSubTime.getTaskDetailId(),null,now,duration,player); @@ -312,7 +316,7 @@ public class TaskSubTimeService implements ITaskSubTimeService { detail.setParentId(addTask.getParentTaskId()); detail.setExecutorRole(addTask.getExecutorId()); - SysProject project = null; + SysProject project; if (ObjectUtil.isNotNull(addTask.getProjectId())) { project = sysProjectDao.selectByPrimaryKey(addTask.getProjectId()); if (ObjectUtil.isNotNull(project)) { @@ -338,12 +342,9 @@ public class TaskSubTimeService implements ITaskSubTimeService { detail.setBeginTime(System.currentTimeMillis()); detail.setEndTime(com.ccsens.util.DateUtil.getYMD(DateUtil.tomorrow()).getTime()); } -// taskDetail.setHasGroup((byte) 1); -// taskDetailDao.updateByPrimaryKeySelective(taskDetail); } else { throw new BaseException("任务信息不正确"); } -// } } else { detail.setLevel((byte) 1); } @@ -435,8 +436,7 @@ public class TaskSubTimeService implements ITaskSubTimeService { /** * 清空项目下所有任务的实际开始结束时间,和运行状态 - * - * @param projectId + * @param projectId 项目id */ @Override public void clearTaskRealTime(Long projectId) { @@ -528,4 +528,58 @@ public class TaskSubTimeService implements ITaskSubTimeService { taskSubTimeDao.updateByPrimaryKeySelective(proTaskSubTime); } } + + + @Override + public void saveRemind(Long userId,TaskDto.TaskRemind taskRemind) throws Exception { + ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(taskRemind.getTaskId()); + if(ObjectUtil.isNull(proTaskSubTime)){ + throw new BaseException(CodeEnum.NOT_TASK); + } + ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); + if(ObjectUtil.isNull(proTaskDetail)){ + throw new BaseException(CodeEnum.NOT_TASK); + } + //判断用户是否是任务的负责人 + ProRole role = proRoleDao.selectByPrimaryKey(proTaskDetail.getExecutorRole()); + Boolean isBelongRole = proMemberService.userIsBelongRole(userId, role.getId()); + if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole) { + log.info("此用户不是该任务的负责人:{}", role); + throw new BaseException(CodeEnum.IS_NOT_EXECUTOR); + } + Long absoluteTime = 0L; + //计算提醒的绝对时间 + switch (taskRemind.getRemindTiming()) { + case TallConstant.TaskRemindTiming.REMIND_TASK_BEFORE_START: + absoluteTime = proTaskSubTime.getBeginTime() - taskRemind.getDuration(); + break; + case TallConstant.TaskRemindTiming.REMIND_TASK_START: + absoluteTime = proTaskSubTime.getBeginTime(); + break; + case TallConstant.TaskRemindTiming.REMIND_TASK_AFTER_START: + absoluteTime = proTaskSubTime.getBeginTime() + taskRemind.getDuration(); + break; + case TallConstant.TaskRemindTiming.REMIND_TASK_BEFORE_END: + absoluteTime = proTaskSubTime.getEndTime() - taskRemind.getDuration(); + break; + case TallConstant.TaskRemindTiming.REMIND_TASK_END: + absoluteTime = proTaskSubTime.getEndTime(); + break; + case TallConstant.TaskRemindTiming.REMIND_TASK_AFTER_END: + absoluteTime = proTaskSubTime.getEndTime() + taskRemind.getDuration(); + break; + case TallConstant.TaskRemindTiming.REMIND_TASK_USER_DEFINED: + absoluteTime = taskRemind.getDuration(); + break; + default: + } + //添加提醒信息 + ProRemind remind = new ProRemind(); + remind.setId(snowflake.nextId()); + remind.setSubTaskId(taskRemind.getTaskId()); + remind.setRemindTiming(taskRemind.getRemindTiming()); + remind.setRemindAbsoluteTime(absoluteTime); + remind.setFinishStatus((byte) 0); + proRemindDao.insertSelective(remind); + } } diff --git a/tall/src/main/java/com/ccsens/tall/util/TallConstant.java b/tall/src/main/java/com/ccsens/tall/util/TallConstant.java index 4633ea08..817f7578 100644 --- a/tall/src/main/java/com/ccsens/tall/util/TallConstant.java +++ b/tall/src/main/java/com/ccsens/tall/util/TallConstant.java @@ -26,4 +26,23 @@ public class TallConstant { public static String getUpdateNickname(String nickname){ return UPDATE_ACCOUNT + nickname; } + + public static final class TaskRemindTiming { + /**不提醒*/ + public static final byte REMIND_NONE = 0; + /**开始前*/ + public static final byte REMIND_TASK_BEFORE_START = 1; + /**开始时*/ + public static final byte REMIND_TASK_START = 2; + /**开始后*/ + public static final byte REMIND_TASK_AFTER_START = 3; + /**结束前*/ + public static final byte REMIND_TASK_BEFORE_END = 4; + /**结束时*/ + public static final byte REMIND_TASK_END = 5; + /**结束后*/ + public static final byte REMIND_TASK_AFTER_END = 6; + /**自定义*/ + public static final byte REMIND_TASK_USER_DEFINED = 7; + } } 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 ffcd12c8..d850fcd2 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java @@ -114,19 +114,21 @@ public class ProjectController { @ApiImplicitParam(name = "startTime", value = "开始时间", required = true, paramType = "query"), @ApiImplicitParam(name = "endTime", value = "结束时间", required = true, paramType = "query"), @ApiImplicitParam(name = "process", value = "完成状态 0全部,1完成,2未完成", required = true, paramType = "query"), - @ApiImplicitParam(name = "page", value = "页数", required = true, paramType = "query") + @ApiImplicitParam(name = "page", value = "页数", required = true, paramType = "query"), + @ApiImplicitParam(name = "priority", value = "优先级排序 0无 1倒叙(优先级高的在前) 2正序", required = true, paramType = "query") }) @RequestMapping(value = "/{id}/tasks", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) public JsonResponse getTasksByRoleId(HttpServletRequest request, @PathVariable("id") Long projectId, @RequestParam(required = true) Long roleId, Integer page, - Long startTime, Long endTime, Integer process) throws Exception{ + Long startTime, Long endTime, Integer process,Integer priority) throws Exception{ Integer pageSize = 10; page = page == null ? 1 : page; process = process == null ? 0 : process; + priority = priority == null ? 0 :priority; Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - Object proTaskInfo = taskDetailService.getTasksByRoleId(currentUserId,projectId,roleId,startTime,endTime,process,page,pageSize); + Object proTaskInfo = taskDetailService.getTasksByRoleId(currentUserId,projectId,roleId,startTime,endTime,process,page,pageSize,priority); return JsonResponse.newInstance().ok(proTaskInfo); } diff --git a/tall/src/main/java/com/ccsens/tall/web/TaskController.java b/tall/src/main/java/com/ccsens/tall/web/TaskController.java index 1ac87d43..27e1e266 100644 --- a/tall/src/main/java/com/ccsens/tall/web/TaskController.java +++ b/tall/src/main/java/com/ccsens/tall/web/TaskController.java @@ -169,16 +169,16 @@ public class TaskController { return JsonResponse.newInstance().ok(); } -// @ApiOperation(value = "给任务添加提醒", notes = "") -// @ApiImplicitParams({ -// }) -// @RequestMapping(value = "/remind", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse saveRemind(HttpServletRequest request, -// @ApiParam @Validated @RequestBody TaskDto.ChangeKanbanTask changeKanbanTask) throws Exception { -//// Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); -//// subTimeService.changeKanbanTake(currentUserId,changeKanbanTask); -// return JsonResponse.newInstance().ok(); -// } + @ApiOperation(value = "给任务添加提醒", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/remind", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse saveRemind(HttpServletRequest request, + @ApiParam @Validated @RequestBody TaskDto.TaskRemind taskRemind) throws Exception { + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); + subTimeService.saveRemind(currentUserId,taskRemind); + return JsonResponse.newInstance().ok(); + } //============================================================== diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index c88e995d..b2acd365 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index d33e337b..701b5a18 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -127,7 +127,14 @@ group by s.task_detail_id,sp.id )t GROUP BY t.tSubTimeId - order by t.tDetailId + order by + + t.priority DESC, + + + t.priority, + + t.tDetailId diff --git a/tall/src/main/resources/mapper_raw/ProRemindMapper.xml b/tall/src/main/resources/mapper_raw/ProRemindMapper.xml new file mode 100644 index 00000000..3e867bb8 --- /dev/null +++ b/tall/src/main/resources/mapper_raw/ProRemindMapper.xml @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + 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, sub_task_id, remind_timing, remind_absolute_time, finish_status, remind_times, + created_at, updated_at, rec_status + + + + + delete from t_pro_remind + where id = #{id,jdbcType=BIGINT} + + + delete from t_pro_remind + + + + + + insert into t_pro_remind (id, sub_task_id, remind_timing, + remind_absolute_time, finish_status, remind_times, + created_at, updated_at, rec_status + ) + values (#{id,jdbcType=BIGINT}, #{subTaskId,jdbcType=BIGINT}, #{remindTiming,jdbcType=TINYINT}, + #{remindAbsoluteTime,jdbcType=BIGINT}, #{finishStatus,jdbcType=TINYINT}, #{remindTimes,jdbcType=INTEGER}, + #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT} + ) + + + insert into t_pro_remind + + + id, + + + sub_task_id, + + + remind_timing, + + + remind_absolute_time, + + + finish_status, + + + remind_times, + + + created_at, + + + updated_at, + + + rec_status, + + + + + #{id,jdbcType=BIGINT}, + + + #{subTaskId,jdbcType=BIGINT}, + + + #{remindTiming,jdbcType=TINYINT}, + + + #{remindAbsoluteTime,jdbcType=BIGINT}, + + + #{finishStatus,jdbcType=TINYINT}, + + + #{remindTimes,jdbcType=INTEGER}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + + + + update t_pro_remind + + + id = #{record.id,jdbcType=BIGINT}, + + + sub_task_id = #{record.subTaskId,jdbcType=BIGINT}, + + + remind_timing = #{record.remindTiming,jdbcType=TINYINT}, + + + remind_absolute_time = #{record.remindAbsoluteTime,jdbcType=BIGINT}, + + + finish_status = #{record.finishStatus,jdbcType=TINYINT}, + + + remind_times = #{record.remindTimes,jdbcType=INTEGER}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + + + + + + update t_pro_remind + set id = #{record.id,jdbcType=BIGINT}, + sub_task_id = #{record.subTaskId,jdbcType=BIGINT}, + remind_timing = #{record.remindTiming,jdbcType=TINYINT}, + remind_absolute_time = #{record.remindAbsoluteTime,jdbcType=BIGINT}, + finish_status = #{record.finishStatus,jdbcType=TINYINT}, + remind_times = #{record.remindTimes,jdbcType=INTEGER}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT} + + + + + + update t_pro_remind + + + sub_task_id = #{subTaskId,jdbcType=BIGINT}, + + + remind_timing = #{remindTiming,jdbcType=TINYINT}, + + + remind_absolute_time = #{remindAbsoluteTime,jdbcType=BIGINT}, + + + finish_status = #{finishStatus,jdbcType=TINYINT}, + + + remind_times = #{remindTimes,jdbcType=INTEGER}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_pro_remind + set sub_task_id = #{subTaskId,jdbcType=BIGINT}, + remind_timing = #{remindTiming,jdbcType=TINYINT}, + remind_absolute_time = #{remindAbsoluteTime,jdbcType=BIGINT}, + finish_status = #{finishStatus,jdbcType=TINYINT}, + remind_times = #{remindTimes,jdbcType=INTEGER}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml b/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml index 93660639..c3010fd1 100644 --- a/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml +++ b/tall/src/main/resources/mapper_raw/ProTaskDetailMapper.xml @@ -28,6 +28,7 @@ + @@ -91,7 +92,7 @@ id, project_id, name, description, begin_time, end_time, cycle, parent_id, sub_task, sub_project_id, sub_project, executor_role, checker_role, money, delay, delay_time, loop_to, loop_times, virtual, level, has_group, finish_need_all, all_member, created_at, - updated_at, rec_status + updated_at, rec_status, priority @@ -393,6 +402,9 @@ rec_status = #{record.recStatus,jdbcType=TINYINT}, + + priority = #{record.priority,jdbcType=TINYINT}, + @@ -425,7 +437,8 @@ all_member = #{record.allMember,jdbcType=TINYINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{record.recStatus,jdbcType=TINYINT} + rec_status = #{record.recStatus,jdbcType=TINYINT}, + priority = #{record.priority,jdbcType=TINYINT} @@ -508,6 +521,9 @@ rec_status = #{recStatus,jdbcType=TINYINT}, + + priority = #{priority,jdbcType=TINYINT}, + where id = #{id,jdbcType=BIGINT} @@ -537,7 +553,8 @@ all_member = #{allMember,jdbcType=TINYINT}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, - rec_status = #{recStatus,jdbcType=TINYINT} + rec_status = #{recStatus,jdbcType=TINYINT}, + priority = #{priority,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file