update 标准预警时间区间查询
This commit is contained in:
+2
@@ -11,5 +11,7 @@ public class MessageTemplateCodeCommon {
|
||||
|
||||
public static final String LAWS_NEWS_FEED = "laws_news_feed"; // 【动态消息】通知
|
||||
public static final String LAWS_PROBLEM_LIBRARY = "laws_problem_library"; // 【问答库】回答已置顶
|
||||
public static final String NEW_MODEL_IMPLEMENTATION = "new_model_implementation"; // 【新车型实施预警】
|
||||
public static final String ON_THE_PRODUCTION = "on_the_production"; // 【在产车实施预警】
|
||||
|
||||
}
|
||||
|
||||
+13
@@ -3,6 +3,7 @@ package com.jero.modules.laws.localTool.entity;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@@ -10,6 +11,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -66,4 +68,15 @@ public class StandardEarlyWarning {
|
||||
/**当前天前一周*/
|
||||
private List<String> dayStrings;
|
||||
|
||||
/**查询时间开始*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "查询时间开始")
|
||||
private java.util.Date startDate;
|
||||
/**查询时间结束*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "查询时间结束")
|
||||
private java.util.Date endDate;
|
||||
|
||||
}
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.jero.modules.laws.localTool.job;
|
||||
|
||||
import com.jero.common.util.SpringContextUtils;
|
||||
import com.jero.modules.laws.localTool.service.ILawsStandardEarlyWarningService;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/10 17:12
|
||||
* @Description: 标准预警
|
||||
*/
|
||||
public class StandardEarlyWarningJob implements Job {
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
ILawsStandardEarlyWarningService bean = SpringContextUtils.getBean(ILawsStandardEarlyWarningService.class);
|
||||
bean.sendMsg();
|
||||
}
|
||||
}
|
||||
+14
-2
@@ -100,19 +100,31 @@
|
||||
<foreach collection="param.dayStrings" separator="," open="(" close=")" item="item">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="param.startDate != null">
|
||||
AND STR_TO_DATE(dataInfo.new_model_implementation_date, '%Y-%m-%d') <![CDATA[ >= ]]> #{param.startDate}
|
||||
</if>
|
||||
<if test="param.endDate != null">
|
||||
AND STR_TO_DATE(dataInfo.new_model_implementation_date, '%Y-%m-%d') <![CDATA[ <= ]]> #{param.endDate}
|
||||
</if>
|
||||
</if>
|
||||
<if test="param.onTheProductionDate != null and param.onTheProductionDate != ''">
|
||||
dataInfo.on_the_production_date IN
|
||||
<foreach collection="param.dayStrings" separator="," open="(" close=")" item="item">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test="param.startDate != null">
|
||||
AND STR_TO_DATE(dataInfo.on_the_production_date, '%Y-%m-%d') <![CDATA[ >= ]]> #{param.startDate}
|
||||
</if>
|
||||
<if test="param.endDate != null">
|
||||
AND STR_TO_DATE(dataInfo.on_the_production_date, '%Y-%m-%d') <![CDATA[ <= ]]> #{param.endDate}
|
||||
</if>
|
||||
</if>
|
||||
ORDER BY
|
||||
<if test="param.newModelImplementationDate != null and param.newModelImplementationDate != ''">
|
||||
dataInfo.new_model_implementation_date ASC
|
||||
STR_TO_DATE(dataInfo.new_model_implementation_date, '%Y-%m-%d') ASC
|
||||
</if>
|
||||
<if test="param.onTheProductionDate != null and param.onTheProductionDate != ''">
|
||||
dataInfo.on_the_production_date ASC
|
||||
STR_TO_DATE(dataInfo.on_the_production_date, '%Y-%m-%d') ASC
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
+7
@@ -23,4 +23,11 @@ public interface ILawsStandardEarlyWarningService {
|
||||
* @Description: 在产车实施预警
|
||||
**/
|
||||
IPage<StandardEarlyWarning> onTheProduction(StandardEarlyWarning standardEarlyWarning, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/10 17:13
|
||||
* @Description: 定时发送消息
|
||||
**/
|
||||
void sendMsg();
|
||||
}
|
||||
|
||||
+74
@@ -1,20 +1,31 @@
|
||||
package com.jero.modules.laws.localTool.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
|
||||
import com.jero.modules.laws.common.util.DateUtil;
|
||||
import com.jero.modules.laws.localTool.entity.StandardEarlyWarning;
|
||||
import com.jero.modules.laws.localTool.mapper.LawsStandardEarlyWarningMapper;
|
||||
import com.jero.modules.laws.localTool.service.ILawsStandardEarlyWarningService;
|
||||
import com.jero.modules.system.entity.SysUserDepart;
|
||||
import com.jero.modules.system.service.ISysUserDepartService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.function.BinaryOperator;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
@@ -27,6 +38,10 @@ public class LawsStandardEarlyWarningServiceImpl implements ILawsStandardEarlyWa
|
||||
|
||||
@Autowired
|
||||
private LawsStandardEarlyWarningMapper lawsStandardEarlyWarningMapper;
|
||||
@Resource
|
||||
private ILawsStandardEarlyWarningService lawsStandardEarlyWarningService;
|
||||
@Resource
|
||||
private ISysUserDepartService userDepartService;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
@@ -67,4 +82,63 @@ public class LawsStandardEarlyWarningServiceImpl implements ILawsStandardEarlyWa
|
||||
return pageList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/10 17:13
|
||||
* @Description: 定时发送消息
|
||||
**/
|
||||
@Override
|
||||
public void sendMsg() {
|
||||
StandardEarlyWarning newModelImplementation = new StandardEarlyWarning();
|
||||
IPage<StandardEarlyWarning> newPage = lawsStandardEarlyWarningService.newModelImplementation(newModelImplementation, -1, -1);
|
||||
List<StandardEarlyWarning> newList = newPage.getRecords();
|
||||
StandardEarlyWarning onTheProduction = new StandardEarlyWarning();
|
||||
IPage<StandardEarlyWarning> onPage = lawsStandardEarlyWarningService.onTheProduction(onTheProduction, -1, -1);
|
||||
List<StandardEarlyWarning> onList = onPage.getRecords();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
// 新车型实施日期
|
||||
if (CollectionUtils.isNotEmpty(newList)) {
|
||||
// 根据 id 字段去重,保留日期最小的
|
||||
List<StandardEarlyWarning> distinctList = newList.stream()
|
||||
.collect(Collectors.toMap(StandardEarlyWarning::getId, Function.identity(),
|
||||
BinaryOperator.minBy((e1, e2) -> LocalDate.parse(e1.getNewModelImplementationDate(), formatter)
|
||||
.compareTo(LocalDate.parse(e2.getNewModelImplementationDate(), formatter)))))
|
||||
.values()
|
||||
.stream()
|
||||
.collect(Collectors.toList());
|
||||
sendMsgList(MessageTemplateCodeCommon.NEW_MODEL_IMPLEMENTATION, distinctList);
|
||||
}
|
||||
// 在产车实施日期
|
||||
if (CollectionUtils.isNotEmpty(onList)) {
|
||||
// 根据 id 字段去重,保留日期最小的
|
||||
List<StandardEarlyWarning> distinctList = onList.stream()
|
||||
.collect(Collectors.toMap(StandardEarlyWarning::getId, Function.identity(),
|
||||
BinaryOperator.minBy((e1, e2) -> LocalDate.parse(e1.getOnTheProductionDate(), formatter)
|
||||
.compareTo(LocalDate.parse(e2.getOnTheProductionDate(), formatter)))))
|
||||
.values()
|
||||
.stream()
|
||||
.collect(Collectors.toList());
|
||||
sendMsgList(MessageTemplateCodeCommon.ON_THE_PRODUCTION, distinctList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/10 17:39
|
||||
* @Description: 发送消息
|
||||
**/
|
||||
private void sendMsgList(String templateCode, List<StandardEarlyWarning> distinctList) {
|
||||
distinctList.forEach(data -> {
|
||||
String departId = data.getResponsibleDepartment();
|
||||
LambdaQueryWrapper<SysUserDepart> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUserDepart::getDepId, departId);
|
||||
List<SysUserDepart> userDepartList = userDepartService.list(queryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(userDepartList)) {
|
||||
// 每个部门需要发消息的用户id集合
|
||||
List<String> userIdList = userDepartList.stream().map(SysUserDepart::getUserId).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user