批量导出维保单和批量导出巡检任务

master
薛宏祥 12 months ago
parent e3f06f322b
commit 830ac4832b
  1. 7
      src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java
  2. 6
      src/main/java/org/springblade/modules/business/contraller/WorkOrderController.java
  3. 7
      src/main/java/org/springblade/modules/business/pojo/entity/maintenance/MaintenanceOutputData.java
  4. 2
      src/main/java/org/springblade/modules/business/service/IMaintenancePlanDetailService.java
  5. 2
      src/main/java/org/springblade/modules/business/service/IMaintenanceTaskDetailService.java
  6. 10
      src/main/java/org/springblade/modules/business/service/IWorkOrderService.java
  7. 5
      src/main/java/org/springblade/modules/business/service/impl/MaintenancePlanDetailServiceImpl.java
  8. 153
      src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskDetailServiceImpl.java
  9. 185
      src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java
  10. BIN
      src/main/resources/excel/MaintenanceTaskReport.xlsx
  11. BIN
      src/main/resources/excel/WorkOrderServiceSheet.xlsx

@ -26,6 +26,7 @@ import org.springblade.modules.business.service.*;
import org.springblade.modules.business.sms.SmsService;
import org.springblade.modules.system.pojo.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@ -463,6 +464,12 @@ public class MaintenanceController extends BladeController {
taskDetailService.maintenanceOutputService(task, response);
}
@PostMapping("/batch-maintenance-output-service")
@Operation(summary = "批量导出巡检任务报告", description = "批量导出巡检任务报告")
public void batchMaintenanceOutputService(@RequestBody List<MaintenanceTask> taskList, HttpServletResponse response) throws IOException {
taskDetailService.batchMaintenanceOutputService(taskList, response);
}
@PostMapping("/maintenance-plan-report")
@Operation(summary = "导出巡检计划报告", description = "导出巡检计划报告")
private void maintenancePlanReport(@RequestBody MaintenancePlan maintenancePlan, HttpServletResponse response) throws IOException {

@ -635,4 +635,10 @@ public class WorkOrderController extends BladeController {
workOrderService.reportService(workOrder, response);
}
@ApiLog("批量导出运维服务单")
@PostMapping("/batch-report-service")
public void batchReportService(@RequestBody List<WorkOrder> workOrderList, HttpServletResponse response) throws IOException {
workOrderService.batchReportService(workOrderList, response);
}
}

@ -24,15 +24,14 @@ public class MaintenanceOutputData {
private String checkContent;
//状态
private Integer status;
private String status;
//现场照片
@ExcelProperty(converter = ByteArrayImageConverter.class)
private byte[] image1;
//签字照片
@ExcelProperty(converter = ByteArrayImageConverter.class)
private byte[] image2;
//签字
private String signature;
private String remark;
}

@ -4,7 +4,6 @@ import jakarta.servlet.http.HttpServletResponse;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlanDetail;
import org.springframework.web.bind.annotation.RequestBody;
import java.io.IOException;
@ -15,5 +14,6 @@ import java.io.IOException;
* @since 2024-10-14
*/
public interface IMaintenancePlanDetailService extends BaseService<MaintenancePlanDetail> {
void maintenancePlanReport(MaintenancePlan maintenancePlan, HttpServletResponse response) throws IOException;
}

@ -19,4 +19,6 @@ public interface IMaintenanceTaskDetailService extends BaseService<MaintenanceTa
List<MaintenanceTaskDetail> findListByDeviceId(Long deviceId);
void maintenanceOutputService(MaintenanceTask task, HttpServletResponse response) throws IOException;
void batchMaintenanceOutputService(List<MaintenanceTask> task, HttpServletResponse response) throws IOException;
}

