diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/KcEvaluationMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/KcEvaluationMapper.java index 8c9c24a8..f77e027f 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/KcEvaluationMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/KcEvaluationMapper.java @@ -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 { List selectPkmxExportList(KcEvaluationPkmx kcEvaluationPkmx); List keTangList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); - List selectPageAndKcmc(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + List selectPageAndKcmc(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/xml/KcEvaluationMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/xml/KcEvaluationMapper.xml index 285d75fd..fa60e746 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/xml/KcEvaluationMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/mapper/xml/KcEvaluationMapper.xml @@ -393,11 +393,26 @@ ${ew.customSqlSegment} - 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} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/IKcEvaluationService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/IKcEvaluationService.java index 5728f32b..d77c0027 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/IKcEvaluationService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/IKcEvaluationService.java @@ -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 { IPage keTangList(Page page, QueryWrapper queryWrapper); - IPage selectPageAndKcmc(Page page, QueryWrapper queryWrapper); + IPage selectPageAndKcmc(Page page, QueryWrapper queryWrapper); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/impl/KcEvaluationServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/impl/KcEvaluationServiceImpl.java index 83988ca8..75776b34 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/impl/KcEvaluationServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/qa/service/impl/KcEvaluationServiceImpl.java @@ -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 selectPageAndKcmc(Page page, QueryWrapper queryWrapper) { + public IPage selectPageAndKcmc(Page page, QueryWrapper queryWrapper) { return page.setRecords(baseMapper.selectPageAndKcmc(page,queryWrapper)); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/statistics/KcEvaluationVo.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/statistics/KcEvaluationVo.java new file mode 100644 index 00000000..f1f733fc --- /dev/null +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/statistics/KcEvaluationVo.java @@ -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; + + + +} diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/statistics/TingKeStatisticsController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/statistics/TingKeStatisticsController.java index e9f157bb..de0a2f43 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/statistics/TingKeStatisticsController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/statistics/TingKeStatisticsController.java @@ -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> list(KcEvaluation evaluation, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper("a",evaluation, req.getParameterMap()); + public IPage loadPageData(KcEvaluationVo evaluation,QueryWrapper queryWrapper,Page page){ queryWrapper.isNotNull("a.upuserid"); queryWrapper.isNotNull("a.minkcid"); +// if(StringUtils.isNotBlank(evaluation.getDwmc())){ +// List xxhbuserList = szdwList.stream().filter(x -> StringUtils.equals(x.getDwh(),evaluation.getDwmc())).collect(Collectors.toList()); +// Set 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 kcXqxnHistoryList = kcXqxnHistoryService.list(); //查询所在单位 List szdwList = xxhbuserService.list(); @@ -86,15 +102,7 @@ public class TingKeStatisticsController{ queryWrapper.le("a.up_date",xqxnHistory.getEndTime()); } } - if(StringUtils.isNotBlank(evaluation.getDwmc())){ - List xxhbuserList = szdwList.stream().filter(x -> StringUtils.equals(x.getDwh(),evaluation.getDwmc())).collect(Collectors.toList()); - Set ghSet = xxhbuserList.stream().map(x -> x.getGh()).collect(Collectors.toSet()); - queryWrapper.in("a.upuserid",ghSet); - } - - Page page = new Page<>(pageNo, pageSize); - IPage pageList = kcEvaluationService.selectPageAndKcmc(page, queryWrapper); - + IPage pageList = service.selectPageAndKcmc(page, queryWrapper); //---------------------补数据1------------------------------------------ Map 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> list(KcEvaluationVo evaluation, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page page = new Page<>(pageNo, pageSize); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper("a",evaluation, req.getParameterMap()); + IPage 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 clazz, String title) { + // Step.1 组装查询条件 + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + // 过滤选中数据 + String selections = request.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List selectionList = Arrays.asList(selections.split(",")); + queryWrapper.in("id",selectionList); + } + // Step.2 获取导出数据 +// List exportList = service.selectPageAndKcmc(queryWrapper); + Page page = new Page<>(1, -1); + IPage 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");