新疆新需求

This commit is contained in:
wanghao
2025-10-31 10:35:54 +08:00
parent a18166d6a8
commit 15cbd2f085
5 changed files with 159 additions and 70 deletions
@@ -27,6 +27,7 @@ import org.jeecg.common.constant.FillRuleConstant;
import org.jeecg.common.constant.SymbolConstant;
import org.jeecg.common.exception.ExceptionAssertsUtil;
import org.jeecg.common.system.bean.response.BaseUser;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.system.vo.SysDepartGps;
import org.jeecg.common.system.vo.SysDepartModel;
@@ -211,7 +212,7 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
}
//update-end---author:wangshuai ---date:20230216 for[QQYUN-4163]给部门表加个是否有子节点------------
//String s = UUID.randomUUID().toString().replace("-", "");
sysDepart.setId(IdWorker.getIdStr(sysDepart));
// sysDepart.setId(IdWorker.getIdStr(sysDepart));
// 先判断该对象有无父级ID,有则意味着不是最高级,否则意味着是最高级
// 获取父级ID
String parentId = sysDepart.getParentId();
@@ -1532,85 +1533,76 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
@Override
@Transactional
public void departDataInit() {
String filePath = "D:\\Project\\Java\\rk\\文档\\新疆油田-24\\各二级单位坐标位置更正统计9.15.xlsx";
// 获取目前的二级单位数据
List<SysDepart> secondDeparts = departMapper
.selectList(new LambdaQueryWrapper<SysDepart>().eq(SysDepart::getParentId, "1683768826307096578"));
// 二级单位名称分组
Map<String, SysDepart> secondMap = secondDeparts.stream()
.collect(Collectors.toMap(SysDepart::getDepartName, depart -> depart, (existing, replacement) -> existing));
public void departDataInit() {
String filePath = "C:\\Users\\Huawei\\Desktop\\JSON-1761272930886.xlsx";
// 获取目前的三级部门数据
List<SysDepart> threeDeparts = departMapper
.selectList(new LambdaQueryWrapper<SysDepart>()
.in(SysDepart::getParentId, secondDeparts.stream().map(SysDepart::getId).collect(Collectors.toList())));
// 三级部门名称分组
Map<String, SysDepart> threeMap = threeDeparts.stream()
.collect(Collectors.toMap(SysDepart::getDepartName, depart -> depart, (existing, replacement) -> existing));
// 获取目前的四级部门数据
List<SysDepart> fourDeparts = departMapper
.selectList(new LambdaQueryWrapper<SysDepart>()
.in(SysDepart::getParentId, threeDeparts.stream().map(SysDepart::getId).collect(Collectors.toList())));
// 三级部门名称分组
Map<String, SysDepart> fourMap = fourDeparts.stream()
.collect(Collectors.toMap(SysDepart::getDepartName, depart -> depart, (existing, replacement) -> existing));
List<SysDepart> secondDepartList = new ArrayList<>();
List<SysDepart> threeDepartList = new ArrayList<>();
List<SysDepart> fourDepartList = new ArrayList<>();
// 2
List<SysDepart> twoDeparts = new ArrayList<>();
// 3
List<SysDepart> threeDeparts = new ArrayList<>();
// 4
List<SysDepart> fourDeparts = new ArrayList<>();
// 5
List<SysDepart> fiveDeparts = new ArrayList<>();
// 6
List<SysDepart> sixDeparts = new ArrayList<>();
try (FileInputStream file = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(file)) {
// 获取第一个工作表
XSSFSheet sheet = workbook.getSheetAt(0);
// 从第二行开始(索引为1
for (int i = 2; i <= sheet.getLastRowNum(); i++) {
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
XSSFRow row = sheet.getRow(i);
if (row != null) {
// 获取第一个单元格(索引0)的数据 二级单位名称
// 获取第一个单元格(索引0)的数据 层级
XSSFCell firstCell = row.getCell(0);
String firstCellValue = firstCell != null ? getCellValue(firstCell) : "[空]";
String level = firstCell != null ? getCellValue(firstCell) : "[空]";
// 获取第二个单元格(索引1)的数据 三级部门名称
XSSFCell secondCell = row.getCell(1);
String secondCellValue = secondCell != null ? getCellValue(secondCell) : "[空]";
// 获取第二个单元格(索引1)的数据 名称
XSSFCell oneCell = row.getCell(1);
String name = oneCell != null ? getCellValue(oneCell) : "[空]";
// 获取第三个单元格(索引1)的数据 经度
XSSFCell threeCell = row.getCell(2);
String threeCellValue = secondCell != null ? getCellValue(threeCell) : "[空]";
// 获取第三个单元格(索引1)的数据 id
XSSFCell secondCell = row.getCell(2);
String unitId = secondCell != null ? getCellValue(secondCell) : "[空]";
// 获取第四个单元格(索引1)的数据 经度
XSSFCell fourCell = row.getCell(3);
String fourCellValue = secondCell != null ? getCellValue(fourCell) : "[空]";
// 获取第四个单元格(索引1)的数据 上级id
XSSFCell threeCell = row.getCell(3);
String parentUnitId = threeCell != null ? getCellValue(threeCell) : "[空]";
if (StrUtil.isNotBlank(firstCellValue)) {
SysDepart depart = secondMap.get(firstCellValue);
if (depart == null) {
// 现有不存在 需添加
SysDepart newDepart = new SysDepart();
newDepart.setDepartName(firstCellValue);
newDepart.setParentId("1683768826307096578");
newDepart.setOrgCategory("2");
newDepart.setOrgType("2");
this.saveDepartData(newDepart,GlobalUtils.getLoginUser().getUsername());
if (null != newDepart.getId()){
SysDepartGps departGps = new SysDepartGps();
departGps.setDepartId(newDepart.getId());
String run = converter.run(threeCellValue + "-" + fourCellValue);
System.out.println(run);
// // 经度
// departGps.setLng();
// // 纬度
// departGps.setLat();
// 获取第五个单元格(索引1)的数据 code
XSSFCell fourCell = row.getCell(4);
String unitCode = threeCell != null ? getCellValue(fourCell) : "[空]";
}
}
// 判断当前几级单位
long numDepart = level.chars()
.filter(c -> c == '|')
.count();
SysDepart depart = new SysDepart();
depart.setId(unitCode);
depart.setDepartName(name);
depart.setDepartNameEn(unitId);
depart.setParentId(parentUnitId);
depart.setDepartOrder(0);
depart.setOrgCategory("2");
depart.setOrgClass("1");
depart.setCreateBy(GlobalUtils.getLoginUser().getUsername());
depart.setStatus("1");
if (numDepart == 1){
twoDeparts.add(depart);
}
if (numDepart == 2){
threeDeparts.add(depart);
}
if (numDepart == 3){
fourDeparts.add(depart);
}
if (numDepart == 4){
fiveDeparts.add(depart);
}
if (numDepart == 5){
sixDeparts.add(depart);
}
}
}
@@ -1620,6 +1612,88 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
System.out.println("读取Excel文件失败: " + e.getMessage());
}
List<SysDepart> sysDeparts = departMapper.selectList(new LambdaQueryWrapper<>());
// 2
// for (SysDepart twoDepart : twoDeparts) {
// boolean exists = sysDeparts.stream()
// .anyMatch(sysDepart -> twoDepart.getDepartNameEn().equals(sysDepart.getDepartNameEn()));
//
// if (exists) {
// System.out.println("已添加过");
// } else {
// this.saveDepartData(twoDepart, twoDepart.getCreateBy());
// }
// }
//3
// for (SysDepart threeDepart : threeDeparts) {
// boolean exists = sysDeparts.stream()
// .anyMatch(sysDepart -> threeDepart.getDepartNameEn().equals(sysDepart.getDepartNameEn()));
//
// if (exists) {
// System.out.println("已添加过");
// } else {
// SysDepart depart = departMapper.selectOne(new LambdaQueryWrapper<SysDepart>()
// .eq(SysDepart::getDepartNameEn, threeDepart.getParentId()));
// if (depart != null) {
// threeDepart.setParentId(depart.getId());
// }
// this.saveDepartData(threeDepart, threeDepart.getCreateBy());
// }
// }
//
// //4
// for (SysDepart fourDepart : fourDeparts) {
// boolean exists = sysDeparts.stream()
// .anyMatch(sysDepart -> fourDepart.getDepartNameEn().equals(sysDepart.getDepartNameEn()));
//
// if (exists) {
// System.out.println("已添加过");
// } else {
// SysDepart depart = departMapper.selectOne(new LambdaQueryWrapper<SysDepart>()
// .eq(SysDepart::getDepartNameEn, fourDepart.getParentId()));
// if (depart != null) {
// fourDepart.setParentId(depart.getId());
// }
// this.saveDepartData(fourDepart, fourDepart.getCreateBy());
// }
// }
//
// //5
// for (SysDepart fiveDepart : fiveDeparts) {
// boolean exists = sysDeparts.stream()
// .anyMatch(sysDepart -> fiveDepart.getDepartNameEn().equals(sysDepart.getDepartNameEn()));
//
// if (exists) {
// System.out.println("已添加过");
// } else {
// SysDepart depart = departMapper.selectOne(new LambdaQueryWrapper<SysDepart>()
// .eq(SysDepart::getDepartNameEn, fiveDepart.getParentId()));
// if (depart != null) {
// fiveDepart.setParentId(depart.getId());
// }
// this.saveDepartData(fiveDepart, fiveDepart.getCreateBy());
// }
// }
//
// //6
for (SysDepart sixDepart : sixDeparts) {
boolean exists = sysDeparts.stream()
.anyMatch(sysDepart -> sixDepart.getDepartNameEn().equals(sysDepart.getDepartNameEn()));
if (exists) {
System.out.println("已添加过");
} else {
SysDepart depart = departMapper.selectOne(new LambdaQueryWrapper<SysDepart>()
.eq(SysDepart::getDepartNameEn, sixDepart.getParentId()));
if (depart != null) {
sixDepart.setParentId(depart.getId());
}
this.saveDepartData(sixDepart, sixDepart.getCreateBy());
}
}
}
/**