Commit 46eaf1b0e0eed7790365402f0690102e5935b4be

Authored by 陶汉栋
2 parents 9d70d292 3560cf47
Exists in master

Merge branch 'master' of http://git.shunzhi.net/taohd/mycloud

cloud/common/src/main/java/com/sincere/common/dto/smartCampus/CensusKqDto.java
@@ -6,9 +6,19 @@ package com.sincere.common.dto.smartCampus; @@ -6,9 +6,19 @@ package com.sincere.common.dto.smartCampus;
6 * @date 2019/11/29 0029 14:27 6 * @date 2019/11/29 0029 14:27
7 */ 7 */
8 public class CensusKqDto { 8 public class CensusKqDto {
  9 + private int classId ;
9 private String className ; 10 private String className ;
10 private int allT ; 11 private int allT ;
11 private int kqT ; 12 private int kqT ;
  13 + private int qjT ;
  14 +
  15 + public int getClassId() {
  16 + return classId;
  17 + }
  18 +
  19 + public void setClassId(int classId) {
  20 + this.classId = classId;
  21 + }
12 22
13 public String getClassName() { 23 public String getClassName() {
14 return className; 24 return className;
@@ -33,4 +43,12 @@ public class CensusKqDto { @@ -33,4 +43,12 @@ public class CensusKqDto {
33 public void setKqT(int kqT) { 43 public void setKqT(int kqT) {
34 this.kqT = kqT; 44 this.kqT = kqT;
35 } 45 }
  46 +
  47 + public int getQjT() {
  48 + return qjT;
  49 + }
  50 +
  51 + public void setQjT(int qjT) {
  52 + this.qjT = qjT;
  53 + }
36 } 54 }
cloud/common/src/main/java/com/sincere/common/dto/smartCampus/KqDto.java 0 → 100644
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
  1 +package com.sincere.common.dto.smartCampus;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/12/5 0005 11:01
  7 + */
  8 +public class KqDto {
  9 + private String userId ;
  10 + private String type ;
  11 + private String templateId ;
  12 + private String endTime ;
  13 +
  14 +
  15 + public String getUserId() {
  16 + return userId;
  17 + }
  18 +
  19 + public void setUserId(String userId) {
  20 + this.userId = userId;
  21 + }
  22 +
  23 + public String getType() {
  24 + return type;
  25 + }
  26 +
  27 + public void setType(String type) {
  28 + this.type = type;
  29 + }
  30 +
  31 + public String getTemplateId() {
  32 + return templateId;
  33 + }
  34 +
  35 + public void setTemplateId(String templateId) {
  36 + this.templateId = templateId;
  37 + }
  38 +
  39 + public String getEndTime() {
  40 + return endTime;
  41 + }
  42 +
  43 + public void setEndTime(String endTime) {
  44 + this.endTime = endTime;
  45 + }
  46 +}
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;  
4 -import com.sincere.common.dto.smartCampus.CensusKqDto;  
5 -import com.sincere.common.dto.smartCampus.KqTeacherDto;  
6 -import com.sincere.common.dto.smartCampus.TemplateDto; 3 +import com.sincere.common.dto.smartCampus.*;
7 import org.springframework.cloud.openfeign.FeignClient; 4 import org.springframework.cloud.openfeign.FeignClient;
  5 +import org.springframework.web.bind.annotation.RequestBody;
8 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.RequestMapping;
9 import org.springframework.web.bind.annotation.RequestMethod; 7 import org.springframework.web.bind.annotation.RequestMethod;
10 import org.springframework.web.bind.annotation.RequestParam; 8 import org.springframework.web.bind.annotation.RequestParam;
@@ -25,9 +23,15 @@ public interface ScFeign { @@ -25,9 +23,15 @@ public interface ScFeign {
25 @RequestMapping(value = "/sm/kq/getTeacherList",method = RequestMethod.GET) 23 @RequestMapping(value = "/sm/kq/getTeacherList",method = RequestMethod.GET)
26 List<KqTeacherDto> getTeacherList(@RequestParam("schoolId")int schoolId); 24 List<KqTeacherDto> getTeacherList(@RequestParam("schoolId")int schoolId);
27 25
  26 + @RequestMapping(value = "/sm/kq/selectChamberTeacher",method = RequestMethod.GET)
  27 + List<KqTeacherDto> selectChamberTeacher(@RequestParam("schoolId")int schoolId);
  28 +
28 @RequestMapping(value = "/sm/kq/getApp",method = RequestMethod.GET) 29 @RequestMapping(value = "/sm/kq/getApp",method = RequestMethod.GET)
29 AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type); 30 AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type);
30 31
31 - @RequestMapping(value = "/sm/kq/getCensusKq",method = RequestMethod.GET)  
32 - List<CensusKqDto> getCensusKq(@RequestParam("userId") String userId , @RequestParam("type") int type); 32 + @RequestMapping(value = "/sm/kq/getCensusKq",method = RequestMethod.POST)
  33 + List<CensusKqDto> getCensusKq(@RequestBody KqDto kqDto);
  34 +
  35 + @RequestMapping(value = "/sm/kq/selectCensusChamberKq",method = RequestMethod.POST)
  36 + List<CensusKqDto> selectCensusChamberKq(@RequestBody KqDto kqDto);
33 } 37 }
cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java
1 package com.sincere.quartz.job; 1 package com.sincere.quartz.job;
2 2
3 -import com.sincere.common.dto.smartCampus.AppDto;  
4 -import com.sincere.common.dto.smartCampus.CensusKqDto;  
5 -import com.sincere.common.dto.smartCampus.KqTeacherDto;  
6 -import com.sincere.common.dto.smartCampus.TemplateDto; 3 +import com.sincere.common.dto.smartCampus.*;
7 import com.sincere.common.util.DateUtils; 4 import com.sincere.common.util.DateUtils;
8 import com.sincere.quartz.enums.KqTypeEnums; 5 import com.sincere.quartz.enums.KqTypeEnums;
9 import com.sincere.quartz.enums.TypeEnums; 6 import com.sincere.quartz.enums.TypeEnums;
@@ -57,17 +54,16 @@ public class KQJob { @@ -57,17 +54,16 @@ public class KQJob {
57 for(Map.Entry<String, String> entity : map.entrySet()){ 54 for(Map.Entry<String, String> entity : map.entrySet()){
58 String endTime = entity.getValue().split("_")[1]; 55 String endTime = entity.getValue().split("_")[1];
59 if(DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")>=2 56 if(DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")>=2
60 - && DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")<5){ 57 + && DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m") < 5){
61 String key = entity.getKey(); 58 String key = entity.getKey();
62 String[] messageArray = key.split("_"); 59 String[] messageArray = key.split("_");
63 - List<KqTeacherDto> list = scFeign.getTeacherList(Integer.valueOf(messageArray[1]));  
64 if(messageArray[2].contains("5")){ 60 if(messageArray[2].contains("5")){
65 logger.info("企业号推送:" + messageArray[0] + "__" + messageArray[1]); 61 logger.info("企业号推送:" + messageArray[0] + "__" + messageArray[1]);
66 - weChatPush(list,entity.getValue()); 62 + weChatBatchPush(messageArray[0],Integer.valueOf(messageArray[1]),entity.getValue());
67 } 63 }
68 if(messageArray[2].contains("4")){ 64 if(messageArray[2].contains("4")){
69 logger.info(("盯盯推送:" + messageArray[0] + "__" + messageArray[1])); 65 logger.info(("盯盯推送:" + messageArray[0] + "__" + messageArray[1]));
70 - dingPush(list,entity.getValue()); 66 + dingBatchPush(messageArray[0],Integer.valueOf(messageArray[1]),entity.getValue());
71 } 67 }
72 keyList.add(key); 68 keyList.add(key);
73 } 69 }
@@ -95,7 +91,7 @@ public class KQJob { @@ -95,7 +91,7 @@ public class KQJob {
95 type = type.replace("\"",""); 91 type = type.replace("\"","");
96 int nowWeek = DateUtils.getWeek() ; 92 int nowWeek = DateUtils.getWeek() ;
97 if(Week.contains(nowWeek+"")){ 93 if(Week.contains(nowWeek+"")){
98 - logger.info((templateId+"_"+templateDto.getSchoolId()+templateDto.getType()+"------"+beginTime+"_"+endTime)); 94 + logger.info((templateId+"_"+templateDto.getSchoolId()+"_"+templateDto.getType()+"------"+beginTime+"_"+endTime));
99 map.put(templateId+"_"+templateDto.getSchoolId()+"_"+templateDto.getType() , beginTime+"_"+endTime+"_"+type); 95 map.put(templateId+"_"+templateDto.getSchoolId()+"_"+templateDto.getType() , beginTime+"_"+endTime+"_"+type);
100 } 96 }
101 }catch (Exception e){ 97 }catch (Exception e){
@@ -105,59 +101,159 @@ public class KQJob { @@ -105,59 +101,159 @@ public class KQJob {
105 } 101 }
106 } 102 }
107 103
108 - private void dingPush(List<KqTeacherDto> list , String key){ 104 + private void dingBatchPush(String templateId , int schoolId , String key){
  105 + String[] times = key.split("_");
  106 + AppDto appDto = scFeign.getApp(schoolId,1);
  107 + if(Integer.valueOf(times[2]) < 7){
  108 + //出入校 推班主任
  109 + List<KqTeacherDto> list = scFeign.getTeacherList(schoolId);
  110 + for(KqTeacherDto teacher : list){
  111 + logger.info("盯盯推送班主任—————" + templateId + "--------" + teacher.getName());
  112 + dingSchoolPush(templateId,teacher,key,appDto);
  113 + }
  114 + }else {
  115 + //出入寝 推班主任
  116 + List<KqTeacherDto> list = scFeign.getTeacherList(schoolId);
  117 + for(KqTeacherDto teacher : list){
  118 + logger.info("盯盯推送班主任—————" + templateId + "--------" + teacher.getName());
  119 + dingSchoolPush(templateId,teacher, key, appDto);
  120 + }
  121 + //推宿管
  122 + List<KqTeacherDto> chamberList = scFeign.selectChamberTeacher(schoolId);
  123 + for(KqTeacherDto teacher : chamberList){
  124 + logger.info("盯盯推送宿管—————" + templateId + "--------" + teacher.getName());
  125 + dingChamberPush(templateId,teacher, key, appDto);
  126 + }
  127 + }
  128 + }
  129 +
  130 + private void weChatBatchPush(String templateId , int schoolId , String key){
  131 + String[] times = key.split("_");
  132 + AppDto appDto = scFeign.getApp(schoolId, 0);
  133 + if(Integer.valueOf(times[2]) < 7) {
  134 + //出入校 推班主任
  135 + List<KqTeacherDto> list = scFeign.getTeacherList(schoolId);
  136 + for (KqTeacherDto teacher : list) {
  137 + logger.info("企业号推送班主任—————" + templateId + "--------" + teacher.getName());
  138 + weChatSchoolPush(templateId,teacher, key, appDto);
  139 + }
  140 + }else {
  141 + //出入寝 推班主任
  142 + List<KqTeacherDto> list = scFeign.getTeacherList(schoolId);
  143 + for (KqTeacherDto teacher : list) {
  144 + logger.info("企业号推送班主任—————" + templateId + "--------" + teacher.getName());
  145 + weChatSchoolPush(templateId,teacher, key, appDto);
  146 + }
  147 + //推宿管
  148 + List<KqTeacherDto> chamberList = scFeign.selectChamberTeacher(schoolId);
  149 + for(KqTeacherDto teacher : chamberList){
  150 + logger.info("企业号推送宿管—————" + templateId + "--------" + teacher.getName());
  151 + weChatChamberPush(templateId,teacher, key, appDto);
  152 + }
  153 + }
  154 + }
  155 +
  156 + private void dingSchoolPush(String templateId ,KqTeacherDto teacher , String key , AppDto appDto){
109 String[] times = key.split("_"); 157 String[] times = key.split("_");
110 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); 158 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
111 - AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),1);  
112 - for(KqTeacherDto teacher : list){  
113 - if(StringUtils.isNotBlank(teacher.getDingUserId())){  
114 - List<CensusKqDto> censusKqDtos = scFeign.getCensusKq(teacher.getUserId(),Integer.valueOf(times[2])); 159 + if(StringUtils.isNotBlank(teacher.getDingUserId())){
  160 + KqDto dto = new KqDto();
  161 + dto.setEndTime(times[1]);
  162 + dto.setTemplateId(templateId);
  163 + dto.setType(times[2]);
  164 + dto.setUserId(teacher.getUserId());
  165 + List<CensusKqDto> censusKqDtos = scFeign.getCensusKq(dto);
  166 + if(censusKqDtos != null &&censusKqDtos.size() > 0){
115 String message = ""; 167 String message = "";
116 for(CensusKqDto censusKqDto : censusKqDtos){ 168 for(CensusKqDto censusKqDto : censusKqDtos){
117 - int number = censusKqDto.getAllT() - censusKqDto.getKqT() ;  
118 - message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人;"; 169 + int number = censusKqDto.getAllT() - censusKqDto.getKqT()-censusKqDto.getQjT() ;
  170 + number = number < 0?0:number ;
  171 + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人,请假"+censusKqDto.getQjT()+"人;";
119 } 172 }
120 DingSms dingSms = new DingSms(); 173 DingSms dingSms = new DingSms();
121 dingSms.setName(teacher.getName()); 174 dingSms.setName(teacher.getName());
122 dingSms.setTableName("DingSmsNew"+tableSuffix); 175 dingSms.setTableName("DingSmsNew"+tableSuffix);
123 dingSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+ 176 dingSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+
124 - "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+  
125 - "签到时间:"+times[0]+"-"+ times[1] +" \n - "+  
126 - "整体数据:" + message.substring(0,message.length()-1)); 177 + "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+
  178 + "签到时间:"+times[0]+"-"+ times[1] +" \n - "+
  179 + "整体数据:" + message);
  180 + String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +
  181 + "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+ "&TemplateId=" + templateId+
  182 + "&data="+teacher.getDingUserId()+"&type=1&stype=4&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+
  183 + "&face=&sourcetype=16&soutype=3&timestamp="+ DateUtils.getDate()+"&time="+DateUtils.date2String(new Date(),DateUtils.format1) ;
127 dingSms.setSchoolId(teacher.getSchoolId()); 184 dingSms.setSchoolId(teacher.getSchoolId());
128 dingSms.setDingUserId(teacher.getDingUserId()); 185 dingSms.setDingUserId(teacher.getDingUserId());
129 dingSms.setAgentId(appDto.getAgentId()); 186 dingSms.setAgentId(appDto.getAgentId());
130 - String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +  
131 - "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+  
132 - "&data="+teacher.getDingUserId()+"&type=1&stype=4&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+  
133 - "&face=&sourcetype=16&soutype=3&timestamp="+ DateUtils.getDate() ;  
134 dingSms.setWapUrl(wapUrl); 187 dingSms.setWapUrl(wapUrl);
135 dingSms.setReceiveUserId(teacher.getUserId()); 188 dingSms.setReceiveUserId(teacher.getUserId());
136 dingSms.setTdType(TypeEnums.kaoqing.getType()); 189 dingSms.setTdType(TypeEnums.kaoqing.getType());
137 smsMapper.insertDing(dingSms); 190 smsMapper.insertDing(dingSms);
138 } 191 }
139 -  
140 } 192 }
141 } 193 }
142 194
143 - private void weChatPush(List<KqTeacherDto> list , String key){ 195 + private void dingChamberPush(String templateId, KqTeacherDto teacher , String key , AppDto appDto){
144 String[] times = key.split("_"); 196 String[] times = key.split("_");
145 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); 197 String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
146 - AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),0);  
147 - for(KqTeacherDto teacher : list){  
148 - if (StringUtils.isNotBlank(teacher.getOpenId())) {  
149 - List<CensusKqDto> censusKqDtos = scFeign.getCensusKq(teacher.getUserId(),Integer.valueOf(times[2])); 198 + if(StringUtils.isNotBlank(teacher.getDingUserId())){
  199 + List<CensusKqDto> censusKqDtos ;
  200 + KqDto dto = new KqDto();
  201 + dto.setEndTime(times[1]);
  202 + dto.setTemplateId(templateId);
  203 + dto.setType(times[2]);
  204 + dto.setUserId(teacher.getUserId());
  205 + censusKqDtos = scFeign.selectCensusChamberKq(dto);
  206 + if(censusKqDtos != null &&censusKqDtos.size() > 0){
150 String message = ""; 207 String message = "";
151 for(CensusKqDto censusKqDto : censusKqDtos){ 208 for(CensusKqDto censusKqDto : censusKqDtos){
152 - int number = censusKqDto.getAllT() - censusKqDto.getKqT() ;  
153 - message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人;"; 209 + int number = censusKqDto.getAllT() - censusKqDto.getKqT()-censusKqDto.getQjT() ;
  210 + number = number < 0?0:number ;
  211 + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人,请假"+censusKqDto.getQjT()+"人;";
154 } 212 }
155 - WeChatSms weChatSms = new WeChatSms();  
156 - weChatSms.setTableName("qyhSmsNew" + tableSuffix);  
157 - weChatSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+ 213 + DingSms dingSms = new DingSms();
  214 + dingSms.setName(teacher.getName());
  215 + dingSms.setTableName("DingSmsNew"+tableSuffix);
  216 + dingSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+
158 "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+ 217 "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+
159 "签到时间:"+times[0]+"-"+ times[1] +" \n - "+ 218 "签到时间:"+times[0]+"-"+ times[1] +" \n - "+
160 - "整体数据:" + message.substring(0,message.length()-1)); 219 + "整体数据:" + message);
  220 + String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +
  221 + "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() +"&TemplateId=" + templateId+
  222 + "&pass=" + teacher.getPass() + "&type=4&soutype=3&time="+DateUtils.date2String(new Date(),DateUtils.format1);
  223 + dingSms.setSchoolId(teacher.getSchoolId());
  224 + dingSms.setDingUserId(teacher.getDingUserId());
  225 + dingSms.setAgentId(appDto.getAgentId());
  226 + dingSms.setWapUrl(msgUrl);
  227 + dingSms.setReceiveUserId(teacher.getUserId());
  228 + dingSms.setTdType(TypeEnums.kaoqing.getType());
  229 + smsMapper.insertDing(dingSms);
  230 + }
  231 + }
  232 + }
  233 +
  234 + private void weChatSchoolPush(String templateId, KqTeacherDto teacher , String key , AppDto appDto){
  235 + String[] times = key.split("_");
  236 + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
  237 + if (StringUtils.isNotBlank(teacher.getOpenId())) {
  238 + KqDto dto = new KqDto();
  239 + dto.setEndTime(times[1]);
  240 + dto.setTemplateId(templateId);
  241 + dto.setType(times[2]);
  242 + dto.setUserId(teacher.getUserId());
  243 + List<CensusKqDto> censusKqDtos = scFeign.getCensusKq(dto);
  244 + if (censusKqDtos != null && censusKqDtos.size() > 0) {
  245 + String message = "";
  246 + for (CensusKqDto censusKqDto : censusKqDtos) {
  247 + int number = censusKqDto.getAllT() - censusKqDto.getKqT()-censusKqDto.getQjT() ;
  248 + number = number < 0?0:number ;
  249 + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人,请假"+censusKqDto.getQjT()+"人;";
  250 + }
  251 + WeChatSms weChatSms = new WeChatSms();
  252 + weChatSms.setTableName("qyhSmsNew" + tableSuffix);
  253 + weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " +
  254 + "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " +
  255 + "签到时间:" + times[0] + "-" + times[1] + " \n - " +
  256 + "整体数据:" + message);
161 weChatSms.setSchoolId(teacher.getSchoolId()); 257 weChatSms.setSchoolId(teacher.getSchoolId());
162 weChatSms.setName(teacher.getName()); 258 weChatSms.setName(teacher.getName());
163 weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId()); 259 weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId());
@@ -165,9 +261,49 @@ public class KQJob { @@ -165,9 +261,49 @@ public class KQJob {
165 weChatSms.setAppId(appDto.getAgentId()); 261 weChatSms.setAppId(appDto.getAgentId());
166 weChatSms.setSecret(appDto.getAgentSecret()); 262 weChatSms.setSecret(appDto.getAgentSecret());
167 String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + 263 String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +
168 - "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + 264 + "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() +"&TemplateId=" + templateId+
169 "&data=" + teacher.getWeChatUserId() + "&type=1&stype=3&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() + 265 "&data=" + teacher.getWeChatUserId() + "&type=1&stype=3&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() +
170 - "&face=" + teacher.getFace() + "&sourcetype=16&soutype=2&timestamp=" + DateUtils.getDate(); 266 + "&face=" + teacher.getFace() + "&sourcetype=16&soutype=2&timestamp=" + DateUtils.getDate()+"&time="+DateUtils.date2String(new Date(),DateUtils.format1)+"&";
  267 + weChatSms.setMsgUrl(msgUrl);
  268 + weChatSms.setTdType(TypeEnums.kaoqing.getType());
  269 + smsMapper.insertWeChat(weChatSms);
  270 + }
  271 + }
  272 + }
  273 +
  274 + private void weChatChamberPush(String templateId, KqTeacherDto teacher , String key , AppDto appDto){
  275 + String[] times = key.split("_");
  276 + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
  277 + if (StringUtils.isNotBlank(teacher.getOpenId())) {
  278 + List<CensusKqDto> censusKqDtos ;
  279 + KqDto dto = new KqDto();
  280 + dto.setEndTime(times[1]);
  281 + dto.setTemplateId(templateId);
  282 + dto.setType(times[2]);
  283 + dto.setUserId(teacher.getUserId());
  284 + censusKqDtos = scFeign.selectCensusChamberKq(dto);
  285 + if (censusKqDtos != null && censusKqDtos.size() > 0) {
  286 + String message = "";
  287 + for (CensusKqDto censusKqDto : censusKqDtos) {
  288 + int number = censusKqDto.getAllT() - censusKqDto.getKqT()-censusKqDto.getQjT() ;
  289 + number = number < 0?0:number ;
  290 + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人,请假"+censusKqDto.getQjT()+"人;";
  291 + }
  292 + WeChatSms weChatSms = new WeChatSms();
  293 + weChatSms.setTableName("qyhSmsNew" + tableSuffix);
  294 + weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " +
  295 + "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " +
  296 + "签到时间:" + times[0] + "-" + times[1] + " \n - " +
  297 + "整体数据:" + message);
  298 + weChatSms.setSchoolId(teacher.getSchoolId());
  299 + weChatSms.setName(teacher.getName());
  300 + weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId());
  301 + weChatSms.setReceiveUserId(teacher.getUserId());
  302 + weChatSms.setAppId(appDto.getAgentId());
  303 + weChatSms.setSecret(appDto.getAgentSecret());
  304 + String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" +
  305 + "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() +"&TemplateId=" + templateId+
  306 + "&pass=" + teacher.getPass() + "&type=4&soutype=2&time="+DateUtils.date2String(new Date(),DateUtils.format1)+"&";
171 weChatSms.setMsgUrl(msgUrl); 307 weChatSms.setMsgUrl(msgUrl);
172 weChatSms.setTdType(TypeEnums.kaoqing.getType()); 308 weChatSms.setTdType(TypeEnums.kaoqing.getType());
173 smsMapper.insertWeChat(weChatSms); 309 smsMapper.insertWeChat(weChatSms);
cloud/quartz/src/main/resources/logback.xml
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21         <!-- 过滤器,只打印ERROR级别的日志 --> 21         <!-- 过滤器,只打印ERROR级别的日志 -->
22         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 22         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
23             <!--日志文件输出的文件名--> 23             <!--日志文件输出的文件名-->
24 -             <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}/%d{yyyy-MM-dd HH}.%i.log</FileNamePattern> 24 +             <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
25             <!--日志文件保留天数--> 25             <!--日志文件保留天数-->
26             <MaxHistory>30</MaxHistory> 26             <MaxHistory>30</MaxHistory>
27             <!--日志文件最大的大小--> 27             <!--日志文件最大的大小-->
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;  
4 -import com.sincere.common.dto.smartCampus.CensusKqDto;  
5 -import com.sincere.common.dto.smartCampus.KqTeacherDto;  
6 -import com.sincere.common.dto.smartCampus.TemplateDto; 3 +import com.sincere.common.dto.smartCampus.*;
7 import com.sincere.common.util.DateUtils; 4 import com.sincere.common.util.DateUtils;
8 import com.sincere.smartSearch.model.KqTemplate; 5 import com.sincere.smartSearch.model.KqTemplate;
9 import com.sincere.smartSearch.service.KqService; 6 import com.sincere.smartSearch.service.KqService;
10 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
11 -import org.springframework.web.bind.annotation.RequestMapping;  
12 -import org.springframework.web.bind.annotation.RequestMethod;  
13 -import org.springframework.web.bind.annotation.RequestParam;  
14 -import org.springframework.web.bind.annotation.RestController; 8 +import org.springframework.web.bind.annotation.*;
15 9
16 import java.util.*; 10 import java.util.*;
17 11
@@ -47,6 +41,11 @@ public class KqController { @@ -47,6 +41,11 @@ public class KqController {
47 return kqService.selectSchoolTeacher(schoolId); 41 return kqService.selectSchoolTeacher(schoolId);
48 } 42 }
49 43
  44 + @RequestMapping(value = "selectChamberTeacher",method = RequestMethod.GET)
  45 + public List<KqTeacherDto> selectChamberTeacher(@RequestParam("schoolId")int schoolId){
  46 + return kqService.selectChamberTeacher(schoolId);
  47 + }
  48 +
