Commit 70a88536 authored by litengwei's avatar litengwei

配置文件提交

parent 38a2f6c3
......@@ -132,6 +132,13 @@ public class CheckController extends AbstractBaseController {
@Autowired
JobService jobService;
private String P_STATIC_DAY = "p_static_day";
private String P_STATIC_MONTH = "p_static_month";
private String P_STATIC_WEEK = "p_static_week";
@Autowired
PlanTaskMapper planTaskMapper;
/**
......@@ -224,13 +231,11 @@ public class CheckController extends AbstractBaseController {
return ResponseHelper.buildResponse("无权执行该任务");
}
if (!requestParam.getIsOffline()) {
statu = planTask.getFinishStatus();
if (!requestParam.getIsOffline() && statu == PlanTaskFinishStatusEnum.OVERTIME.getValue()) {
return ResponseHelper.buildResponse("任务已超时,上传失败!");
}else if( statu == PlanTaskFinishStatusEnum.FINISHED.getValue()){
return ResponseHelper.buildResponse("任务已完成!");
}
statu = planTask.getFinishStatus();
if (!requestParam.getIsOffline() && statu == PlanTaskFinishStatusEnum.OVERTIME.getValue()) {
return ResponseHelper.buildResponse("任务已超时,上传失败!");
}else if( statu == PlanTaskFinishStatusEnum.FINISHED.getValue()){
return ResponseHelper.buildResponse("任务已完成!");
}
Date checkTime = requestParam.getIsOffline()?DateUtil.getLongDate(requestParam.getCheckTime()):new Date();
......@@ -253,8 +258,24 @@ public class CheckController extends AbstractBaseController {
Long planTaskId = requestParam.getPlanTaskId();
List<String> ids = new ArrayList<>();
ids.add(String.valueOf(planTaskId));
int status = planTaskMapper.selectTaskStatus(planTaskId);
jobService.updateEsPlanTaskList(ids, status);
Map<String, Object> map = planTaskMapper.selectTaskStatus(planTaskId);
if(map.get("status").toString().equals(String.valueOf(PlanTaskFinishStatusEnum.FINISHED))) {
jobService.updateEsPlanTaskList(ids, Integer.parseInt(map.get("status").toString()));
// 更新统计表
if(planTask.getPlanType().equals(String.valueOf(PlanTaskTypeStatusEnum.day.getValue()))) {
planTaskMapper.updateSingle(P_STATIC_DAY, XJConstant.RISK_NUM == Integer.parseInt(map.get("riskStatus").toString()) ? 1 : 0,
XJConstant.RISK_NUM == Integer.parseInt(map.get("riskStatus").toString()) ? 1 : 0,
planTask.getOrgCode(),planTask.getCheckDate());
} else if(planTask.getPlanType().equals(String.valueOf(PlanTaskTypeStatusEnum.week.getValue()))) {
planTaskMapper.updateSingle(P_STATIC_WEEK, XJConstant.RISK_NUM == Integer.parseInt(map.get("riskStatus").toString()) ? 1 : 0,
XJConstant.RISK_NUM == Integer.parseInt(map.get("riskStatus").toString()) ? 1 : 0,
planTask.getOrgCode(),planTask.getCheckDate());
} else {
planTaskMapper.updateSingle(P_STATIC_WEEK, XJConstant.RISK_NUM == Integer.parseInt(map.get("riskStatus").toString()) ? 1 : 0,
XJConstant.RISK_NUM == Integer.parseInt(map.get("riskStatus").toString()) ? 1 : 0,
planTask.getOrgCode(),planTask.getCheckDate());
}
}
return ResponseHelper.buildResponse(checkDto);
} else {
return ResponseHelperUtil.buildErrorResponse("无需重新巡检");
......
......@@ -243,7 +243,7 @@ public interface PlanTaskMapper extends BaseMapper {
List<PlanTaskDetail> selectTaskDetails(String id);
int selectTaskStatus(Long planTaskId);
Map<String, Object> selectTaskStatus(Long planTaskId);
void updatePlanTaskList(long planId, int oldStatus, int newStatus);
List<PlanTask> findPlanTask();
......@@ -262,6 +262,11 @@ public interface PlanTaskMapper extends BaseMapper {
void insertAll(String table,StaticDay item);
void updateData(String table,List<StaticDay> list);
void updateSingle(String table,int riskEnd, int noRiskEnd,String orgCode, String checkTime);
int deleteDate(String table);
Long selectRoutId(String id);
......
......@@ -2,12 +2,16 @@ package com.yeejoin.amos.patrol.business.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.patrol.business.bo.CheckInputSyncBo;
import com.yeejoin.amos.patrol.business.bo.PlanTaskSyncBo;
import com.yeejoin.amos.patrol.business.dao.mapper.CheckMapper;
import com.yeejoin.amos.patrol.business.dao.mapper.PlanTaskMapper;
import com.yeejoin.amos.patrol.business.dao.repository.IPlanTaskDao;
import com.yeejoin.amos.patrol.business.dao.repository.IPlanTaskDetailDao;
import com.yeejoin.amos.patrol.business.service.intfc.IPatrolDataSyncService;
import com.yeejoin.amos.patrol.common.enums.PatrolDataSyncTopicEnum;
import com.yeejoin.amos.patrol.common.enums.PlanTaskTypeStatusEnum;
import com.yeejoin.amos.patrol.dao.entity.*;
import com.yeejoin.amos.patrol.mqtt.WebMqttComponent;
import lombok.extern.slf4j.Slf4j;
......@@ -18,10 +22,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Async
......@@ -40,6 +43,19 @@ public class PatrolDataSyncServiceImpl implements IPatrolDataSyncService {
@Value("${emq.patrol.sync.switch}")
private Boolean patrolSyncSwitch;
@Autowired
private CheckMapper checkMapper;
private String P_STATIC_DAY = "p_static_day";
private String P_STATIC_MONTH = "p_static_month";
private String P_STATIC_WEEK = "p_static_week";
@Autowired
private PlanTaskMapper planTaskMapper;
@Override
public void checkDataSync(Check check) {
if (check != null) {
......@@ -238,7 +254,48 @@ public class PatrolDataSyncServiceImpl implements IPatrolDataSyncService {
}
}
@Override
@Async("asyncServiceExecutor")
public void taskStatic(String runDate) {
try {
runDate = DateUtils.dateFormat(new Date(), DateUtils.DATE_PATTERN);
} catch (ParseException e) {
e.printStackTrace();
}
log.info("开始更新统计表========");
// 插入日统计表
List<Map<String, Object>> listDay = checkMapper.planCount(runDate, null, String.valueOf(PlanTaskTypeStatusEnum.day.getValue()), null,null,null);
List<StaticDay> staticDays = listDay.stream().map(e->{
String s = JSON.toJSONString(e);
StaticDay staticDay = JSON.parseObject(s, StaticDay.class);
return staticDay;
}).collect(Collectors.toList());
// 插入周统计表
List<Map<String, Object>> listWeek = checkMapper.planCount(runDate, null, String.valueOf(PlanTaskTypeStatusEnum.week.getValue()), null,null,null);
List<StaticDay> staticWeeks = listWeek.stream().map(e->{
String s = JSON.toJSONString(e);
StaticDay staticWeek = JSON.parseObject(s, StaticDay.class);
return staticWeek;
}).collect(Collectors.toList());
// 插入月统计表
List<Map<String, Object>> listMonth = checkMapper.planCount(runDate, null, String.valueOf(PlanTaskTypeStatusEnum.month.getValue()), null,null,null);
List<StaticDay> staticMonths = listMonth.stream().map(e->{
String s = JSON.toJSONString(e);
StaticDay staticMonth = JSON.parseObject(s, StaticDay.class);
return staticMonth;
}).collect(Collectors.toList());
if(staticDays.size() > 0) {
planTaskMapper.updateData(P_STATIC_DAY,staticDays);
}
if(staticWeeks.size() > 0) {
planTaskMapper.updateData(P_STATIC_WEEK,staticDays);
}
if(staticMonths.size() > 0) {
planTaskMapper.updateData(P_STATIC_MONTH,staticDays);
}
log.info("更新统计表完成=======");
}
public String buildSyncMessage(String topic, Object object) {
Map<String, Object> map = new HashMap<>();
......
......@@ -68,6 +68,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
......@@ -108,6 +109,7 @@ import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.toJSONString;
@Service("planTaskService")
@EnableAsync
public class PlanTaskServiceImpl implements IPlanTaskService {
private final Logger log = LoggerFactory.getLogger(PlanTaskServiceImpl.class);
@Resource
......@@ -1333,6 +1335,23 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
esPlanTaskListDto.setTaskPlanNum(ObjectUtils.isEmpty(task.get("taskPlanNum")) ? "0" : task.get("taskPlanNum").toString());
esPlanTaskListDto.setPoints(planTaskDetails);
esPlanTaskList.save(esPlanTaskListDto);
// 生成巡检记录
jobService.createCheckRecord(planTask, userId);
// 更新统计表
if(planTask.getPlanType().equals(String.valueOf(PlanTaskTypeStatusEnum.day.getValue()))) {
planTaskMapper.updateSingle(P_STATIC_DAY, XJConstant.RISK_NUM == planTask.getRiskStatus() ? 1 : 0,
XJConstant.NORISK_NUM == planTask.getRiskStatus() ? 1 : 0,
planTask.getOrgCode(),planTask.getCheckDate());
} else if(planTask.getPlanType().equals(String.valueOf(PlanTaskTypeStatusEnum.week.getValue()))) {
planTaskMapper.updateSingle(P_STATIC_WEEK, XJConstant.RISK_NUM == planTask.getRiskStatus() ? 1 : 0,
XJConstant.NORISK_NUM == planTask.getRiskStatus() ? 1 : 0,
planTask.getOrgCode(),planTask.getCheckDate());
} else {
planTaskMapper.updateSingle(P_STATIC_WEEK, XJConstant.RISK_NUM == planTask.getRiskStatus() ? 1 : 0,
XJConstant.NORISK_NUM == planTask.getRiskStatus() ? 1 : 0,
planTask.getOrgCode(),planTask.getCheckDate());
}
}
}
......
......@@ -33,4 +33,6 @@ public interface IPatrolDataSyncService {
void planTaskDataSync(List<PlanTask> planTaskList);
void planTaskDetailDataSync(List<PlanTaskDetail> planTaskDetailList);
void taskStatic(String runDate);
}
......@@ -72,6 +72,7 @@ public interface IPlanTaskService {
*/
void taskStaticExecution(String runDate);
/**
* 定时任务发送消息执行中的消息
*
......
......@@ -25,7 +25,7 @@ public class ApplicationStartListener implements ApplicationListener<ContextRefr
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
try{
if(event.getApplicationContext().getParent().getParent().getParent() == null){
if(event.getApplicationContext().getId().equals("application-1")){
iPlanTaskService.initPlanStatusOrGenDate();
pointService.initPointStatus();
jobService.initScheduler();
......
......@@ -4,25 +4,23 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import com.yeejoin.amos.patrol.business.bo.CheckInputSyncBo;
import com.yeejoin.amos.patrol.business.bo.PlanTaskSyncBo;
import com.yeejoin.amos.patrol.business.constants.XJConstant;
import com.yeejoin.amos.patrol.business.dao.mapper.CheckInputMapper;
import com.yeejoin.amos.patrol.business.dao.mapper.CheckMapper;
import com.yeejoin.amos.patrol.business.dao.mapper.MsgMapper;
import com.yeejoin.amos.patrol.business.dao.mapper.PlanTaskMapper;
import com.yeejoin.amos.patrol.business.dao.repository.*;
import com.yeejoin.amos.patrol.business.entity.mybatis.PlanTaskPointInputItemBo;
import com.yeejoin.amos.patrol.business.entity.mybatis.PointCheckDetailBo;
import com.yeejoin.amos.patrol.business.feign.JcsFeignClient;
import com.yeejoin.amos.patrol.business.param.CheckInputParam;
import com.yeejoin.amos.patrol.business.param.MsgConfigParam;
import com.yeejoin.amos.patrol.business.service.impl.PlanServiceImpl;
import com.yeejoin.amos.patrol.business.service.intfc.IMessageService;
import com.yeejoin.amos.patrol.business.service.intfc.IPatrolDataSyncService;
import com.yeejoin.amos.patrol.business.service.intfc.IPlanService;
......@@ -35,17 +33,16 @@ import com.yeejoin.amos.patrol.core.common.response.AppPointCheckRespone;
import com.yeejoin.amos.patrol.dao.entity.*;
import com.yeejoin.amos.patrol.feign.RemoteSecurityService;
import com.yeejoin.amos.patrol.mqtt.WebMqttComponent;
import liquibase.pro.packaged.I;
import org.quartz.Job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -53,12 +50,14 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.toJSONString;
import static com.yeejoin.amos.patrol.common.enums.NotifyBusinessTypeEum.planTask;
@Service("jobService")
@EnableAsync
public class JobService implements IJobService {
private final Logger log = LoggerFactory.getLogger(JobService.class);
......@@ -105,6 +104,9 @@ public class JobService implements IJobService {
private IMsgDao iMsgDao;
@Autowired
private CheckMapper checkMapper;
@Autowired
private ITaskFeedbackDao taskFeedbackDao;
@Autowired
......@@ -131,6 +133,12 @@ public class JobService implements IJobService {
@Autowired
JcsFeignClient jcsFeignClient;
private String P_STATIC_DAY = "p_static_day";
private String P_STATIC_MONTH = "p_static_month";
private String P_STATIC_WEEK = "p_static_week";
@Override
@Transactional
public void initScheduler() {
......@@ -183,7 +191,9 @@ public class JobService implements IJobService {
List<PlanTask> planTaskList = planTaskMapper.getInitPlanTaskList();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
log.error("项目初始化执行开始添加定时任务监控========");
planTaskList.forEach(planTask -> {
boolean flag = false;
for(PlanTask planTask: planTaskList) {
try {
Date beginTime = sdf.parse(planTask.getBeginTime());
Date endTime = sdf.parse(planTask.getEndTime());
......@@ -197,37 +207,46 @@ public class JobService implements IJobService {
log.error("项目初始化进行中监听器任务监控========");
ids = planTaskMapper.selectPlanTaskIdList(planTask.getPlanId(), PlanTaskFinishStatusEnum.NOTSTARTED.getValue());
if(!ObjectUtils.isEmpty(ids)){
planTaskMapper.updatePlanTaskList(ids, PlanTaskFinishStatusEnum.UNDERWAY.getValue());
flag = true;
// planTaskMapper.updatePlanTaskList(ids, PlanTaskFinishStatusEnum.UNDERWAY.getValue());
updateEsPlanTaskList(ids, PlanTaskFinishStatusEnum.UNDERWAY.getValue());
}
planTaskAddJob(planTask);
} else if (endTime.getTime() < timestamp) {
flag = true;
log.error("修改为漏检生成记录========");
updatePlanTaskAndDetailStatus(planTask);
// updatePlanTaskAndDetailStatus(planTask);
}
} else {
if (endTime.getTime() < timestamp) {
log.error("项目初始化进行中监听器任务监控2222========");
ids = planTaskMapper.selectPlanTaskIdList(planTask.getPlanId(), PlanTaskFinishStatusEnum.NOTSTARTED.getValue());
if(!ObjectUtils.isEmpty(ids)){
planTaskMapper.updatePlanTaskList(ids, PlanTaskFinishStatusEnum.UNDERWAY.getValue());
flag = true;
// planTaskMapper.updatePlanTaskList(ids, PlanTaskFinishStatusEnum.UNDERWAY.getValue());
updateEsPlanTaskList(ids, PlanTaskFinishStatusEnum.UNDERWAY.getValue());
}
planTaskAddJob(planTask);
} else {
flag = true;
log.error("修改为漏检生成记录2222========");
updatePlanTaskAndDetailStatus(planTask);
// updatePlanTaskAndDetailStatus(planTask);
}
}
} catch (ParseException e) {
// TODO Auto-generated catch block
log.debug(e.getMessage());
log.info(e.getMessage());
e.printStackTrace();
}
});
}
// 重新更新统计表 -- 只更新当天统计的数据
if(flag) {
patrolDataSyncService.taskStatic(null);
}
}
public void updateEsPlanTaskList(List<String> ids, int status) {
List<ESPlanTaskListDto> esPlanTaskListDtos = new ArrayList<>();
for (String id : ids) {
......@@ -705,12 +724,14 @@ public class JobService implements IJobService {
if (!ValidationUtil.isEmpty(notStartPlanTaskList)) {
planTaskMapper.updatePlanTaskByPlanId(notStartPlanTaskList, PlanTaskFinishStatusEnum.UNDERWAY.getValue());
updateEsPlanTaskList(notStartPlanTaskStringList,PlanTaskFinishStatusEnum.UNDERWAY.getValue());
patrolDataSyncService.taskStatic(null);
}
} else if (XJConstant.STATUS_MONITOR_END.equals(jobType)) {
if (!ValidationUtil.isEmpty(StartPlanTaskList)) {
planTaskMapper.updatePlanTaskByPlanId(StartPlanTaskList,PlanTaskFinishStatusEnum.OVERTIME.getValue());
planTaskMapper.updatePlanTaskDetailsByPlanId(StartPlanTaskList);
updateEsPlanTaskList(StartPlanTaskStringList,PlanTaskFinishStatusEnum.UNDERWAY.getValue());
updateEsPlanTaskList(StartPlanTaskStringList,PlanTaskFinishStatusEnum.OVERTIME.getValue());
patrolDataSyncService.taskStatic(null);
for (PlanTask planTask: planTaskList
) {
createOmissionCheckRecord(planTask);
......
......@@ -1687,6 +1687,23 @@
#{id}
</foreach>
</update>
<update id="updateData">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update ${table}
<set>
not_start = #{item.notStart},risk_end = #{item.riskEnd},
no_risk_end = #{item.noRiskEnd},time_out = #{item.timeOut},
create_date = now()
</set>
where org_code = #{item.orgCode} AND check_time = #{item.checkTime}
</foreach>
</update>
<update id="updateSingle">
update ${table} set not_start = not_start - 1,risk_end = risk_end + #{riskEnd},
no_risk_end = no_risk_end + #{noRiskEnd}
where org_code = #{orgCode} AND check_time = #{checkTime}
</update>
<select id="selectPlanTaskIdList" resultType="java.lang.String">
SELECT
......@@ -1707,8 +1724,8 @@
task_no = #{id}
</select>
<select id="selectTaskStatus" resultType="java.lang.Integer">
select finish_status from "p_plan_task" where plan_id = #{planTaskId}
<select id="selectTaskStatus" resultType="java.util.Map">
select finish_status status, org_code orgCode, check_date checkDate, plan_type planType, risk_status riskStatus from "p_plan_task" where id = #{planTaskId}
</select>
<delete id="deleteDate">
......
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