385 lines
20 KiB
Java
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);
|
|
}
|
|
}
|