diff --git a/src/main/java/org/energy/modules/inspection/controller/InspectionRouteController.java b/src/main/java/org/energy/modules/inspection/controller/InspectionRouteController.java
new file mode 100644
index 0000000..cf70f6a
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/controller/InspectionRouteController.java
@@ -0,0 +1,223 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.energy.modules.inspection.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dayu.daf.core.log.annotation.ApiLog;
+import com.dayu.daf.core.tool.constant.DafConstant;
+import com.xkcoding.http.util.StringUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import com.dayu.daf.core.mp.support.Condition;
+import com.dayu.daf.core.mp.support.Query;
+import com.dayu.daf.core.tool.api.R;
+import com.dayu.daf.core.tool.utils.Func;
+import lombok.SneakyThrows;
+import org.apache.commons.codec.Charsets;
+import org.energy.modules.inspection.excel.InspectionRouteExcel;
+import org.energy.modules.leger.entity.EquipmentLedger;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestParam;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.energy.modules.inspection.entity.InspectionRoute;
+import org.energy.modules.inspection.vo.InspectionRouteVO;
+import org.energy.modules.inspection.service.IInspectionRouteService;
+import com.dayu.daf.core.boot.ctrl.DafController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 巡检路线 控制器
+ *
+ * @author Daf
+ * @since 2024-07-10
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/inspection/inspectionRoute")
+@Api(value = "巡检路线", tags = "巡检路线接口")
+public class InspectionRouteController extends DafController {
+
+ private IInspectionRouteService inspectionRouteService;
+
+ /**
+ * 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @ApiOperation(value = "详情", notes = "传入inspectionRoute")
+ public R detail(InspectionRoute inspectionRoute) {
+ InspectionRoute detail = inspectionRouteService.getOne(Condition.getQueryWrapper(inspectionRoute));
+ return R.data(detail);
+ }
+
+ /**
+ * 分页 巡检路线
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @ApiOperation(value = "分页", notes = "传入inspectionRoute")
+ public R> list(InspectionRoute inspectionRoute, Query query) {
+ QueryWrapper qw = new QueryWrapper<>();
+ qw.orderByAsc("route_no");
+ if (StringUtil.isNotEmpty(inspectionRoute.getRouteNo())) {
+ qw.lambda().like(InspectionRoute::getRouteNo, inspectionRoute.getRouteNo());
+ }
+ if (StringUtil.isNotEmpty(inspectionRoute.getRouteName())) {
+ qw.lambda().like(InspectionRoute::getRouteName, inspectionRoute.getRouteName());
+ }
+ if (null != inspectionRoute.getStations()) {
+ qw.lambda().eq(InspectionRoute::getStations, inspectionRoute.getStations());
+ }
+ if (StringUtil.isNotEmpty(inspectionRoute.getType())) {
+ qw.lambda().like(InspectionRoute::getType, inspectionRoute.getType());
+ }
+ if (null != inspectionRoute.getIstatus()) {
+ qw.lambda().eq(InspectionRoute::getIstatus, inspectionRoute.getIstatus());
+ }
+ IPage pages = inspectionRouteService.page(Condition.getPage(query), qw);
+ return R.data(pages);
+ }
+
+ /**
+ * 自定义分页 巡检路线
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @ApiOperation(value = "分页", notes = "传入inspectionRoute")
+ public R> page(InspectionRouteVO inspectionRoute, Query query) {
+ IPage pages = inspectionRouteService.selectInspectionRoutePage(Condition.getPage(query), inspectionRoute);
+ return R.data(pages);
+ }
+
+ /**
+ * 新增 巡检路线
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @ApiOperation(value = "新增", notes = "传入inspectionRoute")
+ public R save(@Valid @RequestBody InspectionRoute inspectionRoute) {
+ return R.status(inspectionRouteService.save(inspectionRoute));
+ }
+
+ /**
+ * 修改 巡检路线
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @ApiOperation(value = "修改", notes = "传入inspectionRoute")
+ public R update(@Valid @RequestBody InspectionRoute inspectionRoute) {
+ return R.status(inspectionRouteService.updateById(inspectionRoute));
+ }
+
+ /**
+ * 新增或修改 巡检路线
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @ApiOperation(value = "新增或修改", notes = "传入inspectionRoute")
+ public R submit(@Valid @RequestBody InspectionRoute inspectionRoute) {
+ return R.status(inspectionRouteService.saveOrUpdate(inspectionRoute));
+ }
+
+
+ /**
+ * 删除 巡检路线
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @ApiOperation(value = "逻辑删除", notes = "传入ids")
+ public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(inspectionRouteService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+
+ /**
+ * 生效
+ */
+ @PostMapping("/takeEffect")
+ @ApiOperationSupport(order = 8)
+ @ApiOperation(value = "生效", notes = "传入ids")
+ public R takeEffect(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+ return this.updateInspectionRoute(1,ids);
+ }
+
+ /**
+ * 失效
+ */
+ @PostMapping("/lapse")
+ @ApiOperationSupport(order = 9)
+ @ApiOperation(value = "失效", notes = "传入ids")
+ public R lapse(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+ return this.updateInspectionRoute(0,ids);
+ }
+
+ /**
+ * 生效OR失效
+ */
+ public R updateInspectionRoute(Integer status, String ids) {
+ List list = new ArrayList<>();
+ for (String id : ids.split(",")) {
+ InspectionRoute inspectionRoute = new InspectionRoute();
+ inspectionRoute.setId(Long.parseLong(id));
+ inspectionRoute.setIstatus(status);
+ list.add(inspectionRoute);
+ }
+ return R.status(inspectionRouteService.updateBatchById(list));
+ }
+
+
+ /**
+ * 导出
+ */
+ @SneakyThrows
+ @GetMapping("export")
+ @ApiOperationSupport(order = 10)
+ @ApiOperation(value = "导出", notes = "传入")
+ @ApiLog
+ public void exportInspectionRoute(@ApiIgnore @RequestParam Map entity, HttpServletResponse response) {
+ if (entity.containsKey("stations_equal")) {
+ entity.put("stations_equal", Integer.parseInt((String) entity.get("stations_equal")));
+ }
+ if (entity.containsKey("istatus_equal")) {
+ entity.put("istatus_equal", Integer.parseInt((String) entity.get("istatus_equal")));
+ }
+ QueryWrapper queryWrapper = Condition.getQueryWrapper(entity, InspectionRoute.class);
+ queryWrapper.lambda().eq(InspectionRoute::getIsDeleted, DafConstant.DB_NOT_DELETED);
+ queryWrapper.orderByAsc("route_no");
+
+ List list = inspectionRouteService.export(queryWrapper);
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding(Charsets.UTF_8.name());
+ String fileName = URLEncoder.encode("巡检路线数据导出", Charsets.UTF_8.name());
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ EasyExcel.write(response.getOutputStream(), InspectionRouteExcel.class).sheet("巡检路线").doWrite(list);
+ }
+
+}
diff --git a/src/main/java/org/energy/modules/inspection/dto/InspectionRouteDTO.java b/src/main/java/org/energy/modules/inspection/dto/InspectionRouteDTO.java
new file mode 100644
index 0000000..0b3f333
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/dto/InspectionRouteDTO.java
@@ -0,0 +1,18 @@
+package org.energy.modules.inspection.dto;
+
+import org.energy.modules.inspection.entity.InspectionRoute;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 巡检路线数据传输对象实体类
+ *
+ * @author Daf
+ * @since 2024-07-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class InspectionRouteDTO extends InspectionRoute {
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/energy/modules/inspection/entity/InspectionRoute.java b/src/main/java/org/energy/modules/inspection/entity/InspectionRoute.java
new file mode 100644
index 0000000..8d05f92
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/entity/InspectionRoute.java
@@ -0,0 +1,71 @@
+package org.energy.modules.inspection.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dayu.daf.core.mp.base.BaseEntity;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 巡检路线实体类
+ *
+ * @author Daf
+ * @since 2024-07-10
+ */
+@Data
+@TableName("i_inspection_route")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "InspectionRoute对象", description = "巡检路线")
+public class InspectionRoute extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+ /**
+ * 路线编号
+ */
+ @ApiModelProperty(value = "路线编号")
+ private String routeNo;
+ /**
+ * 路线名称
+ */
+ @ApiModelProperty(value = "路线名称")
+ private String routeName;
+ /**
+ * 场站
+ */
+ @ApiModelProperty(value = "场站")
+ private Integer stations;
+ /**
+ * 类型
+ */
+ @ApiModelProperty(value = "类型")
+ private String type;
+ /**
+ * 巡检状态
+ */
+ @ApiModelProperty(value = "巡检状态")
+ private Integer istatus;
+ /**
+ * 维护工厂
+ */
+ @ApiModelProperty(value = "维护工厂")
+ private String factory;
+ /**
+ * 取消原因
+ */
+ @ApiModelProperty(value = "取消原因")
+ private String cancelReason;
+
+
+}
diff --git a/src/main/java/org/energy/modules/inspection/excel/InspectionRouteExcel.java b/src/main/java/org/energy/modules/inspection/excel/InspectionRouteExcel.java
new file mode 100644
index 0000000..1a59383
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/excel/InspectionRouteExcel.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.energy.modules.inspection.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * EquipmentLedge model export
+ * @author edwong
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(16)
+public class InspectionRouteExcel implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @ColumnWidth(20)
+ @ExcelProperty(value = "路线编号")
+ private String routeNo;
+
+ @ColumnWidth(15)
+ @ExcelProperty(value = "路线名称")
+ private String routeName;
+
+ @ColumnWidth(15)
+ @ExcelProperty(value = "场站")
+ private String stationsName;
+
+ @ColumnWidth(15)
+ @ExcelProperty(value = "类型")
+ private String type;
+
+ @ColumnWidth(15)
+ @ExcelProperty(value = "巡检状态")
+ private String istatusName;
+
+ @ColumnWidth(15)
+ @ExcelProperty(value = "维护工厂")
+ private String factory;
+
+ @ColumnWidth(15)
+ @ExcelProperty(value = "取消原因")
+ private String cancelReason;
+
+}
diff --git a/src/main/java/org/energy/modules/inspection/mapper/InspectionRouteMapper.java b/src/main/java/org/energy/modules/inspection/mapper/InspectionRouteMapper.java
new file mode 100644
index 0000000..f0fd7f8
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/mapper/InspectionRouteMapper.java
@@ -0,0 +1,31 @@
+package org.energy.modules.inspection.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import org.apache.ibatis.annotations.Param;
+import org.energy.modules.inspection.entity.InspectionRoute;
+import org.energy.modules.inspection.excel.InspectionRouteExcel;
+import org.energy.modules.inspection.vo.InspectionRouteVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * 巡检路线 Mapper 接口
+ *
+ * @author Daf
+ * @since 2024-07-10
+ */
+public interface InspectionRouteMapper extends BaseMapper {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param inspectionRoute
+ * @return
+ */
+ List selectInspectionRoutePage(IPage page, InspectionRouteVO inspectionRoute);
+
+ List exportData(@Param("ew") Wrapper queryWrapper);
+}
diff --git a/src/main/java/org/energy/modules/inspection/mapper/InspectionRouteMapper.xml b/src/main/java/org/energy/modules/inspection/mapper/InspectionRouteMapper.xml
new file mode 100644
index 0000000..3220385
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/mapper/InspectionRouteMapper.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select * from i_inspection_route where is_deleted = 0
+
+
+
+ SELECT route_no, route_name, type, factory, cancel_reason
+ ,CASE
+ WHEN stations = '1' THEN '景和光伏'
+ WHEN stations = '2' THEN '北沙一光伏'
+ WHEN stations = '3' THEN '北沙二光伏'
+ WHEN stations = '4' THEN '达坂城风电一场'
+ ELSE ''
+ END AS stations_name
+ ,CASE
+ WHEN istatus = '1' THEN '已生效'
+ WHEN istatus = '0' THEN '未生效'
+ ELSE ''
+ END AS istatus_name
+ FROM i_inspection_route ${ew.customSqlSegment}
+
+
+
diff --git a/src/main/java/org/energy/modules/inspection/service/IInspectionRouteService.java b/src/main/java/org/energy/modules/inspection/service/IInspectionRouteService.java
new file mode 100644
index 0000000..ee5bff3
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/service/IInspectionRouteService.java
@@ -0,0 +1,36 @@
+package org.energy.modules.inspection.service;
+
+import org.energy.modules.inspection.entity.InspectionRoute;
+import org.energy.modules.inspection.vo.InspectionRouteVO;
+import com.dayu.daf.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import org.energy.modules.inspection.excel.InspectionRouteExcel;
+
+import java.util.List;
+
+/**
+ * 巡检路线 服务类
+ *
+ * @author Daf
+ * @since 2024-07-10
+ */
+public interface IInspectionRouteService extends BaseService {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param inspectionRoute
+ * @return
+ */
+ IPage selectInspectionRoutePage(IPage page, InspectionRouteVO inspectionRoute);
+
+ /**
+ * 获取导出数据
+ *
+ * @param queryWrapper
+ * @return
+ */
+ List export(Wrapper queryWrapper);
+}
diff --git a/src/main/java/org/energy/modules/inspection/service/impl/InspectionRouteServiceImpl.java b/src/main/java/org/energy/modules/inspection/service/impl/InspectionRouteServiceImpl.java
new file mode 100644
index 0000000..3966456
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/service/impl/InspectionRouteServiceImpl.java
@@ -0,0 +1,35 @@
+package org.energy.modules.inspection.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import org.energy.modules.inspection.entity.InspectionRoute;
+import org.energy.modules.inspection.excel.InspectionRouteExcel;
+import org.energy.modules.inspection.vo.InspectionRouteVO;
+import org.energy.modules.inspection.mapper.InspectionRouteMapper;
+import org.energy.modules.inspection.service.IInspectionRouteService;
+import com.dayu.daf.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * 巡检路线 服务实现类
+ *
+ * @author Daf
+ * @since 2024-07-10
+ */
+@Service
+public class InspectionRouteServiceImpl extends BaseServiceImpl implements IInspectionRouteService {
+
+ @Override
+ public IPage selectInspectionRoutePage(IPage page, InspectionRouteVO inspectionRoute) {
+ return page.setRecords(baseMapper.selectInspectionRoutePage(page, inspectionRoute));
+ }
+
+ @Override
+ public List export(Wrapper queryWrapper) {
+ List list = baseMapper.exportData(queryWrapper);
+ return list;
+ }
+
+}
diff --git a/src/main/java/org/energy/modules/inspection/vo/InspectionRouteVO.java b/src/main/java/org/energy/modules/inspection/vo/InspectionRouteVO.java
new file mode 100644
index 0000000..784134a
--- /dev/null
+++ b/src/main/java/org/energy/modules/inspection/vo/InspectionRouteVO.java
@@ -0,0 +1,20 @@
+package org.energy.modules.inspection.vo;
+
+import org.energy.modules.inspection.entity.InspectionRoute;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 巡检路线视图实体类
+ *
+ * @author Daf
+ * @since 2024-07-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "InspectionRouteVO对象", description = "巡检路线")
+public class InspectionRouteVO extends InspectionRoute {
+ private static final long serialVersionUID = 1L;
+
+}