Commit ad680c7b15cf74ef36c607c58cbac367f1507a4f

Authored by 陈杰
1 parent e69fcc95
Exists in master

考勤推送

cloud/common/src/main/java/com/sincere/common/dto/smartCampus/CensusKqDto.java 0 → 100644
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
  1 +package com.sincere.common.dto.smartCampus;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/11/29 0029 14:27
  7 + */
  8 +public class CensusKqDto {
  9 + private String className ;
  10 + private int allT ;
  11 + private int kqT ;
  12 +
  13 + public String getClassName() {
  14 + return className;
  15 + }
  16 +
  17 + public void setClassName(String className) {
  18 + this.className = className;
  19 + }
  20 +
  21 + public int getAllT() {
  22 + return allT;
  23 + }
  24 +
  25 + public void setAllT(int allT) {
  26 + this.allT = allT;
  27 + }
  28 +
  29 + public int getKqT() {
  30 + return kqT;
  31 + }
  32 +
  33 + public void setKqT(int kqT) {
  34 + this.kqT = kqT;
  35 + }
  36 +}
cloud/common/src/main/java/com/sincere/common/dto/smartCampus/KqTeacherDto.java
@@ -13,7 +13,7 @@ public class KqTeacherDto { @@ -13,7 +13,7 @@ public class KqTeacherDto {
13 private String pass ; 13 private String pass ;
14 private String DingUserId ; 14 private String DingUserId ;
15 private String weChatUserId ; 15 private String weChatUserId ;
16 - private String xSTOpenId ; 16 + private String openId ;
17 private String face ; 17 private String face ;
18 18
19 public String getUserId() { 19 public String getUserId() {
@@ -72,12 +72,12 @@ public class KqTeacherDto { @@ -72,12 +72,12 @@ public class KqTeacherDto {
72 this.weChatUserId = weChatUserId; 72 this.weChatUserId = weChatUserId;
73 } 73 }
74 74
75 - public String getxSTOpenId() {  
76 - return xSTOpenId; 75 + public String getOpenId() {
  76 + return openId;
77 } 77 }
78 78
79 - public void setxSTOpenId(String xSTOpenId) {  
80 - this.xSTOpenId = xSTOpenId; 79 + public void setOpenId(String openId) {
  80 + this.openId = openId;
81 } 81 }
82 82
83 public String getFace() { 83 public String getFace() {
cloud/common/src/main/java/com/sincere/common/util/DateUtils.java
@@ -72,4 +72,33 @@ public class DateUtils { @@ -72,4 +72,33 @@ public class DateUtils {
72 int weekday = c.get(Calendar.DAY_OF_WEEK); 72 int weekday = c.get(Calendar.DAY_OF_WEEK);
73 return weekday-1 ; 73 return weekday-1 ;
74 } 74 }
  75 +
  76 + public static String getWeekName(){
  77 + Date today = new Date();
  78 + Calendar c = Calendar.getInstance();
  79 + c.setTime(today);
  80 + int weekday = c.get(Calendar.DAY_OF_WEEK);
  81 + if(weekday == 1){
  82 + return "周日";
  83 + }
  84 + if(weekday == 2){
  85 + return "周一";
  86 + }
  87 + if(weekday == 3){
  88 + return "周二";
  89 + }
  90 + if(weekday == 4){
  91 + return "周三";
  92 + }
  93 + if(weekday == 5){
  94 + return "周四";
  95 + }
  96 + if(weekday == 6){
  97 + return "周五";
  98 + }
  99 + if(weekday == 7){
  100 + return "周六";
  101 + }
  102 + return "";
  103 + }
75 } 104 }
cloud/quartz/pom.xml
@@ -89,7 +89,7 @@ @@ -89,7 +89,7 @@
89 <configuration> 89 <configuration>
90 <archive> 90 <archive>
91 <manifest> 91 <manifest>
92 - <mainClass>com.sincere.smartSearch.SmartSearchApplication</mainClass> 92 + <mainClass>com.sincere.quartz.QuartzApplication</mainClass>
93 <addClasspath>true</addClasspath> 93 <addClasspath>true</addClasspath>
94 <classpathPrefix>lib/</classpathPrefix> 94 <classpathPrefix>lib/</classpathPrefix>
95 </manifest> 95 </manifest>
cloud/quartz/src/main/java/com/sincere/quartz/enums/KqTypeEnums.java 0 → 100644
@@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
  1 +package com.sincere.quartz.enums;
  2 +
  3 +import com.sincere.common.dto.smartCampus.KqTeacherDto;
  4 +
  5 +/**
  6 + * @author chen
  7 + * @version 1.0
  8 + * @date 2019/11/29 0029 11:44
  9 + */
  10 +public enum KqTypeEnums {
  11 + morning_to_school(1,"早上到校"),
  12 + noon_le_school(2,"中午离校"),
  13 + afternoon_to_school(3,"下午到校"),
  14 + afternoon_le_school(4,"下午离校"),
  15 + night_to_school(5,"晚上到校"),
  16 + night_le_school(6,"晚上离校"),
  17 + morning_to_chamber(7,"早上离寝"),
  18 + noon_to_chamber(8,"中午到寝"),
  19 + noon_le_chamber(9,"中午离寝"),
  20 + afternoon_to_chamber(10,"下午到寝"),
  21 + afternoon_le_chamber(11,"下午离寝"),
  22 + night_to_chamber(12,"晚上到寝");
  23 +
  24 + private int type ;
  25 + private String name ;
  26 +
  27 + public int getType() {
  28 + return type;
  29 + }
  30 +
  31 + public void setType(int type) {
  32 + this.type = type;
  33 + }
  34 +
  35 + public String getName() {
  36 + return name;
  37 + }
  38 +
  39 + public void setName(String name) {
  40 + this.name = name;
  41 + }
  42 +
  43 + KqTypeEnums(int type, String name) {
  44 + this.type = type;
  45 + this.name = name;
  46 + }
  47 +
  48 + public static String getName(int type){
  49 + for(KqTypeEnums enums : KqTypeEnums.values()){
  50 + if(enums.getType() == type){
  51 + return enums.getName();
  52 + }
  53 + }
  54 + return "" ;
  55 + }
  56 +}
cloud/quartz/src/main/java/com/sincere/quartz/enums/TypeEnums.java 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +package com.sincere.quartz.enums;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/11/29 0029 11:25
  7 + */
  8 +public enum TypeEnums {
  9 +
  10 + kaoqing(10,"考勤");
  11 +
  12 + TypeEnums(int type, String name) {
  13 + this.type = type;
  14 + this.name = name;
  15 + }
  16 +
  17 + private int type ;
  18 + private String name ;
  19 +
  20 + public int getType() {
  21 + return type;
  22 + }
  23 +
  24 + public void setType(int type) {
  25 + this.type = type;
  26 + }
  27 +
  28 + public String getName() {
  29 + return name;
  30 + }
  31 +
  32 + public void setName(String name) {
  33 + this.name = name;
  34 + }
  35 +}
cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java
1 package com.sincere.quartz.feign; 1 package com.sincere.quartz.feign;
2 2
3 import com.sincere.common.dto.smartCampus.AppDto; 3 import com.sincere.common.dto.smartCampus.AppDto;
  4 +import com.sincere.common.dto.smartCampus.CensusKqDto;
4 import com.sincere.common.dto.smartCampus.KqTeacherDto; 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
5 import com.sincere.common.dto.smartCampus.TemplateDto; 6 import com.sincere.common.dto.smartCampus.TemplateDto;
6 import org.springframework.cloud.openfeign.FeignClient; 7 import org.springframework.cloud.openfeign.FeignClient;
@@ -26,4 +27,7 @@ public interface ScFeign { @@ -26,4 +27,7 @@ public interface ScFeign {
26 27
27 @RequestMapping(value = "/sm/kq/getApp",method = RequestMethod.GET) 28 @RequestMapping(value = "/sm/kq/getApp",method = RequestMethod.GET)
28 AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type); 29 AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type);
  30 +
  31 + @RequestMapping(value = "/sm/kq/getCensusKq",method = RequestMethod.GET)
  32 + List<CensusKqDto> getCensusKq(@RequestParam("userId") String userId , @RequestParam("type") int type);
29 } 33 }
cloud/quartz/src/main/java/com/sincere/quartz/job/QDService.java
1 package com.sincere.quartz.job; 1 package com.sincere.quartz.job;
2 2
3 import com.sincere.common.dto.smartCampus.AppDto; 3 import com.sincere.common.dto.smartCampus.AppDto;
  4 +import com.sincere.common.dto.smartCampus.CensusKqDto;
4 import com.sincere.common.dto.smartCampus.KqTeacherDto; 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
5 import com.sincere.common.dto.smartCampus.TemplateDto; 6 import com.sincere.common.dto.smartCampus.TemplateDto;
6 import com.sincere.common.util.DateUtils; 7 import com.sincere.common.util.DateUtils;
  8 +import com.sincere.quartz.enums.KqTypeEnums;
  9 +import com.sincere.quartz.enums.TypeEnums;
7 import com.sincere.quartz.feign.ScFeign; 10 import com.sincere.quartz.feign.ScFeign;
8 import com.sincere.quartz.mapper.SmsMapper; 11 import com.sincere.quartz.mapper.SmsMapper;
9 import com.sincere.quartz.model.DingSms; 12 import com.sincere.quartz.model.DingSms;
@@ -16,6 +19,8 @@ import org.springframework.stereotype.Service; @@ -16,6 +19,8 @@ import org.springframework.stereotype.Service;
16 import java.util.*; 19 import java.util.*;
17 20
18 /** 21 /**
  22 + * 考勤任务推送调用
  23 + * 主要推送盯盯以及企业号
19 * @author chen 24 * @author chen
20 * @version 1.0 25 * @version 1.0
21 * @date 2019/11/27 0027 17:05 26 * @date 2019/11/27 0027 17:05
@@ -47,8 +52,7 @@ public class QDService { @@ -47,8 +52,7 @@ public class QDService {
47 List<String> keyList = new ArrayList<>(); 52 List<String> keyList = new ArrayList<>();
48 for(Map.Entry<String, String> entity : map.entrySet()){ 53 for(Map.Entry<String, String> entity : map.entrySet()){
49 String endTime = entity.getValue().split("_")[1]; 54 String endTime = entity.getValue().split("_")[1];
50 - if(DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")>0  
51 - && DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")<5){ 55 + if(DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")>=2){
52 String key = entity.getKey(); 56 String key = entity.getKey();
53 String[] messageArray = key.split("_"); 57 String[] messageArray = key.split("_");
54 List<KqTeacherDto> list = scFeign.getTeacherList(Integer.valueOf(messageArray[1])); 58 List<KqTeacherDto> list = scFeign.getTeacherList(Integer.valueOf(messageArray[1]));
@@ -81,9 +85,10 @@ public class QDService { @@ -81,9 +85,10 @@ public class QDService {
81 String endTime = msg.substring(msg.indexOf("EndTime")+9,msg.indexOf("EndTime")+14); 85 String endTime = msg.substring(msg.indexOf("EndTime")+9,msg.indexOf("EndTime")+14);
82 String templateId = msg.substring(msg.indexOf("TemplateID")+12,msg.indexOf("TemplateID")+22); 86 String templateId = msg.substring(msg.indexOf("TemplateID")+12,msg.indexOf("TemplateID")+22);
83 String Week = msg.substring(msg.indexOf("Week")+6,msg.indexOf("Week")+19); 87 String Week = msg.substring(msg.indexOf("Week")+6,msg.indexOf("Week")+19);
  88 + String type = msg.substring(msg.indexOf("Type")+6,msg.indexOf("Type")+7);
84 int nowWeek = DateUtils.getWeek() ; 89 int nowWeek = DateUtils.getWeek() ;
85 if(Week.contains(nowWeek+"")){ 90 if(Week.contains(nowWeek+"")){
86 - map.put(templateId+"_"+templateDto.getSchoolId()+"_"+templateDto.getType() , beginTime+"_"+endTime); 91 + map.put(templateId+"_"+templateDto.getSchoolId()+"_"+templateDto.getType() , beginTime+"_"+endTime+"_"+type);
87 } 92 }
88 }catch (Exception e){ 93 }catch (Exception e){
89 e.printStackTrace(); 94 e.printStackTrace();
@@ -94,48 +99,71 @@ public class QDService { @@ -94,48 +99,71 @@ public class QDService {
94 99
95 private void dingPush(List<KqTeacherDto> list , String key){ 100 private void dingPush(List<KqTeacherDto> list , String key){
96 String[] times = key.split("_"); 101 String[] times = key.split("_");
97 - String Date = DateUtils.date2String(new Date(),DateUtils.format1);  
98 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); 102 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
99 AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),1); 103 AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),1);
100 for(KqTeacherDto teacher : list){ 104 for(KqTeacherDto teacher : list){
101 - if(StringUtils.isNotBlank(teacher.getDingUserId())){  
102 - DingSms dingSms = new DingSms();  
103 - dingSms.setTableName("DingSmsNew"+tableSuffix);  
104 - dingSms.setMsg("{\"title\":\"请查看签到信息\",\"form\":[{\"key\":\"开始时间:\",\"value\":\"" +  
105 - Date+" "+times[0]+"\"},{\"key\":\"结束时间:\",\"value\":\""+Date+" "+times[1]+"\"}]}");  
106 - dingSms.setSchoolId(teacher.getSchoolId());  
107 - dingSms.setDingUserId(teacher.getDingUserId());  
108 - dingSms.setAgentId(appDto.getAgentId()); //智能校卫  
109 - String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +  
110 - "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+  
111 - "&data="+teacher.getDingUserId()+"&type=1&stype=4&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+  
112 - "&face=&sourcetype=16&soutype=3&timestamp="+ DateUtils.getDate() ;  
113 - dingSms.setWapUrl(wapUrl);  
114 - smsMapper.insertDing(dingSms); 105 + if(teacher.getName().equals("陈杰") || teacher.getName().equals("沈川")) {
  106 + if(StringUtils.isNotBlank(teacher.getDingUserId())){
  107 + List<CensusKqDto> censusKqDtos = scFeign.getCensusKq(teacher.getUserId(),Integer.valueOf(times[2]));
  108 + String message = "";
  109 + for(CensusKqDto censusKqDto : censusKqDtos){
  110 + int number = censusKqDto.getAllT() - censusKqDto.getKqT() ;
  111 + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人;";
  112 + }
  113 + DingSms dingSms = new DingSms();
  114 + dingSms.setTableName("DingSmsNew"+tableSuffix);
  115 + dingSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+
  116 + "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+
  117 + "签到时间:"+times[0]+"-"+ times[1] +" \n - "+
  118 + "整体数据:" + message.substring(0,message.length()-1));
  119 + dingSms.setSchoolId(teacher.getSchoolId());
  120 + dingSms.setDingUserId(teacher.getDingUserId());
  121 + dingSms.setAgentId(appDto.getAgentId());
  122 + String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +
  123 + "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+
  124 + "&data="+teacher.getDingUserId()+"&type=1&stype=4&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+
  125 + "&face=&sourcetype=16&soutype=3&timestamp="+ DateUtils.getDate() ;
  126 + dingSms.setWapUrl(wapUrl);
  127 + dingSms.setTdType(TypeEnums.kaoqing.getType());
  128 + smsMapper.insertDing(dingSms);
  129 + }
115 } 130 }
116 } 131 }
117 } 132 }
118 133
119 private void weChatPush(List<KqTeacherDto> list , String key){ 134 private void weChatPush(List<KqTeacherDto> list , String key){
  135 + String[] times = key.split("_");
120 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); 136 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
121 AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),0); 137 AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),0);
122 for(KqTeacherDto teacher : list){ 138 for(KqTeacherDto teacher : list){
123 - if(StringUtils.isNotBlank(teacher.getxSTOpenId())){  
124 - WeChatSms weChatSms = new WeChatSms();  
125 - weChatSms.setTableName("qyhSmsNew"+tableSuffix);  
126 - weChatSms.setSchoolId(teacher.getSchoolId());  
127 - weChatSms.setName(teacher.getName());  
128 - weChatSms.setxSTOpenId(teacher.getxSTOpenId());  
129 - weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId());  
130 - weChatSms.setReceiveUserId(teacher.getUserId());  
131 - weChatSms.setAppId(appDto.getAgentId());  
132 - weChatSms.setSecret(appDto.getAgentSecret());  
133 - String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +  
134 - "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+  
135 - "&data="+teacher.getWeChatUserId()+"&type=1&stype=3&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+  
136 - "&face="+ teacher.getFace() +"&sourcetype=16&soutype=2&timestamp="+ DateUtils.getDate() ;  
137 - weChatSms.setMsgUrl(msgUrl);  
138 - smsMapper.insertWeChat(weChatSms); 139 + if(teacher.getName().equals("陶汉栋") || teacher.getName().equals("沈川")) {
  140 + if (StringUtils.isNotBlank(teacher.getOpenId())) {
  141 + List<CensusKqDto> censusKqDtos = scFeign.getCensusKq(teacher.getUserId(),Integer.valueOf(times[2]));
  142 + String message = "";
  143 + for(CensusKqDto censusKqDto : censusKqDtos){
  144 + int number = censusKqDto.getAllT() - censusKqDto.getKqT() ;
  145 + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人;";
  146 + }
  147 + WeChatSms weChatSms = new WeChatSms();
  148 + weChatSms.setTableName("qyhSmsNew" + tableSuffix);
  149 + weChatSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+
  150 + "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+
  151 + "签到时间:"+times[0]+"-"+ times[1] +" \n - "+
  152 + "整体数据:" + message.substring(0,message.length()-1));
  153 + weChatSms.setSchoolId(teacher.getSchoolId());
  154 + weChatSms.setName(teacher.getName());
  155 + weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId());
  156 + weChatSms.setReceiveUserId(teacher.getUserId());
  157 + weChatSms.setAppId(appDto.getAgentId());
  158 + weChatSms.setSecret(appDto.getAgentSecret());
  159 + String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +
  160 + "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() +
  161 + "&data=" + teacher.getWeChatUserId() + "&type=1&stype=3&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() +
  162 + "&face=" + teacher.getFace() + "&sourcetype=16&soutype=2&timestamp=" + DateUtils.getDate();
  163 + weChatSms.setMsgUrl(msgUrl);
  164 + weChatSms.setTdType(TypeEnums.kaoqing.getType());
  165 + smsMapper.insertWeChat(weChatSms);
  166 + }
139 } 167 }
140 } 168 }
141 } 169 }
cloud/quartz/src/main/java/com/sincere/quartz/model/DingSms.java
@@ -13,6 +13,7 @@ public class DingSms { @@ -13,6 +13,7 @@ public class DingSms {
13 private String dingUserId ; 13 private String dingUserId ;
14 private String wapUrl ; 14 private String wapUrl ;
15 private String agentId ; 15 private String agentId ;
  16 + private int tdType ;
16 17
17 public String getTableName() { 18 public String getTableName() {
18 return tableName; 19 return tableName;
@@ -61,4 +62,12 @@ public class DingSms { @@ -61,4 +62,12 @@ public class DingSms {
61 public void setAgentId(String agentId) { 62 public void setAgentId(String agentId) {
62 this.agentId = agentId; 63 this.agentId = agentId;
63 } 64 }
  65 +
  66 + public int getTdType() {
  67 + return tdType;
  68 + }
  69 +
  70 + public void setTdType(int tdType) {
  71 + this.tdType = tdType;
  72 + }
64 } 73 }
cloud/quartz/src/main/java/com/sincere/quartz/model/WeChatSms.java
@@ -14,9 +14,10 @@ public class WeChatSms { @@ -14,9 +14,10 @@ public class WeChatSms {
14 private int schoolId ; 14 private int schoolId ;
15 private String msgUrl ; 15 private String msgUrl ;
16 private String name ; 16 private String name ;
17 - private String xSTOpenId ;  
18 private String appId ; 17 private String appId ;
19 private String secret ; 18 private String secret ;
  19 + private int tdType ;
  20 + private String msg ;
20 21
21 22
22 public String getAppId() { 23 public String getAppId() {
@@ -83,11 +84,19 @@ public class WeChatSms { @@ -83,11 +84,19 @@ public class WeChatSms {
83 this.name = name; 84 this.name = name;
84 } 85 }
85 86
86 - public String getxSTOpenId() {  
87 - return xSTOpenId; 87 + public int getTdType() {
  88 + return tdType;
88 } 89 }
89 90
90 - public void setxSTOpenId(String xSTOpenId) {  
91 - this.xSTOpenId = xSTOpenId; 91 + public void setTdType(int tdType) {
  92 + this.tdType = tdType;
  93 + }
  94 +
  95 + public String getMsg() {
  96 + return msg;
  97 + }
  98 +
  99 + public void setMsg(String msg) {
  100 + this.msg = msg;
92 } 101 }
93 } 102 }
cloud/quartz/src/main/resources/mapper/SmsMapper.xml
@@ -3,12 +3,12 @@ @@ -3,12 +3,12 @@
3 <mapper namespace="com.sincere.quartz.mapper.SmsMapper"> 3 <mapper namespace="com.sincere.quartz.mapper.SmsMapper">
4 4
5 <insert id="insertDing" parameterType="com.sincere.quartz.model.DingSms"> 5 <insert id="insertDing" parameterType="com.sincere.quartz.model.DingSms">
6 - insert into ${tableName} (Msg,SchoolID,Type,Status,intime,sendtime,DingUserId,WapUrl,agentid)  
7 - values (#{msg},#{schoolId},2,0,GETDATE(),GETDATE(),#{dingUserId},#{wapUrl},#{agentId}) 6 + insert into ${tableName} (Msg,MsgID,SchoolID,Type,Status,intime,sendtime,DingUserId,WapUrl,agentid,tdtype)
  7 + values (#{msg},-1,#{schoolId},1,0,GETDATE(),GETDATE(),#{dingUserId},#{wapUrl},#{agentId},#{tdType})
8 </insert> 8 </insert>
9 9
10 <insert id="insertWeChat" parameterType="com.sincere.quartz.model.WeChatSms"> 10 <insert id="insertWeChat" parameterType="com.sincere.quartz.model.WeChatSms">
11 - insert into ${tableName} (SchoolID,WapUrl,Status,intime,sendTime,SendUserName,ReceiveUserID,QiYeHaoUserId,AppID,Secret)  
12 - values (#{schoolId},#{msgUrl},0,GETDATE(),GETDATE(),#{name},#{receiveUserId},#{qiYeHaoUserId},#{appId},#{secret}) 11 + insert into ${tableName} (SchoolID,MsgID,Guid,WapUrl,Status,intime,sendTime,SendUserName,ReceiveUserID,QiYeHaoUserId,AppID,Secret,tdtype)
  12 + values (#{schoolId},-1,#{msg},#{msgUrl},0,GETDATE(),GETDATE(),'智能校卫',#{receiveUserId},#{qiYeHaoUserId},#{appId},#{secret},#{tdType})
13 </insert> 13 </insert>
14 </mapper> 14 </mapper>
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/KqController.java
1 package com.sincere.smartSearch.controller; 1 package com.sincere.smartSearch.controller;
2 2
3 import com.sincere.common.dto.smartCampus.AppDto; 3 import com.sincere.common.dto.smartCampus.AppDto;
  4 +import com.sincere.common.dto.smartCampus.CensusKqDto;
4 import com.sincere.common.dto.smartCampus.KqTeacherDto; 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
5 import com.sincere.common.dto.smartCampus.TemplateDto; 6 import com.sincere.common.dto.smartCampus.TemplateDto;
  7 +import com.sincere.common.util.DateUtils;
6 import com.sincere.smartSearch.model.KqTemplate; 8 import com.sincere.smartSearch.model.KqTemplate;
7 import com.sincere.smartSearch.service.KqService; 9 import com.sincere.smartSearch.service.KqService;
8 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,10 +13,7 @@ import org.springframework.web.bind.annotation.RequestMethod; @@ -11,10 +13,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
11 import org.springframework.web.bind.annotation.RequestParam; 13 import org.springframework.web.bind.annotation.RequestParam;
12 import org.springframework.web.bind.annotation.RestController; 14 import org.springframework.web.bind.annotation.RestController;
13 15
14 -import java.util.ArrayList;  
15 -import java.util.HashMap;  
16 -import java.util.List;  
17 -import java.util.Map; 16 +import java.util.*;
18 17
19 /** 18 /**
20 * @author chen 19 * @author chen
@@ -55,4 +54,14 @@ public class KqController { @@ -55,4 +54,14 @@ public class KqController {
55 map.put("type",type); 54 map.put("type",type);
56 return kqService.selectApp(map); 55 return kqService.selectApp(map);
57 } 56 }
  57 +
  58 + @RequestMapping(value = "getCensusKq",method = RequestMethod.GET)
  59 + public List<CensusKqDto> getCensusKq(@RequestParam("userId") String userId , @RequestParam("type") int type){
  60 + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
  61 + Map<String,String> map = new HashMap<>();
  62 + map.put("userId",userId);
  63 + map.put("tableName","SZ_AttendanceRecords"+tableSuffix);
  64 + map.put("type",type+"");
  65 + return kqService.selectCensusKq(map);
  66 + }
58 } 67 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/KqTemplateMapper.java
1 package com.sincere.smartSearch.mapper; 1 package com.sincere.smartSearch.mapper;
2 2
3 import com.sincere.common.dto.smartCampus.AppDto; 3 import com.sincere.common.dto.smartCampus.AppDto;
  4 +import com.sincere.common.dto.smartCampus.CensusKqDto;
4 import com.sincere.common.dto.smartCampus.KqTeacherDto; 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
5 import com.sincere.smartSearch.model.KqTemplate; 6 import com.sincere.smartSearch.model.KqTemplate;
6 7
@@ -19,4 +20,6 @@ public interface KqTemplateMapper { @@ -19,4 +20,6 @@ public interface KqTemplateMapper {
19 List<KqTeacherDto> selectSchoolTeacher(int schoolId); 20 List<KqTeacherDto> selectSchoolTeacher(int schoolId);
20 21
21 AppDto selectApp(Map<String,Integer> map); 22 AppDto selectApp(Map<String,Integer> map);
  23 +
  24 + List<CensusKqDto> selectCensusKq(Map<String ,String> map);
22 } 25 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/KqService.java
1 package com.sincere.smartSearch.service; 1 package com.sincere.smartSearch.service;
2 2
3 import com.sincere.common.dto.smartCampus.AppDto; 3 import com.sincere.common.dto.smartCampus.AppDto;
  4 +import com.sincere.common.dto.smartCampus.CensusKqDto;
4 import com.sincere.common.dto.smartCampus.KqTeacherDto; 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
5 import com.sincere.smartSearch.model.KqTemplate; 6 import com.sincere.smartSearch.model.KqTemplate;
6 7
@@ -19,4 +20,6 @@ public interface KqService { @@ -19,4 +20,6 @@ public interface KqService {
19 List<KqTeacherDto> selectSchoolTeacher(int schoolId); 20 List<KqTeacherDto> selectSchoolTeacher(int schoolId);
20 21
21 AppDto selectApp(Map<String,Integer> map); 22 AppDto selectApp(Map<String,Integer> map);
  23 +
  24 + List<CensusKqDto> selectCensusKq(Map<String ,String> map);
22 } 25 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/KqServiceImpl.java
1 package com.sincere.smartSearch.service.impl; 1 package com.sincere.smartSearch.service.impl;
2 2
3 import com.sincere.common.dto.smartCampus.AppDto; 3 import com.sincere.common.dto.smartCampus.AppDto;
  4 +import com.sincere.common.dto.smartCampus.CensusKqDto;
4 import com.sincere.common.dto.smartCampus.KqTeacherDto; 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
5 import com.sincere.smartSearch.mapper.KqTemplateMapper; 6 import com.sincere.smartSearch.mapper.KqTemplateMapper;
6 import com.sincere.smartSearch.model.KqTemplate; 7 import com.sincere.smartSearch.model.KqTemplate;
@@ -36,4 +37,9 @@ public class KqServiceImpl implements KqService { @@ -36,4 +37,9 @@ public class KqServiceImpl implements KqService {
36 public AppDto selectApp(Map<String, Integer> map) { 37 public AppDto selectApp(Map<String, Integer> map) {
37 return kqTemplateMapper.selectApp(map); 38 return kqTemplateMapper.selectApp(map);
38 } 39 }
  40 +
  41 + @Override
  42 + public List<CensusKqDto> selectCensusKq(Map<String, String> map) {
  43 + return kqTemplateMapper.selectCensusKq(map);
  44 + }
39 } 45 }
cloud/search_smartCampus/src/main/resources/application.yml
@@ -11,7 +11,6 @@ spring: @@ -11,7 +11,6 @@ spring:
11 ##mybatis 11 ##mybatis
12 mybatis: 12 mybatis:
13 mapper-locations: classpath:mapper/*.xml 13 mapper-locations: classpath:mapper/*.xml
14 -# type-aliases-package: com.sincere.smartSearch.model  
15 type-aliases-package: com.sincere.smartSearch.mapper 14 type-aliases-package: com.sincere.smartSearch.mapper
16 check-config-location: true 15 check-config-location: true
17 16
cloud/search_smartCampus/src/main/resources/logback.xml
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <configuration debug="true"> 2 <configuration debug="true">
3     <!-- 项目名称 --> 3     <!-- 项目名称 -->
4 -     <property name="PROJECT_NAME" value="schedule" /> 4 +     <property name="PROJECT_NAME" value="search_smartCampus" />
5 5
6     <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> 6     <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
7 - <!--    <property name="LOG_HOME" value="/opt/web/log/" />-->  
8 - <property name="LOG_HOME" value="C://smartCampus_java//log"/> 7 + <property name="LOG_HOME" value="C://log"/>
9 8
10     <!-- 控制台输出 --> 9     <!-- 控制台输出 -->
11     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 10     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
@@ -22,7 +21,7 @@ @@ -22,7 +21,7 @@
22         <!-- 过滤器,只打印ERROR级别的日志 --> 21         <!-- 过滤器,只打印ERROR级别的日志 -->
23         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 22         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
24             <!--日志文件输出的文件名--> 23             <!--日志文件输出的文件名-->
25 -             <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.system-dev.%d{yyyy-MM-dd HH}.%i.log</FileNamePattern> 24 +             <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}/%d{yyyy-MM-dd HH}.%i.log</FileNamePattern>
26             <!--日志文件保留天数--> 25             <!--日志文件保留天数-->
27             <MaxHistory>30</MaxHistory> 26             <MaxHistory>30</MaxHistory>
28             <!--日志文件最大的大小--> 27             <!--日志文件最大的大小-->
cloud/search_smartCampus/src/main/resources/mapper/KqTemplateMapper.xml
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 <select id="selectKqTemplate" resultMap="TemplateMap"> 11 <select id="selectKqTemplate" resultMap="TemplateMap">
12 select XA_KqTemplate.config , XA_KqTemplate.SchoolId ,SZ_School.MsgTypes as type from XA_KqTemplate 12 select XA_KqTemplate.config , XA_KqTemplate.SchoolId ,SZ_School.MsgTypes as type from XA_KqTemplate
13 join SZ_School on XA_KqTemplate.SchoolId = SZ_School.school_id 13 join SZ_School on XA_KqTemplate.SchoolId = SZ_School.school_id
14 - where XA_KqTemplate.State = 1 and XA_KqTemplate.ScenceType = 0 14 + where XA_KqTemplate.State = 1 and XA_KqTemplate.ScenceType = 0 and XA_KqTemplate.TType = 1
15 and (SZ_School.MsgTypes like '%4%' or SZ_School.MsgTypes like '%5%') 15 and (SZ_School.MsgTypes like '%4%' or SZ_School.MsgTypes like '%5%')
16 </select> 16 </select>
17 17
@@ -23,14 +23,16 @@ @@ -23,14 +23,16 @@
23 <result column="pass" property="pass"/> 23 <result column="pass" property="pass"/>
24 <result column="DingUserId" property="dingUserId"/> 24 <result column="DingUserId" property="dingUserId"/>
25 <result column="QiYeHaoUserId" property="weChatUserId"/> 25 <result column="QiYeHaoUserId" property="weChatUserId"/>
26 - <result column="XSTOpenId" property="xSTOpenId"/> 26 + <result column="OpenId" property="openId"/>
27 <result column="face" property="face"/> 27 <result column="face" property="face"/>
28 </resultMap> 28 </resultMap>
29 <select id="selectSchoolTeacher" parameterType="java.lang.Integer" resultMap="TeacherMap"> 29 <select id="selectSchoolTeacher" parameterType="java.lang.Integer" resultMap="TeacherMap">
30 - select SZ_User.user_id , SZ_UserRole.school_id , SZ_User.name , SZ_User.mobile , SZ_User.pass ,  
31 - SZ_User.DingUserId , SZ_User.QiYeHaoUserId , SZ_User.XSTOpenId ,SZ_User.face  
32 - from SZ_User join SZ_UserRole on SZ_User.user_id = SZ_UserRole.user_id  
33 - where SZ_UserRole.school_id = #{schoolId} and SZ_UserRole.usertype = 0 30 + select distinct a.user_id,a.school_id,a.name,a.mobile,a.face,a.pass, a.OpenId,a.QiYeHaoUserId,a.DingUserId
  31 + from SZ_V_School_Teacher a
  32 + inner join SZ_Class b on a.class_id=b.class_id and b.state=1 and b.is_finish=0
  33 + join SZ_UserRole on a.user_id = SZ_UserRole.user_id
  34 + and a.school_id=#{schoolId}
  35 + where a.role_state=1 and SZ_UserRole.userType = 0
34 </select> 36 </select>
35 37
36 <resultMap id="AppMap" type="com.sincere.common.dto.smartCampus.AppDto"> 38 <resultMap id="AppMap" type="com.sincere.common.dto.smartCampus.AppDto">
@@ -41,4 +43,20 @@ @@ -41,4 +43,20 @@
41 select AgentId,AgentSecret from EM_QYHApply where SchoolId=#{schoolId} and type= #{type} 43 select AgentId,AgentSecret from EM_QYHApply where SchoolId=#{schoolId} and type= #{type}
42 and ApplyName = '智能校卫' 44 and ApplyName = '智能校卫'
43 </select> 45 </select>
  46 +
  47 + <resultMap id="KqMap" type="com.sincere.common.dto.smartCampus.CensusKqDto">
  48 + <result column="class_name" property="className"/>
  49 + <result column="allT" property="allT"/>
  50 + <result column="kqT" property="kqT"/>
  51 + </resultMap>
  52 + <select id="selectCensusKq" parameterType="java.util.Map" resultMap="KqMap">
  53 + select distinct b.class_name,
  54 + (select count(distinct user_id) from SZ_V_School_Student x where c.class_id=x.class_id) as allT,
  55 + (select count(distinct customerid) from dblan27.xiaoanhxy.dbo.${tableName} y
  56 + where convert(varchar(10),y.intime,120)=convert(varchar(10),getdate(),120) and y.class_id=c.class_id and y.card_type=#{type}) as kqT
  57 + from sz_userrole c
  58 + inner join SZ_Class b on c.class_id=b.class_id and b.state=1 and b.is_finish=0
  59 + inner join SZ_V_School_Teacher a on a.user_id=c.user_id and c.usertype=0
  60 + where a.role_state=1 and a.user_id=#{userId}
  61 + </select>
44 </mapper> 62 </mapper>