Commit 7b49ec2ff6521c748f004f04c15497a646d2c3d9

Authored by guzijian
1 parent 001d2d5b

fix: 导出逻辑修改提供图片导出

ruoyi-admin/src/main/java/com/ruoyi/driver/controller/DriverController.java
... ... @@ -39,8 +39,6 @@ public class DriverController extends BaseController {
39 39 @Autowired
40 40 private IDriverService driverService;
41 41  
42   - @Autowired
43   - private ServerConfig serverConfig;
44 42  
45 43 /**
46 44 * 获取驾驶员排班信息
... ... @@ -145,21 +143,7 @@ public class DriverController extends BaseController {
145 143 public AjaxResult uploadImage(MultipartFile file) {
146 144 try
147 145 {
148   - // 上传文件路径
149   - String baseUrl = RuoYiConfig.getUploadPath() + "/head/image";
150   - // 上传并返回新文件名称
151   - FileUploadUtils.assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
152   - String fileName = file.getOriginalFilename();
153   - String absPath = FileUploadUtils.getAbsoluteFile(baseUrl, fileName).getAbsolutePath();
154   - fileName = FileUploadUtils.getPathFileName(baseUrl, fileName);
155   - file.transferTo(Paths.get(absPath));
156   - String url = serverConfig.getUrl() + fileName;
157   - AjaxResult ajax = AjaxResult.success();
158   - ajax.put("url", url);
159   - ajax.put("fileName", fileName);
160   - ajax.put("newFileName", FileUtils.getName(fileName));
161   - ajax.put("originalFilename", file.getOriginalFilename());
162   - return ajax;
  146 + return driverService.uploadImage(file);
163 147 }
164 148 catch (Exception e)
165 149 {
... ... @@ -167,6 +151,4 @@ public class DriverController extends BaseController {
167 151 }
168 152 }
169 153  
170   -
171   -// @ApiOperation("保存员工大头像")
172 154 }
... ...
ruoyi-admin/src/main/java/com/ruoyi/driver/service/IDriverService.java
1 1 package com.ruoyi.driver.service;
2 2  
  3 +import java.io.IOException;
3 4 import java.util.List;
4 5 import java.util.Map;
5 6  
6 7 import com.ruoyi.common.core.domain.AjaxResult;
  8 +import com.ruoyi.common.exception.file.InvalidExtensionException;
7 9 import com.ruoyi.driver.domain.Driver;
8 10 import com.ruoyi.pojo.response.ResponseScheduling;
  11 +import org.springframework.web.multipart.MultipartFile;
9 12  
10 13 /**
11 14 * 驾驶员信息Service接口
... ... @@ -76,4 +79,6 @@ public interface IDriverService
76 79 AjaxResult getDriverSchedulingAll();
77 80  
78 81 AjaxResult checkJobCode(Driver jobCode);
  82 +
  83 + AjaxResult uploadImage(MultipartFile file) throws InvalidExtensionException, IOException;
79 84 }
... ...
ruoyi-admin/src/main/java/com/ruoyi/driver/service/impl/DriverServiceImpl.java
1 1 package com.ruoyi.driver.service.impl;
2 2  
  3 +import java.io.IOException;
  4 +import java.nio.file.Paths;
3 5 import java.util.*;
4 6  
  7 +import com.ruoyi.common.config.RuoYiConfig;
5 8 import com.ruoyi.common.core.domain.AjaxResult;
6 9 import com.ruoyi.common.core.redis.RedisCache;
  10 +import com.ruoyi.common.exception.file.InvalidExtensionException;
7 11 import com.ruoyi.common.utils.SecurityUtils;
  12 +import com.ruoyi.common.utils.file.FileUploadUtils;
  13 +import com.ruoyi.common.utils.file.FileUtils;
  14 +import com.ruoyi.common.utils.file.MimeTypeUtils;
  15 +import com.ruoyi.framework.config.ServerConfig;
8 16 import com.ruoyi.pojo.response.ResponseScheduling;
9 17 import com.ruoyi.utils.ConstDateUtil;
10 18 import com.ruoyi.utils.ListUtils;
... ... @@ -13,6 +21,7 @@ import org.springframework.stereotype.Service;
13 21 import com.ruoyi.driver.mapper.DriverMapper;
14 22 import com.ruoyi.driver.domain.Driver;
15 23 import com.ruoyi.driver.service.IDriverService;
  24 +import org.springframework.web.multipart.MultipartFile;
16 25  
17 26 import static com.ruoyi.redispre.GlobalRedisPreName.DRIVER_SCHEDULING_PRE;
18 27  
... ... @@ -24,6 +33,10 @@ import static com.ruoyi.redispre.GlobalRedisPreName.DRIVER_SCHEDULING_PRE;
24 33 */
25 34 @Service
26 35 public class DriverServiceImpl implements IDriverService {
  36 +
  37 +
  38 + @Autowired
  39 + private ServerConfig serverConfig;
27 40 @Autowired
28 41 private DriverMapper driverMapper;
29 42  
... ... @@ -143,4 +156,24 @@ public class DriverServiceImpl implements IDriverService {
143 156 }
144 157 return AjaxResult.success(resultMap);
145 158 }
  159 +
  160 + @Override
  161 + public AjaxResult uploadImage(MultipartFile file) throws InvalidExtensionException, IOException {
  162 +
  163 + // 上传文件路径
  164 + String baseUrl = RuoYiConfig.getUploadPath() + "/head/image";
  165 + // 上传并返回新文件名称
  166 + FileUploadUtils.assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
  167 + String fileName = file.getOriginalFilename();
  168 + String absPath = FileUploadUtils.getAbsoluteFile(baseUrl, fileName).getAbsolutePath();
  169 + fileName = FileUploadUtils.getPathFileName(baseUrl, fileName);
  170 + file.transferTo(Paths.get(absPath));
  171 + String url = serverConfig.getUrl() + fileName;
  172 + AjaxResult ajax = AjaxResult.success();
  173 + ajax.put("url", url);
  174 + ajax.put("fileName", fileName);
  175 + ajax.put("newFileName", FileUtils.getName(fileName));
  176 + ajax.put("originalFilename", file.getOriginalFilename());
  177 + return ajax;
  178 + }
146 179 }
... ...
ruoyi-admin/src/main/java/com/ruoyi/job/DriverJob.java
... ... @@ -90,6 +90,14 @@ public class DriverJob implements InitializingBean {
90 90 System.out.println("执行结束");
91 91 }
92 92  
  93 + /**
  94 + * 导入图片任务
  95 + */
  96 + public void importImages(){
  97 + // TODO 获取用户列表 通过用户列表的jobCode来匹配对应的用户图像信息并保存到服务器
  98 +
  99 + }
  100 +
