diff --git a/laws-modules/src/main/java/com/jero/modules/laws/library/service/impl/LawsProblemLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/library/service/impl/LawsProblemLibraryServiceImpl.java index 1e0a176d..886b9217 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/library/service/impl/LawsProblemLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/library/service/impl/LawsProblemLibraryServiceImpl.java @@ -34,6 +34,8 @@ import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.query.QueryGenerator; + +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -57,7 +59,7 @@ public class LawsProblemLibraryServiceImpl extends ServiceImpl distinctList) { + private void sendMsgList(String templateCode, List distinctList, Boolean flag) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); distinctList.forEach(data -> { String departId = data.getResponsibleDepartment(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -136,9 +144,50 @@ public class LawsStandardEarlyWarningServiceImpl implements ILawsStandardEarlyWa if (CollectionUtils.isNotEmpty(userDepartList)) { // 每个部门需要发消息的用户id集合 List userIdList = userDepartList.stream().map(SysUserDepart::getUserId).collect(Collectors.toList()); - + String userIds = StringUtils.join(userIdList, ","); + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + sendMessageDTO.setTemplateCode(templateCode); + sendMessageDTO.setToUserId(userIds); + Map map = new HashMap<>(); + map.put("standardNumber", data.getStandardNumber()); + map.put("standardName", data.getStandardName()); + Date date; + Date toDay = new Date(); + try { + if (flag) { // 新车型实施日期 + date = dateFormat.parse(data.getNewModelImplementationDate()); + } else { // 在产车实施日期 + date = dateFormat.parse(data.getOnTheProductionDate()); + } + } catch (ParseException e) { + e.printStackTrace(); + throw new JeroBootException("时间格式转换错误"); + } + long days = getBetweenDays(date, toDay); + map.put("days", days + ""); + sendMessageDTO.setMap(map); + sendMessageAPI.sendMessage(sendMessageDTO); } }); } + /** + * @Author: liao + * @Date: 2023/11/10 18:46 + * @Description: 获取两个日期之间的天数 + **/ + private long getBetweenDays(Date startDate, Date endDate) { + // 将 Date 转换为 Instant + Instant startInstant = startDate.toInstant(); + Instant endInstant = endDate.toInstant(); + + // 将 Instant 转换为 LocalDate + LocalDate startLocalDate = startInstant.atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate endLocalDate = endInstant.atZone(ZoneId.systemDefault()).toLocalDate(); + + // 使用 ChronoUnit 计算日期差 + long days = ChronoUnit.DAYS.between(startLocalDate, endLocalDate); + return days; + } + }