导入文件

实体

@ColumnWidth(20) @HeadRowHeight(15) // 标题高度 @ContentRowHeight(15) // 文本行高度 public class BackQuestionImport extends BaseRowModel { @ExcelProperty( ") @ApiModelProperty(value="https://www.it610.com/article/id") private int id; @ExcelProperty( "问题id") @ApiModelProperty(value="https://www.it610.com/article/问题id") private int questionId; @ExcelProperty( "专家id") private int invitId; @ExcelProperty( "专家名字") private String invitName; @ExcelProperty( "提问日期") private String insertTime; @ExcelProperty( "问题标题") private String question; @ExcelProperty( "标签id") private String labelValue; @ExcelProperty( "标签名称") private String lableName; @ExcelProperty( "问题描述") private String describe; @ExcelProperty( "图片") private String filePath; @ExcelIgnore @ApiModelProperty(value="https://www.it610.com/article/是否导出") private Integer exportFlag; @ExcelProperty( "专家回答") @ApiModelProperty(value="https://www.it610.com/article/专家回答") private String answer;

控制层
@PostMapping("/questionListImport") @ApiOperation(httpMethod = "POST",valuehttps://www.it610.com/article/= "",notes = "") public WGJsonResult questionListImport(@RequestParam("file") MultipartFile multipartFile) throws IOException { return backQuestionService.questionListImport(multipartFile); }

服务层
@Override public WGJsonResult questionListImport(MultipartFile multipartFile) throws IOException { Sheet sheet = new Sheet(1, 1, BackQuestionImport.class); List readList = EasyExcelFactory.read(multipartFile.getInputStream(), sheet); // 存 BackQuestionExport 实体的 集合 List list = new ArrayList(); for (Object obj : readList) { BackQuestionExport backQuestionExport = new BackQuestionExport(); BeanUtils.copyProperties(obj,backQuestionExport); list.add(backQuestionExport); } //插入ask_answer backQuestionMapper.addQuestionAnswerData(list); //记录日志 ask_exp_imp_record addLog(list,2); returnsuccess("导入成功"); }
sql语句
INSERT INTOask_answer ( id, result, label_value, lable_name, user_id, user_name, question_id ) VALUES ( #{item.id}, #{item.answer}, #{item.labelValue}, #{item.lableName}, #{item.invitId}, #{item.invitName}, #{item.questionId} ) ON DUPLICATE KEY UPDATE id = VALUES(id), result = VALUES(result), label_value = https://www.it610.com/article/VALUES(label_value), lable_name = VALUES(lable_name), user_id = VALUES(user_id), user_name = VALUES(user_name), question_id = VALUES(question_id)

记录日志 ask_exp_imp_record
publicvoid addLog(List list,Integer type){ //获取各个数据的集合 List questions = list.stream().map(BackQuestionExport::getQuestion).distinct().collect(Collectors.toList()); //先获取问题集合 List questionIds =list.stream().map(BackQuestionExport::getQuestionId).distinct().collect(Collectors.toList()); List invitIds =list.stream().map(BackQuestionExport::getInvitId).distinct().collect(Collectors.toList()); List invitNames =list.stream().map(BackQuestionExport::getInvitName).distinct().collect(Collectors.toList()); List answers =list.stream().map(BackQuestionExport::getAnswer).distinct().collect(Collectors.toList()); List ids =list.stream().map(BackQuestionExport::getId).distinct().collect(Collectors.toList()); //保存记录 BackQuestionLog backQuestionLog = new BackQuestionLog(); backQuestionLog.setQuestionIds(questionIds.stream().map(String::valueOf).collect(Collectors.joining(",")).trim()); backQuestionLog.setQuestions(questions.stream().map(String::valueOf).collect(Collectors.joining(",")).trim()); backQuestionLog.setQuestionNum(questionIds.size()); backQuestionLog.setAnswerManIds(invitIds.stream().map(String::valueOf).collect(Collectors.joining(",")).trim()); backQuestionLog.setAnswerManNames(StringUtils.join(invitNames, ",").trim()); backQuestionLog.setAnswerIds(ids.stream().map(String::valueOf).collect(Collectors.joining(",")).trim()); backQuestionLog.setAnswers(answers.stream().map(String::valueOf).collect(Collectors.joining(",")).trim()); backQuestionLog.setAnswerNum(answers.size()); backQuestionLog.setType(type); backQuestionLog.setStatus(0); //插入日志表 ask_exp_imp_record backQuestionMapper.addQuestionAnswerLog(backQuestionLog); }

    推荐阅读