From 316ce3af8b9b04b490468b15243454c7fba0d2ea Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Mon, 28 Oct 2024 18:10:58 +0800
Subject: [PATCH] 湖北水库:所有项目添加测量定位工序
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java | 71 ++++++++++++++++++-----------------
1 files changed, 37 insertions(+), 34 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
index 030e473..2faa514 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -7,7 +7,6 @@
import cn.gistack.sm.sg.mapper.SgGxStepMapper;
import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
import cn.gistack.sm.sg.mapper.SgProjectInfoMapper;
-import cn.gistack.sm.sg.service.SgProgressReportService;
import cn.gistack.sm.sg.service.SgProjectInfoService;
import cn.gistack.sm.sjztmd.entity.AttAdBase;
import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
@@ -88,34 +87,25 @@
}
sgProjectInfoDOS.forEach(s->{
//土建
- if (StringUtils.isNotBlank(s.getConstructionUnit())){
- s.setConstructionUnit(deptMap.get(Long.valueOf(s.getConstructionUnit())));
- }
- s.setConstructionPerson(getUserNames(userMap, s.getConstructionPerson()));
+ String constructionUnit = s.getConstructionUnit();
+ s.setConstructionUnit(getUserOrDeptNames(deptMap,s.getConstructionUnit()));
+ s.setConstructionPerson(getUserOrDeptNames(userMap, s.getConstructionPerson()));
//设备
- if (StringUtils.isNotBlank(s.getSelfUnit())){
- s.setSelfUnit(deptMap.get(Long.valueOf(s.getSelfUnit())));
- }
- s.setSelfPerson(getUserNames(userMap, s.getSelfPerson()));
+ s.setSelfUnit(getUserOrDeptNames(deptMap,s.getSelfUnit()));
+ s.setSelfPerson(getUserOrDeptNames(userMap, s.getSelfPerson()));
//设计
- if (StringUtils.isNotBlank(s.getDesignUnit())){
- s.setDesignUnit(deptMap.get(Long.valueOf(s.getDesignUnit())));
- }
- s.setDesignPerson(getUserNames(userMap, s.getDesignPerson()));
+ s.setDesignUnit(getUserOrDeptNames(deptMap, s.getDesignUnit()));
+ s.setDesignPerson(getUserOrDeptNames(userMap, s.getDesignPerson()));
//监理
- if (StringUtils.isNotBlank(s.getControlUnit())){
- s.setControlUnit(deptMap.get(Long.valueOf(s.getControlUnit())));
- }
- s.setControlPerson(getUserNames(userMap, s.getControlPerson()));
+ s.setControlUnit(getUserOrDeptNames(deptMap, s.getControlUnit()));
+ s.setControlPerson(getUserOrDeptNames(userMap, s.getControlPerson()));
//检测
- if (StringUtils.isNotBlank(s.getAcceptanceUnit())){
- s.setAcceptanceUnit(deptMap.get(Long.valueOf(s.getAcceptanceUnit())));
- }
- s.setAcceptancePerson(getUserNames(userMap, s.getAcceptancePerson()));
+ s.setAcceptanceUnit(getUserOrDeptNames(deptMap, s.getAcceptanceUnit()));
+ s.setAcceptancePerson(getUserOrDeptNames(userMap, s.getAcceptancePerson()));
});
return sgProjectInfoDOS;
}
@@ -135,21 +125,20 @@
}
/**
- * 获取用户姓名
- * @param userMap
+ * 获取用户或者部门姓名
* @return
*/
- private String getUserNames(Map<Long, String> userMap,String person ) {
- String userNames = "";
- if (StringUtils.isNotBlank(person)){
+ private String getUserOrDeptNames(Map<Long, String> map, String param ) {
+ String result = "";
+ if (StringUtils.isNotBlank(param)){
// 使用Stream API来处理分割和映射
- userNames = Arrays.stream(person.split(",")) // 将字符串按逗号分割成数组,并转为Stream
+ result = Arrays.stream(param.split(",")) // 将字符串按逗号分割成数组,并转为Stream
.map(Long::valueOf) // 将每个字符串元素转换为Long
- .map(userMap::get) // 使用userMap将Long映射为对应的用户名
+ .map(map::get) // 使用userMap将Long映射为对应的用户名
.collect(Collectors.joining(",")); // 使用逗号将用户名拼接成一个字符串
- return userNames;
+ return result;
}
- return userNames;
+ return result;
}
/**
@@ -173,7 +162,7 @@
public List<SgProjectInfoDO> queryStepByProject(ProjectSearchDTO searchDTO) {
List<PreAcceVO> palist = new ArrayList<>();
List<SgProjectInfoVO> list = sgProjectInfoMapper.queryStepByProject( searchDTO);
- palist.add(handleQuery(25, list.get(0).getId()));
+ palist.add(handleQuery(20, list.get(0).getId()));
palist.add(handleQuery(26, list.get(0).getId()));
List<SgProjectInfoDO> projectProgress = getProjectProgress(list);
projectProgress.forEach(s->{
@@ -191,8 +180,11 @@
*/
@NotNull
public List<SgProjectInfoDO> getProjectProgress(List<SgProjectInfoVO> list) {
+ List<SgProjectInfoVO> sortedList = list.stream()
+ .sorted(Comparator.comparing(SgProjectInfoVO::getSort))
+ .collect(Collectors.toList());
//项目分组
- Map<Long, List<SgProjectInfoVO>> projectMap = list.stream().collect(Collectors.groupingBy(SgProjectInfoVO::getId));
+ Map<Long, List<SgProjectInfoVO>> projectMap = sortedList.stream().collect(Collectors.groupingBy(SgProjectInfoVO::getId));
List<SgProjectInfoDO> result = new ArrayList<>();
for (Map.Entry<Long, List<SgProjectInfoVO>> entry : projectMap.entrySet()) {
List<SgDeviceDO> allDevice = new ArrayList<>();
@@ -221,6 +213,7 @@
if (CollectionUtils.isEmpty(gxList)){
continue;
}
+ gxList = list.stream().sorted(Comparator.comparing(SgProjectInfoVO::getPrice)).collect(Collectors.toList());
SgTypeVO typeVO = SgTypeVO.builder().typeName(gxList.get(0).getTypeName()).build();
List<SgDeviceDO> deviceDOS = new ArrayList<>();
//设备分组
@@ -231,6 +224,7 @@
SgDeviceDO sgDeviceDO = new SgDeviceDO();
sgDeviceDO.setId(dId);
sgDeviceDO.setDeviceName(deList.get(0).getDeviceName());
+ sgDeviceDO.setPrice(deList.get(0).getPrice());
List<SgGxStepDO> stepDOS = deList.stream().filter(s -> s.getReportStatus() == null || (s.getReportStatus() != 4 && !(s.getReportStatus() == 3 && s.getResubmit() != 0))).map(s -> SgGxStepDO.builder().id(s.getStepId()).gxStepNum(s.getGxStepNum()).gxStepName(s.getGxStepName()).deviceId(s.getDId()).approvalStatus(s.getReportStatus()).build()).collect(Collectors.toList());
List<SgGxStepDO> stepOver = stepDOS.stream().filter(s -> s.getApprovalStatus() != null && s.getApprovalStatus() == 2).collect(Collectors.toList());
BigDecimal stepSize = BigDecimal.valueOf(stepDOS.size());
@@ -250,7 +244,8 @@
double sum = deviceDOS.stream().mapToDouble(s -> Double.parseDouble(s.getProgress())).sum();
BigDecimal deviceOver = BigDecimal.valueOf(sum);
BigDecimal divideDevice = deviceOver.divide(deviceSize, 2, RoundingMode.HALF_UP);
- typeVO.setDeviceDOS(deviceDOS);
+ List<SgDeviceDO> sortDeviceDOs = deviceDOS.stream().filter(s->s.getPrice()!=null).sorted(Comparator.comparing(SgDeviceDO::getPrice)).collect(Collectors.toList());
+ typeVO.setDeviceDOS(sortDeviceDOs);
typeVO.setTypeProgress(getBigDecimalPercent(divideDevice));
typeVO.setProgress(divideDevice.toString());
sgGxDOS.add(typeVO);
@@ -419,12 +414,16 @@
SgOperatingRateVO sVo = deviceTypes.get(vo.getProIds());
if (Objects.nonNull(sVo)){
vo.setSurfaceNum(sVo.getSurfaceNum());
+ vo.setSurfaceStartNum(sVo.getSurfaceStartNum());
vo.setSurfaceProgress(sVo.getSurfaceProgress());
vo.setVideoNum(sVo.getVideoNum());
+ vo.setVideoStartNum(sVo.getVideoStartNum());
vo.setVideoProgress(sVo.getVideoProgress());
vo.setTransNum(sVo.getTransNum());
+ vo.setTransStartNum(sVo.getTransStartNum());
vo.setTransProgress(sVo.getTransProgress());
vo.setSeepageNum(sVo.getSeepageNum());
+ vo.setSeepageStartNum(sVo.getSeepageStartNum());
vo.setSeepageProgress(sVo.getSeepageProgress());
}
}
@@ -476,6 +475,7 @@
Integer deviceCount = sg108.getDeviceCount();
Integer deviceStart = sg108.getDeviceStart();
sgOperatingRateVO.setSurfaceNum(deviceCount);
+ sgOperatingRateVO.setSurfaceStartNum(deviceStart);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
@@ -489,6 +489,7 @@
Integer deviceCount = sg104.getDeviceCount();
Integer deviceStart = sg104.getDeviceStart();
sgOperatingRateVO.setVideoNum(deviceCount);
+ sgOperatingRateVO.setVideoStartNum(deviceStart);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
sgOperatingRateVO.setVideoProgress(getBigDecimalPercent(divide));
@@ -502,6 +503,7 @@
Integer deviceCount = sg101.getDeviceCount();
Integer deviceStart = sg101.getDeviceStart();
sgOperatingRateVO.setTransNum(deviceCount);
+ sgOperatingRateVO.setTransStartNum(deviceStart);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
sgOperatingRateVO.setTransProgress(getBigDecimalPercent(divide));
@@ -515,6 +517,7 @@
Integer deviceCount = sg102.getDeviceCount();
Integer deviceStart = sg102.getDeviceStart();
sgOperatingRateVO.setSeepageNum(deviceCount);
+ sgOperatingRateVO.setSeepageStartNum(deviceStart);
if (deviceCount != 0){
BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
@@ -677,7 +680,7 @@
SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(stepIdForNull);
preAcceVO.setName(sgGxStepDO.getGxStepName());
preAcceVO.setProgramId(programId);
- preAcceVO.setGxDeviceId(stepIdForNull != 25? (long)998:(long)999);
+ preAcceVO.setGxDeviceId(stepIdForNull != 20? (long)998:(long)999);
preAcceVO.setGxStepId(sgGxStepDO.getId());
}
--
Gitblit v1.9.3