|
|
|
@ -11,7 +11,9 @@ import { NMapPolyline } from '../../../components/map/nhn/NMapPolyline';
|
|
|
|
|
import * as Actions from '../../../modules/analysis/simulation/actions/analysisSimulatorAction'; |
|
|
|
|
import * as Action from '../../../modules/account/login/actions/authAction'; |
|
|
|
|
import MapBoxMap from '../../../components/map/mapbox/MapBoxMap'; |
|
|
|
|
|
|
|
|
|
let playCount = 0; |
|
|
|
|
let playCounts = 0; |
|
|
|
|
|
|
|
|
|
export const AnalysisSimulationContainer = props => { |
|
|
|
|
const { list, count, detail, searchParams, log, stcsList, stcsCount, page } = |
|
|
|
@ -48,6 +50,9 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
|
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
|
|
const [dronLength, setDronLength] = useState(0); |
|
|
|
|
|
|
|
|
|
const [countArray, setCountArray] = useState([]); |
|
|
|
|
const [params, setParams] = useState({ |
|
|
|
|
stDate: moment().subtract(1, 'day').format('YYYY-MM-DD'), |
|
|
|
|
endDate: moment().subtract(-1, 'day').format('YYYY-MM-DD'), |
|
|
|
@ -57,18 +62,34 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
// 시뮬레이션 타이머
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (isPlay) { |
|
|
|
|
const timer = setInterval(() => { |
|
|
|
|
setInfo({ ...log[playCount], playCount: playCount }); |
|
|
|
|
if (log[playCount]?.srvrRcvDt) { |
|
|
|
|
setTimeCd(moment(log[playCount]?.srvrRcvDt).format('HH:mm')); |
|
|
|
|
} |
|
|
|
|
const countCheck = log.map(item => |
|
|
|
|
moment(item?.srvrRcvDt).diff(moment(log[0]?.srvrRcvDt), 'seconds') |
|
|
|
|
); |
|
|
|
|
setCountArray(countCheck); |
|
|
|
|
|
|
|
|
|
playCount++; |
|
|
|
|
const timer = setInterval(() => { |
|
|
|
|
if (playCount == log.length) { |
|
|
|
|
playCount = 0; |
|
|
|
|
clearInterval(timer); |
|
|
|
|
setIsPlay(false); |
|
|
|
|
} |
|
|
|
|
setInfo({ ...log[playCount], playCount, playCounts }); |
|
|
|
|
if (log[playCount]?.srvrRcvDt) { |
|
|
|
|
setTimeCd(moment(log[playCount]?.srvrRcvDt).format('HH:mm')); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
playCounts = moment(log[playCount]?.srvrRcvDt).diff( |
|
|
|
|
moment(log[0]?.srvrRcvDt), |
|
|
|
|
'seconds' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
setDronLength( |
|
|
|
|
moment(log[log.length - 1]?.srvrRcvDt).diff( |
|
|
|
|
moment(log[0]?.srvrRcvDt), |
|
|
|
|
'seconds' |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
playCount++; |
|
|
|
|
}, 1000); |
|
|
|
|
|
|
|
|
|
return () => clearInterval(timer); |
|
|
|
@ -77,7 +98,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (isPlay) { |
|
|
|
|
setInfo({ ...log[playCount], playCount: playCount }); |
|
|
|
|
setInfo({ ...log[playCount], playCount, playCounts }); |
|
|
|
|
setIsPlay(false); |
|
|
|
|
} |
|
|
|
|
}, [stcsList]); |
|
|
|
@ -95,8 +116,23 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
}, [oepnReportList]); |
|
|
|
|
useEffect(() => { |
|
|
|
|
if (sliderCount && sliderCount > 0) { |
|
|
|
|
playCount = sliderCount; |
|
|
|
|
setInfo({ ...log[playCount], playCount: playCount }); |
|
|
|
|
let benear = countArray[0]; |
|
|
|
|
let minimum = Math.abs(sliderCount - benear); |
|
|
|
|
let index = 0; |
|
|
|
|
|
|
|
|
|
for (let i = 1; i < countArray.length; i++) { |
|
|
|
|
const currentValue = countArray[i]; |
|
|
|
|
const value = Math.abs(sliderCount - currentValue); |
|
|
|
|
|
|
|
|
|
if (value < minimum) { |
|
|
|
|
benear = currentValue; |
|
|
|
|
minimum = value; |
|
|
|
|
index = i; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
playCount = index; |
|
|
|
|
setInfo({ ...log[playCount], playCount, playCounts }); |
|
|
|
|
if (log[playCount]?.srvrRcvDt) { |
|
|
|
|
setTimeCd(moment(log[playCount]?.srvrRcvDt).format('HH:mm')); |
|
|
|
|
} |
|
|
|
@ -105,6 +141,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
playCount = 0; |
|
|
|
|
playCounts = 0; |
|
|
|
|
if (log) { |
|
|
|
|
setInfo({ ...log[playCount], playCount: 0 }); |
|
|
|
|
} |
|
|
|
@ -238,6 +275,8 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
setSliderCount={setSliderCount} |
|
|
|
|
handlerDetailClose={handlerDetailClose} |
|
|
|
|
setOpenReportList={handlerOpenReportList} |
|
|
|
|
dronLength={dronLength} |
|
|
|
|
countArray={countArray} |
|
|
|
|
/> |
|
|
|
|
<NMapPolyline |
|
|
|
|
data={log} |
|
|
|
|