Compare commits

...

2 Commits

Author SHA1 Message Date
weitang
87c6d31eb4 新增主设备维修记录逻辑 2025-06-05 11:04:58 +08:00
weitang
e056f1931f 主设备上传文件逻辑 2025-06-05 10:36:14 +08:00
21 changed files with 454 additions and 22 deletions

View File

@ -128,9 +128,9 @@ public class IEC61850Service {
if (ObjUtil.isNotEmpty(deviceSignal)) { if (ObjUtil.isNotEmpty(deviceSignal)) {
//查找设备 //查找设备
MeterDevice meterDevice = meterDeviceService.getById(deviceSignal.getMeterDeviceId()); MeterDevice meterDevice = meterDeviceService.getById(deviceSignal.getMeterDeviceId());
QueryWrapper<GatewayDevice> queryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<GatewayDevice> queryWrapper = new LambdaQueryWrapper<>();
//通讯网关机的IP地址 //通讯网关机的IP地址
queryWrapper.eq("ip_addr", meterDevice.getNetdeviceIp()); queryWrapper.eq(GatewayDevice::getIpAddr, meterDevice.getNetdeviceIp());
//查找网关机 //查找网关机
GatewayDevice gatewayDevice = gatewayDeviceService.getOne(queryWrapper); GatewayDevice gatewayDevice = gatewayDeviceService.getOne(queryWrapper);
String convalue = value; String convalue = value;

View File

@ -111,6 +111,10 @@ public class HttpServerConfig {
@Value("${httpserver.patrolserver.documentpath}") @Value("${httpserver.patrolserver.documentpath}")
private String documentPath; private String documentPath;
@Value("${httpserver.patrolserver.maindevicefilepath}")
private String mainDeviceFilepath;
@Value("${httpserver.patrolserver.tempfilepath}") @Value("${httpserver.patrolserver.tempfilepath}")
private String tempFilePath; private String tempFilePath;
@ -255,6 +259,10 @@ public class HttpServerConfig {
return documentPath; return documentPath;
} }
public String getMainDeviceFilepath() {
return mainDeviceFilepath;
}
public String getTempFilePath() { public String getTempFilePath() {
return tempFilePath; return tempFilePath;
} }

View File

@ -34,6 +34,10 @@ public class WebConfig implements WebMvcConfigurer {
@Value("${httpserver.patrolserver.alarmfilepath}") @Value("${httpserver.patrolserver.alarmfilepath}")
private String alarmFilePath; private String alarmFilePath;
@Value("${httpserver.patrolserver.maindevicefilepath}")
private String mainDeviceFilepath;
@Resource @Resource
private ISubstationDeviceService substationDeviceService; private ISubstationDeviceService substationDeviceService;
@ -94,6 +98,10 @@ public class WebConfig implements WebMvcConfigurer {
// 告警图片 // 告警图片
String alarmUrl = "file:" + alarmFilePath; String alarmUrl = "file:" + alarmFilePath;
registry.addResourceHandler("/alarm/**").addResourceLocations(alarmUrl).setCachePeriod(0); registry.addResourceHandler("/alarm/**").addResourceLocations(alarmUrl).setCachePeriod(0);
// 告警图片
String mainDeviceUrl = "file:" + mainDeviceFilepath;
registry.addResourceHandler("/mainDevice/**").addResourceLocations(mainDeviceUrl).setCachePeriod(0);
} }
} }

View File

@ -36,10 +36,11 @@ public class AlgorithmLogsController {
@GetMapping("/getAlgorithmLogsPage") @GetMapping("/getAlgorithmLogsPage")
@ApiOperation("分页查询算法分析日志") @ApiOperation("分页查询算法分析日志")
public ResponseResult getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId, public ResponseResult getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId,
String mainDeviceId, String componentId, String componentName, String mainDeviceId, String componentId, String componentName,String startDate,
String endDate,
Page<AlgorithmLogs> page) { Page<AlgorithmLogs> page) {
Page<Map<String, Object>> pageMaps = algorithmLogsService.getAlgorithmLogsPage(stationCode, algorithmId, areaId, Page<Map<String, Object>> pageMaps = algorithmLogsService.getAlgorithmLogsPage(stationCode, algorithmId, areaId,
bayId, mainDeviceId, componentId, componentName, page); bayId, mainDeviceId, componentId, componentName,startDate,endDate, page);
return ResponseResult.successData(pageMaps); return ResponseResult.successData(pageMaps);
} }

View File

