提交 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; ...@@ -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.JobResponse;
import com.zjty.tynotes.job.basic.entity.response.WorkIsNotCommit; 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.WorkVo;
import com.zjty.tynotes.job.basic.entity.response.WorkVoMapping;
import com.zjty.tynotes.job.basic.repository.WorkRepository; import com.zjty.tynotes.job.basic.repository.WorkRepository;
import com.zjty.tynotes.job.basic.service.ConversionService; import com.zjty.tynotes.job.basic.service.ConversionService;
import com.zjty.tynotes.job.basic.service.WorkService; import com.zjty.tynotes.job.basic.service.WorkService;
...@@ -143,10 +144,10 @@ public class WorkController { ...@@ -143,10 +144,10 @@ public class WorkController {
switch (status) { switch (status) {
case "ongoing": case "ongoing":
Work work=workService.findById(workId); Work work=workService.findById(workId);
workService.alterTaskStatus(workId,status); workService.alterTaskStatus(workId,status,userId);
if (work.getExecutor().equals(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 { }else {
businessTreeManagement.saveAction(userId,workId,Action.BACK_WORK,new Date(),msg); businessTreeManagement.saveAction(userId,workId,Action.BACK_WORK,new Date(),msg);
//审核不通过 //审核不通过
...@@ -154,21 +155,18 @@ public class WorkController { ...@@ -154,21 +155,18 @@ public class WorkController {
break; break;
case "audit": case "audit":
//执行者提交 //执行者提交
Work work1= workRepository.findById(workId).get(); workService.alterTaskStatus(workId, status,userId);
work1.setEndTime(new Date());
workRepository.save(work1);
workService.alterTaskStatus(workId, status);
businessTreeManagement.saveAction(userId, workId, Action.COMMIT_WORK, new Date(), msg); businessTreeManagement.saveAction(userId, workId, Action.COMMIT_WORK, new Date(), msg);
break; break;
case "review": case "review":
//审核通过 //审核通过
workService.alterTaskStatus(workId, status); workService.alterTaskStatus(workId, status,userId);
businessTreeManagement.saveAction(userId, workId, Action.FINISH_WORK, new Date(), msg); businessTreeManagement.saveAction(userId, workId, Action.FINISH_WORK, new Date(), msg);
break; break;
case WorkStatus.FINISHED: case WorkStatus.FINISHED:
workService.alterTaskStatus(workId, status); workService.alterTaskStatus(workId, status,userId);
businessTreeManagement.saveAction(userId, workId, Action.FINISHED_WORK, new Date(), msg); businessTreeManagement.saveAction(userId, workId, Action.FINISHED_WORK, new Date(), msg);
break;
default: default:
log.warn("[job] 修改任务状态传入的参数有误,传入值为:{}", status); log.warn("[job] 修改任务状态传入的参数有误,传入值为:{}", status);
break; break;
...@@ -193,9 +191,10 @@ public class WorkController { ...@@ -193,9 +191,10 @@ public class WorkController {
@GetMapping(value = "/select/work/{userId}") @GetMapping(value = "/select/work/{userId}")
@ApiOperation(value = "根据用户id查看其部门所有的任务", notes = "部门所有的任务") @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)); return ok(workService.selectUserIdsWork(userId));
} }
} }
...@@ -77,7 +77,21 @@ public class Work { ...@@ -77,7 +77,21 @@ 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 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 * 发布者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 { ...@@ -66,6 +66,20 @@ public class WorkVo {
@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 updateTime; 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 * 发布者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; ...@@ -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.database.Work;
import com.zjty.tynotes.job.basic.entity.response.WorkIsNotCommit; 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.WorkVo;
import com.zjty.tynotes.job.basic.entity.response.WorkVoMapping;
import com.zjty.tynotes.job.basic.service.impl.WorkServiceImpl; import com.zjty.tynotes.job.basic.service.impl.WorkServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -86,7 +87,7 @@ public interface WorkService { ...@@ -86,7 +87,7 @@ public interface WorkService {
* @param taskId 任务id * @param taskId 任务id
* @param status 要修改的状态 * @param status 要修改的状态
*/ */
void alterTaskStatus(String taskId, String status); void alterTaskStatus(String taskId, String status,String userId);
/** /**
* 逻辑删除任务 * 逻辑删除任务
...@@ -128,5 +129,6 @@ public interface WorkService { ...@@ -128,5 +129,6 @@ public interface WorkService {
// */ // */
// List<Work> selectTimeWork(); // 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 { ...@@ -58,6 +58,8 @@ public class ConversionServiceImpl implements ConversionService {
work.getEndTime(), work.getEndTime(),
work.getCompleteTime(), work.getCompleteTime(),
work.getUpdateTime(), work.getUpdateTime(),
work.getSubmitTime(),
work.getAuditTime(),
pUser, pUser,
eUser, eUser,
users, users,
......
...@@ -3,12 +3,16 @@ package com.zjty.tynotes.job.basic.service.impl; ...@@ -3,12 +3,16 @@ 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.ScoreCoefficient; 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.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.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.WorkVo;
import com.zjty.tynotes.job.basic.entity.response.WorkVoMapping;
import com.zjty.tynotes.job.basic.repository.WorkRepository; import com.zjty.tynotes.job.basic.repository.WorkRepository;
import com.zjty.tynotes.job.basic.service.ConversionService; import com.zjty.tynotes.job.basic.service.ConversionService;
import com.zjty.tynotes.job.basic.service.ScoreCoefficientService; import com.zjty.tynotes.job.basic.service.ScoreCoefficientService;
import com.zjty.tynotes.job.basic.service.WorkService; 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.basic.utils.WorkingTime;
import com.zjty.tynotes.job.common.constant.WorkStatus; import com.zjty.tynotes.job.common.constant.WorkStatus;
import com.zjty.tynotes.job.common.exception.BadRequestException; import com.zjty.tynotes.job.common.exception.BadRequestException;
...@@ -56,6 +60,9 @@ public class WorkServiceImpl implements WorkService { ...@@ -56,6 +60,9 @@ public class WorkServiceImpl implements WorkService {
@Autowired @Autowired
ScoreCoefficientService scoreCoefficientService; ScoreCoefficientService scoreCoefficientService;
@Autowired
WorkTimeService workTimeService;
@Autowired @Autowired
public WorkServiceImpl(WorkRepository workRepository) { public WorkServiceImpl(WorkRepository workRepository) {
this.workRepository = workRepository; this.workRepository = workRepository;
...@@ -129,34 +136,56 @@ public class WorkServiceImpl implements WorkService { ...@@ -129,34 +136,56 @@ public class WorkServiceImpl implements WorkService {
public void deleteAll() { public void deleteAll() {
} }
@Override @Override
public void alterTaskStatus(String taskId, String status) { public void alterTaskStatus(String taskId, String status, String userId) {
Work ob = workRepository.findById(taskId).get(); Work ob = workRepository.findById(taskId).get();
ob.setStatus(status); 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 expect= score(ob.getStateTime(),ob.getCompleteTime());
Float practical=score(ob.getStateTime(),ob.getEndTime()); Float practical=practical(taskId);
if (expect<practical){ if (expect<practical){
float time= practical-expect; float times= practical-expect;
ob.setWorkCoefficient(beyond(1,1.0f,time)); ob.setWorkCoefficient(beyond(1,1.0f,times));
//添加 //添加
}else if (expect.equals(practical)){ }else if (expect.equals(practical)){
ob.setWorkCoefficient(1f);
ob.setWorkCoefficient(1f); }else {
//添加 float times= expect-practical;
}else { ob.setWorkCoefficient(advance(1,1.0f,times));
float time= expect-practical; }
ob.setWorkCoefficient(advance(1,1.0f,time));
}
}
if (status.equals(WorkStatus.FINISHED)){ }else if (status.equals(WorkStatus.FINISHED)){
pWorkload(taskId); pWorkload(taskId);
ob.setEndTime(time);
} }
workRepository.save(ob); 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){ private void pWorkload(String workId){
ScoreCoefficient scoreCoefficient= scoreCoefficientService.findById(workId); ScoreCoefficient scoreCoefficient= scoreCoefficientService.findById(workId);
int workLoad= findBySuperoirIdCount(workId); int workLoad= findBySuperoirIdCount(workId);
...@@ -204,7 +233,7 @@ private Float score(Date startTime,Date entTime){ ...@@ -204,7 +233,7 @@ private Float score(Date startTime,Date entTime){
} catch (ParseException e) { } catch (ParseException e) {
e.printStackTrace(); e.printStackTrace();
} }
return null; return 0.0f;
} }
@Override @Override
...@@ -272,15 +301,47 @@ return null; ...@@ -272,15 +301,47 @@ return null;
} }
@Override @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)) private List<WorkMpping> workMppingList(Work work,List<Work> workList){
.stream() List<WorkMpping> workMppings=new ArrayList<>();
.map(conversionService::workToVo) List<Work> works=new ArrayList<>();
.collect(Collectors.toList()); 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 // @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.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 { ...@@ -374,7 +374,7 @@ public class TestServiceImpl implements TestService {
if (redisPersonalWork.getWorkId().equals(work.getId())) { if (redisPersonalWork.getWorkId().equals(work.getId())) {
redisTemplate.opsForList().remove(Constants.REDIS_EVENT + work.getExecutor(), 1, redisPersonalWork); redisTemplate.opsForList().remove(Constants.REDIS_EVENT + work.getExecutor(), 1, redisPersonalWork);
redisPersonalWork.setStatus(status); redisPersonalWork.setStatus(status);
if (work.getPublisher().equals(executorId)) { if (work.getExecutor().equals(executorId)) {
redisPersonalWork.setReadState(0); redisPersonalWork.setReadState(0);
} else { } else {
redisPersonalWork.setReadState(1); redisPersonalWork.setReadState(1);
......
package com.zjty.tynotes.pas.utils; package com.zjty.tynotes.pas.utils;
import com.zjty.tynotes.misc.config.AutoDocument;
import com.zjty.tynotes.pas.entity.User; import com.zjty.tynotes.pas.entity.User;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
......
...@@ -13,7 +13,7 @@ server.ssl.keyStoreType=PKCS12 ...@@ -13,7 +13,7 @@ server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias= alias server.ssl.keyAlias= alias
#mongodb configuration #mongodb configuration
spring.data.mongodb.uri=mongodb://localhost:27017/notes spring.data.mongodb.uri=mongodb://localhost:27017/test2
# servlet configuration # servlet configuration
spring.servlet.multipart.max-file-size=100MB spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB spring.servlet.multipart.max-request-size=1000MB
......
...@@ -13,7 +13,7 @@ server.ssl.keyStoreType=PKCS12 ...@@ -13,7 +13,7 @@ server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias= alias server.ssl.keyAlias= alias
#mongodb configuration #mongodb configuration
spring.data.mongodb.uri=mongodb://localhost:27017/notes spring.data.mongodb.uri=mongodb://localhost:27017/test2
# servlet configuration # servlet configuration
spring.servlet.multipart.max-file-size=100MB spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB spring.servlet.multipart.max-request-size=1000MB
......
...@@ -4,7 +4,7 @@ spring.application.name=workbook ...@@ -4,7 +4,7 @@ spring.application.name=workbook
## https端口号. ## https端口号.
server.port=8289 server.port=8289
# 证书的路径. ## 证书的路径.
server.ssl.key-store=classpath:2586377_workbook.zjtys.com.cn.pfx server.ssl.key-store=classpath:2586377_workbook.zjtys.com.cn.pfx
# 证书密码,请修改为您自己证书的密码. # 证书密码,请修改为您自己证书的密码.
server.ssl.key-store-password=bMEPW9BG server.ssl.key-store-password=bMEPW9BG
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论