wisdomisite-java/src/main/java/com/zhgd/xmgl/call/HousingDataCall.java
2023-02-16 15:28:15 +08:00

385 lines
20 KiB
Java

package com.zhgd.xmgl.call;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.entity.ThirdPartyPlatformService;
import com.zhgd.xmgl.modules.basicdata.entity.UploadExecuteRecord;
import com.zhgd.xmgl.modules.basicdata.mapper.ThirdPartyPlatformServiceMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.UploadExecuteRecordMapper;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper;
import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.mapper.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @program: wisdomSite
* @description: 住建局数据发送
* @author: Mr.Peng
* @create: 2021-01-06 09:51
**/
@Slf4j
@Component
public class HousingDataCall {
@Autowired
private ProjectUfaceConfigMapper projectUfaceConfigMapper;
@Autowired
private WorkerInfoMapper workerInfoMapper;
@Autowired
private ThirdPartyPlatformServiceMapper thirdPartyPlatformServiceMapper;
@Autowired
private TeamInfoMapper teamInfoMapper;
@Autowired
private DepartmentInfoMapper departmentInfoMapper;
@Autowired
private EnterpriseInfoMapper enterpriseInfoMapper;
@Autowired
private WorkerContractMapper workerContractMapper;
@Autowired
private UploadExecuteRecordMapper uploadExecuteRecordMapper;
@Autowired
private UfaceDevMapper ufaceDevMapper;
@Value("${serverUrl}")
private String serverUrl;
/**
* 人员新增
*
* @param projectSn
* @param
*/
public void sendAddWork(String projectSn, WorkerInfo workerInfo) {
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
if (tempProjectUfaceConfig != null && StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing()) && !"0".equals(tempProjectUfaceConfig.getHousing())) {
//WorkerInfo workerInfo=workerInfoMapper.selectById(workerId);
if (workerInfo != null && workerInfo.getIsUploadHousing() != null && workerInfo.getIsUploadHousing() == 1) {
Map<String, Object> info = BeanUtil.beanToMap(workerInfo);
if (workerInfo.getIdCardBigPhotoUrl().startsWith("http")) {
info.put("idCardBigPhotoUrl", workerInfo.getIdCardBigPhotoUrl());
} else {
info.put("idCardBigPhotoUrl", serverUrl + "/image/" + workerInfo.getIdCardBigPhotoUrl());
}
if (workerInfo.getIdCardUpPhotoUrl().startsWith("http")) {
info.put("idCardUpPhotoUrl", workerInfo.getIdCardUpPhotoUrl());
} else {
info.put("idCardUpPhotoUrl", serverUrl + "/image/" + workerInfo.getIdCardUpPhotoUrl());
}
if (workerInfo.getIdCardDownPhotoUrl().startsWith("http")) {
info.put("idCardDownPhotoUrl", workerInfo.getIdCardDownPhotoUrl());
} else {
info.put("idCardDownPhotoUrl", serverUrl + "/image/" + workerInfo.getIdCardDownPhotoUrl());
}
if (workerInfo.getFieldAcquisitionUrl().startsWith("http")) {
info.put("fieldAcquisitionUrl", workerInfo.getFieldAcquisitionUrl());
} else {
info.put("fieldAcquisitionUrl", serverUrl + "/image/" + workerInfo.getFieldAcquisitionUrl());
}
//查询企业
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
param.put("enterpriseId", workerInfo.getEnterpriseId());
EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param);
QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getProjectSn, workerInfo.getProjectSn());
List<UfaceDev> list = ufaceDevMapper.selectList(qw);
if ("0".equals(workerInfo.getUfaceDevId())) {
workerInfo.setUfaceDevId(null);
}
StringBuilder devBuilder = new StringBuilder();
if (StringUtils.isNotEmpty(workerInfo.getUfaceDevId())) {
String[] devId = workerInfo.getUfaceDevId().split(",");
for (UfaceDev dev : list) {
for (String id : devId) {
if (id.equals(dev.getId().toString())) {
if (devBuilder.length() > 0) {
devBuilder.append(",");
}
devBuilder.append(dev.getDevSn());
}
}
}
} else {
for (UfaceDev dev : list) {
if (devBuilder.length() > 0) {
devBuilder.append(",");
}
devBuilder.append(dev.getDevSn());
}
}
info.put("deviceSerial", devBuilder.toString());
//查询合同
QueryWrapper<WorkerContract> qu = new QueryWrapper<>();
qu.lambda().eq(WorkerContract::getWorkerId, workerInfo.getId());
List<WorkerContract> contractList = workerContractMapper.selectList(qu);
Map<String, Object> data = new HashMap<>();
data.put("projectSn", workerInfo.getProjectSn());
data.put("workerInfo", info);
data.put("enterpriseInfo", enterpriseInfo);
if (workerInfo.getPersonType() == 1) {
//查询班组
EntityMap teamInfo = teamInfoMapper.getTeamInfo(workerInfo.getTeamId());
data.put("departmentInfo", null);
data.put("teamInfo", teamInfo);
} else {
//查询部门
EntityMap departmentInfo = departmentInfoMapper.getDepartmentInfo(workerInfo.getDepartmentId());
data.put("departmentInfo", departmentInfo);
data.put("teamInfo", null);
}
if (contractList != null && contractList.size() > 0) {
Map<String, Object> contractInfo = BeanUtil.beanToMap(contractList.get(0));
if (StringUtils.isNotEmpty(contractList.get(0).getImageUrl())) {
if (contractList.get(0).getImageUrl().startsWith("http")) {
contractInfo.put("imageUrl", contractList.get(0).getImageUrl());
} else {
contractInfo.put("imageUrl", serverUrl + "/image/" + contractList.get(0).getImageUrl());
}
}
if (StringUtils.isNotEmpty(contractList.get(0).getBackImageUrl())) {
if (contractList.get(0).getBackImageUrl().startsWith("http")) {
contractInfo.put("backImageUrl", contractList.get(0).getBackImageUrl());
} else {
contractInfo.put("backImageUrl", serverUrl + "/image/" + contractList.get(0).getBackImageUrl());
}
}
data.put("contractInfo", contractInfo);
} else {
data.put("contractInfo", null);
}
log.info("下发数据:" + JSONUtil.toJsonStr(data));
String[] arr = tempProjectUfaceConfig.getHousing().split(",");
for (String housingId : arr) {
ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl()) && dictionariesRecord.getRealNameSystem() == 1) {
log.info("-----开始执行人员下发----" + dictionariesRecord.getServiceName());
String result;
if (workerInfo.getReEntry() != null && workerInfo.getReEntry() == 1) {
log.info("地址" + dictionariesRecord.getServiceUrl() + "/saveWorkerInfo");
result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/ReEntry", JSONUtil.toJsonStr(data));
} else {
result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/saveWorkerInfo", JSONUtil.toJsonStr(data));
log.info("地址" + dictionariesRecord.getServiceUrl() + "/saveWorkerInfo");
}
log.info("-----下发执行人员结果----" + result);
saveExecuteRecord(workerInfo, result, dictionariesRecord.getServiceName(), "人员", 1);
}
}
}
}
}
/**
* 人员编辑
*
* @param projectSn
* @param workerId
*/
public void sendUpdateWork(String projectSn, String workerId) {
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
if (tempProjectUfaceConfig != null && StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing()) && !"0".equals(tempProjectUfaceConfig.getHousing())) {
EntityMap data = workerInfoMapper.selectWorkerInfoById(workerId);
if (data != null && data.size() > 0) {
String[] arr = tempProjectUfaceConfig.getHousing().split(",");
for (String housingId : arr) {
ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl()) && dictionariesRecord.getRealNameSystem() == 1) {
HttpUtil.post(dictionariesRecord.getServiceUrl() + "/updateWorkerInfo", JSONUtil.toJsonStr(data));
}
}
}
}
}
/**
* 人员退场
*
* @param projectSn
* @param
*/
public void sendExitWork(String projectSn, WorkerInfo workerInfo) {
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
if (tempProjectUfaceConfig != null && StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing()) && !"0".equals(tempProjectUfaceConfig.getHousing())) {
//WorkerInfo workerInfo=workerInfoMapper.selectById(workerId);
if (workerInfo != null) {
//查询企业
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
param.put("enterpriseId", workerInfo.getEnterpriseId());
EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param);
//查询班组
EntityMap teamInfo = teamInfoMapper.getTeamInfo(workerInfo.getTeamId());
Map<String, Object> data = new HashMap<>();
data.put("projectSn", workerInfo.getProjectSn());
data.put("workerInfo", workerInfo);
data.put("enterpriseInfo", enterpriseInfo);
data.put("teamInfo", teamInfo);
String[] arr = tempProjectUfaceConfig.getHousing().split(",");
for (String housingId : arr) {
ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl()) && dictionariesRecord.getRealNameSystem() == 1) {
String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/exitWorkerInfo", JSONUtil.toJsonStr(data));
saveExecuteRecord(workerInfo, result, dictionariesRecord.getServiceName(), "人员退场", 3);
}
}
}
}
}
/**
* 新增或修改班组
*
* @param projectSn
* @param teamId
*/
public void sendAddOrUpdateTeam(String projectSn, Long teamId) {
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
if (tempProjectUfaceConfig != null && StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing()) && !"0".equals(tempProjectUfaceConfig.getHousing())) {
//查询班组
EntityMap teamInfo = teamInfoMapper.getTeamInfo(teamId);
if (teamInfo != null && teamInfo.size() > 0) {
//查询企业
Map<String, Object> param = new HashMap<>();
param.put("projectSn", MapUtils.getString(teamInfo, "projectSn"));
param.put("enterpriseId", MapUtils.getString(teamInfo, "enterpriseId"));
EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param);
Map<String, Object> data = new HashMap<>();
data.put("projectSn", MapUtils.getString(teamInfo, "projectSn"));
data.put("enterpriseInfo", enterpriseInfo);
data.put("teamInfo", teamInfo);
String[] arr = tempProjectUfaceConfig.getHousing().split(",");
for (String housingId : arr) {
ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl()) && dictionariesRecord.getRealNameSystem() == 1) {
HttpUtil.post(dictionariesRecord.getServiceUrl() + "/addOrUpdateTeam", JSONUtil.toJsonStr(data));
}
}
}
}
}
/**
* 考勤
*
* @param projectSn
* @param
*/
public void sendAddWorkerAttendance(String projectSn, WorkerInfo workerInfo, WorkerAttendance workerAttendance) {
QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper);
if (tempProjectUfaceConfig != null && StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing()) && !"0".equals(tempProjectUfaceConfig.getHousing())) {
//WorkerInfo workerInfo=workerInfoMapper.selectById(workerId);
if (workerInfo != null && workerInfo.getIsUploadHousing() != null && workerInfo.getIsUploadHousing() == 1) {
Map<String, Object> info = BeanUtil.beanToMap(workerInfo);
if (workerInfo.getIdCardBigPhotoUrl().startsWith("http")) {
info.put("idCardBigPhotoUrl", workerInfo.getIdCardBigPhotoUrl());
} else {
info.put("idCardBigPhotoUrl", serverUrl + "/image/" + workerInfo.getIdCardBigPhotoUrl());
}
if (workerInfo.getIdCardUpPhotoUrl().startsWith("http")) {
info.put("idCardUpPhotoUrl", workerInfo.getIdCardUpPhotoUrl());
} else {
info.put("idCardUpPhotoUrl", serverUrl + "/image/" + workerInfo.getIdCardUpPhotoUrl());
}
if (workerInfo.getIdCardDownPhotoUrl().startsWith("http")) {
info.put("idCardDownPhotoUrl", workerInfo.getIdCardDownPhotoUrl());
} else {
info.put("idCardDownPhotoUrl", serverUrl + "/image/" + workerInfo.getIdCardDownPhotoUrl());
}
if (workerInfo.getFieldAcquisitionUrl().startsWith("http")) {
info.put("fieldAcquisitionUrl", workerInfo.getFieldAcquisitionUrl());
} else {
info.put("fieldAcquisitionUrl", serverUrl + "/image/" + workerInfo.getFieldAcquisitionUrl());
}
//查询企业
Map<String, Object> param = new HashMap<>();
param.put("projectSn", workerInfo.getProjectSn());
param.put("enterpriseId", workerInfo.getEnterpriseId());
EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param);
//查询班组
EntityMap teamInfo = teamInfoMapper.getTeamInfo(workerInfo.getTeamId());
Map<String, Object> data = new HashMap<>();
data.put("projectSn", workerInfo.getProjectSn());
data.put("workerInfo", info);
data.put("enterpriseInfo", enterpriseInfo);
data.put("teamInfo", teamInfo);
Map<String, Object> attendanceInfo = BeanUtil.beanToMap(workerAttendance);
if (workerAttendance.getImageUrl().startsWith("http")) {
attendanceInfo.put("imageUrl", workerAttendance.getImageUrl());
} else {
attendanceInfo.put("imageUrl", serverUrl + "/image/" + workerAttendance.getImageUrl());
}
data.put("workerAttendance", attendanceInfo);
String[] arr = tempProjectUfaceConfig.getHousing().split(",");
for (String housingId : arr) {
ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl()) && dictionariesRecord.getRealNameSystem() == 1) {
String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/addWorkerAttendance", JSONUtil.toJsonStr(data));
log.info("-----下发执行考勤结果----" + result);
//保存考勤执行失败结果
JSONObject object = JSONUtil.parseObj(result);
if (object != null && !"0".equals(object.getStr("code"))) {
saveExecuteRecord(workerInfo, result, dictionariesRecord.getServiceName(), "考勤", 2);
}
}
}
}
}
}
private void saveExecuteRecord(WorkerInfo workerInfo, String result, String serverName, String executeName, Integer executeType) {
UploadExecuteRecord uploadExecuteRecord = new UploadExecuteRecord();
uploadExecuteRecord.setName(workerInfo.getWorkerName());
uploadExecuteRecord.setPersonSn(workerInfo.getPersonSn());
uploadExecuteRecord.setProjectSn(workerInfo.getProjectSn());
uploadExecuteRecord.setExecuteType(executeType);
uploadExecuteRecord.setExecuteName(executeName);
uploadExecuteRecord.setServiceName(serverName);
uploadExecuteRecord.setExecuteTime(new Date());
JSONObject object = JSONUtil.parseObj(result);
if (object != null) {
if ("0".equals(object.getStr("code"))) {
uploadExecuteRecord.setResultType(1);
uploadExecuteRecord.setExecuteResult("上传成功");
} else {
uploadExecuteRecord.setResultType(2);
uploadExecuteRecord.setExecuteResult(object.getStr("data"));
}
} else {
uploadExecuteRecord.setResultType(2);
uploadExecuteRecord.setExecuteResult("上传失败");
}
uploadExecuteRecordMapper.insert(uploadExecuteRecord);
}
}