diff --git a/mt/src/main/java/com/ccsens/mt/api/CompeteCompanyController.java b/mt/src/main/java/com/ccsens/mt/api/CompeteCompanyController.java new file mode 100644 index 00000000..ea6506d0 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteCompanyController.java @@ -0,0 +1,39 @@ +package com.ccsens.mt.api; + +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.mt.bean.dto.CompeteDto; +import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.service.CompeteService; +import com.ccsens.mt.service.ICompeteService; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Slf4j +@Api(tags = "用户信息", description = "") +@RestController +@RequestMapping("/compete/userMes") +public class CompeteCompanyController { + @Resource + private ICompeteService competeService; + @MustLogin + @ApiOperation(value = "用户的参赛单位id", notes = "") + @RequestMapping(value = "/getUserCompanyId", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse getUserCompanyId(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查看当前用户的参赛单位id:{}",params); + CompeteVo.CompanyId companyId1=new CompeteVo.CompanyId(); + Long companyId = competeService.getUserCompanyId(params.getUserId(),params.getParam().getType()); + companyId1.setCompanyId(companyId); + return JsonResponse.newInstance().ok(companyId1); + } +} diff --git a/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java index 4c238d3c..5e577495 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java +++ b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java @@ -390,5 +390,11 @@ public class CompeteDto { @ApiModelProperty("项目id") private Long projectId; } - + @Data + @ApiModel + public static class GetUserCompany { + @NotNull + @ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛") + private Byte type; + } } diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java index 4a8aba8c..73f4b577 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java @@ -582,4 +582,10 @@ public class CompeteVo { @ApiModelProperty("项目id") private Long projectId; } + @Data + @ApiModel("公司id") + public static class CompanyId { + @ApiModelProperty("公司") + private Long companyId; + } } diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java index d8796b19..40f7bc5d 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java +++ b/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 siteList; + private List siteList = new ArrayList<>(); } @Data @ApiModel("项目下的场地信息") @@ -300,7 +303,7 @@ public class ProvinceCompeteVo { @ApiModelProperty("场地编号") private int siteNum; @ApiModelProperty("场地下的裁判") - private List judgmentList; + private List judgmentList = new ArrayList<>(); } @Data diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java index b4222b6d..41f609c3 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -1038,26 +1038,31 @@ public class CompeteService implements ICompeteService { if(competeJudgment.getChiefJudgment()!=(byte)0){ //不是主裁判 //先判断主裁判提交了没 - Integer ti= new Integer(0);//0代表没提交 1代表提交了 - CompeteVarietyScoreExample competeVarietyScoreExample=new CompeteVarietyScoreExample(); - competeVarietyScoreExample.createCriteria().andSiteOrderIdEqualTo(param.getSiteOrderId()).andRecStatusEqualTo((byte) 0); - List competeVarietyScoresList = competeVarietyScoreMapper.selectByExample(competeVarietyScoreExample); - //下面就是想看看主裁判提交了没 - if(competeVarietyScoresList.size()>0){ - for (CompeteVarietyScore competeVarietyScore:competeVarietyScoresList){ - CompeteJudgment competeJudgment1 = competeJudgmentMapper.selectByPrimaryKey(competeVarietyScore.getJudgmentId()); - if(competeJudgment1.getChiefJudgment()==(byte)0){ - ti=1; - break; - } - } - } - if(ti>0){ - //主裁判提交了, - if(competeStartOrder1.getWaiver()!=(byte)0){ - for(int j=0;j competeVarietyScoresList = competeVarietyScoreMapper.selectByExample(competeVarietyScoreExample); +// //下面就是想看看主裁判提交了没 +// if(competeVarietyScoresList.size()>0){ +// for (CompeteVarietyScore competeVarietyScore:competeVarietyScoresList){ +// CompeteJudgment competeJudgment1 = competeJudgmentMapper.selectByPrimaryKey(competeVarietyScore.getJudgmentId()); +// if(competeJudgment1.getChiefJudgment()==(byte)0){ +// ti=1; +// break; +// } +// } +// } +// if(ti>0){ +// //主裁判提交了,则看一下他里面是否选择了弃权 +// if(competeStartOrder1.getWaiver()!=(byte)0){ +// for(int j=0;j competeVarietyScoresList = competeVarietyScoreMapper.selectByExample(competeVarietyScoreExample); - for (CompeteVarietyScore competeVarietyScore : competeVarietyScoresList) { - competeVarietyScore.setScore(new BigDecimal(0)); - competeVarietyScoreMapper.updateByPrimaryKeySelective(competeVarietyScore); + for (int i = 0; i < competeVarietyScoresList.size(); i++) { + competeVarietyScoresList.get(i).setScore(new BigDecimal(0)); + competeVarietyScoreMapper.updateByPrimaryKeySelective(competeVarietyScoresList.get(i)); } } } @@ -1085,6 +1090,9 @@ public class CompeteService implements ICompeteService { competeStartOrder.setId(param.getSiteOrderId()); competeStartOrder.setWaiver(param.getWaiver()); competeStartOrderMapper.updateByPrimaryKeySelective(competeStartOrder); + for (int i = 0; i < param.getFractionsList().size(); i++) { + param.getFractionsList().get(i).setScore(new BigDecimal(0)); + } } CompeteVarietyScore competeVarietyScore=new CompeteVarietyScore(); competeVarietyScore.setId(snowflake.nextId()); @@ -1570,4 +1578,15 @@ public class CompeteService implements ICompeteService { return selScropeVo; } + @Override + public Long getUserCompanyId(Long userId, Byte type) { + CompeteCompanyExample competeCompanyExample=new CompeteCompanyExample(); + competeCompanyExample.createCriteria().andUserIdEqualTo(userId).andTypeEqualTo(type).andRecStatusEqualTo((byte) 0); + List competeCompanies = competeCompanyMapper.selectByExample(competeCompanyExample); + if(competeCompanies.size()>0){ + return competeCompanies.get(0).getId(); + } + return null; + } + } \ No newline at end of file diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java index e0d9abb8..e5f51fef 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java +++ b/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; diff --git a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java index 7b5e6aab..8cf36d5c 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -204,6 +204,8 @@ public interface ICompeteService { List queryCountScoreAll(ScoreDto.ShowResult param); CompeteVo.SelScropeVo selSubmitOrderList(ScoreDto.SelScrop param); + + Long getUserCompanyId(Long userId, Byte type); } diff --git a/mt/src/main/resources/application.yml b/mt/src/main/resources/application.yml index 4ecd13fd..f59084b0 100644 --- a/mt/src/main/resources/application.yml +++ b/mt/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: dev - include: common, util-dev + active: test + include: common, util-test diff --git a/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml b/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml index 5424e8a1..44e60370 100644 --- a/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml @@ -8,6 +8,7 @@ + @@ -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} @@ -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 diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java index f0c819e2..75eeab2a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/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 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 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 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 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 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 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 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 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 secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, allMemberId, startTime, endTime, priority);