|
@@ -1,15 +1,14 @@
|
|
|
package com.ruoyi.system.service;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.extra.mail.MailUtil;
|
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
-import com.ruoyi.system.domain.KeyPeopleInfo;
|
|
|
-import com.ruoyi.system.domain.OdsQssHsjcxx;
|
|
|
-import com.ruoyi.system.domain.UserInfo;
|
|
|
-import com.ruoyi.system.domain.UserNucleicTime;
|
|
|
+import com.ruoyi.system.domain.*;
|
|
|
+import com.ruoyi.system.mapper.AkmDataMapper;
|
|
|
import com.ruoyi.system.mapper.KeyPeopleInfoMapper;
|
|
|
import com.ruoyi.system.mapper.SysDeptMapper;
|
|
|
import com.ruoyi.system.utils.ExcelUtils;
|
|
@@ -33,11 +32,13 @@ public class Task {
|
|
|
private SysDeptMapper deptMapper;
|
|
|
@Resource
|
|
|
private KeyPeopleInfoMapper keyPeopleInfoMapper;
|
|
|
+ @Resource
|
|
|
+ private AkmDataMapper akmDataMapper;
|
|
|
|
|
|
/***
|
|
|
* 邮件发送(定时比对数据后发送邮件)
|
|
|
*/
|
|
|
- @Scheduled(cron = "0 0 * * * ? ")
|
|
|
+ //@Scheduled(cron = "0 0/30 * * * ? ")
|
|
|
public void thirdNucleicAcid() {
|
|
|
try {
|
|
|
SysDept dept = new SysDept();
|
|
@@ -55,8 +56,8 @@ public class Task {
|
|
|
//获取当前时间
|
|
|
Date data = DateUtils.getNowDate();
|
|
|
String endTime = DateUtils.formatString(data);
|
|
|
- //往前推1个小时
|
|
|
- String startTime = DateUtils.plusSeconds(endTime, -60);
|
|
|
+ //往前推半个小时
|
|
|
+ String startTime = DateUtils.plusSeconds(endTime, -30);
|
|
|
|
|
|
//SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
|
//UserInfo userInfo = new UserInfo();
|
|
@@ -70,135 +71,62 @@ public class Task {
|
|
|
List<String> idCardList = keyPeopleInfoList.stream().map(KeyPeopleInfo::getIdCard).collect(Collectors.toList());
|
|
|
//从第三方数据库查询人员核酸计录
|
|
|
List<OdsQssHsjcxx> OdsQssHsjcxxList = qdsQssHsjcxxService.thirdNucleicAcid(startTime, endTime, idCardList);
|
|
|
- if(OdsQssHsjcxxList == null || OdsQssHsjcxxList.size() <= 0){
|
|
|
+ //查询安康码采集地点信息
|
|
|
+ List<AkmData> akmDataList = akmDataMapper.selectAkmDataListByIdList(startTime, endTime, idCardList);
|
|
|
+ if((OdsQssHsjcxxList == null || OdsQssHsjcxxList.size() <= 0) && (akmDataList == null || akmDataList.size() <= 0)){
|
|
|
return;
|
|
|
}
|
|
|
- /*Map<String, List<OdsQssHsjcxx>> OdsQssHsjcxxMapSorted = new HashMap<>();
|
|
|
- if (OdsQssHsjcxxList != null && OdsQssHsjcxxList.size() > 0) {
|
|
|
- OdsQssHsjcxxMapSorted = OdsQssHsjcxxList.stream().sorted(Comparator.comparing(OdsQssHsjcxx::getCjsj).reversed()).collect(Collectors.groupingBy(OdsQssHsjcxx::getSfzhm));
|
|
|
- }
|
|
|
|
|
|
|
|
|
- int index = 0;
|
|
|
- int count = 0;
|
|
|
- List<UserInfo> userList = new ArrayList<>();
|
|
|
-
|
|
|
- for (KeyPeopleInfo peopleInfo : keyPeopleInfoList) {
|
|
|
- UserInfo userInfo = new UserInfo();
|
|
|
- userInfo.setDeptId(depts.get(0).getDeptId().toString());
|
|
|
- userInfo.setPhoneNum(peopleInfo.getPhoneNum());
|
|
|
- userInfo.setName(peopleInfo.getName());
|
|
|
- userInfo.setIdCard(peopleInfo.getIdCard());
|
|
|
-
|
|
|
- //采集地点
|
|
|
- StringBuilder collectPlace = new StringBuilder();
|
|
|
- //核酸采集时间
|
|
|
- StringBuilder nucleicCollectTime = new StringBuilder();
|
|
|
- //核酸结果时间
|
|
|
- StringBuilder nucleicResultsTime = new StringBuilder();
|
|
|
- //核酸结果
|
|
|
- StringBuilder nucleicResults = new StringBuilder();
|
|
|
-
|
|
|
-
|
|
|
- userInfo.setJobStyle("重点人群");
|
|
|
- userInfo.setFocusCrowdStyle("重点人群");
|
|
|
- userInfo.setDetectionFrequency(detectionNumber + "/" + detectionScope);
|
|
|
- userInfo.setDetectionNumber(detectionNumber);
|
|
|
- userInfo.setDetectionScope(detectionScope);
|
|
|
- userInfo.setStartTime(startTime);
|
|
|
- userInfo.setEndTime(endTime);
|
|
|
- //判断结果是否合格,默认合格
|
|
|
- Boolean bl = true;
|
|
|
-
|
|
|
- index = 0;
|
|
|
- count = 0;
|
|
|
- if (OdsQssHsjcxxMapSorted.size() > 0) {
|
|
|
- //身份证号码
|
|
|
- String idCard = userInfo.getIdCard();
|
|
|
- List<OdsQssHsjcxx> odsQssHsjcxxes = OdsQssHsjcxxMapSorted.get(idCard);
|
|
|
- if (odsQssHsjcxxes != null && odsQssHsjcxxes.size() > 0) {
|
|
|
- //String time = null;
|
|
|
-
|
|
|
- for (OdsQssHsjcxx odsQssHsjcxx : odsQssHsjcxxes) {
|
|
|
-
|
|
|
- if (StringUtils.isNotEmpty(collectPlace.toString())) {
|
|
|
- collectPlace.append("<br>");
|
|
|
- }
|
|
|
- collectPlace.append(odsQssHsjcxx.getJcdd());
|
|
|
-
|
|
|
- if (StringUtils.isNotEmpty(nucleicCollectTime.toString())) {
|
|
|
- nucleicCollectTime.append("<br>");
|
|
|
- }
|
|
|
- nucleicCollectTime.append(odsQssHsjcxx.getCjsj());
|
|
|
-
|
|
|
- if (StringUtils.isNotEmpty(nucleicResultsTime.toString())) {
|
|
|
- nucleicResultsTime.append("<br>");
|
|
|
- }
|
|
|
- nucleicResultsTime.append(odsQssHsjcxx.getJgcjss());
|
|
|
-
|
|
|
- if (StringUtils.isNotEmpty(nucleicResults.toString())) {
|
|
|
- nucleicResults.append("<br>");
|
|
|
- }
|
|
|
- if(StringUtils.isEmpty(odsQssHsjcxx.getJcjg())){
|
|
|
- nucleicResults.append(odsQssHsjcxx.getJcjg());
|
|
|
- }else if("0".equals(odsQssHsjcxx.getJcjg()) || "negative".equals(odsQssHsjcxx.getJcjg())){
|
|
|
- nucleicResults.append("阴性");
|
|
|
- }else if("1".equals(odsQssHsjcxx.getJcjg()) || "positive".equals(odsQssHsjcxx.getJcjg())){
|
|
|
- nucleicResults.append("阳性");
|
|
|
- }else{
|
|
|
- nucleicResults.append(odsQssHsjcxx.getJcjg());
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- index = odsQssHsjcxxes.size();
|
|
|
- }
|
|
|
+ //List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ sb.append("时间:"+startTime+"--"+endTime);
|
|
|
+ StringBuilder sb1 = new StringBuilder();
|
|
|
+ sb1.append("时间:"+startTime+"--"+endTime);
|
|
|
|
|
|
|
|
|
- }
|
|
|
- if (index < Integer.parseInt(detectionNumber)) {
|
|
|
- bl = false;
|
|
|
- }
|
|
|
- userInfo.setCollectPlace(collectPlace.toString());
|
|
|
- userInfo.setNucleicCollectTime(nucleicCollectTime.toString());
|
|
|
- userInfo.setNucleicResultsTime(nucleicResultsTime.toString());
|
|
|
- userInfo.setNucleicResults(nucleicResults.toString());
|
|
|
- userInfo.setDetectionProgress(index + "/" + detectionNumber);
|
|
|
-
|
|
|
- if (bl) {
|
|
|
- userInfo.setDetectionResult("正常");
|
|
|
- } else {
|
|
|
- userInfo.setDetectionResult("异常");
|
|
|
- }
|
|
|
+ boolean b = false;
|
|
|
+ boolean b1 = false;
|
|
|
+ if(OdsQssHsjcxxList != null && OdsQssHsjcxxList.size() > 0){
|
|
|
|
|
|
- userList.add(userInfo);
|
|
|
- }*/
|
|
|
+ sb.append("<br>").append("核酸采集点数据:");
|
|
|
+ sb1.append("<br>").append("核酸采集点数据:");
|
|
|
|
|
|
- /*if (OdsQssHsjcxxList != null && OdsQssHsjcxxList.size() > 0) {
|
|
|
for (OdsQssHsjcxx odsQssHsjcxx : OdsQssHsjcxxList) {
|
|
|
- for (UserInfo userInfo : userList) {
|
|
|
- if (userInfo.getIdCard().equals(odsQssHsjcxx.getSfzhm())) {
|
|
|
- UserNucleicTime userNucleicTime = new UserNucleicTime();
|
|
|
- userNucleicTime.setInfoId(userInfo.getId());
|
|
|
- userNucleicTime.setIdCard(odsQssHsjcxx.getSfzhm());
|
|
|
- userNucleicTime.setCollectPlace(odsQssHsjcxx.getJcdd());
|
|
|
- userNucleicTime.setNucleicCollectTime(odsQssHsjcxx.getCjsj());
|
|
|
- userNucleicTime.setNucleicResultsTime(odsQssHsjcxx.getJgcjss());
|
|
|
- userNucleicTime.setJobStyle(jobStyle);
|
|
|
- userNucleicTime.setFocusCrowdStyle(focusCrowdStyle);
|
|
|
- userNucleicTime.setName(userInfo.getName());
|
|
|
- userNucleicTime.setPhoneNum(userInfo.getPhoneNum());
|
|
|
- userNucleicTime.setDeptId(user.getDeptId().toString());
|
|
|
- UserNucleicTimeList.add(userNucleicTime);
|
|
|
- userNucleicTime.setDateSource("批量导入");
|
|
|
+
|
|
|
+ if(odsQssHsjcxx.getSfzhm().substring(0,2).equals("65")){
|
|
|
+ if(odsQssHsjcxx.getXm().length()==2){
|
|
|
+ sb.append("<br>").append(odsQssHsjcxx.getXm()).append(" ---").append(odsQssHsjcxx.getSfzhm()).append("---");
|
|
|
+ }else{
|
|
|
+ sb.append("<br>").append(odsQssHsjcxx.getXm()).append("---").append(odsQssHsjcxx.getSfzhm()).append("---");
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(odsQssHsjcxx.getSjhm())){
|
|
|
+ sb.append(odsQssHsjcxx.getSjhm()).append("---").append(odsQssHsjcxx.getCjsj());
|
|
|
+ sb.append("---").append(odsQssHsjcxx.getJcdd());
|
|
|
+ }else{
|
|
|
+ sb.append(" ");
|
|
|
+ sb.append("---").append(odsQssHsjcxx.getCjsj()).append("---").append(odsQssHsjcxx.getJcdd());
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
|
|
|
- List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
+ b = true;
|
|
|
+ }else {
|
|
|
+ if(odsQssHsjcxx.getXm().length()==2){
|
|
|
+ sb1.append("<br>").append(odsQssHsjcxx.getXm()).append(" ---").append(odsQssHsjcxx.getSfzhm()).append("---");
|
|
|
+ }else{
|
|
|
+ sb1.append("<br>").append(odsQssHsjcxx.getXm()).append("---").append(odsQssHsjcxx.getSfzhm()).append("---");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isNotEmpty(odsQssHsjcxx.getSjhm())){
|
|
|
+ sb1.append(odsQssHsjcxx.getSjhm()).append("---").append(odsQssHsjcxx.getCjsj());
|
|
|
+ sb1.append("---").append(odsQssHsjcxx.getJcdd());
|
|
|
+ }else{
|
|
|
+ sb1.append(" ");
|
|
|
+ sb1.append("---").append(odsQssHsjcxx.getCjsj()).append("---").append(odsQssHsjcxx.getJcdd());
|
|
|
+ }
|
|
|
+ b1 = true;
|
|
|
+ }
|
|
|
|
|
|
- for (OdsQssHsjcxx odsQssHsjcxx : OdsQssHsjcxxList) {
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
+ /*Map<String, Object> map = new HashMap<>();
|
|
|
map.put("姓名", odsQssHsjcxx.getXm());
|
|
|
map.put("身份证号码", odsQssHsjcxx.getSfzhm());
|
|
|
map.put("联系号码", odsQssHsjcxx.getSjhm());
|
|
@@ -215,18 +143,78 @@ public class Task {
|
|
|
map.put("采集结果", "");
|
|
|
map.put("比对开始时间", startTime);
|
|
|
map.put("比对结束时间", endTime);
|
|
|
- mapList.add(map);
|
|
|
+ mapList.add(map);*/
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ if(akmDataList != null || akmDataList.size() > 0){
|
|
|
+ sb.append("<br>").append("安康码扫码地点数据:");
|
|
|
+ sb1.append("<br>").append("安康码扫码地点数据:");
|
|
|
|
|
|
- String path = ExcelUtils.getInstance().createExcel(mapList, "核酸对比数据", "对比数据");
|
|
|
- MailUtil.send("qsxzhb@126.com", "重点人群定时对比数据", "时间:"+startTime+"--"+endTime, true,
|
|
|
- FileUtil.file(path));
|
|
|
- MailUtil.send("731020@qq.com", "重点人群定时对比数据", "时间:"+startTime+"--"+endTime, true,
|
|
|
+ for (AkmData akmData : akmDataList) {
|
|
|
+
|
|
|
+ if(akmData.getIdCard().substring(0,2).equals("65")){
|
|
|
+ if(akmData.getName().length()==2){
|
|
|
+ sb.append("<br>").append(akmData.getName()).append(" ---").append(akmData.getIdCard()).append("---");
|
|
|
+ }else{
|
|
|
+ sb.append("<br>").append(akmData.getName()).append("---").append(akmData.getIdCard()).append("---");
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(akmData.getPhoneNum())){
|
|
|
+ sb.append(akmData.getPhoneNum()).append("---").append(akmData.getCollectTime());
|
|
|
+ sb.append("---").append(akmData.getCollectSite());
|
|
|
+ }else{
|
|
|
+ sb.append(" ");
|
|
|
+ sb.append("---").append(akmData.getCollectTime()).append("---").append(akmData.getCollectSite());
|
|
|
+ }
|
|
|
+
|
|
|
+ b = true;
|
|
|
+ }else {
|
|
|
+ if(akmData.getName().length()==2){
|
|
|
+ sb1.append("<br>").append(akmData.getName()).append(" ---").append(akmData.getIdCard()).append("---");
|
|
|
+ }else{
|
|
|
+ sb1.append("<br>").append(akmData.getName()).append("---").append(akmData.getIdCard()).append("---");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isNotEmpty(akmData.getPhoneNum())){
|
|
|
+ sb1.append(akmData.getPhoneNum()).append("---").append(akmData.getCollectTime());
|
|
|
+ sb1.append("---").append(akmData.getCollectSite());
|
|
|
+ }else{
|
|
|
+ sb1.append(" ");
|
|
|
+ sb1.append("---").append(akmData.getCollectTime()).append("---").append(akmData.getCollectSite());
|
|
|
+ }
|
|
|
+ b1 = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(b){
|
|
|
+ ArrayList<String> tos = CollUtil.newArrayList(
|
|
|
+ "3555393474@qq.com",
|
|
|
+ "731020@qq.com");
|
|
|
+ ArrayList<String> tos1 = CollUtil.newArrayList(
|
|
|
+ "1223814488@qq.com",
|
|
|
+ "15156696045@139.com");
|
|
|
+ MailUtil.send(tos, "会员积分实时变动通知", sb.toString(), true);
|
|
|
+ }
|
|
|
+ if(b1){
|
|
|
+ ArrayList<String> tos = CollUtil.newArrayList(
|
|
|
+ "qsxzhb@126.com",
|
|
|
+ "731020@qq.com");
|
|
|
+ ArrayList<String> tos1 = CollUtil.newArrayList(
|
|
|
+ "1434899932@qq.com",
|
|
|
+ "1434745622@qq.com");
|
|
|
+ MailUtil.send(tos, "会员积分实时变动通知", sb1.toString(), true);
|
|
|
+ }
|
|
|
+
|
|
|
+ //String path = ExcelUtils.getInstance().createExcel(mapList, "核酸对比数据", "对比数据");
|
|
|
+ /*MailUtil.send("qsxzhb@126.com", "会员积分实时变动通知", "时间:"+startTime+"--"+endTime, true,
|
|
|
FileUtil.file(path));
|
|
|
+ MailUtil.send("731020@qq.com", "会员积分实时变动通知", "时间:"+startTime+"--"+endTime, true,
|
|
|
+ FileUtil.file(path));*/
|
|
|
//删除系统文件
|
|
|
- File file = new File(path);
|
|
|
- file.delete();
|
|
|
+ //File file = new File(path);
|
|
|
+ //file.delete();
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|