沿程配置表代码提交
This commit is contained in:
parent
e5dcdaf299
commit
ec8ba69d65
@ -13,13 +13,12 @@ import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
|||||||
import com.yfd.platform.qgc_lygk.along.service.IMsAlongBService;
|
import com.yfd.platform.qgc_lygk.along.service.IMsAlongBService;
|
||||||
import com.yfd.platform.qgc_sys.mapcfg.service.IMapmoduleBService;
|
import com.yfd.platform.qgc_sys.mapcfg.service.IMapmoduleBService;
|
||||||
import com.yfd.platform.utils.DataSourceRequestUtil;
|
import com.yfd.platform.utils.DataSourceRequestUtil;
|
||||||
|
import com.yfd.platform.utils.SecurityUtils;
|
||||||
|
import io.lettuce.core.dynamic.annotation.Param;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -66,8 +65,11 @@ public class MsAlongBController {
|
|||||||
if (StrUtil.isBlank(msAlongB.getCode())) {
|
if (StrUtil.isBlank(msAlongB.getCode())) {
|
||||||
throw new BizException("沿程配置编码(code)不能为空.");
|
throw new BizException("沿程配置编码(code)不能为空.");
|
||||||
}
|
}
|
||||||
|
msAlongB.setRecordUser(SecurityUtils.getUserId());
|
||||||
|
//msAlongB.setRecordUser(SecurityUtils.getCurrentUsername());
|
||||||
msAlongBService.saveOrUpdate(msAlongB);
|
msAlongBService.saveOrUpdate(msAlongB);
|
||||||
return ResponseResult.success("保存成功.");
|
return ResponseResult.successData(msAlongB.getId());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/wbsb/GetKendoList")
|
@PostMapping("/wbsb/GetKendoList")
|
||||||
@ -82,4 +84,10 @@ public class MsAlongBController {
|
|||||||
msAlongBService.delelteByIds(ids);
|
msAlongBService.delelteByIds(ids);
|
||||||
return ResponseResult.success("删除成功.");
|
return ResponseResult.success("删除成功.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/noAuth/GetKendoList")
|
||||||
|
@Operation(summary = "查询水电基地流域字典列表")
|
||||||
|
public ResponseResult getWbsbList(@RequestParam String stcd) {
|
||||||
|
return ResponseResult.successData(msAlongBService.getWbsbList(stcd));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package com.yfd.platform.qgc_lygk.along.controller;
|
package com.yfd.platform.qgc_lygk.along.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
@ -7,6 +8,7 @@ import com.yfd.platform.common.exception.BizException;
|
|||||||
import com.yfd.platform.config.ResponseResult;
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
||||||
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetTreeDto;
|
||||||
import com.yfd.platform.qgc_lygk.along.service.IMsAlongDetBService;
|
import com.yfd.platform.qgc_lygk.along.service.IMsAlongDetBService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
@ -16,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 沿程配置明细表控制器
|
* 沿程配置明细表控制器
|
||||||
*
|
*
|
||||||
@ -44,11 +48,11 @@ public class MsAlongDetBController {
|
|||||||
*/
|
*/
|
||||||
@Operation(summary = "保存或修改")
|
@Operation(summary = "保存或修改")
|
||||||
@PostMapping("/save")
|
@PostMapping("/save")
|
||||||
public ResponseResult save(@RequestBody MsAlongDetB msAlongDetB) {
|
public ResponseResult save(@RequestBody List<MsAlongDetTreeDto> treeList) {
|
||||||
if (msAlongDetB == null) {
|
if (CollUtil.isEmpty(treeList)) {
|
||||||
return ResponseResult.error("沿程配置明细信息不能为空.");
|
return ResponseResult.error("数据不能为空.");
|
||||||
}
|
}
|
||||||
msAlongDetBService.saveOrUpdate(msAlongDetB);
|
msAlongDetBService.saveOrUpdateBatchData(treeList);
|
||||||
return ResponseResult.success("保存成功.");
|
return ResponseResult.success("保存成功.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.yfd.platform.qgc_lygk.along.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class MsAlongDetTreeDto {
|
||||||
|
private String id; // 记录ID(更新时传)
|
||||||
|
private String alongId; // 关联主表ID
|
||||||
|
private String stcd; // 断面编码
|
||||||
|
private String sttp; // 类型编码
|
||||||
|
private Integer sort; // 排序
|
||||||
|
private String stnm; // 仅用于显示,不存表
|
||||||
|
private String rstcd; // 仅用于显示,不存表
|
||||||
|
private String parentId; // 前端用,不存表
|
||||||
|
private List<MsAlongDetTreeDto> children; // 子节点
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package com.yfd.platform.qgc_lygk.along.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
@Data
|
||||||
|
public class PowerDto {
|
||||||
|
// 水电水利工程编码
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
// 水电水利工程名称
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
// 水电水利工程名称
|
||||||
|
private String sttp;
|
||||||
|
|
||||||
|
// 主表实体
|
||||||
|
private String sttpCode;
|
||||||
|
|
||||||
|
// 主表实体
|
||||||
|
private String sttpName;
|
||||||
|
|
||||||
|
// 主表实体
|
||||||
|
private String rstcd;
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,7 +2,10 @@ package com.yfd.platform.qgc_lygk.along.mapper;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import com.yfd.platform.qgc_lygk.along.domain.PowerDto;
|
||||||
|
import org.apache.ibatis.annotations.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 沿程配置表 Mapper 接口
|
* 沿程配置表 Mapper 接口
|
||||||
@ -12,4 +15,16 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface MsAlongBMapper extends BaseMapper<MsAlongB> {
|
public interface MsAlongBMapper extends BaseMapper<MsAlongB> {
|
||||||
|
|
||||||
|
@Select("SELECT STCD, STNM, STTP, STTP_CODE, STTP_NAME, RSTCD " +
|
||||||
|
"FROM V_MS_STBPRP_T " +
|
||||||
|
"WHERE RSTCD = #{stcd}")
|
||||||
|
@Results({
|
||||||
|
@Result(column = "STCD", property = "stcd"),
|
||||||
|
@Result(column = "STNM", property = "stnm"),
|
||||||
|
@Result(column = "STTP", property = "sttp"),
|
||||||
|
@Result(column = "STTP_CODE", property = "sttpCode"),
|
||||||
|
@Result(column = "STTP_NAME", property = "sttpName"),
|
||||||
|
@Result(column = "RSTCD", property = "rstcd")
|
||||||
|
})
|
||||||
|
List<PowerDto> getWbsbList(@Param("stcd") String stcd);
|
||||||
}
|
}
|
||||||
@ -2,7 +2,10 @@ package com.yfd.platform.qgc_lygk.along.mapper;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import com.yfd.platform.qgc_lygk.along.domain.PowerDto;
|
||||||
|
import org.apache.ibatis.annotations.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 沿程配置明细表 Mapper 接口
|
* 沿程配置明细表 Mapper 接口
|
||||||
@ -12,4 +15,16 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface MsAlongDetBMapper extends BaseMapper<MsAlongDetB> {
|
public interface MsAlongDetBMapper extends BaseMapper<MsAlongDetB> {
|
||||||
|
|
||||||
|
@Select("SELECT STCD, STNM, STTP, STTP_CODE, STTP_NAME, RSTCD " +
|
||||||
|
"FROM V_MS_STBPRP_T " +
|
||||||
|
"WHERE STCD = #{stcd}")
|
||||||
|
@Results({
|
||||||
|
@Result(column = "STCD", property = "stcd"),
|
||||||
|
@Result(column = "STNM", property = "stnm"),
|
||||||
|
@Result(column = "STTP", property = "sttp"),
|
||||||
|
@Result(column = "STTP_CODE", property = "sttpCode"),
|
||||||
|
@Result(column = "STTP_NAME", property = "sttpName"),
|
||||||
|
@Result(column = "RSTCD", property = "rstcd")
|
||||||
|
})
|
||||||
|
List<PowerDto> getWbsbList(@Param("stcd") String stcd);
|
||||||
}
|
}
|
||||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
||||||
|
import com.yfd.platform.qgc_lygk.along.domain.PowerDto;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -23,6 +24,8 @@ public interface IMsAlongBService extends IService<MsAlongB> {
|
|||||||
|
|
||||||
void delelteByIds(List<String> ids);
|
void delelteByIds(List<String> ids);
|
||||||
|
|
||||||
|
List<PowerDto> getWbsbList(String stcd);
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 保存或更新沿程配置
|
// * 保存或更新沿程配置
|
||||||
// *
|
// *
|
||||||
|
|||||||
@ -3,7 +3,11 @@ package com.yfd.platform.qgc_lygk.along.service;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
||||||
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetTreeDto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 沿程配置明细表 Service 接口
|
* 沿程配置明细表 Service 接口
|
||||||
@ -19,4 +23,6 @@ public interface IMsAlongDetBService extends IService<MsAlongDetB> {
|
|||||||
* @return 数据源结果
|
* @return 数据源结果
|
||||||
*/
|
*/
|
||||||
DataSourceResult<MsAlongDetB> getKendoList(DataSourceRequest dataSourceRequest);
|
DataSourceResult<MsAlongDetB> getKendoList(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
ResponseResult saveOrUpdateBatchData(List<MsAlongDetTreeDto> treeList);
|
||||||
}
|
}
|
||||||
@ -1,20 +1,28 @@
|
|||||||
package com.yfd.platform.qgc_lygk.along.service.impl;
|
package com.yfd.platform.qgc_lygk.along.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.qgc_base.domain.SdRvcdDic;
|
||||||
|
import com.yfd.platform.qgc_base.mapper.SdRvcdDicMapper;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongB;
|
||||||
|
import com.yfd.platform.qgc_lygk.along.domain.PowerDto;
|
||||||
import com.yfd.platform.qgc_lygk.along.mapper.MsAlongBMapper;
|
import com.yfd.platform.qgc_lygk.along.mapper.MsAlongBMapper;
|
||||||
import com.yfd.platform.qgc_lygk.along.service.IMsAlongBService;
|
import com.yfd.platform.qgc_lygk.along.service.IMsAlongBService;
|
||||||
|
import com.yfd.platform.utils.CodeToNameMetadataBo;
|
||||||
import com.yfd.platform.utils.DataSourceRequestUtil;
|
import com.yfd.platform.utils.DataSourceRequestUtil;
|
||||||
|
import com.yfd.platform.utils.DictCodeToNameConverter;
|
||||||
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 沿程配置表 Service 实现类
|
* 沿程配置表 Service 实现类
|
||||||
@ -24,6 +32,11 @@ import java.util.List;
|
|||||||
@Service
|
@Service
|
||||||
public class MsAlongBServiceImpl extends ServiceImpl<MsAlongBMapper, MsAlongB> implements IMsAlongBService {
|
public class MsAlongBServiceImpl extends ServiceImpl<MsAlongBMapper, MsAlongB> implements IMsAlongBService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MsAlongBMapper msAlongBMapper;
|
||||||
|
@Resource
|
||||||
|
private SdRvcdDicMapper sdRvcdDicMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DataSourceResult<MsAlongB> getKendoList(DataSourceRequest dataSourceRequest) {
|
public DataSourceResult<MsAlongB> getKendoList(DataSourceRequest dataSourceRequest) {
|
||||||
// 1. 构建查询条件
|
// 1. 构建查询条件
|
||||||
@ -46,7 +59,29 @@ public class MsAlongBServiceImpl extends ServiceImpl<MsAlongBMapper, MsAlongB> i
|
|||||||
resultPage.setTotal(list.size());
|
resultPage.setTotal(list.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. 构建结果
|
// 4. 循环填充 rvnm
|
||||||
|
List<MsAlongB> records = resultPage.getRecords();
|
||||||
|
if (CollUtil.isNotEmpty(records)) {
|
||||||
|
for (MsAlongB record : records) {
|
||||||
|
String rvcd = record.getRvcd();
|
||||||
|
if (StrUtil.isNotBlank(rvcd)) {
|
||||||
|
// 调用现有 Mapper 方法,查询单个 rvcd
|
||||||
|
List<SdRvcdDic> dictList = sdRvcdDicMapper.selectRegDropdown(null, rvcd);
|
||||||
|
if (CollUtil.isNotEmpty(dictList)) {
|
||||||
|
// 取第一条记录的 RVNM(即 DISPLAY_RVNM)
|
||||||
|
String displayRvnm = dictList.get(0).getRvnm();
|
||||||
|
// 如果只需要末级名称,可截取最后一个 '-' 后的部分
|
||||||
|
// 如果直接使用完整路径,则直接赋值
|
||||||
|
record.setRvnm(displayRvnm);
|
||||||
|
// 若需要末级名称:
|
||||||
|
// int lastDash = displayRvnm.lastIndexOf('-');
|
||||||
|
// record.setRvnm(lastDash > 0 ? displayRvnm.substring(lastDash + 1) : displayRvnm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 5. 构建结果
|
||||||
DataSourceResult<MsAlongB> dataSourceResult = new DataSourceResult<>();
|
DataSourceResult<MsAlongB> dataSourceResult = new DataSourceResult<>();
|
||||||
dataSourceResult.setData(resultPage.getRecords());
|
dataSourceResult.setData(resultPage.getRecords());
|
||||||
dataSourceResult.setTotal(resultPage.getTotal());
|
dataSourceResult.setTotal(resultPage.getTotal());
|
||||||
@ -56,10 +91,16 @@ public class MsAlongBServiceImpl extends ServiceImpl<MsAlongBMapper, MsAlongB> i
|
|||||||
@Override
|
@Override
|
||||||
public void delelteByIds(List<String> ids) {
|
public void delelteByIds(List<String> ids) {
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
this.delelteByIds(Collections.singletonList(id));
|
this.removeById(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PowerDto> getWbsbList(String stcd) {
|
||||||
|
List<PowerDto> powerDtos = msAlongBMapper.getWbsbList(stcd);
|
||||||
|
return powerDtos;
|
||||||
|
}
|
||||||
|
|
||||||
// @Override
|
// @Override
|
||||||
// public boolean saveOrUpdate(MsAlongB msAlongB) {
|
// public boolean saveOrUpdate(MsAlongB msAlongB) {
|
||||||
// super.saveOrUpdate(msAlongB);
|
// super.saveOrUpdate(msAlongB);
|
||||||
|
|||||||
@ -1,23 +1,29 @@
|
|||||||
package com.yfd.platform.qgc_lygk.along.service.impl;
|
package com.yfd.platform.qgc_lygk.along.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
import com.yfd.platform.common.DataSourceLoadOptionsBase;
|
||||||
import com.yfd.platform.common.DataSourceRequest;
|
import com.yfd.platform.common.DataSourceRequest;
|
||||||
import com.yfd.platform.common.DataSourceResult;
|
import com.yfd.platform.common.DataSourceResult;
|
||||||
|
import com.yfd.platform.config.ResponseResult;
|
||||||
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetB;
|
||||||
|
import com.yfd.platform.qgc_lygk.along.domain.MsAlongDetTreeDto;
|
||||||
|
import com.yfd.platform.qgc_lygk.along.domain.PowerDto;
|
||||||
|
import com.yfd.platform.qgc_lygk.along.mapper.MsAlongBMapper;
|
||||||
import com.yfd.platform.qgc_lygk.along.mapper.MsAlongDetBMapper;
|
import com.yfd.platform.qgc_lygk.along.mapper.MsAlongDetBMapper;
|
||||||
import com.yfd.platform.qgc_lygk.along.service.IMsAlongDetBService;
|
import com.yfd.platform.qgc_lygk.along.service.IMsAlongDetBService;
|
||||||
import com.yfd.platform.utils.CodeToNameMetadataBo;
|
import com.yfd.platform.utils.*;
|
||||||
import com.yfd.platform.utils.DataSourceRequestUtil;
|
|
||||||
import com.yfd.platform.utils.DictCodeToNameConverter;
|
|
||||||
import com.yfd.platform.utils.QgcQueryWrapperUtil;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 沿程配置明细表 Service 实现类
|
* 沿程配置明细表 Service 实现类
|
||||||
@ -30,6 +36,9 @@ public class MsAlongDetBServiceImpl extends ServiceImpl<MsAlongDetBMapper, MsAlo
|
|||||||
@Resource
|
@Resource
|
||||||
private DictCodeToNameConverter dictCodeToNameConverter;
|
private DictCodeToNameConverter dictCodeToNameConverter;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MsAlongDetBMapper msAlongDetBMapper;
|
||||||
|
|
||||||
private static final List<CodeToNameMetadataBo> CODE_TO_NAME_META_LIST = new ArrayList<>();
|
private static final List<CodeToNameMetadataBo> CODE_TO_NAME_META_LIST = new ArrayList<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@ -62,10 +71,99 @@ public class MsAlongDetBServiceImpl extends ServiceImpl<MsAlongDetBMapper, MsAlo
|
|||||||
resultPage.setTotal(list.size());
|
resultPage.setTotal(list.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ========== 新增:填充 stnm ==========
|
||||||
|
List<MsAlongDetB> records = resultPage.getRecords();
|
||||||
|
if (CollUtil.isNotEmpty(records)) {
|
||||||
|
for (MsAlongDetB record : records) {
|
||||||
|
String stcd = record.getStcd();
|
||||||
|
if (StrUtil.isNotBlank(stcd)) {
|
||||||
|
// 调用 Mapper 方法查询测站信息
|
||||||
|
List<PowerDto> powerDtos = msAlongDetBMapper.getWbsbList(stcd);
|
||||||
|
if (CollUtil.isNotEmpty(powerDtos)) {
|
||||||
|
// 取第一个结果(通常一个 STCD 只对应一条记录)
|
||||||
|
String stnm = powerDtos.get(0).getStnm();
|
||||||
|
record.setStnm(stnm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 4. 构建结果
|
// 4. 构建结果
|
||||||
DataSourceResult<MsAlongDetB> dataSourceResult = new DataSourceResult<>();
|
DataSourceResult<MsAlongDetB> dataSourceResult = new DataSourceResult<>();
|
||||||
dataSourceResult.setData(resultPage.getRecords());
|
dataSourceResult.setData(resultPage.getRecords());
|
||||||
dataSourceResult.setTotal(resultPage.getTotal());
|
dataSourceResult.setTotal(resultPage.getTotal());
|
||||||
return dataSourceResult;
|
return dataSourceResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResponseResult saveOrUpdateBatchData(List<MsAlongDetTreeDto> treeList) {
|
||||||
|
// 1. 递归扁平化:将树形结构转为平铺的实体列表
|
||||||
|
List<MsAlongDetB> flatList = new ArrayList<>();
|
||||||
|
for (MsAlongDetTreeDto root : treeList) {
|
||||||
|
flattenTree(root, flatList);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flatList.isEmpty()) {
|
||||||
|
return ResponseResult.error("没有有效数据.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 校验每条记录的 alongId 不为空
|
||||||
|
for (MsAlongDetB item : flatList) {
|
||||||
|
if (StrUtil.isBlank(item.getAlongId())) {
|
||||||
|
return ResponseResult.error("沿程配置ID(alongId)不能为空.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 【新增】提取所有不同的 alongId,删除这些主键下的旧明细
|
||||||
|
Set<String> alongIdSet = flatList.stream()
|
||||||
|
.map(MsAlongDetB::getAlongId)
|
||||||
|
.filter(StrUtil::isNotBlank)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(alongIdSet)) {
|
||||||
|
LambdaUpdateWrapper<MsAlongDetB> deleteWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
deleteWrapper.in(MsAlongDetB::getAlongId, alongIdSet)
|
||||||
|
.set(MsAlongDetB::getIsDeleted, "1"); // 逻辑删除标记
|
||||||
|
this.update(deleteWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 插入新数据(注意:需要清空旧记录的主键ID,让数据库自增或雪花ID生成)
|
||||||
|
for (MsAlongDetB item : flatList) {
|
||||||
|
item.setId(null); // 确保都是新增
|
||||||
|
}
|
||||||
|
|
||||||
|
// 5. 批量保存(有则更新,无则新增)
|
||||||
|
this.saveOrUpdateBatch(flatList);
|
||||||
|
|
||||||
|
return ResponseResult.success("保存成功.");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归展开树形节点,将每个节点转换为 MsAlongDetB 实体
|
||||||
|
*/
|
||||||
|
private void flattenTree(MsAlongDetTreeDto node, List<MsAlongDetB> flatList) {
|
||||||
|
// 1. 将当前节点转为实体
|
||||||
|
MsAlongDetB entity = new MsAlongDetB();
|
||||||
|
// 仅复制表中存在的字段
|
||||||
|
entity.setId(node.getId());
|
||||||
|
entity.setAlongId(node.getAlongId());
|
||||||
|
entity.setStcd(node.getStcd());
|
||||||
|
entity.setSttp(node.getSttp());
|
||||||
|
entity.setRstcd(node.getRstcd());
|
||||||
|
entity.setRecordUser(SecurityUtils.getUserId()); // 创建人
|
||||||
|
//entity.setRecordUser(SecurityUtils.getCurrentUsername()); // 创建人
|
||||||
|
if (node.getSort() != null){
|
||||||
|
entity.setSort(String.valueOf(node.getSort())); // 若传了排序
|
||||||
|
}
|
||||||
|
if (StrUtil.isBlank(entity.getId())) {
|
||||||
|
entity.setId(null);
|
||||||
|
}
|
||||||
|
flatList.add(entity);
|
||||||
|
// 2. 递归处理子节点
|
||||||
|
if (CollUtil.isNotEmpty(node.getChildren())) {
|
||||||
|
for (MsAlongDetTreeDto child : node.getChildren()) {
|
||||||
|
flattenTree(child, flatList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -111,9 +111,10 @@ spring:
|
|||||||
matching-strategy: ant_path_matcher
|
matching-strategy: ant_path_matcher
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
host: ${REDIS_HOST:localhost}
|
host: ${REDIS_HOST:172.16.21.142}
|
||||||
port: ${REDIS_PORT:6379}
|
port: ${REDIS_PORT:6379}
|
||||||
password: ${REDIS_PASSWORD:}
|
password: ${REDIS_PASSWORD:zny5678}
|
||||||
|
database: ${REDIS_DATABASE:15}
|
||||||
timeout: 10000ms
|
timeout: 10000ms
|
||||||
lettuce:
|
lettuce:
|
||||||
pool:
|
pool:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user