@ -27,5 +27,6 @@ public interface AlgorithmLogsMapper extends BaseMapper<AlgorithmLogs> {
* 参数说明 page 分页参数 * 参数说明 page 分页参数
* 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yfd.platform.modules.algorithm.domain.AlgorithmLogs> * 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yfd.platform.modules.algorithm.domain.AlgorithmLogs>
***********************************/ ***********************************/
Page<Map<String,Object>> getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId, String mainDeviceId, String componentId, String componentName, Page<AlgorithmLogs> page); Page<Map<String,Object>> getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId, String mainDeviceId, String componentId, String componentName,String startDate,
String endDate, Page<AlgorithmLogs> page);
} }

View File

@ -27,6 +27,7 @@ public interface IAlgorithmLogsService extends IService<AlgorithmLogs> {
* 参数说明 page 分页参数 * 参数说明 page 分页参数
* 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yfd.platform.modules.algorithm.domain.AlgorithmLogs> * 返回值说明: com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yfd.platform.modules.algorithm.domain.AlgorithmLogs>
***********************************/ ***********************************/
Page<Map<String,Object>> getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId, String mainDeviceId, String componentId, String componentName, Page<AlgorithmLogs> page); Page<Map<String,Object>> getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId, String mainDeviceId, String componentId, String componentName,String startDate,
String endDate, Page<AlgorithmLogs> page);
} }

View File

@ -37,8 +37,9 @@ public class AlgorithmLogsServiceImpl extends ServiceImpl<AlgorithmLogsMapper, A
***********************************/ ***********************************/
@Override @Override
public Page<Map<String,Object>> getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId, public Page<Map<String,Object>> getAlgorithmLogsPage(String stationCode, String algorithmId, String areaId, String bayId,
String mainDeviceId, String componentId, String componentName, Page<AlgorithmLogs> page) { String mainDeviceId, String componentId, String componentName,String startDate,
String endDate, Page<AlgorithmLogs> page) {
return algorithmLogsMapper.getAlgorithmLogsPage(stationCode,algorithmId, areaId, bayId, return algorithmLogsMapper.getAlgorithmLogsPage(stationCode,algorithmId, areaId, bayId,
mainDeviceId, componentId,componentName, page); mainDeviceId, componentId,componentName,startDate,endDate, page);
} }
} }

View File

