Commit a09cf9f3 authored by 高建强's avatar 高建强

item:巡查数据-站端与中心级数据同步

parent 061d3b27
......@@ -7,7 +7,7 @@ public enum PatrolDataSyncTopicEnum {
CHECK_SHOT("checkShot", "patrol/sync/checkShot"),
PLAN_TASK("planTask", "patrol/sync/planTask"),
PLAN_TASK_DETAIL("planTaskDetail", "patrol/sync/planTaskDetail"),
CHECK_INPUT_BO("checkInputBo", "patrol/sync/checkShotBo");
CHECK_INPUT_BO("checkInputBo", "patrol/sync/checkInputBo");
private String type;
private String topic;
......
......@@ -5,10 +5,7 @@ import com.yeejoin.amos.patrol.business.bo.CheckInputSyncBo;
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.dao.entity.Check;
import com.yeejoin.amos.patrol.dao.entity.CheckInput;
import com.yeejoin.amos.patrol.dao.entity.CheckShot;
import com.yeejoin.amos.patrol.dao.entity.PlanTaskDetail;
import com.yeejoin.amos.patrol.dao.entity.*;
import com.yeejoin.amos.patrol.mqtt.WebMqttComponent;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
......@@ -129,6 +126,32 @@ public class PatrolDataSyncServiceImpl implements IPatrolDataSyncService {
}
}
@Override
public void planTaskDataSync(PlanTask planTask) {
try {
if (planTask != null) {
String message = buildSyncMessage(PatrolDataSyncTopicEnum.CHECK_INPUT_BO.getTopic(), planTask);
webMqttComponent.publish(PatrolDataSyncTopicEnum.EQM_PATROL_CREATED.getTopic(), message);
}
} catch (Exception e) {
log.error("站端与中心级巡检数据【planTask】同步推送失败-----------" + e.getMessage());
}
}
@Override
public void planTaskDataSync(List<PlanTask> planTaskList) {
try {
if (CollectionUtils.isNotEmpty(planTaskList)) {
planTaskList.forEach(x -> {
String message = buildSyncMessage(PatrolDataSyncTopicEnum.PLAN_TASK.getTopic(), x);
webMqttComponent.publish(PatrolDataSyncTopicEnum.EQM_PATROL_CREATED.getTopic(), message);
});
}
} catch (Exception e) {
log.error("站端与中心级巡检数据【PlanTask】同步推送失败-----------" + e.getMessage());
}
}
public String buildSyncMessage(String topic, Object object) {
Map<String, Object> map = new HashMap<>();
map.put("topic", topic);
......
......@@ -11,6 +11,7 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.rule.RuleTrigger;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.patrol.business.bo.CheckInputSyncBo;
import com.yeejoin.amos.patrol.business.constants.XJConstant;
import com.yeejoin.amos.patrol.business.dao.mapper.PlanMapper;
import com.yeejoin.amos.patrol.business.dao.mapper.PlanTaskDetailMapper;
......@@ -29,6 +30,7 @@ import com.yeejoin.amos.patrol.business.feign.JcsFeignClient;
import com.yeejoin.amos.patrol.business.param.CheckPtListPageParam;
import com.yeejoin.amos.patrol.business.param.PlanTaskPageParam;
import com.yeejoin.amos.patrol.business.service.intfc.ICheckService;
import com.yeejoin.amos.patrol.business.service.intfc.IPatrolDataSyncService;
import com.yeejoin.amos.patrol.business.service.intfc.IPlanTaskService;
import com.yeejoin.amos.patrol.business.util.PlanTaskUtil;
import com.yeejoin.amos.patrol.business.util.Toke;
......@@ -59,6 +61,8 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
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.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
......@@ -116,9 +120,6 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
private EquipFeign equipFeign;
@Autowired
private RulePlanService rulePlanService;
@Autowired
private RuleTrigger ruleTrigger;
@Autowired
......@@ -126,6 +127,9 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
@Autowired
JcsFeignClient jcsFeignClient;
@Autowired
private IPatrolDataSyncService patrolDataSyncService;
private final String PATROL_PLAN_TASK_KEY = "PATROL_PLAN_ID:";
private final String packageId = "消息/addCheckRule";
......@@ -734,6 +738,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
}
List<PlanTask> planTaskList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = list.get(i).get("BEGIN_TIME").toString();
......@@ -828,6 +833,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
// 定时任务监控
jobService.planTaskAddJob(planTask);
planTaskList.add(planTask);
}
// 3.如果为自动任务调用,则更新id,如果重做或且下次时间大于等于明天,则更新planTaskId到plan表
......@@ -849,13 +855,19 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
paramMap.put("next_gen_date", DateUtil.formatDatrToStr(now, "yyyy-MM-dd"));
}
planMapper.updPlanStatusOrGenDate(paramMap);// 更新下次任务生成日期
// 巡检站端与中心级数据同步
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
// 事物提交后业务逻辑
patrolDataSyncService.planTaskDataSync(planTaskList);
}
});
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new RuntimeException(e.getMessage());
}
// return deptMap;
}
......@@ -924,6 +936,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
}
List<PlanTask> planTaskList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = list.get(i).get("BEGIN_TIME").toString();
......@@ -1018,6 +1031,7 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
// 定时任务监控
jobService.planTaskAddJob(planTask);
planTaskList.add(planTask);
}
// 3.如果为自动任务调用,则更新id,如果重做或且下次时间大于等于明天,则更新planTaskId到plan表
......@@ -1039,11 +1053,17 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
paramMap.put("next_gen_date", DateUtil.formatDatrToStr(now, "yyyy-MM-dd"));
}
planMapper.updPlanStatusOrGenDate(paramMap);// 更新下次任务生成日期
// 巡检站端与中心级数据同步
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
// 事物提交后业务逻辑
patrolDataSyncService.planTaskDataSync(planTaskList);
}
});
} catch (Exception e) {
log.error(e.getMessage(), e);
}
// return deptMap;
}
......
......@@ -7,36 +7,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.patrol.business.constants.XJConstant;
import com.yeejoin.amos.patrol.business.dao.mapper.InputItemMapper;
import com.yeejoin.amos.patrol.business.dao.mapper.PointMapper;
import com.yeejoin.amos.patrol.business.dao.mapper.RouteMapper;
import com.yeejoin.amos.patrol.business.dao.repository.*;
import com.yeejoin.amos.patrol.business.dto.PointClassifySynDto;
import com.yeejoin.amos.patrol.business.entity.mybatis.CheckChkExListBo;
import com.yeejoin.amos.patrol.business.entity.mybatis.CheckPtListBo;
import com.yeejoin.amos.patrol.business.entity.mybatis.PushTargetBo;
import com.yeejoin.amos.patrol.business.feign.EquipFeign;
import com.yeejoin.amos.patrol.business.feign.JcsFeignClient;
import com.yeejoin.amos.patrol.business.param.*;
import com.yeejoin.amos.patrol.business.service.intfc.IPatrolDataSyncService;
import com.yeejoin.amos.patrol.business.service.intfc.IPointService;
import com.yeejoin.amos.patrol.business.util.DaoCriteria;
import com.yeejoin.amos.patrol.business.vo.*;
import com.yeejoin.amos.patrol.common.enums.PointStatusEnum;
import com.yeejoin.amos.patrol.core.common.request.CommonPageable;
import com.yeejoin.amos.patrol.core.common.response.PointResponse;
import com.yeejoin.amos.patrol.core.enums.QueryOperatorEnum;
import com.yeejoin.amos.patrol.core.util.StringUtil;
import com.yeejoin.amos.patrol.core.util.query.BaseQuerySpecification;
import com.yeejoin.amos.patrol.dao.entity.*;
import com.yeejoin.amos.patrol.exception.YeeException;
import com.yeejoin.amos.patrol.feign.RemoteSecurityService;
import com.yeejoin.amos.safety.common.cache.PointStatusCache;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.assertj.core.util.Sets;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
......@@ -46,6 +41,8 @@ import org.springframework.data.domain.*;
import org.springframework.data.jpa.domain.Specification;
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.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -57,10 +54,7 @@ import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.beans.PropertyDescriptor;
import java.math.BigInteger;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
@Service("pointService")
......@@ -91,7 +85,6 @@ public class PointServiceImpl implements IPointService {
@Autowired
private IRoutePointItemDao iRoutePointItemDao;
@Resource
private RouteMapper routeMapper;
......@@ -112,6 +105,9 @@ public class PointServiceImpl implements IPointService {
@Autowired
private JcsFeignClient jcsFeignClient;
@Autowired
private IPatrolDataSyncService patrolDataSyncService;
@Override
@Transactional
public Point addPoint(PointParam pointParam) {
......@@ -648,6 +644,7 @@ public class PointServiceImpl implements IPointService {
iRoutePointItemDao.delRoutePointItem(routePointId.longValue());
iRoutePointDao.deleteById(Long.parseLong(routePointId.toString()));
}
List<PlanTask> planTaskList = new ArrayList<>();
for (long pointId : idList) {
List<PlanTaskDetail> planDetailList = iPlanTaskDetailDao.findALLByPointId(pointId);
for (PlanTaskDetail planTaskDetail : planDetailList) {
......@@ -659,15 +656,26 @@ public class PointServiceImpl implements IPointService {
planTask.setFinishNum(planTask.getFinishNum() - 1);
planTask.setPointNum(planTask.getPointNum() - 1);
planTaskDao.save(planTask);
planTaskList.add(planTask);
} else {
planTask.setPointNum(planTask.getPointNum() - 1);
planTaskDao.save(planTask);
planTaskList.add(planTask);
}
}
}
iPlanTaskDetailDao.deletePlanTaskDetailByPointId(idList); // 删除p_plan_task_detail相关行
iPointDao.delPointById(idList);
// 巡检站端与中心级数据同步
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
// 事物提交后业务逻辑
patrolDataSyncService.planTaskDataSync(planTaskList);
}
});
return idList;
}
......
......@@ -5,6 +5,7 @@ import com.yeejoin.amos.patrol.business.bo.CheckInputSyncBo;
import com.yeejoin.amos.patrol.dao.entity.Check;
import com.yeejoin.amos.patrol.dao.entity.CheckInput;
import com.yeejoin.amos.patrol.dao.entity.CheckShot;
import com.yeejoin.amos.patrol.dao.entity.PlanTask;
import java.util.List;
......@@ -27,4 +28,8 @@ public interface IPatrolDataSyncService {
void checkInputBoDataSync(CheckInputSyncBo checkInputSyncBo);
void checkInputBoDataSync(List<CheckInputSyncBo> checkInputSyncBoList);
void planTaskDataSync(PlanTask planTask);
void planTaskDataSync(List<PlanTask> planTaskList);
}
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