数据校验修改

This commit is contained in:
GUO 2024-06-01 21:06:55 +08:00
parent 2f97b5e3db
commit 5c9e1dc443
6 changed files with 114 additions and 46 deletions

View File

@ -25,4 +25,5 @@ public interface Cts {
String TYPE = "type";
String TEAM_ID = "teamId";
String IF_FROM_TASK_KEY = "ifFromTaskKey";
String DEPARTMENT_ID = "departmentId";
}

View File

@ -131,4 +131,15 @@ public class XzHikvisionCompareDataController {
public Result<JSONObject> checkCompareDataException(@ApiIgnore @RequestBody Map<String, Object> param) {
return Result.success(xzHikvisionCompareDataService.checkCompareDataException(param));
}
@ApiOperation(value = "人员/车辆手动校验数据", notes = "人员/车辆手动校验数据", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "type", value = "1人员2车辆", paramType = "body", required = true, dataType = "Integer"),
})
@PostMapping(value = "/manualCompareData")
public Result manualCompareData(@ApiIgnore @RequestBody Map<String ,Object> param) {
xzHikvisionCompareDataService.manualCompareData(param);
return Result.ok();
}
}

View File

@ -58,4 +58,6 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
void addSuccessShow(String projectSn, String type);
JSONObject checkCompareDataException(Map<String, Object> param);
void manualCompareData(Map<String, Object> param);
}

View File

@ -32,6 +32,7 @@ import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionCompareData;
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper;
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionCompareDataService;
import com.zhgd.xmgl.task.HikvisionTask;
import com.zhgd.xmgl.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
@ -41,10 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @Description: 星纵-海康数据校验失败记录
@ -58,6 +56,9 @@ import java.util.Map;
public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCompareDataMapper, XzHikvisionCompareData> implements IXzHikvisionCompareDataService {
@Autowired
private ICarInfoService carInfoService;
@Lazy
@Autowired
private HikvisionTask hikvisionTask;
@Autowired
private XzHikvisionCompareDataMapper xzHikvisionCompareDataMapper;
@Autowired
@ -465,4 +466,23 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
}
return (JSONObject) hashValues;
}
@Override
public void manualCompareData(Map<String, Object> param) {
Integer type = MapUtils.getInteger(param, "type");
String projectSn = MapUtils.getString(param, Cts.PROJECT_SN);
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
try {
if (Objects.equals(type, 1)) {
//人员
hikvisionTask.compareHikvisionForEnterpriseEtc(projectInfoBySn);
} else if (Objects.equals(type, 2)) {
//车辆
hikvisionTask.compareHikvisionForCar(projectInfoBySn);
}
} catch (Exception e) {
log.error("", e);
addExceptionShowIfNull(projectSn);
}
}
}

View File

