巡检相关

master
litao 1 year ago
parent 171ef18412
commit 31e433fc64
  1. 6
      pom.xml
  2. 28
      src/main/java/org/springblade/common/utils/CommonUtil.java
  3. 150
      src/main/java/org/springblade/modules/business/contraller/DeviceController.java
  4. 8
      src/main/java/org/springblade/modules/business/contraller/FeedbackController.java
  5. 12
      src/main/java/org/springblade/modules/business/contraller/InformationAttachController.java
  6. 5
      src/main/java/org/springblade/modules/business/contraller/InvoiceController.java
  7. 2
      src/main/java/org/springblade/modules/business/contraller/supplies/InOrderController.java
  8. 15
      src/main/java/org/springblade/modules/business/mapper/DeviceMaintenanceMapper.java
  9. 15
      src/main/java/org/springblade/modules/business/mapper/MaintenancePlanDetailMapper.java
  10. 15
      src/main/java/org/springblade/modules/business/mapper/MaintenancePlanMapper.java
  11. 15
      src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskDetailMapper.java
  12. 15
      src/main/java/org/springblade/modules/business/mapper/MaintenanceTaskMapper.java
  13. 5
      src/main/java/org/springblade/modules/business/pojo/dto/DeviceDTO.java
  14. 5
      src/main/java/org/springblade/modules/business/pojo/entity/Device.java
  15. 57
      src/main/java/org/springblade/modules/business/pojo/entity/DeviceMaintenance.java
  16. 11
      src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenancePlanDetail.java
  17. 14
      src/main/java/org/springblade/modules/business/service/IDeviceMaintenanceService.java
  18. 6
      src/main/java/org/springblade/modules/business/service/IDeviceService.java
  19. 14
      src/main/java/org/springblade/modules/business/service/IMaintenancePlanDetailService.java
  20. 14
      src/main/java/org/springblade/modules/business/service/IMaintenancePlanService.java
  21. 14
      src/main/java/org/springblade/modules/business/service/IMaintenanceTaskDetailService.java
  22. 14
      src/main/java/org/springblade/modules/business/service/IMaintenanceTaskService.java
  23. 20
      src/main/java/org/springblade/modules/business/service/impl/DeviceMaintenanceServiceImpl.java
  24. 114
      src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java
  25. 20
      src/main/java/org/springblade/modules/business/service/impl/MaintenancePlanDetailServiceImpl.java
  26. 20
      src/main/java/org/springblade/modules/business/service/impl/MaintenancePlanServiceImpl.java
  27. 20
      src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskDetailServiceImpl.java
  28. 20
      src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java

@ -236,6 +236,12 @@
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.1</version>
</dependency>
</dependencies>
<build>

@ -25,6 +25,16 @@
*/
package org.springblade.common.utils;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
/**
* 通用工具类
*
@ -32,5 +42,21 @@ package org.springblade.common.utils;
*/
public class CommonUtil {
/**
* 二维码生成转base64
* @param content
* @return
* @throws WriterException
* @throws IOException
*/
public static String generateQrCodeBase64(String content) throws WriterException, IOException {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, 200, 200);
ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
byte[] pngData = pngOutputStream.toByteArray();
String base64String = Base64.getEncoder().encodeToString(pngData);
pngOutputStream.close();
return base64String;
}
}