93 101 private static void saveSchedulingToRedis(String getSchedulingInfoUrl, List<Driver> drivers) {
94 102 List<ResponseScheduling> originSchedulingList = RESTTEMPLATE.exchange(
95 103 getSchedulingInfoUrl,
... ...
ruoyi-admin/src/main/java/com/ruoyi/pojo/converter/common/ImageConverter.java 0 → 100644
  1 +package com.ruoyi.pojo.converter.common;
  2 +
  3 +import com.alibaba.excel.converters.Converter;
  4 +import com.alibaba.excel.enums.CellDataTypeEnum;
  5 +import com.alibaba.excel.metadata.CellData;
  6 +import com.alibaba.excel.metadata.GlobalConfiguration;
  7 +import com.alibaba.excel.metadata.property.ExcelContentProperty;
  8 +import com.alibaba.excel.util.FileUtils;
  9 +import com.ruoyi.common.config.RuoYiConfig;
  10 +import com.ruoyi.common.utils.file.FileUploadUtils;
  11 +
  12 +import java.io.File;
  13 +import java.io.IOException;
  14 +
  15 +/**
  16 + * @author 20412
  17 + */
  18 +public class ImageConverter implements Converter<String> {
  19 + @Override
  20 + public Class supportJavaTypeKey() {
  21 + return String.class;
  22 + }
  23 +
  24 + @Override
  25 + public CellDataTypeEnum supportExcelTypeKey() {
  26 + return CellDataTypeEnum.IMAGE;
  27 + }
  28 +
  29 + @Override
  30 + public String convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
  31 + GlobalConfiguration globalConfiguration) {
  32 + throw new UnsupportedOperationException("Cannot convert images to string");
  33 + }
  34 +
  35 + @Override
  36 + public CellData convertToExcelData(String value, ExcelContentProperty contentProperty,
  37 + GlobalConfiguration globalConfiguration) throws IOException {
  38 + String path = RuoYiConfig.getProfile() + value.replace("/profile","");
  39 + System.out.println(path);
  40 + File file = new File(path + File.separator);
  41 + if (!file.exists()){
  42 + return new CellData("没有图片");
  43 + }
  44 + return new CellData(FileUtils.readFileToByteArray(file));
  45 + }
  46 +}
... ...
ruoyi-admin/src/main/java/com/ruoyi/pojo/request/ReportErrorRequestVo.java
... ... @@ -18,6 +18,11 @@ import java.util.List;
18 18 @Data
19 19 public class ReportErrorRequestVo {
20 20 /**
  21 + * 工号
  22 + */
  23 + @ApiModelProperty("工号")
  24 + private String jobCode;
  25 + /**
21 26 * 错误类型
22 27 */
23 28 @ApiModelProperty("错误类型")
... ...
ruoyi-admin/src/main/java/com/ruoyi/pojo/response/ReportViewResponseVo.java
... ... @@ -2,17 +2,22 @@ package com.ruoyi.pojo.response;
2 2  
3 3 import com.alibaba.excel.annotation.ExcelIgnore;
4 4 import com.alibaba.excel.annotation.ExcelProperty;
  5 +import com.alibaba.excel.annotation.write.style.ColumnWidth;
  6 +import com.alibaba.excel.annotation.write.style.ContentRowHeight;
  7 +import com.alibaba.excel.converters.string.StringImageConverter;
5 8 import com.fasterxml.jackson.annotation.JsonFormat;
6 9 import com.ruoyi.pojo.converter.AlcoholFlagConverter;
7 10 import com.ruoyi.pojo.converter.SignInConvert;
8 11 import com.ruoyi.pojo.converter.SignInStatusConverter;
9 12 import com.ruoyi.pojo.converter.SignInTypeConverter;
  13 +import com.ruoyi.pojo.converter.common.ImageConverter;
10 14 import io.swagger.annotations.ApiModel;
11 15 import io.swagger.annotations.ApiModelProperty;
12 16 import lombok.Data;
13 17 import org.springframework.format.annotation.DateTimeFormat;
14 18  
15 19 import java.math.BigDecimal;
  20 +import java.net.URL;
16 21 import java.util.Date;
17 22  
18 23 /**
... ... @@ -20,6 +25,8 @@ import java.util.Date;
20 25 */
21 26 @ApiModel("滚动大屏响应体数据")
22 27 @Data
  28 +@ContentRowHeight(100)
  29 +@ColumnWidth(100 / 8)
23 30 public class ReportViewResponseVo {
24 31 @ApiModelProperty("id")
25 32 @ExcelIgnore
... ... @@ -65,10 +72,12 @@ public class ReportViewResponseVo {
65 72 @ApiModelProperty("酒精含量")
66 73 private BigDecimal alcoholIntake;
67 74  
68   - @ExcelProperty(value = "头像")
  75 + @ExcelProperty(value = "头像",converter = ImageConverter.class)
69 76 @ApiModelProperty("头像")
70 77 private String image;
71 78  
  79 +// private URL url;
  80 +
72 81 @ExcelProperty(value = "备注")
73 82 @ApiModelProperty("备注")
74 83 private String remark;
... ...
ruoyi-admin/src/main/resources/mapper/eexception/EquipmentExceptionMapper.xml
... ... @@ -42,6 +42,9 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
42 42 and DATE_FORMAT(create_time,'%Y-%m-%d') >= #{startTime}
43 43 and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endTime}
44 44 </if>
  45 + <if test="jobCode != '' and jobCode != null">
  46 + and job_code = #{jobCode}
  47 + </if>
45 48 </select>
46 49  
47 50 <insert id="insertEquipmentException" parameterType="EquipmentException" useGeneratedKeys="true" keyProperty="id">
... ...
ruoyi-admin/src/main/resources/mapper/in/SignInMapper.xml
... ... @@ -90,6 +90,9 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
90 90 and DATE_FORMAT(create_time,'%Y-%m-%d') >= #{startTime}
91 91 and DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endTime}
92 92 </if>
  93 + <if test="jobCode != '' and jobCode != null">
  94 + and jobCode = #{jobCode}
  95 + </if>
93 96  
94 97 </select>
95 98  
... ...