Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2025-10-14 23:21:52 +08:00
3 changed files with 92 additions and 27 deletions

View File

@ -1,5 +1,6 @@
package org.dromara.drone.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -151,7 +152,9 @@ public class DroProjectDroneServiceImpl extends ServiceImpl<DroProjectDroneMappe
List<DroProjectDrone> list = this.lambdaQuery()
.eq(DroProjectDrone::getProjectId, projectId)
.list();
droneManager.addAirportInfoByProject(list.stream().map(DroProjectDrone::getDroneSn).toList(), projectId);
if (CollUtil.isNotEmpty(list)) {
droneManager.addAirportInfoByProject(list.stream().map(DroProjectDrone::getDroneSn).toList(), projectId);
}
return true;
}

View File

@ -166,13 +166,19 @@ public class PgsProgressCategoryServiceImpl extends ServiceImpl<PgsProgressCateg
throw new ServiceException("进度类别信息不存在", HttpStatus.NOT_FOUND);
}
// 获取当前进度数量和完成数量总和
BigDecimal allNumber = progressPlanService.getCurrentPlanAndFinishedNumber(progressCategory);
BigDecimal total = progressCategory.getTotal();
PgsProgressCategoryLastTimeVo lastTimeVo = new PgsProgressCategoryLastTimeVo();
BigDecimal total = PgsProgressUnitTypeEnum.PERCENTAGE.getValue().equals(progressCategory.getUnitType()) ?
new BigDecimal(100) : progressCategory.getTotal();
// 剩余数量
BigDecimal planTotal = total.subtract(allNumber);
lastTimeVo.setLeftNum(planTotal);
;
if (total.compareTo(BigDecimal.ZERO) > 0) {
BigDecimal allNumber = progressPlanService.getCurrentPlanAndFinishedNumber(progressCategory);
total = PgsProgressUnitTypeEnum.PERCENTAGE.getValue().equals(progressCategory.getUnitType()) ?
new BigDecimal(100) : total;
// 剩余数量
BigDecimal planTotal = total.subtract(allNumber);
lastTimeVo.setLeftNum(planTotal);
} else {
lastTimeVo.setLeftNum(BigDecimal.ZERO);
}
PgsProgressPlan progressPlan = progressPlanService.lambdaQuery()
.eq(PgsProgressPlan::getProgressCategoryId, id)
.orderByDesc(PgsProgressPlan::getEndDate)

View File