50 @RequestMapping(value = "getApp",method = RequestMethod.GET) 49 @RequestMapping(value = "getApp",method = RequestMethod.GET)
51 public AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type){ 50 public AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type){
52 Map<String ,Integer> map = new HashMap<>(); 51 Map<String ,Integer> map = new HashMap<>();
@@ -55,13 +54,13 @@ public class KqController { @@ -55,13 +54,13 @@ public class KqController {
55 return kqService.selectApp(map); 54 return kqService.selectApp(map);
56 } 55 }
57 56
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); 57 + @RequestMapping(value = "getCensusKq",method = RequestMethod.POST)
  58 + public List<CensusKqDto> getCensusKq(@RequestBody KqDto kqDto){
  59 + return kqService.selectCensusKq(kqDto);
  60 + }
  61 +
  62 + @RequestMapping(value = "selectCensusChamberKq",method = RequestMethod.POST)
  63 + public List<CensusKqDto> selectCensusChamberKq(@RequestBody KqDto kqDto){
  64 + return kqService.selectCensusChamberKq(kqDto);
66 } 65 }
67 } 66 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/KqTemplateMapper.java
@@ -3,6 +3,7 @@ package com.sincere.smartSearch.mapper; @@ -3,6 +3,7 @@ package com.sincere.smartSearch.mapper;
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.CensusKqDto;
5 import com.sincere.common.dto.smartCampus.KqTeacherDto; 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
  6 +import com.sincere.smartSearch.model.KqChamber;