@ -92,10 +92,14 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
public List<Map<String, String>> selectEquipRepairCount();
public Map<String,Object> selectEquipRepairCountByMonth(String deviceId);
public Map<String,Object> selectAverageFaultResponseTime(String startMonth,String endMonth);
public Map<String, Object> selectEquipRepairCountByMonth(String deviceId);
public Map<String, Object> selectAverageFaultResponseTime(String startMonth, String endMonth);
public void reportService(WorkOrder workOrder, HttpServletResponse response) throws IOException;
public Map<String,Object> selectAverageFaultRepairTime(String startMonth,String endMonth);
public void batchReportService(List<WorkOrder> workOrder, HttpServletResponse response) throws IOException;
public Map<String, Object> selectAverageFaultRepairTime(String startMonth, String endMonth);
}

@ -8,6 +8,7 @@ import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlan;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlanOutputData;
@ -17,7 +18,9 @@ import org.springblade.modules.business.pojo.entity.maintenance.MaintenancePlanD
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import java.util.zip.ZipOutputStream;
/**
* 巡检计划详情 服务实现类
@ -26,6 +29,7 @@ import java.util.*;
* @since 2024-10-14
*/
@Service
@AllArgsConstructor
public class MaintenancePlanDetailServiceImpl extends BaseServiceImpl<MaintenancePlanDetailMapper, MaintenancePlanDetail> implements IMaintenancePlanDetailService {
@Override
@ -55,7 +59,6 @@ public class MaintenancePlanDetailServiceImpl extends BaseServiceImpl<Maintenanc
}
maintenancePlanOutputDataList.add(maintenancePlanOutputData);
}
//导出到Excel中
ServletOutputStream outputStream = response.getOutputStream();
try (ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(templateFile).build()) {

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.business.mapper.MaintenanceTaskDetailMapper;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceOutputData;
@ -18,18 +19,20 @@ import org.springblade.modules.business.service.IMaintenanceTaskDetailService;
import org.springframework.stereotype.Service;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* 巡检任务详情 服务实现类
@ -52,8 +55,8 @@ public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<Maintenanc
String templateFile = "./src/main/resources/excel/MaintenanceTaskReport.xlsx";
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
Map<String, Object> map = new HashMap<>();
map.put("taskName", task.getTaskName());
map.put("address", task.getAddress());
map.put("taskName", task.getDeptName());
map.put("address", task.getDeptName());
map.put("taskContent", task.getTaskContent());
map.put("serviceManName", task.getServicemanName());
List<MaintenanceTaskDetail> maintenanceTaskDetailList = baseMapper.selectList(Wrappers.lambdaQuery(MaintenanceTaskDetail.class).eq(MaintenanceTaskDetail::getTaskId, task.getId()));
@ -67,10 +70,20 @@ public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<Maintenanc
maintenanceOutputData.setDeptName(maintenanceTaskDetail.getDeptName());
maintenanceOutputData.setMajorName(maintenanceTaskDetail.getMajorName());
maintenanceOutputData.setCheckContent(maintenanceTaskDetail.getCheckContent());
maintenanceOutputData.setStatus(maintenanceTaskDetail.getStatus());
Optional<Integer> status = Optional.ofNullable(maintenanceTaskDetail.getStatus());
if (status.isPresent()) {
if (status.get() == 1) {
maintenanceOutputData.setStatus("异常");
}
if (status.get() == 0) {
maintenanceOutputData.setStatus("正常");
}
}
maintenanceOutputData.setRemark(maintenanceTaskDetail.getRemark());
maintenanceOutputData.setSignature(task.getSignUrl());
if (StringUtils.isNotBlank(maintenanceTaskDetail.getPicUrl())) {
try {
//获取图片
URL url = new URL(maintenanceTaskDetail.getPicUrl());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
@ -78,7 +91,7 @@ public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<Maintenanc
InputStream inputStream = httpURLConnection.getInputStream();
BufferedImage image = ImageIO.read(inputStream);
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", arrayOutputStream);
ImageIO.write(image, "png", arrayOutputStream);
byte[] bytes = arrayOutputStream.toByteArray();
maintenanceOutputData.setImage1(bytes);
} catch (Exception e) {
@ -87,26 +100,27 @@ public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<Maintenanc
} else {
maintenanceOutputData.setImage1(null);
}
if (StringUtils.isNotBlank(maintenanceTaskDetail.getSignUrl())) {
try {
URL url = new URL(maintenanceTaskDetail.getSignUrl());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true);
InputStream inputStream = httpURLConnection.getInputStream();
BufferedImage image = ImageIO.read(inputStream);
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", arrayOutputStream);
byte[] bytes = arrayOutputStream.toByteArray();
maintenanceOutputData.setImage2(bytes);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// if (StringUtils.isNotBlank(maintenanceTaskDetail.getSignUrl())) {
// try {
// URL url = new URL(maintenanceTaskDetail.getSignUrl());
// HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
// httpURLConnection.setRequestMethod("GET");
// httpURLConnection.setDoInput(true);
// InputStream inputStream = httpURLConnection.getInputStream();
// BufferedImage image = ImageIO.read(inputStream);
// ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
// ImageIO.write(image, "jpg", arrayOutputStream);
// byte[] bytes = arrayOutputStream.toByteArray();
// maintenanceOutputData.setImage2(bytes);
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
//
// } else {
// maintenanceOutputData.setImage2(null);
// }
maintenanceOutputDataList.add(maintenanceOutputData);
}
//将数据导出到Excel
ServletOutputStream outputStream = response.getOutputStream();
try (ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(templateFile).build()) {
@ -117,7 +131,94 @@ public class MaintenanceTaskDetailServiceImpl extends BaseServiceImpl<Maintenanc
outputStream.flush();
outputStream.close();
}
}
@Override
public void batchMaintenanceOutputService(List<MaintenanceTask> taskList, HttpServletResponse response) throws IOException {
for (MaintenanceTask task : taskList) {
//数据获取
String templateFile = "./src/main/resources/excel/MaintenanceTaskReport.xlsx";
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
Map<String, Object> map = new HashMap<>();
map.put("taskName", task.getDeptName());
map.put("address", task.getDeptName());
map.put("taskContent", task.getTaskContent());
map.put("serviceManName", task.getServicemanName());
List<MaintenanceTaskDetail> maintenanceTaskDetailList = baseMapper.selectList(Wrappers.lambdaQuery(MaintenanceTaskDetail.class).eq(MaintenanceTaskDetail::getTaskId, task.getId()));
List<MaintenanceOutputData> maintenanceOutputDataList = new ArrayList<>();
long no = 0;
for (MaintenanceTaskDetail maintenanceTaskDetail : maintenanceTaskDetailList) {
no++;
MaintenanceOutputData maintenanceOutputData = new MaintenanceOutputData();
maintenanceOutputData.setNo(no);
maintenanceOutputData.setFloor(maintenanceTaskDetail.getFloorName());
maintenanceOutputData.setDeptName(maintenanceTaskDetail.getDeptName());
maintenanceOutputData.setMajorName(maintenanceTaskDetail.getMajorName());
maintenanceOutputData.setCheckContent(maintenanceTaskDetail.getCheckContent());
Optional<Integer> status = Optional.ofNullable(maintenanceTaskDetail.getStatus());
if (status.isPresent()) {
if (status.get() == 1) {
maintenanceOutputData.setStatus("异常");
}
if (status.get() == 0) {
maintenanceOutputData.setStatus("正常");
}
}
maintenanceOutputData.setRemark(maintenanceTaskDetail.getRemark());
maintenanceOutputData.setSignature(task.getSignUrl());
if (StringUtils.isNotBlank(maintenanceTaskDetail.getPicUrl())) {
try {
//获取图片
URL url = new URL(maintenanceTaskDetail.getPicUrl());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true);
InputStream inputStream = httpURLConnection.getInputStream();
BufferedImage image = ImageIO.read(inputStream);
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", arrayOutputStream);
byte[] bytes = arrayOutputStream.toByteArray();
maintenanceOutputData.setImage1(bytes);
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
maintenanceOutputData.setImage1(null);
}
//获取签字照片
// if (StringUtils.isNotBlank(maintenanceTaskDetail.getSignUrl())) {
// try {
// URL url = new URL(maintenanceTaskDetail.getSignUrl());
// HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
// httpURLConnection.setRequestMethod("GET");
// httpURLConnection.setDoInput(true);
// InputStream inputStream = httpURLConnection.getInputStream();
// BufferedImage image = ImageIO.read(inputStream);
// ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
// ImageIO.write(image, "jpg", arrayOutputStream);
// byte[] bytes = arrayOutputStream.toByteArray();
// maintenanceOutputData.setImage2(bytes);
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
//
// } else {
// maintenanceOutputData.setImage2(null);
// }
maintenanceOutputDataList.add(maintenanceOutputData);
}
//将数据导出到Excel
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
String fileName = task.getTaskCode() + "巡检报告.xlsx";
zos.putNextEntry(new ZipEntry(fileName));
try (ExcelWriter excelWriter = EasyExcel.write(zos).withTemplate(templateFile).build()) {
WriteSheet writeSheet = EasyExcel.writerSheet().build();
excelWriter.fill(maintenanceOutputDataList, fillConfig, writeSheet);
excelWriter.fill(map, writeSheet);
excelWriter.finish();
zos.flush();
zos.closeEntry();
}
}
}
}

