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 6 * @date 2019/11/29 0029 14:27
7 7 */
8 8 public class CensusKqDto {
  9 + private int classId ;
9 10 private String className ;
10 11 private int allT ;
11 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 23 public String getClassName() {
14 24 return className;
... ... @@ -33,4 +43,12 @@ public class CensusKqDto {
33 43 public void setKqT(int kqT) {
34 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 @@
  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 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 4 import org.springframework.cloud.openfeign.FeignClient;
  5 +import org.springframework.web.bind.annotation.RequestBody;
8 6 import org.springframework.web.bind.annotation.RequestMapping;
9 7 import org.springframework.web.bind.annotation.RequestMethod;
10 8 import org.springframework.web.bind.annotation.RequestParam;
... ... @@ -25,9 +23,15 @@ public interface ScFeign {
25 23 @RequestMapping(value = "/sm/kq/getTeacherList",method = RequestMethod.GET)
26 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 29 @RequestMapping(value = "/sm/kq/getApp",method = RequestMethod.GET)
29 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 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 4 import com.sincere.common.util.DateUtils;
8 5 import com.sincere.quartz.enums.KqTypeEnums;
9 6 import com.sincere.quartz.enums.TypeEnums;
... ... @@ -57,17 +54,16 @@ public class KQJob {
57 54 for(Map.Entry<String, String> entity : map.entrySet()){
58 55 String endTime = entity.getValue().split("_")[1];
59 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 58 String key = entity.getKey();
62 59 String[] messageArray = key.split("_");
63   - List<KqTeacherDto> list = scFeign.getTeacherList(Integer.valueOf(messageArray[1]));
64 60 if(messageArray[2].contains("5")){
65 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 64 if(messageArray[2].contains("4")){
69 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 68 keyList.add(key);
73 69 }
... ... @@ -95,7 +91,7 @@ public class KQJob {
95 91 type = type.replace("\"","");
96 92 int nowWeek = DateUtils.getWeek() ;
97 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 95 map.put(templateId+"_"+templateDto.getSchoolId()+"_"+templateDto.getType() , beginTime+"_"+endTime+"_"+type);
100 96 }
101 97 }catch (Exception e){
... ... @@ -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 157 String[] times = key.split("_");
110 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 167 String message = "";
116 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 173 DingSms dingSms = new DingSms();
121 174 dingSms.setName(teacher.getName());
122 175 dingSms.setTableName("DingSmsNew"+tableSuffix);
123 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 184 dingSms.setSchoolId(teacher.getSchoolId());
128 185 dingSms.setDingUserId(teacher.getDingUserId());
129 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 187 dingSms.setWapUrl(wapUrl);
135 188 dingSms.setReceiveUserId(teacher.getUserId());
136 189 dingSms.setTdType(TypeEnums.kaoqing.getType());
137 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 196 String[] times = key.split("_");
145 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 207 String message = "";
151 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 217 "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+
159 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 257 weChatSms.setSchoolId(teacher.getSchoolId());
162 258 weChatSms.setName(teacher.getName());
163 259 weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId());
... ... @@ -165,9 +261,49 @@ public class KQJob {
165 261 weChatSms.setAppId(appDto.getAgentId());
166 262 weChatSms.setSecret(appDto.getAgentSecret());
167 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 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 307 weChatSms.setMsgUrl(msgUrl);
172 308 weChatSms.setTdType(TypeEnums.kaoqing.getType());
173 309 smsMapper.insertWeChat(weChatSms);
... ...
cloud/quartz/src/main/resources/logback.xml
... ... @@ -21,7 +21,7 @@
21 21         <!-- 过滤器,只打印ERROR级别的日志 -->
22 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 26             <MaxHistory>30</MaxHistory>
27 27             <!--日志文件最大的大小-->
... ...
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/KqController.java
1 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 4 import com.sincere.common.util.DateUtils;
8 5 import com.sincere.smartSearch.model.KqTemplate;
9 6 import com.sincere.smartSearch.service.KqService;
10 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 10 import java.util.*;
17 11  
... ... @@ -47,6 +41,11 @@ public class KqController {
47 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 49 @RequestMapping(value = "getApp",method = RequestMethod.GET)
51 50 public AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type){
52 51 Map<String ,Integer> map = new HashMap<>();
... ... @@ -55,13 +54,13 @@ public class KqController {
55 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 3 import com.sincere.common.dto.smartCampus.AppDto;
4 4 import com.sincere.common.dto.smartCampus.CensusKqDto;
5 5 import com.sincere.common.dto.smartCampus.KqTeacherDto;
  6 +import com.sincere.smartSearch.model.KqChamber;
6 7 import com.sincere.smartSearch.model.KqTemplate;
7 8  
8 9 import java.util.List;
... ... @@ -19,7 +20,29 @@ public interface KqTemplateMapper {
19 20  
20 21 List<KqTeacherDto> selectSchoolTeacher(int schoolId);
21 22  
  23 + List<KqTeacherDto> selectChamberTeacher(int schoolId);
  24 +
22 25 AppDto selectApp(Map<String,Integer> map);
23 26  
24 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 @@
  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 2  
3 3 import com.sincere.common.dto.smartCampus.AppDto;
4 4 import com.sincere.common.dto.smartCampus.CensusKqDto;
  5 +import com.sincere.common.dto.smartCampus.KqDto;
5 6 import com.sincere.common.dto.smartCampus.KqTeacherDto;
6 7 import com.sincere.smartSearch.model.KqTemplate;
7 8  
... ... @@ -19,7 +20,11 @@ public interface KqService {
19 20  
20 21 List<KqTeacherDto> selectSchoolTeacher(int schoolId);
21 22  
  23 + List<KqTeacherDto> selectChamberTeacher(int schoolId);
  24 +
22 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 2  
3 3 import com.sincere.common.dto.smartCampus.AppDto;
4 4 import com.sincere.common.dto.smartCampus.CensusKqDto;
  5 +import com.sincere.common.dto.smartCampus.KqDto;
5 6 import com.sincere.common.dto.smartCampus.KqTeacherDto;
  7 +import com.sincere.common.util.DateUtils;
6 8 import com.sincere.smartSearch.mapper.KqTemplateMapper;
  9 +import com.sincere.smartSearch.model.KqChamber;
7 10 import com.sincere.smartSearch.model.KqTemplate;
8 11 import com.sincere.smartSearch.service.KqService;
9 12 import org.springframework.beans.factory.annotation.Autowired;
10 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 18 * @author chen
... ... @@ -34,12 +36,72 @@ public class KqServiceImpl implements KqService {
34 36 }
35 37  
36 38 @Override
  39 + public List<KqTeacherDto> selectChamberTeacher(int schoolId) {
  40 + return kqTemplateMapper.selectChamberTeacher(schoolId);
  41 + }
  42 +
  43 + @Override
37 44 public AppDto selectApp(Map<String, Integer> map) {
38 45 return kqTemplateMapper.selectApp(map);
39 46 }
40 47  
41 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 22 client:
23 23 service-url:
24 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 11 <select id="selectKqTemplate" resultMap="TemplateMap">
12 12 select XA_KqTemplate.config , XA_KqTemplate.SchoolId ,SZ_School.MsgTypes as type from XA_KqTemplate
13 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 15 and (SZ_School.MsgTypes like '%4%' or SZ_School.MsgTypes like '%5%')
16 16 and SZ_School.IsPush =1
17 17 </select>
... ... @@ -36,6 +36,13 @@
36 36 where a.role_state=1 and SZ_UserRole.userType = 0
37 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 46 <resultMap id="AppMap" type="com.sincere.common.dto.smartCampus.AppDto">
40 47 <result column="AgentId" property="agentId"/>
41 48 <result column="AgentSecret" property="agentSecret"/>
... ... @@ -45,13 +52,18 @@
45 52 and ApplyName = '智能校卫'
46 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 59 <resultMap id="KqMap" type="com.sincere.common.dto.smartCampus.CensusKqDto">
  60 + <result column="class_id" property="classId"/>
49 61 <result column="class_name" property="className"/>
50 62 <result column="allT" property="allT"/>
51 63 <result column="kqT" property="kqT"/>
52 64 </resultMap>
53 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 67 (select count(distinct user_id) from SZ_V_School_Student x where c.class_id=x.class_id) as allT,
56 68 (select count(distinct customerid) from dblan27.xiaoanhxy.dbo.${tableName} y
57 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 72 inner join SZ_V_School_Teacher a on a.user_id=c.user_id and c.usertype=0
61 73 where a.role_state=1 and a.user_id=#{userId}
62 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 167 </mapper>
... ...