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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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; + +}