From 4c22f9b27a60c766bc1ce53e42b2c3190d01ed9c Mon Sep 17 00:00:00 2001 From: yangzhicheng Date: Fri, 12 Jul 2024 14:15:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=A7=84=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/InspectionPlanController.java | 257 ++++++++++++++++++ .../inspection/dto/InspectionPlanDTO.java | 18 ++ .../inspection/entity/InspectionPlan.java | 86 ++++++ .../inspection/excel/InspectionPlanExcel.java | 77 ++++++ .../mapper/InspectionPlanMapper.java | 47 ++++ .../mapper/InspectionPlanMapper.xml | 61 +++++ .../service/IInspectionPlanService.java | 55 ++++ .../impl/InspectionPlanServiceImpl.java | 54 ++++ .../inspection/vo/InspectionPlanVO.java | 20 ++ 9 files changed, 675 insertions(+) create mode 100644 src/main/java/org/energy/modules/inspection/controller/InspectionPlanController.java create mode 100644 src/main/java/org/energy/modules/inspection/dto/InspectionPlanDTO.java create mode 100644 src/main/java/org/energy/modules/inspection/entity/InspectionPlan.java create mode 100644 src/main/java/org/energy/modules/inspection/excel/InspectionPlanExcel.java create mode 100644 src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.java create mode 100644 src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.xml create mode 100644 src/main/java/org/energy/modules/inspection/service/IInspectionPlanService.java create mode 100644 src/main/java/org/energy/modules/inspection/service/impl/InspectionPlanServiceImpl.java create mode 100644 src/main/java/org/energy/modules/inspection/vo/InspectionPlanVO.java diff --git a/src/main/java/org/energy/modules/inspection/controller/InspectionPlanController.java b/src/main/java/org/energy/modules/inspection/controller/InspectionPlanController.java new file mode 100644 index 0000000..4c295ca --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/controller/InspectionPlanController.java @@ -0,0 +1,257 @@ +/** + * 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.InspectionPlanExcel; +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.InspectionPlan; +import org.energy.modules.inspection.vo.InspectionPlanVO; +import org.energy.modules.inspection.service.IInspectionPlanService; +import com.dayu.daf.core.boot.ctrl.DafController; +import springfox.documentation.annotations.ApiIgnore; + +import java.net.URLEncoder; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 巡检计划 控制器 + * + * @author Daf + * @since 2024-07-12 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/inspection/inspectionplan") +@Api(value = "巡检计划", tags = "巡检计划接口") +public class InspectionPlanController extends DafController { + + private IInspectionPlanService inspectionPlanService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "详情", notes = "传入inspectionPlan") + public R detail(InspectionPlan inspectionPlan) { + InspectionPlan detail = inspectionPlanService.getOne(Condition.getQueryWrapper(inspectionPlan)); + return R.data(detail); + } + + /** + * 分页 巡检计划 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入inspectionPlan") + public R> list(InspectionPlan inspectionPlan, Query query) { + QueryWrapper qw = new QueryWrapper<>(); + qw.orderByAsc("plan_no"); + if (StringUtil.isNotEmpty(inspectionPlan.getPlanNo())) { + qw.lambda().like(InspectionPlan::getPlanNo, inspectionPlan.getPlanNo()); + } + if (StringUtil.isNotEmpty(inspectionPlan.getPlanName())) { + qw.lambda().like(InspectionPlan::getPlanName, inspectionPlan.getPlanName()); + } + if (null != inspectionPlan.getStation()) { + qw.lambda().eq(InspectionPlan::getStation, inspectionPlan.getStation()); + } + if (StringUtil.isNotEmpty(inspectionPlan.getPeriodType())) { + qw.lambda().like(InspectionPlan::getPeriodType, inspectionPlan.getPeriodType()); + } + if (null != inspectionPlan.getPlanStatus()) { + qw.lambda().eq(InspectionPlan::getPlanStatus, inspectionPlan.getPlanStatus()); + } + IPage pages = inspectionPlanService.page(Condition.getPage(query), qw); + return R.data(pages); + } + + /** + * 自定义分页 巡检计划 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "分页", notes = "传入inspectionPlan") + public R> page(InspectionPlanVO inspectionPlan, Query query) { + IPage pages = inspectionPlanService.selectInspectionPlanPage(Condition.getPage(query), inspectionPlan); + return R.data(pages); + } + + /** + * 新增 巡检计划 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入inspectionPlan") + public R save(@Valid @RequestBody InspectionPlan inspectionPlan) { + return R.status(inspectionPlanService.save(inspectionPlan)); + } + + /** + * 修改 巡检计划 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入inspectionPlan") + public R update(@Valid @RequestBody InspectionPlan inspectionPlan) { + return R.status(inspectionPlanService.updateById(inspectionPlan)); + } + + /** + * 新增或修改 巡检计划 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入inspectionPlan") + public R submit(@Valid @RequestBody InspectionPlan inspectionPlan) { + inspectionPlan.setPlanStatus(1); + String date = LocalDate.now().toString().replace("-",""); + String maxNo = inspectionPlanService.getMaxNo("'%" + date + "%'"); + int number; + if (StringUtil.isNotEmpty(maxNo)){ + number = Integer.parseInt(maxNo.substring(9)); + number++; + }else{ + number = 1; + } + String numFormat = String.format("%04d", number); + String no = "J" + date + numFormat; + inspectionPlan.setPlanNo(no); + return R.status(inspectionPlanService.saveOrUpdate(inspectionPlan)); + } + + + /** + * 删除 巡检计划 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(inspectionPlanService.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.updateInspectionPlan(1, "", ids); + } + + /** + * 失效 + */ + @PostMapping("/lapse") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "失效", notes = "传入ids") + public R lapse(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, @ApiParam(value = "取消原因", required = true) @RequestParam String reason) { + return this.updateInspectionPlan(0, reason, ids); + } + + /** + * 生效OR失效 + */ + public R updateInspectionPlan(Integer status, String reason, String ids) { + List list = new ArrayList<>(); + for (String id : ids.split(",")) { + InspectionPlan inspectionPlan = new InspectionPlan(); + inspectionPlan.setId(Long.parseLong(id)); + inspectionPlan.setCancelReason(reason); + inspectionPlan.setPlanStatus(status); + list.add(inspectionPlan); + } + return R.status(inspectionPlanService.updateBatchById(list)); + } + + + /** + * 导出 + */ + @SneakyThrows + @GetMapping("export") + @ApiOperationSupport(order = 10) + @ApiOperation(value = "导出", notes = "传入") + @ApiLog + public void exportInspectionRoute(@ApiIgnore @RequestParam Map entity, HttpServletResponse response) { + if (entity.containsKey("station_equal")) { + entity.put("station_equal", Integer.parseInt((String) entity.get("station_equal"))); + } + if (entity.containsKey("planStatus_equal")) { + entity.put("planStatus_equal", Integer.parseInt((String) entity.get("planStatus_equal"))); + } + QueryWrapper queryWrapper = Condition.getQueryWrapper(entity, InspectionPlan.class); + queryWrapper.lambda().eq(InspectionPlan::getIsDeleted, DafConstant.DB_NOT_DELETED); + queryWrapper.orderByAsc("plan_no"); + + List list = inspectionPlanService.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(), InspectionPlanExcel.class).sheet("巡检计划").doWrite(list); + } + + /** + * 获取路线编号 + */ + @GetMapping("/getPlanList") + @ApiOperationSupport(order = 11) + @ApiOperation(value = "获取路线编号", notes = "获取路线编号") + public R> getPlanList() { + List routeList = inspectionPlanService.getPlanList(); + return R.data(routeList); + } + + /** + * 获取路线编号 + */ + @GetMapping("/getDetail") + @ApiOperationSupport(order = 12) + @ApiOperation(value = "获取路线信息", notes = "获取路线信息") + public R getDetail(String planNo) { + InspectionPlan detail = inspectionPlanService.getDetail("'" + planNo + "'"); + return R.data(detail); + } +} diff --git a/src/main/java/org/energy/modules/inspection/dto/InspectionPlanDTO.java b/src/main/java/org/energy/modules/inspection/dto/InspectionPlanDTO.java new file mode 100644 index 0000000..a3053c1 --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/dto/InspectionPlanDTO.java @@ -0,0 +1,18 @@ +package org.energy.modules.inspection.dto; + +import org.energy.modules.inspection.entity.InspectionPlan; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 巡检计划数据传输对象实体类 + * + * @author Daf + * @since 2024-07-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class InspectionPlanDTO extends InspectionPlan { + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/energy/modules/inspection/entity/InspectionPlan.java b/src/main/java/org/energy/modules/inspection/entity/InspectionPlan.java new file mode 100644 index 0000000..c020a70 --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/entity/InspectionPlan.java @@ -0,0 +1,86 @@ +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-12 + */ +@Data +@TableName("i_inspection_plan") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "InspectionPlan对象", description = "巡检计划") +public class InspectionPlan extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "主键") + private Long id; + /** + * 计划编号 + */ + @ApiModelProperty(value = "计划编号") + private String planNo; + /** + * 计划名称 + */ + @ApiModelProperty(value = "计划名称") + private String planName; + /** + * 场站 + */ + @ApiModelProperty(value = "场站") + private Integer station; + /** + * 计划类型 + */ + @ApiModelProperty(value = "计划类型") + private String planType; + /** + * 周期类型 + */ + @ApiModelProperty(value = "周期类型") + private String periodType; + /** + * 周期值 + */ + @ApiModelProperty(value = "周期值") + private String periodValue; + /** + * 计划起始时间 + */ + @ApiModelProperty(value = "计划起始时间") + private String startTime; + /** + * 计划终了时间 + */ + @ApiModelProperty(value = "计划终了时间") + private String endTime; + /** + * 计划状态 + */ + @ApiModelProperty(value = "计划状态") + private Integer planStatus; + /** + * 取消原因 + */ + @ApiModelProperty(value = "取消原因") + private String cancelReason; + + +} diff --git a/src/main/java/org/energy/modules/inspection/excel/InspectionPlanExcel.java b/src/main/java/org/energy/modules/inspection/excel/InspectionPlanExcel.java new file mode 100644 index 0000000..9543508 --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/excel/InspectionPlanExcel.java @@ -0,0 +1,77 @@ +/** + * 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 InspectionPlanExcel implements Serializable { + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty(value = "计划编号") + private String planNo; + + @ColumnWidth(15) + @ExcelProperty(value = "计划名称") + private String planNme; + + @ColumnWidth(15) + @ExcelProperty(value = "场站") + private String stationName; + + @ColumnWidth(15) + @ExcelProperty(value = "计划类型") + private String planType; + + @ColumnWidth(15) + @ExcelProperty(value = "周期类型") + private String periodType; + + @ColumnWidth(15) + @ExcelProperty(value = "周期值") + private String periodValue; + + @ColumnWidth(15) + @ExcelProperty(value = "计划起始时间") + private String startTime; + + @ColumnWidth(15) + @ExcelProperty(value = "计划终了时间") + private String endTime; + + @ColumnWidth(15) + @ExcelProperty(value = "状态") + private String planStatusName; + + @ColumnWidth(15) + @ExcelProperty(value = "取消原因") + private String cancelReason; + +} diff --git a/src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.java b/src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.java new file mode 100644 index 0000000..031bce7 --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.java @@ -0,0 +1,47 @@ +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.InspectionPlan; +import org.energy.modules.inspection.entity.InspectionRoute; +import org.energy.modules.inspection.excel.InspectionPlanExcel; +import org.energy.modules.inspection.vo.InspectionPlanVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 巡检计划 Mapper 接口 + * + * @author Daf + * @since 2024-07-12 + */ +public interface InspectionPlanMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param inspectionPlan + * @return + */ + List selectInspectionPlanPage(IPage page, InspectionPlanVO inspectionPlan); + + List exportData(@Param("ew") Wrapper queryWrapper); + + /** + * 获取路线编号 + */ + List getPlanList(); + + /** + * 获取最大编号 + */ + String getMaxNo(String date); + + /** + * 获取路线的信息 + */ + InspectionPlan getDetail(String planNo); + +} diff --git a/src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.xml b/src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.xml new file mode 100644 index 0000000..d63ab76 --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/mapper/InspectionPlanMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/energy/modules/inspection/service/IInspectionPlanService.java b/src/main/java/org/energy/modules/inspection/service/IInspectionPlanService.java new file mode 100644 index 0000000..a2de7c1 --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/service/IInspectionPlanService.java @@ -0,0 +1,55 @@ +package org.energy.modules.inspection.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.energy.modules.inspection.entity.InspectionPlan; +import org.energy.modules.inspection.entity.InspectionRoute; +import org.energy.modules.inspection.excel.InspectionPlanExcel; +import org.energy.modules.inspection.vo.InspectionPlanVO; +import com.dayu.daf.core.mp.base.BaseService; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +/** + * 巡检计划 服务类 + * + * @author Daf + * @since 2024-07-12 + */ +public interface IInspectionPlanService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param inspectionPlan + * @return + */ + IPage selectInspectionPlanPage(IPage page, InspectionPlanVO inspectionPlan); + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List export(Wrapper queryWrapper); + + /** + * 获取路线编号 + */ + List getPlanList(); + + /** + * 获取最大任务编号 + * + * @param date + */ + String getMaxNo(String date); + + /** + * 获取路线的信息 + */ + InspectionPlan getDetail(String planNo); + +} diff --git a/src/main/java/org/energy/modules/inspection/service/impl/InspectionPlanServiceImpl.java b/src/main/java/org/energy/modules/inspection/service/impl/InspectionPlanServiceImpl.java new file mode 100644 index 0000000..0124b4c --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/service/impl/InspectionPlanServiceImpl.java @@ -0,0 +1,54 @@ +package org.energy.modules.inspection.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.energy.modules.inspection.entity.InspectionPlan; +import org.energy.modules.inspection.entity.InspectionRoute; +import org.energy.modules.inspection.excel.InspectionPlanExcel; +import org.energy.modules.inspection.vo.InspectionPlanVO; +import org.energy.modules.inspection.mapper.InspectionPlanMapper; +import org.energy.modules.inspection.service.IInspectionPlanService; +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-12 + */ +@Service +public class InspectionPlanServiceImpl extends BaseServiceImpl implements IInspectionPlanService { + + @Override + public IPage selectInspectionPlanPage(IPage page, InspectionPlanVO inspectionPlan) { + return page.setRecords(baseMapper.selectInspectionPlanPage(page, inspectionPlan)); + } + + @Override + public List export(Wrapper queryWrapper) { + List list = baseMapper.exportData(queryWrapper); + return list; + } + + @Override + public List getPlanList() { + List list = baseMapper.getPlanList(); + return list; + } + + @Override + public String getMaxNo(String date){ + String maxNo = baseMapper.getMaxNo(date); + return maxNo; + } + + @Override + public InspectionPlan getDetail(String planNo) { + InspectionPlan detail = baseMapper.getDetail(planNo); + return detail; + } + +} diff --git a/src/main/java/org/energy/modules/inspection/vo/InspectionPlanVO.java b/src/main/java/org/energy/modules/inspection/vo/InspectionPlanVO.java new file mode 100644 index 0000000..1ee3a4e --- /dev/null +++ b/src/main/java/org/energy/modules/inspection/vo/InspectionPlanVO.java @@ -0,0 +1,20 @@ +package org.energy.modules.inspection.vo; + +import org.energy.modules.inspection.entity.InspectionPlan; +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModel; + +/** + * 巡检计划视图实体类 + * + * @author Daf + * @since 2024-07-12 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "InspectionPlanVO对象", description = "巡检计划") +public class InspectionPlanVO extends InspectionPlan { + private static final long serialVersionUID = 1L; + +}