@ -86,10 +86,10 @@ public class HikvisionTask {
/**
* 数据校验同步
*/
@SchedulerLock(name = "dataCompare", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5)
@SchedulerLock(name = "compareData", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5)
@Scheduled(cron = "0 0 3 * * ?")
@RequestMapping("dataCompare")
public void dataCompare() throws Exception {
@RequestMapping("compareData")
public void compareData() throws Exception {
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
for (Project project : projects) {
try {
@ -104,7 +104,7 @@ public class HikvisionTask {
}
}
private void compareHikvisionForEnterpriseEtc(Project project) throws Exception {
public void compareHikvisionForEnterpriseEtc(Project project) throws Exception {
//对比企业
JSONObject param = new JSONObject();
HikvisionUtil.addPageParamIfAbsent(param);
@ -156,9 +156,11 @@ public class HikvisionTask {
if (CollUtil.isEmpty(listJa)) {
for (TeamInfo teamInfo : teamList) {
xzHikvisionCompareDataService.addCompareDataForTeam(project, teamInfo.getTeamName(), 0, 1, String.valueOf(teamInfo.getId()));
compareHikvisionForWorker(project, String.valueOf(teamInfo.getId()), 1);
}
for (DepartmentInfo departmentInfo : departmentInfoList) {
xzHikvisionCompareDataService.addCompareDataForDepartment(project, departmentInfo.getDepartmentName(), 0, 1, String.valueOf(departmentInfo.getId()));
compareHikvisionForWorker(project, String.valueOf(departmentInfo.getId()), 2);
}
} else {
//isc存在平台也存在
@ -171,32 +173,51 @@ public class HikvisionTask {
Map<String, DepartmentInfo> myDepartmentMap = departmentInfoList.stream().collect(Collectors.toMap(DepartmentInfo::getDepartmentName, Function.identity(), (o, o2) -> o2));
for (String name : nameSet) {
String index;
Integer type = null;
if (myTeamMap.containsKey(name) && !iscMap.containsKey(name)) {
index = String.valueOf(myTeamMap.get(name).getId());
xzHikvisionCompareDataService.addCompareDataForTeam(project, name, 0, 1, index);
type = 1;
} else if (myDepartmentMap.containsKey(name) && !iscMap.containsKey(name)) {
index = String.valueOf(myDepartmentMap.get(name).getId());
xzHikvisionCompareDataService.addCompareDataForDepartment(project, name, 0, 1, index);
type = 2;
} else if ((!myTeamMap.containsKey(name) && !myDepartmentMap.containsKey(name)) && iscMap.containsKey(name)) {
index = iscMap.get(name).getString("orgIndexCode");
xzHikvisionCompareDataService.addCompareDataForTeam(project, name, 1, 0, index);
} else {
type = 1;
} else if (myTeamMap.containsKey(name) && iscMap.containsKey(name)) {
//班组存在和isc存在
index = String.valueOf(myTeamMap.get(name).getId());
type = 1;
} else {
//部门存在和isc存在
index = String.valueOf(myDepartmentMap.get(name).getId());
type = 2;
}
compareHikvisionForWorker(project, index);
compareHikvisionForWorker(project, index, type);
}
}
xzHikvisionCompareDataService.addSuccessShow(project.getProjectSn(), "1");
}
private void compareHikvisionForWorker(Project project, String orgIndex) throws Exception {
/**
* @param project
* @param orgIndex
* @param type 1班组 2部门
* @throws Exception
*/
private void compareHikvisionForWorker(Project project, String orgIndex, Integer type) throws Exception {
JSONObject param = new JSONObject();
HikvisionUtil.addPageParamIfAbsent(param);
param.put("orgIndexCode", orgIndex);
JSONObject rtJo = hikvisionCall.getWorkerListByOrg(project, param);
IPage<WorkerInfo> workerPage = workerInfoService.selectWorkerInfoList(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.TEAM_ID, orgIndex).build());
IPage<WorkerInfo> workerPage = workerInfoService.selectWorkerInfoList(new MapBuilder<String, Object>()
.put(Cts.PROJECT_SN, project.getProjectSn())
.put(type == 1, Cts.TEAM_ID, orgIndex)
.put(type == 2, Cts.DEPARTMENT_ID, orgIndex)
.build());
List<WorkerInfo> workerInfoList = workerPage.getRecords();
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
JSONArray listJa = dataJo.getJSONArray("list");
@ -235,7 +256,7 @@ public class HikvisionTask {
xzHikvisionCompareDataService.addSuccessShow(project.getProjectSn(), "3");
}
private void compareHikvisionForCar(Project project) throws Exception {
public void compareHikvisionForCar(Project project) throws Exception {
JSONObject param = new JSONObject();
HikvisionUtil.addPageParamIfAbsent(param);
JSONObject rtJo = HikvisionUtil.getCarList(project, param);

View File

@ -1,7 +1,6 @@
package com.zhgd.xmgl.util;
import java.util.HashMap;
import java.util.Map;
/**
* 一个简单的mapParam构建器
@ -30,38 +29,6 @@ public class MapBuilder<K, V> {
this.mapParam = mapParam;
}
/**
* put方法返回MapParamBuilder构建器
*
* @param key
* @param value
* @return
*/
public MapBuilder<K, V> put(K key, V value) {
mapParam.put(key, value);
return this;
}
/**
* 删除Key
*
* @param key
* @return
*/
public MapBuilder<K, V> remove(K key) {
mapParam.remove(key);
return this;
}
/**
* 返回构建好的map参数
*
* @return
*/
public HashMap<K, V> build() {
return mapParam;
}
public static void main(String[] args) {
HashMap<String, String> map = new MapBuilder<String, String>()
.put("key1", "value1")
@ -93,4 +60,50 @@ public class MapBuilder<K, V> {
}
/**
* put方法返回MapParamBuilder构建器
*
* @param key
* @param value
* @return
*/
public MapBuilder<K, V> put(K key, V value) {
mapParam.put(key, value);
return this;
}
/**
* put方法返回MapParamBuilder构建器
*
* @param key
* @param value
* @return
*/
public MapBuilder<K, V> put(boolean isPut, K key, V value) {
if (isPut) {
mapParam.put(key, value);
}
return this;
}
/**
* 删除Key
*
* @param key
* @return
*/
public MapBuilder<K, V> remove(K key) {
mapParam.remove(key);
return this;
}
/**
* 返回构建好的map参数
*
* @return
*/
public HashMap<K, V> build() {
return mapParam;
}
}