导入文件
实体
@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
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);
}
推荐阅读
- django-前后端交互
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 使用composer自动加载类文件
- ssh生成公钥秘钥
- 没有导入future这个module
- Android系统启动之init.rc文件解析过程
- R|R for data Science(六)(readr 进行数据导入)
- 微信小程序基础知识
- 误删/清空.bashrc文件/内容
- JavaScript|vue 基于axios封装request接口请求——request.js文件