package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.ConsultationQuery; import com.ruoyi.web.controller.query.DeclareNoticeQuery; import io.swagger.annotations.ApiOperation; 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.lang.reflect.Array; 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-declare-notice") public class TDeclareNoticeController { @Resource private TDeclareNoticeService tDeclareNoticeService; @Resource private TDeclareNoticeFileService tDeclareNoticeFileService; @Resource private TDeclareNoticeTechnicalService tDeclareNoticeTechnicalService; @Resource private TDeclareNoticeMajorService tDeclareNoticeMajorService; @Resource private TRegionService regionService; @Resource private TTechnicalTitleService tTechnicalTitleService; @Resource private TTitleMajorService majorService; //添加 @ApiOperation(value = "添加",tags = "后台-申报通知") @PostMapping(value = "/add") public R add(@RequestBody TDeclareNotice tDeclareNotice) { tDeclareNoticeService.save(tDeclareNotice); //附件要求 for (TDeclareNoticeFile declareNoticeFile : tDeclareNotice.getDeclareNoticeFiles()) { declareNoticeFile.setId(null); declareNoticeFile.setDeclareId(tDeclareNotice.getId()); } tDeclareNoticeFileService.saveBatch(tDeclareNotice.getDeclareNoticeFiles()); //评审职称 for (TDeclareNoticeTechnical declareNoticeTechnical : tDeclareNotice.getDeclareNoticeTechnicals()) { declareNoticeTechnical.setId(null); declareNoticeTechnical.setDeclareId(tDeclareNotice.getId()); } tDeclareNoticeTechnicalService.saveBatch(tDeclareNotice.getDeclareNoticeTechnicals()); //评审专业 for (TDeclareNoticeMajor declareNoticeMajor : tDeclareNotice.getDeclareNoticeMajors()) { declareNoticeMajor.setId(null); declareNoticeMajor.setDeclareId(tDeclareNotice.getId()); } tDeclareNoticeMajorService.saveBatch(tDeclareNotice.getDeclareNoticeMajors()); return R.ok(); } //修改 @ApiOperation(value = "修改",tags = "后台-申报通知") @PostMapping(value = "/edit") public R edit(@RequestBody TDeclareNotice tDeclareNotice) { tDeclareNoticeService.updateById(tDeclareNotice); //删除关联数据 tDeclareNoticeFileService.remove(Wrappers.lambdaQuery(TDeclareNoticeFile.class).eq(TDeclareNoticeFile::getDeclareId, tDeclareNotice.getId())); tDeclareNoticeTechnicalService.remove(Wrappers.lambdaQuery(TDeclareNoticeTechnical.class).eq(TDeclareNoticeTechnical::getDeclareId, tDeclareNotice.getId())); tDeclareNoticeMajorService.remove(Wrappers.lambdaQuery(TDeclareNoticeMajor.class).eq(TDeclareNoticeMajor::getDeclareId, tDeclareNotice.getId())); //附件要求 for (TDeclareNoticeFile declareNoticeFile : tDeclareNotice.getDeclareNoticeFiles()) { declareNoticeFile.setId(null); declareNoticeFile.setDeclareId(tDeclareNotice.getId()); } tDeclareNoticeFileService.saveBatch(tDeclareNotice.getDeclareNoticeFiles()); //评审职称 for (TDeclareNoticeTechnical declareNoticeTechnical : tDeclareNotice.getDeclareNoticeTechnicals()) { declareNoticeTechnical.setDeclareId(tDeclareNotice.getId()); declareNoticeTechnical.setId(null); } tDeclareNoticeTechnicalService.saveBatch(tDeclareNotice.getDeclareNoticeTechnicals()); //评审专业 for (TDeclareNoticeMajor declareNoticeMajor : tDeclareNotice.getDeclareNoticeMajors()) { declareNoticeMajor.setDeclareId(tDeclareNotice.getId()); declareNoticeMajor.setId(null); } tDeclareNoticeMajorService.saveBatch(tDeclareNotice.getDeclareNoticeMajors()); return R.ok(); } @Resource private TCommitteeService committeeService; //删除 @ApiOperation(value = "删除",tags = "后台-申报通知") @PostMapping(value = "/deleteByIds") public R deleteByIds(String ids) { List list = Arrays.asList(ids.split(",")); tDeclareNoticeService.removeByIds(list); Long count = committeeService.lambdaQuery().in(TCommittee::getDeclareId, list).count(); if (count>0){ return R.fail("当前通知已设置委员会,无法删除"); } //删除相关数据 tDeclareNoticeFileService.remove(Wrappers.lambdaQuery(TDeclareNoticeFile.class).in(TDeclareNoticeFile::getDeclareId, list)); tDeclareNoticeTechnicalService.remove(Wrappers.lambdaQuery(TDeclareNoticeTechnical.class).in(TDeclareNoticeTechnical::getDeclareId, list)); tDeclareNoticeMajorService.remove(Wrappers.lambdaQuery(TDeclareNoticeMajor.class).in(TDeclareNoticeMajor::getDeclareId, list)); return R.ok(); } //列表 @ApiOperation(value = "查询",tags = {"后台-申报通知","web-职称申报"}) @PostMapping(value = "/list") public R> list(@RequestBody DeclareNoticeQuery informationQuery) { Page page; if(StringUtils.isEmpty(informationQuery.getProvinceName())){ if(informationQuery.getSortType()==1){ page = tDeclareNoticeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName()) .eq(informationQuery.getRegionId() != null, TDeclareNotice::getRegionId, informationQuery.getRegionId()) .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel()) .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline()) .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2()) .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2()) .orderByDesc(TDeclareNotice::getCreateTime) .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); }else { page = tDeclareNoticeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName()) .eq(informationQuery.getRegionId() != null, TDeclareNotice::getRegionId, informationQuery.getRegionId()) .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel()) .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline()) .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2()) .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2()) .orderByDesc(TDeclareNotice::getNoticeSort) .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 = tDeclareNoticeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName()) .in( TDeclareNotice::getRegionId, ids) .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel()) .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline()) .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2()) .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2()) .orderByDesc(TDeclareNotice::getCreateTime) .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); }else { page = tDeclareNoticeService.lambdaQuery() .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName()) .in( TDeclareNotice::getRegionId, ids) .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId()) .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId()) .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel()) .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline()) .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2()) .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2()) .orderByDesc(TDeclareNotice::getNoticeSort) .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); } } List regions = regionService.lambdaQuery().list(); List tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list(); List tTitleMajors = majorService.lambdaQuery().list(); for (TDeclareNotice record : page.getRecords()) { TRegion region = regions.stream().filter(e -> e.getId().equals(record.getRegionId())).findFirst().orElse(null); 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.setRegionName(region.getProvinceName()+"-"+region.getName()); record.setTechnicalName(tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()); } return R.ok(page); } //详情 @ApiOperation(value = "详情",tags = {"后台-申报通知","web-职称申报"}) @PostMapping(value = "/getById") public R getById(Long id){ TDeclareNotice tDeclareNotice = tDeclareNoticeService.getById(id); List tDeclareNoticeFiles = tDeclareNoticeFileService.lambdaQuery().eq(TDeclareNoticeFile::getDeclareId, id).list(); List tDeclareNoticeTechnicals = tDeclareNoticeTechnicalService.lambdaQuery().eq(TDeclareNoticeTechnical::getDeclareId, id).list(); List tDeclareNoticeMajors = tDeclareNoticeMajorService.lambdaQuery().eq(TDeclareNoticeMajor::getDeclareId, id).list(); tDeclareNotice.setDeclareNoticeFiles(tDeclareNoticeFiles); tDeclareNotice.setDeclareNoticeTechnicals(tDeclareNoticeTechnicals); tDeclareNotice.setDeclareNoticeMajors(tDeclareNoticeMajors); if(StringUtils.isEmpty(tDeclareNotice.getDeclareLevel())){ tDeclareNotice.setDeclareLevel(tDeclareNoticeTechnicals.stream().map(TDeclareNoticeTechnical::getTechnicalName).collect(Collectors.joining("/"))); } return R.ok(tDeclareNotice); } }