From 9add81d7282b2c60fa9906452bdcf1ccb8368f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Tue, 23 Sep 2025 16:53:12 +0800 Subject: [PATCH] =?UTF-8?q?09-23-=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OpsInspectionOrderController.java | 106 ++++++++++ .../inspection/domain/OpsInspectionOrder.java | 137 +++++++++++++ .../domain/bo/OpsInspectionOrderBo.java | 141 +++++++++++++ .../domain/vo/OpsInspectionOrderVo.java | 167 +++++++++++++++ .../mapper/OpsInspectionOrderMapper.java | 15 ++ .../service/IOpsInspectionOrderService.java | 68 +++++++ .../impl/OpsInspectionOrderServiceImpl.java | 192 ++++++++++++++++++ 7 files changed, 826 insertions(+) create mode 100644 ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/controller/OpsInspectionOrderController.java create mode 100644 ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionOrder.java create mode 100644 ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionOrderBo.java create mode 100644 ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionOrderVo.java create mode 100644 ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/mapper/OpsInspectionOrderMapper.java create mode 100644 ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/IOpsInspectionOrderService.java create mode 100644 ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/controller/OpsInspectionOrderController.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/controller/OpsInspectionOrderController.java new file mode 100644 index 0000000..3a82758 --- /dev/null +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/controller/OpsInspectionOrderController.java @@ -0,0 +1,106 @@ +package org.dromara.inspection.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.inspection.domain.vo.OpsInspectionOrderVo; +import org.dromara.inspection.domain.bo.OpsInspectionOrderBo; +import org.dromara.inspection.service.IOpsInspectionOrderService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 运维-巡检-工单 + * 前端访问路由地址为:/inspection/order + * + * @author LionLi + * @date 2025-09-23 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/order") +public class OpsInspectionOrderController extends BaseController { + + private final IOpsInspectionOrderService opsInspectionOrderService; + + /** + * 查询运维-巡检-工单列表 + */ + @SaCheckPermission("inspection:order:list") + @GetMapping("/list") + public TableDataInfo list(OpsInspectionOrderBo bo, PageQuery pageQuery) { + return opsInspectionOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出运维-巡检-工单列表 + */ + @SaCheckPermission("inspection:order:export") + @Log(title = "运维-巡检-工单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OpsInspectionOrderBo bo, HttpServletResponse response) { + List list = opsInspectionOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "运维-巡检-工单", OpsInspectionOrderVo.class, response); + } + + /** + * 获取运维-巡检-工单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("inspection:order:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(opsInspectionOrderService.queryById(id)); + } + + /** + * 新增运维-巡检-工单 + */ + @SaCheckPermission("inspection:order:add") + @Log(title = "运维-巡检-工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OpsInspectionOrderBo bo) { + return toAjax(opsInspectionOrderService.insertByBo(bo)); + } + + /** + * 修改运维-巡检-工单 + */ + @SaCheckPermission("inspection:order:edit") + @Log(title = "运维-巡检-工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OpsInspectionOrderBo bo) { + return toAjax(opsInspectionOrderService.updateByBo(bo)); + } + + /** + * 删除运维-巡检-工单 + * + * @param ids 主键串 + */ + @SaCheckPermission("inspection:order:remove") + @Log(title = "运维-巡检-工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(opsInspectionOrderService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionOrder.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionOrder.java new file mode 100644 index 0000000..d68e07c --- /dev/null +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/OpsInspectionOrder.java @@ -0,0 +1,137 @@ +package org.dromara.inspection.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; + +import java.io.Serial; + +/** + * 运维-巡检-工单对象 ops_inspection_order + * + * @author LionLi + * @date 2025-09-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("ops_inspection_order") +public class OpsInspectionOrder extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主要id + */ + @TableId(value = "id") + private Long id; + + /** + * 项目(电站)id + */ + private Long projectId; + + /** + * 工单标题 + */ + private String title; + + /** + * 工单类型1维护保养2检查检测3安装调试4升级改造 + */ + private String type; + + /** + * 工单优先级1低2中3高 + */ + private String level; + + /** + * 截止时间 + */ + private Date endTime; + + /** + * 工单描述 + */ + private String info; + + /** + * 执行地点 + */ + private String position; + + /** + * 相关设备/系统 + */ + private String device; + + /** + * 文件ID + */ + private Long fileId; + + /** + * 文件路径 + */ + private String fileUrl; + + /** + * 节点ids + */ + private String nodeIds; + + /** + * 预期成果 + */ + private String results; + + /** + * 是否需要执行人,1是2否(取消使用) + */ + private String executor; + + /** + * 执行人ids(取消使用) + */ + private String executorIds; + + /** + * 工单状态1待派单2已派单3执行中4已完成 + */ + private String status; + + /** + * 派单时间 + */ + private Date sendOrderTime; + + /** + * 接单时间 + */ + private Date getOrderTime; + + /** + * 接单人 + */ + private Long getOrderPerson; + + /** + * 完成时间 + */ + private Date finishiOrderTime; + + /** + * 验收结果1通过2需整改 + */ + private String orderResult; + + /** + * 是否重点跟踪1是2否 + */ + private String point; + + +} diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionOrderBo.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionOrderBo.java new file mode 100644 index 0000000..4a87dfa --- /dev/null +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/bo/OpsInspectionOrderBo.java @@ -0,0 +1,141 @@ +package org.dromara.inspection.domain.bo; + +import org.dromara.inspection.domain.OpsInspectionOrder; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; + +/** + * 运维-巡检-工单业务对象 ops_inspection_order + * + * @author LionLi + * @date 2025-09-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = OpsInspectionOrder.class, reverseConvertGenerate = false) +public class OpsInspectionOrderBo extends BaseEntity { + + /** + * 主要id + */ + private Long id; + + /** + * 项目(电站)id + */ + @NotNull(message = "项目(电站)id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 工单标题 + */ + @NotBlank(message = "工单标题不能为空", groups = { AddGroup.class, EditGroup.class }) + private String title; + + /** + * 工单类型1维护保养2检查检测3安装调试4升级改造 + */ + @NotBlank(message = "工单类型1维护保养2检查检测3安装调试4升级改造不能为空", groups = { AddGroup.class, EditGroup.class }) + private String type; + + /** + * 工单优先级1低2中3高 + */ + @NotBlank(message = "工单优先级1低2中3高不能为空", groups = { AddGroup.class, EditGroup.class }) + private String level; + + /** + * 截止时间 + */ + @NotNull(message = "截止时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date endTime; + + /** + * 工单描述 + */ + @NotBlank(message = "工单描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String info; + + /** + * 执行地点 + */ + @NotBlank(message = "执行地点不能为空", groups = { AddGroup.class, EditGroup.class }) + private String position; + + /** + * 相关设备/系统 + */ + @NotBlank(message = "相关设备/系统不能为空", groups = { AddGroup.class, EditGroup.class }) + private String device; + + /** + * 文件ID + */ + private Long fileId; + + /** + * 文件路径 + */ + private String fileUrl; + + /** + * 节点ids + */ + @NotBlank(message = "节点ids不能为空", groups = { AddGroup.class, EditGroup.class }) + private String nodeIds; + + /** + * 预期成果 + */ + @NotBlank(message = "预期成果不能为空", groups = { AddGroup.class, EditGroup.class }) + private String results; + + /** + * 是否需要执行人,1是2否(取消使用) + */ + private String executor; + + /** + * 执行人ids(取消使用) + */ + private String executorIds; + + /** + * 工单状态1待派单2已派单3执行中4已完成 + */ + @NotBlank(message = "工单状态1待派单2已派单3执行中4已完成不能为空", groups = { AddGroup.class, EditGroup.class }) + private String status; + + /** + * 派单时间 + */ + private Date sendOrderTime; + + /** + * 接单时间 + */ + private Date getOrderTime; + + /** + * 完成时间 + */ + private Date finishiOrderTime; + + /** + * 验收结果1通过2需整改 + */ + private String orderResult; + + /** + * 是否重点跟踪1是2否 + */ + private String point; + + +} diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionOrderVo.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionOrderVo.java new file mode 100644 index 0000000..7444c9c --- /dev/null +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/domain/vo/OpsInspectionOrderVo.java @@ -0,0 +1,167 @@ +package org.dromara.inspection.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; + +import org.dromara.inspection.domain.OpsInspectionOrder; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.personnel.domain.vo.OpsUserVo; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 运维-巡检-工单视图对象 ops_inspection_order + * + * @author LionLi + * @date 2025-09-23 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = OpsInspectionOrder.class) +public class OpsInspectionOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主要id + */ + @ExcelProperty(value = "主要id") + private Long id; + + /** + * 项目(电站)id + */ + @ExcelProperty(value = "项目(电站)id") + private Long projectId; + + /** + * 工单标题 + */ + @ExcelProperty(value = "工单标题") + private String title; + + /** + * 工单类型1维护保养2检查检测3安装调试4升级改造 + */ + @ExcelProperty(value = "工单类型1维护保养2检查检测3安装调试4升级改造") + private String type; + + /** + * 工单优先级1低2中3高 + */ + @ExcelProperty(value = "工单优先级1低2中3高") + private String level; + + /** + * 截止时间 + */ + @ExcelProperty(value = "截止时间") + private Date endTime; + + /** + * 工单描述 + */ + @ExcelProperty(value = "工单描述") + private String info; + + /** + * 执行地点 + */ + @ExcelProperty(value = "执行地点") + private String position; + + /** + * 相关设备/系统 + */ + @ExcelProperty(value = "相关设备/系统") + private String device; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private Long fileId; + + /** + * 文件路径 + */ + @ExcelProperty(value = "文件路径") + private String fileUrl; + + /** + * 节点ids + */ + @ExcelProperty(value = "节点ids") + private String nodeIds; + + private BigDecimal progress; + + /** + * 预期成果 + */ + @ExcelProperty(value = "预期成果") + private String results; + + /** + * 是否需要执行人,1是2否(取消使用) + */ + @ExcelProperty(value = "是否需要执行人,1是2否(取消使用)") + private String executor; + + /** + * 执行人ids(取消使用) + */ + @ExcelProperty(value = "执行人ids(取消使用)") + private String executorIds; + + /** + * 工单状态1待派单2已派单3执行中4已完成 + */ + @ExcelProperty(value = "工单状态1待派单2已派单3执行中4已完成") + private String status; + + /** + * 派单时间 + */ + @ExcelProperty(value = "派单时间") + private Date sendOrderTime; + + /** + * 接单时间 + */ + @ExcelProperty(value = "接单时间") + private Date getOrderTime; + + private Long getOrderPerson; + + private OpsUserVo getOrderPersonVo; + + /** + * 完成时间 + */ + @ExcelProperty(value = "完成时间") + private Date finishiOrderTime; + + /** + * 验收结果1通过2需整改 + */ + @ExcelProperty(value = "验收结果1通过2需整改") + private String orderResult; + + /** + * 是否重点跟踪1是2否 + */ + @ExcelProperty(value = "是否重点跟踪1是2否") + private String point; + + private Long create_by; + + private OpsUserVo sendOrderPersonVo; + +} diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/mapper/OpsInspectionOrderMapper.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/mapper/OpsInspectionOrderMapper.java new file mode 100644 index 0000000..4889e91 --- /dev/null +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/mapper/OpsInspectionOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.inspection.mapper; + +import org.dromara.inspection.domain.OpsInspectionOrder; +import org.dromara.inspection.domain.vo.OpsInspectionOrderVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 运维-巡检-工单Mapper接口 + * + * @author LionLi + * @date 2025-09-23 + */ +public interface OpsInspectionOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/IOpsInspectionOrderService.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/IOpsInspectionOrderService.java new file mode 100644 index 0000000..2d944e2 --- /dev/null +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/IOpsInspectionOrderService.java @@ -0,0 +1,68 @@ +package org.dromara.inspection.service; + +import org.dromara.inspection.domain.vo.OpsInspectionOrderVo; +import org.dromara.inspection.domain.bo.OpsInspectionOrderBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 运维-巡检-工单Service接口 + * + * @author LionLi + * @date 2025-09-23 + */ +public interface IOpsInspectionOrderService { + + /** + * 查询运维-巡检-工单 + * + * @param id 主键 + * @return 运维-巡检-工单 + */ + OpsInspectionOrderVo queryById(Long id); + + /** + * 分页查询运维-巡检-工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 运维-巡检-工单分页列表 + */ + TableDataInfo queryPageList(OpsInspectionOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的运维-巡检-工单列表 + * + * @param bo 查询条件 + * @return 运维-巡检-工单列表 + */ + List queryList(OpsInspectionOrderBo bo); + + /** + * 新增运维-巡检-工单 + * + * @param bo 运维-巡检-工单 + * @return 是否新增成功 + */ + Boolean insertByBo(OpsInspectionOrderBo bo); + + /** + * 修改运维-巡检-工单 + * + * @param bo 运维-巡检-工单 + * @return 是否修改成功 + */ + Boolean updateByBo(OpsInspectionOrderBo bo); + + /** + * 校验并批量删除运维-巡检-工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java new file mode 100644 index 0000000..e155b43 --- /dev/null +++ b/ruoyi-modules/xny-ops/src/main/java/org/dromara/inspection/service/impl/OpsInspectionOrderServiceImpl.java @@ -0,0 +1,192 @@ +package org.dromara.inspection.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.inspection.domain.OpsInspectionNode; +import org.dromara.inspection.domain.vo.OpsInspectionNodeVo; +import org.dromara.inspection.mapper.OpsInspectionNodeMapper; +import org.dromara.personnel.domain.vo.OpsUserVo; +import org.dromara.personnel.mapper.OpsUserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.inspection.domain.bo.OpsInspectionOrderBo; +import org.dromara.inspection.domain.vo.OpsInspectionOrderVo; +import org.dromara.inspection.domain.OpsInspectionOrder; +import org.dromara.inspection.mapper.OpsInspectionOrderMapper; +import org.dromara.inspection.service.IOpsInspectionOrderService; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 运维-巡检-工单Service业务层处理 + * + * @author LionLi + * @date 2025-09-23 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class OpsInspectionOrderServiceImpl implements IOpsInspectionOrderService { + + + private final OpsInspectionOrderMapper baseMapper; + + private final OpsInspectionNodeMapper nodeMapper; + + private final OpsUserMapper userMapper; + + /** + * 查询运维-巡检-工单 + * + * @param id 主键 + * @return 运维-巡检-工单 + */ + @Override + public OpsInspectionOrderVo queryById(Long id){ + OpsInspectionOrderVo opsInspectionOrderVo = baseMapper.selectVoById(id); + List opsInspectionOrderVo1 = List.of(opsInspectionOrderVo); + setValue(opsInspectionOrderVo1); + return opsInspectionOrderVo1.getFirst(); + } + + /** + * 分页查询运维-巡检-工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 运维-巡检-工单分页列表 + */ + @Override + public TableDataInfo queryPageList(OpsInspectionOrderBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + setValue(result.getRecords()); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的运维-巡检-工单列表 + * + * @param bo 查询条件 + * @return 运维-巡检-工单列表 + */ + @Override + public List queryList(OpsInspectionOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OpsInspectionOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(OpsInspectionOrder::getId); + lqw.eq(bo.getProjectId() != null, OpsInspectionOrder::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getType()), OpsInspectionOrder::getType, bo.getType()); + lqw.eq(StringUtils.isNotBlank(bo.getLevel()), OpsInspectionOrder::getLevel, bo.getLevel()); + lqw.eq(StringUtils.isNotBlank(bo.getPoint()), OpsInspectionOrder::getPoint, bo.getPoint()); + lqw.eq(bo.getCreateTime() != null, OpsInspectionOrder::getCreateTime, bo.getCreateTime()); + return lqw; + } + + /** + * 新增运维-巡检-工单 + * + * @param bo 运维-巡检-工单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(OpsInspectionOrderBo bo) { + OpsInspectionOrder add = MapstructUtils.convert(bo, OpsInspectionOrder.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改运维-巡检-工单 + * + * @param bo 运维-巡检-工单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(OpsInspectionOrderBo bo) { + OpsInspectionOrder update = MapstructUtils.convert(bo, OpsInspectionOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OpsInspectionOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除运维-巡检-工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 处理回显数据 + */ + private void setValue(List list){ + + LambdaQueryWrapper nodeWrapper = new LambdaQueryWrapper<>(); + for (OpsInspectionOrderVo vo : list) { + nodeWrapper.clear(); + nodeWrapper.eq(OpsInspectionNode::getOrderId, vo.getId()); + List nodeVoList = nodeMapper.selectVoList(nodeWrapper); + //处理进度百分比 完成节点 / 总节点 * 100 + if (nodeVoList != null && !nodeVoList.isEmpty()){ + //统计完成节点 + int finishCount = nodeVoList.stream().filter(nodeVo -> vo.getStatus().equals("1")).toList().size(); + if (finishCount == nodeVoList.size()){ + vo.setProgress(new BigDecimal("100")); + }else { + vo.setProgress(BigDecimal.valueOf(finishCount).divide(BigDecimal.valueOf(nodeVoList.size()), 2, RoundingMode.DOWN).multiply(BigDecimal.valueOf(100.00))); + } + } + + //处理派单人 + OpsUserVo opsUserVo = userMapper.selectVoById(vo.getCreate_by()); + if (opsUserVo != null){ + vo.setSendOrderPersonVo(opsUserVo); + } + + //处理接单人 + if (vo.getGetOrderPerson() != null){ + opsUserVo = userMapper.selectVoById(vo.getGetOrderPerson()); + if (opsUserVo != null){ + vo.setGetOrderPersonVo(opsUserVo); + } + } + + } + } + +}