Commit 90e67c0a authored by duanruiming's avatar duanruiming

Merge remote-tracking branch 'origin/master'

parents 5bed9a41 2d385b1d
...@@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param; ...@@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* 方案基础信息;(t_base_cross_scheme)表数据库访问层 * 方案基础信息;(t_base_cross_scheme)表数据库访问层
...@@ -37,4 +38,8 @@ public interface CrossSchemeMapper { ...@@ -37,4 +38,8 @@ public interface CrossSchemeMapper {
void insertOne(CrossSchemePO crossSchemePO); void insertOne(CrossSchemePO crossSchemePO);
void update(CrossSchemePO crossSchemePO); void update(CrossSchemePO crossSchemePO);
Set<Integer> selectIdsByCrossId(String crossId);
void deleteByIds(Set<Integer> existedIds);
} }
package net.wanji.web.service.scheme.impl; package net.wanji.web.service.scheme.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import net.wanji.web.common.constant.ControlModeConst; import net.wanji.web.common.constant.ControlModeConst;
import net.wanji.web.common.exception.PhaseNoNotUniqueException; import net.wanji.web.common.exception.PhaseNoNotUniqueException;
import net.wanji.common.dto.CrossIdDTO; import net.wanji.common.dto.CrossIdDTO;
...@@ -568,7 +569,7 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -568,7 +569,7 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
crossAccompanyPhasePO.setCrossId(crossId); crossAccompanyPhasePO.setCrossId(crossId);
crossAccompanyPhasePO.setPhaseId(accompanyPhaseId); crossAccompanyPhasePO.setPhaseId(accompanyPhaseId);
Integer superPhaseId = crossPhaseMapper.selectIdByCrossIdAndCoordPhaseNo( Integer superPhaseId = crossPhaseMapper.selectIdByCrossIdAndCoordPhaseNo(
crossId, schemeId,superPhaseNo); crossId, schemeId, superPhaseNo);
crossAccompanyPhasePO.setSuperId(superPhaseId); crossAccompanyPhasePO.setSuperId(superPhaseId);
crossAccompanyPhasePOList.add(crossAccompanyPhasePO); crossAccompanyPhasePOList.add(crossAccompanyPhasePO);
} }
...@@ -669,10 +670,22 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -669,10 +670,22 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
private void updateCrossScheme(SaveSchemeConfigDTO saveSchemeConfigDTO) { private void updateCrossScheme(SaveSchemeConfigDTO saveSchemeConfigDTO) {
String crossId = saveSchemeConfigDTO.getCrossId(); String crossId = saveSchemeConfigDTO.getCrossId();
crossSchemeMapper.deleteByCrossId(crossId);
List<SaveSchemeConfigDTO.PhaseScheme> phaseSchemeList = saveSchemeConfigDTO.getPhaseSchemeList(); List<SaveSchemeConfigDTO.PhaseScheme> phaseSchemeList = saveSchemeConfigDTO.getPhaseSchemeList();
List<CrossSchemePO> crossSchemePOList = new ArrayList<>(); // 删除数据口里有,但是DTO里没有的方案ID对应的记录
Set<Integer> existedIds = crossSchemeMapper.selectIdsByCrossId(crossId);
if (CollectionUtil.isNotEmpty(existedIds)) {
Set<Integer> dtoIds = phaseSchemeList.stream()
.map(SaveSchemeConfigDTO.PhaseScheme::getSchemeId)
.collect(Collectors.toSet());
if (CollectionUtil.isNotEmpty(dtoIds)) {
existedIds.removeAll(dtoIds);
if (CollectionUtil.isNotEmpty(existedIds)){
crossSchemeMapper.deleteByIds(existedIds);
}
}
}
for (SaveSchemeConfigDTO.PhaseScheme phaseScheme : phaseSchemeList) { for (SaveSchemeConfigDTO.PhaseScheme phaseScheme : phaseSchemeList) {
// 构造PO
CrossSchemePO crossSchemePO = new CrossSchemePO(); CrossSchemePO crossSchemePO = new CrossSchemePO();
String schemeNo = phaseScheme.getSchemeNo();// 方案号 String schemeNo = phaseScheme.getSchemeNo();// 方案号
crossSchemePO.setSchemeNo(schemeNo); crossSchemePO.setSchemeNo(schemeNo);
...@@ -686,8 +699,16 @@ public class SchemeConfigServiceImpl implements SchemeConfigService { ...@@ -686,8 +699,16 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
} }
crossSchemePO.setSource(2); // 来自平台 crossSchemePO.setSource(2); // 来自平台
crossSchemePO.setIsDeleted(0); crossSchemePO.setIsDeleted(0);
crossSchemePOList.add(crossSchemePO); // 新增或修改数据
Integer schemeId = phaseScheme.getSchemeId();
if (ObjectUtil.isEmpty(schemeId)){
// 没有方案ID视为新增
crossSchemeMapper.insertOne(crossSchemePO);
} else {
// 有方案ID视为修改
crossSchemePO.setId(schemeId);
crossSchemeMapper.update(crossSchemePO);
}
} }
crossSchemeMapper.insertBatch(crossSchemePOList);
} }
} }
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
is_deleted = #{isDeleted}, is_deleted = #{isDeleted},
</if> </if>
</set> </set>
where cross_id = #{crossId} and scheme_no = #{schemeNo} where id = #{id}
</update> </update>
<delete id="deleteByCrossId"> <delete id="deleteByCrossId">
...@@ -97,5 +97,17 @@ ...@@ -97,5 +97,17 @@
where id = #{id} where id = #{id}
</select> </select>
<select id="selectIdsByCrossId" resultType="java.lang.Integer">
SELECT id FROM t_base_cross_scheme
WHERE cross_id = #{crossId}
</select>
<delete id="deleteByIds">
DELETE FROM t_base_cross_scheme
WHERE id IN
<foreach collection="existedIds" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
</mapper> </mapper>
...@@ -214,9 +214,6 @@ public class TrendServiceImpl implements TrendService { ...@@ -214,9 +214,6 @@ public class TrendServiceImpl implements TrendService {
List<AbnormalCrossDetailVO.DirDataElement> dirData = new ArrayList<>(); List<AbnormalCrossDetailVO.DirDataElement> dirData = new ArrayList<>();
// 获取当前时间之前40分钟的10位时间戳 // 获取当前时间之前40分钟的10位时间戳
long currentSeconds = DateUtil.currentSeconds(); long currentSeconds = DateUtil.currentSeconds();
// todo 演示用,固定当前时间为 2023-02-11 10:30:00
currentSeconds = 1676082600L;
long preSeconds = currentSeconds - 40 * 60; long preSeconds = currentSeconds - 40 * 60;
List<CrossDirDataHistPO> crossDirDataHistPOList = List<CrossDirDataHistPO> crossDirDataHistPOList =
crossDirDataHistMapper.selectByCrossIdAndTimestamp(crossId, preSeconds); crossDirDataHistMapper.selectByCrossIdAndTimestamp(crossId, preSeconds);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment