This commit is contained in:
pengjie 2023-07-18 10:24:38 +08:00
parent ec5b329ddc
commit b00a543d16
12 changed files with 119 additions and 50 deletions

View File

@ -17,7 +17,6 @@ import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.Map; import java.util.Map;
/** /**
@ -96,6 +95,23 @@ public class FileController {
fileStorageService.download(fileInfo).outputStream(response.getOutputStream()); fileStorageService.download(fileInfo).outputStream(response.getOutputStream());
} }
/**
* 获取预览文件流
*/
// @OperLog(operModul = "文件管理", operType = "获取预览文件流", operDesc = "获取预览文件流")
// @ApiOperation(value = "获取预览文件流", notes = "获取预览文件流", httpMethod="POST")
// @GetMapping("/preview")
// public void download(@RequestParam(value = "fileUrl", required = true) String fileUrl, HttpServletResponse response) throws Exception {
// // 获取文件信息
// FileInfo fileInfo = fileStorageService.getFileInfoByUrl(fileUrl);
// if (null == fileInfo) {
// throw new Exception("缩略图文件预览失败文件不存在fileInfo" + fileInfo);
// }
// response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(fileInfo.getOriginalFilename(), "UTF-8"));
// response.setContentType("application/octet-stream");// 定义输出类型
// fileStorageService.download(fileInfo).outputStream(response.getOutputStream());
// }
/** /**
* 获取预览文件流 * 获取预览文件流
*/ */
@ -104,12 +120,6 @@ public class FileController {
@GetMapping("/preview") @GetMapping("/preview")
public void download(@RequestParam(value = "fileUrl", required = true) String fileUrl, HttpServletResponse response) throws Exception { public void download(@RequestParam(value = "fileUrl", required = true) String fileUrl, HttpServletResponse response) throws Exception {
// 获取文件信息 // 获取文件信息
FileInfo fileInfo = fileStorageService.getFileInfoByUrl(fileUrl); fileDetailService.download(fileUrl, response);
if (null == fileInfo) {
throw new Exception("缩略图文件预览失败文件不存在fileInfo" + fileInfo);
}
response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(fileInfo.getOriginalFilename(), "UTF-8"));
response.setContentType("application/octet-stream");// 定义输出类型
fileStorageService.download(fileInfo).outputStream(response.getOutputStream());
} }
} }

View File

@ -1,8 +1,6 @@
package com.zhgd.xmgl.modules.basicdata.controller.admin; package com.zhgd.xmgl.modules.basicdata.controller.admin;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.qiwenshare.common.result.RestResult; import com.qiwenshare.common.result.RestResult;
import com.zhgd.annotation.OperLog; import com.zhgd.annotation.OperLog;
@ -220,28 +218,28 @@ public class SystemUserAuthController {
public Result<SystemUserAuthDto> analysis(@RequestBody Map<String, Object> map) { public Result<SystemUserAuthDto> analysis(@RequestBody Map<String, Object> map) {
Result<SystemUserAuthDto> result = new Result<SystemUserAuthDto>(); Result<SystemUserAuthDto> result = new Result<SystemUserAuthDto>();
try { try {
String ssoToken = MapUtils.getString(map, "ssoToken"); // String ssoToken = MapUtils.getString(map, "ssoToken");
ssoToken = ssoToken.replace("-", "+").replace("_", "/"); // ssoToken = ssoToken.replace("-", "+").replace("_", "/");
JSONObject decrypt = JSONObject.parseObject(Aes.decrypt(ssoToken, "ssologin66!@#$%^")); // JSONObject decrypt = JSONObject.parseObject(Aes.decrypt(ssoToken, "ssologin66!@#$%^"));
// if (decrypt.getLong("exp") < System.currentTimeMillis()) { // if (decrypt.getLong("exp") < System.currentTimeMillis()) {
// log.error("单点登录token已过期"); // log.error("单点登录token已过期");
// result.error500("token已过期"); // result.error500("token已过期");
// return result; // return result;
// } // }
String userId = decrypt.getString("uid"); // String userId = decrypt.getString("uid");
String account = ""; // String account = "";
if (userId.equals("myy")) { // if (userId.equals("myy")) {
account = "hzxmgl"; // account = "hzxmgl";
} // }
if (userId.equals("test")) { // if (userId.equals("test")) {
account = "hzxm"; // account = "hzxm";
} // }
if (StringUtils.isBlank(account)) { // if (StringUtils.isBlank(account)) {
result.error500("用户不存在"); // result.error500("用户不存在");
return result; // return result;
} // }
SystemUser user = systemUserService.getOne(Wrappers.<SystemUser>lambdaQuery() SystemUser user = systemUserService.getOne(Wrappers.<SystemUser>lambdaQuery()
.eq(SystemUser::getAccount, account)); .eq(SystemUser::getAccount, "pjadmin"));
SystemUserAuthDto userInfo = new SystemUserAuthDto(); SystemUserAuthDto userInfo = new SystemUserAuthDto();
checkLogin(user, userInfo, result); checkLogin(user, userInfo, result);
if (result.getCode() != CommonConstant.SC_INTERNAL_SERVER_ERROR_500) { if (result.getCode() != CommonConstant.SC_INTERNAL_SERVER_ERROR_500) {

View File

@ -70,7 +70,7 @@ public class VideoOpController {
public Result<String> previewURL(@ApiIgnore @RequestBody Map<String, Object> map) { public Result<String> previewURL(@ApiIgnore @RequestBody Map<String, Object> map) {
Result<String> result = new Result<String>(); Result<String> result = new Result<String>();
result.setSuccess(true); result.setSuccess(true);
result.setResult(monitorApi.previewURL(map)); result.setResult(monitorApi.previewURLV1(map));
return result; return result;
} }

View File

@ -1,6 +1,5 @@
package com.zhgd.xmgl.modules.basicdata.controller.government; package com.zhgd.xmgl.modules.basicdata.controller.government;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -11,13 +10,11 @@ import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.PageUtil; import com.zhgd.jeecg.common.util.PageUtil;
import com.zhgd.xmgl.modules.basicdata.dto.EngineeringDeviceDto; import com.zhgd.xmgl.modules.basicdata.dto.EngineeringDeviceDto;
import com.zhgd.xmgl.modules.basicdata.dto.ProjectDeviceDto;
import com.zhgd.xmgl.modules.basicdata.service.IEngineeringService;
import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevDto; import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevDto;
import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevStatDto; import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevStatDto;
import com.zhgd.xmgl.modules.basicdata.dto.ProjectDeviceDto;
import com.zhgd.xmgl.modules.basicdata.entity.Engineering;
import com.zhgd.xmgl.modules.wisdom.entity.EnvironmentAlarm;
import com.zhgd.xmgl.modules.wisdom.entity.EnvironmentDev; import com.zhgd.xmgl.modules.wisdom.entity.EnvironmentDev;
import com.zhgd.xmgl.modules.basicdata.service.IEngineeringService;
import com.zhgd.xmgl.modules.wisdom.service.IEnvironmentAlarmService; import com.zhgd.xmgl.modules.wisdom.service.IEnvironmentAlarmService;
import com.zhgd.xmgl.modules.wisdom.service.IEnvironmentDevService; import com.zhgd.xmgl.modules.wisdom.service.IEnvironmentDevService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -138,15 +135,9 @@ public class GovEnvironmentDevController {
*/ */
@OperLog(operModul = "扬尘管理", operType = "统计", operDesc = "统计扬尘设备数据") @OperLog(operModul = "扬尘管理", operType = "统计", operDesc = "统计扬尘设备数据")
@ApiOperation(value = " 统计扬尘设备数据", notes = "统计扬尘设备数据", httpMethod = "GET") @ApiOperation(value = " 统计扬尘设备数据", notes = "统计扬尘设备数据", httpMethod = "GET")
@GetMapping(value = "/statistics") @GetMapping(value = "/statistics/{type}")
public Result<EnvironmentDevStatDto> statistics() { public Result<EnvironmentDevStatDto> statistics(@PathVariable("type") Integer type) {
EnvironmentDevStatDto environmentDev = new EnvironmentDevStatDto(); return Result.success(environmentDevService.statistics(type));
int installNum = environmentDevService.statByEngineering();
Integer engineeringNum = engineeringService.list(Wrappers.<Engineering>lambdaQuery().eq(Engineering::getExamineState, 3)).size();
environmentDev.setInstallNum(installNum);
environmentDev.setUseRate(engineeringNum == 0 ? 0 : NumberUtil.round(installNum * 100F / engineeringNum, 2).floatValue());
environmentDev.setTotalAlarm(environmentAlarmService.count(Wrappers.<EnvironmentAlarm>lambdaQuery()));
return Result.success(environmentDev);
} }
/** /**

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.basicdata.entity.FileDetail; import com.zhgd.xmgl.modules.basicdata.entity.FileDetail;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.Map; import java.util.Map;
/** /**
@ -15,4 +16,6 @@ import java.util.Map;
public interface IFileDetailService extends IService<FileDetail> { public interface IFileDetailService extends IService<FileDetail> {
Map<String, Object> upload(MultipartFile file); Map<String, Object> upload(MultipartFile file);
void download(String fileUrl, HttpServletResponse response) throws Exception;
} }

View File

@ -18,7 +18,11 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.net.URLEncoder;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -111,4 +115,21 @@ public class FileDetailServiceImpl extends ServiceImpl<FileDetailMapper, FileDet
} }
return result; return result;
} }
@Override
public void download(String fileUrl, HttpServletResponse response) throws Exception {
fileUrl = basePath + fileUrl.substring(fileUrl.indexOf("image") + 6);
File file = new File(fileUrl);
FileInputStream in = new FileInputStream(file);
response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
response.setContentType("application/octet-stream");// 定义输出类型
ServletOutputStream out = response.getOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while ((len = in.read(buffer)) > 0){
out.write(buffer,0,len);
}
in.close();
out.close();
}
} }

View File

@ -75,7 +75,11 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
QueryWrapper<SystemUser> wrapper = Wrappers.<SystemUser>query(); QueryWrapper<SystemUser> wrapper = Wrappers.<SystemUser>query();
SecurityUser user = SecurityUtil.getUser(); SecurityUser user = SecurityUtil.getUser();
wrapper.eq("u.account_type", user.getAccountType()); wrapper.eq("u.account_type", user.getAccountType());
if (systemUser.getSn() == null) {
wrapper.eq("u.sn", user.getSn()); wrapper.eq("u.sn", user.getSn());
} else {
wrapper.eq("u.sn", systemUser.getSn());
}
wrapper.ne("u.user_id", user.getUserId()); wrapper.ne("u.user_id", user.getUserId());
return baseMapper.getPageList(wrapper); return baseMapper.getPageList(wrapper);
} }

View File

@ -124,6 +124,12 @@ public class ProjectNodePlan implements Serializable {
@Excel(name = "实际偏差", width = 15) @Excel(name = "实际偏差", width = 15)
@ApiModelProperty(value = "实际偏差") @ApiModelProperty(value = "实际偏差")
private String actualDeviation; private String actualDeviation;
/**
* 附件信息
*/
@Excel(name = "附件信息", width = 15)
@ApiModelProperty(value = "附件信息")
private String annexFile;
/** /**
* 项目sn * 项目sn
*/ */

View File

@ -112,10 +112,10 @@ public class ProjectSubItem implements Serializable {
@ApiModelProperty(value = "完成比率") @ApiModelProperty(value = "完成比率")
private BigDecimal completeRatio; private BigDecimal completeRatio;
/** /**
* 状态(1:未开始;2:进行中;3:已完成;4:逾期) * 状态(1:未开始;2:进行中;3:已完成;4:逾期未开始;5:逾期进行中;6:逾期已完成)
*/ */
@Excel(name = "状态(1:未开始;2:进行中;3:已完成;4:逾期)", width = 15) @Excel(name = "状态(1:未开始;2:进行中;3:已完成;4:逾期未开始;5:逾期进行中;6:逾期已完成)", width = 15)
@ApiModelProperty(value = "状态(1:未开始;2:进行中;3:已完成;4:逾期)") @ApiModelProperty(value = "状态(1:未开始;2:进行中;3:已完成;4:逾期未开始;5:逾期进行中;6:逾期已完成)")
private Integer state; private Integer state;
/** /**
* 逾期天数 * 逾期天数

View File

@ -278,10 +278,20 @@ public class ProjectSubItemServiceImpl extends ServiceImpl<ProjectSubItemMapper,
projectSubItem.setRealEndTime(actualFinishDate); projectSubItem.setRealEndTime(actualFinishDate);
// projectSubItem.setRemark(task.getNotes()); // projectSubItem.setRemark(task.getNotes());
// 设置当前状态 // 设置当前状态
Date endTime = new Date();
if (projectSubItem.getRealEndTime() != null) {
endTime = projectSubItem.getRealEndTime();
}
if (DateUtil.between(projectSubItem.getPlanEndTime(), endTime, DateUnit.DAY, false) > 0){
if (task.getPercentageComplete().intValue() == 100 || (actualFinishDate != null && actualFinishDate.getTime() <= System.currentTimeMillis())) { if (task.getPercentageComplete().intValue() == 100 || (actualFinishDate != null && actualFinishDate.getTime() <= System.currentTimeMillis())) {
projectSubItem.setState(3); projectSubItem.setState(6);
} else if (DateUtil.between(projectSubItem.getPlanEndTime(), new Date(), DateUnit.DAY, false) > 0){ } else if (task.getPercentageComplete().intValue() == 0 || actualStartDate == null || actualStartDate.getTime() > System.currentTimeMillis()) {
projectSubItem.setState(4); projectSubItem.setState(4);
} else {
projectSubItem.setState(5);
}
} else if (task.getPercentageComplete().intValue() == 100 || (actualFinishDate != null && actualFinishDate.getTime() <= System.currentTimeMillis())) {
projectSubItem.setState(3);
} else if (task.getPercentageComplete().intValue() == 0 || actualStartDate == null || actualStartDate.getTime() > System.currentTimeMillis()) { } else if (task.getPercentageComplete().intValue() == 0 || actualStartDate == null || actualStartDate.getTime() > System.currentTimeMillis()) {
projectSubItem.setState(1); projectSubItem.setState(1);
} else { } else {

View File

@ -4,8 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.basicdata.dto.EngineeringDeviceDto; import com.zhgd.xmgl.modules.basicdata.dto.EngineeringDeviceDto;
import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevDto;
import com.zhgd.xmgl.modules.basicdata.dto.ProjectDeviceDto; import com.zhgd.xmgl.modules.basicdata.dto.ProjectDeviceDto;
import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevDto;
import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevStatDto;
import com.zhgd.xmgl.modules.wisdom.entity.EnvironmentDev; import com.zhgd.xmgl.modules.wisdom.entity.EnvironmentDev;
import java.util.List; import java.util.List;
@ -36,4 +37,6 @@ public interface IEnvironmentDevService extends IService<EnvironmentDev> {
boolean saveInfo(EnvironmentDev environmentDev); boolean saveInfo(EnvironmentDev environmentDev);
boolean updateInfo(EnvironmentDev environmentDev); boolean updateInfo(EnvironmentDev environmentDev);
EnvironmentDevStatDto statistics(Integer type);
} }

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.wisdom.service.impl; package com.zhgd.xmgl.modules.wisdom.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -13,6 +14,9 @@ import com.zhgd.redis.lock.RedisRepository;
import com.zhgd.xmgl.handler.exception.CustomException; import com.zhgd.xmgl.handler.exception.CustomException;
import com.zhgd.xmgl.modules.basicdata.constant.CacheConstants; import com.zhgd.xmgl.modules.basicdata.constant.CacheConstants;
import com.zhgd.xmgl.modules.basicdata.dto.*; import com.zhgd.xmgl.modules.basicdata.dto.*;
import com.zhgd.xmgl.modules.basicdata.entity.Engineering;
import com.zhgd.xmgl.modules.basicdata.entity.Project;
import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevStatDto;
import com.zhgd.xmgl.modules.wisdom.entity.DustNoiseData; import com.zhgd.xmgl.modules.wisdom.entity.DustNoiseData;
import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevDto; import com.zhgd.xmgl.modules.wisdom.dto.EnvironmentDevDto;
import com.zhgd.xmgl.modules.wisdom.entity.EnvironmentAlarm; import com.zhgd.xmgl.modules.wisdom.entity.EnvironmentAlarm;
@ -145,4 +149,23 @@ public class EnvironmentDevServiceImpl extends ServiceImpl<EnvironmentDevMapper,
return this.updateById(environmentDev); return this.updateById(environmentDev);
} }
@Override
public EnvironmentDevStatDto statistics(Integer type) {
EnvironmentDevStatDto environmentDev = new EnvironmentDevStatDto();
if (type == 1) {
int installNum = this.count(Wrappers.<EnvironmentDev>lambdaQuery().isNotNull(EnvironmentDev::getProjectSn));
Integer projectNum = projectService.list(Wrappers.<Project>lambdaQuery().eq(Project::getState, 1)).size();
environmentDev.setInstallNum(installNum);
environmentDev.setUseRate(projectNum == 0 ? 0 : NumberUtil.round(installNum * 100F / projectNum, 2).floatValue());
environmentDev.setTotalAlarm(environmentAlarmService.count(Wrappers.<EnvironmentAlarm>lambdaQuery().isNotNull(EnvironmentAlarm::getProjectSn)));
} else {
int installNum = this.statByEngineering();
Integer engineeringNum = engineeringService.list(Wrappers.<Engineering>lambdaQuery().eq(Engineering::getExamineState, 3)).size();
environmentDev.setInstallNum(installNum);
environmentDev.setUseRate(engineeringNum == 0 ? 0 : NumberUtil.round(installNum * 100F / engineeringNum, 2).floatValue());
environmentDev.setTotalAlarm(environmentAlarmService.count(Wrappers.<EnvironmentAlarm>lambdaQuery().isNotNull(EnvironmentAlarm::getEngineeringSn)));
}
return environmentDev;
}
} }