From 18459906864c76c92ee270e85fd029a0020e7c1d Mon Sep 17 00:00:00 2001 From: gjh <1421wake> Date: Tue, 6 May 2025 16:04:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=BB=B6=E6=9C=9F=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkOrderDelayHistoryController.java | 115 +++++++++++ .../domain/WorkOrderDelayHistory.java | 159 +++++++++++++++ .../platform/domain/bo/WorkOrderDelayBo.java | 10 + .../domain/bo/WorkOrderDelayHistoryBo.java | 180 +++++++++++++++++ .../platform/domain/bo/WorkReviewInfoBo.java | 2 +- .../domain/vo/WorkOrderDelayHistoryVo.java | 186 ++++++++++++++++++ .../platform/domain/vo/WorkReviewInfoVo.java | 2 +- .../mapper/WorkOrderDelayHistoryMapper.java | 16 ++ .../IWorkOrderDelayHistoryService.java | 71 +++++++ .../WorkOrderDelayHistoryServiceImpl.java | 159 +++++++++++++++ .../impl/WorkOrderInfoServiceImpl.java | 18 +- 11 files changed, 911 insertions(+), 7 deletions(-) create mode 100644 ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayHistoryController.java create mode 100644 ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelayHistory.java create mode 100644 ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayHistoryBo.java create mode 100644 ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderDelayHistoryVo.java create mode 100644 ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderDelayHistoryMapper.java create mode 100644 ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderDelayHistoryService.java create mode 100644 ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderDelayHistoryServiceImpl.java diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayHistoryController.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayHistoryController.java new file mode 100644 index 0000000..a0b63b7 --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderDelayHistoryController.java @@ -0,0 +1,115 @@ +package org.dromara.platform.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.apache.ibatis.annotations.Param; +import org.dromara.platform.domain.WorkOrderDelayHistory; +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.platform.domain.vo.WorkOrderDelayHistoryVo; +import org.dromara.platform.domain.bo.WorkOrderDelayHistoryBo; +import org.dromara.platform.service.IWorkOrderDelayHistoryService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工单延期审核-历史操作 + * + * @author gejunhao + * @date 2025-05-06 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/platform/orderDelayHistory") +public class WorkOrderDelayHistoryController extends BaseController { + + private final IWorkOrderDelayHistoryService workOrderDelayHistoryService; + + /** + * 查询工单延期审核-历史操作列表 + */ + @SaCheckPermission("platform:orderDelayHistory:list") + @GetMapping("/list") + public TableDataInfo list(WorkOrderDelayHistoryBo bo, PageQuery pageQuery) { + return workOrderDelayHistoryService.queryPageList(bo, pageQuery); + } + + /** + * 导出工单延期审核-历史操作列表 + */ + @SaCheckPermission("platform:orderDelayHistory:export") + @Log(title = "工单延期审核-历史操作", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WorkOrderDelayHistoryBo bo, HttpServletResponse response) { + List list = workOrderDelayHistoryService.queryList(bo); + ExcelUtil.exportExcel(list, "工单延期审核-历史操作", WorkOrderDelayHistoryVo.class, response); + } + + /** + * 获取工单延期审核-历史操作详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("platform:orderDelayHistory:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(workOrderDelayHistoryService.queryById(id)); + } + + /** + * 新增工单延期审核-历史操作 + */ + @SaCheckPermission("platform:orderDelayHistory:add") + @Log(title = "工单延期审核-历史操作", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WorkOrderDelayHistoryBo bo) { + return toAjax(workOrderDelayHistoryService.insertByBo(bo)); + } + + /** + * 修改工单延期审核-历史操作 + */ + @SaCheckPermission("platform:orderDelayHistory:edit") + @Log(title = "工单延期审核-历史操作", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WorkOrderDelayHistoryBo bo) { + return toAjax(workOrderDelayHistoryService.updateByBo(bo)); + } + + /** + * 删除工单延期审核-历史操作 + * + * @param ids 主键串 + */ + @SaCheckPermission("platform:orderDelayHistory:remove") + @Log(title = "工单延期审核-历史操作", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(workOrderDelayHistoryService.deleteWithValidByIds(List.of(ids), true)); + } + + + @SaCheckPermission("platform:orderDelayHistory:queryByWorkOrderId") + @GetMapping("/queryByWorkOrderId") + public R> queryByWorkOrderId(@Param("workOrderId") String workOrderId) { + List rs = workOrderDelayHistoryService.queryByWorkOrderId(workOrderId); + return R.ok(rs); + } +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelayHistory.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelayHistory.java new file mode 100644 index 0000000..b0d75aa --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderDelayHistory.java @@ -0,0 +1,159 @@ +package org.dromara.platform.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 工单延期审核-历史操作对象 work_order_delay_history + * + * @author gejunhao + * @date 2025-05-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("work_order_delay_history") +public class WorkOrderDelayHistory extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工单延期记录的唯一标识符 + */ + @TableId(value = "id") + private String id; + + /** + * 工单id + */ + private String workOrderId; + + /** + * 所属项目的名称 + */ + private String projectName; + + /** + * 所属合同的名称或编号 + */ + private String contractName; + + /** + * 延期的原因说明 + */ + private String delayReason; + + /** + * 原定的预计结束时间(延期前的时间) + */ + private Date beforeDelayTime; + + /** + * 新的预计结束时间(延期后的时间) + */ + private Date afterDelayTime; + + /** + * 处理结果 + */ + private String handleResult; + + /** + * 审核意见 + */ + private String auditOpinion; + + /** + * 报修人员 + */ + private String repairer; + + /** + * 报修人员ID + */ + private String repairerId; + + /** + * 报修时间 + */ + private Date repairerTime; + + /** + * 是否事故 (0: 否, 1: 是) + */ + private String isAccident; + + /** + * 响应级别 (0: 常规, 1: 紧急, 2: 特急) + */ + private String responseLevel; + + /** + * 响应时限 + */ + private Long responseTime; + + /** + * 故障大类 + */ + private String faultCategory; + + /** + * 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊) + */ + private String faultSubcategory; + + /** + * 所属机构 + */ + private String organizationName; + + /** + * 故障地点 + */ + private String faultLocation; + + /** + * 故障描述 + */ + private String faultDescription; + + /** + * 故障图片 + */ + private String attachment; + + /** + * 待处理人 + */ + private String handler; + + /** + * 待处理人ID + */ + private String handlerId; + + /** + * 审批人 + */ + private String approver; + + /** + * 当前状态 + */ + private Long status; + + /** + * 删除标志(0代表存在 2代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayBo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayBo.java index 7b9e33e..c164e0c 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayBo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayBo.java @@ -1,5 +1,6 @@ package org.dromara.platform.domain.bo; +import com.alibaba.excel.annotation.ExcelProperty; import org.dromara.platform.domain.WorkOrderDelay; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -164,5 +165,14 @@ public class WorkOrderDelayBo extends BaseEntity { //@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class }) private Long status; + /** + * 关联的工单Id + */ + private String workOrderId; + + /** + * 处理结果描述(审核意见) + */ + private String auditOpinion; } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayHistoryBo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayHistoryBo.java new file mode 100644 index 0000000..ff9dd7f --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderDelayHistoryBo.java @@ -0,0 +1,180 @@ +package org.dromara.platform.domain.bo; + +import org.dromara.platform.domain.WorkOrderDelayHistory; +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; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 工单延期审核-历史操作业务对象 work_order_delay_history + * + * @author gejunhao + * @date 2025-05-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WorkOrderDelayHistory.class, reverseConvertGenerate = false) +public class WorkOrderDelayHistoryBo extends BaseEntity { + + /** + * 工单延期记录的唯一标识符 + */ + //@NotBlank(message = "工单延期记录的唯一标识符不能为空", groups = { EditGroup.class }) + private String id; + + /** + * 工单id + */ + //@NotBlank(message = "工单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String workOrderId; + + /** + * 所属项目的名称 + */ + //@NotBlank(message = "所属项目的名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 所属合同的名称或编号 + */ + // @NotBlank(message = "所属合同的名称或编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String contractName; + + /** + * 延期的原因说明 + */ + //@NotBlank(message = "延期的原因说明不能为空", groups = { AddGroup.class, EditGroup.class }) + private String delayReason; + + /** + * 原定的预计结束时间(延期前的时间) + */ + //@NotNull(message = "原定的预计结束时间(延期前的时间)不能为空", groups = { AddGroup.class, EditGroup.class }) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date beforeDelayTime; + + /** + * 新的预计结束时间(延期后的时间) + */ + //@NotNull(message = "新的预计结束时间(延期后的时间)不能为空", groups = { AddGroup.class, EditGroup.class }) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date afterDelayTime; + + /** + * 处理结果 + */ + //@NotBlank(message = "处理结果不能为空", groups = { AddGroup.class, EditGroup.class }) + private String handleResult; + + /** + * 审核意见 + */ + //@NotBlank(message = "审核意见不能为空", groups = { AddGroup.class, EditGroup.class }) + private String auditOpinion; + + /** + * 报修人员 + */ + //@NotBlank(message = "报修人员不能为空", groups = { AddGroup.class, EditGroup.class }) + private String repairer; + + /** + * 报修人员ID + */ + //@NotBlank(message = "报修人员ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String repairerId; + + /** + * 报修时间 + */ + //@NotNull(message = "报修时间不能为空", groups = { AddGroup.class, EditGroup.class }) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date repairerTime; + + /** + * 是否事故 (0: 否, 1: 是) + */ + //@NotBlank(message = "是否事故 (0: 否, 1: 是)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String isAccident; + + /** + * 响应级别 (0: 常规, 1: 紧急, 2: 特急) + */ + // @NotBlank(message = "响应级别 (0: 常规, 1: 紧急, 2: 特急)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String responseLevel; + + /** + * 响应时限 + */ + //@NotNull(message = "响应时限不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long responseTime; + + /** + * 故障大类 + */ + //@NotBlank(message = "故障大类不能为空", groups = { AddGroup.class, EditGroup.class }) + private String faultCategory; + + /** + * 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊) + */ + //@NotBlank(message = "故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String faultSubcategory; + + /** + * 所属机构 + */ + //@NotBlank(message = "所属机构不能为空", groups = { AddGroup.class, EditGroup.class }) + private String organizationName; + + /** + * 故障地点 + */ + //@NotBlank(message = "故障地点不能为空", groups = { AddGroup.class, EditGroup.class }) + private String faultLocation; + + /** + * 故障描述 + */ + //@NotBlank(message = "故障描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String faultDescription; + + /** + * 故障图片 + */ + //@NotBlank(message = "故障图片不能为空", groups = { AddGroup.class, EditGroup.class }) + private String attachment; + + /** + * 待处理人 + */ + //@NotBlank(message = "待处理人不能为空", groups = { AddGroup.class, EditGroup.class }) + private String handler; + + /** + * 待处理人ID + */ + //@NotBlank(message = "待处理人ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String handlerId; + + /** + * 审批人 + */ + //@NotBlank(message = "审批人不能为空", groups = { AddGroup.class, EditGroup.class }) + private String approver; + + /** + * 当前状态 + */ + //@NotNull(message = "当前状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long status; + + +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkReviewInfoBo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkReviewInfoBo.java index 4fb8fd1..f23cdcc 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkReviewInfoBo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkReviewInfoBo.java @@ -101,7 +101,7 @@ public class WorkReviewInfoBo extends BaseEntity { private String otherCostReason; /** - * 处理结果描述 + * 处理结果描述(审核意见) */ //@NotBlank(message = "处理结果描述不能为空", groups = { AddGroup.class, EditGroup.class }) private String auditOpinion; diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderDelayHistoryVo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderDelayHistoryVo.java new file mode 100644 index 0000000..787c227 --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderDelayHistoryVo.java @@ -0,0 +1,186 @@ +package org.dromara.platform.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.platform.domain.WorkOrderDelayHistory; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工单延期审核-历史操作视图对象 work_order_delay_history + * + * @author gejunhao + * @date 2025-05-06 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WorkOrderDelayHistory.class) +public class WorkOrderDelayHistoryVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工单延期记录的唯一标识符 + */ + @ExcelProperty(value = "工单延期记录的唯一标识符") + private String id; + + /** + * 工单id + */ + @ExcelProperty(value = "工单id") + private String workOrderId; + + /** + * 所属项目的名称 + */ + @ExcelProperty(value = "所属项目的名称") + private String projectName; + + /** + * 所属合同的名称或编号 + */ + @ExcelProperty(value = "所属合同的名称或编号") + private String contractName; + + /** + * 延期的原因说明 + */ + @ExcelProperty(value = "延期的原因说明") + private String delayReason; + + /** + * 原定的预计结束时间(延期前的时间) + */ + @ExcelProperty(value = "原定的预计结束时间", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "延=期前的时间") + private Date beforeDelayTime; + + /** + * 新的预计结束时间(延期后的时间) + */ + @ExcelProperty(value = "新的预计结束时间", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "延=期后的时间") + private Date afterDelayTime; + + /** + * 处理结果 + */ + @ExcelProperty(value = "处理结果") + private String handleResult; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditOpinion; + + /** + * 报修人员 + */ + @ExcelProperty(value = "报修人员") + private String repairer; + + /** + * 报修人员ID + */ + @ExcelProperty(value = "报修人员ID") + private String repairerId; + + /** + * 报修时间 + */ + @ExcelProperty(value = "报修时间") + private Date repairerTime; + + /** + * 是否事故 (0: 否, 1: 是) + */ + @ExcelProperty(value = "是否事故 (0: 否, 1: 是)") + private String isAccident; + + /** + * 响应级别 (0: 常规, 1: 紧急, 2: 特急) + */ + @ExcelProperty(value = "响应级别 (0: 常规, 1: 紧急, 2: 特急)") + private String responseLevel; + + /** + * 响应时限 + */ + @ExcelProperty(value = "响应时限") + private Long responseTime; + + /** + * 故障大类 + */ + @ExcelProperty(value = "故障大类") + private String faultCategory; + + /** + * 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊) + */ + @ExcelProperty(value = "故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)") + private String faultSubcategory; + + /** + * 所属机构 + */ + @ExcelProperty(value = "所属机构") + private String organizationName; + + /** + * 故障地点 + */ + @ExcelProperty(value = "故障地点") + private String faultLocation; + + /** + * 故障描述 + */ + @ExcelProperty(value = "故障描述") + private String faultDescription; + + /** + * 故障图片 + */ + @ExcelProperty(value = "故障图片") + private String attachment; + + /** + * 待处理人 + */ + @ExcelProperty(value = "待处理人") + private String handler; + + /** + * 待处理人ID + */ + @ExcelProperty(value = "待处理人ID") + private String handlerId; + + /** + * 审批人 + */ + @ExcelProperty(value = "审批人") + private String approver; + + /** + * 当前状态 + */ + @ExcelProperty(value = "当前状态") + private Long status; + + +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkReviewInfoVo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkReviewInfoVo.java index 60eb01c..b8c7ee1 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkReviewInfoVo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkReviewInfoVo.java @@ -109,7 +109,7 @@ public class WorkReviewInfoVo implements Serializable { private String otherCostReason; /** - * 处理结果描述 + * 处理结果描述(审核意见) */ @ExcelProperty(value = "处理结果描述") private String auditOpinion; diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderDelayHistoryMapper.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderDelayHistoryMapper.java new file mode 100644 index 0000000..37a73fd --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderDelayHistoryMapper.java @@ -0,0 +1,16 @@ +package org.dromara.platform.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.platform.domain.WorkOrderDelayHistory; +import org.dromara.platform.domain.vo.WorkOrderDelayHistoryVo; + + +/** + * 工单延期审核-历史操作Mapper接口 + * + * @author gejunhao + * @date 2025-05-06 + */ +public interface WorkOrderDelayHistoryMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderDelayHistoryService.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderDelayHistoryService.java new file mode 100644 index 0000000..b68a98f --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderDelayHistoryService.java @@ -0,0 +1,71 @@ +package org.dromara.platform.service; + +import org.dromara.platform.domain.WorkOrderDelayHistory; +import org.dromara.platform.domain.vo.WorkOrderDelayHistoryVo; +import org.dromara.platform.domain.bo.WorkOrderDelayHistoryBo; +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 gejunhao + * @date 2025-05-06 + */ +public interface IWorkOrderDelayHistoryService { + + /** + * 查询工单延期审核-历史操作 + * + * @param id 主键 + * @return 工单延期审核-历史操作 + */ + WorkOrderDelayHistoryVo queryById(String id); + + /** + * 分页查询工单延期审核-历史操作列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工单延期审核-历史操作分页列表 + */ + TableDataInfo queryPageList(WorkOrderDelayHistoryBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工单延期审核-历史操作列表 + * + * @param bo 查询条件 + * @return 工单延期审核-历史操作列表 + */ + List queryList(WorkOrderDelayHistoryBo bo); + + /** + * 新增工单延期审核-历史操作 + * + * @param bo 工单延期审核-历史操作 + * @return 是否新增成功 + */ + Boolean insertByBo(WorkOrderDelayHistoryBo bo); + + /** + * 修改工单延期审核-历史操作 + * + * @param bo 工单延期审核-历史操作 + * @return 是否修改成功 + */ + Boolean updateByBo(WorkOrderDelayHistoryBo bo); + + /** + * 校验并批量删除工单延期审核-历史操作信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List queryByWorkOrderId(String workOrderId); +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderDelayHistoryServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderDelayHistoryServiceImpl.java new file mode 100644 index 0000000..5b8c134 --- /dev/null +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderDelayHistoryServiceImpl.java @@ -0,0 +1,159 @@ +package org.dromara.platform.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 org.springframework.stereotype.Service; +import org.dromara.platform.domain.bo.WorkOrderDelayHistoryBo; +import org.dromara.platform.domain.vo.WorkOrderDelayHistoryVo; +import org.dromara.platform.domain.WorkOrderDelayHistory; +import org.dromara.platform.mapper.WorkOrderDelayHistoryMapper; +import org.dromara.platform.service.IWorkOrderDelayHistoryService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工单延期审核-历史操作Service业务层处理 + * + * @author gejunhao + * @date 2025-05-06 + */ +@RequiredArgsConstructor +@Service +public class WorkOrderDelayHistoryServiceImpl implements IWorkOrderDelayHistoryService { + + private final WorkOrderDelayHistoryMapper baseMapper; + + /** + * 查询工单延期审核-历史操作 + * + * @param id 主键 + * @return 工单延期审核-历史操作 + */ + @Override + public WorkOrderDelayHistoryVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询工单延期审核-历史操作列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工单延期审核-历史操作分页列表 + */ + @Override + public TableDataInfo queryPageList(WorkOrderDelayHistoryBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工单延期审核-历史操作列表 + * + * @param bo 查询条件 + * @return 工单延期审核-历史操作列表 + */ + @Override + public List queryList(WorkOrderDelayHistoryBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WorkOrderDelayHistoryBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getWorkOrderId()), WorkOrderDelayHistory::getWorkOrderId, bo.getWorkOrderId()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), WorkOrderDelayHistory::getProjectName, bo.getProjectName()); + lqw.like(StringUtils.isNotBlank(bo.getContractName()), WorkOrderDelayHistory::getContractName, bo.getContractName()); + lqw.eq(StringUtils.isNotBlank(bo.getDelayReason()), WorkOrderDelayHistory::getDelayReason, bo.getDelayReason()); + lqw.eq(bo.getBeforeDelayTime() != null, WorkOrderDelayHistory::getBeforeDelayTime, bo.getBeforeDelayTime()); + lqw.eq(bo.getAfterDelayTime() != null, WorkOrderDelayHistory::getAfterDelayTime, bo.getAfterDelayTime()); + lqw.eq(StringUtils.isNotBlank(bo.getHandleResult()), WorkOrderDelayHistory::getHandleResult, bo.getHandleResult()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditOpinion()), WorkOrderDelayHistory::getAuditOpinion, bo.getAuditOpinion()); + lqw.eq(StringUtils.isNotBlank(bo.getRepairer()), WorkOrderDelayHistory::getRepairer, bo.getRepairer()); + lqw.eq(StringUtils.isNotBlank(bo.getRepairerId()), WorkOrderDelayHistory::getRepairerId, bo.getRepairerId()); + lqw.eq(bo.getRepairerTime() != null, WorkOrderDelayHistory::getRepairerTime, bo.getRepairerTime()); + lqw.eq(StringUtils.isNotBlank(bo.getIsAccident()), WorkOrderDelayHistory::getIsAccident, bo.getIsAccident()); + lqw.eq(StringUtils.isNotBlank(bo.getResponseLevel()), WorkOrderDelayHistory::getResponseLevel, bo.getResponseLevel()); + lqw.eq(bo.getResponseTime() != null, WorkOrderDelayHistory::getResponseTime, bo.getResponseTime()); + lqw.eq(StringUtils.isNotBlank(bo.getFaultCategory()), WorkOrderDelayHistory::getFaultCategory, bo.getFaultCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getFaultSubcategory()), WorkOrderDelayHistory::getFaultSubcategory, bo.getFaultSubcategory()); + lqw.like(StringUtils.isNotBlank(bo.getOrganizationName()), WorkOrderDelayHistory::getOrganizationName, bo.getOrganizationName()); + lqw.eq(StringUtils.isNotBlank(bo.getFaultLocation()), WorkOrderDelayHistory::getFaultLocation, bo.getFaultLocation()); + lqw.eq(StringUtils.isNotBlank(bo.getFaultDescription()), WorkOrderDelayHistory::getFaultDescription, bo.getFaultDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getAttachment()), WorkOrderDelayHistory::getAttachment, bo.getAttachment()); + lqw.eq(StringUtils.isNotBlank(bo.getHandler()), WorkOrderDelayHistory::getHandler, bo.getHandler()); + lqw.eq(StringUtils.isNotBlank(bo.getHandlerId()), WorkOrderDelayHistory::getHandlerId, bo.getHandlerId()); + lqw.eq(StringUtils.isNotBlank(bo.getApprover()), WorkOrderDelayHistory::getApprover, bo.getApprover()); + lqw.eq(bo.getStatus() != null, WorkOrderDelayHistory::getStatus, bo.getStatus()); + return lqw; + } + + /** + * 新增工单延期审核-历史操作 + * + * @param bo 工单延期审核-历史操作 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WorkOrderDelayHistoryBo bo) { + WorkOrderDelayHistory add = MapstructUtils.convert(bo, WorkOrderDelayHistory.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改工单延期审核-历史操作 + * + * @param bo 工单延期审核-历史操作 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WorkOrderDelayHistoryBo bo) { + WorkOrderDelayHistory update = MapstructUtils.convert(bo, WorkOrderDelayHistory.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WorkOrderDelayHistory entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工单延期审核-历史操作信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public List queryByWorkOrderId(String workOrderId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WorkOrderDelayHistory::getWorkOrderId, workOrderId); + return baseMapper.selectList(queryWrapper); + } +} diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java index 448433d..5c2c1ca 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java @@ -17,9 +17,7 @@ import lombok.RequiredArgsConstructor; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.platform.domain.*; import org.dromara.platform.domain.bo.*; -import org.dromara.platform.mapper.WorkDealInfoMapper; -import org.dromara.platform.mapper.WorkOrderDelayMapper; -import org.dromara.platform.mapper.WorkOrderProcessMapper; +import org.dromara.platform.mapper.*; import org.dromara.platform.service.*; import org.dromara.workflow.domain.bo.StartProcessBo; import org.dromara.workflow.domain.bo.TaskBo; @@ -30,7 +28,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.dromara.platform.domain.vo.WorkOrderInfoVo; -import org.dromara.platform.mapper.WorkOrderInfoMapper; import org.dromara.workflow.service.IActTaskService; import java.time.Duration; @@ -70,6 +67,9 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { @Resource private WorkOrderDelayMapper workOrderDelayMapper; + @Resource + private WorkOrderDelayHistoryMapper workOrderDelayHistoryMapper; + /** * 查询工单信息 * @@ -875,8 +875,16 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { updateWrapper1.eq(WorkOrderDelay::getId,bo.getId()); updateWrapper1.set(WorkOrderDelay::getHandleResult,"审核通过"); workOrderDelayMapper.update(null,updateWrapper1); + // TODO 根据 处理中(已延期) 去修改现在的超时时间 } - // 根据 处理中(已延期) 去修改现在的超时时间 + // 记录操作历史记录表 + WorkOrderDelayHistoryBo historyBo = new WorkOrderDelayHistoryBo(); + BeanUtils.copyProperties(bo,historyBo,"id"); + historyBo.setWorkOrderId(workOrderId); + historyBo.setAuditOpinion(bo.getAuditOpinion()); + WorkOrderDelayHistory addHistory = MapstructUtils.convert(historyBo, WorkOrderDelayHistory.class); + workOrderDelayHistoryMapper.insert(addHistory); + } }