From 704733c6b7390dac6da96eaa27813f8ea876f002 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Mon, 4 Dec 2023 23:44:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/xml/KcBdgxbcopyMapper.xml | 4 +- .../KcExportConfigTpkwcqkjzglxController.java | 107 ++++++++++++++- .../KcExportConfigTpkwcqkjzglxMapper.java | 3 + .../xml/KcExportConfigTpkwcqkjzglxMapper.xml | 23 ++++ .../IKcExportConfigTpkwcqkjzglxService.java | 3 + ...KcExportConfigTpkwcqkjzglxServiceImpl.java | 27 ++++ .../SyncWechartTsxx.java | 127 ++++++++++-------- .../KcKechengtixingdingyueController.java | 54 +++++++- .../entity/KcKechengtixingdingyue.java | 23 ++-- .../xml/KcKechengtixingdingyueMapper.xml | 10 ++ .../controller/KcZzThpjbController.java | 1 + .../controller/KcZzXstkbController.java | 1 + .../controller/KcZzYbtkbController.java | 1 + .../kc/qa/mapper/KcEvaluationMapper.java | 3 + .../kc/qa/mapper/xml/KcEvaluationMapper.xml | 3 + .../service/impl/KcEvaluationServiceImpl.java | 103 ++++++++++++++ 16 files changed, 420 insertions(+), 73 deletions(-) diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/xml/KcBdgxbcopyMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/xml/KcBdgxbcopyMapper.xml index 13f889cb..438ecf5e 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/xml/KcBdgxbcopyMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/KcBdgxbcopy/mapper/xml/KcBdgxbcopyMapper.xml @@ -95,7 +95,7 @@ INSERT INTO kc_messagelistcopy ( touser, template_id, tourl, firstdata, remarkdata, keyword1, keyword2, keyword3, scheduleddatetime ) SELECT bd.openid,-- touser:oak6lwA02iVyBKrVSok4uUpzeBmY - 'KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys',-- template_id:KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys + 'PDS1hf6s8P5Ce-SFa9J95XvHhMIGlyhITAGq_CIoNMM',-- template_id:KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys 'https://zxkccx.webvpn.nenu.edu.cn/index',-- tourl:https://zxkccx.webvpn.nenu.edu.cn/index CONCAT( xk.xm, '同学,您明天的课程安排如下:' ),-- firstdata:吴一凡同学,您明天的课程安排如下: '',-- remarkdata: @@ -143,7 +143,7 @@ INSERT INTO kc_messagelistcopy ( touser, template_id, tourl, firstdata, remarkdata, keyword1, keyword2, keyword3, scheduleddatetime ) SELECT bd.openid,-- touser:oak6lwAa1epMAgwQziF2K9yBkiLE - 'KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys',-- template_id:KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys + 'PDS1hf6s8P5Ce-SFa9J95XvHhMIGlyhITAGq_CIoNMM',-- template_id:KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys 'https://zxkccx.webvpn.nenu.edu.cn/index',-- tourl:https://zxkccx.webvpn.nenu.edu.cn/index CONCAT( kt.skjs, '老师,您明天的课程安排如下:' ),-- firstdata:张靖波老师,您明天的课程安排如下: '',-- remarkdata: diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java index 13933cd8..caed66f5 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java @@ -18,6 +18,7 @@ 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.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglxXytktj; import org.jeecg.modules.kc.config.export.Export; import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; import org.jeecg.modules.kc.grab.SynchronizationService.tools.ChangeTingKeTongJi; @@ -106,7 +107,7 @@ public class KcExportConfigTpkwcqkjzglxController extends JeecgController page = new Page<>(pageNo, pageSize); IPage pageList = kcExportConfigTpkwcqkjzglxService.page(page, queryWrapper); @@ -181,6 +182,81 @@ public class KcExportConfigTpkwcqkjzglxController extends JeecgController> queryPageList2(KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(kcExportConfigTpkwcqkjzglx, req.getParameterMap()); + if(kcExportConfigTpkwcqkjzglx.isFindByDwmc()){ + QueryWrapper uqw = new QueryWrapper<>(); + uqw.eq("gh",kcExportConfigTpkwcqkjzglx.getFindGh()); + uqw.last("limit 1"); + Xxhbuser xxhbUser = xxhbuserService.getOne(uqw); + if(xxhbUser == null) { + return Result.OK(new Page<>()); + } + queryWrapper.eq("dwmc ",xxhbUser.getDwmc()); + } +// queryWrapper.eq("zt","在职"); + queryWrapper.apply("(zt = '在职' or (zt= '退休' and ytkcs-0 >0))"); + queryWrapper.apply("dwmc in (select kkdw from kc_kkdw21_view)"); + Page page = new Page<>(pageNo, pageSize); + IPage pageList = kcExportConfigTpkwcqkjzglxService.page(page, queryWrapper); + + Set xqxnSet = pageList.getRecords().stream().filter(x -> StringUtils.isNotBlank(x.getXqxn())).map(KcExportConfigTpkwcqkjzglx::getXqxn).collect(Collectors.toSet()); + //根据当前学期学年,硬合并出来一个数据 + QueryWrapper tjQw = new QueryWrapper<>(); + if(xqxnSet.isEmpty()){ + tjQw.eq("xnxq",-1); + }else{ + tjQw.in("xnxq",xqxnSet); + } + List tjList = kcTkcstjService.list(tjQw); + Map tjMap = Maps.newHashMap(); + tjList.forEach(x -> { + tjMap.put(x.getXnxq() + "-" + x.getJgh(),x); + }); + + QueryWrapper evaluationQw = new QueryWrapper<>(); + evaluationQw.isNotNull("e.minkcid"); + + if(xqxnSet.isEmpty()){ + evaluationQw.eq("kt.xnxq",-1); + }else{ + evaluationQw.in("kt.xnxq",xqxnSet); + } + + evaluationQw.groupBy("concat(xnxq,'-',upuserid)"); + evaluationQw.orderByDesc("kt.skrq"); + + List tjEvaList = evaluationService.findTj(evaluationQw); + Map tjEvaMap = Maps.newHashMap(); + tjEvaList.forEach(x -> { + tjEvaMap.put(x.getXnxq() + "-" + x.getUpuserid(),x); + }); + + pageList.getRecords().forEach(x -> { + x.setTkxttj("0"); + x.setYskcs("0"); + if(tjMap.containsKey(x.getXqxn() + "-" + x.getGh())){ + KcTkcstj tkcstj = tjMap.get(x.getXqxn() + "-" + x.getGh()); + x.setYskcs(StringUtils.defaultString(tkcstj.getYskcs(),"0")); + } + if(tjEvaMap.containsKey(x.getXqxn() + "-" + x.getGh())){ + KcEvaluation tkcstj = tjEvaMap.get(x.getXqxn() + "-" + x.getGh()); + x.setTkxttj(StringUtils.defaultString(String.valueOf(tkcstj.getPkNum()),"0")); + } + }); + + + return Result.OK(pageList); } @@ -325,7 +401,8 @@ public class KcExportConfigTpkwcqkjzglxController extends JeecgController selectionList = Arrays.asList(selections.split(",")); queryWrapper.in("id",selectionList); } - queryWrapper.eq("zt","在职"); +// queryWrapper.eq("zt","在职"); + queryWrapper.apply("(zt = '在职' or (zt= '退休' and ytkcs-0 >0))"); queryWrapper.apply("dwmc in (select kkdw from kc_kkdw21_view)"); // Step.2 获取导出数据 List exportList = service.list(queryWrapper); @@ -497,4 +574,30 @@ public class KcExportConfigTpkwcqkjzglxController extends JeecgController clazz, String title) { + // Step.1 组装查询条件 + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List exportList = service.getListByCodeXytktj(queryWrapper,object); + + // 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, exportList); + return mv; + } + } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/KcExportConfigTpkwcqkjzglxMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/KcExportConfigTpkwcqkjzglxMapper.java index 28ec5eb7..12cbb395 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/KcExportConfigTpkwcqkjzglxMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/KcExportConfigTpkwcqkjzglxMapper.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglxXytktj; import java.util.List; @@ -37,4 +38,6 @@ public interface KcExportConfigTpkwcqkjzglxMapper extends BaseMapper getListQtzrjs(Page page, KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx); List getListQtzrjsChar(KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx1); + + List getListByCodeXytktj(KcExportConfigTpkwcqkjzglxXytktj kcExportConfigTpkwcqkjzglxXytktj); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/xml/KcExportConfigTpkwcqkjzglxMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/xml/KcExportConfigTpkwcqkjzglxMapper.xml index dbab3389..484464ed 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/xml/KcExportConfigTpkwcqkjzglxMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/mapper/xml/KcExportConfigTpkwcqkjzglxMapper.xml @@ -127,4 +127,27 @@ GROUP BY a.gh,a.xm + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java index 38ca9686..1f18c023 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglxXytktj; import java.util.List; import java.util.Map; @@ -36,4 +37,6 @@ public interface IKcExportConfigTpkwcqkjzglxService extends IService getListQtzrjs(Page page, KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx); List getListQtzrjsChar(KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx); + + List getListByCodeXytktj(QueryWrapper queryWrapper,KcExportConfigTpkwcqkjzglxXytktj KcExportConfigTpkwcqkjzglxXytktj); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java index 6523f626..495c8bd3 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java @@ -9,6 +9,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglxXytktj; import org.jeecg.modules.kc.config.mapper.KcExportConfigTpkwcqkjzglxMapper; import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; import org.jeecg.modules.kc.grab.SynchronizationService.tools.ChangeTingKeTongJi; @@ -340,4 +341,30 @@ public class KcExportConfigTpkwcqkjzglxServiceImpl extends ServiceImpl infolist = baseMapper.getListQtzrjsChar(kcExportConfigTpkwcqkjzglx); return infolist; } + + @Override + public List getListByCodeXytktj(QueryWrapper queryWrapper,KcExportConfigTpkwcqkjzglxXytktj kcExportConfigTpkwcqkjzglxXytktj) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + if(StringUtils.equals("1",adminRole)){ + QueryWrapper uqw = new QueryWrapper<>(); + uqw.eq("gh",sysUser.getUsername()); + uqw.last("limit 1"); + Xxhbuser xxhbUser = xxhbuserService.getOne(uqw); + kcExportConfigTpkwcqkjzglxXytktj.setDwmc(xxhbUser.getDwmc()); + } + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + kcExportConfigTpkwcqkjzglxXytktj.setXqxn(kcSysConfig.getFlag1()); + + List infolist = baseMapper.getListByCodeXytktj(kcExportConfigTpkwcqkjzglxXytktj); + return infolist; + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartTsxx.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartTsxx.java index 314cb6a3..83dbc263 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartTsxx.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/grab/SynchronizationService/SyncWechartTsxx.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xkcoding.http.HttpUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; import org.jeecg.modules.kc.KcBdgxbcopy.service.IKcBdgxbcopyService; @@ -49,69 +50,79 @@ public class SyncWechartTsxx extends BaseSync { * @param param */ public void run(Map param){ - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Calendar nowTime = Calendar.getInstance(); - nowTime.add(Calendar.MINUTE, 30);//30分钟后的时间 - Calendar nowTime2 = Calendar.getInstance(); - nowTime2.add(Calendar.MINUTE, -30);//30分钟前的时间 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.ge("scheduleddatetime",DateUtils.formatDate(nowTime2,"yyyy-MM-dd HH:mm:ss")); - queryWrapper.le("scheduleddatetime",DateUtils.formatDate(nowTime,"yyyy-MM-dd HH:mm:ss")); - queryWrapper.eq("status","0"); - List list =kcMessagelistcopyService.list(); - for(KcMessagelistcopy KcMessagelistcopy:list){ + String urlToken = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appId +"&secret=" + appIdSecret; + System.out.println("urlToken: "+ urlToken); + String res = HttpUtil.get(urlToken); + JSONObject jsonObjectToken = JSONObject.parseObject(res); + System.out.println("jsonObjectToken:{}"+ jsonObjectToken); + String accessToken = jsonObjectToken.getString("access_token"); + System.out.println("accessToken:{}"+ accessToken); - // 模板参数 - Map sendMag = new HashMap(); - // openId代表一个唯一微信用户,即微信消息的接收人 - String openId = KcMessagelistcopy.getTouser(); - // 微信的基础accessToken - String urlToken = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appId +"&secret=" + appIdSecret; - String res = HttpUtil.get(urlToken); - JSONObject jsonTokenObject = JSONObject.parseObject(res); - String accessToken = jsonTokenObject.getString("access_token"); - String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken; + if(StringUtils.isNotBlank(accessToken)){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar nowTime = Calendar.getInstance(); + nowTime.add(Calendar.MINUTE, 30);//30分钟后的时间 - /** - * 其他模板可以从模板库中自己添加 - * 模板ID - * KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys - * 开发者调用模板消息接口时需提供模板ID - * 标题 上课提醒 - * 行业 教育 - 院校 - * 详细内容 - * {{first.DATA}} - * 课程:{{keyword1.DATA}} - * 时间:{{keyword2.DATA}} - * 地点:{{keyword3.DATA}} - * {{remark.DATA}} - */ - sendMag.put("first", new WeChatTemplateMsg(KcMessagelistcopy.getFirstdata())); - sendMag.put("keyword1", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword1())); - sendMag.put("keyword2", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword2())); - sendMag.put("keyword3", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword3())); - sendMag.put("remark", new WeChatTemplateMsg(KcMessagelistcopy.getRemarkdata())); - RestTemplate restTemplate = new RestTemplate(); - //拼接base参数 - Map sendBody = new HashMap<>(); - sendBody.put("touser", openId); // openId - sendBody.put("url", KcMessagelistcopy.getTourl()); // 点击模板信息跳转地址 - sendBody.put("topcolor", "#FF0000"); // 顶色 - sendBody.put("data", sendMag); // 模板参数 - sendBody.put("template_id", KcMessagelistcopy.getTemplateId()); // 模板Id - ResponseEntity forEntity = restTemplate.postForEntity(url, sendBody, String.class); - log.info("结果是: {}",forEntity.getBody()); - JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); - // 0 - String messageCode = jsonObject.getString("errcode"); - // 2431260672639467520 - String msgId = jsonObject.getString("msgid"); - System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); - KcMessagelistcopy.setStatus("1"); - kcMessagelistcopyService.updateById(KcMessagelistcopy); + Calendar nowTime2 = Calendar.getInstance(); + nowTime2.add(Calendar.MINUTE, -30);//30分钟前的时间 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("scheduleddatetime",DateUtils.formatDate(nowTime2,"yyyy-MM-dd HH:mm:ss")); + queryWrapper.le("scheduleddatetime",DateUtils.formatDate(nowTime,"yyyy-MM-dd HH:mm:ss")); + queryWrapper.eq("status","0"); + List list =kcMessagelistcopyService.list(); + for(KcMessagelistcopy KcMessagelistcopy:list){ + + // 模板参数 + Map sendMag = new HashMap(); + // openId代表一个唯一微信用户,即微信消息的接收人 + String openId = KcMessagelistcopy.getTouser(); + String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken; + + /** + * 其他模板可以从模板库中自己添加 + * 模板ID + * KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys + * 开发者调用模板消息接口时需提供模板ID + * 标题 上课提醒 + * 行业 教育 - 院校 + * 详细内容 + * {{first.DATA}} + * 课程:{{keyword1.DATA}} + * 时间:{{keyword2.DATA}} + * 地点:{{keyword3.DATA}} + * {{remark.DATA}} + */ + sendMag.put("first", new WeChatTemplateMsg(KcMessagelistcopy.getFirstdata())); + sendMag.put("keyword1", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword1())); + sendMag.put("keyword2", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword2())); + sendMag.put("keyword3", new WeChatTemplateMsg(KcMessagelistcopy.getKeyword3())); + sendMag.put("remark", new WeChatTemplateMsg(KcMessagelistcopy.getRemarkdata())); + RestTemplate restTemplate = new RestTemplate(); + //拼接base参数 + Map sendBody = new HashMap<>(); + sendBody.put("touser", openId); // openId + sendBody.put("url", KcMessagelistcopy.getTourl()); // 点击模板信息跳转地址 + sendBody.put("topcolor", "#FF0000"); // 顶色 + sendBody.put("data", sendMag); // 模板参数 + sendBody.put("template_id", KcMessagelistcopy.getTemplateId()); // 模板Id + ResponseEntity forEntity = restTemplate.postForEntity(url, sendBody, String.class); + log.info("结果是: {}",forEntity.getBody()); + JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); + // 0 + String messageCode = jsonObject.getString("errcode"); + // 2431260672639467520 + String msgId = jsonObject.getString("msgid"); + System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); + if(StringUtils.isNotBlank(msgId)){ + KcMessagelistcopy.setStatus("1"); + kcMessagelistcopyService.updateById(KcMessagelistcopy); + } + } } + + } /** diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/controller/KcKechengtixingdingyueController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/controller/KcKechengtixingdingyueController.java index 32082903..08cfb3aa 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/controller/KcKechengtixingdingyueController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/controller/KcKechengtixingdingyueController.java @@ -9,8 +9,12 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; 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.kcKechengtixingdingyue.entity.KcKechengtixingdingyue; import org.jeecg.modules.kc.kcKechengtixingdingyue.service.IKcKechengtixingdingyueService; @@ -27,6 +31,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @@ -50,7 +55,9 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; public class KcKechengtixingdingyueController extends JeecgController { @Autowired private IKcKechengtixingdingyueService kcKechengtixingdingyueService; - + + @Value("${jeecg.path.upload}") + private String upLoadPath; /** * 分页列表查询 * @@ -157,12 +164,53 @@ public class KcKechengtixingdingyueController extends JeecgController 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 获取导出数据 + queryWrapper.apply("username is not null"); + List exportList = service.list(queryWrapper); + for(KcKechengtixingdingyue kcKechengtixingdingyuePar:exportList){ + if(StringUtils.equals("0",kcKechengtixingdingyuePar.getKqtx())){ + kcKechengtixingdingyuePar.setKqtx("否"); + }else{ + kcKechengtixingdingyuePar.setKqtx("是"); + } + if(StringUtils.equals("0",kcKechengtixingdingyuePar.getMrkctx())){ + kcKechengtixingdingyuePar.setMrkctx("否"); + }else{ + kcKechengtixingdingyuePar.setMrkctx("是"); + } + } + + // 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, exportList); + return mv; + } + /** * 通过excel导入数据 * diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/entity/KcKechengtixingdingyue.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/entity/KcKechengtixingdingyue.java index 015c5dbb..26e9bdfe 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/entity/KcKechengtixingdingyue.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/entity/KcKechengtixingdingyue.java @@ -4,10 +4,8 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.TableLogic; + +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -32,14 +30,22 @@ import lombok.experimental.Accessors; public class KcKechengtixingdingyue implements Serializable { private static final long serialVersionUID = 1L; + + @Excel(name = "所在学院", width = 15) + @TableField(exist = false) + private java.lang.String dwmc; + + @Excel(name = "任教专业", width = 15) + @TableField(exist = false) + private java.lang.String rjzy; /**账号*/ @TableId - @Excel(name = "账号", width = 15) - @ApiModelProperty(value = "账号") + @Excel(name = "工号", width = 15) + @ApiModelProperty(value = "工号") private java.lang.String userid; /**用户名*/ - @Excel(name = "用户名", width = 15) - @ApiModelProperty(value = "用户名") + @Excel(name = "教师姓名", width = 15) + @ApiModelProperty(value = "教师姓名") private java.lang.String username; /**课前提醒*/ @Excel(name = "课前提醒", width = 15) @@ -51,4 +57,5 @@ public class KcKechengtixingdingyue implements Serializable { @ApiModelProperty(value = "每日课程提醒") @Dict(dicCode = "sfcj") private java.lang.String mrkctx; + } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/mapper/xml/KcKechengtixingdingyueMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/mapper/xml/KcKechengtixingdingyueMapper.xml index 54423544..eb59c32d 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/mapper/xml/KcKechengtixingdingyueMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcKechengtixingdingyue/mapper/xml/KcKechengtixingdingyueMapper.xml @@ -2,4 +2,14 @@ + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzThpjb/controller/KcZzThpjbController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzThpjb/controller/KcZzThpjbController.java index 09c8b502..d833df3c 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzThpjb/controller/KcZzThpjbController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzThpjb/controller/KcZzThpjbController.java @@ -97,6 +97,7 @@ public class KcZzThpjbController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(kcZzThpjb, req.getParameterMap()); + queryWrapper.eq(StringUtils.isNotBlank(kcZzThpjb.getXqxn()),"b.title",kcZzThpjb.getXqxn()); Page page = new Page(pageNo, pageSize); IPage pageList = kcZzThpjbService.page(page, queryWrapper); return Result.OK(pageList); diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzXstkb/controller/KcZzXstkbController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzXstkb/controller/KcZzXstkbController.java index 502834e4..bd46fff0 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzXstkb/controller/KcZzXstkbController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzXstkb/controller/KcZzXstkbController.java @@ -93,6 +93,7 @@ public class KcZzXstkbController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(kcZzXstkb, req.getParameterMap()); + queryWrapper.eq(StringUtils.isNotBlank(kcZzXstkb.getXqxn()),"b.title",kcZzXstkb.getXqxn()); Page page = new Page(pageNo, pageSize); IPage pageList = kcZzXstkbService.page(page, queryWrapper); return Result.OK(pageList); diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzYbtkb/controller/KcZzYbtkbController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzYbtkb/controller/KcZzYbtkbController.java index f5693d48..c1a9cb39 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzYbtkb/controller/KcZzYbtkbController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/kcZzYbtkb/controller/KcZzYbtkbController.java @@ -98,6 +98,7 @@ public class KcZzYbtkbController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper("a",kcZzYbtkb, req.getParameterMap()); + queryWrapper.eq(StringUtils.isNotBlank(kcZzYbtkb.getXqxn()),"b.title",kcZzYbtkb.getXqxn()); Page page = new Page(pageNo, pageSize); IPage pageList = kcZzYbtkbService.page(page, queryWrapper); return Result.OK(pageList); 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 c1105780..5071859c 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 @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; import org.jeecg.modules.kc.qa.entity.KcEvaluation; import org.jeecg.modules.kc.qa.entity.KcEvaluationPkmx; import org.jeecg.modules.kc.statistics.KcEvaluationVo; @@ -41,4 +42,6 @@ public interface KcEvaluationMapper extends BaseMapper { List queryPkZuJiPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); List findTj(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + KcBdgxbcopy getOpenId(String skjs); } 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 b4b2744e..a5b80938 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 @@ -501,4 +501,7 @@ ${ew.customSqlSegment} + \ No newline at end of file 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 2e9a4457..54a2e620 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 @@ -2,14 +2,20 @@ package org.jeecg.modules.kc.qa.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xkcoding.http.HttpUtil; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.kc.KcBdgxbcopy.entity.KcBdgxbcopy; import org.jeecg.modules.kc.grab.SynchronizationService.tools.ChangeTingKeTongJi; +import org.jeecg.modules.kc.ktgl.entity.KcKetangbiao; +import org.jeecg.modules.kc.ktgl.service.IKcKetangbiaoService; import org.jeecg.modules.kc.qa.entity.KcEvaluation; import org.jeecg.modules.kc.qa.entity.KcEvaluationPkmx; import org.jeecg.modules.kc.qa.mapper.KcEvaluationMapper; @@ -17,16 +23,23 @@ 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.jeecg.modules.kc.statistics.KcEvaluationVo2; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.wxgzh.WeChatTemplateMsg; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; import java.text.ParseException; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Description: 调查问卷-回答主表 @@ -43,6 +56,10 @@ public class KcEvaluationServiceImpl extends ServiceImpl getPktjbList(Page page, KcEvaluation kcEvaluation) { return baseMapper.getPktjbList(page,kcEvaluation); @@ -96,6 +113,11 @@ public class KcEvaluationServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("realname",skjs); + List sysUserList = sysUserService.list(queryWrapper); + String openId = ""; + for(SysUser SysUserPar : sysUserList){ + KcBdgxbcopy kcBdgxbcopy=baseMapper.getOpenId(SysUserPar.getUsername()); + if(kcBdgxbcopy !=null){ + openId = kcBdgxbcopy.getOpenid(); + break; + } + } + if(StringUtils.isNotEmpty(openId)){ + String urlToken = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appId +"&secret=" + appIdSecret; + System.out.println("urlToken: "+ urlToken); + String res = HttpUtil.get(urlToken); + JSONObject jsonObjectToken = JSONObject.parseObject(res); + System.out.println("jsonObjectToken:{}"+ jsonObjectToken); + String accessToken = jsonObjectToken.getString("access_token"); + System.out.println("accessToken:{}"+ accessToken); + + // 模板参数 + Map sendMag = new HashMap(); + +// openId = "oak6lwKGlGQQwt83nuynZnP4HUR4";//曹老师账号 + // 微信的基础accessToken + String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken; + + /** + * 其他模板可以从模板库中自己添加 + * 模板ID + * KtWw0lwQ8FOgJdKgrmya0eoafGkMfMN8ECdZs8oSJys + * 开发者调用模板消息接口时需提供模板ID + * 标题 上课提醒 + * 行业 教育 - 院校 + * 详细内容 + * {{first.DATA}} + * 课程:{{keyword1.DATA}} + * 时间:{{keyword2.DATA}} + * 地点:{{keyword3.DATA}} + * {{remark.DATA}} + */ + sendMag.put("first", new WeChatTemplateMsg("有课程即将开始")); + sendMag.put("keyword1", new WeChatTemplateMsg("线性代数")); + sendMag.put("keyword2", new WeChatTemplateMsg("[1,2节] 08:30-10:00")); + sendMag.put("keyword3", new WeChatTemplateMsg("上课地点N304")); + sendMag.put("remark", new WeChatTemplateMsg("请开发者为用户提供定制提醒的选项,以免打扰。")); + RestTemplate restTemplate = new RestTemplate(); + //拼接base参数 + Map sendBody = new HashMap<>(); + sendBody.put("touser", openId); // openId + sendBody.put("url", domainTo); // 点击模板信息跳转地址 + sendBody.put("topcolor", "#FF0000"); // 顶色 + sendBody.put("data", sendMag); // 模板参数 + sendBody.put("template_id", templateId); // 模板Id + ResponseEntity forEntity = restTemplate.postForEntity(url, sendBody, String.class); + JSONObject jsonObject2 = JSONObject.parseObject(forEntity.getBody()); + String messageCode = jsonObject2.getString("errcode"); + String msgId = jsonObject2.getString("msgid"); + System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); + } + } + }