From b589f99f4dc0d39ed4d961446c936bfeb3f2c6ed Mon Sep 17 00:00:00 2001 From: typ Date: Sat, 27 Dec 2025 11:42:34 +0800 Subject: [PATCH] 红旅赛道 --- .gitignore | 1 + src/main/java/com/zhongzhi/common/constant/ProjectType.java | 2 ++ src/main/java/com/zhongzhi/controller/MatchDictController.java | 8 ++++++++ src/main/java/com/zhongzhi/controller/ProjectController.java | 22 ++++++++++++++++++++++ src/main/java/com/zhongzhi/service/MatchDictService.java | 2 ++ src/main/java/com/zhongzhi/service/ProjectService.java | 6 ++++++ src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java | 16 ++++++++++++++++ src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java | 268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 325 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bfa6a22 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +# Created by .ignore support plugin (hsz.mobi) diff --git a/src/main/java/com/zhongzhi/common/constant/ProjectType.java b/src/main/java/com/zhongzhi/common/constant/ProjectType.java index ef00110..f6ba930 100644 --- a/src/main/java/com/zhongzhi/common/constant/ProjectType.java +++ b/src/main/java/com/zhongzhi/common/constant/ProjectType.java @@ -19,6 +19,8 @@ public class ProjectType { public static final String VOCATIONAL = "职教赛道"; + public static final String HONGLV = "红旅赛道"; + public static final String INTERNATIONAL = "国际合作"; /** diff --git a/src/main/java/com/zhongzhi/controller/MatchDictController.java b/src/main/java/com/zhongzhi/controller/MatchDictController.java index 10581e5..4536b0c 100644 --- a/src/main/java/com/zhongzhi/controller/MatchDictController.java +++ b/src/main/java/com/zhongzhi/controller/MatchDictController.java @@ -10,6 +10,7 @@ import com.zhongzhi.common.utils.LoginRequired; import com.zhongzhi.common.utils.ResponseData; import com.zhongzhi.dto.match.MatchDictDTO; import com.zhongzhi.dto.match.SelectListPageDTO; +import com.zhongzhi.dto.project.ProjectListPageDTO; import com.zhongzhi.model.MatchDictDO; import com.zhongzhi.service.MatchDictService; import com.zhongzhi.vo.ResponseVO; @@ -218,5 +219,12 @@ public class MatchDictController { return ResponseData.generateCreatedResponse(0, matchDictService.getInternationalPage(selectListPageDTO)); } + /* 职教管理端 */ + @PostMapping(value = "/getHonglvlPage") + @LoginRequired({Platform.center, Platform.school, Platform.review}) + @ApiOperation("中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize") + public ResponseVO getHonglvlPage(@RequestBody SelectListPageDTO selectListPageDTO) { + return ResponseData.generateCreatedResponse(0, matchDictService.getHonglvlPage(selectListPageDTO)); + } } \ No newline at end of file diff --git a/src/main/java/com/zhongzhi/controller/ProjectController.java b/src/main/java/com/zhongzhi/controller/ProjectController.java index 241f4b0..be56dbc 100644 --- a/src/main/java/com/zhongzhi/controller/ProjectController.java +++ b/src/main/java/com/zhongzhi/controller/ProjectController.java @@ -893,4 +893,26 @@ public class ProjectController { return ResponseData.generateCreatedResponse(0, projectService.attendCount(attendCountDTO)); } + /* -- 管理端 -- */ + @PostMapping(value = "/getHonglvProjectPage") + @ApiOperation("中心端 --- 分页查询职教赛道项目管理:matchId/赛事ID,projectGroup/项目组别(高职、中职)、projectSchedule/项目进度(全部项目传空字符串、校内赛、市级初赛、市级复赛、市级决赛), " + + "projectStatus/项目状态, itemField/领域, name/搜名称, pageNo/当前页数 、pageSize/每页显示条数") + public ResponseVO getHonglvProjectPage(@RequestBody ProjectListPageDTO projectListPageDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getHonglvProjectPage(projectListPageDTO)); + } + + @PostMapping(value = "getHonglvProjectNum") + @LoginRequired({Platform.center, Platform.school, Platform.review}) + @ApiOperation("中心端/院校端 --- (职教)项目管理数量: matchId/赛事ID、projectGroup/项目组别") + public ResponseVO getHonglvProjectNum(@RequestBody SeedTrackProjectNumDTO seedTrackProjectNumDTO) { + return ResponseData.generateCreatedResponse(0, projectService.getHonglvProjectNum(seedTrackProjectNumDTO)); + } + + @PostMapping(value = "/getHonglvProjectDetail") + @LoginRequired({Platform.center, Platform.school, Platform.review}) + @ApiOperation("中心端/院校端 --- 职教赛道项目详情:id/项目ID") + public ResponseVO getHonglvProjectDetail(@RequestBody ProjectDO projectDO) { + return ResponseData.generateCreatedResponse(0, projectService.getHonglvProjectDetail(projectDO.getId())); + } + } \ No newline at end of file diff --git a/src/main/java/com/zhongzhi/service/MatchDictService.java b/src/main/java/com/zhongzhi/service/MatchDictService.java index c1fe70b..fba0060 100644 --- a/src/main/java/com/zhongzhi/service/MatchDictService.java +++ b/src/main/java/com/zhongzhi/service/MatchDictService.java @@ -38,6 +38,8 @@ public interface MatchDictService extends IService { IPage getVocationalPage(SelectListPageDTO selectListPageDTO); + IPage getHonglvlPage(SelectListPageDTO selectListPageDTO); + IPage getVocationalPageCity(SelectListPageDTO selectListPageDTO); IPage getInternationalPage(SelectListPageDTO selectListPageDTO); diff --git a/src/main/java/com/zhongzhi/service/ProjectService.java b/src/main/java/com/zhongzhi/service/ProjectService.java index 9ed386f..0bd15ab 100644 --- a/src/main/java/com/zhongzhi/service/ProjectService.java +++ b/src/main/java/com/zhongzhi/service/ProjectService.java @@ -164,12 +164,16 @@ public interface ProjectService extends IService { SeedTrackProjectDetailVO getVocationalProjectDetail(Long id); + SeedTrackProjectDetailVO getHonglvProjectDetail(Long id); + SeedTrackProjectDetailVO getVocationalProjectDetailCity(Long id); SeedTrackProjectDetailVO getInternationalProjectDetail(Long id); IPage getVocationalProjectPage(ProjectListPageDTO projectListPageDTO); + IPage getHonglvProjectPage(ProjectListPageDTO projectListPageDTO); + IPage getVocationalProjectPageCity(ProjectListPageDTO projectListPageDTO); IPage getInternationalProjectPage(ProjectListPageDTO projectListPageDTO); @@ -186,6 +190,8 @@ public interface ProjectService extends IService { VocationalNumVO getVocationalProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO); + VocationalNumVO getHonglvProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO); + VocationalNumVO getVocationalProjectNumCity(SeedTrackProjectNumDTO seedTrackProjectNumDTO); VocationalNumVO getInternationalProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO); diff --git a/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java index 89ec158..22ff789 100644 --- a/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/MatchDictServiceImpl.java @@ -254,6 +254,22 @@ public class MatchDictServiceImpl extends ServiceImpl } @Override + public IPage getHonglvlPage(SelectListPageDTO selectListPageDTO) { + + DbContextHolder.setDbType(DBTypeEnum.db2); + + Page page = new Page(selectListPageDTO.getPageNo(), selectListPageDTO.getPageSize()); + IPage iPage = this.baseMapper.getSeedTrackMatchPage(page, ProjectType.HONGLV); + for (MatchDictVO record : iPage.getRecords()) { + List list = matchScheduleDAO.selectList(new QueryWrapper() + .lambda() + .eq(MatchScheduleDO::getMatchId, record.getId())); + record.setSchedule(list); + } + return iPage; + } + + @Override public IPage getVocationalPageCity(SelectListPageDTO selectListPageDTO) { DbContextHolder.setDbType(DBTypeEnum.db1); diff --git a/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java b/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java index f1a34ea..9af2102 100644 --- a/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/zhongzhi/service/impl/ProjectServiceImpl.java @@ -408,6 +408,200 @@ public class ProjectServiceImpl extends ServiceImpl imple } return seedTrackProjectDetailVO; } + @Override + public SeedTrackProjectDetailVO getHonglvProjectDetail(Long id) { + + DbContextHolder.setDbType(DBTypeEnum.db2); + + Map map = Localstorage.getMap(); + String type = (String) map.get("type"); + ProjectJudgeDO projectJudge = new ProjectJudgeDO(); + CollegesDictDO collegesDict = new CollegesDictDO(); + if (type.equals(Platform.review)) { + projectJudge = (ProjectJudgeDO) map.get("user"); + } else if (type.equals(Platform.school)) { + collegesDict = (CollegesDictDO) map.get("user"); + } + + SeedTrackProjectDetailVO seedTrackProjectDetailVO = new SeedTrackProjectDetailVO(); + ProjectDO projectDO = this.baseMapper.selectById(id); + if (projectDO != null) { + BeanUtils.copyProperties(projectDO, seedTrackProjectDetailVO); + List materials = projectMaterialsDAO.selectList(new QueryWrapper() + .lambda() + .eq(ProjectMaterialsDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setMaterialsCn(materials); + + List list = projectMemberDAO.selectList(new QueryWrapper() + .lambda() + .eq(ProjectMemberDO::getProjectId, projectDO.getId())); + List teamMember = new ArrayList<>(); + List mentor = new ArrayList<>(); + for (ProjectMemberDO projectMemberDO : list) { + if (projectMemberDO.getType().equals(MemberType.PRINCIPAL)) { + seedTrackProjectDetailVO.setName(projectMemberDO.getName()); + seedTrackProjectDetailVO.setSchool(projectMemberDO.getSchool()); + seedTrackProjectDetailVO.setGrade(projectMemberDO.getGrade()); + seedTrackProjectDetailVO.setMajor(projectMemberDO.getMajor()); + seedTrackProjectDetailVO.setSex(projectMemberDO.getSex()); + seedTrackProjectDetailVO.setIdCard(projectMemberDO.getIdCard()); + if (projectMemberDO.getTelephone() == null) { + StudentDO studentDO = studentDAO.selectById(projectDO.getId()); + seedTrackProjectDetailVO.setTelephone(studentDO.getTelephone()); + } else { + seedTrackProjectDetailVO.setTelephone(projectMemberDO.getTelephone()); + } + seedTrackProjectDetailVO.setStudentNo(projectMemberDO.getStudentNo()); + seedTrackProjectDetailVO.setEmail(projectMemberDO.getEmail()); + seedTrackProjectDetailVO.setFiveYears(projectMemberDO.getFiveYears()); + seedTrackProjectDetailVO.setNation(projectMemberDO.getNation()); + seedTrackProjectDetailVO.setIdCardType(projectMemberDO.getIdCardType()); + seedTrackProjectDetailVO.setStudyCountry(projectMemberDO.getStudyCountry()); + } else if (projectMemberDO.getType().equals(MemberType.TEAM_MEMBER)) { + TeamMemberDTO teamMemberDTO = new TeamMemberDTO(); + teamMemberDTO.setId(projectMemberDO.getId()); + teamMemberDTO.setGrade(projectMemberDO.getGrade()); + teamMemberDTO.setMajor(projectMemberDO.getMajor()); + teamMemberDTO.setSchool(projectMemberDO.getSchool()); + teamMemberDTO.setSex(projectMemberDO.getSex()); + teamMemberDTO.setStudentNo(projectMemberDO.getStudentNo()); + teamMemberDTO.setTeamName(projectMemberDO.getName()); + teamMemberDTO.setTeamTelephone(projectMemberDO.getTelephone()); + teamMemberDTO.setIdCard(projectMemberDO.getIdCard()); + teamMemberDTO.setEmail(projectMemberDO.getEmail()); + teamMemberDTO.setContractMethod(projectMemberDO.getContractMethod()); + teamMemberDTO.setIdCardType(projectMemberDO.getIdCardType()); + teamMemberDTO.setStudyCountry(projectMemberDO.getStudyCountry()); + teamMember.add(teamMemberDTO); + } else if (projectMemberDO.getType().equals(MemberType.MENTOR)) { + MentorDTO mentorDTO = new MentorDTO(); + mentorDTO.setId(projectMemberDO.getId()); + mentorDTO.setCompany(projectMemberDO.getCompany()); + mentorDTO.setPosition(projectMemberDO.getPosition()); + mentorDTO.setPositionTitle(projectMemberDO.getPositionTitle()); + mentorDTO.setTeacherName(projectMemberDO.getName()); + mentorDTO.setTelephone(projectMemberDO.getTelephone()); + mentorDTO.setIdCard(projectMemberDO.getIdCard()); + mentorDTO.setNation(projectMemberDO.getNation()); + mentor.add(mentorDTO); + } + } + seedTrackProjectDetailVO.setMentor(mentor); + seedTrackProjectDetailVO.setTeamMember(teamMember); + +// QueryWrapper queryWrapper = new QueryWrapper(); +// if (projectJudge.getId() != null) { +// queryWrapper.lambda().eq(ProjectReviewDO::getJudgeId, projectJudge.getId()); +// } +// queryWrapper.lambda().eq(ProjectReviewDO::getProjectId, id); +// List review = projectReviewDAO.selectList(queryWrapper); +// if (review.size() > 0) { +// List rematch = new ArrayList<>(); +// List finals = new ArrayList<>(); +// for (ProjectReviewDO pr : review) { +// ProjectJudgeDO projectJudgeDO = projectJudgeDAO.selectById(pr.getJudgeId()); +// if (pr.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)) { +// ReMatchReviewVO reMatchReviewVO = new ReMatchReviewVO(); +// reMatchReviewVO.setId(pr.getId()); +// if (projectJudgeDO != null) { +// reMatchReviewVO.setRematchJudgeName(projectJudgeDO.getUsername()); +// } +// +// if (collegesDict.getId() == null) { +// reMatchReviewVO.setRematchScore(pr.getScore()); +// } +// reMatchReviewVO.setRematchTime(DateFormatUtil.format(pr.getReviewTime(), DateFormatUtil.FMT_sdf_yMd)); +// rematch.add(reMatchReviewVO); +// } else { +// FinalsReviewVO finalsReviewVO = new FinalsReviewVO(); +// finalsReviewVO.setId(pr.getId()); +// if (projectJudgeDO != null) { +// finalsReviewVO.setFinalsJudgeName(projectJudgeDO.getUsername()); +// } +// +// if (collegesDict.getId() == null) { +// finalsReviewVO.setFinalsScore(pr.getScore()); +// } +// finalsReviewVO.setFinalsTime(DateFormatUtil.format(pr.getReviewTime(), DateFormatUtil.FMT_sdf_yMd)); +// finals.add(finalsReviewVO); +// } +// } +// seedTrackProjectDetailVO.setRematch(rematch); +// seedTrackProjectDetailVO.setFinals(finals); +// } +// + if (projectJudge.getId() != null) { + ProjectReviewDO projectReviewDO = projectReviewDAO.selectOne(new QueryWrapper() + .lambda() + .eq(ProjectReviewDO::getProjectId, id) + .eq(ProjectReviewDO::getProjectSchedule, projectDO.getProjectSchedule()) + .eq(ProjectReviewDO::getJudgeId, projectJudge.getId())); + if (projectReviewDO != null) { + if (projectReviewDO.getReviewStatus().equals(ProjectReview.SUBMITTED)) { + seedTrackProjectDetailVO.setReviewStatus(ProjectReview.SUBMITTED); + } + seedTrackProjectDetailVO.setReviewScore(projectReviewDO.getReviewScore()); + seedTrackProjectDetailVO.setReviewOpinion(projectReviewDO.getReviewOpinion()); + } + } + + + // 股权结构 + List ownershipStructureDOList = projectOwnershipStructureDAO.selectList(new QueryWrapper() + .lambda() + .eq(ProjectOwnershipStructureDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setOwnership(ownershipStructureDOList); + + /** + * 专利 + */ + List patentDOList = patentMapper.selectList(new QueryWrapper() + .lambda() + .eq(ProjectPatentDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setPatent(patentDOList); + + /** + * 论文 + */ + List paperDOList = paperMapper.selectList(new QueryWrapper() + .lambda() + .eq(ProjectPaperDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setPaper(paperDOList); + + /** + * 奖项 + */ + List awardDOList = awardMapper.selectList(new QueryWrapper() + .lambda() + .eq(ProjectAwardDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setAward(awardDOList); + + /** + * 软件著作权 + */ + List copyrightDOList = copyrightMapper.selectList(new QueryWrapper() + .lambda() + .eq(ProjectCopyrightDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setCopyright(copyrightDOList); + + /** + * 作品著作 + */ + List worksDOList = worksMapper.selectList(new QueryWrapper() + .lambda() + .eq(ProjectWorksDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setWorks(worksDOList); + + /** + * 商标 + */ + List trademarkDOList = trademarkMapper.selectList(new QueryWrapper() + .lambda() + .eq(ProjectTrademarkDO::getProjectId, projectDO.getId())); + seedTrackProjectDetailVO.setTrademark(trademarkDOList); + } + return seedTrackProjectDetailVO; + } @Override public SeedTrackProjectDetailVO getVocationalProjectDetailCity(Long id) { @@ -834,6 +1028,36 @@ public class ProjectServiceImpl extends ServiceImpl imple return iPage; } + @Override + public IPage getHonglvProjectPage(ProjectListPageDTO projectListPageDTO) { + + DbContextHolder.setDbType(DBTypeEnum.db2); + + Page page = new Page(projectListPageDTO.getPageNo(), projectListPageDTO.getPageSize()); + Long matchId = null; + if (projectListPageDTO.getMatchId() == null) { + MatchDictDO matchDictDO = matchDictDAO.selectOne(new QueryWrapper() + .lambda() + .eq(MatchDictDO::getStatus, 1) + .eq(MatchDictDO::getMatchType, ProjectType.HONGLV)); + if (matchDictDO != null) { + matchId = matchDictDO.getId(); + } + } else { + matchId = projectListPageDTO.getMatchId(); + } + + IPage iPage = this.baseMapper.getSeedTrackProjectPage(page, matchId, projectListPageDTO.getProjectGroup(), MemberType.PRINCIPAL, ProjectType.VOCATIONAL, null, + projectListPageDTO.getProjectSchedule(), projectListPageDTO.getProjectStatus(), projectListPageDTO.getItemField(), projectListPageDTO.getName(), projectListPageDTO.getProjectProgress(),projectListPageDTO.getThemeName()); + for (SeedTrackProjectPageVO record : iPage.getRecords()) { + List list = projectMaterialsDAO.selectList(new QueryWrapper() + .lambda() + .eq(ProjectMaterialsDO::getProjectId, record.getId())); + record.setMaterials(list); + } + return iPage; + } + @Override public IPage getVocationalProjectPageCity(ProjectListPageDTO projectListPageDTO) { @@ -1385,6 +1609,50 @@ public class ProjectServiceImpl extends ServiceImpl imple } @Override + public VocationalNumVO getHonglvProjectNum(SeedTrackProjectNumDTO seedTrackProjectNumDTO) { + + DbContextHolder.setDbType(DBTypeEnum.db2); + + Map map = Localstorage.getMap(); + CollegesDictDO collegesDictDO = new CollegesDictDO(); + if (map.get("type").equals(Platform.school)) { + collegesDictDO = (CollegesDictDO) map.get("user"); + } + + List list = new ArrayList<>(); + if (map.get("type").equals(Platform.review)) { + ProjectJudgeDO projectJudgeDO = (ProjectJudgeDO) map.get("user"); + list = this.baseMapper.getListByJudgeId(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), projectJudgeDO.getId()); + } else { + list = this.baseMapper.getSeedTrackProjectList(seedTrackProjectNumDTO.getMatchId(), seedTrackProjectNumDTO.getProjectGroup(), collegesDictDO.getName(), null); + } + + VocationalNumVO vocationalNumVO = new VocationalNumVO(); + Integer ProjectNum = 0; + Integer registerNum = 0; + Integer rematchProjectNum = 0; + Integer finalProjectNum = 0; + if (list != null && list.size() > 0) { + for (ProjectDO projectDO : list) { + if (projectDO.getProjectSchedule().equals(ProjectSchedule.SCHOOL_REVIEW)) { + ProjectNum++; + } else if (projectDO.getProjectSchedule().equals(ProjectSchedule.REGISTER)) { + registerNum++; + } else if (projectDO.getProjectSchedule().equals(ProjectSchedule.SEMI_FINAL_REVIEW)) { + rematchProjectNum++; + } else if (projectDO.getProjectSchedule().equals(ProjectSchedule.FINAL_REVIEW)) { + finalProjectNum++; + } + } + } + vocationalNumVO.setRegisterNum(registerNum); + vocationalNumVO.setSchoolProjectNum(ProjectNum); + vocationalNumVO.setRematchNum(rematchProjectNum); + vocationalNumVO.setFinalNum(finalProjectNum); + return vocationalNumVO; + } + + @Override public VocationalNumVO getVocationalProjectNumCity(SeedTrackProjectNumDTO seedTrackProjectNumDTO) { DbContextHolder.setDbType(DBTypeEnum.db1); -- libgit2 0.25.0