| | |
| | | package com.ycl.platform.service.impl; |
| | | |
| | | import annotation.DataScope; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.platform.domain.dto.CheckScoreDTO; |
| | | import com.ycl.platform.domain.dto.CheckScoreIndexDTO; |
| | | import com.ycl.platform.domain.dto.ScoreIndexDTO; |
| | | import com.ycl.platform.domain.entity.*; |
| | | import com.ycl.platform.domain.vo.CheckIndexCarVO; |
| | | import com.ycl.platform.domain.vo.CheckIndexFaceVO; |
| | | import com.ycl.platform.domain.vo.CheckIndexVideoVO; |
| | | import com.ycl.platform.domain.vo.CheckScoreDetailVO; |
| | | import com.ycl.platform.mapper.CheckRuleMapper; |
| | | import com.ycl.platform.mapper.CheckScoreMapper; |
| | |
| | | import com.ycl.utils.DateUtils; |
| | | import com.ycl.utils.SecurityUtils; |
| | | import com.ycl.utils.StringUtils; |
| | | import constant.CheckConstants; |
| | | import enumeration.general.PublishType; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | CheckScoreDetailVO checkScoreDetailVO = new CheckScoreDetailVO(); |
| | | //根据id读取score |
| | | CheckScore checkScore = scoreMapper.selectCheckScoreById(checkScoreId); |
| | | Integer templateId = 0; |
| | | //方便切换改为:根据score考核类别和dto考核标签查模板规则和权重,注意同种类同标签只能有一个模板 |
| | | QueryWrapper<CheckTemplate> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("examine_tag",checkScoreIndexDTO.getExamineTag()); |
| | | wrapper.eq("examine_category",checkScore.getExamineCategory()); |
| | | Optional<CheckTemplate> first = templateMapper.selectList(wrapper).stream().findFirst(); |
| | | if(first.isPresent()){ |
| | | CheckTemplate checkTemplate = first.get(); |
| | | templateId = checkTemplate.getId(); |
| | | } |
| | | //读取规则以及权重 |
| | | List<CheckTemplateRule> templateRuleList = templateRuleMapper.selectListByTemplateId(checkScore.getTemplateId()); |
| | | List<CheckTemplateRule> templateRuleList = templateRuleMapper.selectListByTemplateId(templateId); |
| | | |
| | | List<CheckRule> checkRules = new ArrayList<>(); |
| | | //读取模板对应所有规则 |
| | |
| | | .setDate(checkScoreIndexDTO.getDate()) |
| | | .setQuarter(checkScoreIndexDTO.getQuarter()); |
| | | scoreIndexDTO.setParams(checkScoreIndexDTO.getParams()); |
| | | scoreIndexDTO.setExamineTag(checkScore.getExamineTag()); |
| | | scoreIndexDTO.setExamineTag(checkScoreIndexDTO.getExamineTag()); |
| | | //获当月份 |
| | | if (StringUtils.isEmpty(scoreIndexDTO.getDate()) && CollectionUtils.isEmpty(checkScoreIndexDTO.getQuarter())) { |
| | | //如果查询条件不含参数,查询积分对应创建时间 |
| | |
| | | |
| | | // 如果数据为空,则查询之前的数据 |
| | | if (checkScores.isEmpty()) { |
| | | CheckScore one = new LambdaQueryChainWrapper<>(baseMapper).select(CheckScore::getCreateTime).last("order by create_time desc limit 1").one(); |
| | | CheckScore one = scoreMapper.getLast(checkScore); |
| | | if (Objects.nonNull(one)) { |
| | | calendar.setTime(one.getCreateTime()); |
| | | getCheckScore(checkScore, calendar); |
| | |
| | | @Override |
| | | public void exportIndex(HttpServletResponse response, CheckScore checkScoreDTO) throws IOException { |
| | | String date = checkScoreDTO.getDate(); |
| | | Integer examineTag = null; |
| | | //如果请求参数时间为空,查这条记录的时间 |
| | | if (StringUtils.isEmpty(checkScoreDTO.getDate()) && CollectionUtils.isEmpty(checkScoreDTO.getQuarter())) { |
| | | CheckScore checkScore = getById(checkScoreDTO.getId()); |
| | | Date createTime = checkScore.getCreateTime(); |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); |
| | | date = formatter.format(createTime); |
| | | examineTag = checkScore.getExamineTag(); |
| | | } |
| | | |
| | | /** 导三张sheet */ |
| | |
| | | CheckIndexCar checkIndexCar = new CheckIndexCar(); |
| | | checkIndexCar.setDate(date); |
| | | checkIndexCar.setQuarter(checkScoreDTO.getQuarter()); |
| | | if (examineTag != null) { |
| | | checkIndexCar.setExamineTag(Short.parseShort(examineTag + "")); |
| | | } |
| | | List<CheckIndexCar> checkIndexCars = indexCarService.selectCheckIndexCarList(checkIndexCar); |
| | | ExcelExp e1 = new ExcelExp("车辆考核指标数据", checkIndexCars, CheckIndexCar.class); |
| | | List<CheckIndexCarVO> checkIndexCarVOS = new ArrayList<>(); |
| | | for (CheckIndexCar indexCar : checkIndexCars) { |
| | | CheckIndexCarVO excelVo = CheckIndexCar.getExcelVo(indexCar); |
| | | checkIndexCarVOS.add(excelVo); |
| | | } |
| | | ExcelExp e1 = new ExcelExp("车辆考核指标数据", checkIndexCarVOS, CheckIndexCarVO.class); |
| | | //人脸 |
| | | CheckIndexFace checkIndexFace = new CheckIndexFace(); |
| | | checkIndexFace.setDate(date); |
| | | checkIndexFace.setQuarter(checkScoreDTO.getQuarter()); |
| | | if (examineTag != null) { |
| | | checkIndexFace.setExamineTag(Short.parseShort(examineTag + "")); |
| | | } |
| | | List<CheckIndexFace> checkIndexFaces = indexFaceService.selectCheckIndexFaceList(checkIndexFace); |
| | | ExcelExp e2 = new ExcelExp("人脸考核指标数据", checkIndexFaces, CheckIndexFace.class); |
| | | List<CheckIndexFaceVO> checkIndexFaceVOS = new ArrayList<>(); |
| | | for (CheckIndexFace indexFace : checkIndexFaces) { |
| | | CheckIndexFaceVO excelVo = CheckIndexFace.getExcelVo(indexFace); |
| | | checkIndexFaceVOS.add(excelVo); |
| | | } |
| | | ExcelExp e2 = new ExcelExp("人脸考核指标数据", checkIndexFaceVOS, CheckIndexFaceVO.class); |
| | | //视频 |
| | | CheckIndexVideo checkIndexVideo = new CheckIndexVideo(); |
| | | checkIndexVideo.setDate(date); |
| | | checkIndexVideo.setQuarter(checkScoreDTO.getQuarter()); |
| | | if (examineTag != null) { |
| | | checkIndexVideo.setExamineTag(Short.parseShort(examineTag + "")); |
| | | } |
| | | List<CheckIndexVideo> checkIndexVideos = indexVideoService.selectCheckIndexVideoList(checkIndexVideo); |
| | | ExcelExp e3 = new ExcelExp("视频考核指标数据", checkIndexVideos, CheckIndexVideo.class); |
| | | List<CheckIndexVideoVO> checkIndexVideoVOS = new ArrayList<>(); |
| | | for (CheckIndexVideo indexVideo : checkIndexVideos) { |
| | | CheckIndexVideoVO excelVo = CheckIndexVideo.getExcelVo(indexVideo); |
| | | checkIndexVideoVOS.add(excelVo); |
| | | } |
| | | ExcelExp e3 = new ExcelExp("视频考核指标数据", checkIndexVideoVOS, CheckIndexVideoVO.class); |
| | | |
| | | List<ExcelExp> mysheet = new ArrayList<>(); |
| | | mysheet.add(e1); |
| | |
| | | SysUser user = SecurityUtils.getLoginUser().getUser(); |
| | | if (!user.isAdmin()) { |
| | | for (SysRole role : roles) { |
| | | if (role.getPermissions().contains("check:score:publish")) { |
| | | if (role.getPermissions().contains("check:score:role:publish")) { |
| | | Map<String, Object> params = checkScore.getParams(); |
| | | params.put("publish", PublishType.PUBLISHED.getCode()); |
| | | } |