@ -68,7 +68,8 @@ public class SubstationMaindeviceController {
@PostMapping("/addMainDevice") @PostMapping("/addMainDevice")
@ApiOperation("新增主设备") @ApiOperation("新增主设备")
@PreAuthorize("@el.check('add:maindevice')") @PreAuthorize("@el.check('add:maindevice')")
public ResponseResult addMainDevice(SubstationMaindevice substationMaindevice) { public ResponseResult addMainDevice(SubstationMaindevice substationMaindevice,
MultipartFile file) {
String mainDeviceName = substationMaindevice.getMainDeviceName(); String mainDeviceName = substationMaindevice.getMainDeviceName();
String bayId = substationMaindevice.getBayId(); String bayId = substationMaindevice.getBayId();
int count = int count =
@ -82,6 +83,16 @@ public class SubstationMaindeviceController {
substationMaindevice.setDatastatus("1"); substationMaindevice.setDatastatus("1");
substationMaindevice.setLastmodifier(SecurityUtils.getCurrentUsername()); substationMaindevice.setLastmodifier(SecurityUtils.getCurrentUsername());
substationMaindevice.setLastmodifydate(LocalDateTime.now()); substationMaindevice.setLastmodifydate(LocalDateTime.now());
// 文件上传逻辑
if (file != null && !file.isEmpty()) {
try {
// 调用服务层方法
String fileUrl = substationMaindeviceService.uploadImage(file);
substationMaindevice.setFileUrl(fileUrl);
} catch (Exception e) {
return ResponseResult.error("文件上传失败:" + e.getMessage());
}
}
boolean ok = substationMaindeviceService.save(substationMaindevice); boolean ok = substationMaindeviceService.save(substationMaindevice);
if (ok) { if (ok) {
return ResponseResult.success(); return ResponseResult.success();
@ -282,7 +293,8 @@ public class SubstationMaindeviceController {
@PostMapping("/updateMainDevice") @PostMapping("/updateMainDevice")
@ApiOperation("修改主设备") @ApiOperation("修改主设备")
@PreAuthorize("@el.check('update:maindevice')") @PreAuthorize("@el.check('update:maindevice')")
public ResponseResult updateMainDevice(SubstationMaindevice substationMaindevice) { public ResponseResult updateMainDevice(SubstationMaindevice substationMaindevice,
MultipartFile file) {
if (substationMaindevice == null) { if (substationMaindevice == null) {
return ResponseResult.error("参数为空"); return ResponseResult.error("参数为空");
} }
@ -303,6 +315,16 @@ public class SubstationMaindeviceController {
} }
substationMaindevice.setLastmodifier(SecurityUtils.getCurrentUsername()); substationMaindevice.setLastmodifier(SecurityUtils.getCurrentUsername());
substationMaindevice.setLastmodifydate(LocalDateTime.now()); substationMaindevice.setLastmodifydate(LocalDateTime.now());
// 文件上传逻辑
if (file != null && !file.isEmpty()) {
try {
String fileUrl = substationMaindeviceService.uploadImage(file); // 调用服务层方法
substationMaindevice.setFileUrl(fileUrl);
} catch (Exception e) {
return ResponseResult.error("文件上传失败:" + e.getMessage());
}
}
boolean ok = substationMaindeviceService.updateById(substationMaindevice); boolean ok = substationMaindeviceService.updateById(substationMaindevice);
if (ok) { if (ok) {
return ResponseResult.success(); return ResponseResult.success();

View File

@ -0,0 +1,103 @@
package com.yfd.platform.modules.basedata.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.modules.basedata.domain.SubstationMaindeviceResume;
import com.yfd.platform.modules.basedata.service.ISubstationMaindeviceResumeService;
import com.yfd.platform.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Map;
/**
* <p>
* 主设备维修记录
* 前端控制器
* </p>
*
* @author zhengsl
* @since 2025-06-05
*/
@RestController
@RequestMapping("/basedata/substation-maindevice-resume")
@Api(value = "SubstationMaindeviceResumeController", tags = "主设备维修记录")
public class SubstationMaindeviceResumeController {
@Resource
private ISubstationMaindeviceResumeService resumeService;
/**
* 分页查看主设备维修记录
*
* @param page 分页参宿和
* @param stationCode 变电站编码
* @param areaId 区域id
* @param bayId 间隔id
* @param deviceType 主设备类型
* @param mainDeviceName 主设备名称
* @param startDate 开始时间
* @param endDate 结束时间
* @return
*/
@GetMapping("/getMaindeviceResume")
@ApiOperation("分页查看主设备维修记录")
public ResponseResult getMaindeviceResume(Page<Map<String, Object>> page, String stationCode, String areaId,
String bayId, String deviceType, String mainDeviceName,
String startDate, String endDate) {
Page<Map<String, Object>> mapPage = resumeService.getMaindeviceResume(page, stationCode, areaId, bayId,
deviceType, mainDeviceName, startDate, endDate);
return ResponseResult.successData(mapPage);
}
@GetMapping("/getMaindeviceResumeById")
@ApiOperation("通过id查询主设备维修记录")
public ResponseResult getMaindeviceResumeById(String id) {
if (id == null) {
return ResponseResult.error("参数为空");
}
SubstationMaindeviceResume substationMaindeviceResume = resumeService.getById(id);
return ResponseResult.successData(substationMaindeviceResume);
}
@PostMapping("/addMaindeviceResume")
@ApiOperation("新增主设备维修记录")
public ResponseResult addMaindeviceResume(@RequestBody SubstationMaindeviceResume substationMaindeviceResume) {
substationMaindeviceResume.setLastmodifier(SecurityUtils.getCurrentUsername());
substationMaindeviceResume.setLastmodifydate(LocalDateTime.now());
boolean isOk = resumeService.saveOrUpdate(substationMaindeviceResume);
if (!isOk) {
return ResponseResult.error();
}
return ResponseResult.success();
}
@PostMapping("/updateMaindeviceResume")
@ApiOperation("修改主设备维修记录")
public ResponseResult updateMaindeviceResume(@RequestBody SubstationMaindeviceResume substationMaindeviceResume) {
substationMaindeviceResume.setLastmodifier(SecurityUtils.getCurrentUsername());
substationMaindeviceResume.setLastmodifydate(LocalDateTime.now());
boolean isOk = resumeService.saveOrUpdate(substationMaindeviceResume);
if (!isOk) {
return ResponseResult.error();
}
return ResponseResult.success();
}
@PostMapping("/deleteMaindeviceResume")
@ApiOperation("删除主设备维修记录")
public ResponseResult deleteMaindeviceResume(String id) {
if (id == null) {
return ResponseResult.error("参数为空");
}
boolean isOk = resumeService.removeById(id);
if (!isOk) {
return ResponseResult.error();
}
return ResponseResult.success();
}
}

View File

@ -72,6 +72,32 @@ public class SubstationMaindevice implements Serializable {
*/ */
private String areaName; private String areaName;
/**
* 出厂寿命
*/
private String factoryLifespan;
/**
* 初始运行时间设备第一次运行的时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime runTime;
/**
* 主设备效果图地址
*/
private String fileUrl;
/**
* 关联点位id,用于展示主设备全景画面
*/
private String deviceId;
/**
* 是否关联点位0:未关联1:已关联
*/
private String contactFlag;
/** /**
* 数据状态 * 数据状态
*/ */
@ -108,4 +134,6 @@ public class SubstationMaindevice implements Serializable {
*/ */
@TableField("material_id") @TableField("material_id")
private String materialId; private String materialId;
} }

View File

@ -0,0 +1,120 @@
package com.yfd.platform.modules.basedata.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author zhengsl
* @since 2025-06-05
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("iis_substation_maindevice_resume")
public class SubstationMaindeviceResume implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String id;
/**
* 类型1:缺陷记录2:大修记录3:退出再投运记录
*/
private String type;
/**
* 时间
*/
private String time;
/**
* 描述
*/
private String comment;
/**
* 数据状态
*/
private String datastatus;
/**
* 修改人
*/
private String lastmodifier;
/**
* 最近修改时间
*/
private LocalDateTime lastmodifydate;
/**
* 备用1
*/
private String custom1;
/**
* 备用2
*/
private String custom2;
/**
* 备用3
*/
private String custom3;
/**
* 主设备id
*/
private String mainDeviceId;
/**
* 主设备类型
*/
private String deviceType;
/**
* 主设备名称
*/
private String mainDeviceName;
/**
* 间隔id
*/
private String bayId;
/**
* 间隔名称
*/
private String bayName;
/**
* 变电站编号
*/
private String stationCode;
/**
* 变电站名称
*/
private String stationName;
/**
* 区域id
*/
private String areaId;
/**
* 区域名称
*/
private String areaName;
}

View File

@ -0,0 +1,23 @@
package com.yfd.platform.modules.basedata.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.basedata.domain.SubstationMaindeviceResume;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.Map;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhengsl
* @since 2025-06-05
*/
public interface SubstationMaindeviceResumeMapper extends BaseMapper<SubstationMaindeviceResume> {
Page<Map<String, Object>> getMaindeviceResume(Page<Map<String, Object>> page, String stationCode, String areaId,
String bayId, String deviceType, String mainDeviceName,
String startDate, String endDate);
}

View File

@ -0,0 +1,22 @@
package com.yfd.platform.modules.basedata.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.basedata.domain.SubstationMaindeviceResume;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
/**
* <p>
* 服务类
* </p>
*
* @author zhengsl
* @since 2025-06-05
*/
public interface ISubstationMaindeviceResumeService extends IService<SubstationMaindeviceResume> {
Page<Map<String, Object>> getMaindeviceResume(Page<Map<String, Object>> page, String stationCode, String areaId,
String bayId, String deviceType, String mainDeviceName,
String startDate, String endDate);
}

View File

@ -146,4 +146,5 @@ public interface ISubstationMaindeviceService extends IService<SubstationMaindev
***********************************/ ***********************************/
List<TreeNode> getComponentTree(String stationCode, String componentName); List<TreeNode> getComponentTree(String stationCode, String componentName);
String uploadImage(MultipartFile file);
} }

View File

@ -0,0 +1,30 @@
package com.yfd.platform.modules.basedata.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.basedata.domain.SubstationMaindeviceResume;
import com.yfd.platform.modules.basedata.mapper.SubstationMaindeviceResumeMapper;
import com.yfd.platform.modules.basedata.service.ISubstationMaindeviceResumeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Map;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhengsl
* @since 2025-06-05
*/
@Service
public class SubstationMaindeviceResumeServiceImpl extends ServiceImpl<SubstationMaindeviceResumeMapper, SubstationMaindeviceResume> implements ISubstationMaindeviceResumeService {
@Resource
private SubstationMaindeviceResumeMapper maindeviceResumeMapper;
@Override
public Page<Map<String, Object>> getMaindeviceResume(Page<Map<String, Object>> page, String stationCode, String areaId, String bayId, String deviceType, String mainDeviceName, String startDate, String endDate) {
return maindeviceResumeMapper.getMaindeviceResume(page, stationCode, areaId, bayId,deviceType, mainDeviceName,startDate,endDate);
}
}

View File

@ -1,9 +1,11 @@
package com.yfd.platform.modules.basedata.service.impl; package com.yfd.platform.modules.basedata.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.config.HttpServerConfig;
import com.yfd.platform.modules.auxcontrol.domain.DeviceSignal; import com.yfd.platform.modules.auxcontrol.domain.DeviceSignal;
import com.yfd.platform.modules.auxcontrol.service.IDeviceSignalService; import com.yfd.platform.modules.auxcontrol.service.IDeviceSignalService;
import com.yfd.platform.modules.basedata.domain.*; import com.yfd.platform.modules.basedata.domain.*;
@ -13,6 +15,7 @@ import com.yfd.platform.system.domain.SysDictionary;
import com.yfd.platform.system.domain.SysDictionaryItems; import com.yfd.platform.system.domain.SysDictionaryItems;
import com.yfd.platform.system.service.ISysDictionaryItemsService; import com.yfd.platform.system.service.ISysDictionaryItemsService;
import com.yfd.platform.system.service.ISysDictionaryService; import com.yfd.platform.system.service.ISysDictionaryService;
import com.yfd.platform.utils.FileUtil;
import com.yfd.platform.utils.SecurityUtils; import com.yfd.platform.utils.SecurityUtils;
import freemarker.template.utility.NullArgumentException; import freemarker.template.utility.NullArgumentException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@ -26,13 +29,11 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -40,7 +41,6 @@ import java.util.stream.Collectors;
* 变电站_主设备 服务实现类 * 变电站_主设备 服务实现类
* </p> * </p>
* *
*
* @since 2023-03-28 * @since 2023-03-28
*/ */
@Transactional @Transactional
@ -68,6 +68,9 @@ public class SubstationMaindeviceServiceImpl extends ServiceImpl<SubstationMaind
@Resource @Resource
private IDeviceSignalService deviceSignalService; private IDeviceSignalService deviceSignalService;
@Resource
private HttpServerConfig httpServerConfig;
/********************************** /**********************************
* 用途说明: 获取主设备及部件树 * 用途说明: 获取主设备及部件树
* 参数说明 name 参数名称 * 参数说明 name 参数名称
@ -164,9 +167,9 @@ public class SubstationMaindeviceServiceImpl extends ServiceImpl<SubstationMaind
if ("1".equals(substationMaindevice.getDatastatus())) { if ("1".equals(substationMaindevice.getDatastatus())) {
return false; return false;
} }
// LambdaQueryWrapper<SubstationComponent> queryWrapper = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<SubstationComponent> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(SubstationComponent::getMainDeviceId, id); // queryWrapper.eq(SubstationComponent::getMainDeviceId, id);
// substationComponentMapper.delete(queryWrapper); // substationComponentMapper.delete(queryWrapper);
boolean ok = this.removeById(id); boolean ok = this.removeById(id);
String bayId = substationMaindevice.getBayId(); String bayId = substationMaindevice.getBayId();
List<SubstationMaindevice> list = List<SubstationMaindevice> list =
@ -737,6 +740,18 @@ public class SubstationMaindeviceServiceImpl extends ServiceImpl<SubstationMaind
return treeNodes.get(0).getChildren(); return treeNodes.get(0).getChildren();
} }
@Override
public String uploadImage(MultipartFile file) {
// 文件存储地址
String fileName =
IdUtil.fastSimpleUUID() + "." + FileUtil.getExtensionName(file.getOriginalFilename());
// 上传文件
String name =
Objects.requireNonNull(FileUtil.upload(file, httpServerConfig.getMainDeviceFilepath(), fileName)).getName();
return name;
}
/********************************** /**********************************
* 用途说明: 构造树 * 用途说明: 构造树
* 参数说明 dataList 名称 * 参数说明 dataList 名称

View File

@ -233,13 +233,18 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
*/ */
public static File upload(MultipartFile file, String filePath,String tofilename) { public static File upload(MultipartFile file, String filePath,String tofilename) {
if (file == null || file.isEmpty()) {
log.warn("上传文件为空");
return null;
}
try { try {
String filename = filePath + File.separator + tofilename; String filename = filePath + File.separator + tofilename;
File dest = new File(filename).getCanonicalFile(); File dest = new File(filename).getCanonicalFile();
// 检测是否存在目录 // 检测是否存在目录
if (!dest.getParentFile().exists()) { File parentDir = dest.getParentFile();
if (!dest.getParentFile().mkdirs()) { if (parentDir != null && !parentDir.exists() && !parentDir.mkdirs()) {
} log.warn("无法创建父目录: {}", parentDir.getAbsolutePath());
return null;
} }
// 文件写入 // 文件写入
file.transferTo(dest); file.transferTo(dest);

View File

@ -148,6 +148,7 @@ httpserver: #配置http请求访问的地址
dotask: true #是否执行定期任务 dotask: true #是否执行定期任务
snapfilepath: d:\riis\video\ #视频截图文件路径 snapfilepath: d:\riis\video\ #视频截图文件路径
alarmfilepath: d:\riis\alarm\ #报警图片存储路径 alarmfilepath: d:\riis\alarm\ #报警图片存储路径
maindevicefilepath: d:\riis\maindevice\ #主设备文件存储地址
tempfilepath: d:\riis\temp\ #模板图片路径 tempfilepath: d:\riis\temp\ #模板图片路径
ffmpegpath: E:\ffmpeg\bin\ #ffmpeg截图命名路径 ffmpegpath: E:\ffmpeg\bin\ #ffmpeg截图命名路径
modelpath: d:\riis\model\ modelpath: d:\riis\model\

View File

@ -148,6 +148,7 @@ httpserver: #配置http请求访问的地址
dotask: true #是否执行定期任务 dotask: true #是否执行定期任务
snapfilepath: d:\riis\video\ #视频截图文件路径 snapfilepath: d:\riis\video\ #视频截图文件路径
alarmfilepath: d:\riis\alarm\ #报警图片存储路径 alarmfilepath: d:\riis\alarm\ #报警图片存储路径
maindevicefilepath: d:\riis\maindevice\ #主设备文件存储地址
tempfilepath: d:\riis\temp\ #模板图片路径 tempfilepath: d:\riis\temp\ #模板图片路径
ffmpegpath: E:\ffmpeg\bin\ #ffmpeg截图命名路径 ffmpegpath: E:\ffmpeg\bin\ #ffmpeg截图命名路径
modelpath: d:\riis\model\ modelpath: d:\riis\model\

View File

@ -4,7 +4,8 @@
<!--分页查询算法分析日志--> <!--分页查询算法分析日志-->
<select id="getAlgorithmLogsPage" resultType="java.util.Map"> <select id="getAlgorithmLogsPage" resultType="java.util.Map">
SELECT SELECT COALESCE
( al.analysis_result ->> '$.description', '' ) description,
ac.algorithm_class_name, ac.algorithm_class_name,
al.* al.*
FROM FROM
@ -32,5 +33,12 @@
<if test="componentName != null and componentName != ''"> <if test="componentName != null and componentName != ''">
AND al.component_name = #{componentName} AND al.component_name = #{componentName}
</if> </if>
<if test="startDate != null and startDate != ''">
AND str_to_date(al.analysis_time, '%Y-%m-%d %H:%i:%s') &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND str_to_date(al.analysis_time, '%Y-%m-%d %H:%i:%s') &lt;= #{endDate}
</if>
ORDER BY al.analysis_time DESC
</select> </select>
</mapper> </mapper>

View File

@ -0,0 +1,33 @@
<?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.yfd.platform.modules.basedata.mapper.SubstationMaindeviceResumeMapper">
<select id="getMaindeviceResume" resultType="java.util.Map">
SELECT
*
FROM
iis_substation_maindevice_resume
WHERE 1=1
<if test="stationCode != null and stationCode != ''">
AND station_code= #{stationCode}
</if>
<if test="areaId != null and areaId != ''">
AND area_id= #{areaId}
</if>
<if test="bayId != null and bayId != ''">
AND bay_id= #{bayId}
</if>
<if test="deviceType != null and deviceType != ''">
AND device_type= #{deviceType}
</if>
<if test="mainDeviceName != null and mainDeviceName != ''">
AND main_device_name LIKE CONCAT('%',#{mainDeviceName},'%')
</if>
<if test="startDate != null and startDate != ''">
AND str_to_date(resume_date, '%Y-%m-%d %H:%i:%s') &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND resume_date &lt; DATE_ADD(#{endDate}, INTERVAL 1 DAY)
</if>
</select>
</mapper>