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

添加work两个字段

上级 81f83a70
流水线 #83 已失败 于阶段
...@@ -143,10 +143,10 @@ public class WorkController { ...@@ -143,10 +143,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 +154,18 @@ public class WorkController { ...@@ -154,21 +154,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;
......
...@@ -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;
}
...@@ -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.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 { ...@@ -86,7 +86,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);
/** /**
* 逻辑删除任务 * 逻辑删除任务
......
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,14 @@ package com.zjty.tynotes.job.basic.service.impl; ...@@ -3,12 +3,14 @@ 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.WorkVo; import com.zjty.tynotes.job.basic.entity.response.WorkVo;
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 +58,9 @@ public class WorkServiceImpl implements WorkService { ...@@ -56,6 +58,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 +134,56 @@ public class WorkServiceImpl implements WorkService { ...@@ -129,34 +134,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 +231,7 @@ private Float score(Date startTime,Date entTime){ ...@@ -204,7 +231,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
......
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);
......
...@@ -136,7 +136,7 @@ public class Init implements CommandLineRunner { ...@@ -136,7 +136,7 @@ public class Init implements CommandLineRunner {
UserRole userRole = new UserRole(null, save.getId(), id); UserRole userRole = new UserRole(null, save.getId(), id);
userRoleDao.save(userRole); userRoleDao.save(userRole);
this.root.setPassword("root"); // this.root.setPassword("root");
} }
; ;
......
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;
......
...@@ -34,7 +34,7 @@ public class UnionApplication { ...@@ -34,7 +34,7 @@ public class UnionApplication {
tomcat.addAdditionalTomcatConnectors(createHTTPConnector()); tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat; return tomcat;
} }
//
private Connector createHTTPConnector() { private Connector createHTTPConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//同时启用http(8080)、https(8443)两个端口 //同时启用http(8080)、https(8443)两个端口
......
...@@ -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
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论