xiang13487 1 месяц назад
Родитель
Сommit
4e2cd9dfe1

+ 16 - 0
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/manhole/WorkOrderController.java

@@ -9,7 +9,9 @@ import com.zksy.base.domain.*;
 import com.zksy.base.service.*;
 import com.zksy.common.annotation.Anonymous;
 import com.zksy.common.core.controller.BaseController;
+import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult2;
+import com.zksy.manhole.dto.in.WorkOrderOperInDTO;
 import com.zksy.manhole.dto.in.WorkOrderPageInDTO;
 import com.zksy.manhole.dto.out.EquipmentStatusOutDTO;
 import com.zksy.manhole.dto.out.WorkOrderLogOutDTO;
@@ -98,4 +100,18 @@ public class WorkOrderController extends BaseController
         }
         return AjaxResult2.success(outDTO);
     }
+
+    /**
+     * 操作工单
+     * @param inDTO
+     * @return
+     */
+    @Anonymous
+    @PostMapping("/operWorkOrder")
+    @ApiOperation(value = "操作工单")
+    public AjaxResult operWorkOrder(@RequestBody WorkOrderOperInDTO inDTO) {
+        boolean result = workOrderService.operWorkOrder(inDTO);
+        return result ? AjaxResult.success("操作成功",result)
+                : AjaxResult.error("操作失败",result);
+    }
 }

+ 1 - 1
pipe-network-service/zksy-system/src/main/java/com/zksy/base/domain/WorkOrderLog.java

@@ -40,7 +40,7 @@ public class WorkOrderLog implements Serializable {
     /**
      * 操作类型:1-创建工单 2-派单 3-接单 4-开始维修 5-提交验收 6-验收通过 7-驳回工单 8-申请延期
      */
-    @ApiModelProperty(value = "操作类型:1-创建工单 2-派单 3-接单 4-开始维修 5-提交验收 6-验收通过 7-驳回工单 8-申请延期")
+    @ApiModelProperty(value = "操作类型:1-创建工单 2-派单 3-接单 4-开始维修 5-提交验收 6-验收通过 7-驳回工单 8-申请延期 9-延期审核通过")
     private Integer operType;
 
     /**

+ 8 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/WorkOrderService.java

@@ -3,6 +3,7 @@ package com.zksy.base.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.base.domain.WorkOrder;
+import com.zksy.manhole.dto.in.WorkOrderOperInDTO;
 import com.zksy.manhole.dto.in.WorkOrderPageInDTO;
 import com.zksy.manhole.dto.out.WorkOrderOutDTO;
 
@@ -19,4 +20,11 @@ public interface WorkOrderService extends IService<WorkOrder> {
      * @return
      */
     Page<WorkOrderOutDTO> findByPage(WorkOrderPageInDTO pageInDTO);
+
+    /**
+     * 操作工单
+     * @param inDTO
+     * @return
+     */
+    boolean operWorkOrder(WorkOrderOperInDTO inDTO);
 }

+ 75 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/WorkOrderServiceImpl.java

@@ -5,14 +5,22 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.base.domain.WorkOrder;
+import com.zksy.base.domain.WorkOrderLog;
+import com.zksy.base.mapper.WorkOrderLogMapper;
 import com.zksy.base.mapper.WorkOrderMapper;
 import com.zksy.base.service.WorkOrderService;
+import com.zksy.common.core.domain.entity.SysUser;
+import com.zksy.common.exception.ServiceException;
+import com.zksy.manhole.dto.in.WorkOrderOperInDTO;
 import com.zksy.manhole.dto.in.WorkOrderPageInDTO;
 import com.zksy.manhole.dto.out.WorkOrderOutDTO;
