Bläddra i källkod

运维管理-工单管理相关接口上传

jichaobo 3 år sedan
förälder
incheckning
6640cc5466
26 ändrade filer med 2095 tillägg och 199 borttagningar
  1. 130 0
      fiveep-controller/src/main/java/com/bizmatics/controller/web/DevopsWorkOrderController.java
  2. 1 1
      fiveep-controller/src/main/java/com/bizmatics/controller/web/MybatisGeneratorUtils.java
  3. 550 195
      fiveep-controller/src/main/resources/static/doc/search.js
  4. 60 0
      fiveep-model/src/main/java/com/bizmatics/model/DevopsOrderDevice.java
  5. 60 0
      fiveep-model/src/main/java/com/bizmatics/model/DevopsOrderInspectors.java
  6. 120 0
      fiveep-model/src/main/java/com/bizmatics/model/DevopsWorkOrder.java
  7. 141 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/DevopsWorkOrderDetailsVo.java
  8. 128 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/DevopsWorkOrderListVo.java
  9. 131 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/DevopsWorkOrderVo.java
  10. 108 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/PatrolInspectionDeviceDetailsVo.java
  11. 77 0
      fiveep-model/src/main/java/com/bizmatics/model/vo/PatrolInspectorsVo.java
  12. 16 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/DevopsOrderDeviceMapper.java
  13. 16 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/DevopsOrderInspectorsMapper.java
  14. 35 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/DevopsWorkOrderMapper.java
  15. 1 1
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/SiteMapper.java
  16. 15 0
      fiveep-persistence/src/main/resources/mapper/mysql/DevopsOrderDeviceMapper.xml
  17. 15 0
      fiveep-persistence/src/main/resources/mapper/mysql/DevopsOrderInspectorsMapper.xml
  18. 124 0
      fiveep-persistence/src/main/resources/mapper/mysql/DevopsWorkOrderMapper.xml
  19. 1 1
      fiveep-persistence/src/main/resources/mapper/mysql/PatrolInspectionRecordMapper.xml
  20. 1 1
      fiveep-persistence/src/main/resources/mapper/mysql/SiteMapper.xml
  21. 16 0
      fiveep-service/src/main/java/com/bizmatics/service/DevopsOrderDeviceService.java
  22. 16 0
      fiveep-service/src/main/java/com/bizmatics/service/DevopsOrderInspectorsService.java
  23. 34 0
      fiveep-service/src/main/java/com/bizmatics/service/DevopsWorkOrderService.java
  24. 20 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/DevopsOrderDeviceServiceImpl.java
  25. 20 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/DevopsOrderInspectorsServiceImpl.java
  26. 259 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/DevopsWorkOrderServiceImpl.java

+ 130 - 0
fiveep-controller/src/main/java/com/bizmatics/controller/web/DevopsWorkOrderController.java

@@ -0,0 +1,130 @@
+package com.bizmatics.controller.web;
+
+
+import com.bizmatics.common.core.bean.ApiResult;
+import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.model.vo.DevopsWorkOrderDetailsVo;
+import com.bizmatics.model.vo.DevopsWorkOrderListVo;
+import com.bizmatics.model.vo.DevopsWorkOrderVo;
+import com.bizmatics.service.DevopsWorkOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 运维管理-工单管理
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@RestController
+@RequestMapping("/devopsWorkOrder")
+public class DevopsWorkOrderController {
+
+    @Autowired
+    private DevopsWorkOrderService devopsWorkOrderService;
+
+    /**
+     * 运维管理-工单管理-新增
+     *
+     * @param devopsWorkOrderVo
+     * @return
+     */
+    @GetMapping("devopsWorkOrderAdd")
+    public ApiResult<Void> devopsWorkOrderAdd(@RequestBody DevopsWorkOrderVo devopsWorkOrderVo) {
+        devopsWorkOrderService.devopsWorkOrderAdd(devopsWorkOrderVo);
+        return ApiResult.success();
+    }
+
+    /**
+     * 运维管理-工单管理-修改
+     *
+     * @param devopsWorkOrderVo
+     * @return
+     */
+    @GetMapping("devopsWorkOrderUpdate")
+    public ApiResult<Void> devopsWorkOrderUpdate(@RequestBody DevopsWorkOrderVo devopsWorkOrderVo) {
+        devopsWorkOrderService.devopsWorkOrderUpdate(devopsWorkOrderVo);
+        return ApiResult.success();
+    }
+
+
+    /**
+     * 运维管理-工单管理-撤销
+     *
+     * @param id 工单ID
+     * @return
+     */
+    @GetMapping("devopsWorkOrderDel")
+    public ApiResult<Void> devopsWorkOrderDel(@RequestParam Integer id
+    ) {
+        devopsWorkOrderService.devopsWorkOrderDel(id);
+        return ApiResult.success();
+    }
+
+    /**
+     * 运维管理-工单管理-设备注销
+     *
+     * @param inspectionDeviceId 巡检设备ID
+     * @return
+     */
+    @GetMapping("devopsOrderDeviceDel")
+    public ApiResult<Void> devopsOrderDeviceDel(@RequestParam Integer inspectionDeviceId
+    ) {
+        devopsWorkOrderService.devopsOrderDeviceDel(inspectionDeviceId);
+        return ApiResult.success();
+    }
+
+    /**
+     * 运维管理-工单管理-人员注销
+     *
+     * @param inspectorsId 人员ID
+     * @return
+     */
+    @GetMapping("devopsOrderInspectorsDel")
+    public ApiResult<Void> devopsOrderInspectorsDel(@RequestParam Integer inspectorsId
+    ) {
+        devopsWorkOrderService.devopsOrderInspectorsDel(inspectorsId);
+        return ApiResult.success();
+    }
+
+
+    /**
+     * 运维管理-工单管理-列表查询
+     *
+     * @param generationMode  生成方式(1 巡检计划,2 现场提交,3 后台新增,4 其他)
+     * @param workOrderStatus 工单状态(1 待抢单,2 待指派,3 待接单,4 待处理,5 待关单,6 已完成)
+     * @param inspectorsId    人员ID
+     * @param size            页数
+     * @param current         条数
+     * @return
+     */
+    @GetMapping("devopsWorkOrderList")
+    public ApiResult<CommonPage<DevopsWorkOrderListVo>> devopsWorkOrderList(@RequestParam(value = "generationMode", required = false, defaultValue = "0") Integer generationMode,
+                                                                            @RequestParam(value = "workOrderStatus", required = false, defaultValue = "0") Integer workOrderStatus,
+                                                                            @RequestParam(value = "inspectorsId", required = false, defaultValue = "0") Integer inspectorsId,
+                                                                            @RequestParam(value = "inspectorsId", required = false, defaultValue = "0") Integer siteId,
+                                                                            @RequestParam(value = "size", required = false, defaultValue = "1") Integer size,
+                                                                            @RequestParam(value = "current", required = false, defaultValue = "15") Integer current
+    ) {
+        return ApiResult.success(devopsWorkOrderService.devopsWorkOrderList(generationMode, workOrderStatus, siteId, inspectorsId, size, current));
+    }
+
+    /**
+     * 运维管理-工单管理-详情查询
+     *
+     * @param id 工单ID
+     * @return
+     */
+    @GetMapping("devopsWorkOrderDetails")
+    public ApiResult<List<DevopsWorkOrderDetailsVo>> devopsWorkOrderDetails(@RequestParam Integer id
+    ) {
+
+        return ApiResult.success(devopsWorkOrderService.devopsWorkOrderDetails(id));
+    }
+
+
+
+}
+

+ 1 - 1
fiveep-controller/src/main/java/com/bizmatics/controller/web/MybatisGeneratorUtils.java

@@ -70,7 +70,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude(new String[]{"patrol_record_route"});  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude(new String[]{"devops_work_order"});  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 550 - 195
fiveep-controller/src/main/resources/static/doc/search.js

@@ -31,741 +31,1096 @@ api[0].list.push({
     desc: '运行状态',
 });
 api.push({
-    alias: 'DeviceAttributeController',
+    alias: 'ConsumeEnergyConfigController',
     order: '2',
-    link: '&lt;p&gt;设备属性_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt;设备属性 前端控制器&lt;/p&gt;',
+    link: '&lt;p&gt;前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt;前端控制器&lt;/p&gt;',
     list: []
 })
+api[1].list.push({
+    order: '1',
+    desc: '',
+});
 api.push({
-    alias: 'DeviceController',
+    alias: 'DeviceAnalogVariableListController',
+    order: '3',
+    link: '设备变量列表',
+    desc: '设备变量列表',
+    list: []
+})
+api[2].list.push({
+    order: '1',
+    desc: '站点管理-变量列表-新增',
+});
+api[2].list.push({
+    order: '2',
+    desc: '站点管理-变量列表-修改',
+});
+api[2].list.push({
     order: '3',
+    desc: '站点管理-变量列表-注销',
+});
+api[2].list.push({
+    order: '4',
+    desc: '站点管理-变量列表-列表查询',
+});
+api[2].list.push({
+    order: '5',
+    desc: '站点管理-变量列表-列表查询',
+});
+api.push({
+    alias: 'DeviceAttributeController',
+    order: '4',
+    link: '设备属性',
+    desc: '设备属性',
+    list: []
+})
+api[3].list.push({
+    order: '1',
+    desc: '站点管理/设备管理-监控设备-新增',
+});
+api[3].list.push({
+    order: '2',
+    desc: '站点管理/设备管理-监控设备-修改',
+});
+api[3].list.push({
+    order: '3',
+    desc: '站点管理/设备管理-监控设备-设备列表查询',
+});
+api[3].list.push({
+    order: '4',
+    desc: '站点管理/设备管理-监控设备-注销',
+});
+api[3].list.push({
+    order: '5',
+    desc: '站点管理/设备管理-监控设备-主页列表查询',
+});
+api.push({
+    alias: 'DeviceController',
+    order: '5',
     link: '设备',
     desc: '设备',
     list: []
 })
