liuqingkun 1 year ago
commit 8e3cf3eb32
  1. 8
      src/main/java/org/springblade/modules/business/contraller/DeviceController.java
  2. 90
      src/main/java/org/springblade/modules/business/contraller/MessageController.java
  3. 9
      src/main/java/org/springblade/modules/business/mapper/MessageMapper.java
  4. 11
      src/main/java/org/springblade/modules/business/pojo/dto/MessageUpdateDTO.java
  5. 40
      src/main/java/org/springblade/modules/business/pojo/entity/Message.java
  6. 20
      src/main/java/org/springblade/modules/business/pojo/vo/MessageVO.java
  7. 15
      src/main/java/org/springblade/modules/business/pojo/vo/PageVO.java
  8. 1
      src/main/java/org/springblade/modules/business/service/IDeviceService.java
  9. 24
      src/main/java/org/springblade/modules/business/service/IMessageService.java
  10. 24
      src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java
  11. 131
      src/main/java/org/springblade/modules/business/service/impl/MessageServiceImpl.java
  12. 4
      src/main/java/org/springblade/modules/system/pojo/entity/User.java

@ -101,16 +101,12 @@ public class DeviceController extends BladeController {
* 设备表 巡检计划设备列表按照实验室楼层房间匹配
*/
@GetMapping("/limsList")
public R<List<Device>> limsList(Device device) {
public R<List<DeviceVO>> limsList(Device device) {
// 参数校验
if (device.getLimsId() == null || device.getFloorId() == null || device.getRoomId() == null) {
return R.success("参数为空!");
}
LambdaQueryWrapper<Device> wrapper = Wrappers.lambdaQuery(Device.class)
.eq(Device::getLimsId, device.getLimsId())
.eq(Device::getFloorId, device.getFloorId())
.eq(Device::getRoomId, device.getRoomId());
return R.data(deviceService.list(wrapper));
return R.data(deviceService.limsList(device));
}
private String sanitizeInput(String input) {

@ -0,0 +1,90 @@
package org.springblade.modules.business.contraller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.pojo.dto.MessageUpdateDTO;
import org.springblade.modules.business.pojo.entity.Message;
import org.springblade.modules.business.pojo.vo.MessageVO;
import org.springblade.modules.business.service.IMessageService;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@RestController
@AllArgsConstructor
@RequestMapping("/messeage")
@Tag(name = "消息处理", description = "消息处理")
public class MessageController extends BladeController {
private final IMessageService messageService;
/**
* 获取消息列表接口
*
* @param current
* @param size
* @param startTime
* @param endTime
* @param status
* @return
*/
@GetMapping("/list")
@Operation(summary = "消息列表获取", description = "消息列表获取")
public R getMessageList(Integer current, Integer size, LocalDate startTime, LocalDate endTime, Integer status) {
return R.data(messageService.getMessageList(current, size, startTime, endTime, status));
}
/**
* 获取消息总数接口
*
* @return
*/
@GetMapping("/total")
@Operation(summary = "获取消息总数", description = "获取消息总数")
public R getMessageTotal() {
Long messageTotal = messageService.getMessageTotal();
return R.data(messageTotal);
}
/**
* 更新已读接口
*
* @param messageUpdateDTO
* @return
*/
@PostMapping("/updateStatus")
@Operation(summary = "更新已读", description = "更新已读")
public R updateMessageStatus(@RequestBody MessageUpdateDTO messageUpdateDTO) {
Integer status = messageUpdateDTO.getStatus();
Long id = messageUpdateDTO.getId();
messageService.updateMessageStatus(id, status);
return R.success();
}
/**
* 一键已读全部接口
*/
@PostMapping("/updateStatusAll")
@Operation(summary = "一键全部已读", description = "一键全部已读")
public R updateMessageStatusAll() {
messageService.updateMessageStatusAll();
return R.success();
}
@PostMapping("/saveMessage")
public void saveMessage(@RequestBody Message message) {
String content = message.getContent();
String title = message.getTitle();
String systemType = message.getSystemType();
Long messageUser = message.getMessageUser();
Integer messageType = message.getMessageType();
messageService.saveMessage(systemType, title, content, messageUser, messageType);
}
}

@ -0,0 +1,9 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.Message;
public interface MessageMapper extends BaseMapper<Message> {
}

@ -0,0 +1,11 @@
package org.springblade.modules.business.pojo.dto;
import lombok.Data;
@Data
public class MessageUpdateDTO {
private Long id;
private Integer status;
}

@ -0,0 +1,40 @@
package org.springblade.modules.business.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
@Data
@TableName("blade_message")
@EqualsAndHashCode(callSuper = true)
public class Message extends BaseEntity {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String systemType;
private String tenantId;
private Long createUser;
private String title;
private String content;
private Integer level;
private Integer method;
private Integer isRead;
private Integer messageType;
private Long messageUser;
}

@ -0,0 +1,20 @@
package org.springblade.modules.business.pojo.vo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
@Data
public class MessageVO {
private Long id;
private String content;
private Date createTime;
private Integer status;
private Integer messageType;
}

@ -0,0 +1,15 @@
package org.springblade.modules.business.pojo.vo;
import io.lettuce.core.protocol.CommandHandler;
import lombok.Data;
import java.util.List;
@Data
public class PageVO {
private List<MessageVO> list;
private Long total;
}

@ -48,4 +48,5 @@ public interface IDeviceService extends BaseService<Device> {
void importGoods(List<DeviceExcel> data, Boolean isCovered);
List<DeviceVO> limsList(Device device);
}

@ -0,0 +1,24 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.Message;
import org.springblade.modules.business.pojo.vo.MessageVO;
import org.springblade.modules.business.pojo.vo.PageVO;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
public interface IMessageService extends BaseService<Message> {
void saveMessage(String systemType, String title, String content, Long messageUser, Integer messageType);
PageVO getMessageList(Integer current, Integer size, LocalDate start, LocalDate end, Integer status);
Long getMessageTotal();
void updateMessageStatus(Long id, Integer status);
void updateMessageStatusAll();
}

@ -3,6 +3,7 @@ package org.springblade.modules.business.service.impl;
import com.aliyun.oss.ServiceException;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -198,8 +199,31 @@ public class DeviceServiceImpl extends BaseServiceImpl<DeviceMapper, Device> imp
}
}
@Override
public List<DeviceVO> limsList(Device device) {
List<DeviceVO> deviceVOList = new ArrayList<>();
// 按照实验室、楼层、房间匹配巡检计划设备列表
LambdaQueryWrapper<Device> wrapper = Wrappers.lambdaQuery(Device.class)
.eq(Device::getLimsId, device.getLimsId())
.eq(Device::getFloorId, device.getFloorId())
.eq(Device::getRoomId, device.getRoomId());
List<Device> devices = this.list(wrapper);
// 查询关联的设备巡检数据
List<DeviceMaintenance> maintenances = maintenanceService.list(Wrappers.lambdaQuery(DeviceMaintenance.class).in(DeviceMaintenance::getDeviceId, devices.stream().map(Device::getId).toList()));
// 组装视图返回
devices.forEach(devic -> {
DeviceVO deviceVO = BeanUtil.copyProperties(devic, DeviceVO.class);
if (deviceVO != null) {
deviceVO.setMaintenances(maintenances.stream().filter(maintenance -> maintenance.getDeviceId().equals(devic.getId())).toList());
deviceVOList.add(deviceVO);
}
});
return deviceVOList;
}
/**
* 获取两个list相同数据
*
* @param list1
* @param list2
* @return

@ -0,0 +1,131 @@
package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.modules.business.mapper.MessageMapper;
import org.springblade.modules.business.pojo.entity.Message;
import org.springblade.modules.business.pojo.vo.MessageVO;
import org.springblade.modules.business.pojo.vo.PageVO;
import org.springblade.modules.business.service.IMessageService;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@Service
public class MessageServiceImpl extends BaseServiceImpl<MessageMapper, Message> implements IMessageService {
/**
* 保存消息
*
* @param systemType
* @param title
* @param content
* @param messageUser
* @param messageType
*/
@Override
public void saveMessage(String systemType, String title, String content, Long messageUser, Integer messageType) {
Message saveInformation = new Message();
saveInformation.setSystemType(systemType);
saveInformation.setTitle(title);
saveInformation.setContent(content);
saveInformation.setMessageUser(messageUser);
saveInformation.setTenantId(AuthUtil.getTenantId());
saveInformation.setCreateUser(AuthUtil.getUserId());
saveInformation.setLevel(1);
saveInformation.setMethod(2);
saveInformation.setIsRead(0);
saveInformation.setMessageType(messageType);
this.save(saveInformation);
}
/**
* 消息列表获取
*
* @param current
* @param size
* @param startTime
* @param endTime
* @param status
* @return
*/
@Override
public PageVO getMessageList(Integer current, Integer size, LocalDate startTime, LocalDate endTime, Integer status) {
QueryWrapper<Message> queryWrapper = new QueryWrapper<>();
if (startTime != null && endTime != null) {
queryWrapper.between("create_time", startTime, endTime);
}
if (status != null) {
queryWrapper.eq("is_read", status);
}
//筛选专属该用户的信息
queryWrapper.eq("message_user", AuthUtil.getUserId());
//使未读在已读之上
queryWrapper.orderByAsc("is_read");
//在未读在已读之上的基础上 再按时间进行排序
queryWrapper.orderByDesc("create_time");
Page<Message> page = new Page<>(current, size);
Page<Message> messagePage = baseMapper.selectPage(page, queryWrapper);
List<Message> records = messagePage.getRecords();
Long total = messagePage.getTotal();
List<MessageVO> messageVOList = new ArrayList<>();
for (Message record : records) {
MessageVO messageVO = new MessageVO();
messageVO.setId(record.getId());
messageVO.setContent(record.getContent());
messageVO.setMessageType(record.getMessageType());
messageVO.setStatus(record.getIsRead());
messageVO.setCreateTime(record.getCreateTime());
messageVOList.add(messageVO);
}
PageVO pageVO = new PageVO();
pageVO.setList(messageVOList);
pageVO.setTotal(total);
return pageVO;
}
/**
* 获取消息总数
*
* @return
*/
@Override
public Long getMessageTotal() {
QueryWrapper<Message> queryWrapper = new QueryWrapper<>();
//筛选该用户的专属消息
queryWrapper.eq("message_user", AuthUtil.getUserId());
//只查询未读的消息
queryWrapper.eq("is_read", 0);
return baseMapper.selectCount(queryWrapper);
}
/**
* 更新消息为已读状态
*
* @param id
* @param status
*/
@Override
public void updateMessageStatus(Long id, Integer status) {
UpdateWrapper<Message> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", id).set("is_read", status);
baseMapper.update(updateWrapper);
}
/**
* 一键已读全部
*/
@Override
public void updateMessageStatusAll() {
UpdateWrapper<Message> updateWrapper = new UpdateWrapper<>();
//筛选该用户的专属消息
updateWrapper.eq("message_user", AuthUtil.getUserId());
updateWrapper.eq("is_read", 0).set("is_read", 1);
baseMapper.update(updateWrapper);
}
}

@ -122,5 +122,9 @@ public class User extends TenantEntity {
* 详细地址纬度
*/
private String addressLat;
/**
* 是否维保客户
*/
private Integer isMaintenanceClient;
}

Loading…
Cancel
Save