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()),