-api[2].list.push({
+api[4].list.push({
     order: '1',
     desc: '查询设备总数',
 });
-api[2].list.push({
+api[4].list.push({
     order: '2',
     desc: '查询不同类型的设备数量',
 });
-api[2].list.push({
+api[4].list.push({
     order: '3',
     desc: '',
 });
-api[2].list.push({
+api[4].list.push({
     order: '4',
     desc: '',
 });
+api[4].list.push({
+    order: '5',
+    desc: '数据管理-同比分析报表-右侧设备查询',
+});
+api[4].list.push({
+    order: '6',
+    desc: '设备管理-通信设备-新增',
+});
+api[4].list.push({
+    order: '7',
+    desc: '设备管理-通信设备-修改',
+});
+api[4].list.push({
+    order: '8',
+    desc: '设备管理-通信设备-注销',
+});
+api[4].list.push({
+    order: '9',
+    desc: '设备管理-通信设备-查询',
+});
+api[4].list.push({
+    order: '10',
+    desc: '设备管理-通信设备-修改回显',
+});
+api[4].list.push({
+    order: '11',
+    desc: '设备管理-视频监测-列表查询',
+});
 api.push({
     alias: 'DeviceStatusController',
-    order: '4',
+    order: '6',
     link: '设备状态',
     desc: '设备状态',
     list: []
 })
 api.push({
     alias: 'RtAnalogControllerWeb',
-    order: '5',
+    order: '7',
     link: '',
     desc: '',
     list: []
 })
-api[4].list.push({
+api[6].list.push({
     order: '1',
     desc: '',
 });
-api[4].list.push({
+api[6].list.push({
     order: '2',
     desc: '',
 });
-api[4].list.push({
+api[6].list.push({
     order: '3',
     desc: '',
 });
-api[4].list.push({
+api[6].list.push({
     order: '4',
     desc: '',
 });
-api[4].list.push({
+api[6].list.push({
     order: '5',
     desc: '',
 });
-api[4].list.push({
+api[6].list.push({
     order: '6',
     desc: '',
 });
 api.push({
     alias: 'FacilityController',
-    order: '6',
+    order: '8',
     link: 'object',
     desc: 'object',
     list: []
 })
-api[5].list.push({
+api[7].list.push({
     order: '1',
     desc: '查询不同设备的数量',
 });
 api.push({
     alias: 'HadSiteStaticController',
-    order: '7',
+    order: '9',
     link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
     desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
     list: []
 })
 api.push({
     alias: 'HtAnalogDataController',
-    order: '8',
+    order: '10',
     link: '历史消费组模拟量',
     desc: '历史消费组模拟量',
     list: []
 })
-api[7].list.push({
+api[9].list.push({
     order: '1',
     desc: '首页日/月/年用电量',
 });
-api[7].list.push({
+api[9].list.push({
     order: '2',
     desc: '今日/昨日用电趋势',
 });
-api[7].list.push({
+api[9].list.push({
     order: '3',
     desc: '当月用电趋势图',
 });
-api[7].list.push({
+api[9].list.push({
     order: '4',
     desc: '站点日/月/年用电量',
 });
-api[7].list.push({
+api[9].list.push({
     order: '5',
     desc: '分时电量',
 });
-api[7].list.push({
+api[9].list.push({
     order: '6',
     desc: '需量趋势图',
 });
-api[7].list.push({
+api[9].list.push({
     order: '7',
     desc: '历史记录电流电压',
 });
+api[9].list.push({
+    order: '8',
+    desc: '数据管理-同比分析报表-统计图数据查询',
+});
+api[9].list.push({
+    order: '9',
+    desc: '数据管理-环比分析报表-统计图数据查询',
+});
+api[9].list.push({
+    order: '10',
+    desc: '数据管理-用能月报-统计图数据查询',
+});
+api[9].list.push({
+    order: '11',
+    desc: '数据管理-需量分析-统计图数据查询',
+});
 api.push({
     alias: 'HtSwitchDataController',
-    order: '9',
+    order: '11',
     link: '历史消费组开关',
     desc: '历史消费组开关',
     list: []
 })
 api.push({
     alias: 'JobController',
-    order: '10',
+    order: '12',
     link: '',
     desc: '',
     list: []
 })
-api[9].list.push({
+api[11].list.push({
     order: '1',
     desc: '',
 });
+api.push({
+    alias: 'PatrolCheckEntryController',
+    order: '13',
+    link: '巡检管理-检查条目',
+    desc: '巡检管理-检查条目',
+    list: []
+})
+api[12].list.push({
+    order: '1',
+    desc: '巡检管理-检查条目-检查项-新增',
+});
+api[12].list.push({
+    order: '2',
+    desc: '巡检管理-检查条目-检查项-修改',
+});
+api[12].list.push({
+    order: '3',
+    desc: '巡检管理-检查条目-检查项-注销',
+});
+api[12].list.push({
+    order: '4',
+    desc: '巡检管理-检查条目-检查项-检查项列表查询',
+});
+api[12].list.push({
+    order: '5',
+    desc: '巡检管理-检查条目-检查项-下拉框',
+});
+api.push({
+    alias: 'PatrolContentEntryController',
+    order: '14',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'PatrolDeviceTypeController',
+    order: '15',
+    link: '巡检管理-检查条目-检查条目设备类型',
+    desc: '巡检管理-检查条目-检查条目设备类型',
+    list: []
+})
+api[14].list.push({
+    order: '1',
+    desc: '巡检管理-检查条目-检查条目设备类型-新增',
+});
+api[14].list.push({
+    order: '2',
+    desc: '巡检管理-检查条目-检查条目设备类型-修改',
+});
+api[14].list.push({
+    order: '3',
+    desc: '巡检管理-检查条目-检查条目设备类型-注销',
+});
+api[14].list.push({
+    order: '4',
+    desc: '巡检管理-检查条目-检查条目设备类型-检查条目设备类型查询',
+});
+api.push({
+    alias: 'PatrolInspectionContentController',
+    order: '16',
+    link: '巡检管理-巡检内容',
+    desc: '巡检管理-巡检内容',
+    list: []
+})
+api[15].list.push({
+    order: '1',
+    desc: '巡检管理-巡检内容-新增',
+});
+api[15].list.push({
+    order: '2',
+    desc: '巡检管理-巡检内容-修改',
+});
+api[15].list.push({
+    order: '3',
+    desc: '巡检管理-巡检内容-注销',
+});
+api[15].list.push({
+    order: '4',
+    desc: '巡检管理-巡检内容-巡检设备列表',
+});
+api[15].list.push({
+    order: '5',
+    desc: '巡检管理-巡检内容-巡检内容查看详情与回显',
+});
+api[15].list.push({
+    order: '6',
+    desc: '巡检管理-巡检内容-巡检内容检查项查询',
+});
+api[15].list.push({
+    order: '7',
+    desc: '巡检管理-巡检内容-左侧站点目录',
+});
+api.push({
+    alias: 'PatrolInspectionDeviceController',
+    order: '17',
+    link: '巡检管理-巡检设备',
+    desc: '巡检管理-巡检设备',
+    list: []
+})
+api[16].list.push({
+    order: '1',
+    desc: '巡检管理-巡检设备-新增',
+});
+api[16].list.push({
+    order: '2',
+    desc: '巡检管理-巡检设备-修改',
+});
+api[16].list.push({
+    order: '3',
+    desc: '巡检管理-巡检设备-注销',
+});
+api[16].list.push({
+    order: '4',
+    desc: '巡检管理-巡检设备-列表与回显查询',
+});
+api[16].list.push({
+    order: '5',
+    desc: '通用图片上传',
+});
+api.push({
+    alias: 'PatrolInspectionRecordController',
+    order: '18',
+    link: '巡检管理-巡检记录',
+    desc: '巡检管理-巡检记录',
+    list: []
+})
+api[17].list.push({
+    order: '1',
+    desc: '巡检管理-巡检记录-按计划查看/按站点查看',
+});
+api[17].list.push({
+    order: '2',
+    desc: '巡检管理-巡检记录-详情查询',
+});
+api[17].list.push({
+    order: '3',
+    desc: '巡检管理-巡检记录-按站点查看下拉框',
+});
+api[17].list.push({
+    order: '4',
+    desc: '巡检管理-巡检记录-按计划查看下拉框',
+});
+api.push({
+    alias: 'PatrolInspectionSchemeController',
+    order: '19',
+    link: '巡检管理-巡检计划',
+    desc: '巡检管理-巡检计划',
+    list: []
+})
+api[18].list.push({
+    order: '1',
+    desc: '巡检管理-巡检计划-计划新增',
+});
+api[18].list.push({
+    order: '2',
+    desc: '巡检管理-巡检计划-计划修改',
+});
+api[18].list.push({
+    order: '3',
+    desc: '巡检管理-巡检计划-计划暂停',
+});
+api[18].list.push({
+    order: '4',
+    desc: '巡检管理-巡检计划-计划列表查询',
+});
+api[18].list.push({
+    order: '5',
+    desc: '巡检管理-巡检计划-修改回显/查看详情',
+});
+api[18].list.push({
+    order: '6',
+    desc: '巡检管理-巡检计划-检查项查看',
+});
+api[18].list.push({
+    order: '7',
+    desc: '巡检管理-巡检计划-巡检内容下拉框',
+});
+api[18].list.push({
+    order: '8',
+    desc: '巡检管理-巡检计划-线路注销',
+});
+api[18].list.push({
+    order: '9',
+    desc: '巡检管理-巡检计划-计划日历/站点巡检日历数据查询',
+});
+api.push({
+    alias: 'PatrolInspectionTeamController',
+    order: '20',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'PatrolInspectorsController',
+    order: '21',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'PatrolManufacturerController',
+    order: '22',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
 api.push({
     alias: 'PersonnelController',
-    order: '11',
+    order: '23',
     link: '人员信息',
     desc: '人员信息',
     list: []
 })
-api[10].list.push({
+api[22].list.push({
     order: '1',
     desc: '查询不同种类的人员信息',
 });
+api.push({
+    alias: 'PlatformAreaController',
+    order: '24',
+    link: '台区管理',
+    desc: '台区管理',
+    list: []
+})
+api[23].list.push({
+    order: '1',
+    desc: '台区管理-新增',
+});
+api[23].list.push({
+    order: '2',
+    desc: '台区管理-修改',
+});
+api[23].list.push({
+    order: '3',
+    desc: '台区管理-修改回显',
+});
+api[23].list.push({
+    order: '4',
+    desc: '台区管理-列表查询',
+});
+api[23].list.push({
+    order: '5',
+    desc: '台区管路-注销',
+});
+api[23].list.push({
+    order: '6',
+    desc: '台区管路-站点设备列表',
+});
+api[23].list.push({
+    order: '7',
+    desc: '台区管理-站点设备修改',
+});
+api[23].list.push({
+    order: '8',
+    desc: '台区管理-站点设备注销',
+});
+api.push({
+    alias: 'PowerQualityConfigController',
+    order: '25',
+    link: '站点管理-电能质量评分配置',
+    desc: '站点管理-电能质量评分配置',
+    list: []
+})
+api[24].list.push({
+    order: '1',
+    desc: '站点管理-电能质量评分配置-新增',
+});
+api[24].list.push({
+    order: '2',
+    desc: '站点管理-电能质量评分配置-修改',
+});
+api[24].list.push({
+    order: '3',
+    desc: '站点管理-电能质量评分配置-注销',
+});
+api[24].list.push({
+    order: '4',
+    desc: '站点管理-电能质量评分配置-查询',
+});
 api.push({
     alias: 'RouteController',
-    order: '12',
+    order: '26',
     link: '线路表',
     desc: '线路表',
     list: []
 })
 api.push({
     alias: 'RtAnalogDataController',
-    order: '13',
+    order: '27',
     link: '实时消费组模拟量',
     desc: '实时消费组模拟量',
     list: []
 })
-api[12].list.push({
+api[26].list.push({
     order: '1',
     desc: '重载/轻载/正常',
 });
-api[12].list.push({
+api[26].list.push({
     order: '2',
     desc: '查看实时数据详情',
 });
-api[12].list.push({
+api[26].list.push({
     order: '3',
     desc: '实时负荷',
 });
-api[12].list.push({
+api[26].list.push({
     order: '4',
     desc: '',
 });
-api[12].list.push({
+api[26].list.push({
     order: '5',
     desc: '',
 });
-api[12].list.push({
+api[26].list.push({
     order: '6',
     desc: '',
 });
 api.push({
     alias: 'RtSwitchDataController',
-    order: '14',
+    order: '28',
     link: '实时消费组开关',
     desc: '实时消费组开关',
     list: []
 })
-api[13].list.push({
+api[27].list.push({
     order: '1',
     desc: '查看单个信息',
 });
-api[13].list.push({
+api[27].list.push({
     order: '2',
     desc: '',
 });
 api.push({
     alias: 'SiteController',
-    order: '15',
+    order: '29',
     link: '站点',
     desc: '站点',
     list: []
 })
-api[14].list.push({
+api[28].list.push({
     order: '1',
     desc: '查看不同状态的站点数量',
 });
-api[14].list.push({
+api[28].list.push({
     order: '2',
     desc: '查看站点列表',
 });
-api[14].list.push({
+api[28].list.push({
     order: '3',
     desc: '',
 });
-api[14].list.push({
+api[28].list.push({
     order: '4',
     desc: '查看站点详情',
 });
-api[14].list.push({
+api[28].list.push({
     order: '5',
     desc: '查看站点列表',
 });
-api[14].list.push({
+api[28].list.push({
     order: '6',
-    desc: '',
+    desc: '站点管理-基础信息-新增修改',
 });
-api[14].list.push({
+api[28].list.push({
     order: '7',
-    desc: '',
+    desc: '站点管理-基础信息-站点注销',
 });
-api[14].list.push({
+api[28].list.push({
     order: '8',
     desc: '',
 });
-api[14].list.push({
+api[28].list.push({
     order: '9',
     desc: '',
 });
+api[28].list.push({
+    order: '10',
+    desc: '',
+});
 api.push({
     alias: 'SitedtlController',
-    order: '16',
+    order: '30',
     link: '站点详情',
     desc: '站点详情',
     list: []
 })
 api.push({
     alias: 'SiteDynamicPropertiesController',
-    order: '17',
+    order: '31',
     link: '&lt;p&gt;站点动态属性表_前端控制器&lt;/p&gt;',
     desc: '&lt;p&gt;站点动态属性表 前端控制器&lt;/p&gt;',
     list: []
 })
 api.push({
     alias: 'SiteGroupingController',
-    order: '18',
-    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    order: '32',
+    link: '站点分组',
+    desc: '站点分组',
     list: []
 })
-api[17].list.push({
+api[31].list.push({
     order: '1',
-    desc: '',
+    desc: '站点分组-新增',
 });
-api[17].list.push({
+api[31].list.push({
     order: '2',
-    desc: '',
+    desc: '站点分组-修改',
 });
 api.push({
     alias: 'SiteObjectController',
-    order: '19',
+    order: '33',
     link: '',
     desc: '',
     list: []
 })
 api.push({
     alias: 'SiteTypeController',
-    order: '20',
+    order: '34',
     link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
     desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
     list: []
 })
 api.push({
     alias: 'CaptchaController',
-    order: '21',
+    order: '35',
     link: '验证码操作处理',
     desc: '验证码操作处理',
     list: []
 })
-api[20].list.push({
+api[34].list.push({
     order: '1',
     desc: '生成验证码',
 });
 api.push({
     alias: 'SysConfigController',
-    order: '22',
+    order: '36',
     link: '参数配置_信息操作处理',
     desc: '参数配置 信息操作处理',
     list: []
 })
-api[21].list.push({
+api[35].list.push({
     order: '1',
     desc: '获取参数配置列表',
 });
-api[21].list.push({
+api[35].list.push({
     order: '2',
     desc: '根据参数编号获取详细信息',
 });
-api[21].list.push({
+api[35].list.push({
     order: '3',
     desc: '根据参数键名查询参数值',
 });
-api[21].list.push({
+api[35].list.push({
     order: '4',
     desc: '新增参数配置',
 });
-api[21].list.push({
+api[35].list.push({
     order: '5',
     desc: '修改参数配置',
 });
-api[21].list.push({
+api[35].list.push({
     order: '6',
     desc: '删除参数配置',
 });
-api[21].list.push({
+api[35].list.push({
     order: '7',
     desc: '刷新参数缓存',
 });
 api.push({
     alias: 'SysDeptController',
-    order: '23',
+    order: '37',
     link: '部门信息',
     desc: '部门信息',
     list: []
 })
-api[22].list.push({
+api[36].list.push({
     order: '1',
     desc: '获取部门列表',
 });
-api[22].list.push({
+api[36].list.push({
     order: '2',
     desc: '查询部门列表(排除节点)',
 });
-api[22].list.push({
+api[36].list.push({
     order: '3',
     desc: '根据部门编号获取详细信息',
 });
-api[22].list.push({
+api[36].list.push({
     order: '4',
     desc: '获取部门下拉树列表',
 });
-api[22].list.push({
+api[36].list.push({
     order: '5',
     desc: '加载对应角色部门列表树',
 });
-api[22].list.push({
+api[36].list.push({
     order: '6',
     desc: '新增部门',
 });
-api[22].list.push({
+api[36].list.push({
     order: '7',
     desc: '修改部门',
 });
-api[22].list.push({
+api[36].list.push({
     order: '8',
     desc: '删除部门',
 });
 api.push({
     alias: 'SysDictDataController',
-    order: '24',
+    order: '38',
     link: '数据字典信息',
     desc: '数据字典信息',
     list: []
 })
-api[23].list.push({
+api[37].list.push({
     order: '1',
     desc: '',
 });
-api[23].list.push({
+api[37].list.push({
     order: '2',
     desc: '查询字典数据详细',
 });
-api[23].list.push({
+api[37].list.push({
     order: '3',
     desc: '根据字典类型查询字典数据信息',
 });
-api[23].list.push({
+api[37].list.push({
     order: '4',
     desc: '新增字典类型',
 });
-api[23].list.push({
+api[37].list.push({
     order: '5',
     desc: '修改保存字典类型',
 });
-api[23].list.push({
+api[37].list.push({
     order: '6',
     desc: '删除字典类型',
 });
 api.push({
     alias: 'SysDictTypeController',
-    order: '25',
+    order: '39',
     link: '数据字典信息',
     desc: '数据字典信息',
     list: []
 })
-api[24].list.push({
+api[38].list.push({
     order: '1',
     desc: '',
 });
-api[24].list.push({
+api[38].list.push({
     order: '2',
     desc: '查询字典类型详细',
 });
-api[24].list.push({
+api[38].list.push({
     order: '3',
     desc: '新增字典类型',
 });
-api[24].list.push({
+api[38].list.push({
     order: '4',
     desc: '修改字典类型',
 });
-api[24].list.push({
+api[38].list.push({
     order: '5',
     desc: '删除字典类型',
 });
-api[24].list.push({
+api[38].list.push({
     order: '6',
     desc: '刷新字典缓存',
 });
-api[24].list.push({
+api[38].list.push({
     order: '7',
     desc: '获取字典选择框列表',
 });
 api.push({
     alias: 'SysLoginController',
-    order: '26',
+    order: '40',
     link: '登录验证',
     desc: '登录验证',
     list: []
 })
-api[25].list.push({
+api[39].list.push({
     order: '1',
     desc: '登录方法',
 });
-api[25].list.push({
+api[39].list.push({
     order: '2',
     desc: '获取用户信息',
 });
-api[25].list.push({
+api[39].list.push({
     order: '3',
     desc: '获取路由信息',
 });
 api.push({
     alias: 'SysMenuController',
-    order: '27',
+    order: '41',
     link: '菜单信息',
     desc: '菜单信息',
     list: []
 })
-api[26].list.push({
+api[40].list.push({
     order: '1',
     desc: '获取菜单列表',
 });
-api[26].list.push({
+api[40].list.push({
     order: '2',
     desc: '根据菜单编号获取详细信息',
 });
-api[26].list.push({
+api[40].list.push({
     order: '3',
     desc: '获取菜单下拉树列表',
 });
-api[26].list.push({
+api[40].list.push({
     order: '4',
     desc: '加载对应角色菜单列表树',
 });
-api[26].list.push({
+api[40].list.push({
     order: '5',
     desc: '新增菜单',
 });
-api[26].list.push({
+api[40].list.push({
     order: '6',
     desc: '修改菜单',
 });
-api[26].list.push({
+api[40].list.push({
     order: '7',
     desc: '删除菜单',
 });
 api.push({
     alias: 'SysNoticeController',
-    order: '28',
+    order: '42',
     link: '公告_信息操作处理',
     desc: '公告 信息操作处理',
     list: []
 })
-api[27].list.push({
+api[41].list.push({
     order: '1',
     desc: '获取通知公告列表',
 });
-api[27].list.push({
+api[41].list.push({
     order: '2',
     desc: '根据通知公告编号获取详细信息',
 });
-api[27].list.push({
+api[41].list.push({
     order: '3',
     desc: '新增通知公告',
 });
-api[27].list.push({
+api[41].list.push({
     order: '4',
     desc: '修改通知公告',
 });
-api[27].list.push({
+api[41].list.push({
     order: '5',
     desc: '删除通知公告',
 });
 api.push({
     alias: 'SysPostController',
-    order: '29',
+    order: '43',
     link: '岗位信息操作处理',
     desc: '岗位信息操作处理',
     list: []
 })
-api[28].list.push({
+api[42].list.push({
     order: '1',
     desc: '获取岗位列表',
 });
-api[28].list.push({
+api[42].list.push({
     order: '2',
     desc: '根据岗位编号获取详细信息',
 });
-api[28].list.push({
+api[42].list.push({
     order: '3',
     desc: '新增岗位',
 });
-api[28].list.push({
+api[42].list.push({
     order: '4',
     desc: '修改岗位',
 });
-api[28].list.push({
+api[42].list.push({
     order: '5',
     desc: '删除岗位',
 });
-api[28].list.push({
+api[42].list.push({
     order: '6',
     desc: '获取岗位选择框列表',
 });
 api.push({
     alias: 'SysProfileController',
-    order: '30',
+    order: '44',
     link: '个人信息_业务处理',
     desc: '个人信息 业务处理',
     list: []
 })
-api[29].list.push({
+api[43].list.push({
     order: '1',
     desc: '个人信息',
 });
-api[29].list.push({
+api[43].list.push({
     order: '2',
     desc: '修改用户',
 });
-api[29].list.push({
+api[43].list.push({
     order: '3',
     desc: '重置密码',
 });
 api.push({
     alias: 'SysRoleController',
-    order: '31',
+    order: '45',
     link: '角色信息',
     desc: '角色信息',
     list: []
 })
-api[30].list.push({
+api[44].list.push({
     order: '1',
     desc: '',
 });
-api[30].list.push({
+api[44].list.push({
     order: '2',
     desc: '根据角色编号获取详细信息',
 });
-api[30].list.push({
+api[44].list.push({
     order: '3',
     desc: '新增角色',
 });
-api[30].list.push({
+api[44].list.push({
     order: '4',
     desc: '修改保存角色',
 });
-api[30].list.push({
+api[44].list.push({
     order: '5',
     desc: '修改保存数据权限',
 });
-api[30].list.push({
+api[44].list.push({
     order: '6',
     desc: '状态修改',
 });
-api[30].list.push({
+api[44].list.push({
     order: '7',
     desc: '删除角色',
 });
-api[30].list.push({
+api[44].list.push({
     order: '8',
     desc: '获取角色选择框列表',
 });
-api[30].list.push({
+api[44].list.push({
     order: '9',
     desc: '查询已分配用户角色列表',
 });
-api[30].list.push({
+api[44].list.push({
     order: '10',
     desc: '查询未分配用户角色列表',
 });
-api[30].list.push({
+api[44].list.push({
     order: '11',
     desc: '取消授权用户',
 });
-api[30].list.push({
+api[44].list.push({
     order: '12',
     desc: '批量取消授权用户',
 });
-api[30].list.push({
+api[44].list.push({
     order: '13',
     desc: '批量选择用户授权',
 });
 api.push({
     alias: 'SysUserController',
-    order: '32',
+    order: '46',
     link: '用户信息',
     desc: '用户信息',
     list: []
 })
-api[31].list.push({
+api[45].list.push({
     order: '1',
     desc: '获取用户列表',
 });
-api[31].list.push({
+api[45].list.push({
     order: '2',
     desc: '根据用户编号获取详细信息',
 });
-api[31].list.push({
+api[45].list.push({
     order: '3',
     desc: '新增用户',
 });
-api[31].list.push({
+api[45].list.push({
     order: '4',
     desc: '修改用户',
 });
-api[31].list.push({
+api[45].list.push({
     order: '5',
     desc: '删除用户',
 });
-api[31].list.push({
+api[45].list.push({
     order: '6',
     desc: '重置密码',
 });
-api[31].list.push({
+api[45].list.push({
     order: '7',
     desc: '状态修改',
 });
-api[31].list.push({
+api[45].list.push({
     order: '8',
     desc: '根据用户编号获取授权角色',
 });
-api[31].list.push({
+api[45].list.push({
     order: '9',
     desc: '用户授权角色',
 });
 api.push({
     alias: 'UserController',
-    order: '33',
+    order: '47',
     link: '用户',
     desc: '用户',
     list: []
 })
-api[32].list.push({
+api[46].list.push({
     order: '1',
     desc: '',
 });
 api.push({
     alias: 'UserSiteController',
-    order: '34',
+    order: '48',
     link: '用户站点信息',
     desc: '用户站点信息',
     list: []
 })
-api.push({
-    alias: 'WcAccessTokenController',
-    order: '35',
-    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
-    list: []
-})
 api.push({
     alias: 'WcBlackoutPlanController',
-    order: '36',
-    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
-    list: []
-})
-api.push({
-    alias: 'WcKeySecretController',
-    order: '37',
-    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
-    list: []
-})
-api.push({
-    alias: 'WcMeasTypeController',
-    order: '38',
-    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
-    list: []
-})
-api.push({
-    alias: 'WcUserController',
-    order: '39',
-    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
-    list: []
-})
-api.push({
-    alias: 'WcUserTokenController',
-    order: '40',
-    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
-    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    order: '49',
+    link: '停电计划',
+    desc: '停电计划',
     list: []
 })
+api[48].list.push({
+    order: '1',
+    desc: '停电计划-新增',
+});
+api[48].list.push({
+    order: '2',
+    desc: '停电计划-修改',
+});
+api[48].list.push({
+    order: '3',
+    desc: '停电计划-注销',
+});
+api[48].list.push({
+    order: '4',
+    desc: '停电计划-查询',
+});
 api.push({
     alias: 'dict',
-    order: '41',
+    order: '50',
     link: 'dict_list',
     desc: '数据字典',
     list: []

+ 60 - 0
fiveep-model/src/main/java/com/bizmatics/model/DevopsOrderDevice.java

@@ -0,0 +1,60 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DevopsOrderDevice implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 工单与巡检设备关联id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 工单id
+     */
+    private Integer workOrderId;
+
+    /**
+     * 巡检设备id
+     */
+    private Integer inspectionDeviceId;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 未启用,1 启用)
+     */
+    private Integer status;
+
+
+}

+ 60 - 0
fiveep-model/src/main/java/com/bizmatics/model/DevopsOrderInspectors.java

@@ -0,0 +1,60 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DevopsOrderInspectors implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 工单与人员关联id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 工单id
+     */
+    private Integer workOrderId;
+
+    /**
+     * 人员id
+     */
+    private Integer inspectorsId;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 未启用,1 启用)
+     */
+    private Integer status;
+
+
+}

+ 120 - 0
fiveep-model/src/main/java/com/bizmatics/model/DevopsWorkOrder.java

@@ -0,0 +1,120 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DevopsWorkOrder implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 运维工单id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 工单描述
+     */
+    private String workOrder;
+
+    /**
+     * 站点id
+     */
+    private Integer siteId;
+
+    /**
+     * 工单类型(1 安全评测,2 检修,3 抢修,4 其他,5 保养,6 停电维护,7 巡检)
+     */
+    private Integer workOrderType;
+
+    /**
+     * 期待完成时间
+     */
+    private Date expectedCompletionTime;
+
+    /**
+     * 班组id
+     */
+    private Integer teamId;
+
+    /**
+     * 生成方式(1 巡检计划,2 现场提交,3 后台新增,4 其他)
+     */
+    private Integer generationMode;
+
+    /**
+     * 工单状态(1 待抢单,2 待指派,3 待接单,4 待处理,5 待关单,6 已完成)
+     */
+    private Integer workOrderStatus;
+
+    /**
+     * 图片路径1
+     */
+    private String picturePathOne;
+
+    /**
+     * 图片路径2
+     */
+    private String picturePathTwo;
+
+    /**
+     * 图片路径3
+     */
+    private String picturePathThree;
+
+    /**
+     * 图片路径4
+     */
+    private String picturePathFour;
+
+    /**
+     * 图片路径5
+     */
+    private String picturePathFive;
+
+    /**
+     * 图片路径6
+     */
+    private String picturePathSix;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 撤单,1 启用)
+     */
+    private Integer status;
+
+
+
+    /**
+     * 记录ID
+     */
+    private Integer inspectionRecordId;
+}

+ 141 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/DevopsWorkOrderDetailsVo.java

@@ -0,0 +1,141 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DevopsWorkOrderDetailsVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 运维工单id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 工单描述
+     */
+    private String workOrder;
+
+    /**
+     * 站点id
+     */
+    private Integer siteId;
+
+    /**
+     * 工单类型(1 安全评测,2 检修,3 抢修,4 其他,5 保养,6 停电维护,7 巡检)
+     */
+    private Integer workOrderType;
+
+    /**
+     * 期待完成时间
+     */
+    private Date expectedCompletionTime;
+
+    /**
+     * 班组id
+     */
+    private Integer teamId;
+
+    /**
+     * 生成方式(1 巡检计划,2 现场提交,3 后台新增,4 其他)
+     */
+    private Integer generationMode;
+
+    /**
+     * 工单状态(1 待抢单,2 待指派,3 待接单,4 待处理,5 待关单,6 已完成)
+     */
+    private Integer workOrderStatus;
+
+    /**
+     * 图片路径1
+     */
+    private String picturePathOne;
+
+    /**
+     * 图片路径2
+     */
+    private String picturePathTwo;
+
+    /**
+     * 图片路径3
+     */
+    private String picturePathThree;
+
+    /**
+     * 图片路径4
+     */
+    private String picturePathFour;
+
+    /**
+     * 图片路径5
+     */
+    private String picturePathFive;
+
+    /**
+     * 图片路径6
+     */
+    private String picturePathSix;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 撤单,1 启用)
+     */
+    private Integer status;
+
+    /**
+     * 记录ID
+     */
+    private Integer inspectionRecordId;
+    /**
+     *
+     */
+    private String teamName;
+
+    /**
+     * 站点名称
+     */
+    private String siteName;
+
+    /**
+     * 处理人
+     */
+    private List<PatrolInspectorsVo> patrolInspectorsVo;
+
+    /**
+     * 设备
+     */
+    private List<PatrolInspectionDeviceDetailsVo> patrolInspectionDeviceDetailsVo;
+
+
+    private List<PatrolRouteContentListVo> patrolRouteContentListVoList;
+
+}

+ 128 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/DevopsWorkOrderListVo.java

@@ -0,0 +1,128 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DevopsWorkOrderListVo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 运维工单id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 工单描述
+     */
+    private String workOrder;
+
+    /**
+     * 站点id
+     */
+    private Integer siteId;
+
+    /**
+     * 工单类型(1 安全评测,2 检修,3 抢修,4 其他,5 保养,6 停电维护,7 巡检)
+     */
+    private Integer workOrderType;
+
+    /**
+     * 期待完成时间
+     */
+    private Date expectedCompletionTime;
+
+    /**
+     * 班组id
+     */
+    private Integer teamId;
+
+    /**
+     * 生成方式(1 巡检计划,2 现场提交,3 后台新增,4 其他)
+     */
+    private Integer generationMode;
+
+    /**
+     * 工单状态(1 待抢单,2 待指派,3 待接单,4 待处理,5 待关单,6 已完成)
+     */
+    private Integer workOrderStatus;
+
+    /**
+     * 图片路径1
+     */
+    private String picturePathOne;
+
+    /**
+     * 图片路径2
+     */
+    private String picturePathTwo;
+
+    /**
+     * 图片路径3
+     */
+    private String picturePathThree;
+
+    /**
+     * 图片路径4
+     */
+    private String picturePathFour;
+
+    /**
+     * 图片路径5
+     */
+    private String picturePathFive;
+
+    /**
+     * 图片路径6
+     */
+    private String picturePathSix;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 撤单,1 启用)
+     */
+    private Integer status;
+
+    /**
+     * 记录ID
+     */
+    private Integer inspectionRecordId;
+
+    /**
+     * 站点名称
+     */
+    private String siteName;
+
+    /**
+     * 处理人
+     */
+    private String inspectorsName;
+
+}

+ 131 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/DevopsWorkOrderVo.java

@@ -0,0 +1,131 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DevopsWorkOrderVo {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 运维工单id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 工单描述
+     */
+    private String workOrder;
+
+    /**
+     * 站点id
+     */
+    private Integer siteId;
+
+    /**
+     * 工单类型(1 安全评测,2 检修,3 抢修,4 其他,5 保养,6 停电维护,7 巡检)
+     */
+    private Integer workOrderType;
+
+    /**
+     * 期待完成时间
+     */
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
+    private Date expectedCompletionTime;
+
+    /**
+     * 班组id
+     */
+    private Integer teamId;
+
+    /**
+     * 生成方式(1 巡检计划,2 现场提交,3 后台新增,4 其他)
+     */
+    private Integer generationMode;
+
+    /**
+     * 工单状态(1 待抢单,2 待指派,3 待接单,4 待处理,5 待关单,6 已完成)
+     */
+    private Integer workOrderStatus;
+
+    /**
+     * 图片路径1
+     */
+    private String picturePathOne;
+
+    /**
+     * 图片路径2
+     */
+    private String picturePathTwo;
+
+    /**
+     * 图片路径3
+     */
+    private String picturePathThree;
+
+    /**
+     * 图片路径4
+     */
+    private String picturePathFour;
+
+    /**
+     * 图片路径5
+     */
+    private String picturePathFive;
+
+    /**
+     * 图片路径6
+     */
+    private String picturePathSix;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 撤单,1 启用)
+     */
+    private Integer status;
+
+    /**
+     * 记录ID
+     */
+    private Integer inspectionRecordId;
+
+    /**
+     * 巡检设备id
+     */
+    private String inspectionDeviceId;
+
+    /**
+     * 人员id
+     */
+    private String inspectorsId;
+
+
+}

+ 108 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/PatrolInspectionDeviceDetailsVo.java

@@ -0,0 +1,108 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class PatrolInspectionDeviceDetailsVo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 巡检设备id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 巡检设备名称
+     */
+    private String inspectionDeviceName;
+
+    /**
+     * 所属站点id
+     */
+    private Integer siteId;
+
+    /**
+     * 设备类型id
+     */
+    private Integer deviceTypeId;
+
+    /**
+     * 厂家id
+     */
+    private Integer manufacturerId;
+
+    /**
+     * 巡检周期
+     */
+    private Integer inspectionPeriod;
+
+    /**
+     * 保养周期
+     */
+    private Integer maintenancePeriod;
+
+    /**
+     * 安装时间
+     */
+    private Date installDate;
+
+    /**
+     * 投运日期
+     */
+    private Date operationDate;
+
+    /**
+     * 二维码地址
+     */
+    private String qrCodeAddress;
+
+    /**
+     * 设备图片地址
+     */
+    private String devicePictureAddress;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 未启用,1 启用)
+     */
+    private Integer status;
+
+    /**
+     * 工单ID
+     */
+    private Integer workOrderId;
+
+}

+ 77 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/PatrolInspectorsVo.java

@@ -0,0 +1,77 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class PatrolInspectorsVo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 姓名
+     */
+    private String inspectorsName;
+
+    /**
+     * 手机号
+     */
+    private String inspectorsPhone;
+
+    /**
+     * 所属用户id
+     */
+    private Integer userId;
+
+    /**
+     * 角色(预留字段)
+     */
+    private String inspectRole;
+
+    /**
+     * 职能(预留字段)
+     */
+    private Integer function;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 启用状态(0 未启用,1 启用)
+     */
+    private Integer status;
+
+
+    /**
+     * 工单ID
+     */
+    private Integer workOrderId;
+
+
+}

+ 16 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/DevopsOrderDeviceMapper.java

@@ -0,0 +1,16 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.model.DevopsOrderDevice;
+import com.bizmatics.common.mvc.base.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+public interface DevopsOrderDeviceMapper extends CrudMapper<DevopsOrderDevice> {
+
+}

+ 16 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/DevopsOrderInspectorsMapper.java

@@ -0,0 +1,16 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.model.DevopsOrderInspectors;
+import com.bizmatics.common.mvc.base.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+public interface DevopsOrderInspectorsMapper extends CrudMapper<DevopsOrderInspectors> {
+
+}

+ 35 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/DevopsWorkOrderMapper.java

@@ -0,0 +1,35 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.common.mvc.base.CrudMapper;
+import com.bizmatics.model.DevopsWorkOrder;
+import com.bizmatics.model.vo.*;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+public interface DevopsWorkOrderMapper extends CrudMapper<DevopsWorkOrder> {
+
+    List<DevopsWorkOrderListVo> devopsWorkOrderList(@Param("generationMode") Integer generationMode,
+                                                    @Param("workOrderStatus") Integer workOrderStatus,
+                                                    @Param("siteId") Integer siteId,
+                                                    @Param("workOrderId") List workOrderId,
+                                                    @Param("startCurrent") Integer startCurrent,
+                                                    @Param("current") Integer current);
+
+    List<PatrolInspectorsVo> patrolInspectorsVoList(@Param("workOrderId") Integer workOrderId);
+
+    List<PatrolInspectionDeviceDetailsVo> patrolInspectionDeviceList(@Param("workOrderId") Integer workOrderId);
+
+    List<DevopsWorkOrderDetailsVo> devopsWorkOrderDetails(@Param("id") Integer id);
+
+    List<PatrolRouteContentListVo> patrolRouteContentList(@Param("siteId") Integer siteId,
+                                                          @Param("inspectionSchemeId") Integer inspectionSchemeId);
+}

+ 1 - 1
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/SiteMapper.java

@@ -28,7 +28,7 @@ public interface SiteMapper extends CrudMapper<Site> {
                     @Param("name") String name);
 
 
-    List<Device> idList(@Param("userId") Integer userId,
+    List<Site> idList(@Param("userId") Integer userId,
                         @Param("name") String name);
 
     List<SiteList> Sitelist(@Param("userId") Integer userId,

+ 15 - 0
fiveep-persistence/src/main/resources/mapper/mysql/DevopsOrderDeviceMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.bizmatics.persistence.mapper.DevopsOrderDeviceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.DevopsOrderDevice">
+        <id column="id" property="id" />
+        <result column="work_order_id" property="workOrderId" />
+        <result column="inspection_device_id" property="inspectionDeviceId" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+        <result column="status" property="status" />
+    </resultMap>
+
+</mapper>

+ 15 - 0
fiveep-persistence/src/main/resources/mapper/mysql/DevopsOrderInspectorsMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.bizmatics.persistence.mapper.DevopsOrderInspectorsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.DevopsOrderInspectors">
+        <id column="id" property="id" />
+        <result column="work_order_id" property="workOrderId" />
+        <result column="inspectors_id" property="inspectorsId" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+        <result column="status" property="status" />
+    </resultMap>
+
+</mapper>

+ 124 - 0
fiveep-persistence/src/main/resources/mapper/mysql/DevopsWorkOrderMapper.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.bizmatics.persistence.mapper.DevopsWorkOrderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.DevopsWorkOrder">
+        <id column="id" property="id" />
+        <result column="work_order" property="workOrder" />
+        <result column="site_id" property="siteId" />
+        <result column="work_order_type" property="workOrderType" />
+        <result column="expected_completion_time" property="expectedCompletionTime" />
+        <result column="team_id" property="teamId" />
+        <result column="generation_mode" property="generationMode" />
+        <result column="work_order_status" property="workOrderStatus" />
+        <result column="picture_path_one" property="picturePathOne" />
+        <result column="picture_path_two" property="picturePathTwo" />
+        <result column="picture_path_three" property="picturePathThree" />
+        <result column="picture_path_four" property="picturePathFour" />
+        <result column="picture_path_five" property="picturePathFive" />
+        <result column="picture_path_six" property="picturePathSix" />
+        <result column="creator" property="creator" />
+        <result column="create_time" property="createTime" />
+        <result column="status" property="status" />
+        <result column="inspection_record_id" property="inspectionRecordId" />
+    </resultMap>
+    <select id="devopsWorkOrderList" resultType="com.bizmatics.model.vo.DevopsWorkOrderListVo">
+        SELECT
+        a.*,
+        c.site_name
+        FROM
+        devops_work_order AS a
+        JOIN site AS c ON a.site_id = c.id
+        <where>
+            a.status = 1
+            <if test="generationMode != null and generationMode != 0">
+                AND a.generation_mode = #{generationMode}
+            </if>
+            <if test="workOrderStatus != null and workOrderStatus != 0">
+                AND a.work_order_status = #{siteId}
+            </if>
+            <if test="siteId != null and siteId !=0">
+                AND a.site_id = #{siteId}
+            </if>
+            <if test="workOrderId != null and workOrderId.size() &gt; 0" >
+                AND a.id IN
+                <foreach item="item"  collection="workOrderId" open="(" separator="," close=")">
+                    #{item.workOrderId}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        a.id DESC
+        <if test="startCurrent != null and current !=0">
+            LIMIT #{startCurrent},
+            #{current}
+        </if>
+    </select>
+
+    <select id="patrolInspectorsVoList" resultType="com.bizmatics.model.vo.PatrolInspectorsVo">
+        SELECT
+        b.*,a.work_order_id
+        FROM
+        devops_order_inspectors AS a
+        JOIN patrol_inspectors AS b ON a.inspectors_id = b.id
+        <where>
+            a.status = 1
+            <if test="workOrderId != null and workOrderId != 0">
+               and a.work_order_id = #{workOrderId}
+            </if>
+        </where>
+    </select>
+
+    <select id="patrolInspectionDeviceList" resultType="com.bizmatics.model.vo.PatrolInspectionDeviceDetailsVo">
+        SELECT
+        b.*, a.work_order_id
+        FROM
+        devops_order_device AS a
+        JOIN patrol_inspection_device AS b ON a.inspection_device_id = b.id
+        <where>
+            a.status = 1
+            <if test="workOrderId != null and workOrderId != 0">
+               and a.work_order_id = #{workOrderId}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="devopsWorkOrderDetails" resultType="com.bizmatics.model.vo.DevopsWorkOrderDetailsVo">
+        SELECT
+        a.*, b.team_name,
+        c.site_name
+        FROM
+        devops_work_order AS a
+        JOIN patrol_inspection_team AS b ON a.team_id = b.id
+        JOIN site AS c ON a.site_id = c.id
+        <where>
+            a.status = 1
+            <if test="id != null and id != 0">
+                AND a.id = #{id}
+            </if>
+        </where>
+    </select>
+
+    <select id="patrolRouteContentList" resultType="com.bizmatics.model.vo.PatrolRouteContentListVo">
+        SELECT
+        a.*, c.inspection_content_name,d.inspection_device_name
+        FROM
+        patrol_route_content AS a
+        JOIN patrol_inspection_route AS b ON a.inspection_route_id = b.id
+        JOIN patrol_inspection_content AS c ON a.inspection_content_id = c.id
+        join patrol_inspection_device as d on c.inspection_device_id=d.id
+        <where>
+            a.status = 1
+            AND b.status = 1
+            <if test="inspectionSchemeId != null and inspectionSchemeId != 0">
+                AND b.inspection_scheme_id = #{inspectionSchemeId}
+            </if>
+            <if test="siteId != null and siteId != 0">
+                and b.site_id = #{siteId}
+            </if>
+        </where>
+    </select>
+
+</mapper>

+ 1 - 1
fiveep-persistence/src/main/resources/mapper/mysql/PatrolInspectionRecordMapper.xml

@@ -46,7 +46,7 @@
         </where>
         ORDER BY
         a.id DESC
-        <if test="startCurrent != 0 and current !=0">
+        <if test="startCurrent != null and current !=0">
             LIMIT #{startCurrent},
             #{current}
         </if>

+ 1 - 1
fiveep-persistence/src/main/resources/mapper/mysql/SiteMapper.xml

@@ -122,7 +122,7 @@
         </where>
     </select>
 
-    <select id="idList" resultType="java.lang.Integer">
+    <select id="idList" resultType="com.bizmatics.model.Site">
         select s.id
         from user_site as us
         inner join site as s

+ 16 - 0
fiveep-service/src/main/java/com/bizmatics/service/DevopsOrderDeviceService.java

@@ -0,0 +1,16 @@
+package com.bizmatics.service;
+
+import com.bizmatics.model.DevopsOrderDevice;
+import com.bizmatics.common.mvc.base.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+public interface DevopsOrderDeviceService extends CrudService<DevopsOrderDevice> {
+
+}

+ 16 - 0
fiveep-service/src/main/java/com/bizmatics/service/DevopsOrderInspectorsService.java

@@ -0,0 +1,16 @@
+package com.bizmatics.service;
+
+import com.bizmatics.model.DevopsOrderInspectors;
+import com.bizmatics.common.mvc.base.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+public interface DevopsOrderInspectorsService extends CrudService<DevopsOrderInspectors> {
+
+}

+ 34 - 0
fiveep-service/src/main/java/com/bizmatics/service/DevopsWorkOrderService.java

@@ -0,0 +1,34 @@
+package com.bizmatics.service;
+
+import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.model.DevopsWorkOrder;
+import com.bizmatics.common.mvc.base.CrudService;
+import com.bizmatics.model.vo.DevopsWorkOrderDetailsVo;
+import com.bizmatics.model.vo.DevopsWorkOrderListVo;
+import com.bizmatics.model.vo.DevopsWorkOrderVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+public interface DevopsWorkOrderService extends CrudService<DevopsWorkOrder> {
+    void devopsWorkOrderAdd(DevopsWorkOrderVo devopsWorkOrderVo);
+
+    void devopsWorkOrderUpdate(DevopsWorkOrderVo devopsWorkOrderVo);
+
+    void devopsWorkOrderDel(Integer id);
+
+    void devopsOrderDeviceDel(Integer inspectionDeviceId);
+
+    void devopsOrderInspectorsDel(Integer inspectorsId);
+
+    CommonPage<DevopsWorkOrderListVo> devopsWorkOrderList(Integer generationMode, Integer workOrderStatus,Integer siteId, Integer inspectorsId, Integer size, Integer current);
+
+    List<DevopsWorkOrderDetailsVo> devopsWorkOrderDetails(Integer id);
+}

+ 20 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/DevopsOrderDeviceServiceImpl.java

@@ -0,0 +1,20 @@
+package com.bizmatics.service.impl;
+
+import com.bizmatics.model.DevopsOrderDevice;
+import com.bizmatics.persistence.mapper.DevopsOrderDeviceMapper;
+import com.bizmatics.service.DevopsOrderDeviceService;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Service
+public class DevopsOrderDeviceServiceImpl extends AbstractCrudService<DevopsOrderDeviceMapper, DevopsOrderDevice> implements DevopsOrderDeviceService {
+
+}

+ 20 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/DevopsOrderInspectorsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.bizmatics.service.impl;
+
+import com.bizmatics.model.DevopsOrderInspectors;
+import com.bizmatics.persistence.mapper.DevopsOrderInspectorsMapper;
+import com.bizmatics.service.DevopsOrderInspectorsService;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Service
+public class DevopsOrderInspectorsServiceImpl extends AbstractCrudService<DevopsOrderInspectorsMapper, DevopsOrderInspectors> implements DevopsOrderInspectorsService {
+
+}

+ 259 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/DevopsWorkOrderServiceImpl.java

@@ -0,0 +1,259 @@
+package com.bizmatics.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.bizmatics.common.core.bean.CommonPage;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import com.bizmatics.model.*;
+import com.bizmatics.model.system.SysUser;
+import com.bizmatics.model.vo.*;
+import com.bizmatics.persistence.mapper.DevopsWorkOrderMapper;
+import com.bizmatics.service.*;
+import com.bizmatics.service.util.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 运维管理-工单管理
+ *
+ * @author ya
+ * @since 2021-10-21
+ */
+@Service
+public class DevopsWorkOrderServiceImpl extends AbstractCrudService<DevopsWorkOrderMapper, DevopsWorkOrder> implements DevopsWorkOrderService {
+
+    @Autowired
+    private DevopsOrderDeviceService devopsOrderDeviceService;
+
+    @Autowired
+    private DevopsOrderInspectorsService devopsOrderInspectorsService;
+    @Autowired
+    private PatrolInspectionRecordService patrolInspectionRecordService;
+
+    @Autowired
+    private PatrolRecordRouteService patrolRecordRouteService;
+
+    @Override
+    public void devopsWorkOrderAdd(DevopsWorkOrderVo devopsWorkOrderVo) {
+        DevopsWorkOrder devopsWorkOrder = new DevopsWorkOrder();
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        devopsWorkOrder.setWorkOrder(devopsWorkOrderVo.getWorkOrder());
+        devopsWorkOrder.setSiteId(devopsWorkOrderVo.getSiteId());
+        devopsWorkOrder.setWorkOrderType(devopsWorkOrderVo.getWorkOrderType());
+        devopsWorkOrder.setExpectedCompletionTime(devopsWorkOrderVo.getExpectedCompletionTime());
+        devopsWorkOrder.setTeamId(devopsWorkOrderVo.getTeamId());
+        devopsWorkOrder.setGenerationMode(devopsWorkOrderVo.getGenerationMode());
+        devopsWorkOrder.setWorkOrderStatus(3);
+        devopsWorkOrder.setPicturePathOne(devopsWorkOrderVo.getPicturePathOne());
+        devopsWorkOrder.setPicturePathTwo(devopsWorkOrderVo.getPicturePathTwo());
+        devopsWorkOrder.setPicturePathThree(devopsWorkOrderVo.getPicturePathThree());
+        devopsWorkOrder.setPicturePathFour(devopsWorkOrderVo.getPicturePathFour());
+        devopsWorkOrder.setPicturePathFive(devopsWorkOrderVo.getPicturePathFive());
+        devopsWorkOrder.setPicturePathSix(devopsWorkOrderVo.getPicturePathSix());
+        devopsWorkOrder.setCreator(user.getUserName());
+        devopsWorkOrder.setCreateTime(new Date());
+        devopsWorkOrder.setStatus(1);
+        this.save(devopsWorkOrder);
+        Integer devopsWorkOrderId = devopsWorkOrder.getId();
+        String[] inspectionDeviceIdList = devopsWorkOrderVo.getInspectionDeviceId().split(",");
+        String[] inspectorsIdList = devopsWorkOrderVo.getInspectorsId().split(",");
+        for (int i = 0; i < inspectionDeviceIdList.length; i++) {
+            DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
+            devopsOrderDevice.setWorkOrderId(devopsWorkOrderId);
+            devopsOrderDevice.setInspectionDeviceId(Integer.parseInt(inspectionDeviceIdList[i]));
+            devopsOrderDevice.setCreator(user.getUserName());
+            devopsOrderDevice.setCreateTime(new Date());
+            devopsOrderDevice.setStatus(1);
+            devopsOrderDeviceService.save(devopsOrderDevice);
+        }
+
+        for (int i = 0; i < inspectorsIdList.length; i++) {
+            DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
+            devopsOrderInspectors.setWorkOrderId(devopsWorkOrderId);
+            devopsOrderInspectors.setInspectorsId(Integer.parseInt(inspectorsIdList[i]));
+            devopsOrderInspectors.setCreator(user.getUserName());
+            devopsOrderInspectors.setCreateTime(new Date());
+            devopsOrderInspectors.setStatus(1);
+            devopsOrderInspectorsService.save(devopsOrderInspectors);
+        }
+    }
+
+    @Override
+    public void devopsWorkOrderUpdate(DevopsWorkOrderVo devopsWorkOrderVo) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        DevopsWorkOrder devopsWorkOrder = new DevopsWorkOrder();
+        devopsWorkOrder.setId(devopsWorkOrderVo.getId());
+        devopsWorkOrder.setWorkOrder(devopsWorkOrderVo.getWorkOrder());
+        devopsWorkOrder.setWorkOrderType(devopsWorkOrderVo.getWorkOrderType());
+        devopsWorkOrder.setExpectedCompletionTime(devopsWorkOrderVo.getExpectedCompletionTime());
+        devopsWorkOrder.setTeamId(devopsWorkOrderVo.getTeamId());
+        devopsWorkOrder.setGenerationMode(devopsWorkOrderVo.getGenerationMode());
+        devopsWorkOrder.setWorkOrderStatus(devopsWorkOrderVo.getWorkOrderStatus());
+        devopsWorkOrder.setPicturePathOne(devopsWorkOrderVo.getPicturePathOne());
+        devopsWorkOrder.setPicturePathTwo(devopsWorkOrderVo.getPicturePathTwo());
+        devopsWorkOrder.setPicturePathThree(devopsWorkOrderVo.getPicturePathThree());
+        devopsWorkOrder.setPicturePathFour(devopsWorkOrderVo.getPicturePathFour());
+        devopsWorkOrder.setPicturePathFive(devopsWorkOrderVo.getPicturePathFive());
+        devopsWorkOrder.setPicturePathSix(devopsWorkOrderVo.getPicturePathSix());
+        this.updateById(devopsWorkOrder);
+        Integer devopsWorkOrderId = devopsWorkOrder.getId();
+        String[] inspectionDeviceIdList = devopsWorkOrderVo.getInspectionDeviceId().split(",");
+        String[] inspectorsIdList = devopsWorkOrderVo.getInspectorsId().split(",");
+        if (inspectionDeviceIdList.length > 0) {
+            for (int i = 0; i < inspectionDeviceIdList.length; i++) {
+                DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
+                devopsOrderDevice.setWorkOrderId(devopsWorkOrderId);
+                devopsOrderDevice.setInspectionDeviceId(Integer.parseInt(inspectionDeviceIdList[i]));
+                devopsOrderDevice.setCreator(user.getUserName());
+                devopsOrderDevice.setCreateTime(new Date());
+                devopsOrderDevice.setStatus(1);
+                devopsOrderDeviceService.save(devopsOrderDevice);
+            }
+        }
+        if (inspectorsIdList.length > 0) {
+            for (int i = 0; i < inspectorsIdList.length; i++) {
+                DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
+                devopsOrderInspectors.setWorkOrderId(devopsWorkOrderId);
+                devopsOrderInspectors.setInspectorsId(Integer.parseInt(inspectorsIdList[i]));
+                devopsOrderInspectors.setCreator(user.getUserName());
+                devopsOrderInspectors.setCreateTime(new Date());
+                devopsOrderInspectors.setStatus(1);
+                devopsOrderInspectorsService.save(devopsOrderInspectors);
+            }
+        }
+    }
+
+    @Override
+    public void devopsWorkOrderDel(Integer id) {
+        DevopsWorkOrder devopsWorkOrder = new DevopsWorkOrder();
+        devopsWorkOrder.setId(id);
+        devopsWorkOrder.setStatus(0);
+        this.updateById(devopsWorkOrder);
+        //巡检设备
+        LambdaQueryWrapper<DevopsOrderDevice> queryWrapperOne = Wrappers.lambdaQuery();
+        queryWrapperOne.eq(DevopsOrderDevice::getWorkOrderId, id).eq(DevopsOrderDevice::getStatus, 1);
+        List<DevopsOrderDevice> devopsOrderDeviceList = devopsOrderDeviceService.list(queryWrapperOne);
+
+        //人员
+        LambdaQueryWrapper<DevopsOrderInspectors> queryWrapperTwo = Wrappers.lambdaQuery();
+        queryWrapperTwo.eq(DevopsOrderInspectors::getWorkOrderId, id).eq(DevopsOrderInspectors::getStatus, 1);
+        List<DevopsOrderInspectors> devopsOrderInspectorsList = devopsOrderInspectorsService.list(queryWrapperTwo);
+
+        if (devopsOrderDeviceList.size() > 0) {
+            for (int i = 0; i < devopsOrderDeviceList.size(); i++) {
+                DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
+                devopsOrderDevice.setId(devopsOrderDeviceList.get(i).getId());
+                devopsOrderDevice.setStatus(0);
+                devopsOrderDeviceService.updateById(devopsOrderDevice);
+            }
+        }
+
+        if (devopsOrderInspectorsList.size() > 0) {
+            for (int i = 0; i < devopsOrderInspectorsList.size(); i++) {
+                DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
+                devopsOrderInspectors.setId(devopsOrderInspectorsList.get(i).getId());
+                devopsOrderInspectors.setStatus(0);
+                devopsOrderInspectorsService.updateById(devopsOrderInspectors);
+            }
+        }
+    }
+
+    @Override
+    public void devopsOrderDeviceDel(Integer inspectionDeviceId) {
+        DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
+        devopsOrderDevice.setId(inspectionDeviceId);
+        devopsOrderDevice.setStatus(0);
+        devopsOrderDeviceService.updateById(devopsOrderDevice);
+    }
+
+    @Override
+    public void devopsOrderInspectorsDel(Integer inspectorsId) {
+        DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
+        devopsOrderInspectors.setId(inspectorsId);
+        devopsOrderInspectors.setStatus(0);
+        devopsOrderInspectorsService.updateById(devopsOrderInspectors);
+    }
+
+
+    @Override
+    public CommonPage<DevopsWorkOrderListVo> devopsWorkOrderList(Integer generationMode, Integer workOrderStatus, Integer siteId, Integer inspectorsId, Integer size, Integer current) {
+        List<DevopsWorkOrderListVo> devopsWorkOrderListTwo = new ArrayList<>();
+        LambdaQueryWrapper<DevopsOrderInspectors> queryWrapperTwo = Wrappers.lambdaQuery();
+        queryWrapperTwo.eq(DevopsOrderInspectors::getInspectorsId, inspectorsId).eq(DevopsOrderInspectors::getStatus, 1);
+        List<DevopsOrderInspectors> devopsOrderInspectorsList = devopsOrderInspectorsService.list(queryWrapperTwo);
+
+        List<DevopsWorkOrderListVo> devopsWorkOrderListOne = baseMapper.devopsWorkOrderList(generationMode, workOrderStatus, siteId, devopsOrderInspectorsList, null, 0);
+        int total = 0;
+        if (devopsWorkOrderListOne.size() > 0) {
+            total = devopsWorkOrderListOne.size();
+        }
+        int startCurrent = (size - 1) * current;
+        List<DevopsWorkOrderListVo> devopsWorkOrderList = baseMapper.devopsWorkOrderList(generationMode, workOrderStatus, siteId, devopsOrderInspectorsList, startCurrent, current);
+        if (devopsWorkOrderList.size() > 0) {
+            List<PatrolInspectorsVo> patrolInspectorsVoList = baseMapper.patrolInspectorsVoList(0);
+            for (int i = 0; i < devopsWorkOrderList.size(); i++) {
+                String inspectorsNameList = "";
+                for (int j = 0; j < patrolInspectorsVoList.size(); j++) {
+                    if (devopsWorkOrderList.get(i).getId() == patrolInspectorsVoList.get(j).getWorkOrderId()) {
+                        inspectorsNameList = inspectorsNameList + patrolInspectorsVoList.get(j).getInspectorsName() + ",";
+                    }
+                    if (patrolInspectorsVoList.size() - 1 == j) {
+                        inspectorsNameList = inspectorsNameList.substring(0, inspectorsNameList.length() - 1);
+                    }
+                }
+                devopsWorkOrderList.get(i).setInspectorsName(inspectorsNameList);
+//                devopsWorkOrderListTwo.set(i, devopsWorkOrderList.get(i));
+            }
+        }
+
+        return new CommonPage<>(devopsWorkOrderList, total, current, size);
+    }
+
+
+    @Override
+    public List<DevopsWorkOrderDetailsVo> devopsWorkOrderDetails(Integer id) {
+        List<PatrolRouteContentListVo> patrolRouteContentListVoList = new ArrayList<>();
+        List<DevopsWorkOrderDetailsVo> devopsWorkOrderList = baseMapper.devopsWorkOrderDetails(id);
+        List<PatrolInspectorsVo> patrolInspectorsList = baseMapper.patrolInspectorsVoList(id);
+        List<PatrolInspectionDeviceDetailsVo> PatrolInspectionDeviceList = baseMapper.patrolInspectionDeviceList(id);
+        devopsWorkOrderList.get(0).setPatrolInspectionDeviceDetailsVo(PatrolInspectionDeviceList);
+        devopsWorkOrderList.get(0).setPatrolInspectorsVo(patrolInspectorsList);
+
+        if(devopsWorkOrderList.get(0).getGenerationMode()==1){
+            LambdaQueryWrapper<PatrolInspectionRecord> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(PatrolInspectionRecord::getId, devopsWorkOrderList.get(0).getInspectionRecordId());
+            List<PatrolInspectionRecord> patrolInspectionRecordList = patrolInspectionRecordService.list(queryWrapper);
+            List<PatrolRouteContentListVo> patrolRouteContentList = baseMapper.patrolRouteContentList(patrolInspectionRecordList.get(0).getSiteId(), patrolInspectionRecordList.get(0).getInspectionSchemeId());
+            for (int i= 0; i<patrolRouteContentList.size();i++){
+                LambdaQueryWrapper<PatrolRecordRoute> queryWrapperTwo = Wrappers.lambdaQuery();
+                queryWrapperTwo.eq(PatrolRecordRoute::getInspectionRecordId, patrolInspectionRecordList.get(0).getId())
+                        .eq(PatrolRecordRoute::getInspectionContentId,patrolRouteContentList.get(i).getInspectionContentId());
+                List<PatrolRecordRoute> patrolInspectionSchemeList = patrolRecordRouteService.list(queryWrapperTwo);
+
+                PatrolRouteContentListVo patrolRouteContentListVo = new PatrolRouteContentListVo();
+                patrolRouteContentListVo.setId(patrolRouteContentList.get(i).getId());
+                patrolRouteContentListVo.setInspectionRouteId(patrolRouteContentList.get(i).getInspectionRouteId());
+                patrolRouteContentListVo.setInspectionContentId(patrolRouteContentList.get(i).getInspectionContentId());
+                patrolRouteContentListVo.setInspectionContentName(patrolRouteContentList.get(i).getInspectionContentName());
+                patrolRouteContentListVo.setInspectionDeviceName(patrolRouteContentList.get(i).getInspectionDeviceName());
+                patrolRouteContentListVo.setCreator(patrolRouteContentList.get(i).getCreator());
+                patrolRouteContentListVo.setCreateTime(patrolRouteContentList.get(i).getCreateTime());
+                patrolRouteContentListVo.setStatus(patrolRouteContentList.get(i).getStatus());
+                patrolRouteContentListVo.setPatrolRecordRoute(patrolInspectionSchemeList);
+                List inspectionDeviceAbnormalList = new ArrayList();
+                for (int j = 0;j<patrolInspectionSchemeList.size();j++){
+                    inspectionDeviceAbnormalList.add(patrolInspectionSchemeList.get(j).getStatus());
+                }
+                patrolRouteContentListVoList.add(patrolRouteContentListVo);
+            }
+
+        }
+        devopsWorkOrderList.get(0).setPatrolRouteContentListVoList(patrolRouteContentListVoList);
+
+        return devopsWorkOrderList;
+    }
+}