From ee9dcc1b1f7b8f3be1c253a8e036164e4d5976fd Mon Sep 17 00:00:00 2001 From: 陈杰 <504987307@qq.com> Date: Thu, 5 Dec 2019 13:56:47 +0800 Subject: [PATCH] 考勤推送 --- cloud/common/src/main/java/com/sincere/common/dto/smartCampus/CensusKqDto.java | 9 +++++++++ cloud/common/src/main/java/com/sincere/common/dto/smartCampus/KqDto.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java | 16 ++++++++++------ cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------ cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/KqController.java | 31 +++++++++++++++---------------- cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/KqTemplateMapper.java | 17 +++++++++++++++++ cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/KqChamber.java | 27 +++++++++++++++++++++++++++ cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/KqService.java | 7 ++++++- cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/KqServiceImpl.java | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- cloud/search_smartCampus/src/main/resources/mapper/KqTemplateMapper.xml | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 10 files changed, 430 insertions(+), 58 deletions(-) create mode 100644 cloud/common/src/main/java/com/sincere/common/dto/smartCampus/KqDto.java create mode 100644 cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/KqChamber.java diff --git a/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/CensusKqDto.java b/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/CensusKqDto.java index 53dac94..d1c5eac 100644 --- a/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/CensusKqDto.java +++ b/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/CensusKqDto.java @@ -6,10 +6,19 @@ package com.sincere.common.dto.smartCampus; * @date 2019/11/29 0029 14:27 */ public class CensusKqDto { + private int classId ; private String className ; private int allT ; private int kqT ; + public int getClassId() { + return classId; + } + + public void setClassId(int classId) { + this.classId = classId; + } + public String getClassName() { return className; } diff --git a/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/KqDto.java b/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/KqDto.java new file mode 100644 index 0000000..4c5115f --- /dev/null +++ b/cloud/common/src/main/java/com/sincere/common/dto/smartCampus/KqDto.java @@ -0,0 +1,46 @@ +package com.sincere.common.dto.smartCampus; + +/** + * @author chen + * @version 1.0 + * @date 2019/12/5 0005 11:01 + */ +public class KqDto { + private String userId ; + private String type ; + private String templateId ; + private String endTime ; + + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getTemplateId() { + return templateId; + } + + public void setTemplateId(String templateId) { + this.templateId = templateId; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } +} diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java b/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java index 55d04ec..1aeb285 100644 --- a/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java +++ b/cloud/quartz/src/main/java/com/sincere/quartz/feign/ScFeign.java @@ -1,10 +1,8 @@ package com.sincere.quartz.feign; -import com.sincere.common.dto.smartCampus.AppDto; -import com.sincere.common.dto.smartCampus.CensusKqDto; -import com.sincere.common.dto.smartCampus.KqTeacherDto; -import com.sincere.common.dto.smartCampus.TemplateDto; +import com.sincere.common.dto.smartCampus.*; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -25,9 +23,15 @@ public interface ScFeign { @RequestMapping(value = "/sm/kq/getTeacherList",method = RequestMethod.GET) List getTeacherList(@RequestParam("schoolId")int schoolId); + @RequestMapping(value = "/sm/kq/selectChamberTeacher",method = RequestMethod.GET) + List selectChamberTeacher(@RequestParam("schoolId")int schoolId); + @RequestMapping(value = "/sm/kq/getApp",method = RequestMethod.GET) AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type); - @RequestMapping(value = "/sm/kq/getCensusKq",method = RequestMethod.GET) - List getCensusKq(@RequestParam("userId") String userId , @RequestParam("type") int type); + @RequestMapping(value = "/sm/kq/getCensusKq",method = RequestMethod.POST) + List getCensusKq(@RequestBody KqDto kqDto); + + @RequestMapping(value = "/sm/kq/selectCensusChamberKq",method = RequestMethod.POST) + List selectCensusChamberKq(@RequestBody KqDto kqDto); } diff --git a/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java b/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java index 6ffb8e6..7564b37 100644 --- a/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java +++ b/cloud/quartz/src/main/java/com/sincere/quartz/job/KQJob.java @@ -1,9 +1,6 @@ package com.sincere.quartz.job; -import com.sincere.common.dto.smartCampus.AppDto; -import com.sincere.common.dto.smartCampus.CensusKqDto; -import com.sincere.common.dto.smartCampus.KqTeacherDto; -import com.sincere.common.dto.smartCampus.TemplateDto; +import com.sincere.common.dto.smartCampus.*; import com.sincere.common.util.DateUtils; import com.sincere.quartz.enums.KqTypeEnums; import com.sincere.quartz.enums.TypeEnums; @@ -57,17 +54,16 @@ public class KQJob { for(Map.Entry entity : map.entrySet()){ String endTime = entity.getValue().split("_")[1]; if(DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")>=2 - && DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m")<5){ + && DateUtils.getDateDifference(new Date(),DateUtils.string2Date(now+" "+endTime+":00",DateUtils.format2),"m") < 5 ){ String key = entity.getKey(); String[] messageArray = key.split("_"); - List list = scFeign.getTeacherList(Integer.valueOf(messageArray[1])); if(messageArray[2].contains("5")){ logger.info("企业号推送:" + messageArray[0] + "__" + messageArray[1]); - weChatPush(list,entity.getValue()); + weChatBatchPush(messageArray[0],Integer.valueOf(messageArray[1]),entity.getValue()); } if(messageArray[2].contains("4")){ logger.info(("盯盯推送:" + messageArray[0] + "__" + messageArray[1])); - dingPush(list,entity.getValue()); + dingBatchPush(messageArray[0],Integer.valueOf(messageArray[1]),entity.getValue()); } keyList.add(key); } @@ -105,13 +101,69 @@ public class KQJob { } } - private void dingPush(List list , String key){ + private void dingBatchPush(String templateId , int schoolId , String key){ + String[] times = key.split("_"); + AppDto appDto = scFeign.getApp(schoolId,1); + if(Integer.valueOf(times[2]) < 7){ + //出入校 推班主任 + List list = scFeign.getTeacherList(schoolId); + for(KqTeacherDto teacher : list){ + if(teacher.getName().equals("倪任佳")){ + dingSchoolPush(templateId,teacher,key,appDto); + } + } + }else { + //出入寝 推班主任 + List list = scFeign.getTeacherList(schoolId); + for(KqTeacherDto teacher : list){ + if(teacher.getName().equals("倪任佳")) { + dingSchoolPush(templateId,teacher, key, appDto); + } + } + //推宿管 + List chamberList = scFeign.selectChamberTeacher(schoolId); + for(KqTeacherDto teacher : chamberList){ + if(teacher.getName().equals("倪任佳")) { + dingChamberPush(templateId,teacher, key, appDto); + } + } + } + } + + private void weChatBatchPush(String templateId , int schoolId , String key){ + String[] times = key.split("_"); + AppDto appDto = scFeign.getApp(schoolId, 0); + if(Integer.valueOf(times[2]) < 7) { + //出入校 推班主任 + List list = scFeign.getTeacherList(schoolId); + for (KqTeacherDto teacher : list) { + weChatSchoolPush(templateId,teacher, key, appDto); + } + }else { + //出入寝 推班主任 + List list = scFeign.getTeacherList(schoolId); + for (KqTeacherDto teacher : list) { + weChatSchoolPush(templateId,teacher, key, appDto); + } + //推宿管 + List chamberList = scFeign.selectChamberTeacher(schoolId); + for(KqTeacherDto teacher : chamberList){ + weChatChamberPush(templateId,teacher, key, appDto); + } + } + } + + private void dingSchoolPush(String templateId ,KqTeacherDto teacher , String key , AppDto appDto){ String[] times = key.split("_"); String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); - AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),1); - for(KqTeacherDto teacher : list){ - if(StringUtils.isNotBlank(teacher.getDingUserId())){ - List censusKqDtos = scFeign.getCensusKq(teacher.getUserId(),Integer.valueOf(times[2])); + if(StringUtils.isNotBlank(teacher.getDingUserId())){ + KqDto dto = new KqDto(); + dto.setEndTime(times[1]); + dto.setTemplateId(templateId); + dto.setType(times[2]); + dto.setUserId(teacher.getUserId()); + List censusKqDtos = scFeign.getCensusKq(dto); + if(censusKqDtos != null &&censusKqDtos.size() > 0){ String message = ""; for(CensusKqDto censusKqDto : censusKqDtos){ int number = censusKqDto.getAllT() - censusKqDto.getKqT() ; @@ -121,43 +173,84 @@ public class KQJob { dingSms.setName(teacher.getName()); dingSms.setTableName("DingSmsNew"+tableSuffix); dingSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+ - "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+ - "签到时间:"+times[0]+"-"+ times[1] +" \n - "+ - "整体数据:" + message.substring(0,message.length()-1)); - dingSms.setSchoolId(teacher.getSchoolId()); - dingSms.setDingUserId(teacher.getDingUserId()); - dingSms.setAgentId(appDto.getAgentId()); + "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+ + "签到时间:"+times[0]+"-"+ times[1] +" \n - "+ + "整体数据:" + message.substring(0,message.length()-1)); String wapUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + "schoolid="+teacher.getSchoolId()+"&userId="+teacher.getUserId()+"&name="+teacher.getName()+ "&data="+teacher.getDingUserId()+"&type=1&stype=4&mobile="+teacher.getMobile()+"&pass="+teacher.getPass()+ - "&face=&sourcetype=16&soutype=3×tamp="+ DateUtils.getDate() ; + "&face=&sourcetype=16&soutype=3×tamp="+ DateUtils.getDate()+"&time="+DateUtils.date2String(new Date(),DateUtils.format1) ; + dingSms.setSchoolId(teacher.getSchoolId()); + dingSms.setDingUserId(teacher.getDingUserId()); + dingSms.setAgentId(appDto.getAgentId()); dingSms.setWapUrl(wapUrl); dingSms.setReceiveUserId(teacher.getUserId()); dingSms.setTdType(TypeEnums.kaoqing.getType()); smsMapper.insertDing(dingSms); } - } } - private void weChatPush(List list , String key){ + private void dingChamberPush(String templateId, KqTeacherDto teacher , String key , AppDto appDto){ String[] times = key.split("_"); String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); - AppDto appDto = scFeign.getApp(list.get(0).getSchoolId(),0); - for(KqTeacherDto teacher : list){ - if (StringUtils.isNotBlank(teacher.getOpenId())) { - List censusKqDtos = scFeign.getCensusKq(teacher.getUserId(),Integer.valueOf(times[2])); + if(StringUtils.isNotBlank(teacher.getDingUserId())){ + List censusKqDtos ; + KqDto dto = new KqDto(); + dto.setEndTime(times[1]); + dto.setTemplateId(templateId); + dto.setType(times[2]); + dto.setUserId(teacher.getUserId()); + censusKqDtos = scFeign.selectCensusChamberKq(dto); + if(censusKqDtos != null &&censusKqDtos.size() > 0){ String message = ""; for(CensusKqDto censusKqDto : censusKqDtos){ int number = censusKqDto.getAllT() - censusKqDto.getKqT() ; message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人;"; } - WeChatSms weChatSms = new WeChatSms(); - weChatSms.setTableName("qyhSmsNew" + tableSuffix); - weChatSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+ + DingSms dingSms = new DingSms(); + dingSms.setName(teacher.getName()); + dingSms.setTableName("DingSmsNew"+tableSuffix); + dingSms.setMsg("报告类型:"+KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - "+ "签到日期:"+DateUtils.date2String(new Date(),DateUtils.format1)+ "("+DateUtils.getWeekName()+") \n - "+ "签到时间:"+times[0]+"-"+ times[1] +" \n - "+ "整体数据:" + message.substring(0,message.length()-1)); + String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + + "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + + "&pass=" + teacher.getPass() + "&type=4&soutype=3&time="+DateUtils.date2String(new Date(),DateUtils.format1); + dingSms.setSchoolId(teacher.getSchoolId()); + dingSms.setDingUserId(teacher.getDingUserId()); + dingSms.setAgentId(appDto.getAgentId()); + dingSms.setWapUrl(msgUrl); + dingSms.setReceiveUserId(teacher.getUserId()); + dingSms.setTdType(TypeEnums.kaoqing.getType()); + smsMapper.insertDing(dingSms); + } + } + } + + private void weChatSchoolPush(String templateId, KqTeacherDto teacher , String key , AppDto appDto){ + String[] times = key.split("_"); + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); + if (StringUtils.isNotBlank(teacher.getOpenId())) { + KqDto dto = new KqDto(); + dto.setEndTime(times[1]); + dto.setTemplateId(templateId); + dto.setType(times[2]); + dto.setUserId(teacher.getUserId()); + List censusKqDtos = scFeign.getCensusKq(dto); + if (censusKqDtos != null && censusKqDtos.size() > 0) { + String message = ""; + for (CensusKqDto censusKqDto : censusKqDtos) { + int number = censusKqDto.getAllT() - censusKqDto.getKqT(); + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人;"; + } + WeChatSms weChatSms = new WeChatSms(); + weChatSms.setTableName("qyhSmsNew" + tableSuffix); + weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + + "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + + "签到时间:" + times[0] + "-" + times[1] + " \n - " + + "整体数据:" + message.substring(0, message.length() - 1)); weChatSms.setSchoolId(teacher.getSchoolId()); weChatSms.setName(teacher.getName()); weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId()); @@ -167,7 +260,46 @@ public class KQJob { String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + "&data=" + teacher.getWeChatUserId() + "&type=1&stype=3&mobile=" + teacher.getMobile() + "&pass=" + teacher.getPass() + - "&face=" + teacher.getFace() + "&sourcetype=16&soutype=2×tamp=" + DateUtils.getDate(); + "&face=" + teacher.getFace() + "&sourcetype=16&soutype=2×tamp=" + DateUtils.getDate()+"&time="+DateUtils.date2String(new Date(),DateUtils.format1); + weChatSms.setMsgUrl(msgUrl); + weChatSms.setTdType(TypeEnums.kaoqing.getType()); + smsMapper.insertWeChat(weChatSms); + } + } + } + + private void weChatChamberPush(String templateId, KqTeacherDto teacher , String key , AppDto appDto){ + String[] times = key.split("_"); + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); + if (StringUtils.isNotBlank(teacher.getOpenId())) { + List censusKqDtos ; + KqDto dto = new KqDto(); + dto.setEndTime(times[1]); + dto.setTemplateId(templateId); + dto.setType(times[2]); + dto.setUserId(teacher.getUserId()); + censusKqDtos = scFeign.selectCensusChamberKq(dto); + if (censusKqDtos != null && censusKqDtos.size() > 0) { + String message = ""; + for (CensusKqDto censusKqDto : censusKqDtos) { + int number = censusKqDto.getAllT() - censusKqDto.getKqT(); + message += "[" + censusKqDto.getClassName() + "]未考勤" + number + "人;"; + } + WeChatSms weChatSms = new WeChatSms(); + weChatSms.setTableName("qyhSmsNew" + tableSuffix); + weChatSms.setMsg("报告类型:" + KqTypeEnums.getName(Integer.valueOf(times[2])) + "出勤报告 \n - " + + "签到日期:" + DateUtils.date2String(new Date(), DateUtils.format1) + "(" + DateUtils.getWeekName() + ") \n - " + + "签到时间:" + times[0] + "-" + times[1] + " \n - " + + "整体数据:" + message.substring(0, message.length() - 1)); + weChatSms.setSchoolId(teacher.getSchoolId()); + weChatSms.setName(teacher.getName()); + weChatSms.setQiYeHaoUserId(teacher.getWeChatUserId()); + weChatSms.setReceiveUserId(teacher.getUserId()); + weChatSms.setAppId(appDto.getAgentId()); + weChatSms.setSecret(appDto.getAgentSecret()); + String msgUrl = "http://campus.myjxt.com/studentRecord/znxwwebapp/index.html?" + + "schoolid=" + teacher.getSchoolId() + "&userId=" + teacher.getUserId() + "&name=" + teacher.getName() + + "&pass=" + teacher.getPass() + "&type=4&soutype=2&time="+DateUtils.date2String(new Date(),DateUtils.format1); weChatSms.setMsgUrl(msgUrl); weChatSms.setTdType(TypeEnums.kaoqing.getType()); smsMapper.insertWeChat(weChatSms); diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/KqController.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/KqController.java index 1d53a82..da913d6 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/KqController.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/KqController.java @@ -1,17 +1,11 @@ package com.sincere.smartSearch.controller; -import com.sincere.common.dto.smartCampus.AppDto; -import com.sincere.common.dto.smartCampus.CensusKqDto; -import com.sincere.common.dto.smartCampus.KqTeacherDto; -import com.sincere.common.dto.smartCampus.TemplateDto; +import com.sincere.common.dto.smartCampus.*; import com.sincere.common.util.DateUtils; import com.sincere.smartSearch.model.KqTemplate; import com.sincere.smartSearch.service.KqService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.*; @@ -47,6 +41,11 @@ public class KqController { return kqService.selectSchoolTeacher(schoolId); } + @RequestMapping(value = "selectChamberTeacher",method = RequestMethod.GET) + public List selectChamberTeacher(@RequestParam("schoolId")int schoolId){ + return kqService.selectChamberTeacher(schoolId); + } + @RequestMapping(value = "getApp",method = RequestMethod.GET) public AppDto getApp(@RequestParam("schoolId")int schoolId , @RequestParam("type") int type){ Map map = new HashMap<>(); @@ -55,13 +54,13 @@ public class KqController { return kqService.selectApp(map); } - @RequestMapping(value = "getCensusKq",method = RequestMethod.GET) - public List getCensusKq(@RequestParam("userId") String userId , @RequestParam("type") int type){ - String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); - Map map = new HashMap<>(); - map.put("userId",userId); - map.put("tableName","SZ_AttendanceRecords"+tableSuffix); - map.put("type",type+""); - return kqService.selectCensusKq(map); + @RequestMapping(value = "getCensusKq",method = RequestMethod.POST) + public List getCensusKq(@RequestBody KqDto kqDto){ + return kqService.selectCensusKq(kqDto); + } + + @RequestMapping(value = "selectCensusChamberKq",method = RequestMethod.POST) + public List selectCensusChamberKq(@RequestBody KqDto kqDto){ + return kqService.selectCensusChamberKq(kqDto); } } diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/KqTemplateMapper.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/KqTemplateMapper.java index 33e01c6..f5351ed 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/KqTemplateMapper.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/KqTemplateMapper.java @@ -3,6 +3,7 @@ package com.sincere.smartSearch.mapper; import com.sincere.common.dto.smartCampus.AppDto; import com.sincere.common.dto.smartCampus.CensusKqDto; import com.sincere.common.dto.smartCampus.KqTeacherDto; +import com.sincere.smartSearch.model.KqChamber; import com.sincere.smartSearch.model.KqTemplate; import java.util.List; @@ -19,7 +20,23 @@ public interface KqTemplateMapper { List selectSchoolTeacher(int schoolId); + List selectChamberTeacher(int schoolId); + AppDto selectApp(Map map); List selectCensusKq(Map map); + + List selectChamberName(String userId); + + int selectChamberAllKq(Map map); + + int selectChamberTrueKq(Map map); + + int selectClassDealDate(Map map); + + int selectClassLeave(Map map); + + int selectChamberDealDate(Map map); + + int selectChamberLeave(Map map); } diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/KqChamber.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/KqChamber.java new file mode 100644 index 0000000..63651cf --- /dev/null +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/KqChamber.java @@ -0,0 +1,27 @@ +package com.sincere.smartSearch.model; + +/** + * @author chen + * @version 1.0 + * @date 2019/12/5 0005 10:02 + */ +public class KqChamber { + private int id ; + private String name ; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/KqService.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/KqService.java index 3c899f0..002219d 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/KqService.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/KqService.java @@ -2,6 +2,7 @@ package com.sincere.smartSearch.service; import com.sincere.common.dto.smartCampus.AppDto; import com.sincere.common.dto.smartCampus.CensusKqDto; +import com.sincere.common.dto.smartCampus.KqDto; import com.sincere.common.dto.smartCampus.KqTeacherDto; import com.sincere.smartSearch.model.KqTemplate; @@ -19,7 +20,11 @@ public interface KqService { List selectSchoolTeacher(int schoolId); + List selectChamberTeacher(int schoolId); + AppDto selectApp(Map map); - List selectCensusKq(Map map); + List selectCensusKq(KqDto kqDto); + + List selectCensusChamberKq(KqDto kqDto); } diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/KqServiceImpl.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/KqServiceImpl.java index e102189..7003788 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/KqServiceImpl.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/KqServiceImpl.java @@ -2,15 +2,17 @@ package com.sincere.smartSearch.service.impl; import com.sincere.common.dto.smartCampus.AppDto; import com.sincere.common.dto.smartCampus.CensusKqDto; +import com.sincere.common.dto.smartCampus.KqDto; import com.sincere.common.dto.smartCampus.KqTeacherDto; +import com.sincere.common.util.DateUtils; import com.sincere.smartSearch.mapper.KqTemplateMapper; +import com.sincere.smartSearch.model.KqChamber; import com.sincere.smartSearch.model.KqTemplate; import com.sincere.smartSearch.service.KqService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author chen @@ -34,12 +36,63 @@ public class KqServiceImpl implements KqService { } @Override + public List selectChamberTeacher(int schoolId) { + return kqTemplateMapper.selectChamberTeacher(schoolId); + } + + @Override public AppDto selectApp(Map map) { return kqTemplateMapper.selectApp(map); } @Override - public List selectCensusKq(Map map) { - return kqTemplateMapper.selectCensusKq(map); + public List selectCensusKq(KqDto kqDto) { + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); + Map map = new HashMap<>(); + map.put("userId",kqDto.getUserId()); + map.put("tableName","SZ_AttendanceRecords"+tableSuffix); + map.put("type",kqDto.getType()); + List list = kqTemplateMapper.selectCensusKq(map); + for(CensusKqDto censusKqDto : list){ + Map sqlMap = new HashMap<>(); + sqlMap.put("templateId",kqDto.getTemplateId()); + sqlMap.put("classId",censusKqDto.getClassId()+""); + int i = kqTemplateMapper.selectClassDealDate(sqlMap); + String date = DateUtils.date2String(new Date(),DateUtils.format1); + sqlMap.put("endTime",date+" " + kqDto.getEndTime() +":00"); + i = i + kqTemplateMapper.selectClassLeave(sqlMap); + censusKqDto.setKqT(censusKqDto.getKqT()+i); + } + return list ; + } + + @Override + public List selectCensusChamberKq(KqDto kqDto) { + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format); + Map map = new HashMap<>(); + map.put("userId",kqDto.getUserId()); + map.put("tableName","SZ_AttendanceRecords"+tableSuffix); + map.put("type",kqDto.getType()); + List list = new ArrayList<>(); + List chambers = kqTemplateMapper.selectChamberName(map.get("userId")); + for(KqChamber chamber :chambers){ + CensusKqDto censusKqDto = new CensusKqDto(); + map.put("id",chamber.getId()+""); + int allKq = kqTemplateMapper.selectChamberAllKq(map); + int trueKq = kqTemplateMapper.selectChamberTrueKq(map); + censusKqDto.setClassName(chamber.getName()); + censusKqDto.setAllT(allKq); + Map sqlMap = new HashMap<>(); + sqlMap.put("templateId",kqDto.getTemplateId()); + sqlMap.put("userId",kqDto.getUserId()); + sqlMap.put("id",chamber.getId()+""); + int i = kqTemplateMapper.selectClassDealDate(sqlMap); + String date = DateUtils.date2String(new Date(),DateUtils.format1); + sqlMap.put("endTime",date+" " + kqDto.getEndTime() +":00"); + i = i + kqTemplateMapper.selectChamberLeave(sqlMap); + censusKqDto.setKqT(trueKq+i); + list.add(censusKqDto); + } + return list; } } diff --git a/cloud/search_smartCampus/src/main/resources/mapper/KqTemplateMapper.xml b/cloud/search_smartCampus/src/main/resources/mapper/KqTemplateMapper.xml index 50b57a5..5aadc19 100644 --- a/cloud/search_smartCampus/src/main/resources/mapper/KqTemplateMapper.xml +++ b/cloud/search_smartCampus/src/main/resources/mapper/KqTemplateMapper.xml @@ -36,6 +36,13 @@ where a.role_state=1 and SZ_UserRole.userType = 0 + + @@ -46,12 +53,13 @@ + + + + + + + + + + + + + + + + + + + + + -- libgit2 0.21.0