@ -56,6 +56,8 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import static org.springblade.common.enums.DictBizEnum.GOODS_TYPE;
@ -328,75 +330,75 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Override
public Map<String, Object> selectEquipRepairCountByMonth(String deviceId) {
String startDate = DateFormatUtils.format(CommonDateUtil.getCurrentYearStartTime(),"yyyy-MM-dd HH:mm:ss");
String endDate = DateFormatUtils.format(CommonDateUtil.getCurrentYearEndTime(),"yyyy-MM-dd HH:mm:ss");
List<String> monthList = CommonDateUtil.getMonthList(startDate,endDate,"yyyy-MM");
String startDate = DateFormatUtils.format(CommonDateUtil.getCurrentYearStartTime(), "yyyy-MM-dd HH:mm:ss");
String endDate = DateFormatUtils.format(CommonDateUtil.getCurrentYearEndTime(), "yyyy-MM-dd HH:mm:ss");
List<String> monthList = CommonDateUtil.getMonthList(startDate, endDate, "yyyy-MM");
List<Map<String, Object>> list = baseMapper.selectEquipRepairCountByMonth(deviceId);
List<String> dataList = new ArrayList<>();
Map<String,String> dataMap = new HashMap<>();
for(Map<String,Object> map1 : list){
dataMap.put(map1.get("month").toString(),map1.get("duration").toString());
Map<String, String> dataMap = new HashMap<>();
for (Map<String, Object> map1 : list) {
dataMap.put(map1.get("month").toString(), map1.get("duration").toString());
}
for(String month : monthList){
if(null != dataMap.get(month)){
for (String month : monthList) {
if (null != dataMap.get(month)) {
dataList.add(dataMap.get(month));
}else{
} else {
dataList.add("0");
}
}
Map<String,Object> map = new HashMap<>();
map.put("date",monthList);
map.put("data",dataList);
Map<String, Object> map = new HashMap<>();
map.put("date", monthList);
map.put("data", dataList);
return map;
}
@Override
public Map<String,Object> selectAverageFaultResponseTime(String startMonth,String endMonth) {
public Map<String, Object> selectAverageFaultResponseTime(String startMonth, String endMonth) {
String startDate = startMonth + "-01 00:00:00";
String endDate = endMonth + "-01 23:59:59";
List<String> monthList = CommonDateUtil.getMonthList(startDate,endDate,"yyyy-MM");
List<Map<String,Object>> list = baseMapper.selectAverageFaultResponseTime(monthList);
List<String> monthList = CommonDateUtil.getMonthList(startDate, endDate, "yyyy-MM");
List<Map<String, Object>> list = baseMapper.selectAverageFaultResponseTime(monthList);
List<String> dataList = new ArrayList<>();
Map<String,String> dataMap = new HashMap<>();
for(Map<String,Object> map1 : list){
dataMap.put(map1.get("month").toString(),map1.get("duration").toString());
Map<String, String> dataMap = new HashMap<>();
for (Map<String, Object> map1 : list) {
dataMap.put(map1.get("month").toString(), map1.get("duration").toString());
}
for(String month : monthList){
if(null != dataMap.get(month)){
for (String month : monthList) {
if (null != dataMap.get(month)) {
dataList.add(dataMap.get(month));
}else{
} else {
dataList.add("0");
}
}
Map<String,Object> map = new HashMap<>();
map.put("date",monthList);
map.put("data",dataList);
Map<String, Object> map = new HashMap<>();
map.put("date", monthList);
map.put("data", dataList);
return map;
}
@Override
public Map<String,Object> selectAverageFaultRepairTime(String startMonth,String endMonth) {
public Map<String, Object> selectAverageFaultRepairTime(String startMonth, String endMonth) {
String startDate = startMonth + "-01 00:00:00";
String endDate = endMonth + "-01 23:59:59";
List<String> monthList = CommonDateUtil.getMonthList(startDate,endDate,"yyyy-MM");
List<Map<String,Object>> list = baseMapper.selectAverageFaultRepairTime(monthList);
List<String> monthList = CommonDateUtil.getMonthList(startDate, endDate, "yyyy-MM");
List<Map<String, Object>> list = baseMapper.selectAverageFaultRepairTime(monthList);
List<String> dataList = new ArrayList<>();
Map<String,String> dataMap = new HashMap<>();
for(Map<String,Object> map1 : list){
dataMap.put(map1.get("month").toString(),map1.get("duration").toString());
Map<String, String> dataMap = new HashMap<>();
for (Map<String, Object> map1 : list) {
dataMap.put(map1.get("month").toString(), map1.get("duration").toString());
}
for(String month : monthList){
if(null != dataMap.get(month)){
for (String month : monthList) {
if (null != dataMap.get(month)) {
dataList.add(dataMap.get(month));
}else{
} else {
dataList.add("0");
}
}
Map<String,Object> map = new HashMap<>();
map.put("date",monthList);
map.put("data",dataList);
Map<String, Object> map = new HashMap<>();
map.put("date", monthList);
map.put("data", dataList);
return map;
}
@ -624,18 +626,18 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
Optional<Integer> isWarran = Optional.ofNullable(device.getIsWarran());
if (isWarran.isPresent()) {
if (isWarran.get() == 1) {
map.put("int", "--");
map.put("in", "--");
map.put("out", total);
map.put("sel2", "√");
} else {
map.put("int", total);
map.put("in", total);
map.put("out", "--");
map.put("sel1", "√");
}
} else {
map.put("int", "--");
map.put("in", "--");
map.put("out", "--");
map.put("sel2", null);
map.put("sel2", "√");
map.put("sel1", null);
}
Optional<Integer> status = Optional.ofNullable(workOrder.getStatus());
@ -660,4 +662,107 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
out.close();
}
}
@Override
public void batchReportService(List<WorkOrder> workOrderList, HttpServletResponse response) throws IOException {
for (WorkOrder workOrder : workOrderList) {
//数据获取
String templateFileName = "./src/main/resources/excel/WorkOrderServiceSheet.xlsx";
double total = 0.0;
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
List<WorkOrderRepairMaterial> workOrderRepairMaterialList = workOrderRepairMaterialService.list(Wrappers.lambdaQuery(WorkOrderRepairMaterial.class).eq(WorkOrderRepairMaterial::getOrderId, workOrder.getId()));
List<WorkOrderFillData> workOrderFillDataList = new ArrayList<>();
WorkOrderFillData workOrderFillData = new WorkOrderFillData();
for (WorkOrderRepairMaterial workOrderRepairMaterial : workOrderRepairMaterialList) {
workOrderFillData.setMaterialName(workOrderRepairMaterial.getMaterialName());
workOrderFillData.setMaterialCount(workOrderRepairMaterial.getMaterialCount());
workOrderFillData.setMaterialPrice(workOrderRepairMaterial.getMaterialPrice());
double price = workOrderRepairMaterial.getMaterialPrice() / workOrderRepairMaterial.getMaterialCount();
workOrderFillData.setPrice(price);
workOrderFillDataList.add(workOrderFillData);
total += price;
}
ImageExcelData imageExcelData = new ImageExcelData();
imageExcelData.setUrl(new URL(workOrder.getSignatureUrl()));
//获取签字图片
URL url = new URL(workOrder.getSignatureUrl());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true);
InputStream inputStream = httpURLConnection.getInputStream();
BufferedImage image = ImageIO.read(inputStream);
if (image != null) {
System.out.println("图片加载成功");
} else {
System.out.println("图片加载失败");
throw new IOException();
}
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", byteArrayOutputStream); // 将图片写入输出流
byte[] imageBytes = byteArrayOutputStream.toByteArray();
Double width = Double.valueOf(image.getWidth());
Double height = Double.valueOf(image.getHeight());
WriteCellData<Void> voidWriteCellData = TemplateExcelUtils.imageCells(imageBytes, width, height, 0.6, 1.9);
User repairPerson = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getId, workOrder.getRepairPerson()));
Map<String, Object> map = new HashMap<>();
User customer = userService.getOne(Wrappers.lambdaQuery(User.class).eq(User::getId, workOrder.getInformant()));
map.put("customerName", customer.getRealName());
map.put("informant", customer.getRealName());
map.put("informantPhone", customer.getPhone());
map.put("address", customer.getAddress());
map.put("faultDescribe", workOrder.getFaultDescribe());
map.put("faultCause", workOrder.getFaultCause());
map.put("total", total);
map.put("processMethod", workOrder.getProcessMethod());
map.put("repairPerson", repairPerson.getRealName());
map.put("repairPersonPhone", repairPerson.getPhone());
//转换日期格式
Date finishTime = workOrder.getFinishTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
map.put("finishTime", simpleDateFormat.format(finishTime));
map.put("image", voidWriteCellData);
Device device = deviceService.getOne(Wrappers.lambdaQuery(Device.class).eq(Device::getId, workOrder.getDeviceId()));
Optional<Integer> isWarran = Optional.ofNullable(device.getIsWarran());
if (isWarran.isPresent()) {
if (isWarran.get() == 1) {
map.put("in", "--");
map.put("ou", total);
map.put("sel2", "√");
} else {
map.put("in", total);
map.put("out", "--");
map.put("sel1", "√");
}
} else {
map.put("in", "--");
map.put("out", "--");
map.put("sel2", "√");
map.put("sel1", null);
}
Optional<Integer> status = Optional.ofNullable(workOrder.getStatus());
if (status.isPresent()) {
if (status.get() == 202) {
map.put("sel4", "√");
} else {
map.put("sel3", "√");
}
} else {
map.put("sel4", null);
map.put("sel3", null);
}
//写入Excel并导出
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
String fileName = workOrder.getReportUnitName() + "运维服务单.xlsx";
zos.putNextEntry(new ZipEntry(fileName));
try (ExcelWriter excelWriter = EasyExcel.write(zos).withTemplate(templateFileName).build()) {
WriteSheet writeSheet = EasyExcel.writerSheet().build();
excelWriter.fill(workOrderFillDataList, fillConfig, writeSheet);
excelWriter.fill(map, writeSheet);
excelWriter.finish();
zos.flush();
zos.closeEntry();
}
}
}
}

Loading…
Cancel
Save