From 8978e4dd4da5d2a4d444a6b4d40977a009d64edd Mon Sep 17 00:00:00 2001 From: gjh <1421wake> Date: Mon, 14 Jul 2025 14:27:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=A1=AB=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StationInfoController.java | 8 +++++++ .../demo/service/IStationInfoService.java | 6 +++++ .../service/impl/PlanInfoServiceImpl.java | 24 +++++++++++++++++-- .../service/impl/StationInfoServiceImpl.java | 22 +++++++++++++++++ .../impl/WorkOrderInfoServiceImpl.java | 18 ++++++++++++++ 5 files changed, 76 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/StationInfoController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/StationInfoController.java index da67be1..f3f8f3c 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/StationInfoController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/StationInfoController.java @@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.dromara.demo.domain.vo.RegionVo; +import org.dromara.demo.domain.vo.StationSelectVo; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -118,4 +119,11 @@ public class StationInfoController extends BaseController { public R getStationNameById(String stationId) { return R.ok("获取子站名称",stationInfoService.getStationNameById(stationId)); } + + + @GetMapping("/getStationList") + public R< List> getStationList() { + List stationList = stationInfoService.getStationList(); + return R.ok(stationList); + } } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/IStationInfoService.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/IStationInfoService.java index cb22d57..14dbe78 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/IStationInfoService.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/IStationInfoService.java @@ -5,6 +5,7 @@ import org.dromara.demo.domain.vo.StationInfoVo; import org.dromara.demo.domain.bo.StationInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.demo.domain.vo.StationSelectVo; import java.util.Collection; import java.util.List; @@ -70,4 +71,9 @@ public interface IStationInfoService { List getHangzhouRegions(); String getStationNameById(String stationId); + + String getAreaByStationName(String stationName); + + + List getStationList(); } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java index 7dcc866..7f0f493 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/PlanInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.demo.service.impl; +import jakarta.annotation.Resource; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.demo.domain.vo.PlanSelectVo; +import org.dromara.demo.service.IStationInfoService; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.PlanInfoBo; import org.dromara.demo.domain.vo.PlanInfoVo; @@ -31,6 +33,8 @@ public class PlanInfoServiceImpl implements IPlanInfoService { private final PlanInfoMapper baseMapper; + @Resource + private IStationInfoService stationInfoService; /** * 查询计划管理 * @@ -87,12 +91,28 @@ public class PlanInfoServiceImpl implements IPlanInfoService { /** * 新增计划管理 * - * @param bo 计划管理 + * @param bo 管理 * @return 是否新增成功 */ @Override public Boolean insertByBo(PlanInfoBo bo) { + //List ioPersonList = Arrays.asList("电信", "移动","盈力"); + // TODO 计划默认值插入 + String stationName = bo.getStation(); + bo.setStatus("正常"); + bo.setIoCompany("杭州聚光"); + bo.setMonitorCompany("宁波国研"); + bo.setIoPerson("吴昊"); + String area = stationInfoService.getAreaByStationName(stationName); + bo.setArea(area); + // 模拟生成计划编号 + long timeInMillis = System.currentTimeMillis(); + int last6Digits = (int) (timeInMillis % 1000000); // 取后6位毫秒数 + String planNum = new SimpleDateFormat("yyMMdd").format(new Date()) + + String.format("%06d", last6Digits); + bo.setPlanNum(planNum); PlanInfo add = MapstructUtils.convert(bo, PlanInfo.class); + validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -155,7 +175,7 @@ public class PlanInfoServiceImpl implements IPlanInfoService { String monitorType = planInfoVo.getMonitorType(); // 需要拼接: 街道名称 (计划日期,监理类型) 得到rs String rs = String.format("%s (%s, %s)", station, formattedDate, monitorType); - planSelectVo.setLable(rs); + planSelectVo.setLabel(rs); planSelectVo.setValue(planId); list.add(planSelectVo); } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationInfoServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationInfoServiceImpl.java index 7a94400..9a31ac4 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/StationInfoServiceImpl.java @@ -8,7 +8,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.demo.domain.bo.DeviceInfoBo; +import org.dromara.demo.domain.vo.DeviceInfoVo; import org.dromara.demo.domain.vo.RegionVo; +import org.dromara.demo.domain.vo.StationSelectVo; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.StationInfoBo; import org.dromara.demo.domain.vo.StationInfoVo; @@ -163,4 +166,23 @@ public class StationInfoServiceImpl implements IStationInfoService { StationInfo stationInfo = baseMapper.selectById(stationId); return stationInfo.getStation(); } + + @Override + public String getAreaByStationName(String stationName) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(StationInfo::getStation, stationName) + .last("LIMIT 1"); + StationInfo stationInfo = baseMapper.selectOne(qw); + if (stationInfo != null) { + return stationInfo.getArea(); + } + return null; + } + + @Override + public List getStationList() { + List stationInfoVos = this.queryList(new StationInfoBo()); + List values = stationInfoVos.stream().map(StationInfoVo::getStation).distinct().toList(); + return values.stream().map(StationSelectVo::new).toList(); + } } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java index 945aacd..da6d2ab 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/WorkOrderInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.demo.domain.bo.PlanInfoBo; +import org.dromara.demo.domain.vo.PlanInfoVo; import org.dromara.demo.mapper.PlanInfoMapper; import org.springframework.stereotype.Service; import org.dromara.demo.domain.bo.WorkOrderInfoBo; @@ -18,6 +19,8 @@ import org.dromara.demo.domain.WorkOrderInfo; import org.dromara.demo.mapper.WorkOrderInfoMapper; import org.dromara.demo.service.IWorkOrderInfoService; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; @@ -97,6 +100,21 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { */ @Override public Boolean insertByBo(WorkOrderInfoBo bo) { + String planId = bo.getPlanId(); + PlanInfoVo planInfoVo = planInfoService.queryById(planId); + bo.setWorkDate(planInfoVo.getPlanDate()); + bo.setStation(planInfoVo.getStation()); + bo.setStatus(planInfoVo.getStatus()); + bo.setMonitorType(planInfoVo.getMonitorType()); + long timeInMillis = System.currentTimeMillis(); + int last6Digits = (int) (timeInMillis % 1000000); // 后6位毫秒 + + String datePart = new SimpleDateFormat("yyMMdd").format(new Date()); // 日期部分 + String randomPart = String.format("%06d", last6Digits); // 6位时间戳后缀 + String orderNum = "WO-" + datePart +"-" +randomPart; // 拼接前缀 WO- + bo.setOrderNum(orderNum); + System.out.println(orderNum); // 输出示例:WO-250714-382914 + WorkOrderInfo add = MapstructUtils.convert(bo, WorkOrderInfo.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0;