Browse Source

20201120v1.3

tiaosheng
zy_Java 5 years ago
parent
commit
d6d371a12e
  1. 7
      mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java
  2. 63
      mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java
  3. 4
      mt/src/main/resources/application.yml
  4. 6
      mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml
  5. 133
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

7
mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@ -291,8 +292,10 @@ public class ProvinceCompeteVo {
private Long startTime;
@ApiModelProperty("项目结束时间")
private Long endTime;
@ApiModelProperty("场地数量")
private int siteNums;
@ApiModelProperty("项目下的场地")
private List<ProjectSite> siteList;
private List<ProjectSite> siteList = new ArrayList<>();
}
@Data
@ApiModel("项目下的场地信息")
@ -300,7 +303,7 @@ public class ProvinceCompeteVo {
@ApiModelProperty("场地编号")
private int siteNum;
@ApiModelProperty("场地下的裁判")
private List<SiteJudgment> judgmentList;
private List<SiteJudgment> judgmentList = new ArrayList<>();
}
@Data

63
mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java

@ -312,26 +312,55 @@ public class CompeteTaskService implements ICompeteTaskService{
if(CollectionUtil.isNotEmpty(queryJudgmentList)){
queryJudgmentList.forEach(projectJudgment -> {
//裁判数量
int count = 0;
if(CollectionUtil.isNotEmpty(projectJudgment.getSiteList())){
for(ProvinceCompeteVo.ProjectSite siteJudgment : projectJudgment.getSiteList()) {
if(projectJudgment.getProjectType() == 0){
count = 3;
int count = projectJudgment.getProjectType() == 0 ? 3 : 7;
// if(CollectionUtil.isNotEmpty(projectJudgment.getSiteList())){
for (int i = 0; i < projectJudgment.getSiteNums(); i++) {
if(i < projectJudgment.getSiteList().size()){
ProvinceCompeteVo.ProjectSite siteJudgment = projectJudgment.getSiteList().get(i);
if (CollectionUtil.isEmpty(siteJudgment.getJudgmentList())) {
siteJudgment.setJudgmentList(new ArrayList<>());
}
int a = siteJudgment.getJudgmentList().size();
for (int j = 0; j < count - a; j++) {
ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment();
siteJudgment1.setJudgmentNum(a + j);
siteJudgment.getJudgmentList().add(siteJudgment1);
}
}else {
count = 7;
}
if (CollectionUtil.isEmpty(siteJudgment.getJudgmentList())) {
siteJudgment.setJudgmentList(new ArrayList<>());
}
int a = siteJudgment.getJudgmentList().size();
for (int i = 0; i < count - a; i++) {
ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment();
siteJudgment1.setJudgmentNum(a + i);
siteJudgment.getJudgmentList().add(siteJudgment1);
int a = projectJudgment.getSiteList().size();
for (int j = 0; j < count - a; j++) {
ProvinceCompeteVo.ProjectSite siteJudgment = new ProvinceCompeteVo.ProjectSite();
siteJudgment.setSiteNum(a + j + 1);
projectJudgment.getSiteList().add(siteJudgment);
int b = siteJudgment.getJudgmentList().size();
for (int x = 0; x < count - b; x++) {
ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment();
siteJudgment1.setJudgmentNum(b + x);
siteJudgment.getJudgmentList().add(siteJudgment1);
}
}
}
}
}
// for(ProvinceCompeteVo.ProjectSite siteJudgment : projectJudgment.getSiteList()) {
// if(projectJudgment.getProjectType() == 0){
// count = 3;
// }else {
// count = 7;
// }
// if (CollectionUtil.isEmpty(siteJudgment.getJudgmentList())) {
// siteJudgment.setJudgmentList(new ArrayList<>());
// }
// int a = siteJudgment.getJudgmentList().size();
// for (int i = 0; i < count - a; i++) {
// ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment();
// siteJudgment1.setJudgmentNum(a + i);
// siteJudgment.getJudgmentList().add(siteJudgment1);
// }
// }
// }
});
}
return queryJudgmentList;

4
mt/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: dev
include: common, util-dev
active: test
include: common, util-test

6
mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml

@ -8,6 +8,7 @@
<result column="projectType" property="projectType"/>
<result column="startTime" property="startTime"/>
<result column="endTime" property="endTime"/>
<result column="siteNums" property="siteNums"/>
<collection property="siteList" ofType="com.ccsens.mt.bean.vo.ProvinceCompeteVo$ProjectSite">
<id column="siteNum" property="siteNum"/>
<collection property="judgmentList" ofType="com.ccsens.mt.bean.vo.ProvinceCompeteVo$SiteJudgment">
@ -25,6 +26,7 @@
p.`name` as projectName,
pc.start_time as startTime,
pc.end_time as endTime,
pc.site_num AS siteNums,
j.site as siteNum,
j.chief_judgment as judgmentNum,
j.`name` as judgmentName,
@ -34,7 +36,7 @@
FROM
t_compete_project p LEFT JOIN t_compete_time ct on p.type = ct.type
LEFT JOIN t_compete_project_config pc on p.id = pc.project_id
LEFT JOIN t_compete_judgment j on j.project_id = p.id
LEFT JOIN t_compete_judgment j on j.project_id = p.id and (j.rec_status = 0 or j.rec_status IS NULL)
WHERE
ct.id = #{competeTimeId}
<if test="projectId != null">
@ -43,7 +45,7 @@
and p.`level` = 2
and p.certificate = 0
and p.rec_status = 0
and (j.rec_status = 0 or j.rec_status is null)
and pc.rec_status = 0
</select>

133
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -26,6 +26,8 @@ import com.ccsens.util.WebConstant;
import com.ccsens.util.cron.CronConstant;
import com.ccsens.util.cron.NatureToDate;
import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -73,8 +75,6 @@ public class ProTaskDetailService implements IProTaskDetailService {
@Resource
private Snowflake snowflake;
@Resource
private MtFeignClient mtFeignClient;
@Resource
private ProPluginConfigDao pluginConfigDao;
@Resource
private IRobotService robotService;
@ -86,6 +86,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
private ProMemberRoleDao proMemberRoleDao;
@Resource
private TaskPluginService taskPluginService;
@Resource
private ProShowDao proShowDao;
@Override
public void saveTaskDetail(ProTaskDetail taskDetail) {
@ -160,11 +162,27 @@ public class ProTaskDetailService implements IProTaskDetailService {
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
TaskVo.GlobalTask globalTask;
TaskVo.NormalTask normalTask;
//1、查找一级任务
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if (ObjectUtil.isNull(project)){
throw new BaseException(CodeEnum.PARAM_ERROR);
}
if (endTime < project.getBeginTime() || startTime > project.getEndTime()) {
return proTaskInfo;
}
//查找项目配置
ProShowExample proShowExample = new ProShowExample();
proShowExample.createCriteria().andProjectIdEqualTo(projectId);
List<ProShow> proShowList = proShowDao.selectByExample(proShowExample);
if(CollectionUtil.isNotEmpty(proShowList)){
ProShow proShow = proShowList.get(0);
if(proShow.getSelectTaskType() == 4){
return getTaskAndType4ByPM(currentUserId,projectId,startTime,endTime,page,pageSize,roleId);
}
}
//1、查找一级任务
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
proTaskDetailExample.createCriteria().andProjectIdEqualTo(projectId).andLevelEqualTo((byte) 1)
.andLevelEqualTo((byte) 1).andBeginTimeLessThanOrEqualTo(endTime).andEndTimeGreaterThanOrEqualTo(startTime);
@ -253,6 +271,105 @@ public class ProTaskDetailService implements IProTaskDetailService {
return proTaskInfo;
}
//特殊任务分页查找项目经理下的任务(不处理时间)
private TaskVo.ProTaskInfo getTaskAndType4ByPM(Long currentUserId,Long projectId,Long startTime,Long endTime,int page,int pageSize,Long roleId) throws Exception {
List<TaskVo.NormalTask> normalTasks = new ArrayList<>();
//1、查找一级任务
PageHelper.startPage(page, pageSize);
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
proTaskDetailExample.createCriteria().andProjectIdEqualTo(projectId).andLevelEqualTo((byte) 1)
.andLevelEqualTo((byte) 1).andBeginTimeLessThanOrEqualTo(endTime).andEndTimeGreaterThanOrEqualTo(startTime);
proTaskDetailExample.setOrderByClause("begin_time");
List<ProTaskDetail> firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample);
PageInfo pageInfo = new PageInfo<>(firstTaskDetailList);
if (CollectionUtil.isNotEmpty(firstTaskDetailList)) {
int sequence = 1;
for (ProTaskDetail firstTaskDetail : firstTaskDetailList) {
TaskVo.NormalTask normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(firstTaskDetail, normalTask);
normalTask.setDetailId(firstTaskDetail.getId());
normalTask.setId(taskDeliverService.isTaskOrSubTime(firstTaskDetail.getId()));
normalTask.setSequence(sequence);
// 查询任务名对应的配置
ProPluginConfigExample configExample = new ProPluginConfigExample();
configExample.createCriteria().andTaskIdEqualTo(firstTaskDetail.getId()).andPlaceLocationEqualTo((byte) 0);
List<ProPluginConfig> proPluginConfigs = pluginConfigDao.selectByExample(configExample);
if (CollectionUtil.isNotEmpty(proPluginConfigs)) {
ProPluginConfig config = proPluginConfigs.get(0);
normalTask.setImportParam(config.getImportParam());
normalTask.setRoutineLocation(config.getRoutineLocation());
normalTask.setWebPath(config.getWebPath());
}
//一级任务配置
normalTask.setProTaskConfig(getProTaskShow(normalTask.getDetailId()));
//一级任务完成状态
ProSubTimeMember firstSubTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
if (ObjectUtil.isNotNull(firstSubTimeMember)) {
normalTask.setRealEndTime(firstSubTimeMember.getRealFinishTime());
normalTask.setProcess(firstSubTimeMember.getComplatedStatus());
}
//查找一级任务下的二级任务
List<TaskVo.NormalTask> secondNormalTaskList = taskDetailDao.selectNormalTaskListByPM(projectId, firstTaskDetail.getId(), startTime, endTime, roleId);
if (CollectionUtil.isNotEmpty(secondNormalTaskList)) {
normalTask.setSecondTasks(secondNormalTaskList);
}
sequence++;
normalTasks.add(normalTask);
}
}
//页码
TaskVo.PageInfo p = new TaskVo.PageInfo();
p.setCurrentPage(pageInfo.getPageNum());
p.setTotalPage(pageInfo.getPages());
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
proTaskInfo.setPageInfo(p);
proTaskInfo.setNormalTaskList(normalTasks);
return proTaskInfo;
}
private TaskVo.ProTaskInfo getTaskAndType4ByMember(Long currentUserId,Long projectId,Long startTime,Integer imitation,
Long endTime,int page,int pageSize,Long roleId,Long allMemberId,Integer priority) throws Exception {
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
PageHelper.startPage(page, pageSize);
List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId,
allMemberId, startTime, endTime, priority);
PageInfo pageInfo = new PageInfo<>(secondTaskVoList);
if (CollectionUtil.isNotEmpty(secondTaskVoList)) {
for (TaskVo.NormalTask normalTask : secondTaskVoList) {
//处理插件
managePlugin(currentUserId, roleId, normalTask, imitation);
//任务完成状态
if (normalTask.getProcess() != 2) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
if (ObjectUtil.isNotNull(subTimeMember)) {
normalTask.setProcess(subTimeMember.getComplatedStatus());
normalTask.setRealEndTime(subTimeMember.getRealFinishTime());
} else if (normalTask.getProcess() > 2) {
normalTask.setRealEndTime((long) 0);
normalTask.setProcess(0);
}
}
//任务配置
normalTask.setProTaskConfig(getProTaskShow(normalTask.getDetailId()));
//提醒信息
normalTask.setRemindInfoList(proRemindDao.queryRemindByTask(normalTask.getId()));
}
}
//页码
TaskVo.PageInfo p = new TaskVo.PageInfo();
p.setCurrentPage(pageInfo.getPageNum());
p.setTotalPage(pageInfo.getPages());
TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo();
proTaskInfo.setPageInfo(p);
proTaskInfo.setNormalTaskList(secondTaskVoList);
return proTaskInfo;
}
/**
* 查看任务 项目成员
*/
@ -269,6 +386,16 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(allMember)) {
allMemberId = allMember.getId();
}
//查找项目配置
ProShowExample proShowExample = new ProShowExample();
proShowExample.createCriteria().andProjectIdEqualTo(projectId);
List<ProShow> proShowList = proShowDao.selectByExample(proShowExample);
if(CollectionUtil.isNotEmpty(proShowList)){
ProShow proShow = proShowList.get(0);
if(proShow.getSelectTaskType() == 4){
return getTaskAndType4ByMember(currentUserId,projectId,startTime,imitation,endTime,page,pageSize,roleId,allMemberId,priority);
}
}
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId,
allMemberId, startTime, endTime, priority);

Loading…
Cancel
Save