package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.*; import com.ruoyi.system.service.*; import com.ruoyi.web.controller.query.CommitteeQuery; import io.swagger.annotations.ApiOperation; import org.bouncycastle.jcajce.provider.symmetric.AES; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** *

* 评审委员会 前端控制器 *

* * @author luodangjia * @since 2024-09-19 */ @RestController @RequestMapping("/t-committee") public class TCommitteeController { @Resource private TCommitteeService tCommitteeService; @Resource private TCommitteeTechnicalService committeeTechnicalService; @Resource private TCommitteeMajorService tCommitteeMajorService; @Resource private TRegionService regionService; @Resource private TTechnicalTitleService tTechnicalTitleService; @Resource private TTitleMajorService majorService; //添加 @ApiOperation(value = "添加",tags = "后台-评审委员会管理") @PostMapping("/add") public R add(@RequestBody TCommittee committee){ tCommitteeService.save(committee); for (TCommitteeTechnical tCommitteeTechnical : committee.getTCommitteeTechnicals()) { tCommitteeTechnical.setCommitteeId(committee.getId()); } committeeTechnicalService.saveBatch(committee.getTCommitteeTechnicals()); for (TCommitteeMajor tCommitteeMajor : committee.getTCommitteeMajors()) { tCommitteeMajor.setCommitteeId(committee.getId()); } tCommitteeMajorService.saveBatch(committee.getTCommitteeMajors()); return R.ok(); } //修改 @ApiOperation(value = "编辑",tags = "后台-评审委员会管理") @PostMapping("/edit") public R edit(@RequestBody TCommittee committee){ tCommitteeService.updateById(committee); //删除相关数据 committeeTechnicalService.remove(Wrappers.lambdaQuery(TCommitteeTechnical.class).eq(TCommitteeTechnical::getCommitteeId, committee.getId())); tCommitteeMajorService.remove(Wrappers.lambdaQuery(TCommitteeMajor.class).eq(TCommitteeMajor::getCommitteeId, committee.getId())); for (TCommitteeTechnical tCommitteeTechnical : committee.getTCommitteeTechnicals()) { tCommitteeTechnical.setId(null); tCommitteeTechnical.setCommitteeId(committee.getId()); } committeeTechnicalService.saveBatch(committee.getTCommitteeTechnicals()); for (TCommitteeMajor tCommitteeMajor : committee.getTCommitteeMajors()) { tCommitteeMajor.setCommitteeId(committee.getId()); tCommitteeMajor.setId(null); } tCommitteeMajorService.saveBatch(committee.getTCommitteeMajors()); return R.ok(); } //删除 @ApiOperation(value = "删除",tags = "后台-评审委员会管理") @PostMapping("/deleteByIds") public R deleteByIds(String ids){ List list = Arrays.asList(ids.split(",")); tCommitteeService.removeByIds(list); //删除相关数据 committeeTechnicalService.remove(Wrappers.lambdaQuery(TCommitteeTechnical.class).in(TCommitteeTechnical::getCommitteeId, list)); tCommitteeMajorService.remove(Wrappers.lambdaQuery(TCommitteeMajor.class).in(TCommitteeMajor::getCommitteeId, list)); return R.ok(); } //列表 @ApiOperation(value = "查询",tags = {"后台-评审委员会管理"}) @PostMapping("/list") public R> list(@RequestBody CommitteeQuery informationQuery){ Page page; if(StringUtils.isEmpty(informationQuery.getProvinceName())){ if(informationQuery.getSortType() == 1){ page = tCommitteeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName()) .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit()) .eq(informationQuery.getRegionId() != null, TCommittee::getRegionId, informationQuery.getRegionId()) .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel()) .orderByDesc(TCommittee::getCreateTime) .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); }else { page = tCommitteeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName()) .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit()) .eq(informationQuery.getRegionId() != null, TCommittee::getRegionId, informationQuery.getRegionId()) .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel()) .orderByDesc(TCommittee::getCommitteeSort) .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); } }else { List list; // 查询省份下的市 if(informationQuery.getProvinceName().equals("直辖市")){ List cityList = new ArrayList<>(); cityList.add("北京市"); cityList.add("天津市"); cityList.add("重庆市"); cityList.add("上海市"); list = regionService.lambdaQuery().in(TRegion::getProvinceName, cityList).list(); }else { list = regionService.lambdaQuery().eq(TRegion::getProvinceName, informationQuery.getProvinceName()).list(); } List ids = list.stream().map(TRegion::getId).collect(Collectors.toList()); if(informationQuery.getSortType() == 1){ page = tCommitteeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName()) .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit()) .in( TCommittee::getRegionId, ids) .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel()) .orderByDesc(TCommittee::getCreateTime) .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); }else { page = tCommitteeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName()) .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit()) .in( TCommittee::getRegionId, ids) .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel()) .orderByDesc(TCommittee::getCommitteeSort) .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); } } List records = page.getRecords(); List regionIds = records.stream().map(TCommittee::getRegionId).collect(Collectors.toList()); List regions = regionService.lambdaQuery().in(TRegion::getId, regionIds).list(); List technicalIds = records.stream().map(TCommittee::getTechnicalId).collect(Collectors.toList()); List tTechnicalTitles = tTechnicalTitleService.lambdaQuery().in(TTechnicalTitle::getId, technicalIds).list(); List majorIds = records.stream().map(TCommittee::getMajorId).collect(Collectors.toList()); List tTitleMajors = majorService.lambdaQuery().in(TTitleMajor::getId, majorIds).list(); List ids = records.stream().map(TCommittee::getId).collect(Collectors.toList()); List committeeTechnicals = committeeTechnicalService.lambdaQuery().in(TCommitteeTechnical::getCommitteeId, ids).list(); List committeeMajors = tCommitteeMajorService.lambdaQuery().in(TCommitteeMajor::getCommitteeId, ids).list(); for (TCommittee record : records) { TRegion region = regions.stream().filter(e -> e.getId().equals(record.getRegionId())).findFirst().orElse(null); record.setRegionName(region.getProvinceName()+"-"+region.getName()); TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(record.getTechnicalId())).findFirst().orElse(null); TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(record.getMajorId())).findFirst().orElse(null); record.setTechnicalName(tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()); List tCommitteeTechnicals = committeeTechnicals.stream().filter(e -> e.getCommitteeId().equals(record.getId())).collect(Collectors.toList()); List tCommitteeMajors = committeeMajors.stream().filter(e -> e.getCommitteeId().equals(record.getId())).collect(Collectors.toList()); record.setTCommitteeTechnicals(tCommitteeTechnicals); record.setTCommitteeMajors(tCommitteeMajors); } return R.ok(page); } @Resource private TDeclareNoticeService noticeService; //详情 @ApiOperation(value = "详情",tags = {"后台-评审委员会管理","web-评审委员会"}) @PostMapping("/getById") public R getById(Long id){ TCommittee tCommittee = tCommitteeService.getById(id); List tCommitteeTechnicals = committeeTechnicalService.lambdaQuery().eq(TCommitteeTechnical::getCommitteeId, id).list(); List tCommitteeMajors =tCommitteeMajorService.lambdaQuery().eq(TCommitteeMajor::getCommitteeId, id).list(); if (tCommittee.getDeclareId()!=null) { String[] split = tCommittee.getDeclareId().split(","); List list = noticeService.lambdaQuery().in(TDeclareNotice::getId, split).list(); tCommittee.setDeclareNotice(list); } tCommittee.setTCommitteeTechnicals(tCommitteeTechnicals); tCommittee.setTCommitteeMajors(tCommitteeMajors); return R.ok(tCommittee); } }