提交 221e0d9b authored 作者: zjm's avatar zjm

添加work两个字段

上级 81f83a70
流水线 #83 已失败 于阶段
......@@ -143,7 +143,7 @@ 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);
......@@ -154,21 +154,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;
......
......@@ -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;
}
......@@ -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.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);
}
......@@ -86,7 +86,7 @@ public interface WorkService {
* @param taskId 任务id
* @param status 要修改的状态
*/
void alterTaskStatus(String taskId, String status);
void alterTaskStatus(String taskId, String status,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,14 @@ 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.WorkVo;
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 +58,9 @@ public class WorkServiceImpl implements WorkService {
@Autowired
ScoreCoefficientService scoreCoefficientService;
@Autowired
WorkTimeService workTimeService;
@Autowired
public WorkServiceImpl(WorkRepository workRepository) {
this.workRepository = workRepository;
......@@ -129,34 +134,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());
Float practical=practical(taskId);
if (expect<practical){
float time= practical-expect;
ob.setWorkCoefficient(beyond(1,1.0f,time));
float times= practical-expect;
ob.setWorkCoefficient(beyond(1,1.0f,times));
//添加
}else if (expect.equals(practical)){
ob.setWorkCoefficient(1f);
//添加
}else {
float time= expect-practical;
ob.setWorkCoefficient(advance(1,1.0f,time));
}
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 +231,7 @@ private Float score(Date startTime,Date entTime){
} catch (ParseException e) {
e.printStackTrace();
}
return null;
return 0.0f;
}
@Override
......
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);
......
......@@ -136,7 +136,7 @@ public class Init implements CommandLineRunner {
UserRole userRole = new UserRole(null, save.getId(), id);
userRoleDao.save(userRole);
this.root.setPassword("root");
// this.root.setPassword("root");
}
;
......
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;
......
......@@ -34,7 +34,7 @@ public class UnionApplication {
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
//
private Connector createHTTPConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//同时启用http(8080)、https(8443)两个端口
......
......@@ -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
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论