解决策略同步开始和结束时间格式解析报错
This commit is contained in:
@ -1,8 +1,5 @@
|
|||||||
package com.xzzn.ems.service.impl;
|
package com.xzzn.ems.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
@ -12,19 +9,27 @@ import com.xzzn.common.utils.DateUtils;
|
|||||||
import com.xzzn.common.utils.StringUtils;
|
import com.xzzn.common.utils.StringUtils;
|
||||||
import com.xzzn.common.utils.bean.BeanUtils;
|
import com.xzzn.common.utils.bean.BeanUtils;
|
||||||
import com.xzzn.ems.domain.EmsStrategy;
|
import com.xzzn.ems.domain.EmsStrategy;
|
||||||
import com.xzzn.ems.domain.EmsStrategyRunning;
|
import com.xzzn.ems.domain.EmsStrategyTemp;
|
||||||
import com.xzzn.ems.domain.EmsStrategyTempTimeConfig;
|
import com.xzzn.ems.domain.EmsStrategyTempTimeConfig;
|
||||||
import com.xzzn.ems.domain.vo.StrategyRunningVo;
|
|
||||||
import com.xzzn.ems.domain.vo.StrategyTempConfigRequest;
|
import com.xzzn.ems.domain.vo.StrategyTempConfigRequest;
|
||||||
import com.xzzn.ems.domain.vo.SyncStrategyTempVo;
|
import com.xzzn.ems.domain.vo.SyncStrategyTempVo;
|
||||||
import com.xzzn.ems.mapper.EmsStrategyCurveMapper;
|
import com.xzzn.ems.mapper.EmsStrategyCurveMapper;
|
||||||
import com.xzzn.ems.mapper.EmsStrategyMapper;
|
import com.xzzn.ems.mapper.EmsStrategyMapper;
|
||||||
|
import com.xzzn.ems.mapper.EmsStrategyTempMapper;
|
||||||
import com.xzzn.ems.mapper.EmsStrategyTimeConfigMapper;
|
import com.xzzn.ems.mapper.EmsStrategyTimeConfigMapper;
|
||||||
|
import com.xzzn.ems.service.IEmsStrategyTempService;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.xzzn.ems.mapper.EmsStrategyTempMapper;
|
|
||||||
import com.xzzn.ems.domain.EmsStrategyTemp;
|
|
||||||
import com.xzzn.ems.service.IEmsStrategyTempService;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -147,6 +152,8 @@ public class EmsStrategyTempServiceImpl implements IEmsStrategyTempService
|
|||||||
switch (operateType) {
|
switch (operateType) {
|
||||||
case "INSERT":
|
case "INSERT":
|
||||||
SyncStrategyTempVo syncVo = JSON.parseObject(content, SyncStrategyTempVo.class);
|
SyncStrategyTempVo syncVo = JSON.parseObject(content, SyncStrategyTempVo.class);
|
||||||
|
//转换开始和结束时间
|
||||||
|
convertStringToDate(content, syncVo);
|
||||||
BeanUtils.copyProperties(syncVo, temp);
|
BeanUtils.copyProperties(syncVo, temp);
|
||||||
// 先校验策略是否存在,不存在则插入
|
// 先校验策略是否存在,不存在则插入
|
||||||
dealStrategyData(temp, syncVo);
|
dealStrategyData(temp, syncVo);
|
||||||
@ -165,6 +172,26 @@ public class EmsStrategyTempServiceImpl implements IEmsStrategyTempService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void convertStringToDate(String content, SyncStrategyTempVo syncVo) throws JsonProcessingException {
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
JsonNode rootNode = mapper.readTree(content);
|
||||||
|
String startTime = rootNode.path("startTime").asText();
|
||||||
|
String endTime = rootNode.path("endTime").asText();
|
||||||
|
if (startTime != null && !"null".equals(startTime)) {
|
||||||
|
syncVo.setStartTime(parseTimeStringToDate(startTime));
|
||||||
|
}
|
||||||
|
if (endTime != null && !"null".equals(endTime)) {
|
||||||
|
syncVo.setEndTime(parseTimeStringToDate(endTime));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Date parseTimeStringToDate(String timeStr) {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
|
||||||
|
LocalTime time = LocalTime.parse(timeStr, formatter);
|
||||||
|
LocalDateTime dateTime = LocalDateTime.of(LocalDate.now(), time);
|
||||||
|
return Date.from(dateTime.atZone(ZoneId.of("Asia/Shanghai")).toInstant());
|
||||||
|
}
|
||||||
|
|
||||||
private void dealStrategyData(EmsStrategyTemp temp, SyncStrategyTempVo syncVo) {
|
private void dealStrategyData(EmsStrategyTemp temp, SyncStrategyTempVo syncVo) {
|
||||||
// 主策略
|
// 主策略
|
||||||
String mainStrategyName = syncVo.getStrategyName();
|
String mainStrategyName = syncVo.getStrategyName();
|
||||||
|
|||||||
Reference in New Issue
Block a user