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

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

......@@ -7,6 +7,7 @@ import com.zjty.tynotes.job.basic.entity.request.WorkRo;
import com.zjty.tynotes.job.basic.entity.response.JobResponse;
import com.zjty.tynotes.job.basic.entity.response.WorkIsNotCommit;
import com.zjty.tynotes.job.basic.entity.response.WorkVo;
import com.zjty.tynotes.job.basic.entity.response.WorkVoMapping;
import com.zjty.tynotes.job.basic.repository.WorkRepository;
import com.zjty.tynotes.job.basic.service.ConversionService;
import com.zjty.tynotes.job.basic.service.WorkService;
......@@ -143,10 +144,10 @@ public class WorkController {
switch (status) {
case "ongoing":
Work work=workService.findById(workId);
workService.alterTaskStatus(workId,status);
workService.alterTaskStatus(workId,status,userId);
if (work.getExecutor().equals(userId)){
//撤回
businessTreeManagement.saveAction(userId,workId,Action.COMMIT_BACK_WORK,new Date(),msg);
businessTreeManagement.saveAction(userId,workId,Action.COMMIT_BACK_WORK,new Date(),msg);
}else {
businessTreeManagement.saveAction(userId,workId,Action.BACK_WORK,new Date(),msg);
//审核不通过
......@@ -154,21 +155,18 @@ public class WorkController {
break;
case "audit":
//执行者提交
Work work1= workRepository.findById(workId).get();
work1.setEndTime(new Date());
workRepository.save(work1);
workService.alterTaskStatus(workId, status);
workService.alterTaskStatus(workId, status,userId);
businessTreeManagement.saveAction(userId, workId, Action.COMMIT_WORK, new Date(), msg);
break;
case "review":
//审核通过
workService.alterTaskStatus(workId, status);
workService.alterTaskStatus(workId, status,userId);
businessTreeManagement.saveAction(userId, workId, Action.FINISH_WORK, new Date(), msg);
break;
case WorkStatus.FINISHED:
workService.alterTaskStatus(workId, status);
workService.alterTaskStatus(workId, status,userId);
businessTreeManagement.saveAction(userId, workId, Action.FINISHED_WORK, new Date(), msg);
break;
default:
log.warn("[job] 修改任务状态传入的参数有误,传入值为:{}", status);
break;
......@@ -193,9 +191,10 @@ public class WorkController {
@GetMapping(value = "/select/work/{userId}")
@ApiOperation(value = "根据用户id查看其部门所有的任务", notes = "部门所有的任务")
public ResponseEntity<List<WorkVo>> selectWorkUserId(@PathVariable("userId") String userId) {
public ResponseEntity<WorkVoMapping> selectWorkUserId(@PathVariable("userId") String userId) {
return ok(workService.selectUserIdsWork(userId));
}
}
......@@ -77,7 +77,21 @@ public class Work {
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "更新时间", example = "yyyy-MM-dd HH:mm:ss")
private Date updateTime=new Date();
private Date updateTime;
/**
* 提交时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "提交时间", example = "yyyy-MM-dd HH:mm:ss",name = "submitTime")
private Date submitTime;
/**
* 审核时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "审核时间", example = "yyyy-MM-dd HH:mm:ss",name = "auditTime")
private Date auditTime;
/*相关用户 同一个人不能同时担任多种职位*/
/**
* 发布者id
......
package com.zjty.tynotes.job.basic.entity.database;
import com.zjty.tynotes.misc.config.AutoDocument;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@AutoDocument
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WorkTime {
/**
* id
*/
private String id;
/**
* 任务id
*/
private String workId;
/**
* 次数
*/
private int count;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
}
package com.zjty.tynotes.job.basic.entity.response;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "任务导图信息", description = "任务导图对象")
public class WorkMpping {
private String wordId;
private String title;
private String status;
private List<WorkMpping> workMppings;
}
......@@ -66,6 +66,20 @@ public class WorkVo {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "更新时间", example = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 提交时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "提交时间", example = "yyyy-MM-dd HH:mm:ss",name = "submitTime")
private Date submitTime;
/**
* 审核时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "审核时间", example = "yyyy-MM-dd HH:mm:ss",name = "auditTime")
private Date auditTime;
/*相关用户 同一个人不能同时担任多种职位*/
/**
* 发布者id
......
package com.zjty.tynotes.job.basic.entity.response;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "查看部门任务信息和思维导图详情", description = "部门任务信息和思维导图对象")
public class WorkVoMapping {
/**
* 主任务列表
*/
private List<WorkVo> workVos;
/**
* 主任务思维导图列表
*/
private List<WorkMpping> workMppings;
}
package com.zjty.tynotes.job.basic.repository;
import com.zjty.tynotes.job.basic.entity.database.WorkTime;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface WorkTimeRepository extends MongoRepository<WorkTime, String> {
List<WorkTime> findByWorkId(String workId);
}
......@@ -3,6 +3,7 @@ package com.zjty.tynotes.job.basic.service;
import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.entity.response.WorkIsNotCommit;
import com.zjty.tynotes.job.basic.entity.response.WorkVo;
import com.zjty.tynotes.job.basic.entity.response.WorkVoMapping;
import com.zjty.tynotes.job.basic.service.impl.WorkServiceImpl;
import org.springframework.stereotype.Service;
......@@ -86,7 +87,7 @@ public interface WorkService {
* @param taskId 任务id
* @param status 要修改的状态
*/
void alterTaskStatus(String taskId, String status);
void alterTaskStatus(String taskId, String status,String userId);
/**
* 逻辑删除任务
......@@ -128,5 +129,6 @@ public interface WorkService {
// */
// List<Work> selectTimeWork();
List<WorkVo> selectUserIdsWork(String userId);
WorkVoMapping selectUserIdsWork(String userId);
}
package com.zjty.tynotes.job.basic.service;
import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.entity.database.WorkTime;
import java.util.Date;
import java.util.List;
public interface WorkTimeService {
/**
* 添加提交时间
* @param work 任务
* @param startTime 开始时间
*/
void saveWorkStartTime(Work work, Date startTime);
/**
* 添加审核时间
* @param work 任务
* @param endTime 结束时间
*/
void saveWorkEndTime(Work work, Date endTime);
/**
* 查询提交时间集合
* @param workId 任务id
*/
List<WorkTime> selectWorkTime(String workId);
}
......@@ -58,6 +58,8 @@ public class ConversionServiceImpl implements ConversionService {
work.getEndTime(),
work.getCompleteTime(),
work.getUpdateTime(),
work.getSubmitTime(),
work.getAuditTime(),
pUser,
eUser,
users,
......
......@@ -3,12 +3,16 @@ package com.zjty.tynotes.job.basic.service.impl;
import com.google.common.collect.Lists;
import com.zjty.tynotes.job.basic.entity.database.ScoreCoefficient;
import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.entity.database.WorkTime;
import com.zjty.tynotes.job.basic.entity.response.WorkIsNotCommit;
import com.zjty.tynotes.job.basic.entity.response.WorkMpping;
import com.zjty.tynotes.job.basic.entity.response.WorkVo;
import com.zjty.tynotes.job.basic.entity.response.WorkVoMapping;
import com.zjty.tynotes.job.basic.repository.WorkRepository;
import com.zjty.tynotes.job.basic.service.ConversionService;
import com.zjty.tynotes.job.basic.service.ScoreCoefficientService;
import com.zjty.tynotes.job.basic.service.WorkService;
import com.zjty.tynotes.job.basic.service.WorkTimeService;
import com.zjty.tynotes.job.basic.utils.WorkingTime;
import com.zjty.tynotes.job.common.constant.WorkStatus;
import com.zjty.tynotes.job.common.exception.BadRequestException;
......@@ -56,6 +60,9 @@ public class WorkServiceImpl implements WorkService {
@Autowired
ScoreCoefficientService scoreCoefficientService;
@Autowired
WorkTimeService workTimeService;
@Autowired
public WorkServiceImpl(WorkRepository workRepository) {
this.workRepository = workRepository;
......@@ -129,34 +136,56 @@ public class WorkServiceImpl implements WorkService {
public void deleteAll() {
}
@Override
public void alterTaskStatus(String taskId, String status) {
public void alterTaskStatus(String taskId, String status, String userId) {
Work ob = workRepository.findById(taskId).get();
ob.setStatus(status);
if (status.equals(WorkStatus.ONGOING)){
Date time=new Date();
if (WorkStatus.ONGOING.equals(status)){
if (ob.getPublisher().equals(userId)){
ob.setAuditTime(time);
workTimeService.saveWorkEndTime(ob,time);
}
}else if (WorkStatus.AUDIT.equals(status)){
ob.setSubmitTime(time);
workTimeService.saveWorkStartTime(ob,time);
}else if (WorkStatus.REVIEW.equals(status)) {
//计算分数
Float expect= score(ob.getStateTime(),ob.getCompleteTime());
Float practical=score(ob.getStateTime(),ob.getEndTime());
if (expect<practical){
float time= practical-expect;
ob.setWorkCoefficient(beyond(1,1.0f,time));
//添加
}else if (expect.equals(practical)){
ob.setWorkCoefficient(1f);
//添加
}else {
float time= expect-practical;
ob.setWorkCoefficient(advance(1,1.0f,time));
}
}
Float practical=practical(taskId);
if (expect<practical){
float times= practical-expect;
ob.setWorkCoefficient(beyond(1,1.0f,times));
//添加
}else if (expect.equals(practical)){
ob.setWorkCoefficient(1f);
}else {
float times= expect-practical;
ob.setWorkCoefficient(advance(1,1.0f,times));
}
if (status.equals(WorkStatus.FINISHED)){
}else if (status.equals(WorkStatus.FINISHED)){
pWorkload(taskId);
ob.setEndTime(time);
}
workRepository.save(ob);
}
private Float practical(String workId){
Float count=0.0f;
List<WorkTime> workTimes=workTimeService.selectWorkTime(workId);
for (WorkTime workTime:workTimes){
Float s=score(workTime.getStartTime(),workTime.getEndTime());
count=count+s;
}
return count;
}
private void pWorkload(String workId){
ScoreCoefficient scoreCoefficient= scoreCoefficientService.findById(workId);
int workLoad= findBySuperoirIdCount(workId);
......@@ -204,7 +233,7 @@ private Float score(Date startTime,Date entTime){
} catch (ParseException e) {
e.printStackTrace();
}
return null;
return 0.0f;
}
@Override
......@@ -272,15 +301,47 @@ return null;
}
@Override
public List<WorkVo> selectUserIdsWork(String userId) {
public WorkVoMapping selectUserIdsWork(String userId) {
List<Work> works= workRepository.findAllByExecutorIn(iUserService.findUsers(userId));
List<WorkVo> workVos=new ArrayList<>();
List<WorkMpping> workMppings=new ArrayList<>();
for (Work work:works){
if (work.getSuperiorId()==null || work.getSuperiorId().equals("")){
workVos.add(conversionService.workToVo(work));
workMppings.add(new WorkMpping(work.getId(),work.getTitle(),work.getStatus(),workMppingList(work,works)));
}else {
boolean falg=true;
for (Work work1:works) {
if (work.getSuperiorId().equals(work1.getId())){
falg=false;
}
}
if (falg){
workVos.add(conversionService.workToVo(work));
workMppings.add(new WorkMpping(work.getId(),work.getTitle(),work.getStatus(),workMppingList(work,works)));
}
}
}
return new WorkVoMapping(workVos,workMppings);
}
return workRepository.findAllByExecutorIn(iUserService.findUsers(userId))
.stream()
.map(conversionService::workToVo)
.collect(Collectors.toList());
private List<WorkMpping> workMppingList(Work work,List<Work> workList){
List<WorkMpping> workMppings=new ArrayList<>();
List<Work> works=new ArrayList<>();
for (Work wo:workList){
if (wo.getSuperiorId()!=null && wo.getSuperiorId().equals(work.getId())){
works.add(wo);
}
}
if ( works.size()==0){
return workMppings;
}
for (Work work1:works){
workMppings.add(new WorkMpping(work1.getId(),work1.getTitle(),work1.getStatus(),workMppingList(work1,workList)));
}
return workMppings;
}
// @Override
// public List<Work> selectTimeWork() {
//// LocalDateTime minTime = LocalDateTime.now().with(LocalTime.MIN).atZone(ZoneOffset.ofHours(8)).ge;
......
package com.zjty.tynotes.job.basic.service.impl;
import com.zjty.tynotes.job.basic.entity.database.Work;
import com.zjty.tynotes.job.basic.entity.database.WorkTime;
import com.zjty.tynotes.job.basic.repository.WorkTimeRepository;
import com.zjty.tynotes.job.basic.service.WorkTimeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class WorkTimeServiceImpl implements WorkTimeService {
@Autowired
WorkTimeRepository workTimeRepository;
@Override
public void saveWorkStartTime(Work work, Date startTime) {
List<WorkTime> works= workTimeRepository.findByWorkId(work.getId());
if (works!=null && works.size()!=0){
for (WorkTime workTime:works){
if (workTime.getCount()==works.size()){
workTime.setEndTime(startTime);
workTimeRepository.save(workTime);
}
}
}else {
workTimeRepository.save(new WorkTime(null,work.getId(),1,work.getStateTime(),startTime));
}
}
@Override
public void saveWorkEndTime(Work work, Date endTime) {
List<WorkTime> works= workTimeRepository.findByWorkId(work.getId());
if (works!=null){
workTimeRepository.save(new WorkTime(null,work.getId(),works.size()+1,endTime,null));
}
}
@Override
public List<WorkTime> selectWorkTime(String workId) {
return workTimeRepository.findByWorkId(workId);
}
}
......@@ -374,7 +374,7 @@ public class TestServiceImpl implements TestService {
if (redisPersonalWork.getWorkId().equals(work.getId())) {
redisTemplate.opsForList().remove(Constants.REDIS_EVENT + work.getExecutor(), 1, redisPersonalWork);
redisPersonalWork.setStatus(status);
if (work.getPublisher().equals(executorId)) {
if (work.getExecutor().equals(executorId)) {
redisPersonalWork.setReadState(0);
} else {
redisPersonalWork.setReadState(1);
......
package com.zjty.tynotes.pas.utils;
import com.zjty.tynotes.misc.config.AutoDocument;
import com.zjty.tynotes.pas.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
......
......@@ -13,7 +13,7 @@ server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias= alias
#mongodb configuration
spring.data.mongodb.uri=mongodb://localhost:27017/notes
spring.data.mongodb.uri=mongodb://localhost:27017/test2
# servlet configuration
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB
......
......@@ -13,7 +13,7 @@ server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias= alias
#mongodb configuration
spring.data.mongodb.uri=mongodb://localhost:27017/notes
spring.data.mongodb.uri=mongodb://localhost:27017/test2
# servlet configuration
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB
......
......@@ -4,7 +4,7 @@ spring.application.name=workbook
## https端口号.
server.port=8289
# 证书的路径.
## 证书的路径.
server.ssl.key-store=classpath:2586377_workbook.zjtys.com.cn.pfx
# 证书密码,请修改为您自己证书的密码.
server.ssl.key-store-password=bMEPW9BG
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论