2023年6月16日 添加导出和部分数据

This commit is contained in:
bai 2023-06-16 01:06:57 +08:00
parent 8234dda933
commit af6f056c09
6 changed files with 291 additions and 33 deletions

View File

@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.kc.qa.entity.KcEvaluation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.kc.qa.entity.KcEvaluationPkmx;
import org.jeecg.modules.kc.statistics.KcEvaluationVo;
/**
* @Description: 调查问卷-回答主表
@ -32,5 +33,5 @@ public interface KcEvaluationMapper extends BaseMapper<KcEvaluation> {
List<KcEvaluationPkmx> selectPkmxExportList(KcEvaluationPkmx kcEvaluationPkmx);
List<KcEvaluation> keTangList(Page<KcEvaluation> page, @Param(Constants.WRAPPER) QueryWrapper<KcEvaluation> queryWrapper);
List<KcEvaluation> selectPageAndKcmc(Page<KcEvaluation> page, @Param(Constants.WRAPPER) QueryWrapper<KcEvaluation> queryWrapper);
List<KcEvaluationVo> selectPageAndKcmc(Page<KcEvaluationVo> page, @Param(Constants.WRAPPER) QueryWrapper<KcEvaluationVo> queryWrapper);
}

View File

@ -393,11 +393,26 @@
${ew.customSqlSegment}
</select>
<select id="selectPageAndKcmc" resultType="org.jeecg.modules.kc.qa.entity.KcEvaluation">
<select id="selectPageAndKcmc" resultType="org.jeecg.modules.kc.statistics.KcEvaluationVo">
select
kt.kcmc,a.*
a.*,
a.upuserid as tkjgh,
a.upuser as tkjsxm,
a.evaluationver as pjlblx,
kt.kcmc as kcmc,
kt.kkdw as kkdw,
kt.skjs as skjs,
kt.jgh as skjgh,
kt.sksj as sksj,
kt.skrq as skrq,
kt.hh as jieci,
kt.skdd as skdd,
xu.DWMC as tkdwmc,
fen.avgscore as tkpjjg
from kc_evaluation a
left join kc_ketangbiao kt on kt.id = a.minkcid
left join xxhbuser xu on xu.GH = a.upuserid
left join zongtipingjiapingjunfen fen on fen.kechengbiaoid = kt.kechengbiaoid
${ew.customSqlSegment}
</select>

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.kc.qa.entity.KcEvaluation;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.kc.qa.entity.KcEvaluationPkmx;
import org.jeecg.modules.kc.statistics.KcEvaluationVo;
import java.util.List;
@ -33,5 +34,5 @@ public interface IKcEvaluationService extends IService<KcEvaluation> {
IPage<KcEvaluation> keTangList(Page<KcEvaluation> page, QueryWrapper<KcEvaluation> queryWrapper);
IPage<KcEvaluation> selectPageAndKcmc(Page<KcEvaluation> page, QueryWrapper<KcEvaluation> queryWrapper);
IPage<KcEvaluationVo> selectPageAndKcmc(Page<KcEvaluationVo> page, QueryWrapper<KcEvaluationVo> queryWrapper);
}

View File

@ -13,6 +13,7 @@ import org.jeecg.modules.kc.qa.entity.KcEvaluationPkmx;
import org.jeecg.modules.kc.qa.mapper.KcEvaluationMapper;
import org.jeecg.modules.kc.qa.service.IKcEvaluationService;
import org.jeecg.modules.kc.qa.service.IKcEvaluationsService;
import org.jeecg.modules.kc.statistics.KcEvaluationVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@ -106,7 +107,7 @@ public class KcEvaluationServiceImpl extends ServiceImpl<KcEvaluationMapper, KcE
}
@Override
public IPage<KcEvaluation> selectPageAndKcmc(Page<KcEvaluation> page, QueryWrapper<KcEvaluation> queryWrapper) {
public IPage<KcEvaluationVo> selectPageAndKcmc(Page<KcEvaluationVo> page, QueryWrapper<KcEvaluationVo> queryWrapper) {
return page.setRecords(baseMapper.selectPageAndKcmc(page,queryWrapper));
}

View File

@ -0,0 +1,172 @@
package org.jeecg.modules.kc.statistics;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.kc.qa.entity.KcEvaluations;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description: 调查问卷-回答主表
* @Author: jeecg-boot
* @Date: 2023-04-09
* @Version: V1.0
*/
@Data
@TableName("kc_evaluation")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="kc_evaluation对象", description="调查问卷-回答主表")
public class KcEvaluationVo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "上传日期")
private Date upDate;
@JsonFormat(timezone = "GMT+8",pattern = "HH:mm")
@DateTimeFormat(pattern="HH:mm")
@ApiModelProperty(value = "上传时间")
private Date upTime;
@ApiModelProperty(value = "答案")
private String answer1;
/**上传人id*/
@ApiModelProperty(value = "上传人id")
private Integer upuserid;
/**上传人id*/
@ApiModelProperty(value = "上传人id")
@TableField(exist = false)
private String upuseridLike;
/**上传时间戳*/
@ApiModelProperty(value = "上传时间戳")
private String upTimestamp;
/**课程最小id*/
@ApiModelProperty(value = "课程最小id")
private String minkcid;
/**答案2*/
@ApiModelProperty(value = "答案2")
private String answer2;
/**答案3*/
@ApiModelProperty(value = "答案3")
private String answer3;
/**答案4*/
@ApiModelProperty(value = "答案4")
private String answer4;
/**答案5*/
@ApiModelProperty(value = "答案5")
private String answer5;
/**答案6*/
@ApiModelProperty(value = "答案6")
private String answer6;
/**答案7*/
@ApiModelProperty(value = "答案7")
private String answer7;
/**答案8*/
@ApiModelProperty(value = "答案8")
private String answer8;
/**答案9*/
@ApiModelProperty(value = "答案9")
private String answer9;
/**答案10*/
@ApiModelProperty(value = "答案10")
//@MappedJdbcTypes(JdbcType.LONGVARCHAR)
//@TableField(jdbcType = JdbcType.LONGVARCHAR)
private String answer10;
/**答案11*/
@ApiModelProperty(value = "答案11")
private String answer11;
/**问卷版本*/
@ApiModelProperty(value = "问卷版本")
private Integer evaluationver;
/**数据来源0门户添加1老系统2政务大厅3后台导入*/
@ApiModelProperty(value = "数据来源0课程中心1老系统2政务大厅3纸质评价")
private Integer source;
@Excel(name = "学期", width = 15)
@TableField(exist = false)
private String xqxn;
@Excel(name = "课程名称", width = 15)
@TableField(exist = false)
private String kcmc;
@Excel(name = "开课单位", width = 15)
@TableField(exist = false)
private String kkdw;
@Excel(name = "授课教师", width = 15)
@TableField(exist = false)
private String skjs;
@Excel(name = "授课教师工号", width = 15)
@TableField(exist = false)
private String skjgh;
//授课日期时间/节次
@Excel(name = "授课日期", width = 15)
@TableField(exist = false)
private String skrq;
@Excel(name = "授课时间", width = 15)
@TableField(exist = false)
private String sksj;
@Excel(name = "授课节次", width = 15)
@TableField(exist = false)
private String jieci;
@Excel(name = "授课地点", width = 15)
@TableField(exist = false)
private String skdd;
@Excel(name = "听课教师单位", width = 15)
@TableField(exist = false)
private String tkdwmc;
@Excel(name = "听课教师工号", width = 15)
@TableField(exist = false)
private String tkjgh;
@Excel(name = "听课教师姓名", width = 15)
@TableField(exist = false)
private String tkjsxm;
@Excel(name = "听课身份", width = 15)
@TableField(exist = false)
private String tksf;
@Excel(name = "听课评价结果5分制", width = 15)
@TableField(exist = false)
private String tkpjjg;
@Excel(name = "评价量表类型", width = 15)
@TableField(exist = false)
private String pjlblx;
@Excel(name = "数据来源", width = 15)
@TableField(exist = false)
private String sourceName;
}

