@ -1,6 +1,8 @@
package com.inspect.taskstatus.controller ;
import com.alibaba.fastjson.JSONObject ;
import com.inspect.analysis.domain.ResultAnalysis ;
import com.inspect.analysis.service.IResultAnalysisService ;
import com.inspect.base.core.constant.Color ;
import com.inspect.base.core.constant.RedisConst ;
import com.inspect.base.core.enums.TaskStatus ;
@ -14,8 +16,9 @@ import com.inspect.base.core.web.page.TableDataInfo;
import com.inspect.common.log.annotation.Log ;
import com.inspect.common.log.enums.BizType ;
import com.inspect.base.redis.service.RedisService ;
import com.inspect.partrolresult.domain.PatrolResult ;
import com.inspect.partrolresult.service.IPatrolResultService ;
import com.inspect.resultmain.domain.PatrolTaskResultMain ;
import com.inspect.resultmain.service.IPatrolTaskResultMainService ;
import com.inspect.system.base.openDomain.BasedataEqpBookMoMain ;
import com.inspect.task.controller.PatrolTaskController ;
import com.inspect.task.domain.PatrolSendTask ;
@ -23,6 +26,8 @@ import com.inspect.task.domain.PatrolSendTask;
import com.inspect.task.domain.PatrolTask ;
import com.inspect.task.domain.SendTask ;
import com.inspect.task.service.IPatrolTaskService ;
import com.inspect.taskinfo.mapper.PatrolTaskInfoMapper ;
import com.inspect.taskinfo.service.IPatrolTaskInfoService ;
import com.inspect.taskstatus.client.FeignJobTaskClient ;
import com.inspect.taskstatus.client.FeignTaskClient ;
import com.inspect.taskstatus.domain.PatrolTaskStatus ;
@ -30,7 +35,6 @@ import com.inspect.taskstatus.domain.TaskCount;
import com.inspect.taskstatus.service.IPatrolTaskStatusService ;
import java.text.ParseException ;
import java.text.SimpleDateFormat ;
import java.time.DayOfWeek ;
import java.time.Duration ;
import java.time.LocalDate ;
@ -39,13 +43,13 @@ import java.time.LocalTime;
import java.time.YearMonth ;
import java.time.ZoneId ;
import java.time.format.DateTimeFormatter ;
import java.time.temporal.ChronoUnit ;
import java.util.* ;
import java.util.stream.Collectors ;
import javax.annotation.Resource ;
import javax.servlet.http.HttpServletResponse ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.web.bind.annotation.GetMapping ;
import org.springframework.web.bind.annotation.PathVariable ;
import org.springframework.web.bind.annotation.PostMapping ;
@ -65,8 +69,23 @@ public class PatrolTaskStatusController extends BaseController {
private final FeignJobTaskClient feignJobTaskClient ;
private final RedisService redisService ;
private PatrolTaskController patrolTaskController ;
public PatrolTaskStatusController ( PatrolTaskController patrolTaskController , IPatrolTaskStatusService patrolTaskStatusService , IPatrolResultService patrolResultService , IPatrolTaskService patrolTaskService , FeignTaskClient feignTaskClient , FeignJobTaskClient feignJobTaskClient , RedisService redisService ) {
private IPatrolTaskResultMainService patrolTaskResultMainService ;
@Resource
private IResultAnalysisService resultAnalysisService ;
@Resource
private IPatrolTaskInfoService patrolTaskInfoService ;
public PatrolTaskStatusController (
PatrolTaskController patrolTaskController ,
IPatrolTaskStatusService patrolTaskStatusService ,
IPatrolResultService patrolResultService ,
IPatrolTaskService patrolTaskService ,
FeignTaskClient feignTaskClient ,
FeignJobTaskClient feignJobTaskClient ,
RedisService redisService ,
IPatrolTaskResultMainService patrolTaskResultMainService ) {
this . patrolTaskController = patrolTaskController ;
this . patrolTaskStatusService = patrolTaskStatusService ;
this . patrolResultService = patrolResultService ;
@ -74,48 +93,100 @@ public class PatrolTaskStatusController extends BaseController {
this . feignTaskClient = feignTaskClient ;
this . feignJobTaskClient = feignJobTaskClient ;
this . redisService = redisService ;
this . patrolTaskResultMainService = patrolTaskResultMainService ;
}
/ / @GetMapping ( { "/list" } )
/ / public TableDataInfo list ( PatrolTaskStatus patrolTaskStatus ) {
/ / this . startPage ( ) ;
/ / List < PatrolTaskStatus > patrolTaskStatusList = patrolTaskStatusService . selectPatrolTaskStatusList ( patrolTaskStatus ) ;
/ / for ( PatrolTaskStatus taskStatus : patrolTaskStatusList ) {
/ / if ( StringUtils . isNotEmpty ( taskStatus . getTaskCode ( ) ) ) {
/ / List < PatrolTask > patrolTaskList = patrolTaskService . selectPatrolTaskList ( PatrolTask . builder ( ) . taskCode ( taskStatus . getTaskCode ( ) ) . build ( ) ) ;
/ / if ( ! patrolTaskList . isEmpty ( ) ) {
/ / PatrolTask task = patrolTaskList . get ( 0 ) ;
/ / if ( StringUtils . isNotEmpty ( task . getType ( ) ) ) {
/ / taskStatus . setPatrolType ( task . getType ( ) ) ;
/ / }
/ / }
/ / }
/ /
/ / if ( StringUtils . isNotEmpty ( taskStatus . getTaskPatrolledId ( ) ) ) {
/ / PatrolResult patrolResult = new PatrolResult ( ) ;
/ / patrolResult . setTaskPatrolledId ( taskStatus . getTaskPatrolledId ( ) ) ;
/ / List < PatrolResult > patrolResultList = patrolResultService . selectPatrolResultList ( patrolResult ) ;
/ / if ( ! patrolResultList . isEmpty ( ) ) {
/ / taskStatus . setPointCount ( String . valueOf ( patrolResultList . size ( ) ) ) ;
/ / for ( PatrolResult patrolResultTemp : patrolResultList ) {
/ / if ( StringUtils . isNotEmpty ( patrolResultTemp . getValid ( ) ) ) {
/ / if ( patrolResultTemp . getValid ( ) . equals ( "0" ) ) {
/ / taskStatus . setPatrolStatus ( "0" ) ;
/ / } else {
/ / taskStatus . setPatrolStatus ( "1" ) ;
/ / }
/ / } else {
/ / taskStatus . setPatrolStatus ( "1" ) ;
/ / }
/ / }
/ / } else {
/ / taskStatus . setPatrolStatus ( "1" ) ;
/ / }
/ / } else {
/ / taskStatus . setPatrolStatus ( "1" ) ;
/ / }
/ / }
/ / log . info ( "[GAB] count: {}" , patrolTaskStatusList . size ( ) ) ;
/ / return getDataTable ( patrolTaskStatusList ) ;
/ / }
@GetMapping ( { "/list" } )
public TableDataInfo list ( PatrolTaskStatus patrolTaskStatus ) {
log . info ( "[TASK STATUS] patrolTaskStatus: {}" , patrolTaskStatus . toString ( ) ) ;
this . startPage ( ) ;
List < PatrolTaskStatus > patrolTaskStatusList = patrolTaskStatusService . selectPatrolTaskStatusList ( patrolTaskStatus ) ;
for ( PatrolTaskStatus taskStatus : patrolTaskStatusList ) {
if ( StringUtils . isNotEmpty ( taskStatus . getTaskCode ( ) ) ) {
List < PatrolTask > patrolTaskList = patrolTaskService . selectPatrolTaskList ( PatrolTask . builder ( ) . taskCode ( taskStatus . getTaskCode ( ) ) . build ( ) ) ;
if ( ! patrolTaskList . isEmpty ( ) ) {
PatrolTask task = patrolTaskList . get ( 0 ) ;
if ( StringUtils . isNotEmpty ( task . getType ( ) ) ) {
taskStatus . setPatrolType ( task . getType ( ) ) ;
}
}
}
if ( StringUtils . isNotEmpty ( taskStatus . getTaskPatrolledId ( ) ) ) {
PatrolResult patrolResult = new PatrolResult ( ) ;
patrolResult . setTaskPatrolledId ( taskStatus . getTaskPatrolledId ( ) ) ;
List < PatrolResult > patrolResultList = patrolResultService . selectPatrolResultList ( patrolResult ) ;
if ( ! patrolResultList . isEmpty ( ) ) {
taskStatus . setPointCount ( String . valueOf ( patrolResultList . size ( ) ) ) ;
for ( PatrolResult patrolResultTemp : patrolResultList ) {
if ( StringUtils . isNotEmpty ( patrolResultTemp . getValid ( ) ) ) {
if ( patrolResultTemp . getValid ( ) . equals ( "0" ) ) {
taskStatus . setPatrolStatus ( "0" ) ;
} else {
taskStatus . setPatrolStatus ( "1" ) ;
}
} else {
taskStatus . setPatrolStatus ( "1" ) ;
}
}
List < PatrolTaskStatus > list = patrolTaskStatusService . selectPatrolTaskStatusList ( patrolTaskStatus ) ;
log . info ( "[TASK STATUS] list cnt: {}" , list . size ( ) ) ;
String taskPatrolIds = "'" + list . stream ( ) . map ( ( item ) - > {
return item . getTaskPatrolledId ( ) ;
} ) . collect ( Collectors . joining ( "','" ) ) + "'" ;
log . info ( "[TASK STATUS] taskPatrolIds: {}" , taskPatrolIds ) ;
List < PatrolTaskResultMain > resultMains = patrolTaskResultMainService . selectMainFileStatus ( taskPatrolIds ) ;
String taskCodeIds = "'" + list . stream ( ) . map ( ( item ) - > {
return item . getTaskCode ( ) ;
} ) . collect ( Collectors . joining ( "','" ) ) + "'" ;
List < Map < String , Object > > pointList = patrolTaskInfoService . selectPatrolTaskInfoCount ( taskCodeIds ) ;
Map < String , String > pointMap = pointList . stream ( ) . collect ( Collectors . toMap ( ( item ) - > {
return ( String ) item . get ( "taskMajorId" ) ;
} , ( item ) - > {
return String . valueOf ( item . get ( "num" ) ) ;
} ) ) ;
list . forEach ( ( item ) - > {
item . setPatrolStatus ( "1" ) ;
item . setPointCount ( pointMap . get ( item . getTaskCode ( ) ) ) ;
if ( ! item . getTaskProgress ( ) . contains ( "100" ) ) {
item . setFileStatus ( "0" ) ;
} else {
List < PatrolTaskResultMain > collect = resultMains . stream ( ) . filter ( ( res ) - > {
return res . getTaskPatrolledId ( ) . equals ( item . getTaskPatrolledId ( ) ) ;
} ) . collect ( Collectors . toList ( ) ) ;
if ( ! collect . isEmpty ( ) ) {
item . setFileStatus ( ( collect . get ( 0 ) ) . getFileStatus ( ) ) ;
} else {
taskStatus . setPatrolStatus ( "1" ) ;
item . setFileStatus ( "0" ) ;
}
} else {
taskStatus . setPatrolStatus ( "1" ) ;
}
}
return getDataTable ( patrolTaskStatusList ) ;
ResultAnalysis resultAnalysis = new ResultAnalysis ( ) ;
log . info ( Color . GREEN + "[TASK STATUS] taskPatrolledId: {}" + Color . END , item . getTaskPatrolledId ( ) ) ;
resultAnalysis . setTaskPatrolledId ( item . getTaskPatrolledId ( ) ) ;
ResultAnalysis analysisRes = resultAnalysisService . selectTaskAbnormalData ( resultAnalysis ) ;
item . setCsQxNum ( analysisRes = = null ? 0 : analysisRes . getCsQxNum ( ) ) ;
item . setAiQxNum ( analysisRes = = null ? 0 : analysisRes . getAiQxNum ( ) ) ;
item . setCsYcNum ( analysisRes = = null ? 0 : analysisRes . getCsYcNum ( ) ) ;
item . setAiYcNum ( analysisRes = = null ? 0 : analysisRes . getAiYcNum ( ) ) ;
} ) ;
return this . getDataTable ( list ) ;
}
@Log ( title = "任务状态数据" , businessType = BizType . EXPORT )
@ -514,15 +585,8 @@ public class PatrolTaskStatusController extends BaseController {
/ / 立即执行任务
@GetMapping ( { "/controlChange" } )
public AjaxResult controlChange ( PatrolTask patrolTask ) {
String taskCode = redisService . getCacheObject ( RedisConst . TASK_CURRENT_CODE ) ;
if ( ! StringUtils . isEmpty ( taskCode ) ) {
log . info ( "[TASK] CURRENT EXEC TASK: {}" , taskCode ) ;
return AjaxResult . error ( 501 , "THERE TASK IS RUNNING!" ) ;
} else {
PatrolTask patrol = patrolTaskService . selectPatrolTaskByTaskId ( patrolTask . getTaskId ( ) ) ;
issueToRobot ( patrol ) ; / / type = 41 立即执行任务
return toAjax ( 1 ) ;
}
PatrolTask patrol = patrolTaskService . selectPatrolTaskByTaskId ( patrolTask . getTaskId ( ) ) ;
return issueToRobot ( patrol ) ; / / type = 41 立即执行任务
}
public void sendTaskToVideo ( final PatrolTask patrolTask ) {
@ -565,7 +629,7 @@ public class PatrolTaskStatusController extends BaseController {
}
public void issueToRobot ( PatrolTask patrolTask ) {
public AjaxResult issueToRobot ( PatrolTask patrolTask ) {
String receiveCode = "" ;
String sendCode = "" ;
BasedataEqpBookMoMain basedataEqpBookMoMain = new BasedataEqpBookMoMain ( ) ;
@ -594,24 +658,17 @@ public class PatrolTaskStatusController extends BaseController {
String str = JSONObject . toJSONString ( sendTask ) ;
this . feignTaskClient . sendCommand ( str ) ;
} else {
sendTaskToVideo ( patrolTask ) ;
String taskCode = redisService . getCacheObject ( RedisConst . TASK_CURRENT_CODE ) ;
if ( ! StringUtils . isEmpty ( taskCode ) ) {
log . info ( "[TASK] CURRENT EXEC TASK: {}" , taskCode ) ;
return AjaxResult . error ( 501 , "THERE TASK IS RUNNING!" ) ;
} else {
sendTaskToVideo ( patrolTask ) ;
}
}
/ /
/ / SendTask sendTaskcontrol = new SendTask ( ) ;
/ / sendTaskcontrol . setReceiveCode ( receiveCode ) ;
/ / sendTaskcontrol . setSendCode ( sendCode ) ;
/ / sendTaskcontrol . setCode ( devNo ) ;
/ / sendTaskcontrol . setType ( "1" ) ;
/ / sendTaskcontrol . setCommand ( "5" ) ;
/ / List < PatrolSendTask > sendTaskArrayList = new ArrayList < > ( ) ;
/ / PatrolSendTask patrolSendTask = new PatrolSendTask ( ) ;
/ / patrolSendTask . setValue ( "1" ) ;
/ / sendTaskArrayList . add ( patrolSendTask ) ;
/ / sendTaskcontrol . setItems ( sendTaskArrayList ) ;
/ / String jsonString = JSONObject . toJSONString ( sendTaskcontrol ) ;
/ / this . feignTaskClient . sendCommand ( jsonString ) ;
}
}
return toAjax ( 1 ) ;
}
@GetMapping ( { "/taskStatusChange" } )
@ -626,7 +683,7 @@ public class PatrolTaskStatusController extends BaseController {
if ( patrolTaskStatus = = null ) return error ( "no task: " + params . getLineId ( ) + " exist" ) ;
String command = params . getCommand ( ) ;
log . info ( Color . CYAN + "###### TASK STATUS CHANGE ######" + Color . END ) ;
log . info ( "================================================================TASK STATUS CHANGE=============================================================" ) ;
log . info ( "[TASK] cmd: {}, task: {}" , command , patrolTaskStatus ) ;
if ( TaskStatus . DONE . getCode ( ) . equals ( command ) ) {
patrolTaskStatus . setTaskState ( TaskStatus . RUNNING . getCode ( ) ) ;