From 5f3fa6792bcb9ad2123be5d47feefb89ac86c730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=9B=E5=AE=8F=E7=A5=A5?= <14281818+xue-hongxiang@user.noreply.gitee.com> Date: Fri, 13 Dec 2024 17:00:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8F=90=E9=86=92=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/contraller/DeviceController.java | 3 + .../contraller/MaintenanceController.java | 13 -- .../excel/MaintenanceTaskDetailExcel.java | 36 ++++ .../modules/business/pojo/dto/DeviceDTO.java | 32 ++-- .../modules/business/pojo/entity/Device.java | 167 +++++++++--------- .../modules/business/pojo/vo/DeviceVO.java | 1 + .../pojo/vo/MaintenanceTaskDetailVO.java | 43 +++++ .../service/IMaintenanceTaskService.java | 8 + .../impl/MaintenanceTaskServiceImpl.java | 50 ++++++ 9 files changed, 248 insertions(+), 105 deletions(-) create mode 100644 src/main/java/org/springblade/modules/business/excel/MaintenanceTaskDetailExcel.java create mode 100644 src/main/java/org/springblade/modules/business/pojo/vo/MaintenanceTaskDetailVO.java diff --git a/src/main/java/org/springblade/modules/business/contraller/DeviceController.java b/src/main/java/org/springblade/modules/business/contraller/DeviceController.java index 360292b..e9c8e93 100644 --- a/src/main/java/org/springblade/modules/business/contraller/DeviceController.java +++ b/src/main/java/org/springblade/modules/business/contraller/DeviceController.java @@ -85,6 +85,9 @@ public class DeviceController extends BladeController { 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(StringUtils.isNotBlank(sanitizeInput(device.getBrand())), Device::getBrand, device.getBrand()); + wrapper.eq(StringUtils.isNotBlank(sanitizeInput(device.getSupplier())), Device::getSupplier, device.getSupplier()); + wrapper.eq(device.getRunStatus() != null, Device::getRunStatus, device.getRunStatus()); // wrapper.eq(Device::getCreateUser, AuthUtil.getUserId()); wrapper.orderByDesc(Device::getCreateTime); try { diff --git a/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java b/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java index a37b5e1..f5de589 100644 --- a/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java +++ b/src/main/java/org/springblade/modules/business/contraller/MaintenanceController.java @@ -145,25 +145,12 @@ public class MaintenanceController extends BladeController { @Operation(summary = "维修人员更新预约时间", description = "维修人员更新预约时间") public R taskServicemanUpdateTime(@RequestBody MaintenanceTask task) { MaintenanceTask taskOld = taskService.getById(task.getId()); - taskOld.setSignUrl(task.getSignUrl()); - taskOld.setRemark(task.getRemark()); taskOld.setReservationTime(task.getReservationTime()); taskService.updateById(taskOld); return R.success(); } - @PostMapping("/task-serviceman-update-sign") - @Operation(summary = "维修人员更新客户签名", description = "维修人员更新客户签名") - public R taskServicemanUpdateSign(@RequestBody MaintenanceTask task) { - MaintenanceTask taskOld = taskService.getById(task.getId()); - taskOld.setSignUrl(task.getSignUrl()); - taskOld.setRemark(task.getRemark()); - taskService.updateById(taskOld); - - return R.success(); - } - @PostMapping("/task-serviceman-update-detail") @Operation(summary = "维修人员更新维修明细", description = "维修人员更新维修明细") public R taskServicemanUpdateDetail(@RequestBody List taskDetailList) { diff --git a/src/main/java/org/springblade/modules/business/excel/MaintenanceTaskDetailExcel.java b/src/main/java/org/springblade/modules/business/excel/MaintenanceTaskDetailExcel.java new file mode 100644 index 0000000..200e5dd --- /dev/null +++ b/src/main/java/org/springblade/modules/business/excel/MaintenanceTaskDetailExcel.java @@ -0,0 +1,36 @@ +package org.springblade.modules.business.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MaintenanceTaskDetailExcel implements Serializable { + private static final long serialVersionUID = 1L; + + @ExcelProperty("楼层") + private String floor; + + @ExcelProperty("房间名称") + private String deptName; + + @ExcelProperty("专业/设备") + private String deviceName; + + @ExcelProperty("巡检内容") + private String checkContent; + + @ExcelProperty("状态") + private Integer status; + + @ExcelProperty("价格") + private Double price; +} diff --git a/src/main/java/org/springblade/modules/business/pojo/dto/DeviceDTO.java b/src/main/java/org/springblade/modules/business/pojo/dto/DeviceDTO.java index 0287a70..4942ecd 100644 --- a/src/main/java/org/springblade/modules/business/pojo/dto/DeviceDTO.java +++ b/src/main/java/org/springblade/modules/business/pojo/dto/DeviceDTO.java @@ -18,21 +18,31 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) public class DeviceDTO extends Device { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - // 设备附件 - private List attaches; + // 设备附件 + private List attaches; - // 设备巡检 - private List maintenances; + // 设备巡检 + private List maintenances; - // 设备名称 - private String name; + // 设备名称 + private String name; - // 设备位置 - private String position; + // 设备位置 + private String position; + + // 设备类型 + private String type; + + // 供应商 + private String supplier; + + //品牌 + private String brand; + + //状态 + private Integer runStatus; - // 设备类型 - private String type; } diff --git a/src/main/java/org/springblade/modules/business/pojo/entity/Device.java b/src/main/java/org/springblade/modules/business/pojo/entity/Device.java index f2b9d3a..6cd914a 100644 --- a/src/main/java/org/springblade/modules/business/pojo/entity/Device.java +++ b/src/main/java/org/springblade/modules/business/pojo/entity/Device.java @@ -20,85 +20,90 @@ import java.util.Date; @EqualsAndHashCode(callSuper = true) public class Device extends BaseEntity { - /** - * 设备编号 - */ - private String code; - - /** - * 设备名称 - */ - private String name; - - /** - * 设备型号 - */ - private String model; - - /** - * 设备类型 - */ - private String type; - - /** - * 设备位置 - */ - private String position; - - /** - * 供应商 - */ - private String supplier; - - /** - * 生产时间 - */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8") - private Date produceTime; - - /** - * 附件名称 - */ - private String attachName; - - /** - * 运行状态( 0关机 1运行中 2报警中) - */ - private Integer runStatus; - - /** - * 二维码(base64) - */ - private String qrcode; - - /** - * 实验室id - */ - private Long limsId; - - /** - * 实验室名称 - */ - private String limsName; - - /** - * 楼层id - */ - private Long floorId; - - /** - * 楼层名称 - */ - private String floorName; - - /** - * 房间id - */ - private Long roomId; - - /** - * 房间名称 - */ - private String roomName; + /** + * 设备编号 + */ + private String code; + + /** + * 设备名称 + */ + private String name; + + /** + * 设备型号 + */ + private String model; + + /** + * 设备类型 + */ + private String type; + + /** + * 设备位置 + */ + private String position; + + /** + * 品牌 + */ + private String brand; + + /** + * 供应商 + */ + private String supplier; + + /** + * 生产时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8") + private Date produceTime; + + /** + * 附件名称 + */ + private String attachName; + + /** + * 运行状态( 0关机 1运行中 2报警中) + */ + private Integer runStatus; + + /** + * 二维码(base64) + */ + private String qrcode; + + /** + * 实验室id + */ + private Long limsId; + + /** + * 实验室名称 + */ + private String limsName; + + /** + * 楼层id + */ + private Long floorId; + + /** + * 楼层名称 + */ + private String floorName; + + /** + * 房间id + */ + private Long roomId; + + /** + * 房间名称 + */ + private String roomName; } diff --git a/src/main/java/org/springblade/modules/business/pojo/vo/DeviceVO.java b/src/main/java/org/springblade/modules/business/pojo/vo/DeviceVO.java index 6e1eaac..edcb095 100644 --- a/src/main/java/org/springblade/modules/business/pojo/vo/DeviceVO.java +++ b/src/main/java/org/springblade/modules/business/pojo/vo/DeviceVO.java @@ -22,4 +22,5 @@ public class DeviceVO extends Device { List attaches; List maintenances; + } diff --git a/src/main/java/org/springblade/modules/business/pojo/vo/MaintenanceTaskDetailVO.java b/src/main/java/org/springblade/modules/business/pojo/vo/MaintenanceTaskDetailVO.java new file mode 100644 index 0000000..5a099b9 --- /dev/null +++ b/src/main/java/org/springblade/modules/business/pojo/vo/MaintenanceTaskDetailVO.java @@ -0,0 +1,43 @@ +package org.springblade.modules.business.pojo.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +@Data +@AllArgsConstructor +public class MaintenanceTaskDetailVO { + + /** + * 楼层 + */ + private String floor; + + /** + * 部门 + */ + private String deptName; + + /** + * 设备名称 + */ + private String deviceName; + + /** + * 巡检内容 + */ + private String checkContent; + + /** + * 状态 + */ + private Integer status; + + /** + * 价格 + */ +// private Double price; + +} diff --git a/src/main/java/org/springblade/modules/business/service/IMaintenanceTaskService.java b/src/main/java/org/springblade/modules/business/service/IMaintenanceTaskService.java index 83836ee..b230b09 100644 --- a/src/main/java/org/springblade/modules/business/service/IMaintenanceTaskService.java +++ b/src/main/java/org/springblade/modules/business/service/IMaintenanceTaskService.java @@ -1,9 +1,13 @@ package org.springblade.modules.business.service; +import cn.hutool.core.io.resource.InputStreamResource; +import jakarta.servlet.http.HttpServletResponse; import org.springblade.core.mp.base.BaseService; import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask; import org.springblade.modules.business.pojo.vo.MaintenanceTaskVO; +import org.springframework.http.ResponseEntity; +import java.io.IOException; import java.util.List; /** @@ -15,6 +19,7 @@ import java.util.List; public interface IMaintenanceTaskService extends BaseService { List limsTaskList(String deptId); + /** * 获取巡检任务,包含详细, 树形结构 * @@ -22,6 +27,7 @@ public interface IMaintenanceTaskService extends BaseService { * @return */ MaintenanceTask taskDetail(Long taskId); + /** * 获取巡检任务,包含详细, 树形结构 * @@ -29,4 +35,6 @@ public interface IMaintenanceTaskService extends BaseService { * @return */ MaintenanceTask repairDetail(Long taskId); + + void taskDetailConfiguration(Long taskId, HttpServletResponse httpServletResponse) throws IOException; } diff --git a/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java index e85d7d4..fcb4603 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/MaintenanceTaskServiceImpl.java @@ -1,11 +1,17 @@ package org.springblade.modules.business.service.impl; +import cn.hutool.core.io.resource.InputStreamResource; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springblade.common.constant.CommonConstant; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.business.excel.MaintenanceTaskDetailExcel; +import org.springblade.modules.business.pojo.vo.MaintenanceTaskDetailVO; import org.springblade.modules.business.pojo.vo.MaintenanceTaskVO; import org.springblade.modules.business.service.IMaintenanceTaskService; import org.springblade.modules.business.mapper.MaintenanceTaskMapper; @@ -13,8 +19,12 @@ import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask; import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTaskDetail; import org.springblade.modules.business.service.IMaintenanceTaskDetailService; import org.springblade.modules.business.service.IMaintenanceTaskService; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import java.io.*; import java.util.List; import java.util.ArrayList; @@ -89,4 +99,44 @@ public class MaintenanceTaskServiceImpl extends BaseServiceImpl limsTaskList(String deptId) { return baseMapper.limsTaskList(deptId); } + + @Override + public void taskDetailConfiguration(Long taskId, HttpServletResponse httpServletResponse) throws IOException { + //获取数据 + List maintenanceTaskDetails = taskDetailService.list(Wrappers.lambdaQuery(MaintenanceTaskDetail.class).eq(MaintenanceTaskDetail::getTaskId, taskId)); + //过滤字段 + List maintenanceTaskDetailVOList = new ArrayList<>(); + for (MaintenanceTaskDetail maintenanceTaskDetail : maintenanceTaskDetails) { + MaintenanceTaskDetailVO maintenanceTaskDetailVO = new MaintenanceTaskDetailVO( + maintenanceTaskDetail.getFloorName(), + maintenanceTaskDetail.getDeptName(), + maintenanceTaskDetail.getDeviceName(), + maintenanceTaskDetail.getCheckContent(), + null +// maintenanceTaskDetail.getPrice() + ); + maintenanceTaskDetailVOList.add(maintenanceTaskDetailVO); + } + //导出任务配置明细导入到流中返回 + ServletOutputStream out = null; + ByteArrayOutputStream baos = null; + try { + baos = new ByteArrayOutputStream(); + EasyExcel.write(baos) + .head(MaintenanceTaskDetailExcel.class) + .sheet("任务配置明细") + .doWrite(maintenanceTaskDetailVOList); + out = httpServletResponse.getOutputStream(); + out.write(baos.toByteArray()); + } catch (Exception e) { + e.printStackTrace(); + } finally { + baos.flush(); + baos.close(); + out.flush(); + out.close(); + } + + } + }