提交 f388f23d authored 作者: gongwenjie's avatar gongwenjie

Merge branch 'master' of git.yfzx.zjtys.com.cn:zjm/notes2.0

package com.zjty.tynotes.job.basic.controller; package com.zjty.tynotes.job.basic.controller;//package com.zjty.tynotes.job.basic.controller;
//
import com.zjty.tynotes.job.basic.entity.database.Comment; //import com.zjty.tynotes.job.basic.entity.database.Comment;
import com.zjty.tynotes.job.basic.entity.response.JobResponse; //import com.zjty.tynotes.job.basic.entity.response.JobResponse;
import com.zjty.tynotes.job.basic.service.CommentService; //import com.zjty.tynotes.job.basic.service.CommentService;
import com.zjty.tynotes.job.status.service.BusinessTreeManagement; //import com.zjty.tynotes.job.status.service.BusinessTreeManagement;
import com.zjty.tynotes.misc.config.AutoDocument; //import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.Api; //import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; //import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; //import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; //import org.springframework.web.bind.annotation.*;
//
import java.util.Date; //import java.util.Date;
//
import static org.springframework.http.ResponseEntity.ok; //import static org.springframework.http.ResponseEntity.ok;
//
/** ///**
* <p>Description : ty-note-backend // * <p>Description : ty-note-backend
* <p>Date : 2019/4/28 10:28 // * <p>Date : 2019/4/28 10:28
* <p>@author : C // * <p>@author : C
*/ // */
@AutoDocument //@AutoDocument
@Api(tags = "工作记录相关接口", description = "工作记录模块") //@Api(tags = "工作记录相关接口", description = "工作记录模块")
@RestController //@RestController
@RequestMapping("/job/comment") //@RequestMapping("/job/comment")
public class CommentController { //public class CommentController {
//
private final // private final
CommentService commentService; // CommentService commentService;
//
@Autowired // @Autowired
private BusinessTreeManagement businessTreeManagement; // private BusinessTreeManagement businessTreeManagement;
//
@Autowired // @Autowired
public CommentController(CommentService commentService) { // public CommentController(CommentService commentService) {
this.commentService = commentService; // this.commentService = commentService;
} // }
//
@PostMapping(value = "/{workId}") // @PostMapping(value = "/{workId}")
@ApiOperation(value = "新增留言并将其添加到所属工作中.", notes = "新增不可在数据中附带id.需要在路径中指定所属工作的id.成功时返回新增数据保存的id.") // @ApiOperation(value = "新增留言并将其添加到所属工作中.", notes = "新增不可在数据中附带id.需要在路径中指定所属工作的id.成功时返回新增数据保存的id.")
public ResponseEntity<JobResponse> add(@RequestBody Comment comment, @PathVariable String workId) { // public ResponseEntity<JobResponse> add(@RequestBody Comment comment, @PathVariable String workId) {
String saveId = commentService.add(comment, workId); // String saveId = commentService.add(comment, workId);
businessTreeManagement.saveAction(comment.getCommentator(),workId,7,new Date(),""); // businessTreeManagement.saveAction(comment.getCommentator(),workId,7,new Date(),"");
return ok(new JobResponse(saveId)); // return ok(new JobResponse(saveId));
} // }
//
@PutMapping() // @PutMapping()
@ApiOperation(value = "修改留言.", notes = "修改必须在数据中附带id.") // @ApiOperation(value = "修改留言.", notes = "修改必须在数据中附带id.")
public ResponseEntity<JobResponse> modify(@RequestBody Comment comment) { // public ResponseEntity<JobResponse> modify(@RequestBody Comment comment) {
String saveId = commentService.modify(comment); // String saveId = commentService.modify(comment);
return ok(new JobResponse(saveId)); // return ok(new JobResponse(saveId));
} // }
//
@DeleteMapping("/{commentId}") // @DeleteMapping("/{commentId}")
@ApiOperation(value = "根据id删除留言.") // @ApiOperation(value = "根据id删除留言.")
public ResponseEntity<JobResponse> delete(@PathVariable String commentId) { // public ResponseEntity<JobResponse> delete(@PathVariable String commentId) {
return ok(new JobResponse(commentId)); // return ok(new JobResponse(commentId));
} // }
} //}
package com.zjty.tynotes.job.basic.controller;
import com.zjty.tynotes.job.basic.entity.database.ScoreCoefficient;
import com.zjty.tynotes.job.basic.entity.response.JobResponse;
import com.zjty.tynotes.job.basic.service.ScoreCoefficientService;
import com.zjty.tynotes.job.common.Action;
import com.zjty.tynotes.job.status.service.BusinessTreeManagement;
import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import static org.springframework.http.ResponseEntity.ok;
/**
* <p>Description : ty-note-backend
* <p>Date : 2019/5/5 10:08
* <p>@author : C
*/
@AutoDocument
@Api(tags = "工作记录相关接口", description = "工作记录模块")
@RestController
@RequestMapping("/job/sc")
public class ScController {
private final
ScoreCoefficientService scoreCoefficientService;
@Autowired
BusinessTreeManagement businessTreeManagement;
@Autowired
public ScController(ScoreCoefficientService scoreCoefficientService) {
this.scoreCoefficientService = scoreCoefficientService;
}
@PostMapping("/")
@ApiOperation(value = "新增考评信息.", notes = "新增不可在数据中附带id.成功时返回新增数据保存的id.")
public ResponseEntity<JobResponse> add(@RequestBody ScoreCoefficient scoreCoefficient,
@RequestParam String userId) {
String saveId = scoreCoefficientService.add(scoreCoefficient);
businessTreeManagement.saveAction(userId,scoreCoefficient.getWordId(),Action.APPRAISAL_WORD,new Date(),"");
return ok(new JobResponse(saveId));
}
@PutMapping("/upDate")
@ApiOperation(value = "考评信息修改.", notes = "修改必须在数据中附带id.")
public ResponseEntity<JobResponse> modify(@RequestBody ScoreCoefficient scoreCoefficient,
@RequestParam String userId) {
String saveId = scoreCoefficientService.modify(scoreCoefficient);
businessTreeManagement.saveAction(userId,scoreCoefficient.getWordId(),Action.APPRAISAL_WORD,new Date(),"");
return ok(new JobResponse(saveId));
}
}
package com.zjty.tynotes.job.basic.entity.database;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "评分", description = "评分对象")
public class ScoreCoefficient {
/**
* 编号
*/
@ApiModelProperty(value = "编号", example = "id")
private String id;
/**
* 任务id
*/
@ApiModelProperty(value = "任务id", example = "任务id")
private String wordId;
/**
* 自评分
*/
@ApiModelProperty(value = "自评分", example = "score1")
private String score1;
/**
* 自评评语
*/
@ApiModelProperty(value = "自评评语", example = "comments1")
private String comments1;
/**
* 发布者评价
*/
@ApiModelProperty(value = "发布者评价", example = "score2")
private String score2;
/**
* 发布者评语
*/
@ApiModelProperty(value = "发布者评语", example = "comments2")
private String comments2;
/**
* 最终评价
* 发布者的直接上级或更上级
*/
@ApiModelProperty(value = "最终评价", example = "score3")
private String score3;
/**
* 最终评语
*/
@ApiModelProperty(value = "最终评语", example = "comments3")
private String comments3;
/**
* 最终工作量
*/
@ApiModelProperty(value = "最终工作量", example = "endWorkLoad")
private int endWorkLoad;
}
...@@ -32,6 +32,13 @@ public class Work { ...@@ -32,6 +32,13 @@ public class Work {
@Id @Id
@ApiModelProperty(value = "id.若新增数据则不可附带id.更新已有数据则必须附带id.", example = "id", notes = "若新增数据则不可附带id.更新已有数据则必须附带id") @ApiModelProperty(value = "id.若新增数据则不可附带id.更新已有数据则必须附带id.", example = "id", notes = "若新增数据则不可附带id.更新已有数据则必须附带id")
private String id; private String id;
/**
* 上级任务id
*/
@Id
@ApiModelProperty(value = "上级任务id", example = "superiorId")
private String superiorId;
/** /**
* 标题 * 标题
*/ */
...@@ -44,6 +51,20 @@ public class Work { ...@@ -44,6 +51,20 @@ public class Work {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "创建时间", example = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "创建时间", example = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
/**
* 任务开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "开始时间", example = "yyyy-MM-dd HH:mm:ss")
private Date stateTime;
/**
* 任务结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "结束时间", example = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/** /**
* 预计完成时间 * 预计完成时间
*/ */
...@@ -67,20 +88,15 @@ public class Work { ...@@ -67,20 +88,15 @@ public class Work {
* 执行者id * 执行者id
*/ */
@NotNull @NotNull
@ApiModelProperty(value = "执行者的用户id.", example = "id") @ApiModelProperty(value = "组长id.", example = "id")
private String executor; private String executor;
/** /**
* 审核者id集合 * 组员id集合
*/
@NotNull
@ApiModelProperty(value = "审核者的用户id集合.", example = "[\"id\",\"id\"]")
private List<String> checker;
/**
* 关注者id集合
*/ */
@NotNull @NotNull
@ApiModelProperty(value = "关注者的用户id集合.", example = "[\"id\",\"id\"]") @ApiModelProperty(value = "组原id集合.", example = "[\"id\",\"id\"]")
private List<String> follower; private List<String> crewList;
/** /**
* 附件id * 附件id
...@@ -89,12 +105,6 @@ public class Work { ...@@ -89,12 +105,6 @@ public class Work {
@ApiModelProperty(value = "附件的id集合.", example = "[\"id\",\"id\"]") @ApiModelProperty(value = "附件的id集合.", example = "[\"id\",\"id\"]")
private List<String> attachment; private List<String> attachment;
/**
* 留言id
*/
@NotNull
@ApiModelProperty(value = "留言的id集合.", example = "[\"id\",\"id\"]")
private List<String> comment;
/*工作内容*/ /*工作内容*/
/** /**
...@@ -105,25 +115,39 @@ public class Work { ...@@ -105,25 +115,39 @@ public class Work {
@ApiModelProperty(value = "内容", example = "内容...............", notes = "内容字数有上限3000个字,上限可设置.") @ApiModelProperty(value = "内容", example = "内容...............", notes = "内容字数有上限3000个字,上限可设置.")
private String content; private String content;
/** /**
* 是否为正式的 * 工作量
* 正式的是在工作簿页面上显示的
* 非正式的是不在工作簿页面上显示的 目前就是草稿
* <p>
* 申请任务时只能指定审核者和关注者
* 申请的任务转正后发布者为审核者 执行者为申请者
*/ */
@NotNull @NotNull
@ApiModelProperty(value = "是否为正式的.正式的是在工作簿页面上显示的.非正式的目前就是草稿.", example = "true") @ApiModelProperty(value = "工作量",example = "30")
private Boolean isFormal; private int workload;
/** /**
* 工作状态 * 工作状态
* 目前有:进行中、已提交、已完结 * 目前有:未发布、进行中、待审核、待考评
*/ */
@NotEmpty @NotEmpty
@NotNull @NotNull
@ApiModelProperty(value = "状态.进行中:underway、已提交:committed、已完结:finished", example = "finished") @ApiModelProperty(value = "状态.进行中:underway、已提交:committed、已完结:finished", example = "finished")
private String status; private String status;
/**
* 考评系数
*/
@NotNull
@ApiModelProperty(value = "考评系数",example = "0.8")
private int workCoefficient;
/**
* 是否记录个人工作量
*/
private int pWorkload=1;
/**
* 是否记录任务工作量
*/
private int workloadCount=1;
} }
package com.zjty.tynotes.job.basic.entity.request;
import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@AutoDocument
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "修改任务组员", description = "修改任务组员请求数据对象")
public class UpdateCrew {
@ApiModelProperty(value = "操作人id", example = "userid")
private String userid;
@ApiModelProperty(value = "任务id", example = "workId")
private String workId;
@ApiModelProperty(value = "组员id", example = "users")
private List<String> users;
@ApiModelProperty(value = "说明", example = "msg")
private String msg;
}
...@@ -2,7 +2,6 @@ package com.zjty.tynotes.job.basic.entity.response; ...@@ -2,7 +2,6 @@ package com.zjty.tynotes.job.basic.entity.response;
import com.zjty.tynotes.job.basic.entity.database.Attachment; import com.zjty.tynotes.job.basic.entity.database.Attachment;
import com.zjty.tynotes.misc.config.AutoDocument; import com.zjty.tynotes.misc.config.AutoDocument;
import com.zjty.tynotes.job.basic.entity.database.Comment;
import com.zjty.tynotes.pas.entity.User; import com.zjty.tynotes.pas.entity.User;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -90,13 +89,7 @@ public class WorkVo { ...@@ -90,13 +89,7 @@ public class WorkVo {
@ApiModelProperty(value = "附件.该任务中的附件,分3种类型:初始附件、工作附件、交流附件,由Attachment模型中的type属性区分附件类型.") @ApiModelProperty(value = "附件.该任务中的附件,分3种类型:初始附件、工作附件、交流附件,由Attachment模型中的type属性区分附件类型.")
private List<Attachment> attachment; private List<Attachment> attachment;
/**
* 留言
*
* @see CommentVo
*/
@ApiModelProperty(value = "留言")
private List<CommentVo> comment;
/*工作内容*/ /*工作内容*/
/** /**
...@@ -105,16 +98,7 @@ public class WorkVo { ...@@ -105,16 +98,7 @@ public class WorkVo {
*/ */
@ApiModelProperty(value = "内容", example = "若是内容过多,将显示滚动条,同时,内容字数有上限3000个字,上限可设置,若是内容超出,请附件。") @ApiModelProperty(value = "内容", example = "若是内容过多,将显示滚动条,同时,内容字数有上限3000个字,上限可设置,若是内容超出,请附件。")
private String content; private String content;
/**
* 是否为正式的
* 正式的是在工作簿页面上显示的
* 非正式的是不在工作簿页面上显示的 目前就是草稿
* <p>
* 申请任务时只能指定审核者和关注者
* 申请的任务转正后发布者为审核者 执行者为申请者
*/
@ApiModelProperty(value = "是否为正式.正式的是在工作簿页面上显示的;非正式的是草稿.", example = "true", notes = "正式的是在工作簿页面上显示的;非正式的是草稿")
private Boolean isFormal;
/** /**
* Job状态 * Job状态
......
...@@ -6,8 +6,7 @@ import org.springframework.stereotype.Repository; ...@@ -6,8 +6,7 @@ import org.springframework.stereotype.Repository;
/** /**
* <p>Description : note * <p>Description : note
* <p>Date : 2019/4/25 11:28 * <p>@author : zjm
* <p>@author : C
*/ */
@Repository @Repository
public interface CommentRepository extends MongoRepository<Comment, String> { public interface CommentRepository extends MongoRepository<Comment, String> {
......
package com.zjty.tynotes.job.basic.repository;
import com.zjty.tynotes.job.basic.entity.database.ScoreCoefficient;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ScoreCoefficientRepository extends MongoRepository<ScoreCoefficient, String> {
}
...@@ -2,12 +2,8 @@ package com.zjty.tynotes.job.basic.repository; ...@@ -2,12 +2,8 @@ package com.zjty.tynotes.job.basic.repository;
import com.zjty.tynotes.job.basic.entity.database.Work; import com.zjty.tynotes.job.basic.entity.database.Work;
import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
/** /**
* <p>Description : note * <p>Description : note
* <p>Date : 2019/4/23 9:45 * <p>Date : 2019/4/23 9:45
......
package com.zjty.tynotes.job.basic.service; package com.zjty.tynotes.job.basic.service;//package com.zjty.tynotes.job.basic.service;
//
import com.zjty.tynotes.job.basic.entity.database.Comment; //import com.zjty.tynotes.job.basic.entity.database.Comment;
import com.zjty.tynotes.job.basic.service.impl.CommentServiceImpl; //import com.zjty.tynotes.job.basic.service.impl.CommentServiceImpl;
import org.springframework.stereotype.Service; //import org.springframework.stereotype.Service;
//
import java.util.List; //import java.util.List;
//
/** ///**
* <p>Description : note // * <p>Description : note
* <p>Date : 2019/4/23 14:43 // * <p>Date : 2019/4/23 14:43
* <p>@author : C // * <p>@author : C
* 实现类见↓ // * 实现类见↓
* // *
* @see CommentServiceImpl // * @see //CommentServiceImpl
*/ // */
@Service //@Service
public interface CommentService { //public interface CommentService {
//
/** // /**
* 新增Comment // * 新增Comment
* 不可附带id // * 不可附带id
* // *
* @param comment Comment对象 // * @param comment Comment对象
* @return 新增对象的id // * @return 新增对象的id
*/ // */
String add(Comment comment); // String add(Comment comment);
//
/** // /**
* 根据workId新增Comment并与所属Work建立关系 // * 根据workId新增Comment并与所属Work建立关系
* 不可附带id // * 不可附带id
* // *
* @param comment Comment对象 // * @param comment Comment对象
* @param workId 所属工作Id // * @param workId 所属工作Id
* @return Comment对象的id // * @return Comment对象的id
*/ // */
String add(Comment comment, String workId); // String add(Comment comment, String workId);
//
/** // /**
* 修改Comment // * 修改Comment
* 必须附带id // * 必须附带id
* // *
* @param comment Comment对象 // * @param comment Comment对象
* @return 更新对象的id // * @return 更新对象的id
*/ // */
String modify(Comment comment); // String modify(Comment comment);
//
/** // /**
* 查询所有 // * 查询所有
* // *
* @return 对象集合 // * @return 对象集合
*/ // */
List<Comment> findAll(); // List<Comment> findAll();
//
/** // /**
* 根据id集合查询所有 // * 根据id集合查询所有
* // *
* @param ids id集合 // * @param ids id集合
* @return 对象集合 // * @return 对象集合
*/ // */
List<Comment> findAll(List<String> ids); // List<Comment> findAll(List<String> ids);
//
/** // /**
* 根据id删除 // * 根据id删除
* // *
* @param id 指定id // * @param id 指定id
*/ // */
void delete(String id); // void delete(String id);
//
/** // /**
* 删除所有数据 // * 删除所有数据
*/ // */
void deleteAll(); // void deleteAll();
} //}
package com.zjty.tynotes.job.basic.service;
import com.zjty.tynotes.job.basic.entity.database.ScoreCoefficient;
public interface ScoreCoefficientService {
/**
* 新增工作
* 不可附带id
* 判断上级任务id是否存在,存在者减去这次任务设置的分数
* @param scoreCoefficient 考评对象
* @return 新增对象的id
*/
String add(ScoreCoefficient scoreCoefficient);
/**
* 修改工作
* 必须附带id
*
* @param scoreCoefficient 考评对象
* @return 更新对象的id
*/
String modify(ScoreCoefficient scoreCoefficient);
/**
* 指定id的Work是否存在
*
* @param Id 指定id
* @return 是否存在
*/
Boolean idExists(String Id);
/**
* 查找指定id的Work
*
* @param id 指定id
* @return ScoreCoefficient 对象
*/
ScoreCoefficient findById(String id);
}
package com.zjty.tynotes.job.basic.service; package com.zjty.tynotes.job.basic.service;//package com.zjty.tynotes.job.basic.service;
//
import com.zjty.tynotes.job.basic.entity.database.Work; //import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.entity.response.WorkVo; //import com.zjty.tynotes.job.basic.entity.response.WorkVo;
import com.zjty.tynotes.job.basic.service.impl.TransHelperImpl; //import com.zjty.tynotes.job.basic.service.impl.TransHelperImpl;
import org.springframework.stereotype.Service; //import org.springframework.stereotype.Service;
//
/** ///**
* <p>Description : note // * <p>Description : note
* <p>Date : 2019/4/23 11:33 // * <p>Date : 2019/4/23 11:33
* <p>@author : C // * <p>@author : C
* 实现类见↓ // * 实现类见↓
* // *
* @see TransHelperImpl // * @see TransHelperImpl
*/ // */
@Service //@Service
public interface TransHelper { //public interface TransHelper {
//
/** // /**
* 把DataBase类型对象转换成Vo类型对象(DataBase类型用于存储 Vo类型用于跟前端交互) // * 把DataBase类型对象转换成Vo类型对象(DataBase类型用于存储 Vo类型用于跟前端交互)
* // *
* @param work Work对象 // * @param work Work对象
* @return WorkVo对象 // * @return WorkVo对象
*/ // */
WorkVo transToVo(Work work); // WorkVo transToVo(Work work);
//
/** // /**
* 把Vo类型对象转换成DataBase类型对象(DataBase类型用于存储 Vo类型用于跟前端交互) // * 把Vo类型对象转换成DataBase类型对象(DataBase类型用于存储 Vo类型用于跟前端交互)
* // *
* @param workVo WorkVo对象 // * @param workVo WorkVo对象
* @return Work // * @return Work
*/ // */
Work transToDataBase(WorkVo workVo); // Work transToDataBase(WorkVo workVo);
//
} //}
...@@ -21,7 +21,7 @@ public interface WorkService { ...@@ -21,7 +21,7 @@ public interface WorkService {
/** /**
* 新增工作 * 新增工作
* 不可附带id * 不可附带id
* * 判断上级任务id是否存在,存在者减去这次任务设置的分数
* @param work Work对象 * @param work Work对象
* @return 新增对象的id * @return 新增对象的id
*/ */
...@@ -79,6 +79,38 @@ public interface WorkService { ...@@ -79,6 +79,38 @@ public interface WorkService {
*/ */
void deleteAll(); void deleteAll();
/**
* 修改任务的状态
* @param taskId 任务id
* @param status 要修改的状态
*/
void alterTaskStatus(String taskId, String status);
/**
* 逻辑删除任务
* @param taskId 任务id
* @param personalWorkload 是否记录个人工作量 默认记录1 0 为不记录
* @param workloadCount 是否记录任务总工作量
*/
void deleteWork(String taskId, int personalWorkload, int workloadCount);
/**
* 修改任务 组员
* @param taskId 任务id
*
* @param crews 组员名单
*/
void updateWorkCrew(String taskId, List<String> crews);
/**
* 修改任务 组员
* @param taskId 任务id
*
* @param workload 工作量
* @param workCoefficient 考评系数 只能修改0.1-0.2
*/
void updateWorkload(String taskId, int workload, int workCoefficient);
// /** // /**
// * 查看正在进行中的任务 // * 查看正在进行中的任务
// */ // */
......
package com.zjty.tynotes.job.basic.service.impl; package com.zjty.tynotes.job.basic.service.impl;//package com.zjty.tynotes.job.basic.service.impl;
//
import com.google.common.collect.Lists; //import com.google.common.collect.Lists;
import com.zjty.tynotes.job.basic.entity.database.Comment; //import com.zjty.tynotes.job.basic.entity.database.Comment;
import com.zjty.tynotes.job.basic.entity.database.Work; //import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.repository.CommentRepository; //import com.zjty.tynotes.job.basic.repository.CommentRepository;
import com.zjty.tynotes.job.basic.service.CommentService; //import com.zjty.tynotes.job.basic.service.CommentService;
import com.zjty.tynotes.job.basic.service.WorkService; //import com.zjty.tynotes.job.basic.service.WorkService;
import com.zjty.tynotes.job.common.exception.BadRequestException; //import com.zjty.tynotes.job.common.exception.BadRequestException;
import com.zjty.tynotes.job.common.exception.NotFoundException; //import com.zjty.tynotes.job.common.exception.NotFoundException;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; //import org.springframework.stereotype.Service;
//
import java.util.Date; //import java.util.Date;
import java.util.List; //import java.util.List;
//
import static java.util.Objects.isNull; //import static java.util.Objects.isNull;
import static java.util.Objects.nonNull; //import static java.util.Objects.nonNull;
//
/** ///**
* <p>Description : note // * <p>Description : note
* <p>Date : 2019/4/24 14:25 // * <p>Date : 2019/4/24 14:25
* <p>@author : C // * <p>@author : C
* 接口定义说明见↓ // * 接口定义说明见↓
* // *
* @see CommentService // * @see CommentService
*/ // */
@Slf4j //@Slf4j
@Service //@Service
public class CommentServiceImpl implements CommentService { //public class CommentServiceImpl implements CommentService {
//
private final // private final
CommentRepository commentRepository; // CommentRepository commentRepository;
//
private final // private final
WorkService workService; // WorkService workService;
//
@Autowired // @Autowired
public CommentServiceImpl(CommentRepository commentRepository, WorkService workService) { // public CommentServiceImpl(CommentRepository commentRepository, WorkService workService) {
this.commentRepository = commentRepository; // this.commentRepository = commentRepository;
this.workService = workService; // this.workService = workService;
} // }
//
@Override // @Override
public String add(Comment comment) { // public String add(Comment comment) {
//新增数据不可附带id // //新增数据不可附带id
Boolean idMustNull = isNull(comment.getId()); // Boolean idMustNull = isNull(comment.getId());
if (idMustNull) { // if (idMustNull) {
//更新时间 // //更新时间
comment.setCreateTime(new Date()); // comment.setCreateTime(new Date());
comment.setUpdateTime(new Date()); // comment.setUpdateTime(new Date());
String saveId = commentRepository.save(comment).getId(); // String saveId = commentRepository.save(comment).getId();
log.info(String.format("[job] 新增了id为 %s 的数据.", saveId)); // log.info(String.format("[job] 新增了id为 %s 的数据.", saveId));
return saveId; // return saveId;
} else { // } else {
String msg = "[job] 新增数据不可附带id."; // String msg = "[job] 新增数据不可附带id.";
log.error(msg); // log.error(msg);
throw new BadRequestException(msg); // throw new BadRequestException(msg);
} // }
//
} // }
//
@Override // @Override
public String add(Comment comment, String workId) { // public String add(Comment comment, String workId) {
Boolean idMustNull = isNull(comment.getId()); // Boolean idMustNull = isNull(comment.getId());
if (idMustNull) { // if (idMustNull) {
Boolean workMustExist = workService.idExists(workId); // Boolean workMustExist = workService.idExists(workId);
if (workMustExist) { // if (workMustExist) {
String saveId = commentRepository.save(comment).getId(); // String saveId = commentRepository.save(comment).getId();
Work work = workService.findById(workId); // Work work = workService.findById(workId);
if (isNull(work.getComment())) { // if (isNull(work.getComment())) {
work.setComment(Lists.newArrayList()); // work.setComment(Lists.newArrayList());
} // }
work.getComment().add(saveId); // work.getComment().add(saveId);
workService.modify(work); // workService.modify(work);
log.info(String.format("[job] id为 %s 的留言已添加到id为 %s 的所属工作中.", saveId, workId)); // log.info(String.format("[job] id为 %s 的留言已添加到id为 %s 的所属工作中.", saveId, workId));
return saveId; // return saveId;
} else { // } else {
String msg = "[job] 指定id的所属工作不存在."; // String msg = "[job] 指定id的所属工作不存在.";
log.error(msg); // log.error(msg);
throw new NotFoundException(msg); // throw new NotFoundException(msg);
} // }
} else { // } else {
String msg = "[job] 新增数据不可附带id."; // String msg = "[job] 新增数据不可附带id.";
log.error(msg); // log.error(msg);
throw new BadRequestException(msg); // throw new BadRequestException(msg);
} // }
} // }
//
@Override // @Override
public String modify(Comment comment) { // public String modify(Comment comment) {
Boolean idMustExist = nonNull(comment.getId()); // Boolean idMustExist = nonNull(comment.getId());
if (idMustExist) { // if (idMustExist) {
if (commentRepository.existsById(comment.getId())) { // if (commentRepository.existsById(comment.getId())) {
comment.setUpdateTime(new Date()); // comment.setUpdateTime(new Date());
String modifyId = commentRepository.save(comment).getId(); // String modifyId = commentRepository.save(comment).getId();
log.info(String.format("[job] 修改了id为 %s 的数据.", modifyId)); // log.info(String.format("[job] 修改了id为 %s 的数据.", modifyId));
return modifyId; // return modifyId;
} else { // } else {
String msg = "[job] 指定id的数据不存在."; // String msg = "[job] 指定id的数据不存在.";
log.error(msg); // log.error(msg);
throw new NotFoundException(msg); // throw new NotFoundException(msg);
} // }
} else { // } else {
String msg = "[job] 修改必须在数据中附带id."; // String msg = "[job] 修改必须在数据中附带id.";
log.error(msg); // log.error(msg);
throw new BadRequestException(msg); // throw new BadRequestException(msg);
} // }
} // }
//
@Override // @Override
public List<Comment> findAll() { // public List<Comment> findAll() {
return commentRepository.findAll(); // return commentRepository.findAll();
} // }
//
@Override // @Override
public List<Comment> findAll(List<String> ids) { // public List<Comment> findAll(List<String> ids) {
return Lists.newArrayList(commentRepository.findAllById(ids)); // return Lists.newArrayList(commentRepository.findAllById(ids));
} // }
//
@Override // @Override
public void delete(String id) { // public void delete(String id) {
//
} // }
//
@Override // @Override
public void deleteAll() { // public void deleteAll() {
commentRepository.deleteAll(); // commentRepository.deleteAll();
} // }
} //}
package com.zjty.tynotes.job.basic.service.impl;
import com.zjty.tynotes.job.basic.entity.database.ScoreCoefficient;
import com.zjty.tynotes.job.basic.repository.ScoreCoefficientRepository;
import com.zjty.tynotes.job.basic.service.ScoreCoefficientService;
import com.zjty.tynotes.job.common.exception.BadRequestException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Optional;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
@Service
@Slf4j
public class ScoreCoefficientServiceImpl implements ScoreCoefficientService {
private final
ScoreCoefficientRepository scoreCoefficientRepository;
@Autowired
public ScoreCoefficientServiceImpl(ScoreCoefficientRepository scoreCoefficientRepository) {
this.scoreCoefficientRepository = scoreCoefficientRepository;
}
@Override
public String add(ScoreCoefficient scoreCoefficient) {
Boolean idIsNull=isNull(scoreCoefficient.getId());
if (idIsNull){
String id=scoreCoefficientRepository.save(scoreCoefficient).getId();
log.info("[job] 任务{},考评添加成功,id为 {} ",scoreCoefficient.getWordId(),id);
return id;
}else {
String msg="[job] 任务"+scoreCoefficient.getWordId()+",新增考评数据不能带id.";
log.error(msg);
throw new BadRequestException(msg);
}
}
@Override
public String modify(ScoreCoefficient scoreCoefficient) {
Boolean idMustExist = (nonNull(scoreCoefficient.getId())) && (scoreCoefficientRepository.existsById(scoreCoefficient.getId()));
if (idMustExist) {
String modifyId = scoreCoefficientRepository.save(scoreCoefficient).getId();
log.info(String.format("[job] 更新了任务id为 %s 的考评数据id为 %s .", scoreCoefficient.getWordId(),modifyId));
return modifyId;
} else {
String msg = "[job] 更新数据必须指定id且指定id的数据存在.";
log.error(msg);
throw new BadRequestException(msg);
}
}
@Override
public Boolean idExists(String Id) {
return scoreCoefficientRepository.existsById(Id);
}
@Override
public ScoreCoefficient findById(String id) {
Optional<ScoreCoefficient> scoreOptional = scoreCoefficientRepository.findById(id);
return scoreOptional.orElseThrow(() -> new BadRequestException(String.format("[job] 考评id为 %s 的数据不存在.", id)));
}
}
package com.zjty.tynotes.job.basic.service.impl; package com.zjty.tynotes.job.basic.service.impl;//package com.zjty.tynotes.job.basic.service.impl;
//
import com.zjty.tynotes.job.basic.entity.database.Attachment; //import com.zjty.tynotes.job.basic.entity.database.Attachment;
import com.zjty.tynotes.job.basic.entity.database.Comment; //import com.zjty.tynotes.job.basic.entity.database.Comment;
import com.zjty.tynotes.job.basic.entity.database.Work; //import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.entity.response.CommentVo; //import com.zjty.tynotes.job.basic.entity.response.CommentVo;
import com.zjty.tynotes.job.basic.entity.response.WorkVo; //import com.zjty.tynotes.job.basic.entity.response.WorkVo;
import com.zjty.tynotes.job.basic.service.AttachmentService; //import com.zjty.tynotes.job.basic.service.AttachmentService;
import com.zjty.tynotes.job.basic.service.CommentService; //import com.zjty.tynotes.job.basic.service.CommentService;
import com.zjty.tynotes.job.basic.service.TransHelper; //import com.zjty.tynotes.job.basic.service.TransHelper;
import com.zjty.tynotes.pas.entity.User; //import com.zjty.tynotes.pas.entity.User;
import com.zjty.tynotes.pas.service.IUserService; //import com.zjty.tynotes.pas.service.IUserService;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; //import org.springframework.stereotype.Service;
//
import java.util.List; //import java.util.List;
import java.util.stream.Collectors; //import java.util.stream.Collectors;
//
/** ///**
* <p>Description : note // * <p>Description : note
* <p>Date : 2019/4/24 17:05 // * <p>Date : 2019/4/24 17:05
* <p>@author : C // * <p>@author : C
*/ // */
@Service //@Service
@Slf4j //@Slf4j
public class TransHelperImpl implements TransHelper { //public class TransHelperImpl implements TransHelper {
//
private final // private final
IUserService userService; // IUserService userService;
//
private final // private final
AttachmentService attachmentService; // AttachmentService attachmentService;
//
private final // private final
CommentService commentService; // CommentService commentService;
//
@Autowired // @Autowired
public TransHelperImpl(IUserService userService, AttachmentService attachmentService, CommentService commentService) { // public TransHelperImpl(IUserService userService, AttachmentService attachmentService, CommentService commentService) {
this.userService = userService; // this.userService = userService;
this.attachmentService = attachmentService; // this.attachmentService = attachmentService;
this.commentService = commentService; // this.commentService = commentService;
} // }
//
@Override // @Override
public WorkVo transToVo(Work work) { // public WorkVo transToVo(Work work) {
User publisher = userService.findUserById(work.getPublisher()); // User publisher = userService.findUserById(work.getPublisher());
User executor = userService.findUserById(work.getExecutor()); // User executor = userService.findUserById(work.getExecutor());
List<User> checkerList = userService.findUserByIds(work.getChecker()); // List<User> checkerList = userService.findUserByIds(work.getChecker());
List<User> followerList = userService.findUserByIds(work.getFollower()); // List<User> followerList = userService.findUserByIds(work.getFollower());
List<Attachment> attachmentList = attachmentService.findAll(work.getAttachment()); // List<Attachment> attachmentList = attachmentService.findAll(work.getAttachment());
List<Comment> commentList = commentService.findAll(work.getComment()); // List<Comment> commentList = commentService.findAll(work.getComment());
List<CommentVo> commentVoList = commentList.stream().map(this::toCommentVo).collect(Collectors.toList()); // List<CommentVo> commentVoList = commentList.stream().map(this::toCommentVo).collect(Collectors.toList());
return new WorkVo( // return new WorkVo(
work.getId(), // work.getId(),
work.getTitle(), // work.getTitle(),
work.getCreateTime(), // work.getCreateTime(),
work.getCompleteTime(), // work.getCompleteTime(),
work.getUpdateTime(), // work.getUpdateTime(),
publisher, // publisher,
executor, // executor,
checkerList, // checkerList,
followerList, // followerList,
attachmentList, // attachmentList,
commentVoList, // commentVoList,
work.getContent(), // work.getContent(),
work.getIsFormal(), // work.getIsFormal(),
work.getStatus() // work.getStatus()
); // );
} // }
//
@Override // @Override
public Work transToDataBase(WorkVo workVo) { // public Work transToDataBase(WorkVo workVo) {
return new Work( // return new Work(
workVo.getId(), // workVo.getId(),
workVo.getTitle(), // workVo.getTitle(),
workVo.getCreateTime(), // workVo.getCreateTime(),
workVo.getCompleteTime(), // workVo.getCompleteTime(),
workVo.getUpdateTime(), // workVo.getUpdateTime(),
workVo.getPublisher().getId(), // workVo.getPublisher().getId(),
workVo.getExecutor().getId(), // workVo.getExecutor().getId(),
getUserIds(workVo.getChecker()), // getUserIds(workVo.getChecker()),
getUserIds(workVo.getFollower()), // getUserIds(workVo.getFollower()),
getAttachmentIds(workVo.getAttachment()), // getAttachmentIds(workVo.getAttachment()),
getCommentIds(workVo.getComment()), // getCommentIds(workVo.getComment()),
workVo.getContent(), // workVo.getContent(),
workVo.getIsFormal(), // workVo.getIsFormal(),
workVo.getStatus() // workVo.getStatus()
); // );
} // }
//
private List<String> getUserIds(List<User> userList) { // private List<String> getUserIds(List<User> userList) {
return userList.stream() // return userList.stream()
.map(User::getId) // .map(User::getId)
.collect(Collectors.toList()); // .collect(Collectors.toList());
} // }
//
private List<String> getAttachmentIds(List<Attachment> attachmentList) { // private List<String> getAttachmentIds(List<Attachment> attachmentList) {
return attachmentList.stream() // return attachmentList.stream()
.map(Attachment::getId) // .map(Attachment::getId)
.collect(Collectors.toList()); // .collect(Collectors.toList());
} // }
//
private List<String> getCommentIds(List<CommentVo> commentVoList) { // private List<String> getCommentIds(List<CommentVo> commentVoList) {
return commentVoList.stream() // return commentVoList.stream()
.map(CommentVo::getId) // .map(CommentVo::getId)
.collect(Collectors.toList()); // .collect(Collectors.toList());
} // }
//
//
private CommentVo toCommentVo(Comment comment) { // private CommentVo toCommentVo(Comment comment) {
return new CommentVo( // return new CommentVo(
comment.getId(), // comment.getId(),
userService.findUserById(comment.getCommentator()), // userService.findUserById(comment.getCommentator()),
comment.getCreateTime(), // comment.getCreateTime(),
comment.getUpdateTime(), // comment.getUpdateTime(),
comment.getContent() // comment.getContent()
); // );
} // }
} //}
...@@ -10,9 +10,6 @@ import lombok.extern.slf4j.Slf4j; ...@@ -10,9 +10,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneOffset;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
...@@ -106,6 +103,38 @@ public class WorkServiceImpl implements WorkService { ...@@ -106,6 +103,38 @@ public class WorkServiceImpl implements WorkService {
public void deleteAll() { public void deleteAll() {
} }
@Override
public void alterTaskStatus(String taskId, String status) {
Work ob = workRepository.findById(taskId).get();
ob.setStatus(status);
workRepository.save(ob);
}
@Override
public void deleteWork(String taskId, int personalWorkload, int workloadCount) {
Work ob = workRepository.findById(taskId).get();
ob.setPWorkload(personalWorkload);
ob.setWorkloadCount(workloadCount);
workRepository.save(ob);
}
@Override
public void updateWorkCrew(String taskId, List<String> crews) {
Work ob = workRepository.findById(taskId).get();
ob.setCrewList(crews);
workRepository.save(ob);
}
@Override
public void updateWorkload(String taskId, int workload, int workCoefficient) {
Work ob = workRepository.findById(taskId).get();
ob.setWorkload(workload);
ob.setWorkCoefficient(workCoefficient);
workRepository.save(ob);
}
// @Override // @Override
// public List<Work> selectTimeWork() { // public List<Work> selectTimeWork() {
//// LocalDateTime minTime = LocalDateTime.now().with(LocalTime.MIN).atZone(ZoneOffset.ofHours(8)).ge; //// LocalDateTime minTime = LocalDateTime.now().with(LocalTime.MIN).atZone(ZoneOffset.ofHours(8)).ge;
......
package com.zjty.tynotes.job.business.service;
import com.zjty.tynotes.job.basic.entity.request.UserRo;
/**
* @author LJJ cnljj1995@gmail.com
* on 2019-05-22
*/
public interface AlterTaskService {
void alterTaskStatus(String taskId, String status);
void updateFlower(UserRo userRo);
void updateChecker(UserRo userRo);
}
package com.zjty.tynotes.job.business.service;
import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.business.service.impl.NoteMessageServiceImpl;
import com.zjty.tynotes.job.common.Action;
import org.springframework.stereotype.Service;
/**
* <p>Description : ty-note-backend
* <p>Date : 2019/5/13 10:25
* <p>@author : C
* 接口实现见
*
* @see NoteMessageServiceImpl
*/
@Service
public interface NoteMessageService {
/**
* 发生使工作变化的相关操作时(新增、修改)
* 需要记录下来
* 保存操作记录(已知操作编号的情况下)
*
* @param userId 执行该次操作的用户的id
* @param workId 该次操作涉及的工作的id
* @param action 操作编号
* @param remarks 备注内容
* 操作编号详细见↓
* @see Action
*/
void saveNoteMessage(String userId, String workId, Integer action, String remarks);
/**
* 同上
* 保存操作记录(未知操作编号的情况下)
* (先对比新旧Work对象 判断出操作编号 再保存)
*
* @param userId 执行该次操作的用户的id
* @param workId 该次操作涉及的工作的id
* @param newWork 操作后的Work对象
* @param oldWork 原Work对象
* @param remarks 备注内容
* 操作编号详细见↓
* @see Action
*/
void saveNoteMessage(String userId, String workId, Work newWork, Work oldWork, String remarks);
}
package com.zjty.tynotes.job.business.service.impl;
import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.entity.request.UserRo;
import com.zjty.tynotes.job.basic.repository.WorkRepository;
import com.zjty.tynotes.job.business.service.AlterTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import javax.management.Query;
import java.util.Optional;
/**
* @author LJJ cnljj1995@gmail.com
* on 2019-05-22
*/
@Service
public class AlterTaskStatusImpl implements AlterTaskService {
@Autowired
private WorkRepository workRepository;
@Override
public void alterTaskStatus(String taskId, String status) {
Work ob = workRepository.findById(taskId).get();
ob.setStatus(status);
workRepository.save(ob);
}
@Override
public void updateFlower(UserRo userRo) {
Work ob = workRepository.findById(userRo.getWorkId()).get();
ob.setFollower(userRo.getUsers());
workRepository.save(ob);
}
@Override
public void updateChecker(UserRo userRo) {
Work ob = workRepository.findById(userRo.getWorkId()).get();
ob.setChecker(userRo.getUsers());
workRepository.save(ob);
}
}
package com.zjty.tynotes.job.business.service.impl;
import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.business.service.NoteMessageService;
import com.zjty.tynotes.job.common.constant.WorkStatus;
import com.zjty.tynotes.job.status.service.BusinessTreeManagement;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Objects;
import static com.zjty.tynotes.job.common.Action.*;
import static com.zjty.tynotes.job.common.constant.WorkStatus.COMMITTED;
import static com.zjty.tynotes.job.common.constant.WorkStatus.FINISHED;
import static com.zjty.tynotes.job.common.constant.WorkStatus.UNDERWAY;
/**
* <p>Description : ty-note-backend
* <p>Date : 2019/5/13 13:37
* <p>@author : C
* 接口定义见
*
* @see NoteMessageService
*/
@Service
public class NoteMessageServiceImpl implements NoteMessageService {
private final
BusinessTreeManagement businessTreeManagement;
@Autowired
public NoteMessageServiceImpl(BusinessTreeManagement businessTreeManagement) {
this.businessTreeManagement = businessTreeManagement;
}
@Override
public void saveNoteMessage(String userId, String workId, Integer action, String remarks) {
Boolean remarksRequired = action.equals(COMMIT_WORK) || action.equals(BACK_WORK) || action.equals(FINISH_WORK);
Boolean remarksExist = Objects.nonNull(remarks);
if (remarksRequired && remarksExist) {
businessTreeManagement.saveAction(userId, workId, action, new Date(), remarks);
} else {
businessTreeManagement.saveAction(userId, workId, action, new Date(), "");
}
}
@Override
public void saveNoteMessage(String userId, String workId, Work newWork, Work oldWork, String remarks) {
Integer action = 0;
Boolean publishWork = Objects.equals(oldWork.getIsFormal(), false) && Objects.equals(newWork.getIsFormal(), true);
Boolean commitWork = Objects.equals(oldWork.getStatus(), UNDERWAY) && Objects.equals(newWork.getStatus(), WorkStatus.COMMITTED);
Boolean backWork = Objects.equals(oldWork.getStatus(), COMMITTED) && Objects.equals(newWork.getStatus(), UNDERWAY);
Boolean finishWork = Objects.equals(oldWork.getStatus(), COMMITTED) && Objects.equals(newWork.getStatus(), FINISHED);
Boolean alterChecker = !Objects.equals(oldWork.getChecker(), newWork.getChecker());
Boolean alterFollower = !Objects.equals(oldWork.getFollower(), newWork.getFollower());
Boolean comment = !Objects.equals(oldWork.getComment(), newWork.getComment());
if (publishWork) {
action = PUBLISH_WORK;
} else if (commitWork) {
action = COMMIT_WORK;
} else if (backWork) {
action = BACK_WORK;
} else if (finishWork) {
action = FINISH_WORK;
} else if (alterChecker) {
action = ALTER_CHECKER;
} else if (alterFollower) {
action = ALTER_FOLLOWER;
} else if (comment) {
action = COMMENT;
}
saveNoteMessage(userId, workId, action, remarks);
}
}
...@@ -7,7 +7,7 @@ package com.zjty.tynotes.job.common; ...@@ -7,7 +7,7 @@ package com.zjty.tynotes.job.common;
public interface Action { public interface Action {
/** /**
* 发布者发布工作 * 者发布工作
*/ */
int PUBLISH_WORK = 1; int PUBLISH_WORK = 1;
...@@ -17,27 +17,50 @@ public interface Action { ...@@ -17,27 +17,50 @@ public interface Action {
int COMMIT_WORK = 2; int COMMIT_WORK = 2;
/** /**
* 审核者退回工作 * 执行者撤回工作
*/ */
int BACK_WORK = 3; int COMMIT_BACK_WORK = 3;
/** /**
* 审核者完结工作 * 审核者审核不通过工作
*/ */
int FINISH_WORK = 4; int BACK_WORK = 4;
/** /**
* 修改审核者 * 审核者审核通过工作
*/ */
int ALTER_CHECKER = 5; int FINISH_WORK = 5;
/** /**
* 修改关注者 * 删除工作
*/ */
int ALTER_FOLLOWER = 6;
int DELETE_WORK=6;
/**
* 修改 任务组员
*/
int UPDATE_WORK_CREW=7;
/**
* 修改 工作量 以及考评系数
*/
int UPDATE_WORKLOAD=8;
/**
* 考评任务
*/
int APPRAISAL_WORD=9;
/**
* 发布者保存任务
*/
int SAVE_WORK=10;
/** /**
* 留言 * 任务重未发布到进行中
*/ */
int COMMENT = 7; int SAVE_PUBLISH_WORK=11;
} }
package com.zjty.tynotes.job.common; package com.zjty.tynotes.job.common;
import org.springframework.beans.factory.annotation.Value;
/** /**
* 公用类 * 公用类
* *
......
...@@ -8,19 +8,37 @@ package com.zjty.tynotes.job.common.constant; ...@@ -8,19 +8,37 @@ package com.zjty.tynotes.job.common.constant;
*/ */
public final class WorkStatus { public final class WorkStatus {
/**
* 未发布
*/
public static final String UNPUBLISHED = "unpublished";
/** /**
* 进行中 * 进行中
*/ */
public static final String UNDERWAY = "underway"; public static final String ONGOING = "ongoing";
/**
* 待审核
*/
public static final String AUDIT = "audit";
/** /**
* 已提交 * 待考评
*/ */
public static final String COMMITTED = "committed"; public static final String REVIEW = "review";
/** /**
* 已完结 * 已完结
*/ */
public static final String FINISHED = "finished"; public static final String FINISHED = "finished";
/**
* 已删除
*/
public static final String DELETE = "delete";
} }
package com.zjty.tynotes.job.common.exception;
/**
* @author LJJ cnljj1995@gmail.com
* on 2019-05-09
*/
public interface WorkAttribution {
/**
* 我的任务
*/
int ME_WORK = 1;
/**
* 我接收的任务
*/
int ME_RECEIVE_WORK = 2;
/**
* 我分解的任务
*/
int ME_RESOLVE_WORK = 3;
/**
* 我发布的任务
*/
int ME_RELEASE_WORK = 4;
}
...@@ -8,7 +8,6 @@ import io.swagger.annotations.ApiImplicitParam; ...@@ -8,7 +8,6 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
......
package com.zjty.tynotes.job.status.controller; package com.zjty.tynotes.job.status.controller;
import com.zjty.tynotes.job.status.entity.BouncedMessage;
import com.zjty.tynotes.job.status.entity.EsListSum; import com.zjty.tynotes.job.status.entity.EsListSum;
import com.zjty.tynotes.job.status.entity.EventTitle; import com.zjty.tynotes.job.status.service.WorkShowSeeService;
import com.zjty.tynotes.job.status.service.EventService; import com.zjty.tynotes.job.status.service.WorkShowService;
import com.zjty.tynotes.job.status.service.PrivateService;
import com.zjty.tynotes.misc.config.AutoDocument; import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
...@@ -18,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -18,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
/** /**
* @author zjm * @author zjm
...@@ -27,18 +24,18 @@ import java.util.List; ...@@ -27,18 +24,18 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/read") @RequestMapping("/read")
@Api(tags = "阅读页面接口", value = "阅读页面数据") @Api(tags = "阅读页面接口", value = "阅读页面数据")
public class ReadController { public class Read1Controller {
@Autowired @Autowired
EventService eventService; WorkShowSeeService workShowSeeService;
@Autowired @Autowired
PrivateService privateService; WorkShowService workShowService;
/** /**
*阅读页面待审核列表 *阅读页面我的任务列表
* @param page 页码 默认1 * @param page 页码 默认1
* @param size 每页显示条数 默认10 * @param size 每页显示条数 默认10
* @param id 人员id * @param id 人员id
*/ */
@PostMapping("/selectCommission") @PostMapping("/selectMeWork")
@ApiOperation(value = "获取阅读页面待审核列表") @ApiOperation(value = "获取阅读页面待审核列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true), @ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true),
...@@ -46,8 +43,8 @@ public class ReadController { ...@@ -46,8 +43,8 @@ public class ReadController {
@ApiImplicitParam(name="size",value="每页显示条数",dataType="int", paramType = "query",example = "10") @ApiImplicitParam(name="size",value="每页显示条数",dataType="int", paramType = "query",example = "10")
}) })
public ResponseEntity<EsListSum> selectCommission(@RequestParam(value = "id") String id, public ResponseEntity<EsListSum> selectCommission(@RequestParam(value = "id") String id,
@RequestParam(value = "page", defaultValue = "1") int page, @RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "size", defaultValue = "10") int size){ @RequestParam(value = "size", defaultValue = "10") int size){
int pageSize; int pageSize;
if (page==0){ if (page==0){
...@@ -56,16 +53,16 @@ public class ReadController { ...@@ -56,16 +53,16 @@ public class ReadController {
pageSize=page-1; pageSize=page-1;
} }
return ResponseEntity.ok(privateService.selectCommission(id,pageSize,size)); return ResponseEntity.ok(workShowSeeService.selectMeWork(id,pageSize,size));
} }
/** /**
*阅读页面已提交列表 *阅读页面我接收的任务列表
* @param page 页码 默认1 * @param page 页码 默认1
* @param size 每页显示条数 默认10 * @param size 每页显示条数 默认10
* @param id 人员id * @param id 人员id
*/ */
@PostMapping("/selectSubmit") @PostMapping("/selectMeReceiv")
@ApiOperation(value = "获取阅读页面已提交列表") @ApiOperation(value = "获取阅读页面已提交列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true), @ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true),
...@@ -83,23 +80,23 @@ public class ReadController { ...@@ -83,23 +80,23 @@ public class ReadController {
pageSize=page-1; pageSize=page-1;
} }
return ResponseEntity.ok(privateService.selectSubmit(id,pageSize,size)); return ResponseEntity.ok(workShowSeeService.selectMeReceiveWork(id,pageSize,size));
} }
/** /**
*阅读页面其他列表 *阅读页面我的分解任务列表
* @param page 页码 默认1 * @param page 页码 默认1
* @param size 每页显示条数 默认10 * @param size 每页显示条数 默认10
* @param id 人员id * @param id 人员id
*/ */
@PostMapping("/selectOther") @PostMapping("/selectMeResolve")
@ApiOperation(value = "获取阅读页面其他列表") @ApiOperation(value = "阅读页面我的分解任务列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true), @ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true),
@ApiImplicitParam(name="page",value="页码",dataType="int", paramType = "query",example = "1"), @ApiImplicitParam(name="page",value="页码",dataType="int", paramType = "query",example = "1"),
@ApiImplicitParam(name="size",value="每页显示条数",dataType="int", paramType = "query",example = "10") @ApiImplicitParam(name="size",value="每页显示条数",dataType="int", paramType = "query",example = "10")
}) })
public ResponseEntity<EsListSum> selectOther(@RequestParam(value = "id") String id, public ResponseEntity<EsListSum> selectMeResolveWork(@RequestParam(value = "id") String id,
@RequestParam(value = "page", defaultValue = "1") int page, @RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "size", defaultValue = "10") int size){ @RequestParam(value = "size", defaultValue = "10") int size){
...@@ -109,25 +106,25 @@ public class ReadController { ...@@ -109,25 +106,25 @@ public class ReadController {
}else { }else {
pageSize=page-1; pageSize=page-1;
} }
return ResponseEntity.ok(privateService.selectOther(id,pageSize,size)); return ResponseEntity.ok(workShowSeeService.selectMeResolveWork(id,pageSize,size));
} }
/** /**
*阅读页面收藏列表 *阅读页面我发布的任务列表
* @param page 页码 默认1 * @param page 页码 默认1
* @param size 每页显示条数 默认10 * @param size 每页显示条数 默认10
* @param id 人员id * @param id 人员id
*/ */
@PostMapping("/selectCollection") @PostMapping("/selectMeRelease")
@ApiOperation(value = "获取阅读页面收藏列表") @ApiOperation(value = "阅读页面我发布的任务列表")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true), @ApiImplicitParam(name="id",value="人员id",dataType="string", paramType = "query",required = true),
@ApiImplicitParam(name="page",value="页码",dataType="int", paramType = "query",example = "1"), @ApiImplicitParam(name="page",value="页码",dataType="int", paramType = "query",example = "1"),
@ApiImplicitParam(name="size",value="每页显示条数",dataType="int", paramType = "query",example = "10") @ApiImplicitParam(name="size",value="每页显示条数",dataType="int", paramType = "query",example = "10")
}) })
public ResponseEntity<EsListSum> selectCollection(@RequestParam(value = "id") String id, public ResponseEntity<EsListSum> selectMeReleaseWork(@RequestParam(value = "id") String id,
@RequestParam(value = "page", defaultValue = "1") int page, @RequestParam(value = "page", defaultValue = "1") int page,
@RequestParam(value = "size", defaultValue = "10") int size){ @RequestParam(value = "size", defaultValue = "10") int size){
int pageSize; int pageSize;
if (page==0){ if (page==0){
...@@ -135,7 +132,7 @@ public class ReadController { ...@@ -135,7 +132,7 @@ public class ReadController {
}else { }else {
pageSize=page-1; pageSize=page-1;
} }
return ResponseEntity.ok(privateService.selectCollection(id,pageSize,size)); return ResponseEntity.ok(workShowSeeService.selectMeReleaseWork(id,pageSize,size));
} }
/** /**
...@@ -163,28 +160,11 @@ public class ReadController { ...@@ -163,28 +160,11 @@ public class ReadController {
}else { }else {
pageSize=page-1; pageSize=page-1;
} }
return ResponseEntity.ok(privateService.titleSelect(id,pageSize,size,title)); return ResponseEntity.ok(workShowSeeService.titleSelect(id,pageSize,size,title));
} }
/**
*阅读页设置收藏
* @param eventId 事件id
* @param id 人员id
*/
@ApiOperation(value = "事件置顶")
@PostMapping("/collection")
@ApiImplicitParams({
@ApiImplicitParam(name="id",value="人员id",dataType="String", paramType = "query",required = true),
@ApiImplicitParam(name="eventId",value="事件id",dataType="String", paramType = "query",required = true,example = "1"),
@ApiImplicitParam(name="collection",value="是否收藏",dataType="int", paramType = "query",required = true,example = "1")
})
public ResponseEntity<BouncedMessage> collection(@RequestParam(value = "id")String id,
@RequestParam(value = "eventId")String eventId,
@RequestParam(value = "collection")int collection
){
return ResponseEntity.ok(eventService.placedCollection(eventId,id,collection));
}
/** /**
* 查看事件的时候 * 查看事件的时候
...@@ -205,7 +185,7 @@ public class ReadController { ...@@ -205,7 +185,7 @@ public class ReadController {
@RequestParam(value = "eventId")String eventId, @RequestParam(value = "eventId")String eventId,
@RequestParam(value = "readState")int readState @RequestParam(value = "readState")int readState
){ ){
eventService.readsStatus(id,eventId,readState); workShowService.readsStatus(id,eventId,readState);
HashMap map=new HashMap(10); HashMap map=new HashMap(10);
map.put("msg","事件状态修改成功"); map.put("msg","事件状态修改成功");
return ResponseEntity.ok(map); return ResponseEntity.ok(map);
...@@ -220,7 +200,7 @@ public class ReadController { ...@@ -220,7 +200,7 @@ public class ReadController {
public ResponseEntity loginFirstOneManualPush(@RequestParam(value = "id") String id public ResponseEntity loginFirstOneManualPush(@RequestParam(value = "id") String id
){ ){
privateService.loginFirstOneManualPush(id); workShowService.loginFirstOneManualPush(id);
return ResponseEntity.ok().build(); return ResponseEntity.ok().build();
} }
......
package com.zjty.tynotes.job.status.controller;
import com.zjty.tynotes.job.common.constant.WorkStatus;
import com.zjty.tynotes.job.status.service.EventService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
/**
* @author zjm
*/
@RequestMapping("/read")
@RestController
@Slf4j
public class TaskController {
@Autowired
EventService eventService;
@GetMapping("/task/{id}/{id1}/{id2}/{id3}")
public void task(@PathVariable("id") String id, @PathVariable("id1") String id1, @PathVariable("id2") String id2, @PathVariable("id3") String id3){
log.info("开始");
Map<Integer,List<String>> map =new HashMap<>();
List<String> s=new ArrayList<>();
List<String> f1=new ArrayList<>();
f1.add(id);
List<String> z=new ArrayList<>();
z.add(id1);
s.add(id2);
List<String> g=new ArrayList<>();
g.add(id3);
map.put(1,s);
map.put(0,g);
Map<String,List<String>> map1=new HashMap<>();
map1.put("inspector",s);
map1.put("viewer",g);
map1.put("executor",z);
map1.put("publisher",f1);
eventService.saveTakePushEvent("test1","第一次",id,id1,map,new Date(),WorkStatus.UNDERWAY,map1,"添加新的事件");
eventService.saveTakePushEvent("test2","第2次",id,id1,map,new Date(),WorkStatus.UNDERWAY,map1,"添加新的事件");
eventService.saveTakePushEvent("test3","第3次",id,id1,map,new Date(),WorkStatus.UNDERWAY,map1,"添加新的事件");
eventService.saveTakePushEvent("test4","第4次",id,id1,map,new Date(),WorkStatus.UNDERWAY,map1,"添加新的事件");
}
@GetMapping("/task1")
public void task1(){
eventService.readsStatus("z","test1",1);
eventService.readsStatus("z","test2",1);
eventService.readsStatus("f","test1",1);
eventService.readsStatus("f","test2",1);
}
@GetMapping("/task2")
public void task2(){
Set<String> s=new HashSet<>();
s.add("s1");
s.add("s2");
s.add("g1");
s.add("g2");
s.add("z");
eventService.addMessage("f","test1",s,new Date(),1,"f对test1时间留言");
eventService.addMessage("f","test2",s,new Date(),1,"f对test2时间留言");
}
@GetMapping("/task3")
public void task3(){
Set<String> s=new HashSet<>();
s.add("s1");
s.add("s2");
s.add("g1");
s.add("g2");
s.add("z");
eventService.upDateStateEvent("test1","f",s,new Date(),WorkStatus.UNDERWAY,"f修改了事件状态");
eventService.upDateStateEvent("test2","f",s,new Date(),WorkStatus.UNDERWAY,"f修改了事件状态");
}
@GetMapping("/task4")
public void task4(){
List<String> s=new ArrayList<>();
List<String> f1=new ArrayList<>();
f1.add("f");
List<String> z=new ArrayList<>();
z.add("z");
s.add("s1");
s.add("s3");
List<String> g=new ArrayList<>();
g.add("g1");
g.add("g3");
Map<String,List<String>> map1=new HashMap<>();
map1.put("inspector",s);
map1.put("viewer",g);
map1.put("executor",z);
map1.put("publisher",f1);
Set<String> s1=new HashSet<>();
s1.add("s1");
s1.add("s2");
s1.add("g1");
s1.add("g2");
s1.add("z");
eventService.addFollowersEvent("f","test1",s1,"第一次",new Date(),1,WorkStatus.UNDERWAY,map1,"修改事件");
//eventService.addFollowersEvent("test2","第2次",new Date(),1,"q",0,1);
}
}
package com.zjty.tynotes.job.status.entity; package com.zjty.tynotes.job.status.entity;
import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List; import java.util.List;
...@@ -9,33 +13,14 @@ import java.util.List; ...@@ -9,33 +13,14 @@ import java.util.List;
* @author zjm * @author zjm
*/ */
@ApiModel(value = "EsListSum对象",description="提供数据列表和总数") @ApiModel(value = "EsListSum对象",description="提供数据列表和总数")
@AutoDocument
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EsListSum { public class EsListSum {
@ApiModelProperty(value = "总数", name = "count", example = "0L") @ApiModelProperty(value = "总数", name = "count", example = "0L")
private Long count; private Long count;
@ApiModelProperty(value = "数据列表", name = "eventTitles") @ApiModelProperty(value = "数据列表", name = "eventTitles")
private List<EventTitle> eventTitles; private List<RedisPersonalWork> eventTitles;
public EsListSum(Long count, List<EventTitle> eventTitles) {
this.count = count;
this.eventTitles = eventTitles;
}
public EsListSum() {
}
public Long getCount() {
return count;
}
public void setCount(Long count) {
this.count = count;
}
public List<EventTitle> getEventTitles() {
return eventTitles;
}
public void setEventTitles(List<EventTitle> eventTitles) {
this.eventTitles = eventTitles;
}
} }
...@@ -3,7 +3,6 @@ package com.zjty.tynotes.job.status.entity; ...@@ -3,7 +3,6 @@ package com.zjty.tynotes.job.status.entity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
......
package com.zjty.tynotes.job.status.entity;
import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@AutoDocument
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "人员管理页面人员列表")
public class Personnel {
private String id;
private String name;
private int count;
}
package com.zjty.tynotes.job.status.entity;
import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@AutoDocument
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "")
public class RedisPersonalWork {
/**
* 任务id
*/
@ApiModelProperty(value = "任务id",name = "workId",example = "3y8735217537c")
private String workId;
/**
* 时间 秒
*/
@ApiModelProperty(value = "时间",name = "time",example = "7878979686L")
private Long time;
/**
*任务标题
*/
@ApiModelProperty(value = "任务标题",name = "title",example = "xxx")
private String title;
/**
* 任务状态
*/
@ApiModelProperty(value = "任务状态",name = "status",example = "进行中")
private String status;
/**
* 发布者
*/
@ApiModelProperty(value = "发布者",name = "release",example = "xx")
private String release;
/**
* 执行者
*/
@ApiModelProperty(value = "执行者",name = "executor",example = "xxx")
private String executor;
/**
* 已读未读
*/
@ApiModelProperty(value = "是否已读(0已读,1未读)",name = "readState",example = "1")
private int readState;
/**
* 任务所属位置 我的任务 我接受的任务
*/
@ApiModelProperty(value = "任务所属位置",name = "workAttribution",example = "1")
private int workAttribution;
/**
* 最近的操作
*/
@ApiModelProperty(value = "最近一次的操作",name = "latestNews",example = "root留言")
private String latestNews;
/**
* 上级任务id
*/
@ApiModelProperty(value = "上级任务id",name = "superiorId",example = "root留言")
private String superiorId;
/**
* 子任务id集合
*/
@ApiModelProperty(value = "上级任务id",name = "superiorId",example = "root留言")
private List<String> subtaskIds;
}
...@@ -13,34 +13,44 @@ import lombok.NoArgsConstructor; ...@@ -13,34 +13,44 @@ import lombok.NoArgsConstructor;
public class RoleSum { public class RoleSum {
/** /**
* 代办 是否有未读 0 否 1有 * 我的任务 是否有未读 0 否 1有
*/ */
private int commissionUnread; private int meWorkUnread;
/** /**
* 代办 条数 * 我的任务 条数
*/ */
private int commissionCount; private int meWorkCount;
/** /**
* 提交 是否有未读 0 否 1有 * 我接收的任务 是否有未读 0 否 1有
*/ */
private int submitUnread; private int meReceiveUnread;
/** /**
* 提交 条数 * 我接收的任务 条数
*/ */
private int submitCount; private int meReceiveCount;
/** /**
* 其他 是否有未读 0 否 1有 * 我分解的任务 是否有未读 0 否 1有
*/ */
private int otherUnread; private int meResolveUnread;
/** /**
* 其他 条数 * 我分解的任务 条数
*/ */
private int otherCount; private int meResolveCount;
/**
* 我发布的任务 是否有未读 0 否 1有
*/
private int meReleaseUnread;
/**
* 我发布的任务 条数
*/
private int meReleaseCount;
} }
package com.zjty.tynotes.job.status.service;
import com.zjty.tynotes.job.status.entity.BouncedMessage;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author zjm
*/
public interface EventService {
/**
* 添加数据到redis(分别安人员id来进行) ->取出数据->推送数据
* @param eventId 事件id
* @param eventTitle 事件标题
* @param id 发布者
* @param map 3种角色的id集合
* @param updateTime 更新时间
* @param state 事件状态
* @param executorId 执行人id
* @param mapName 执行人名称
* @param latestNews 对任务的操作
*
*/
void saveTakePushEvent(String eventId, String eventTitle, String id, String executorId, Map<Integer, List<String>> map, Date updateTime, String state, Map<String, List<String>> mapName,String latestNews);
/**
*新留言
* @param id 留言人的Id
* @param eventId 事件id
* @param ids 推送人员的id(相关人员id)
* @param updateTime 更新时间
* @param messageCount 留言条数
* @param latestNews 对任务的操作
*/
void addMessage(String id, String eventId, Set<String> ids, Date updateTime, int messageCount, String latestNews);
/**
* 更新事件的状态
* @param eventId 事件id
* @param id 操作者id
* @param ids 推送人员的id(相关人员id)
* @param updateTime 更新时间
* @param state 事件状态
* @param latestNews 对任务的操作
*/
void upDateStateEvent(String eventId, String id, Set<String> ids, Date updateTime, String state, String latestNews);
/**
*  添加审核 - 关注者
* @param operationId 操作者id
* @param eventId 事件id
* @param ids 事件相关人员id
* @param eventTitle 事件标题
* @param updateTime 更新时间
* @param messageCount 留言条数
* @param state 事件的状态
* @param mapName 执行人名称
* @param latestNews 最近的一次对任务的操作
*/
void addFollowersEvent(String operationId, String eventId, Set<String> ids, String eventTitle, Date updateTime, int messageCount, String state, Map<String, List<String>> mapName, String latestNews);
/**
* 设置收藏 和取消收藏
* @param eventId 事件id
* @param id 人员id
* @param collection 是否收藏 
* @return 操作状态
*/
BouncedMessage placedCollection(String eventId, String id, int collection);
/**
* 查看事件的时候
* @param id 人员id
* @param eventId 事件id
* @param readState 是否阅读过 判读是否阅读过 否修改 阅读状态
*/
void readsStatus(String id, String eventId, int readState);
}
package com.zjty.tynotes.job.status.service;
import com.zjty.tynotes.job.status.entity.Personnel;
import java.util.List;
/**
* 接其他模块使用的service
*/
public interface InternalService {
/**
* 根据id集合返任务数量
* @param list
* @return
*/
List<Personnel> personnels(List<String> list);
}
package com.zjty.tynotes.job.status.service;
import com.zjty.tynotes.job.status.entity.EsListSum;
import com.zjty.tynotes.job.status.entity.EventTitle;
import java.util.List;
/**
* @author zjm
*/
public interface PrivateService {
/**
* 代办事件查询
*
* @param id  人员id
* @param page  页码
* @param size  每页显示的条数
* @return 事件对象集合
*/
EsListSum selectCommission(String id, int page, int size);
/**
* 已提交事件查询
*
* @param id  人员id
* @param page  页码
* @param size  每页显示的条数
* @return 事件对象集合
*/
EsListSum selectSubmit(String id, int page, int size);
/**
* 其他事件查询
*
* @param id  人员id
* @param page  页码
* @param size  每页显示的条数
* @return 事件对象集合
*/
EsListSum selectOther(String id, int page, int size);
/**
* 收藏事件
*
* @param id  人员id
* @param page  页码
* @param size  每页显示的条数
* @return 给前端对象集合 和条数
*/
EsListSum selectCollection(String id, int page, int size);
/**
* 标题查询
*
* @param id  人员id
* @param page  页码
* @param size  每页显示的条数
* @param title 事件的标题
* @return 给前端对象集合 和条数
*/
EsListSum titleSelect(String id, int page, int size, String title);
/**
* 人员登入 第一次的数据 接口触发
* @param id 人员id
*/
void loginFirstOneManualPush(String id);
}
package com.zjty.tynotes.job.status.service;
import com.zjty.tynotes.job.common.constant.WorkStatus;
import com.zjty.tynotes.job.status.entity.RoleSum;
import com.zjty.tynotes.job.status.utils.JacksonUtil;
import com.zjty.tynotes.sms.service.MessageTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.*;
/**
* @author zjm
*/
@Service
@Slf4j
public class Take {
@Autowired
MessageTemplateService messageTemplateService;
@Autowired
EventService eventService;
// @Scheduled(cron = "40 * * * * ? ")
public void task(){
Random random=new Random();
RoleSum roleSum=new RoleSum(random.ints(0,2).findFirst().getAsInt(),
random.ints(1,10).findFirst().getAsInt(),
random.ints(0,2).findFirst().getAsInt(),
random.ints(1,10).findFirst().getAsInt(),
random.ints(0,2).findFirst().getAsInt(),
random.ints(1,10).findFirst().getAsInt());
messageTemplateService.beingPushed("root","/topic/event",JacksonUtil.toJSon(roleSum));
}
}
package com.zjty.tynotes.job.status.service;
import com.zjty.tynotes.job.status.entity.EsListSum;
/**
* @author zjm
*/
public interface WorkShowSeeService {
/**
* 根据人员id查看我的任务列表
* @param id
* @param page
* @param size
* @return
*/
EsListSum selectMeWork(String id, int page, int size);
/**
* 根据人员id查看我接收的任务列表
* @param id
* @param page
* @param size
* @return
*/
EsListSum selectMeReceiveWork(String id, int page, int size);
/**
*根据人员id查看我分解的任务列表
* @param id
* @param page
* @param size
* @return
*/
EsListSum selectMeResolveWork(String id, int page, int size);
/**
*根据人员id查看我发布的任务列表
* @param id
* @param page
* @param size
* @return
*/
EsListSum selectMeReleaseWork(String id, int page, int size);
/**
* 标题查询
*
* @param id  人员id
* @param page  页码
* @param size  每页显示的条数
* @param title 事件的标题
* @return 给前端对象集合 和条数
*/
EsListSum titleSelect(String id, int page, int size, String title);
}
package com.zjty.tynotes.job.status.service;
import com.zjty.tynotes.job.basic.entity.database.Work;
import java.util.List;
public interface WorkShowService {
/**
* 任务新增 操作人 最近一次操作 看到人员id work 对象
*/
void saveTakePushWork(String executorId, String latestNews, List<String> userIds, Work work);
/**
* 新增分解任务
*/
void saveTakePushWork1(String executorId, String latestNews, List<String> userIds, Work work);
void saveWork(String executorId, String latestNews, Work work);
void unpublishedToOngoing(String executorId, String latestNews, List<String> userIds, Work work);
/**
* 修改任务 操作人 最近一次操作 看到人员id
*/
void updateWorkStatus(String executorId, String latestNews, List<String> userIds, String status, String workId);
/**
* 修改任务 常用
* @param executorId 操作人id
* @param latestNews 最近操作
* @param userIds 所有人员集合
* @param workId 任务id
*/
void upDateWork(String executorId, String latestNews, List<String> userIds, String workId);
/**
* 查看事件的时候
* @param id 人员id
* @param eventId 事件id
* @param readState 是否阅读过 判读是否阅读过 否修改 阅读状态
*/
void readsStatus(String id, String eventId, int readState);
/**
* 人员登入 第一次的数据 接口触发
* @param id 人员id
*/
void loginFirstOneManualPush(String id);
}
package com.zjty.tynotes.job.status.service.impl;
import com.zjty.tynotes.job.common.Constants;
import com.zjty.tynotes.job.common.exception.WorkAttribution;
import com.zjty.tynotes.job.status.entity.Personnel;
import com.zjty.tynotes.job.status.entity.RedisPersonalWork;
import com.zjty.tynotes.job.status.service.InternalService;
import com.zjty.tynotes.pas.service.IUserService;
import com.zjty.tynotes.search.subject.service.EsUtil;
import com.zjty.tynotes.sms.service.MessageTemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class InternalServiceImpl implements InternalService {
@Autowired
private RedisTemplate<String,Object> redisTemplate;
@Autowired
IUserService iUserService;
@Override
public List<Personnel> personnels(List<String> list) {
List<Personnel> personnels=new ArrayList<>();
for (String id:list) {
List<Object> lists = redisTemplate.opsForList().range(Constants.REDIS_EVENT + id, 0, -1);
int count=0;
for (Object object:lists){
RedisPersonalWork redisPersonalWork=(RedisPersonalWork)object;
if (redisPersonalWork.getWorkAttribution()==WorkAttribution.ME_WORK){
count++;
}
}
personnels.add(new Personnel(id,iUserService.findUserById(id).getUsername(),count));
}
return personnels;
}
}
package com.zjty.tynotes.job.status.service.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.zjty.tynotes.job.common.Constants;
import com.zjty.tynotes.job.common.constant.WorkStatus;
import com.zjty.tynotes.job.status.entity.EsListSum;
import com.zjty.tynotes.job.status.entity.EventTitle;
import com.zjty.tynotes.job.status.entity.RoleSum;
import com.zjty.tynotes.job.status.service.PrivateService;
import com.zjty.tynotes.job.status.utils.JacksonUtil;
import com.zjty.tynotes.pas.service.IUserService;
import com.zjty.tynotes.search.subject.entity.CollectionRs;
import com.zjty.tynotes.search.subject.entity.EsSearchArg;
import com.zjty.tynotes.search.subject.service.EsUtil;
import com.zjty.tynotes.sms.service.MessageTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
/**
* @author zjm
*/
@Service
@Slf4j
public class PrivateServiceImpl implements PrivateService {
@Autowired
EsUtil esUtil;
@Autowired
RedisTemplate<String,Object> redisTemplate;
@Autowired
MessageTemplateService messageTemplateService;
@Autowired
IUserService iUserService;
@Override
public EsListSum selectCommission(String id, int page, int size) {
CollectionRs collection=esUtil.getPresentTask(id,new EsSearchArg.Builder().page(page).size(size).build());
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
assert objectList != null;
List<EventTitle> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(EventTitle::getUpdateTime).reversed());
return new EsListSum(collection.getTotal(),list);
// JacksonUtil.readValue(s, new TypeReference<List<EventTitle>>() {
// });
}
@Override
public EsListSum selectSubmit(String id, int page, int size) {
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getApplyTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<EventTitle> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(EventTitle::getUpdateTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum selectOther(String id, int page, int size) {
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getContactTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<EventTitle> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(EventTitle::getUpdateTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum selectCollection(String id, int page, int size) {
CollectionRs collection =esUtil.getCollection(id,page,size);
String s = JacksonUtil.toJSon(collection.getSource());
List<EventTitle> eventTitles= JacksonUtil.readValue(s, new TypeReference<List<EventTitle>>() {
});
assert eventTitles != null;
eventTitles.sort(Comparator.comparing(EventTitle::getUpdateTime).reversed());
return new EsListSum(collection.getTotal(),eventTitles);
}
@Override
public EsListSum titleSelect(String id, int page, int size, String title) {
CollectionRs collection=esUtil.getTaskByTitle(id,title,page,size);
String s = JacksonUtil.toJSon(collection.getSource());
List<EventTitle> eventTitles= JacksonUtil.readValue(s, new TypeReference<List<EventTitle>>() {
});
assert eventTitles != null;
eventTitles.sort(Comparator.comparing(EventTitle::getUpdateTime).reversed());
return new EsListSum(collection.getTotal(),eventTitles);
}
@Override
public void loginFirstOneManualPush(String id) {
log.info("redis :{}",Constants.REDIS_EVENT);
List<Object> list= redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
assert list != null;
RoleSum roleSum= statisticalRoleCount(list);
String receive=iUserService.findUserById(id).getUsername();
log.info("{}调用了id查询的接口",receive);
if (receive!=null) {
messageTemplateService.beingPushed(receive, "/topic/note", JacksonUtil.toJSon(roleSum));
}else {
log.info("{}数据库查询不到,请尝试",id);
}
}
private List<EventTitle> redisToEs(List<Object> objectList,List<Map<String,Object>> esList){
List<EventTitle> eventTitles=new ArrayList<>();
for (Object obj:objectList){
EventTitle eventTitle=(EventTitle)obj;
for (Map<String,Object> map:esList){
if (eventTitle.getId().equals(map.get("id"))){
eventTitles.add(eventTitle);
}
}
}
return eventTitles;
}
private RoleSum statisticalRoleCount(List<Object> list){
int role1=0,role2=0,role3=0;
int unread1=0,unread2=0,unread3=0;
for (Object object:list) {
EventTitle eventTitle= (EventTitle) object;
switch (eventTitle.getIdentity()) {
case 1:
switch (eventTitle.getState()){
case WorkStatus
.UNDERWAY:
if (eventTitle.getRelease()==2){
if (eventTitle.getReadState()==1){
unread3=1;
}
role3=role3+1;
}
if (eventTitle.getReadState()==1){
unread1=1;
}
role1=role1+1;
break;
case WorkStatus
.COMMITTED:
if (eventTitle.getRelease()==2){
if (eventTitle.getReadState()==1){
unread3=1;
}
role3=role3+1;
}
if (eventTitle.getReadState()==1){
unread2=1;
}
role2=role2+1;
break;
default:
}
break;
case 2:
switch (eventTitle.getState()){
case WorkStatus
.UNDERWAY:
if (eventTitle.getReadState()==1){
unread3=1;
}
role3=role3+1;
break;
case WorkStatus
.COMMITTED:
if (eventTitle.getReadState()==1){
unread3=1;
}
role3=role3+1;
break;
default:
}
break;
case 3:
switch (eventTitle.getState()){
case WorkStatus
.UNDERWAY:
if (eventTitle.getRelease()==1){
role3=role3+1;
if (eventTitle.getReadState()==1){
unread3=1;
}
}else {
if (eventTitle.getReadState() == 1) {
unread3 = 1;
}
role3 = role3 + 1;
}
break;
case WorkStatus
.COMMITTED:
if (eventTitle.getRelease()==1){
role3=role3+1;
if (eventTitle.getReadState()==1){
unread3=1;
}
}
if (eventTitle.getReadState()==1){
unread1=1;
}
role1=role1+1;
break;
default:
}
break;
case 4:
switch (eventTitle.getState()){
case WorkStatus
.UNDERWAY:
if (eventTitle.getReadState()==1){
unread3=1;
}
role3=role3+1;
break;
case WorkStatus
.COMMITTED:
if (eventTitle.getReadState()==1){
unread3=1;
}
role3=role3+1;
break;
default:
}
break;
default:
}
}
return new RoleSum(unread1,role1,unread2,role2,unread3,role3);
}
}
package com.zjty.tynotes.job.status.service.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.zjty.tynotes.job.common.Constants;
import com.zjty.tynotes.job.status.entity.EsListSum;
import com.zjty.tynotes.job.status.entity.EventTitle;
import com.zjty.tynotes.job.status.entity.RedisPersonalWork;
import com.zjty.tynotes.job.status.entity.RoleSum;
import com.zjty.tynotes.job.status.service.WorkShowSeeService;
import com.zjty.tynotes.job.status.utils.JacksonUtil;
import com.zjty.tynotes.search.subject.entity.CollectionRs;
import com.zjty.tynotes.search.subject.entity.EsSearchArg;
import com.zjty.tynotes.search.subject.entity.EsSource;
import com.zjty.tynotes.search.subject.service.EsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.naming.ldap.Rdn;
import java.util.*;
@Service
@Slf4j
public class WorkShowSeeServiceImpl implements WorkShowSeeService {
@Autowired
EsUtil esUtil;
@Autowired
RedisTemplate<String,Object> redisTemplate;
@Override
public EsListSum selectMeWork(String id, int page, int size) {
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getMeTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<RedisPersonalWork> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum selectMeReceiveWork(String id, int page, int size) {
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
//分解任务中的子任务
List<String> list=new ArrayList<>();
//没有子任务的分解任务
List<String> list1=new ArrayList<>();
List<RedisPersonalWork> redisPersonalWorks=new ArrayList<>();
for (Object object:objectList){
RedisPersonalWork redisPersonalWork=(RedisPersonalWork) object;
if (redisPersonalWork.getSubtaskIds()!=null){
list.addAll(redisPersonalWork.getSubtaskIds());
}else {
list1.add(redisPersonalWork.getWorkId());
}
}
list1.removeAll(list);
for (Object object:objectList){
RedisPersonalWork redisPersonalWork=(RedisPersonalWork) object;
for (String ids:list1){
if (redisPersonalWork.getWorkId().equals(ids)){
redisPersonalWorks.add(redisPersonalWork);
}
}
}
return new EsListSum((long) redisPersonalWorks.size(),redisPersonalWorks);
}
@Override
public EsListSum selectMeResolveWork(String id, int page, int size) {
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getMeResolveTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<RedisPersonalWork> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum selectMeReleaseWork(String id, int page, int size) {
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getMeReleaseTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<RedisPersonalWork> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum titleSelect(String id, int page, int size, String title) {
CollectionRs collection=esUtil.getTaskByTitle(id,title,page,size);
String s = JacksonUtil.toJSon(collection.getSource());
List<RedisPersonalWork> eventTitles = JacksonUtil.readValue(s, new TypeReference<List<RedisPersonalWork>>() {
});
assert eventTitles != null;
eventTitles.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),eventTitles);
}
private List<RedisPersonalWork> redisToEs(List<Object> objectList, List<Map<String,Object>> esList){
List<RedisPersonalWork> eventTitles=new ArrayList<>();
for (Object obj:objectList){
RedisPersonalWork eventTitle=(RedisPersonalWork)obj;
for (Map<String,Object> map:esList){
if (eventTitle.getWorkId().equals(map.get("workId"))){
eventTitles.add(eventTitle);
}
}
}
return eventTitles;
}
}
package com.zjty.tynotes.pas.config.handler; //package com.zjty.tynotes.pas.config.handler;
//
import com.fasterxml.jackson.databind.ObjectMapper; //import com.fasterxml.jackson.databind.ObjectMapper;
import com.zjty.tynotes.pas.entity.Authority; //import com.zjty.tynotes.pas.entity.Authority;
import com.zjty.tynotes.pas.entity.Menu; //import com.zjty.tynotes.pas.entity.Role;
import com.zjty.tynotes.pas.entity.Role; //import com.zjty.tynotes.pas.entity.User;
import com.zjty.tynotes.pas.entity.User; //import com.zjty.tynotes.pas.service.IAuthorityService;
import com.zjty.tynotes.pas.entity.vo.RoleVo; //import com.zjty.tynotes.pas.service.IRoleService;
import com.zjty.tynotes.pas.entity.vo.UserVo; //import com.zjty.tynotes.pas.service.IUserService;
import com.zjty.tynotes.pas.service.IAuthorityService; //import lombok.extern.slf4j.Slf4j;
import com.zjty.tynotes.pas.service.IMenuSerivce; //import org.springframework.beans.factory.annotation.Autowired;
import com.zjty.tynotes.pas.service.IRoleService; //import org.springframework.data.redis.core.RedisTemplate;
import com.zjty.tynotes.pas.service.IUserService; //import org.springframework.data.redis.core.ValueOperations;
import lombok.extern.slf4j.Slf4j; //import org.springframework.security.core.Authentication;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.security.core.context.SecurityContext;
import org.springframework.data.redis.core.RedisTemplate; //import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.data.redis.core.ValueOperations; //import org.springframework.security.core.session.SessionInformation;
import org.springframework.security.core.Authentication; //import org.springframework.security.core.session.SessionRegistry;
import org.springframework.security.core.context.SecurityContext; //import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.core.context.SecurityContextHolder; //import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.security.core.session.SessionInformation; //import org.springframework.security.web.authentication.session.SessionAuthenticationException;
import org.springframework.security.core.session.SessionRegistry; //import org.springframework.security.web.session.ConcurrentSessionFilter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; //import org.springframework.stereotype.Component;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler; //
import org.springframework.security.web.authentication.session.SessionAuthenticationException; //import javax.servlet.ServletException;
import org.springframework.security.web.session.ConcurrentSessionFilter; //import javax.servlet.http.Cookie;
import org.springframework.stereotype.Component; //import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException; //import java.io.IOException;
import javax.servlet.http.Cookie; //import java.util.List;
import javax.servlet.http.HttpServletRequest; //
import javax.servlet.http.HttpServletResponse; ///**
import java.io.IOException; // * @author mcj
import java.util.List; // */
//@Component
/** //@Slf4j
* @author mcj //public class MySuccessHandler implements AuthenticationSuccessHandler {
*/ // @Autowired
@Component // private SessionRegistry sessionRegistry;
@Slf4j //
public class MySuccessHandler implements AuthenticationSuccessHandler { // @Autowired
@Autowired // private IAuthorityService iAuthorityService;
private SessionRegistry sessionRegistry; //
// @Autowired
@Autowired // IRoleService iRoleService;
private IAuthorityService iAuthorityService; //
// @Autowired
@Autowired // IMenuSerivce iMenuSerivce;
IRoleService iRoleService; //
// private BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
@Autowired //
IMenuSerivce iMenuSerivce; // @Autowired
// IUserService iUserService;
private BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder(); //
// @Autowired
@Autowired // RedisTemplate redisTemplate;
IUserService iUserService; //
// @Override
@Autowired // public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
RedisTemplate redisTemplate; // Cookie[] cookies = httpServletRequest.getCookies();
// if(cookies==null){
@Override // return;
public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException { // }
Cookie[] cookies = httpServletRequest.getCookies(); // String value = cookies[0].getValue();
if(cookies==null){ // List<Object> o = sessionRegistry.getAllPrincipals();
return; // User user = (User) authentication.getPrincipal();
} // for (Object principal : o) {
String value = cookies[0].getValue(); // User cacheUser = (User) principal;
List<Object> o = sessionRegistry.getAllPrincipals(); // if (cacheUser.getUsername().equals(user.getUsername())) {
User user = (User) authentication.getPrincipal(); // log.info("当前用户已经在线上.现顶替:{}",user.getUsername());
for (Object principal : o) { // List<SessionInformation> sessions = sessionRegistry.getAllSessions(cacheUser, false);
User cacheUser = (User) principal; // for (SessionInformation sessionInformation : sessions) {
if (cacheUser.getUsername().equals(user.getUsername())) { // String sessionId = sessionInformation.getSessionId();
log.info("当前用户已经在线上.现顶替:{}",user.getUsername()); //
List<SessionInformation> sessions = sessionRegistry.getAllSessions(cacheUser, false); // sessionInformation.expireNow();
for (SessionInformation sessionInformation : sessions) { // }
String sessionId = sessionInformation.getSessionId(); // }
// }
sessionInformation.expireNow(); //
} // redisTemplate.opsForValue().set(user.getUsername(),0);
} //
} // UserVo userVo = new UserVo().user2userVo(user);
// User username = iUserService.findUserByUsername(userVo.getUsername());
redisTemplate.opsForValue().set(user.getUsername(),0); // Role role = iRoleService.findRoleById(user.getRoleId());
// RoleVo roleVo = new RoleVo();
UserVo userVo = new UserVo().user2userVo(user); // User user1 = iUserService.findUserByUsername(userVo.getUsername());
User username = iUserService.findUserByUsername(userVo.getUsername()); // userVo.setPassword(user1.getPassword());
Role role = iRoleService.findRoleById(user.getRoleId()); // roleVo.setRoleId(user.getRoleId());
RoleVo roleVo = new RoleVo(); // List<Menu> allByMenuId = iMenuSerivce.findAllByMenuId(role.getMenuIds());
User user1 = iUserService.findUserByUsername(userVo.getUsername()); // roleVo.setMenus(allByMenuId);
userVo.setPassword(user1.getPassword()); // roleVo.setRoleName(role.getName());
roleVo.setRoleId(user.getRoleId()); // userVo.setRole(roleVo);
List<Menu> allByMenuId = iMenuSerivce.findAllByMenuId(role.getMenuIds()); // List<Authority> authorityByIds = iAuthorityService.findAuthorityByIds(role.getAuthorityIds());
roleVo.setMenus(allByMenuId); // roleVo.setAuthorities(authorityByIds);
roleVo.setRoleName(role.getName()); //
userVo.setRole(roleVo); // sessionRegistry.registerNewSession(value, authentication.getPrincipal());
List<Authority> authorityByIds = iAuthorityService.findAuthorityByIds(role.getAuthorityIds()); // httpServletResponse.setStatus(200);
roleVo.setAuthorities(authorityByIds); // httpServletResponse.setContentType("application/json; charset=utf-8");
// httpServletResponse.getWriter().println(new ObjectMapper().writeValueAsString(userVo));
sessionRegistry.registerNewSession(value, authentication.getPrincipal()); //
httpServletResponse.setStatus(200); //
httpServletResponse.setContentType("application/json; charset=utf-8"); // }
httpServletResponse.getWriter().println(new ObjectMapper().writeValueAsString(userVo)); //}
}
}
...@@ -60,6 +60,23 @@ public interface EsUtil { ...@@ -60,6 +60,23 @@ public interface EsUtil {
*/ */
CollectionRs getPresentTask(String id, EsSearchArg esSearchArg); CollectionRs getPresentTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的任务列表
*/
CollectionRs getMeTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的接收任务
*/
CollectionRs getMeReceiveTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的分解任务
*/
CollectionRs getMeResolveTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的发布的任务
*/
CollectionRs getMeReleaseTask(String id, EsSearchArg esSearchArg);
/** /**
* 搜索已提交任务的方法 * 搜索已提交任务的方法
* *
......
...@@ -191,11 +191,51 @@ public class EsUtilImpl implements EsUtil { ...@@ -191,11 +191,51 @@ public class EsUtilImpl implements EsUtil {
SearchSourceBuilder builder = new SearchSourceBuilder(); SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery() builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("executor", id)) .should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("executor", id))))
.must(QueryBuilders.matchQuery("state", "underway"))) .sort("time", SortOrder.DESC);
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("inspector", id))
.must(QueryBuilders.matchQuery("state", "committed")))) builder.size(esSearchArg.getSize());
.sort("updateTime", SortOrder.DESC); builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution",1))))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeReceiveTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution", 2))))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize()); builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage()); builder.from(esSearchArg.getSize() * esSearchArg.getPage());
...@@ -203,7 +243,49 @@ public class EsUtilImpl implements EsUtil { ...@@ -203,7 +243,49 @@ public class EsUtilImpl implements EsUtil {
searchRequest.source(builder); searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest); return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeResolveTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution", 3))))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeReleaseTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution", 4)))
.mustNot(QueryBuilders.matchQuery("superiorId","")))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
} }
@Override @Override
...@@ -293,7 +375,7 @@ public class EsUtilImpl implements EsUtil { ...@@ -293,7 +375,7 @@ public class EsUtilImpl implements EsUtil {
builder.query(QueryBuilders.boolQuery() builder.query(QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("title", title)) .must(QueryBuilders.matchQuery("title", title))
.mustNot(QueryBuilders.matchQuery("state", "finished"))); );
builder.size(size) builder.size(size)
.from(size * page) .from(size * page)
.sort("updateTime", SortOrder.DESC); .sort("updateTime", SortOrder.DESC);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论