Browse Source

Update 优化维修工单状态改变关联设备状态

Yue 1 month ago
parent
commit
878a10c356

+ 9 - 2
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/controller/DeviceOrderController.java

@@ -44,11 +44,19 @@ public class DeviceOrderController extends BaseController {
     /**
      * 查询设备维修工单列表
      */
-    @GetMapping("/list")
+    @GetMapping("/list2")
     public TableDataInfo<DeviceOrderVo> list(DeviceOrderBo bo, PageQuery pageQuery) {
         return deviceOrderService.queryPageList(bo, pageQuery);
     }
 
+    /**
+     * 查询设备维修工单列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo<DeviceOrderVo> listFilterData(DeviceOrderBo bo, PageQuery pageQuery) {
+        return deviceOrderService.queryPageListFilterData(bo, pageQuery);
+    }
+
     /**
      * 导出设备维修工单列表
      */
@@ -124,7 +132,6 @@ public class DeviceOrderController extends BaseController {
     /**
      * 修改设备维修工单的助手
      */
-    @RepeatSubmit()
     @GetMapping("/getAssUsers")
     public R<List<UserSelectDTO>> getAssUsers() {
         return R.ok(deviceOrderService.getAssUsers());

+ 18 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/mapper/DeviceOrderMapper.java

@@ -1,8 +1,12 @@
 package cn.vber.device.mapper;
 
+import cn.vber.common.mybatis.annotation.DataColumn;
+import cn.vber.common.mybatis.annotation.DataPermission;
 import cn.vber.common.mybatis.core.mapper.BaseMapperPlus;
 import cn.vber.device.domain.DeviceOrder;
 import cn.vber.device.domain.vo.DeviceOrderVo;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -14,4 +18,18 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface DeviceOrderMapper extends BaseMapperPlus<DeviceOrder, DeviceOrderVo> {
 
+    /**
+     * 分页查询列表,并进行数据权限控制
+     *
+     * @param page         分页参数
+     * @param queryWrapper 查询条件
+     * @return 分页信息
+     */
+    @DataPermission({
+            @DataColumn(key = "orgName", value = "create_org"),
+            @DataColumn(key = "userName", value = "create_by")
+    })
+    default Page<DeviceOrderVo> selectVoListPage(Page<DeviceOrder> page, LambdaQueryWrapper<DeviceOrder> queryWrapper) {
+        return this.selectVoPage(page, queryWrapper);
+    }
 }

+ 3 - 0
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/IDeviceOrderService.java

@@ -32,6 +32,8 @@ public interface IDeviceOrderService {
      */
     TableDataInfo<DeviceOrderVo> queryPageList(DeviceOrderBo bo, PageQuery pageQuery);
 
+    TableDataInfo<DeviceOrderVo> queryPageListFilterData(DeviceOrderBo bo, PageQuery pageQuery);
+
     /**
      * 查询设备维修工单列表
      */
@@ -107,4 +109,5 @@ public interface IDeviceOrderService {
      * 创建设备工单
      */
     Boolean createOrderByTask(DeviceTaskVo task);
+
 }

+ 49 - 6
SERVER/ChickenFarmV3/vb-modules/vb-device/src/main/java/cn/vber/device/service/impl/DeviceOrderServiceImpl.java

@@ -19,6 +19,7 @@ import cn.vber.common.notice.dto.NoticeMessageDetailDto;
 import cn.vber.common.notice.dto.NoticeMessageDto;
 import cn.vber.common.satoken.utils.LoginHelper;
 import cn.vber.device.core.enums.*;
+import cn.vber.device.domain.Device;
 import cn.vber.device.domain.DeviceOrder;
 import cn.vber.device.domain.DeviceOrderAssistant;
 import cn.vber.device.domain.DeviceOrderFlow;
@@ -29,6 +30,7 @@ import cn.vber.device.domain.vo.DeviceOrderAssistantUserVo;
 import cn.vber.device.domain.vo.DeviceOrderFlowVo;
 import cn.vber.device.domain.vo.DeviceOrderVo;
 import cn.vber.device.domain.vo.DeviceTaskVo;
+import cn.vber.device.mapper.DeviceMapper;
 import cn.vber.device.mapper.DeviceOrderAssistantMapper;
 import cn.vber.device.mapper.DeviceOrderFlowMapper;
 import cn.vber.device.mapper.DeviceOrderMapper;
@@ -54,6 +56,7 @@ import java.util.stream.Collectors;
 public class DeviceOrderServiceImpl implements IDeviceOrderService {
 
     private final DeviceOrderMapper baseMapper;
+    private final DeviceMapper deviceMapper;
     private final DeviceOrderFlowMapper deviceOrderFlowMapper;
     private final DeviceOrderAssistantMapper deviceOrderAssistantMapper;
 
@@ -84,6 +87,13 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         return TableDataInfo.build(result);
     }
 
+    @Override
+    public TableDataInfo<DeviceOrderVo> queryPageListFilterData(DeviceOrderBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<DeviceOrder> lqw = buildQueryWrapper(bo);
+        Page<DeviceOrderVo> result = baseMapper.selectVoListPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
     /**
      * 查询设备工单列表
      */
@@ -188,7 +198,7 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
             order.setOrderNo(orderNo);
             order.setDeviceId(task.getDeviceId());
             order.setTaskId(task.getId());
-            WorkOrderTypeEnum type = getOrderType(task.getTaskType());
+            WorkOrderTypeEnum type = getOrderType(task.getTaskType(), task.getCleanType());
             order.setTitle("系统自动创建" + task.getTaskName() + "工单");
             order.setOrderType(type.getType());
             String deviceName = SpringUtils.getBean(DeviceService.class).selectNameById(task.getDeviceId());
@@ -217,13 +227,11 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         }
     }
 
-    private WorkOrderTypeEnum getOrderType(Integer taskType) {
+    private WorkOrderTypeEnum getOrderType(int taskType, int cleanType) {
         return taskType == TaskTypeEnum.MAINTENANCE_MANAGEMENT.getType()
                 ? WorkOrderTypeEnum.MAINTENANCE_MANAGEMENT
-                : taskType == TaskTypeEnum.CLEANING.getType()
-                ? WorkOrderTypeEnum.CLEANING
-                : taskType == TaskTypeEnum.DISINFECTION.getType()
-                ? WorkOrderTypeEnum.DISINFECTION
+                : taskType == TaskTypeEnum.CLEANING_DISINFECTION.getType()
+                ? cleanType == 1 ? WorkOrderTypeEnum.CLEANING : WorkOrderTypeEnum.DISINFECTION
                 : WorkOrderTypeEnum.MAINTENANCE_MANAGEMENT;
     }
 
@@ -256,6 +264,13 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         boolean flag = baseMapper.updateById(order) > 0;
         if (flag) {
             String content = "接收工单:工单编号:" + order.getOrderNo() + ",接收人:" + LoginHelper.getNickname();
+            if (order.getOrderType() == WorkOrderTypeEnum.FAULT_REPAIR.getType()) {
+                Device device = deviceMapper.selectById(order.getDeviceId());
+                if (device != null) {
+                    device.setStatus(DeviceStatusEnum.REPAIRING.getStatus());
+                    deviceMapper.updateById(device);
+                }
+            }
             insertDeviceOrderFlow(order, WorkOrderFlowTypeEnum.RECEIVE, content);
             pushOrder(order, "已被接收", content, "receive", Convert.toList(Long.class, order.getCreateBy()));
         }
@@ -343,6 +358,10 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         if (WorkOrderStatusEnum.NOT_STARTED.getStatus() == order.getStatus()) {
             throw new ServiceException("当前工单状态不能暂缓");
         }
+        if (order.getOrderType() != WorkOrderTypeEnum.FAULT_REPAIR.getType()) {
+            throw new ServiceException("当前工单类型不能暂缓");
+        }
+
         Date now = DateUtils.getNowDate();
         setFaultDuration(order, now);
         order.setStatus(WorkOrderStatusEnum.SUSPENDED.getStatus());
@@ -351,6 +370,13 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         boolean flag = baseMapper.updateById(order) > 0;
         if (flag) {
             String content = "暂缓工单:工单编号:" + order.getOrderNo() + ",暂缓原因:" + bo.getReason();
+            Device device = deviceMapper.selectById(order.getDeviceId());
+            if (order.getOrderType() == WorkOrderTypeEnum.FAULT_REPAIR.getType()) {
+                if (device != null) {
+                    device.setStatus(DeviceStatusEnum.BREAKING.getStatus());
+                    deviceMapper.updateById(device);
+                }
+            }
             insertDeviceOrderFlow(order, WorkOrderFlowTypeEnum.SUSPEND, content, bo.getImages());
             pushOrder(order, "已被暂缓", content, "suspend", Convert.toList(Long.class, order.getCreateBy()));
         }
@@ -371,6 +397,9 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         if (WorkOrderStatusEnum.SUSPENDED.getStatus() != order.getStatus()) {
             throw new ServiceException("当前工单状态不能恢复");
         }
+        if (order.getOrderType() != WorkOrderTypeEnum.FAULT_REPAIR.getType()) {
+            throw new ServiceException("当前工单类型不能恢复");
+        }
 
         Date now = DateUtils.getNowDate();
         order.setResumeTime(now);
@@ -381,6 +410,13 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         boolean flag = baseMapper.updateById(order) > 0;
         if (flag) {
             String content = "恢复工单:工单编号:" + order.getOrderNo();
+            if (order.getOrderType() == WorkOrderTypeEnum.FAULT_REPAIR.getType()) {
+                Device device = deviceMapper.selectById(order.getDeviceId());
+                if (device != null) {
+                    device.setStatus(DeviceStatusEnum.REPAIRING.getStatus());
+                    deviceMapper.updateById(device);
+                }
+            }
             insertDeviceOrderFlow(order, WorkOrderFlowTypeEnum.RESTORE, content);
             pushOrder(order, "已被恢复", content, "resume", Convert.toList(Long.class, order.getCreateBy()));
         }
@@ -437,6 +473,13 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
         boolean flag = baseMapper.updateById(order) > 0;
         if (flag) {
             String content = "验收工单:工单编号:" + order.getOrderNo();
+            if (order.getOrderType() == WorkOrderTypeEnum.FAULT_REPAIR.getType()) {
+                Device device = deviceMapper.selectById(order.getDeviceId());
+                if (device != null) {
+                    device.setStatus(DeviceStatusEnum.NORMAL.getStatus());
+                    deviceMapper.updateById(device);
+                }
+            }
             insertDeviceOrderFlow(order, WorkOrderFlowTypeEnum.ACCEPTANCE_PASS, content, bo.getImages());
             pushOrder(order, "已验收通过!", content, "accept", Convert.toList(Long.class, order.getReceiverId()));
         }

+ 9 - 0
UI/VB.VUE/src/api/device/_deviceOrder.ts

@@ -13,6 +13,15 @@ class deviceOrderApi {
 		})
 	}
 
+	// 查询设备维修工单列表(不进行数据权限过滤)
+	list2 = (query: any) => {
+		return Rs.get({
+			url: "/device/deviceOrder/list2",
+			params: query,
+			loading: false
+		})
+	}
+
 	// 查询设备维修工单详细
 	get = (id: string) => {
 		return Rs.get({