inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/InformationNotification.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/InformationNotificationDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-system/src/main/java/com/ruoyi/system/mapper/InformationNotificationMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-system/src/main/java/com/ruoyi/system/service/InformationNotificationService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InformationNotificationServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-system/src/main/resources/mapper/system/InformationNotificationMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -2,7 +2,6 @@ // //import cn.hutool.core.util.StrUtil; //import cn.hutool.json.JSONUtil; //import com.aspose.words.*; //import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; //import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; //import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -13,27 +12,17 @@ //import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; //import com.deepoove.poi.XWPFTemplate; //import com.deepoove.poi.data.Pictures; //import com.itextpdf.text.BadElementException; //import com.itextpdf.text.DocumentException; //import com.itextpdf.text.pdf.PdfContentByte; //import com.itextpdf.text.pdf.PdfReader; //import com.itextpdf.text.pdf.PdfStamper; //import com.yuanchu.mom.common.GetLook; //import com.yuanchu.mom.common.InsOrderTypeConstants; //import com.yuanchu.mom.common.PrintChina; //import com.yuanchu.mom.dto.ReportPageDto; //import com.yuanchu.mom.exception.ErrorException; //import com.yuanchu.mom.mapper.*; //import com.yuanchu.mom.pojo.*; //import com.yuanchu.mom.properties.WechatProperty; //import com.yuanchu.mom.service.InformationNotificationService; //import com.yuanchu.mom.service.InsOrderService; //import com.yuanchu.mom.service.InsReportService; //import com.yuanchu.mom.utils.DateImageUtil; //import com.yuanchu.mom.utils.IfsApiUtils; //import com.yuanchu.mom.utils.QueryWrappers; //import com.yuanchu.mom.utils.WxCpUtils; //import com.yuanchu.mom.vo.Result; //import com.ruoyi.common.properties.WechatProperty; //import com.ruoyi.common.utils.QueryWrappers; //import com.ruoyi.inspect.dto.ReportPageDto; //import com.ruoyi.inspect.mapper.InsOrderStateMapper; //import com.ruoyi.inspect.mapper.InsProductMapper; //import com.ruoyi.inspect.mapper.InsReportMapper; //import com.ruoyi.inspect.mapper.InsUnqualifiedRetestProductMapper; //import com.ruoyi.inspect.pojo.InsReport; //import com.ruoyi.inspect.service.InsOrderService; //import com.ruoyi.inspect.service.InsReportService; //import com.ruoyi.system.mapper.UserMapper; //import org.apache.poi.xwpf.usermodel.*; //import org.springframework.beans.factory.annotation.Value; //import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/InformationNotification.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ package com.ruoyi.common.core.domain.entity; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import java.io.Serializable; import java.time.LocalDateTime; /** * <p> * æ¶æ¯éç¥ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-04-23 02:14:30 */ @Getter @Setter @TableName("information_notification") @ApiModel(value = "InformationNotification对象", description = "æ¶æ¯éç¥") public class InformationNotification implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("主é®ID") @TableId(type = IdType.AUTO) private Integer id; @ApiModelProperty("å建人") private String createUser; @ApiModelProperty("æ´æ°æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty("å建æ¶é´/åéæ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("å¾ åãæ¥æ¶ãå®¡æ ¸ãæ¹åãé¢è¦æéãéç¥å ¬å") private String messageType; @ApiModelProperty("主é¢") private String theme; @ApiModelProperty("å 容") private String content; @ApiModelProperty("åé人Id") private Integer senderId; @ApiModelProperty("æ¶ä»¶äºº") private Integer consigneeId; @ApiModelProperty("æ¥çç¶æï¼å·²è¯»ï¼æªè¯»") private Boolean viewStatus; @ApiModelProperty("æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ï¼ï¼æ ¹æ®æ¶æ¯ç±»åå±ç¤ºï¼") private Boolean messageStatus; @ApiModelProperty("跳转路å¾") private String jumpPath; @ApiModelProperty("跳转Id") private String jumpId; } ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/InformationNotificationDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.ruoyi.common.core.domain.entity; import lombok.Data; @Data public class InformationNotificationDto extends InformationNotification{ private String senderUser; private String consigneeUser; } ruoyi-system/src/main/java/com/ruoyi/system/mapper/InformationNotificationMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.InformationNotificationDto; /** * <p> * æ¶æ¯éç¥ Mapper æ¥å£ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-04-23 02:14:30 */ public interface InformationNotificationMapper extends BaseMapper<InformationNotification> { IPage<InformationNotificationDto> getPage(Page page, String messageType, Integer userId); } ruoyi-system/src/main/java/com/ruoyi/system/service/InformationNotificationService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.InformationNotificationDto; import java.util.Map; /** * <p> * æ¶æ¯éç¥ æå¡ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-04-23 02:14:30 */ public interface InformationNotificationService extends IService<InformationNotification> { IPage<InformationNotificationDto> getPage(Page page, String messageType); void markAllInformationReadOrDeleteAllReadMessages(Boolean isMarkAllInformationRead); Boolean checkForUnreadData(); void triggerModificationStatusToRead(Integer id); int addInformationNotification(InformationNotification informationNotification); Map<String, Object> getNumberFourTypesMessagesHomePage(); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InformationNotificationServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.InformationNotificationDto; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.mapper.InformationNotificationMapper; import com.ruoyi.system.service.InformationNotificationService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDate; import java.util.HashMap; import java.util.List; import java.util.Map; /** * <p> * æ¶æ¯éç¥ æå¡å®ç°ç±» * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-04-23 02:14:30 */ @Service public class InformationNotificationServiceImpl extends ServiceImpl<InformationNotificationMapper, InformationNotification> implements InformationNotificationService { @Override public IPage<InformationNotificationDto> getPage(Page page, String messageType) { return baseMapper.getPage(page, messageType, SecurityUtils.getUserId().intValue()); } @Override public void markAllInformationReadOrDeleteAllReadMessages(Boolean isMarkAllInformationRead) { if (isMarkAllInformationRead) { baseMapper.update(new InformationNotification(), Wrappers.<InformationNotification>lambdaUpdate() .set(InformationNotification::getViewStatus, true) .eq(InformationNotification::getConsigneeId, SecurityUtils.getUserId().intValue())); } else { baseMapper.delete(Wrappers.<InformationNotification>lambdaUpdate() .eq(InformationNotification::getConsigneeId, SecurityUtils.getUserId().intValue()) .eq(InformationNotification::getViewStatus, true)); } } @Override public Boolean checkForUnreadData() { Map<String, Integer> map1 = null; try { List<InformationNotification> informationNotifications = baseMapper.selectList( Wrappers.<InformationNotification>lambdaQuery() .eq(InformationNotification::getConsigneeId, SecurityUtils.getUserId().intValue()) .eq(InformationNotification::getViewStatus, false) .last("limit 1")); return !informationNotifications.isEmpty(); } catch (Exception e) { } return false; } @Override public void triggerModificationStatusToRead(Integer id) { baseMapper.update(new InformationNotification(), Wrappers.<InformationNotification>lambdaUpdate() .eq(InformationNotification::getId, id) .set(InformationNotification::getViewStatus, true)); } @Override public int addInformationNotification(InformationNotification informationNotification) { informationNotification.setViewStatus(false); return baseMapper.insert(informationNotification); } @Override public Map<String, Object> getNumberFourTypesMessagesHomePage() { Map<String, Object> map = new HashMap<>(); int userId = SecurityUtils.getUserId().intValue(); Long totalNumberOfMessages = baseMapper.selectCount(Wrappers.<InformationNotification>lambdaQuery() .eq(InformationNotification::getConsigneeId, userId)); Long totalNumberOfReadMessages = baseMapper.selectCount(Wrappers.<InformationNotification>lambdaQuery() .eq(InformationNotification::getConsigneeId, userId) .eq(InformationNotification::getViewStatus, true)); LocalDate today = LocalDate.now(); LocalDate sevenDaysAgo = today.minusDays(7); Long totalNumberOfMessagesInThePastSevenDays = baseMapper.selectCount(Wrappers.<InformationNotification>lambdaQuery() .eq(InformationNotification::getConsigneeId, userId) .between(InformationNotification::getCreateTime, today, sevenDaysAgo)); long remainingToDo = totalNumberOfMessages - totalNumberOfReadMessages; map.put("totalNumberOfMessages", totalNumberOfMessages); map.put("remainingToDo", remainingToDo); map.put("totalNumberOfReadMessages", totalNumberOfReadMessages); map.put("totalNumberOfMessagesInThePastSevenDays", totalNumberOfMessagesInThePastSevenDays); return map; } } ruoyi-system/src/main/resources/mapper/system/InformationNotificationMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.system.mapper.InformationNotificationMapper"> <select id="getPage" resultType="com.ruoyi.common.core.domain.entity.InformationNotificationDto"> select i.*, u.name senderUser, u2.name consigneeUser from information_notification i left join user u on i.sender_id = u.id left join user u2 on u2.id = i.consignee_id where i.consignee_id = #{userId} <if test="messageType != '' and messageType != null"> and i.message_type = #{messageType} </if> order by i.create_time desc </select> </mapper>