View File

@ -11,27 +11,34 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.kc.grab.imports.entity.Xxhbuser;
import org.jeecg.modules.kc.grab.imports.service.IXxhbuserService;
import org.jeecg.modules.kc.kcXqxnHistory.entity.KcXqxnHistory;
import org.jeecg.modules.kc.kcXqxnHistory.service.IKcXqxnHistoryService;
import org.jeecg.modules.kc.qa.entity.KcEvaluation;
import org.jeecg.modules.kc.qa.entity.KcEvaluationans;
import org.jeecg.modules.kc.qa.service.IKcEvaluationService;
import org.jeecg.modules.kc.tksf.kctksfrzb.entity.KcTksfrzb;
import org.jeecg.modules.kc.tksf.kctksfrzb.service.IKcTksfrzbService;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -44,10 +51,13 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping("/statistics")
@Slf4j
public class TingKeStatisticsController{
public class TingKeStatisticsController {
@Value("${jeecg.path.upload}")
private String upLoadPath;
@Autowired
private IKcEvaluationService kcEvaluationService;
private IKcEvaluationService service;
@Autowired
private IXxhbuserService xxhbuserService;
@ -59,16 +69,22 @@ public class TingKeStatisticsController{
private IKcXqxnHistoryService kcXqxnHistoryService;
@ApiOperation(value="调查问卷-答案表-分页列表查询", notes="调查问卷-答案表-分页列表查询")
@GetMapping(value = "/getEvaluationList")
public Result<IPage<KcEvaluation>> list(KcEvaluation evaluation,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<KcEvaluation> queryWrapper = QueryGenerator.initQueryWrapper("a",evaluation, req.getParameterMap());
public IPage<KcEvaluationVo> loadPageData(KcEvaluationVo evaluation,QueryWrapper<KcEvaluationVo> queryWrapper,Page<KcEvaluationVo> page){
queryWrapper.isNotNull("a.upuserid");
queryWrapper.isNotNull("a.minkcid");
// if(StringUtils.isNotBlank(evaluation.getDwmc())){
// List<Xxhbuser> xxhbuserList = szdwList.stream().filter(x -> StringUtils.equals(x.getDwh(),evaluation.getDwmc())).collect(Collectors.toList());
// Set<String> ghSet = xxhbuserList.stream().map(x -> x.getGh()).collect(Collectors.toSet());
// queryWrapper.in("a.upuserid",ghSet);
// }
queryWrapper.like(StringUtils.isNotBlank(evaluation.getKkdw()),"kt.kkdw",evaluation.getKkdw());
queryWrapper.like(StringUtils.isNotBlank(evaluation.getSkjs()),"kt.skjs",evaluation.getSkjs());
queryWrapper.like(StringUtils.isNotBlank(evaluation.getSkjgh()),"kt.jgh",evaluation.getSkjgh());
queryWrapper.like(StringUtils.isNotBlank(evaluation.getUpuseridLike()),"a.upuserid",evaluation.getUpuseridLike());
List<KcXqxnHistory> kcXqxnHistoryList = kcXqxnHistoryService.list();
//查询所在单位
List<Xxhbuser> szdwList = xxhbuserService.list();
@ -86,15 +102,7 @@ public class TingKeStatisticsController{
queryWrapper.le("a.up_date",xqxnHistory.getEndTime());
}
}
if(StringUtils.isNotBlank(evaluation.getDwmc())){
List<Xxhbuser> xxhbuserList = szdwList.stream().filter(x -> StringUtils.equals(x.getDwh(),evaluation.getDwmc())).collect(Collectors.toList());
Set<String> ghSet = xxhbuserList.stream().map(x -> x.getGh()).collect(Collectors.toSet());
queryWrapper.in("a.upuserid",ghSet);
}
Page<KcEvaluation> page = new Page<>(pageNo, pageSize);
IPage<KcEvaluation> pageList = kcEvaluationService.selectPageAndKcmc(page, queryWrapper);
IPage<KcEvaluationVo> pageList = service.selectPageAndKcmc(page, queryWrapper);
//---------------------补数据1------------------------------------------
Map<Integer,String> sourceDictMap = Maps.newHashMap();
//0门户添加1老系统2政务大厅3后台导入
@ -114,7 +122,7 @@ public class TingKeStatisticsController{
});
if(tjSet.isEmpty()){
return Result.OK(new Page<>());
return new Page<>();
}
//---------------------补数据2------------------------------------------
@ -148,10 +156,10 @@ public class TingKeStatisticsController{
pageList.getRecords().forEach(x -> {
Integer ixuserId = x.getUpuserid();
String xuserId = String.valueOf(ixuserId);
if(szdwMap.containsKey(xuserId)){
Xxhbuser currentData = szdwMap.get(xuserId);
x.setDwmc(currentData.getDwmc());
}
// if(szdwMap.containsKey(xuserId)){
// Xxhbuser currentData = szdwMap.get(xuserId);
// x.setDwmc(currentData.getDwmc());
// }
if(tksfMap.containsKey(xuserId)){
KcTksfrzb currentData = tksfMap.get(xuserId);
//tj.setJsxm(currentData.getXm());
@ -173,10 +181,70 @@ public class TingKeStatisticsController{
});
return pageList;
}
@ApiOperation(value="调查问卷-答案表-分页列表查询", notes="调查问卷-答案表-分页列表查询")
@GetMapping(value = "/getEvaluationList")
public Result<IPage<KcEvaluationVo>> list(KcEvaluationVo evaluation,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
Page<KcEvaluationVo> page = new Page<>(pageNo, pageSize);
QueryWrapper<KcEvaluationVo> queryWrapper = QueryGenerator.initQueryWrapper("a",evaluation, req.getParameterMap());
IPage<KcEvaluationVo> pageList = loadPageData(evaluation,queryWrapper,page);
return Result.OK(pageList);
}
/**
* 导出excel
*
* @param request
*/
@RequestMapping(value = "/exportEvaluationXls")
public ModelAndView exportXls(HttpServletRequest request, KcEvaluationVo kcEvaluationVo) {
return exportXls(request, kcEvaluationVo, KcEvaluationVo.class, "评价量表统计");
}
/**
* 导出excel
*
* @param request
*/
public ModelAndView exportXls(HttpServletRequest request, KcEvaluationVo object, Class<KcEvaluationVo> clazz, String title) {
// Step.1 组装查询条件
QueryWrapper<KcEvaluationVo> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
queryWrapper.in("id",selectionList);
}
// Step.2 获取导出数据
// List<KcEvaluationVo> exportList = service.selectPageAndKcmc(queryWrapper);
Page<KcEvaluationVo> page = new Page<>(1, -1);
IPage<KcEvaluationVo> pageList = loadPageData(object,queryWrapper,page);
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.FILE_NAME, title);
mv.addObject(NormalExcelConstants.CLASS, clazz);
//update-begin--Author:liusq Date:20210126 for图片导出报错ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
exportParams.setImageBasePath(upLoadPath);
//update-end--Author:liusq Date:20210126 for图片导出报错ImageBasePath未设置----------------------
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, pageList.getRecords());
return mv;
}
public static void main(String[] args) {
Date upDate = DateUtil.parseDateTime("2023-03-13 00:00:00");
Date startTime = DateUtil.parseDateTime("2023-05-01 00:00:00");