@ -0,0 +1,150 @@
package org.springblade.modules.business.contraller;
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;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.pojo.dto.DeviceDTO;
import org.springblade.modules.business.pojo.entity.Device;
import org.springblade.modules.business.pojo.entity.DeviceAttach;
import org.springblade.modules.business.pojo.vo.DeviceVO;
import org.springblade.modules.business.service.IDeviceAttachService;
import org.springblade.modules.business.service.IDeviceService;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
* 设备表 控制器
*
* @author BladeX
* @since 2024-10-14
*/
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/device")
public class DeviceController extends BladeController {
private final IDeviceService deviceService;
private final IDeviceAttachService deviceAttachService;
/**
* 设备表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
public R<DeviceVO> detail(Device device) {
Device detail = deviceService.getOne(Condition.getQueryWrapper(device));
DeviceVO deviceVO = Objects.requireNonNull(BeanUtil.copy(detail, DeviceVO.class));
List<DeviceAttach> attaches = deviceAttachService.list(Wrappers.lambdaQuery(DeviceAttach.class).eq(DeviceAttach::getDeviceId, device.getId()));
deviceVO.setAttaches(attaches);
return R.data(deviceVO);
}
/**
* 设备表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
public R<IPage<Device>> list(DeviceDTO device, Query query) {
if (device == null || query == null) {
throw new IllegalArgumentException("Device or Query cannot be null");
}
// 验证用户身份
Long userId = AuthUtil.getUserId();
if (userId == null) {
throw new IllegalArgumentException("User not authenticated");
}
LambdaQueryWrapper<Device> wrapper = Wrappers.lambdaQuery(Device.class);
wrapper.like(StringUtils.isNotBlank(sanitizeInput(device.getName())), Device::getName, device.getName());
wrapper.eq(StringUtils.isNotBlank(sanitizeInput(device.getPosition())), Device::getPosition, device.getPosition());
wrapper.eq(StringUtils.isNotBlank(sanitizeInput(device.getType())), Device::getType, device.getType());
// wrapper.eq(Device::getCreateUser, AuthUtil.getUserId());
wrapper.orderByDesc(Device::getCreateTime);
try {
IPage<Device> pages = deviceService.page(Condition.getPage(query), wrapper);
return R.data(pages);
} catch (Exception e) {
// 记录异常日志
log.error("Error occurred while fetching device list", e);
throw new RuntimeException("Failed to fetch device list", e);
}
}
private String sanitizeInput(String input) {
// 对输入进行清理,防止 SQL 注入等安全问题
if (input == null) {
return null;
}
return input.replaceAll("[^a-zA-Z0-9_\\-\\. ]", "");
}
/**
* 设备表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
public R<IPage<DeviceVO>> page(DeviceVO device, Query query) {
IPage<DeviceVO> pages = deviceService.selectDevicePage(Condition.getPage(query), device);
return R.data(pages);
}
/**
* 设备表 新增
*/
@PostMapping("/save")
public R save(@Valid @RequestBody DeviceDTO device) {
return R.status(deviceService.add(device));
}
/**
* 设备表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
public R update(@Valid @RequestBody DeviceDTO device) {
return R.status(deviceService.edit(device));
}
/**
* 设备表 生成二维码
*/
@PostMapping("/qrcode")
@ApiOperationSupport(order = 5)
public R qrcode(@Valid @RequestBody Device device) {
return R.status(deviceService.qrcode(device));
}
/**
* 设备表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
public R submit(@Valid @RequestBody Device device) {
return R.status(deviceService.saveOrUpdate(device));
}
/**
* 设备表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
public R remove(@RequestParam String ids) {
return R.status(deviceService.deleteLogic(Func.toLongList(ids)));
}
}

@ -6,34 +6,26 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.springblade.common.cache.DictBizCache;
import org.springblade.common.cache.UserCache;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.pojo.dto.FeedbackDTO;
import org.springblade.modules.business.pojo.entity.Attachs;
import org.springblade.modules.business.pojo.entity.Feedback;
import org.springblade.modules.business.excel.FeedbackExcel;
import org.springblade.modules.business.service.IAttachaService;
import org.springblade.modules.business.service.IFeedbackService;
import org.springblade.modules.business.pojo.vo.FeedbackVO;
import org.springblade.modules.system.pojo.entity.User;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static org.springblade.common.enums.DictBizEnum.FEED_BACK_TYPE;

@ -1,28 +1,16 @@
package org.springblade.modules.business.contraller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.pojo.entity.InformationAttach;
import org.springblade.modules.business.excel.InformationAttachExcel;
import org.springblade.modules.business.service.IInformationAttachService;
import org.springblade.modules.business.pojo.vo.InformationAttachVO;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 资料附件表 控制器

@ -1,16 +1,11 @@
package org.springblade.modules.business.contraller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.pojo.entity.Information;
import org.springblade.modules.business.pojo.entity.Invoice;
import org.springblade.modules.business.service.IInvoiceService;
import org.springframework.web.bind.annotation.*;

@ -14,11 +14,9 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.pojo.dto.supplies.InOrderDTO;
import org.springblade.modules.business.pojo.entity.supplies.Goods;
import org.springblade.modules.business.pojo.entity.supplies.InOrder;
import org.springblade.modules.business.pojo.entity.supplies.InOrderDetail;
import org.springblade.modules.business.pojo.vo.supplies.InOrderVO;
import org.springblade.modules.business.service.supplies.IGoodsService;
import org.springblade.modules.business.service.supplies.IInOrderDetailService;
import org.springblade.modules.business.service.supplies.IInOrderService;
import org.springframework.web.bind.annotation.*;

@ -0,0 +1,15 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
/**
* 设备巡检表 Mapper 接口
*
* @author BladeX
* @since 2024-10-14
*/
public interface DeviceMaintenanceMapper extends BaseMapper<DeviceMaintenance> {
}

@ -0,0 +1,15 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlanDetail;
/**
* 维保计划详情 Mapper 接口
*
* @author BladeX
* @since 2024-10-14
*/
public interface MaintenancePlanDetailMapper extends BaseMapper<MaintenancePlanDetail> {
}

@ -0,0 +1,15 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
/**
* 维保计划 Mapper 接口
*
* @author BladeX
* @since 2024-10-14
*/
public interface MaintenancePlanMapper extends BaseMapper<MaintenancePlan> {
}

@ -0,0 +1,15 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail;
/**
* 维保任务详情 Mapper 接口
*
* @author BladeX
* @since 2024-10-14
*/
public interface MaintenanceTaskDetailMapper extends BaseMapper<MaintenanceTaskDetail> {
}

@ -0,0 +1,15 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
/**
* 维保任务 Mapper 接口
*
* @author BladeX
* @since 2024-10-14
*/
public interface MaintenanceTaskMapper extends BaseMapper<MaintenanceTask> {
}

@ -5,6 +5,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.business.pojo.entity.Device;
import org.springblade.modules.business.pojo.entity.DeviceAttach;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
import java.util.List;
@ -19,8 +20,12 @@ import java.util.List;
public class DeviceDTO extends Device {
private static final long serialVersionUID = 1L;
// 设备附件
private List<DeviceAttach> attaches;
// 设备巡检
private List<DeviceMaintenance> maintenances;
// 设备名称
private String name;

@ -66,4 +66,9 @@ public class Device extends BaseEntity {
* 运行状态 0关机 1运行中 2报警中
*/
private Integer runStatus;
/**
* 二维码base64
*/
private String qrcode;
}

@ -0,0 +1,57 @@
package org.springblade.modules.business.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 设备巡检表
*
* @author liuqingkun
*/
@Data
@TableName("lab_device_maintenance")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "设备巡检表")
public class DeviceMaintenance extends BaseEntity {
private Long deviceId;
/**
* 楼层
*/
private String floorName;
/**
* 巡检内容
*/
private String checkContent;
/**
* 工艺要求
*/
private String craft;
/**
* 巡检周期 1: 2 3半年
*/
private Integer period;
/**
* 计划开始时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd"
)
@JsonFormat(
pattern = "yyyy-MM-dd"
)
private Date startTime;
}

@ -64,5 +64,16 @@ public class MaintenancePlanDetail extends BaseEntity {
)
private Date startTime;
/**
* 下次开始时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd"
)
@JsonFormat(
pattern = "yyyy-MM-dd"
)
private Date nextStartTime;
}

@ -0,0 +1,14 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
/**
* 设备巡检表 服务类
*
* @author BladeX
* @since 2024-10-14
*/
public interface IDeviceMaintenanceService extends BaseService<DeviceMaintenance> {
}

@ -3,6 +3,7 @@ package org.springblade.modules.business.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.dto.DeviceDTO;
import org.springblade.modules.business.pojo.entity.Device;
import org.springblade.modules.business.excel.DeviceExcel;
import org.springblade.modules.business.pojo.vo.DeviceVO;
@ -34,4 +35,9 @@ public interface IDeviceService extends BaseService<Device> {
*/
List<DeviceExcel> exportDevice(Wrapper<Device> queryWrapper);
boolean add(DeviceDTO device);
boolean edit(DeviceDTO device);
boolean qrcode(Device device);
}

@ -0,0 +1,14 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlanDetail;
/**
* 维保计划详情 服务类
*
* @author BladeX
* @since 2024-10-14
*/
public interface IMaintenancePlanDetailService extends BaseService<MaintenancePlanDetail> {
}

@ -0,0 +1,14 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
/**
* 维保计划 服务类
*
* @author BladeX
* @since 2024-10-14
*/
public interface IMaintenancePlanService extends BaseService<MaintenancePlan> {
}

@ -0,0 +1,14 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail;
/**
* 维保任务详情 服务类
*
* @author BladeX
* @since 2024-10-14
*/
public interface IMaintenanceTaskDetailService extends BaseService<MaintenanceTaskDetail> {
}

@ -0,0 +1,14 @@
package org.springblade.modules.business.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
/**
* 维保任务 服务类
*
* @author BladeX
* @since 2024-10-14
*/
public interface IMaintenanceTaskService extends BaseService<MaintenanceTask> {
}

@ -0,0 +1,20 @@
package org.springblade.modules.business.service.impl;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.mapper.DeviceMaintenanceMapper;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
import org.springblade.modules.business.service.IDeviceMaintenanceService;
import org.springframework.stereotype.Service;
/**
* 设备巡检表 服务实现类
*
* @author BladeX
* @since 2024-10-14
*/
@Service
public class DeviceMaintenanceServiceImpl extends BaseServiceImpl<DeviceMaintenanceMapper, DeviceMaintenance> implements IDeviceMaintenanceService {
}

@ -3,15 +3,30 @@ package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.zxing.WriterException;
import lombok.AllArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.modules.business.service.IDeviceAttachService;
import org.springblade.modules.business.service.IDeviceMaintenanceService;
import org.springblade.modules.business.service.IDeviceService;
import org.springblade.modules.business.pojo.dto.DeviceDTO;
import org.springblade.modules.business.pojo.entity.Device;
import org.springblade.modules.business.excel.DeviceExcel;
import org.springblade.modules.business.mapper.DeviceMapper;
import org.springblade.modules.business.service.IDeviceService;
import org.springblade.modules.business.pojo.entity.DeviceAttach;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
import org.springblade.modules.business.pojo.vo.DeviceVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
/**
* 设备表 服务实现类
@ -20,21 +35,94 @@ import java.util.List;
* @since 2024-10-14
*/
@Service
@AllArgsConstructor
public class DeviceServiceImpl extends BaseServiceImpl<DeviceMapper, Device> implements IDeviceService {
@Override
public IPage<DeviceVO> selectDevicePage(IPage<DeviceVO> page, DeviceVO device) {
return page.setRecords(baseMapper.selectDevicePage(page, device));
}
private final IDeviceAttachService deviceAttachService;
private final IDeviceMaintenanceService maintenanceService;
@Override
public IPage<DeviceVO> selectDevicePage(IPage<DeviceVO> page, DeviceVO device) {
return page.setRecords(baseMapper.selectDevicePage(page, device));
}
@Override
public List<DeviceExcel> exportDevice(Wrapper<Device> queryWrapper) {
List<DeviceExcel> deviceList = baseMapper.exportDevice(queryWrapper);
//deviceList.forEach(device -> {
// device.setTypeName(DictCache.getValue(DictEnum.YES_NO, Device.getType()));
//});
return deviceList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(DeviceDTO device) {
device.setCode("编码格式待定");
boolean save = this.save(device);
// 附件保存
List<DeviceAttach> attaches = device.getAttaches();
if (CollectionUtil.isNotEmpty(attaches)) {
attaches.forEach(attach -> attach.setDeviceId(device.getId()));
save = deviceAttachService.saveBatch(attaches);
}
// 巡检内容保存
List<DeviceMaintenance> maintenances = device.getMaintenances();
if (CollectionUtil.isNotEmpty(maintenances)) {
maintenances.forEach(maintenance -> maintenance.setDeviceId(device.getId()));
save = maintenanceService.saveBatch(maintenances);
}
return save;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean edit(DeviceDTO device) {
// 删除的id与传入的id相同
deviceAttachService.remove(Wrappers.lambdaQuery(DeviceAttach.class).eq(DeviceAttach::getDeviceId, device.getId()));
// 获取到重复的内容(之情提交过的附件)
List<DeviceAttach> attaches = device.getAttaches();
// 如果有重复的附件
if (CollectionUtil.isNotEmpty(attaches)) {
//
attaches.forEach(attache -> attache.setDeviceId(device.getId()));
deviceAttachService.saveBatch(attaches);
}
List<DeviceMaintenance> maintenances = device.getMaintenances();
if (CollectionUtil.isNotEmpty(maintenances)) {
// 需要新增的巡检
List<DeviceMaintenance> newSave = maintenances.stream().filter(maintenance -> maintenance.getId() == null).collect(Collectors.toList());
// 不删除的巡检ids
List<Long> ids = maintenances.stream().filter(maintenance -> maintenance.getId() != null).map(DeviceMaintenance::getId).collect(Collectors.toList());
maintenanceService.remove(Wrappers.lambdaQuery(DeviceMaintenance.class)
.eq(DeviceMaintenance::getDeviceId, device.getId())
.notIn(CollectionUtils.isNotEmpty(ids), DeviceMaintenance::getId, ids));
@Override
public List<DeviceExcel> exportDevice(Wrapper<Device> queryWrapper) {
List<DeviceExcel> deviceList = baseMapper.exportDevice(queryWrapper);
//deviceList.forEach(device -> {
// device.setTypeName(DictCache.getValue(DictEnum.YES_NO, Device.getType()));
//});
return deviceList;
}
if (CollectionUtil.isNotEmpty(newSave)) {
newSave.forEach(maintenance -> maintenance.setDeviceId(device.getId()));
maintenanceService.saveBatch(newSave);
}
}
return this.updateById(device);
}
@Override
public boolean qrcode(Device device) {
if (device.getId() == null) {
log.error("设备id为空");
return false;
}
// 生成二维码base64
try {
String qrcode = CommonUtil.generateQrCodeBase64(device.getId().toString());
device.setQrcode("data:image/png;base64," + qrcode);
} catch (WriterException | IOException e) {
log.error("二维码生成失败...");
return false;
}
return this.updateById(device);
}
}

@ -0,0 +1,20 @@
package org.springblade.modules.business.service.impl;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.service.IMaintenancePlanDetailService;
import org.springblade.modules.business.mapper.MaintenancePlanDetailMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlanDetail;
import org.springframework.stereotype.Service;
/**
* 巡检计划详情 服务实现类
*
* @author BladeX
* @since 2024-10-14
*/
@Service
public class MaintenancePlanDetailServiceImpl extends BaseServiceImpl<MaintenancePlanDetailMapper, MaintenancePlanDetail> implements IMaintenancePlanDetailService {
}

@ -0,0 +1,20 @@
package org.springblade.modules.business.service.impl;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.service.IMaintenancePlanService;
import org.springblade.modules.business.mapper.MaintenancePlanMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
import org.springframework.stereotype.Service;
/**
* 巡检计划 服务实现类
*
* @author BladeX
* @since 2024-10-14
*/
@Service
public class MaintenancePlanServiceImpl extends BaseServiceImpl<MaintenancePlanMapper, MaintenancePlan> implements IMaintenancePlanService {
}

@ -0,0 +1,20 @@
package org.springblade.modules.business.service.impl;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.mapper.MaintenanceTaskDetailMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail;
import org.springblade.modules.business.service.IMaintenanceTaskDetailService;
import org.springframework.stereotype.Service;
/**
* 巡检任务详情 服务实现类
*
* @author BladeX
* @since 2024-10-14
*/
@Service
public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<MaintenanceTaskDetailMapper, MaintenanceTaskDetail> implements IMaintenanceTaskDetailService {
}

@ -0,0 +1,20 @@
package org.springblade.modules.business.service.impl;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.service.IMaintenanceTaskService;
import org.springblade.modules.business.mapper.MaintenanceTaskMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springframework.stereotype.Service;
/**
* 巡检任务 服务实现类
*
* @author BladeX
* @since 2024-10-14
*/
@Service
public class MaintenanceTaskServiceImpl extends BaseServiceImpl<MaintenanceTaskMapper, MaintenanceTask> implements IMaintenanceTaskService {
}
Loading…
Cancel
Save