新疆新需求

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
@@ -0,0 +1,2 @@
ALTER TABLE `emergency_schedules_new_item`
ADD COLUMN `sort` tinyint NULL DEFAULT 0 COMMENT '排序' AFTER `user_name`;
@@ -31,4 +31,7 @@ public class EmergencySchedulesItem {
@Schema(title = "人员姓名") @Schema(title = "人员姓名")
private String userName; private String userName;
@Schema(title = "排序")
private Integer sort;
} }
@@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -29,10 +30,16 @@ public class WeekDataVO {
private List<EmergencySchedulesItem> professionalUserList; private List<EmergencySchedulesItem> professionalUserList;
public List<EmergencySchedulesItem> getOperationUserList(List<EmergencySchedulesItem> itemList) { public List<EmergencySchedulesItem> getOperationUserList(List<EmergencySchedulesItem> itemList) {
return itemList.stream().filter(item -> "0".equals(item.getUserType())).collect(Collectors.toList()); return itemList.stream()
.filter(item -> "0".equals(item.getUserType()))
.sorted(Comparator.comparing(EmergencySchedulesItem::getSort)) // 根据 sort 字段升序排序
.collect(Collectors.toList());
} }
public List<EmergencySchedulesItem> getProfessionalUserList(List<EmergencySchedulesItem> itemList) { public List<EmergencySchedulesItem> getProfessionalUserList(List<EmergencySchedulesItem> itemList) {
return itemList.stream().filter(item -> "1".equals(item.getUserType())).collect(Collectors.toList()); return itemList.stream()
.filter(item -> "1".equals(item.getUserType()))
.sorted(Comparator.comparing(EmergencySchedulesItem::getSort)) // 根据 sort 字段升序排序
.collect(Collectors.toList());
} }
} }
@@ -160,7 +160,7 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
private void processDay(EmergencySchedulesDTO dto, DayOfWeek day, List<EmergencySchedulesItem> itemList) { private void processDay(EmergencySchedulesDTO dto, DayOfWeek day, List<EmergencySchedulesItem> itemList) {
WeekDataVO daySchedules = getDaySchedules(dto, day); WeekDataVO daySchedules = getDaySchedules(dto, day);
if (ObjectUtil.isNotEmpty(daySchedules)) { if (null != daySchedules) {
EmergencySchedules emergencySchedules = new EmergencySchedules(); EmergencySchedules emergencySchedules = new EmergencySchedules();
emergencySchedules.setSchedulesTime(daySchedules.getTime()); emergencySchedules.setSchedulesTime(daySchedules.getTime());
emergencySchedules.setId(StrUtil.isNotEmpty(daySchedules.getSchedulesId()) ? daySchedules.getSchedulesId() : null); emergencySchedules.setId(StrUtil.isNotEmpty(daySchedules.getSchedulesId()) ? daySchedules.getSchedulesId() : null);
@@ -194,16 +194,19 @@ public class EmergencySchedulesNewServiceImpl extends MPJBaseServiceImpl<Emergen
// userList去重 // userList去重
if (CollUtil.isNotEmpty(userList)) { if (CollUtil.isNotEmpty(userList)) {
Set<String> userIdSet = new HashSet<>(); Set<String> userIdSet = new HashSet<>();
userList.forEach(item -> { int sortIndex = 0; // 添加计数器
for (EmergencySchedulesItem item : userList) {
String userId = item.getUserId(); String userId = item.getUserId();
if (!userIdSet.contains(userId)) { if (!userIdSet.contains(userId)) {
// 如果不包含,则进行设置并添加 // 如果不包含,则进行设置并添加
item.setSchedulesId(emergencySchedules.getId()); item.setSchedulesId(emergencySchedules.getId());
item.setUserType(userType); item.setUserType(userType);
item.setSort(sortIndex);
itemList.add(item); itemList.add(item);
userIdSet.add(userId); userIdSet.add(userId);
sortIndex++;
} }
}); }
} }
// 写入数据库 // 写入数据库
itemService.saveOrUpdateBatch(itemList); itemService.saveOrUpdateBatch(itemList);
@@ -27,6 +27,7 @@ import org.jeecg.common.constant.FillRuleConstant;
import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.SymbolConstant;
import org.jeecg.common.exception.ExceptionAssertsUtil; import org.jeecg.common.exception.ExceptionAssertsUtil;
import org.jeecg.common.system.bean.response.BaseUser; 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.LoginUser;
import org.jeecg.common.system.vo.SysDepartGps; import org.jeecg.common.system.vo.SysDepartGps;
import org.jeecg.common.system.vo.SysDepartModel; 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]给部门表加个是否有子节点------------ //update-end---author:wangshuai ---date:20230216 for[QQYUN-4163]给部门表加个是否有子节点------------
//String s = UUID.randomUUID().toString().replace("-", ""); //String s = UUID.randomUUID().toString().replace("-", "");
sysDepart.setId(IdWorker.getIdStr(sysDepart)); // sysDepart.setId(IdWorker.getIdStr(sysDepart));
// 先判断该对象有无父级ID,有则意味着不是最高级,否则意味着是最高级 // 先判断该对象有无父级ID,有则意味着不是最高级,否则意味着是最高级
// 获取父级ID // 获取父级ID
String parentId = sysDepart.getParentId(); String parentId = sysDepart.getParentId();
@@ -1532,85 +1533,76 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
@Override @Override
@Transactional @Transactional
public void departDataInit() { public void departDataInit() {
String filePath = "D:\\Project\\Java\\rk\\文档\\新疆油田-24\\各二级单位坐标位置更正统计9.15.xlsx"; String filePath = "C:\\Users\\Huawei\\Desktop\\JSON-1761272930886.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));
// 获取目前的三级部门数据 // 2
List<SysDepart> threeDeparts = departMapper List<SysDepart> twoDeparts = new ArrayList<>();
.selectList(new LambdaQueryWrapper<SysDepart>() // 3
.in(SysDepart::getParentId, secondDeparts.stream().map(SysDepart::getId).collect(Collectors.toList()))); List<SysDepart> threeDeparts = new ArrayList<>();
// 三级部门名称分组 // 4
Map<String, SysDepart> threeMap = threeDeparts.stream() List<SysDepart> fourDeparts = new ArrayList<>();
.collect(Collectors.toMap(SysDepart::getDepartName, depart -> depart, (existing, replacement) -> existing)); // 5
List<SysDepart> fiveDeparts = new ArrayList<>();
// 获取目前的四级部门数据 // 6
List<SysDepart> fourDeparts = departMapper List<SysDepart> sixDeparts = new ArrayList<>();
.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<>();
try (FileInputStream file = new FileInputStream(filePath); try (FileInputStream file = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(file)) { XSSFWorkbook workbook = new XSSFWorkbook(file)) {
// 获取第一个工作表 // 获取第一个工作表
XSSFSheet sheet = workbook.getSheetAt(0); XSSFSheet sheet = workbook.getSheetAt(0);
// 从第二行开始(索引为1 // 从第二行开始(索引为1
for (int i = 2; i <= sheet.getLastRowNum(); i++) { for (int i = 1; i <= sheet.getLastRowNum(); i++) {
XSSFRow row = sheet.getRow(i); XSSFRow row = sheet.getRow(i);
if (row != null) { if (row != null) {
// 获取第一个单元格(索引0)的数据 二级单位名称 // 获取第一个单元格(索引0)的数据 层级
XSSFCell firstCell = row.getCell(0); XSSFCell firstCell = row.getCell(0);
String firstCellValue = firstCell != null ? getCellValue(firstCell) : "[空]"; String level = firstCell != null ? getCellValue(firstCell) : "[空]";
// 获取第二个单元格(索引1)的数据 三级部门名称 // 获取第二个单元格(索引1)的数据 名称
XSSFCell secondCell = row.getCell(1); XSSFCell oneCell = row.getCell(1);
String secondCellValue = secondCell != null ? getCellValue(secondCell) : "[空]"; String name = oneCell != null ? getCellValue(oneCell) : "[空]";
// 获取第三个单元格(索引1)的数据 经度 // 获取第三个单元格(索引1)的数据 id
XSSFCell threeCell = row.getCell(2); XSSFCell secondCell = row.getCell(2);
String threeCellValue = secondCell != null ? getCellValue(threeCell) : "[空]"; String unitId = secondCell != null ? getCellValue(secondCell) : "[空]";
// 获取第四个单元格(索引1)的数据 经度 // 获取第四个单元格(索引1)的数据 上级id
XSSFCell fourCell = row.getCell(3); XSSFCell threeCell = row.getCell(3);
String fourCellValue = secondCell != null ? getCellValue(fourCell) : "[空]"; String parentUnitId = threeCell != null ? getCellValue(threeCell) : "[空]";
if (StrUtil.isNotBlank(firstCellValue)) { // 获取第五个单元格(索引1)的数据 code
SysDepart depart = secondMap.get(firstCellValue); XSSFCell fourCell = row.getCell(4);
if (depart == null) { String unitCode = threeCell != null ? getCellValue(fourCell) : "[空]";
// 现有不存在 需添加
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();
} // 判断当前几级单位
} 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()); 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());
}
}
} }
/** /**