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.constant.Cts; 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.apache.commons.lang3.time.DateFormatUtils; 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 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 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 param = new HashMap<>(16); param.put("projectSn", workerInfo.getProjectSn()); param.put("enterpriseId", workerInfo.getEnterpriseId()); EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param); QueryWrapper qw = new QueryWrapper<>(); qw.lambda().eq(UfaceDev::getProjectSn, workerInfo.getProjectSn()); List 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(Cts.COMMA); for (UfaceDev dev : list) { for (String id : devId) { if (id.equals(dev.getId().toString())) { if (devBuilder.length() > 0) { devBuilder.append(Cts.COMMA); } devBuilder.append(dev.getDevSn()); } } } } else { for (UfaceDev dev : list) { if (devBuilder.length() > 0) { devBuilder.append(Cts.COMMA); } devBuilder.append(dev.getDevSn()); } } info.put("deviceSerial", devBuilder.toString()); //查询合同 QueryWrapper qu = new QueryWrapper<>(); qu.lambda().eq(WorkerContract::getWorkerId, workerInfo.getId()); List contractList = workerContractMapper.selectList(qu); Map data = new HashMap<>(16); 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 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(Cts.COMMA); 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 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(Cts.COMMA); 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 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 param = new HashMap<>(16); param.put("projectSn", workerInfo.getProjectSn()); param.put("enterpriseId", workerInfo.getEnterpriseId()); EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param); //查询班组 EntityMap teamInfo = teamInfoMapper.getTeamInfo(workerInfo.getTeamId()); Map data = new HashMap<>(16); data.put("projectSn", workerInfo.getProjectSn()); data.put("workerInfo", workerInfo); data.put("enterpriseInfo", enterpriseInfo); data.put("teamInfo", teamInfo); String[] arr = tempProjectUfaceConfig.getHousing().split(Cts.COMMA); 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 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 param = new HashMap<>(16); param.put("projectSn", MapUtils.getString(teamInfo, "projectSn")); param.put("enterpriseId", MapUtils.getString(teamInfo, "enterpriseId")); EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param); Map data = new HashMap<>(16); data.put("projectSn", MapUtils.getString(teamInfo, "projectSn")); data.put("enterpriseInfo", enterpriseInfo); data.put("teamInfo", teamInfo); String[] arr = tempProjectUfaceConfig.getHousing().split(Cts.COMMA); 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 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 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 param = new HashMap<>(16); param.put("projectSn", workerInfo.getProjectSn()); param.put("enterpriseId", workerInfo.getEnterpriseId()); EnterpriseInfo enterpriseInfo = enterpriseInfoMapper.getEnterpriseInfoById(param); //查询班组 EntityMap teamInfo = teamInfoMapper.getTeamInfo(workerInfo.getTeamId()); Map data = new HashMap<>(16); data.put("projectSn", workerInfo.getProjectSn()); data.put("workerInfo", info); data.put("enterpriseInfo", enterpriseInfo); data.put("teamInfo", teamInfo); Map 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(Cts.COMMA); 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); } }