+import com.zksy.system.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -25,6 +33,12 @@ import java.util.List;
 public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder>
     implements WorkOrderService{
 
+    @Autowired
+    private ISysUserService sysUserService;
+
+    @Autowired
+    private WorkOrderLogMapper workOrderLogMapper;
+
     /**
      * 分页查询工单信息列表
      * @param pageInDTO
@@ -44,6 +58,67 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
         outPage.setRecords(outDTOList);
         return outPage;
     }
+
+    /**
+     * 操作工单
+     * @param inDTO
+     * @return
+     */
+    @Override
+    public boolean operWorkOrder(WorkOrderOperInDTO inDTO) {
+        log.info("操作工单-入参:{}", inDTO);
+        WorkOrder workOrder = this.getById(inDTO.getOrderId());
+        if(workOrder == null){
+            throw new ServiceException("工单ID不存在");
+        }
+        SysUser user = sysUserService.selectUserById(inDTO.getOperUserId());
+        if(user == null){
+            throw new ServiceException("操作人ID不存在");
+        }
+        if(inDTO.getOperType() == null){
+            throw new ServiceException("操作类型不能为空");
+        }
+        WorkOrder entity = new WorkOrder();
+        entity.setOrderId(inDTO.getOrderId());
+        if(inDTO.getOperType() == 2){
+            //2-派单
+            entity.setOrderStatus(2);
+            entity.setDispatchUser(inDTO.getOperUserId());
+            entity.setDispatchTime(new Date());
+            entity.setReceiveUser(inDTO.getReceiveUser());
+        } else if(inDTO.getOperType() == 3){
+            //3-接单
+            entity.setOrderStatus(3);
+            entity.setReceiveUser(inDTO.getOperUserId());
+        } else if(inDTO.getOperType() == 4){
+            //4-开始维修
+            entity.setOrderStatus(4);
+        } else if(inDTO.getOperType() == 5){
+            //5-提交验收
+            entity.setOrderStatus(5);
+            entity.setVerifyUser(workOrder.getDispatchUser());
+        } else if(inDTO.getOperType() == 6){
+            //6-验收通过
+            entity.setOrderStatus(6);
+            entity.setVerifyUser(inDTO.getOperUserId());
+            entity.setVerifyTime(new Date());
+        } else if(inDTO.getOperType() == 7){
+            //7-驳回工单
+            entity.setOrderStatus(7);
+        } else if(inDTO.getOperType() == 8){
+            //8-申请延期
+            entity.setOrderStatus(8);
+            entity.setDelayedReason(inDTO.getDelayedReason());
+            entity.setDelayedDeadline(inDTO.getDelayedDeadline());
+        } else if(inDTO.getOperType() == 9){
+            //9-延期审核通过
+            entity.setOrderStatus(9);
+        }
+        WorkOrderLog workOrderLog = BeanUtil.copyProperties(inDTO, WorkOrderLog.class);
+        workOrderLog.setOperUserName(user.getNickName());
+        workOrderLogMapper.insert(workOrderLog);
+        return this.updateById(entity);
+    }
 }
 
 

+ 42 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/manhole/dto/in/WorkOrderOperInDTO.java

@@ -0,0 +1,42 @@
+package com.zksy.manhole.dto.in;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 操作工单-入参
+ *
+ * @author xianggx
+ */
+@Data
+@ApiModel(value = "操作工单-入参", description = "操作工单-入参")
+public class WorkOrderOperInDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "工单ID", required = true)
+    private Long orderId;
+
+    @ApiModelProperty(value = "操作类型:2-派单 3-接单 4-开始维修 5-提交验收 6-验收通过 7-驳回工单 8-申请延期 9-延期审核通过", required = true)
+    private Integer operType;
+
+    @ApiModelProperty(value = "操作详情描述", required = true)
+    private String operDesc;
+
+    @ApiModelProperty(value = "操作人ID", required = true)
+    private Long operUserId;
+
+    @ApiModelProperty(value = "接单运维人员ID(操作类型为 2-派单 时,必填)")
+    private Long receiveUser;
+
+    @ApiModelProperty(value = "延期原因(操作类型为 8-申请延期 时,必填)")
+    private String delayedReason;
+
+    @ApiModelProperty(value = "延期截止时间(操作类型为 8-申请延期 时,必填)")
+    @JsonFormat(locale = "zh",pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date delayedDeadline;
+}