6 import com.sincere.smartSearch.model.KqTemplate; 7 import com.sincere.smartSearch.model.KqTemplate;
7 8
8 import java.util.List; 9 import java.util.List;
@@ -19,7 +20,29 @@ public interface KqTemplateMapper { @@ -19,7 +20,29 @@ public interface KqTemplateMapper {
19 20
20 List<KqTeacherDto> selectSchoolTeacher(int schoolId); 21 List<KqTeacherDto> selectSchoolTeacher(int schoolId);
21 22
  23 + List<KqTeacherDto> selectChamberTeacher(int schoolId);
  24 +
22 AppDto selectApp(Map<String,Integer> map); 25 AppDto selectApp(Map<String,Integer> map);
23 26
24 List<CensusKqDto> selectCensusKq(Map<String ,String> map); 27 List<CensusKqDto> selectCensusKq(Map<String ,String> map);
  28 +
  29 + List<KqChamber> selectChamberName(String userId);
  30 +
  31 + int selectChamberAllKq(Map<String,String> map);
  32 +
  33 + int selectChamberTrueKq(Map<String,String> map);
  34 +
  35 + int selectClassDealDateCHUQIN(Map<String,String> map);
  36 +
  37 + int selectClassDealDateQINGJIA(Map<String,String> map);
  38 +
  39 + int selectClassLeave(Map<String,String> map);
  40 +
  41 + int selectChamberDealDateCHUQIN(Map<String,String> map);
  42 +
  43 + int selectChamberDealDateQINGJIA(Map<String,String> map);
  44 +
  45 + int selectChamberLeave(Map<String,String> map);
  46 +
  47 + int selectClassChamberNumber(int classId);
25 } 48 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/KqChamber.java 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +package com.sincere.smartSearch.model;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/12/5 0005 10:02
  7 + */
  8 +public class KqChamber {
  9 + private int id ;
  10 + private String name ;
  11 +
  12 + public int getId() {
  13 + return id;
  14 + }
  15 +
  16 + public void setId(int id) {
  17 + this.id = id;
  18 + }
  19 +
  20 + public String getName() {
  21 + return name;
  22 + }
  23 +
  24 + public void setName(String name) {
  25 + this.name = name;
  26 + }
  27 +}
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/KqService.java
@@ -2,6 +2,7 @@ package com.sincere.smartSearch.service; @@ -2,6 +2,7 @@ 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.CensusKqDto;
  5 +import com.sincere.common.dto.smartCampus.KqDto;
5 import com.sincere.common.dto.smartCampus.KqTeacherDto; 6 import com.sincere.common.dto.smartCampus.KqTeacherDto;
6 import com.sincere.smartSearch.model.KqTemplate; 7 import com.sincere.smartSearch.model.KqTemplate;
7 8
@@ -19,7 +20,11 @@ public interface KqService { @@ -19,7 +20,11 @@ public interface KqService {
19 20
20 List<KqTeacherDto> selectSchoolTeacher(int schoolId); 21 List<KqTeacherDto> selectSchoolTeacher(int schoolId);
21 22
  23 + List<KqTeacherDto> selectChamberTeacher(int schoolId);
  24 +
22 AppDto selectApp(Map<String,Integer> map); 25 AppDto selectApp(Map<String,Integer> map);
23 26
24 - List<CensusKqDto> selectCensusKq(Map<String ,String> map); 27 + List<CensusKqDto> selectCensusKq(KqDto kqDto);
  28 +
  29 + List<CensusKqDto> selectCensusChamberKq(KqDto kqDto);
25 } 30 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/KqServiceImpl.java
@@ -2,15 +2,17 @@ package com.sincere.smartSearch.service.impl; @@ -2,15 +2,17 @@ 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.CensusKqDto;
  5 +import com.sincere.common.dto.smartCampus.KqDto;
5 import com.sincere.common.dto.smartCampus.KqTeacherDto; 6 import com.sincere.common.dto.smartCampus.KqTeacherDto;
  7 +import com.sincere.common.util.DateUtils;
6 import com.sincere.smartSearch.mapper.KqTemplateMapper; 8 import com.sincere.smartSearch.mapper.KqTemplateMapper;
  9 +import com.sincere.smartSearch.model.KqChamber;
7 import com.sincere.smartSearch.model.KqTemplate; 10 import com.sincere.smartSearch.model.KqTemplate;
8 import com.sincere.smartSearch.service.KqService; 11 import com.sincere.smartSearch.service.KqService;
9 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
11 14
12 -import java.util.List;  
13 -import java.util.Map; 15 +import java.util.*;
14 16
15 /** 17 /**
16 * @author chen 18 * @author chen
@@ -34,12 +36,72 @@ public class KqServiceImpl implements KqService { @@ -34,12 +36,72 @@ public class KqServiceImpl implements KqService {
34 } 36 }
35 37
36 @Override 38 @Override
  39 + public List<KqTeacherDto> selectChamberTeacher(int schoolId) {
  40 + return kqTemplateMapper.selectChamberTeacher(schoolId);
  41 + }
  42 +
  43 + @Override
37 public AppDto selectApp(Map<String, Integer> map) { 44 public AppDto selectApp(Map<String, Integer> map) {
38 return kqTemplateMapper.selectApp(map); 45 return kqTemplateMapper.selectApp(map);
39 } 46 }
40 47
41 @Override 48 @Override
42 - public List<CensusKqDto> selectCensusKq(Map<String, String> map) {  
43 - return kqTemplateMapper.selectCensusKq(map); 49 + public List<CensusKqDto> selectCensusKq(KqDto kqDto) {
  50 + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
  51 + Map<String,String> map = new HashMap<>();
  52 + map.put("userId",kqDto.getUserId());
  53 + map.put("tableName","SZ_AttendanceRecords"+tableSuffix);
  54 + map.put("type",kqDto.getType());
  55 + List<CensusKqDto> list = kqTemplateMapper.selectCensusKq(map);
  56 + for(CensusKqDto censusKqDto : list){
  57 + if(Integer.valueOf(kqDto.getType()) >= 7){
  58 + //出入寝
  59 + int classNumber = kqTemplateMapper.selectClassChamberNumber(censusKqDto.getClassId());
  60 + censusKqDto.setAllT(classNumber);
  61 + }
  62 + Map<String,String> sqlMap = new HashMap<>();
  63 + sqlMap.put("templateId",kqDto.getTemplateId());
  64 + sqlMap.put("classId",censusKqDto.getClassId()+"");
  65 + int chuqin = kqTemplateMapper.selectClassDealDateCHUQIN(sqlMap);
  66 + int qingjia = kqTemplateMapper.selectClassDealDateQINGJIA(sqlMap);
  67 + String date = DateUtils.date2String(new Date(),DateUtils.format1);
  68 + sqlMap.put("endTime",date+" " + kqDto.getEndTime() +":00");
  69 + qingjia = qingjia + kqTemplateMapper.selectClassLeave(sqlMap);
  70 + censusKqDto.setKqT(censusKqDto.getKqT()+chuqin);
  71 + censusKqDto.setQjT(qingjia);
  72 + }
  73 + return list ;
  74 + }
  75 +
  76 + @Override
  77 + public List<CensusKqDto> selectCensusChamberKq(KqDto kqDto) {
  78 + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
  79 + Map<String,String> map = new HashMap<>();
  80 + map.put("userId",kqDto.getUserId());
  81 + map.put("tableName","SZ_AttendanceRecords"+tableSuffix);
  82 + map.put("type",kqDto.getType());
  83 + List<CensusKqDto> list = new ArrayList<>();
  84 + List<KqChamber> chambers = kqTemplateMapper.selectChamberName(map.get("userId"));
  85 + for(KqChamber chamber :chambers){
  86 + CensusKqDto censusKqDto = new CensusKqDto();
  87 + map.put("id",chamber.getId()+"");
  88 + int allKq = kqTemplateMapper.selectChamberAllKq(map);
  89 + int trueKq = kqTemplateMapper.selectChamberTrueKq(map);
  90 + censusKqDto.setClassName(chamber.getName());
  91 + censusKqDto.setAllT(allKq);
  92 + Map<String,String> sqlMap = new HashMap<>();
  93 + sqlMap.put("templateId",kqDto.getTemplateId());
  94 + sqlMap.put("userId",kqDto.getUserId());
  95 + sqlMap.put("id",chamber.getId()+"");
  96 + int chuqin = kqTemplateMapper.selectChamberDealDateCHUQIN(sqlMap);
  97 + int qingjia = kqTemplateMapper.selectChamberDealDateQINGJIA(sqlMap);
  98 + String date = DateUtils.date2String(new Date(),DateUtils.format1);
  99 + sqlMap.put("endTime",date+" " + kqDto.getEndTime() +":00");
  100 + qingjia = qingjia + kqTemplateMapper.selectChamberLeave(sqlMap);
  101 + censusKqDto.setKqT(trueKq+chuqin);
  102 + censusKqDto.setKqT(qingjia);
  103 + list.add(censusKqDto);
  104 + }
  105 + return list;
44 } 106 }
45 } 107 }
cloud/search_smartCampus/src/main/resources/application.yml
@@ -22,6 +22,6 @@ eureka: @@ -22,6 +22,6 @@ eureka:
22 client: 22 client:
23 service-url: 23 service-url:
24 # defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ 24 # defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
25 - defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ 25 + defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
26 26
27 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 and XA_KqTemplate.TType = 1 14 + where XA_KqTemplate.State = 1 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 and SZ_School.IsPush =1 16 and SZ_School.IsPush =1
17 </select> 17 </select>
@@ -36,6 +36,13 @@ @@ -36,6 +36,13 @@
36 where a.role_state=1 and SZ_UserRole.userType = 0 36 where a.role_state=1 and SZ_UserRole.userType = 0
37 </select> 37 </select>
38 38
  39 + <select id="selectChamberTeacher" parameterType="java.lang.Integer" resultMap="TeacherMap">
  40 + select distinct a.user_id,a.school_id,a.name,a.mobile,a.face,a.pass, a.OpenId,a.QiYeHaoUserId,a.DingUserId
  41 + from SS_Room join SS_RoomManager on SS_Room.Id = SS_RoomManager.RoomId
  42 + join SZ_V_School_Teacher a on a.user_id = SS_RoomManager.ManagerId
  43 + where SS_Room.SchoolId = #{schoolId} and SS_Room.Status = 1
  44 + </select>
  45 +
39 <resultMap id="AppMap" type="com.sincere.common.dto.smartCampus.AppDto"> 46 <resultMap id="AppMap" type="com.sincere.common.dto.smartCampus.AppDto">
40 <result column="AgentId" property="agentId"/> 47 <result column="AgentId" property="agentId"/>
41 <result column="AgentSecret" property="agentSecret"/> 48 <result column="AgentSecret" property="agentSecret"/>
@@ -45,13 +52,18 @@ @@ -45,13 +52,18 @@
45 and ApplyName = '智能校卫' 52 and ApplyName = '智能校卫'
46 </select> 53 </select>
47 54
  55 + <select id="selectClassChamberNumber" parameterType="java.lang.Integer" resultType="java.lang.Integer">
  56 + select count(0) from SZ_V_School_Student where class_id=#{classId} and student_type=2
  57 + </select>
  58 +
48 <resultMap id="KqMap" type="com.sincere.common.dto.smartCampus.CensusKqDto"> 59 <resultMap id="KqMap" type="com.sincere.common.dto.smartCampus.CensusKqDto">
  60 + <result column="class_id" property="classId"/>
49 <result column="class_name" property="className"/> 61 <result column="class_name" property="className"/>
50 <result column="allT" property="allT"/> 62 <result column="allT" property="allT"/>
51 <result column="kqT" property="kqT"/> 63 <result column="kqT" property="kqT"/>
52 </resultMap> 64 </resultMap>
53 <select id="selectCensusKq" parameterType="java.util.Map" resultMap="KqMap"> 65 <select id="selectCensusKq" parameterType="java.util.Map" resultMap="KqMap">
54 - select distinct b.class_name, 66 + select distinct b.class_id , b.class_name,
55 (select count(distinct user_id) from SZ_V_School_Student x where c.class_id=x.class_id) as allT, 67 (select count(distinct user_id) from SZ_V_School_Student x where c.class_id=x.class_id) as allT,
56 (select count(distinct customerid) from dblan27.xiaoanhxy.dbo.${tableName} y 68 (select count(distinct customerid) from dblan27.xiaoanhxy.dbo.${tableName} y
57 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 69 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
@@ -60,4 +72,96 @@ @@ -60,4 +72,96 @@
60 inner join SZ_V_School_Teacher a on a.user_id=c.user_id and c.usertype=0 72 inner join SZ_V_School_Teacher a on a.user_id=c.user_id and c.usertype=0
61 where a.role_state=1 and a.user_id=#{userId} 73 where a.role_state=1 and a.user_id=#{userId}
62 </select> 74 </select>
  75 +
  76 + <select id="selectClassDealDateCHUQIN" parameterType="java.util.Map" resultType="java.lang.Integer">
  77 + select count(0) from EQ_DealData join SZ_V_School_Student on EQ_DealData.UserId = SZ_V_School_Student.user_id
  78 + where EQ_DealData.DealState ='出勤'
  79 + and EQ_DealData.TemplateId = #{templateId} and DealDate = CONVERT ( VARCHAR ( 10 ), getdate(), 120 )
  80 + and SZ_V_School_Student.class_id = #{classId}
  81 + </select>
  82 +
  83 + <select id="selectClassDealDateQINGJIA" parameterType="java.util.Map" resultType="java.lang.Integer">
  84 + select count(0) from EQ_DealData join SZ_V_School_Student on EQ_DealData.UserId = SZ_V_School_Student.user_id
  85 + where EQ_DealData.DealState = '请假'
  86 + and EQ_DealData.TemplateId = #{templateId} and DealDate = CONVERT ( VARCHAR ( 10 ), getdate(), 120 )
  87 + and SZ_V_School_Student.class_id = #{classId}
  88 + </select>
  89 +
  90 + <select id="selectClassLeave" parameterType="java.util.Map" resultType="java.lang.Integer">
  91 + select COUNT ( DISTINCT HS_LeaveExamine.StudentId ) from HS_LeaveExamine join SZ_V_School_Student on HS_LeaveExamine.StudentId = SZ_V_School_Student.student_id
  92 + where HS_LeaveExamine.State in (2,7,8,9,10,11) and HS_LeaveExamine.ReturnTime &gt; #{endTime} and HS_LeaveExamine.LeaveTime &lt; #{endTime}
  93 + and SZ_V_School_Student.class_id = #{classId}
  94 + </select>
  95 +
  96 + <resultMap id="ChamberMap" type="com.sincere.smartSearch.model.KqChamber">
  97 + <result column="Id" property="id"/>
  98 + <result column="name" property="name"/>
  99 + </resultMap>
  100 + <select id="selectChamberName" parameterType="java.lang.String" resultMap="ChamberMap">
  101 + select SS_Room.Id , SS_Room.name as name from SS_RoomManager join SS_Room on SS_Room.Id = SS_RoomManager.RoomId
  102 + where SS_RoomManager.ManagerId = #{userId}
  103 + </select>
  104 +
  105 + <select id="selectChamberAllKq" parameterType="java.util.Map" resultType="java.lang.Integer">
  106 + select count(0) as allT from SS_Room join SS_RoomNumber on SS_Room.Id = SS_RoomNumber.Pid
  107 + where SS_Room.Pid in (
  108 + select SS_Room.ID from SS_RoomManager join SS_Room on SS_Room.Id = SS_RoomManager.RoomId
  109 + where SS_RoomManager.ManagerId = #{userId} and SS_Room.Id = ${id}
  110 + ) and SS_RoomNumber.StudentId != 0
  111 + </select>
  112 +
  113 + <select id="selectChamberTrueKq" parameterType="java.util.Map" resultType="java.lang.Integer">
  114 + SELECT COUNT ( DISTINCT customerid ) AS kqT FROM dblan27.xiaoanhxy.dbo.${tableName} y
  115 + WHERE CONVERT ( VARCHAR ( 10 ), y.intime, 120 ) = CONVERT ( VARCHAR ( 10 ), getdate(), 120 )
  116 + AND y.card_type= #{type}
  117 + AND y.customerId IN (
  118 + SELECT SS_RoomNumber.StudentId AS customerId
  119 + FROM SS_RoomNumber JOIN SS_Room ON SS_Room.Id = SS_RoomNumber.Pid
  120 + WHERE SS_Room.Pid IN (
  121 + SELECT SS_Room.ID FROM SS_RoomManager JOIN SS_Room ON SS_Room.Id = SS_RoomManager.RoomId
  122 + WHERE SS_RoomManager.ManagerId = #{userId} and SS_Room.Id = ${id}
  123 + )
  124 + AND SS_RoomNumber.StudentId != 0
  125 + )
  126 + </select>
  127 +
  128 + <select id="selectChamberDealDateCHUQIN" parameterType="java.util.Map" resultType="java.lang.Integer">
  129 + select count(0) from EQ_DealData join SZ_V_School_Student on EQ_DealData.UserId = SZ_V_School_Student.user_id
  130 + where EQ_DealData.DealState ='出勤'
  131 + and EQ_DealData.TemplateId = #{templateId} and DealDate = CONVERT ( VARCHAR ( 10 ), getdate(), 120 )
  132 + and SZ_V_School_Student.student_id in (
  133 + select SS_RoomNumber.StudentId from SS_Room join SS_RoomNumber on SS_Room.Id = SS_RoomNumber.Pid
  134 + where SS_Room.Pid in (
  135 + select SS_Room.ID from SS_RoomManager join SS_Room on SS_Room.Id = SS_RoomManager.RoomId
  136 + where SS_RoomManager.ManagerId = #{userId} and SS_Room.Id = ${id}
  137 + ) and SS_RoomNumber.StudentId != 0
  138 + )
  139 + </select>
  140 +
  141 + <select id="selectChamberDealDateQINGJIA" parameterType="java.util.Map" resultType="java.lang.Integer">
  142 + select count(0) from EQ_DealData join SZ_V_School_Student on EQ_DealData.UserId = SZ_V_School_Student.user_id
  143 + where EQ_DealData.DealState ='请假'
  144 + and EQ_DealData.TemplateId = #{templateId} and DealDate = CONVERT ( VARCHAR ( 10 ), getdate(), 120 )
  145 + and SZ_V_School_Student.student_id in (
  146 + select SS_RoomNumber.StudentId from SS_Room join SS_RoomNumber on SS_Room.Id = SS_RoomNumber.Pid
  147 + where SS_Room.Pid in (
  148 + select SS_Room.ID from SS_RoomManager join SS_Room on SS_Room.Id = SS_RoomManager.RoomId
  149 + where SS_RoomManager.ManagerId = #{userId} and SS_Room.Id = ${id}
  150 + ) and SS_RoomNumber.StudentId != 0
  151 + )
  152 + </select>
  153 +
  154 + <select id="selectChamberLeave" parameterType="java.util.Map" resultType="java.lang.Integer">
  155 + select COUNT ( DISTINCT HS_LeaveExamine.StudentId ) from HS_LeaveExamine join SZ_V_School_Student on HS_LeaveExamine.StudentId = SZ_V_School_Student.student_id
  156 + where HS_LeaveExamine.State in (2,7,8,9,10,11) and HS_LeaveExamine.ReturnTime &gt; #{endTime} and HS_LeaveExamine.LeaveTime &lt; #{endTime}
  157 + and SZ_V_School_Student.student_id in (
  158 + select SS_RoomNumber.StudentId from SS_Room join SS_RoomNumber on SS_Room.Id = SS_RoomNumber.Pid
  159 + where SS_Room.Pid in (
  160 + select SS_Room.ID from SS_RoomManager join SS_Room on SS_Room.Id = SS_RoomManager.RoomId
  161 + where SS_RoomManager.ManagerId = #{userId} and SS_Room.Id = ${id}
  162 + ) and SS_RoomNumber.StudentId != 0
  163 + )
  164 + </select>
  165 +
  166 +
63 </mapper> 167 </mapper>