diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java b/laws-base/laws-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java index 8dfbbd04..aa345c91 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java @@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.oConvertUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.PropertyUtils; import org.apache.shiro.SecurityUtils; +import org.jeecgframework.poi.excel.ExcelImportCheckUtil; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -224,4 +226,56 @@ public class JeroController> { } return Result.error("文件导入失败!"); } + /** + * 通过excel获取导入数据 + * + * @param request + * @return + */ + protected List getExcelData(HttpServletRequest request, Class clazz) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + // 获取上传文件对象 + MultipartFile file = entity.getValue(); + //校验文件名 + String originalFilename = file.getOriginalFilename(); + if (originalFilename != null) { + String substring = originalFilename.substring(originalFilename.lastIndexOf(".")); + if (!".xlsx".equals(substring)&&!".xls".equals(substring)) { + throw new JeroBootException("文件类型错误:" + "请上传.xlsx或.xls文件!"); + } + } else { + throw new JeroBootException("文件错误:" + "文件名丢失,请上传正确的文件!"); + } + ImportParams params = new ImportParams(); + params.setSheetNum(1); + params.setTitleRows(1); + params.setHeadRows(1); + try { + //导入Excel格式校验,看匹配的字段文本概率 + Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), clazz, params); + if (t == null) { + throw new JeroBootException("导入数据为空!"); + } + if(!t){ + throw new JeroBootException("文件格式有误,请下载模板后上传 !"); + } + return ExcelImportUtil.importExcel(file.getInputStream(), clazz, params); + } catch (Exception e) { + if(Objects.isNull(e.getMessage())){ + throw new JeroBootException("文件导入失败:请填写内容标题!"); + } + log.error("文件导入失败:",e); + throw new JeroBootException("文件导入失败:" + e.getMessage()); + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + throw new JeroBootException("文件导入失败!"); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsController.java b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsController.java index bf8d91ec..e8f2addb 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsController.java @@ -56,6 +56,19 @@ public class StandardSolicitOpinionsController extends JeroController pageList = standardSolicitOpinionsService.pageList(page, standardSolicitOpinions, req); return Result.OK(pageList); } + /** + * 通过id查询 + */ + @AutoLog(value = "标准征求意见-通过id查询") + @ApiOperation(value = "标准征求意见-通过id查询", notes = "标准征求意见-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id") String id) { + StandardSolicitOpinions standardSolicitOpinions = standardSolicitOpinionsService.queryById(id); + if (standardSolicitOpinions == null) { + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); + } + return Result.OK(standardSolicitOpinions); + } ///** // * 列表查询 @@ -122,19 +135,7 @@ public class StandardSolicitOpinionsController extends JeroController queryById(@RequestParam(name = "id") String id) { - // StandardSolicitOpinions standardSolicitOpinions = standardSolicitOpinionsService.queryById(id); - // if (standardSolicitOpinions == null) { - // return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); - // } - // return Result.OK(standardSolicitOpinions); - //} + // ///** // * 导出excel diff --git a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsTermController.java b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsTermController.java index ef03ffa8..4aa344f3 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsTermController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/controller/StandardSolicitOpinionsTermController.java @@ -153,8 +153,11 @@ public class StandardSolicitOpinionsTermController extends JeroController importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, StandardSolicitOpinionsTerm.class); + public Result importExcel(StandardSolicitOpinionsTerm standardSolicitOpinionsTerm, HttpServletRequest request, HttpServletResponse response) { + List excelDataList = super.getExcelData(request, StandardSolicitOpinionsTerm.class); + + lawsStandardSolicitOpinionsTermService.importExcel(standardSolicitOpinionsTerm,excelDataList); + return Result.OK(); } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/entity/StandardSolicitOpinionsTerm.java b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/entity/StandardSolicitOpinionsTerm.java index f3c78de4..9d3d92eb 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/entity/StandardSolicitOpinionsTerm.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/entity/StandardSolicitOpinionsTerm.java @@ -42,7 +42,7 @@ public class StandardSolicitOpinionsTerm implements Serializable { * 法规工程师 */ @ApiModelProperty(value = "法规工程师") - @Excel(name = "法规工程师", width = 15, dictTable = "sys_user", dicCode = "id", dicText = "realname") + @Excel(name = "法规工程师", width = 15, dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')") @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") private String proposerId; /** @@ -97,12 +97,13 @@ public class StandardSolicitOpinionsTerm implements Serializable { * 反馈人id */ @ApiModelProperty(value = "反馈人id") + @Excel(name = "反馈人", width = 15, dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')") + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") private String feedbackPersonId; /** * 反馈人 */ @ApiModelProperty(value = "反馈人") - @Excel(name = "反馈人", width = 15) private String feedbackPerson; /** * 反馈意见 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/service/StandardSolicitOpinionsTermService.java b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/service/StandardSolicitOpinionsTermService.java index 3939ebd1..49f42e13 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/service/StandardSolicitOpinionsTermService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/solicitopinions/service/StandardSolicitOpinionsTermService.java @@ -1,9 +1,12 @@ package com.jero.modules.laws.solicitopinions.service; +import cn.hutool.core.collection.CollStreamUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.DictModel; import com.jero.modules.laws.solicitopinions.entity.StandardSolicitOpinionsTerm; import com.jero.modules.laws.solicitopinions.mapper.StandardSolicitOpinionsTermMapper; import lombok.extern.slf4j.Slf4j; @@ -13,6 +16,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.List; +import java.util.Map; /** * 标准征求意见条款关联表(StandardSolicitOpinionsTerm)表服务实现类 @@ -25,6 +29,8 @@ import java.util.List; public class StandardSolicitOpinionsTermService extends ServiceImpl { @Resource private StandardSolicitOpinionsTermMapper standardSolicitOpinionsTermMapper; + @Resource + private ISysBaseAPI sysBaseAPI; public IPage pageList(Page page, StandardSolicitOpinionsTerm lawsStandardSolicitOpinionsTerm, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsStandardSolicitOpinionsTerm, req.getParameterMap()); @@ -53,5 +59,18 @@ public class StandardSolicitOpinionsTermService extends ServiceImpl excelDataList) { + //List dictModels = sysBaseAPI.queryFilterTableDictInfo("sys_user", "CONCAT(realname, '(', username, ')')", "id", ""); + //Map userMap = CollStreamUtil.toMap(dictModels, DictModel::getText, DictModel::getValue); + for (StandardSolicitOpinionsTerm term : excelDataList) { + //String feedbackPersonId = term.getFeedbackPersonId(); + //term.setFeedbackPersonId(userMap.get(feedbackPersonId)); + //String proposerId = term.getProposerId(); + //term.setProposerId(userMap.get(proposerId)); + term.setSolicitOpinionsId(standardSolicitOpinionsTerm.getSolicitOpinionsId()); + } + this.saveBatch(excelDataList); + } }