龚焕茏
2024-04-15 b86b34a3ba3a844207d3db527db8f9e9fa22033b
工单处理:审核、运维情况
7个文件已修改
1个文件已添加
100 ■■■■■ 已修改文件
ycl-common/src/main/java/enumeration/general/NotifyTypeEnum.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderYWConditionForm.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/enumeration/general/NotifyTypeEnum.java
New file
@@ -0,0 +1,32 @@
package enumeration.general;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
/**
 * 通知状态
 *
 * @author:gonghl
 * @date:2024/4/15 15:15
 */
@Getter
public enum NotifyTypeEnum {
    WORK_ORDER("WORK_ORDER", "工单"),
    CHECK("CHECK", "考核"),
    ;
    @EnumValue // 标明该字段存入数据库
    @JsonValue // 标明在转JSON时使用该字段,即响应时
    private final String value;
    private final String desc;
    NotifyTypeEnum(String value, String desc) {
        this.value = value;
        this.desc = desc;
    }
}
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java
@@ -3,9 +3,12 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.platform.base.AbsEntity;
import enumeration.general.NotifyTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
@@ -18,13 +21,15 @@
@Accessors(chain = true)
@TableName("t_notify")
@ApiModel(value = "Notify对象", description = "通知")
@AllArgsConstructor
@NoArgsConstructor
public class Notify extends AbsEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("通知类型")
    @TableField("notify_type")
    private String notifyType;
    private NotifyTypeEnum notifyType;
    @ApiModelProperty("通知内容")
    @TableField("content")
@@ -45,6 +50,5 @@
    @ApiModelProperty("工单ID")
    @TableField("work_order_id")
    private Integer workOrderId;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderYwConditionRecord.java
@@ -34,5 +34,9 @@
    @TableField("yw_condition")
    private String ywCondition;
    @ApiModelProperty("佐证材料")
    @TableField("yw_proofMaterials")
    private String ywProofMaterials;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/form/WorkOrderYWConditionForm.java
@@ -1,5 +1,6 @@
package com.ycl.platform.domain.form;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
@@ -14,12 +15,19 @@
    /**
     * 工单ID
     */
    private Integer id;
    @NotBlank
    private String id;
    /**
     * 运维情况
     */
    @NotBlank
    private String ywCondition;
    /**
     * 佐证材料
     */
    private String ywProofMaterials;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
@@ -41,5 +41,10 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date end;
    /**
     * 故障类型
     */
    private String errorType;
}
ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -57,6 +57,12 @@
        return workOrderService.ywCondition(form);
    }
    @GetMapping("/yw-condition/{id}")
    @ApiOperation(value = "运维情况", notes = "运维情况")
    public Result ywCondition(@PathVariable @Validated(Update.class) String id) {
        return workOrderService.selectYwConditionByYwId(id);
    }
    @PutMapping("/yw-result")
    @ApiOperation(value = "运维结果", notes = "运维结果")
    public Result ywCondition(@RequestBody @Validated(Update.class) WorkOrderYWResultForm form) {
ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -106,4 +106,11 @@
     * @return
     */
    Result distributeFast(DistributeWorkOrderVO data);
    /**
     * 获取工单运维情况
     * @param id 工单id
     * @return 工单运维情况
     */
    Result selectYwConditionByYwId(String id);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -7,6 +7,7 @@
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
import com.ycl.platform.mapper.*;
import com.ycl.platform.service.NotifyService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.system.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -17,7 +18,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import enumeration.general.FastDistributeTypeEnum;
import enumeration.general.NotifyTypeEnum;
import enumeration.general.WorkOrderStatusEnum;
import org.springframework.stereotype.Service;
import org.springframework.beans.BeanUtils;
@@ -46,6 +49,7 @@
    private final YwPeopleMapper ywPeopleMapper;
    private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
    private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
    private final NotifyService notifyService;
    /**
@@ -89,19 +93,19 @@
    @Transactional(rollbackFor = Exception.class)
    public Result auditing(WorkOrderAuditingForm form) {
        WorkOrder workOrder = baseMapper.selectById(form.getId());
        if (Objects.isNull(workOrder)) {
            throw new ServiceException("工单不存在");
        }
        // 工单状态
        workOrder.setStatus(form.getAuditingResult());
        baseMapper.updateById(workOrder);
        // 添加一条审核记录
        WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord();
        workOrderAuditingRecord.setWorkOrderId(workOrder.getId());
        workOrderAuditingRecord.setAuditingUser(1);
        workOrderAuditingRecord.setAuditingUser(SecurityUtils.getLoginUser().getUserId().intValue());
        workOrderAuditingRecord.setResult(form.getAuditingResult().getDesc());
        workOrderAuditingRecord.setRemark(form.getAuditingRemark());
        workOrderAuditingRecordMapper.insert(workOrderAuditingRecord);
        // 添加新通知
        Notify notify = new Notify(NotifyTypeEnum.WORK_ORDER, form.getAuditingResult().getDesc(), workOrder.getYwPeopleId(), "0", "0", workOrder.getId());
        notifyService.save(notify);
        return Result.ok("操作成功");
    }
@@ -118,10 +122,21 @@
        // 添加一条运维情况记录
        WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord();
        workOrderYwConditionRecord.setWorkOrderId(workOrder.getId());
        workOrderYwConditionRecord.setCommitUser(1);
        workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue());
        workOrderYwConditionRecord.setYwCondition(form.getYwCondition());
        workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials());
        workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord);
        return Result.ok("操作成功");
    }
    @Override
    public Result selectYwConditionByYwId(String id) {
        return Result.ok().data(
                new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
                        .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
                        .orderByDesc(WorkOrderYwConditionRecord::getCreateTime)
                        .last("limit 1")
                        .one());
    }
    @Override
@@ -169,7 +184,8 @@
    public Result page(WorkOrderQuery query) {
        IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo())
                .ne(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
                .in(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED, WorkOrderStatusEnum.YW_HANDLE)
                .eq(StringUtils.hasText(query.getErrorType()), WorkOrder::getErrorType, query.getErrorType())
                .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()),
                        WorkOrder::getYwHandleTime,
                        DateUtils.getDayStart(query.getStart()),