@ -5,7 +5,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.PhoneUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -41,8 +40,6 @@ import org.dromara.facility.service.IFacMatrixService;
import org.dromara.manager.weathermanager.WeatherConstant;
import org.dromara.manager.weathermanager.WeatherManager;
import org.dromara.manager.weathermanager.vo.WeatherVo;
import org.dromara.other.domain.OthYs7Device;
import org.dromara.other.service.IOthYs7DeviceService;
import org.dromara.progress.domain.PgsProgressCategory;
import org.dromara.progress.domain.enums.PgsRelevancyStructureEnum;
import org.dromara.progress.domain.vo.progresscategory.PgsProgressCategoryStructureVo;
@ -60,6 +57,7 @@ import org.dromara.safety.service.IHseKnowledgeDocumentService;
import org.dromara.system.domain.vo.SysDictDataVo;
import org.dromara.system.service.ISysDictDataService;
import org.dromara.workflow.service.IFlwDefinitionService;
import org.dromara.xzd.utilS.IdWorker;
import org.springframework.beans.BeanUtils;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.annotation.Lazy;
@ -1133,10 +1131,47 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
return Collections.emptyMap();
}
//获取项目列表
List<BusProjectVo> projectVos = baseMapper.selectVoList(new LambdaQueryWrapper<BusProject>().eq(BusProject::getPId,0).eq(BusProject::getIsDelete,0));
List<BusProjectVo> projectVos = baseMapper.selectVoList(new LambdaQueryWrapper<BusProject>().eq(BusProject::getPId, 0).eq(BusProject::getIsDelete, 0));
if (projectVos == null || projectVos.isEmpty()) {
return Collections.emptyMap();
}
projectVos.add(create("北京市", "北京", 39.9042, 116.4074, 1));
projectVos.add(create("天津市", "天津", 39.3434, 117.36162, 2));
projectVos.add(create("河北省", "石家庄", 38.0428, 114.5149, 3));
projectVos.add(create("山西省", "太原", 37.8706, 112.5493, 1));
projectVos.add(create("内蒙古自治区", "呼和浩特", 40.8426, 111.7492, 2));
projectVos.add(create("辽宁省", "沈阳", 41.8057, 123.4315, 2));
projectVos.add(create("吉林省", "长春", 43.8171, 125.3235, 3));
projectVos.add(create("黑龙江省", "哈尔滨", 45.8038, 126.5349, 1));
projectVos.add(create("上海市", "上海", 31.2304, 121.4737, 3));
projectVos.add(create("江苏省", "南京", 32.0603, 118.7969, 1));
projectVos.add(create("浙江省", "杭州", 30.2741, 120.1551, 1));
projectVos.add(create("安徽省", "合肥", 31.8206, 117.2272, 2));
projectVos.add(create("福建省", "福州", 26.0745, 119.2965, 2));
projectVos.add(create("江西省", "南昌", 28.6820, 115.8579, 2));
projectVos.add(create("山东省", "济南", 36.6512, 117.1201, 1));
projectVos.add(create("河南省", "郑州", 34.7473, 113.6249, 1));
projectVos.add(create("湖北省", "武汉", 30.5928, 114.3055, 1));
projectVos.add(create("湖南省", "长沙", 28.2278, 112.9389, 2));
projectVos.add(create("广东省", "广州", 23.1291, 113.2644, 3));
projectVos.add(create("广西壮族自治区", "南宁", 22.8170, 108.3669, 1));
projectVos.add(create("海南省", "海口", 20.0440, 110.1999, 1));
projectVos.add(create("四川省", "成都", 30.6595, 104.0657, 2));
projectVos.add(create("贵州省", "贵阳", 26.6470, 106.6302, 1));
projectVos.add(create("云南省", "昆明", 25.0406, 102.7123, 3));
projectVos.add(create("西藏自治区", "拉萨", 29.6469, 91.1172, 1));
projectVos.add(create("陕西省", "西安", 34.3416, 108.9398, 3));
projectVos.add(create("甘肃省", "兰州", 36.0614, 103.8343, 1));
projectVos.add(create("青海省", "西宁", 36.6232, 101.7782, 2));
projectVos.add(create("宁夏回族自治区", "银川", 38.4872, 106.2309, 2));
projectVos.add(create("新疆维吾尔自治区", "乌鲁木齐", 43.8266, 87.6168, 3));
projectVos.add(create("香港特别行政区", "香港", 22.3193, 114.1694, 1));
projectVos.add(create("澳门特别行政区", "澳门", 22.1987, 113.5439, 1));
projectVos.add(create("台湾省", "台北", 25.0330, 121.5654, 1));
// 老挝 - 万象
projectVos.add(create("老挝", "万象", 17.9757, 102.6331, 1));
// 老挝 - 琅勃拉邦
projectVos.add(create("老挝", "琅勃拉邦", 19.8856, 102.1350, 2));
Map<String, Map<String, Map<String, String>>> map = new HashMap<>();
for (SysDictDataVo projectType : projectTypes) {
Map<String, Map<String, String>> map1 = new HashMap<>();
@ -1147,15 +1182,15 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
BusProjectVo project = iterator.next();
if (projectType.getDictValue().equals(project.getProjectType())) {
Map<String, String> map2 = new HashMap<>();
map2.put("lng",project.getLng());
map2.put("lat",project.getLat());
map2.put("projectId",project.getId().toString());
map1.put(project.getProjectName(),map2);
map2.put("lng", project.getLng());
map2.put("lat", project.getLat());
map2.put("projectId", project.getId().toString());
map1.put(project.getProjectName(), map2);
//当满足条件时删除该元素
iterator.remove();
}
}
map.put(projectType.getDictLabel(),map1);
map.put(projectType.getDictLabel(), map1);
}
return map;
}
@ -1165,7 +1200,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
List<BusProjectVo> projectVos = baseMapper.getProjectDiYv();
Map<String, Long> map = new HashMap<>();
for (BusProjectVo vo : projectVos) {
map.put(StringUtils.isNotBlank(vo.getProvince())?vo.getProvince():"未知地区",vo.getCount());
map.put(StringUtils.isNotBlank(vo.getProvince()) ? vo.getProvince() : "未知地区", vo.getCount());
}
return map;
}
@ -1173,16 +1208,16 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
@Override
public Map<String, Map<String, String>> getProjectCapacity() {
//获取项目列表
List<BusProjectVo> projectVos = baseMapper.selectVoList(new LambdaQueryWrapper<BusProject>().eq(BusProject::getPId,0).eq(BusProject::getIsDelete,0));
List<BusProjectVo> projectVos = baseMapper.selectVoList(new LambdaQueryWrapper<BusProject>().eq(BusProject::getPId, 0).eq(BusProject::getIsDelete, 0));
if (projectVos == null || projectVos.isEmpty()) {
return Collections.emptyMap();
}
Map<String, Map<String, String>> map = new HashMap<>();
for (BusProjectVo project : projectVos) {
Map<String, String> map2 = new HashMap<>();
map2.put("actual",project.getActual());
map2.put("plan",project.getPlan());
map.put(project.getProjectName(),map2);
map2.put("actual", project.getActual());
map2.put("plan", project.getPlan());
map.put(project.getProjectName(), map2);
}
return map;
}
@ -1192,14 +1227,14 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
Map<String, Map<String, Object>> map = new HashMap<>();
SubConstructionUser byUserId = constructionUserService.getByUserId(req.getId());
Map<String, Object> renyuan = new HashMap<>();
if (byUserId != null){
renyuan.put("name", byUserId.getUserName() != null ? byUserId.getUserName():"");
renyuan.put("teamName", byUserId.getTeamName() != null ? byUserId.getTeamName():"");
renyuan.put("phone", byUserId.getPhone() != null ? byUserId.getPhone():"");
if (byUserId.getTypeOfWork() !=null){
if (byUserId != null) {
renyuan.put("name", byUserId.getUserName() != null ? byUserId.getUserName() : "");
renyuan.put("teamName", byUserId.getTeamName() != null ? byUserId.getTeamName() : "");
renyuan.put("phone", byUserId.getPhone() != null ? byUserId.getPhone() : "");
if (byUserId.getTypeOfWork() != null) {
renyuan.put("typeOfWork", dictDataService.selectDictLabel("type_of_work", byUserId.getTypeOfWork()));
}
renyuan.put("contractorNmae",byUserId.getContractorId() != null ? contractorService.getById(byUserId.getContractorId()).getName():"");
renyuan.put("contractorNmae", byUserId.getContractorId() != null ? contractorService.getById(byUserId.getContractorId()).getName() : "");
}
map.put("renyuan", renyuan);
return map;
@ -1250,4 +1285,25 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
.one();
return project != null ? project.getProjectName() : null;
}
/**
* 创建项目信息
*
* @param name 项目名称
* @param lat 纬度
* @param lng 经度
* @param projectType 项目类型
* @return 项目信息
*/
private static BusProjectVo create(String province, String name, double lat, double lng, Integer projectType) {
BusProjectVo vo = new BusProjectVo();
vo.setId(IdWorker.getID());
vo.setProvince(province);
vo.setProjectName(name);
vo.setLat(String.valueOf(lat));
vo.setLng(String.valueOf(lng));
vo.setProjectType(projectType.toString());
return vo;
}
}