This commit is contained in:
zhouwentao 2025-12-12 10:43:04 +08:00
parent 5e324d2940
commit 04bfc661c0
2 changed files with 79 additions and 16 deletions

View File

@ -2,14 +2,17 @@ package org.jeecg.modules.yx.controller;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.yx.dto.YxSchoolDTO;
import org.jeecg.modules.yx.entity.*; import org.jeecg.modules.yx.entity.*;
import org.jeecg.modules.yx.service.IYxSchoolGraduateDegreeService; import org.jeecg.modules.yx.service.IYxSchoolGraduateDegreeService;
@ -25,6 +28,8 @@ import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -43,7 +48,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
@Slf4j @Slf4j
public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGraduateDegree, IYxSchoolGraduateDegreeService> { public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGraduateDegree, IYxSchoolGraduateDegreeService> {
@Autowired @Autowired
private IYxSchoolGraduateDegreeService yxSchoolMasterDegreeService; private IYxSchoolGraduateDegreeService yxSchoolGraduateDegreeService;
@Autowired @Autowired
private IYxSchoolService yxSchoolService; private IYxSchoolService yxSchoolService;
@Autowired @Autowired
@ -61,7 +66,7 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<YxSchoolGraduateDegree> queryWrapper = QueryGenerator.initQueryWrapper(yxSchoolGraduateDegree, req.getParameterMap()); QueryWrapper<YxSchoolGraduateDegree> queryWrapper = QueryGenerator.initQueryWrapper(yxSchoolGraduateDegree, req.getParameterMap());
Page<YxSchoolGraduateDegree> page = new Page<YxSchoolGraduateDegree>(pageNo, pageSize); Page<YxSchoolGraduateDegree> page = new Page<YxSchoolGraduateDegree>(pageNo, pageSize);
IPage<YxSchoolGraduateDegree> pageList = yxSchoolMasterDegreeService.page(page, queryWrapper); IPage<YxSchoolGraduateDegree> pageList = yxSchoolGraduateDegreeService.page(page, queryWrapper);
return Result.OK(pageList); return Result.OK(pageList);
} }
@ -70,10 +75,14 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
*/ */
@AutoLog(value = "院校硕士研究生信息-添加") @AutoLog(value = "院校硕士研究生信息-添加")
@ApiOperation(value = "院校硕士研究生信息-添加", notes = "院校硕士研究生信息-添加") @ApiOperation(value = "院校硕士研究生信息-添加", notes = "院校硕士研究生信息-添加")
@RequiresPermissions("yx:yx_school_master_degree:add") @RequiresPermissions("yx:yx_school_graduate_degree:add")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<String> add(@RequestBody YxSchoolGraduateDegree yxSchoolGraduateDegree) { public Result<String> add(@RequestBody YxSchoolGraduateDegree yxSchoolGraduateDegree) {
yxSchoolMasterDegreeService.save(yxSchoolGraduateDegree); if (StringUtils.isNotBlank(yxSchoolGraduateDegree.getSchoolName())) {
YxSchoolDTO yxSchoolDTO = yxSchoolService.getBySchoolName(yxSchoolGraduateDegree.getSchoolName());
yxSchoolGraduateDegree.setSchoolId(yxSchoolDTO.getId());
}
yxSchoolGraduateDegreeService.save(yxSchoolGraduateDegree);
return Result.OK("添加成功!"); return Result.OK("添加成功!");
} }
@ -82,10 +91,14 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
*/ */
@AutoLog(value = "院校硕士研究生信息-编辑") @AutoLog(value = "院校硕士研究生信息-编辑")
@ApiOperation(value = "院校硕士研究生信息-编辑", notes = "院校硕士研究生信息-编辑") @ApiOperation(value = "院校硕士研究生信息-编辑", notes = "院校硕士研究生信息-编辑")
@RequiresPermissions("yx:yx_school_master_degree:edit") @RequiresPermissions("yx:yx_school_graduate_degree:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody YxSchoolGraduateDegree yxSchoolGraduateDegree) { public Result<String> edit(@RequestBody YxSchoolGraduateDegree yxSchoolGraduateDegree) {
yxSchoolMasterDegreeService.updateById(yxSchoolGraduateDegree); if (StringUtils.isNotBlank(yxSchoolGraduateDegree.getSchoolName())) {
YxSchoolDTO yxSchoolDTO = yxSchoolService.getBySchoolName(yxSchoolGraduateDegree.getSchoolName());
yxSchoolGraduateDegree.setSchoolId(yxSchoolDTO.getId());
}
yxSchoolGraduateDegreeService.updateById(yxSchoolGraduateDegree);
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
} }
@ -94,10 +107,10 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
*/ */
@AutoLog(value = "院校硕士研究生信息-通过id删除") @AutoLog(value = "院校硕士研究生信息-通过id删除")
@ApiOperation(value = "院校硕士研究生信息-通过id删除", notes = "院校硕士研究生信息-通过id删除") @ApiOperation(value = "院校硕士研究生信息-通过id删除", notes = "院校硕士研究生信息-通过id删除")
@RequiresPermissions("yx:yx_school_master_degree:delete") @RequiresPermissions("yx:yx_school_graduate_degree:delete")
@DeleteMapping(value = "/delete") @DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) String id) { public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
yxSchoolMasterDegreeService.removeById(id); yxSchoolGraduateDegreeService.removeById(id);
return Result.OK("删除成功!"); return Result.OK("删除成功!");
} }
@ -106,10 +119,10 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
*/ */
@AutoLog(value = "院校硕士研究生信息-批量删除") @AutoLog(value = "院校硕士研究生信息-批量删除")
@ApiOperation(value = "院校硕士研究生信息-批量删除", notes = "院校硕士研究生信息-批量删除") @ApiOperation(value = "院校硕士研究生信息-批量删除", notes = "院校硕士研究生信息-批量删除")
@RequiresPermissions("yx:yx_school_master_degree:deleteBatch") @RequiresPermissions("yx:yx_school_graduate_degree:deleteBatch")
@DeleteMapping(value = "/deleteBatch") @DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.yxSchoolMasterDegreeService.removeByIds(Arrays.asList(ids.split(","))); this.yxSchoolGraduateDegreeService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!"); return Result.OK("批量删除成功!");
} }
@ -120,7 +133,7 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
@ApiOperation(value = "院校硕士研究生信息-通过id查询", notes = "院校硕士研究生信息-通过id查询") @ApiOperation(value = "院校硕士研究生信息-通过id查询", notes = "院校硕士研究生信息-通过id查询")
@GetMapping(value = "/queryById") @GetMapping(value = "/queryById")
public Result<YxSchoolGraduateDegree> queryById(@RequestParam(name = "id", required = true) String id) { public Result<YxSchoolGraduateDegree> queryById(@RequestParam(name = "id", required = true) String id) {
YxSchoolGraduateDegree yxSchoolGraduateDegree = yxSchoolMasterDegreeService.getById(id); YxSchoolGraduateDegree yxSchoolGraduateDegree = yxSchoolGraduateDegreeService.getById(id);
if (yxSchoolGraduateDegree == null) { if (yxSchoolGraduateDegree == null) {
return Result.error("未找到对应数据"); return Result.error("未找到对应数据");
} }
@ -130,7 +143,7 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
/** /**
* 导出excel * 导出excel
*/ */
@RequiresPermissions("yx:yx_school_master_degree:exportXls") @RequiresPermissions("yx:yx_school_graduate_degree:exportXls")
@RequestMapping(value = "/exportXls") @RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, YxSchoolGraduateDegree yxSchoolGraduateDegree) { public ModelAndView exportXls(HttpServletRequest request, YxSchoolGraduateDegree yxSchoolGraduateDegree) {
return super.exportXls(request, yxSchoolGraduateDegree, YxSchoolGraduateDegree.class, "院校硕士研究生信息"); return super.exportXls(request, yxSchoolGraduateDegree, YxSchoolGraduateDegree.class, "院校硕士研究生信息");
@ -139,10 +152,60 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
/** /**
* 通过excel导入数据 * 通过excel导入数据
*/ */
@RequiresPermissions("yx:yx_school_master_degree:importExcel") @RequiresPermissions("yx:yx_school_graduate_degree:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST) @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, YxSchoolGraduateDegree.class); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
long start = System.currentTimeMillis();
int index = 3;
try {
List<YxSchoolGraduateDegree> list = ExcelImportUtil.importExcel(file.getInputStream(), YxSchoolGraduateDegree.class, params);
if(list.isEmpty()){
return Result.error("为识别到数据!");
}else if (list.size() > 1000) {
return Result.error("文件数据过多请分批次1000条上传。");
}
Set<String> schoolNameSet = list.stream().map(YxSchoolGraduateDegree::getSchoolName).collect(Collectors.toSet());
List<YxSchool> yxSchoolList = yxSchoolService.list(new LambdaQueryWrapper<YxSchool>().select(YxSchool::getId).select(YxSchool::getSchoolName).in(YxSchool::getSchoolName, schoolNameSet));
Map<String, String> schoolNameIdMap = yxSchoolList.stream().collect(Collectors.toMap(YxSchool::getSchoolName, YxSchool::getId));
List<YxSchoolGraduateDegree> yxSchoolGraduateDegreeList = yxSchoolGraduateDegreeService.list(new LambdaQueryWrapper<YxSchoolGraduateDegree>().in(YxSchoolGraduateDegree::getSchoolName, schoolNameSet));
String schoolId = null;
String schoolName = null;
String year = null;
for (YxSchoolGraduateDegree yxSchoolGraduateDegree : list) {
schoolName = yxSchoolGraduateDegree.getSchoolName();
year = yxSchoolGraduateDegree.getYear();
schoolId = schoolNameIdMap.get(schoolId);
yxSchoolGraduateDegree.setSchoolId(schoolId);
}
}catch (Exception e){
System.out.println("索引:"+index);
String msg = e.getMessage();
log.error(msg, e);
if (msg != null && msg.indexOf("Duplicate entry") >= 0) {
return Result.error("文件导入失败:有重复数据!");
} else {
return Result.error("文件导入失败:" + e.getMessage() + ",行:" + index);
}
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
// return super.importExcel(request, response, YxSchoolGraduateDegree.class);
} }
/** /**
@ -222,7 +285,7 @@ public class YxSchoolGraduateDegreeController extends JeecgController<YxSchoolGr
yxSchoolResearchTeachingService.update(lambdaQueryWrapper); yxSchoolResearchTeachingService.update(lambdaQueryWrapper);
} }
//yxSchoolMasterDegreeService.saveBatch(list,100); //yxSchoolGraduateDegreeService.saveBatch(list,100);
} catch (FileNotFoundException fileNotFoundException) { } catch (FileNotFoundException fileNotFoundException) {
log.error("文件不存在," + file.getAbsolutePath()); log.error("文件不存在," + file.getAbsolutePath());
throw new RuntimeException(fileNotFoundException); throw new RuntimeException(fileNotFoundException);

View File

@ -73,7 +73,7 @@ public class YxSchoolGraduateDegree implements Serializable {
@ApiModelProperty(value = "院校编码") @ApiModelProperty(value = "院校编码")
private java.lang.String schoolMasterCode; private java.lang.String schoolMasterCode;
/**院校id*/ /**院校id*/
@Excel(name = "院校id", width = 15) // @Excel(name = "院校id", width = 15)
@ApiModelProperty(value = "院校id") @ApiModelProperty(value = "院校id")
private java.lang.String schoolId; private java.lang.String schoolId;
/**院校名称*/ /**院校名称*/