金林湾代码合并

This commit is contained in:
Administrator 2023-03-24 14:57:54 +08:00
parent 61ba544576
commit d02e106ae1
14 changed files with 396 additions and 37 deletions

View File

@ -1 +1 @@
EWEPEPEOGMGTELIZJUGECKIUJDBCJTCNISGPBNHLJTJUBHEWGNAKGEGAIOHJDQAJGNCFDRFZJEDMJTGEDVIQGKEJIKACHIIXDEELIWCCEEELCVCEHFHAJGIPGIIKJRASJFEHAMIKCIGXAPGEHIIZGFBBJMFJJNGFHUGDGDFGFAITGDAXBGAZGKAMBMDABKBAERDUHDAUDOEBIBGBBMCUIZGABKCABIDMFHFRILIIANEBEWBOAIJHBYFAIREBFQFFCHHREKFTFJJQIAGFDSDZHMHUCGBVHIAUENBCJIBBJDIHHDIQFKFNDEBJCKCFGLJKBMHFAZHTHOIRGLJFDUHWEVFGFHDKIBEKFVCGAQJGCYBZAMHDJBJREAIOJPIAJDCJFXHKHPJTHUBTJPDWISESIEIPISDWDRAMFVFFBJCTFVFAARGJHFIMELIQJEAHFRFQDTERDCCGDCIKCAGBJVDLGHEXEBAWAMAFITJDANGBCRDPBPEECBAVAEBRGBDMFGGNDQAYCJFJAHJGGFBEBGEOHZDPILAHJEDIDIFWIOJGJFCTGOHQDEBOEGERJVFXIDJJESFKAPASCMCSAXISBQBSEHDDGZHBAREVALCSCAELEGBJIXIRDKAVADBVCNDPHFIYJJGTDEAPITIHBVFEGNBFJODDFEFZGMIKAYDEDIGWDFECBCJVIAAWDIBVGOFOASFOIRARITJOGOERHZAAEAGUIKCVHRCBHJDRJLBACOFZFTENEWDYCNCWDZHUHTFJDIDFEWDGATCAFUERJDCHFZHDAKJHJGDGINIHEPDAABJEIXHOIDAMDTEHCEGKALDAFTEPGZGHHHEVHSHXIZIWISEYFWGMAEIGEZJCDHJIJPBECUIKEYGJHYGLFAJFDPIBARAFGNEEJGDZAYEIAHGYJJELBHBAIXHWGZECJOHFAJCEBBBAINITDTECIFFTHNBJJUCZGYBVEAEBILFOGXEHBKEYELDKFKFVAWESBAHMCOANDEJLIYFMFFDFCAJNJQJGJSHWAEFHIQCJCLGQIYGYEEJBAKIMGACJFNJUDEGQEUCXHPCWBXHAHDASDHJJFLAHIDJLJFCDBMGVIFBBCRIDCSITGLIEAKAUDCFIGHBZARBFESBEDVJVBQIKGQATGBECBSJJDFDKAMDOAPEUCTAXJLGQBXFCIHEGFNDJESCHEHHPBWBQIO
EWEPEPEOGMGTELIZJUGECKIUJDBCJTCNISGPBNHLJTJUBHEWGNAKGEGAIOHJDQAJGNCFDRFZJEDMJTGEDVIQGKEJIKACHIIXDEELIWCCEEELCVCEHFHAJGIPGIIKJRASJFEHAMIKCIGXAPGEHIIZGFBBJMFJJNGFHUGDGDFGFAITGDAXBGAZGKAMBMDABKBAERDUHDAUDOEBIBGBBMCUIZGABKCABIDMFHFRILIIANEBEWBOAIJHBYFAIREBFQFFCHHREKFTFJJQIAGFDSDZHMHUCGBVHIAUENBCJIBBJDIHHDIQFKFNDEBJCKCFGLJKBMHFAZHTHOIRGLJFDUHWEVFGFHDKIBEKFVCGAQJGCYBZAMHDJBJREAIOJPIAJDCJFXHKHPJTHUBTJPDWISESIEIPISDWDRAMFVFFBJCTFVFAARGJHFIMELIQJEAHFRFQDTERDCCGDCIKCAGBJVDLGHEXEBAWAMAFITJDANGBCRDPBPEECBAVAEBBBYBUERFXCYIOHWAOHQBVDFJGCEFZFHAUJGJNJGAPDRJMESBAFHGACOCDDHCOCCEXDDDVDRAVDEHOGBBRANCXEJFVBIABDLDOAVCQBICYCDIBAXJRBQGVDFHQAKDYEDHRHVAGGUJHIAHSFIFUCIDCBRHZDOASDAIDHCJNDEJCFDHIBCFLCQBYFWGNFKAIJQFKFBAPEBGMDOBXGGCAIUENJHDRATFCHIGBCCGZBDJLHQFSHDINHJEVIJESEWANJFEQIVBAILJLBACPHNCHEMAYHJGBAOHLCTGAGLFWBQHFFPEKBYHDEUAOBAABJSBNFFINFDAAGUJTAVBVDHDTEEFNBSJKJNCODGHEECIRGXARCCFZFBFMDJCDGREDCNFOAWEPFIFCGWEBBZHPFVHDBUHFCHFDACJCGSARHMCMBMDDCRCWHBAZJBHHJMDKFWBKFQIHAFADBLGFCSJBEWFAJLGVGPBNANFPINAHIRIJEYJRFWDPCDCSBEGHHTGMATCWEYGQHGAHEJIEHQDZEHCRIRGLJHDABFJKDKBPGUJFJICIGVHRIZHXDWADHMDTABAXCGJIBLHIBYDJELBYBJIFJNDCCICIJDELBOJBJEBRFZDCBUHXGDBKCVBGGQHUFUJIIYHFAAIBBDCEAYDLFHBDBJCADMDFCDGMAYHLHDBGDSCHCECOEAEYJOIFHZ

View File

@ -496,6 +496,11 @@
<artifactId>gexin-rp-sdk-http</artifactId>
<version>4.1.1.4</version>
</dependency>
<dependency>
<groupId>com.gexin.platform</groupId>
<artifactId>gexin-rp-fastjson</artifactId>
<version>1.0.0.7</version>
</dependency>
<!-- 海康视频-->
<dependency>
<groupId>com.hikvision.ga</groupId>

View File

@ -9,9 +9,11 @@ import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.basicdata.entity.ThirdPartyPlatformService;
import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.ThirdPartyPlatformServiceMapper;
import com.zhgd.xmgl.util.ProfileJudgeUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
@ -31,6 +33,11 @@ public class AsyncEnvironment {
private ProjectUfaceConfigMapper projectUfaceConfigMapper;
@Autowired
private ThirdPartyPlatformServiceMapper thirdPartyPlatformServiceMapper;
@Autowired
private ProfileJudgeUtil profileJudgeUtil;
@Value("${govt.host:}")
public String govtHost;
/**
* 转发扬尘实时数据
@ -40,22 +47,44 @@ public class AsyncEnvironment {
@Async("environmentNoiseDataExecutor")
public void sendEnvironmentNoiseData(DustNoiseData dustNoiseData, EnvironmentDev environmentDev) {
try {
QueryWrapper<ProjectUfaceConfig> queryWrapper =new QueryWrapper<>();
if (profileJudgeUtil.isJlw()) {
/*QueryWrapper<ProjectUfaceConfig> queryWrapper =new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, environmentDev.getProjectSn());
ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigMapper.selectOne(queryWrapper);
if(tempProjectUfaceConfig!=null&& StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing())&&!"0".equals(tempProjectUfaceConfig.getHousing())) {
String[] arr = tempProjectUfaceConfig.getHousing().split(",");
Map<String,Object> data=new HashMap<>();
data.put("projectSn",environmentDev.getProjectSn());
data.put("environmentDev",environmentDev);
data.put("dustNoiseData",dustNoiseData);
for (String housingId : arr) {
ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl())&&dictionariesRecord.getEnvironmentSystem()==1) {
log.info("-----开始执行扬尘实时数据下发----" + dictionariesRecord.getServiceName());
String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/saveDustNoiseData", JSONUtil.toJsonStr(data));
log.info("-----下发执行扬尘实时数据结果----" + result);
//saveExecuteRecord(workerInfo, result, dictionariesRecord.getServiceName(), "人员", 1);
if(tempProjectUfaceConfig!=null&& StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing())&&!"0".equals(tempProjectUfaceConfig.getHousing())) {*/
//String[] arr = tempProjectUfaceConfig.getHousing().split(",");
//Map<String,Object> data=new HashMap<>();
//data.put("projectSn",environmentDev.getProjectSn());
//data.put("environmentDev",environmentDev);
//data.put("dustNoiseData",dustNoiseData);
//for (String housingId : arr) {
//ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
//if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl())&&dictionariesRecord.getEnvironmentSystem()==1) {
log.info("-----开始执行扬尘实时数据下发----" + govtHost);
String result = HttpUtil.post(govtHost + "/record/saveDustNoiseData", JSONUtil.toJsonStr(dustNoiseData));
log.info("-----下发执行扬尘实时数据结果----" + result);
//saveExecuteRecord(workerInfo, result, dictionariesRecord.getServiceName(), "人员", 1);
//}
//}
//}
} else {
QueryWrapper<ProjectUfaceConfig> queryWrapper =new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, environmentDev.getProjectSn());
ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigMapper.selectOne(queryWrapper);
if(tempProjectUfaceConfig!=null&& StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing())&&!"0".equals(tempProjectUfaceConfig.getHousing())) {
String[] arr = tempProjectUfaceConfig.getHousing().split(",");
Map<String,Object> data=new HashMap<>();
data.put("projectSn",environmentDev.getProjectSn());
data.put("environmentDev",environmentDev);
data.put("dustNoiseData",dustNoiseData);
for (String housingId : arr) {
ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId);
if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl())&&dictionariesRecord.getEnvironmentSystem()==1) {
log.info("-----开始执行扬尘实时数据下发----" + dictionariesRecord.getServiceName());
String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/saveDustNoiseData", JSONUtil.toJsonStr(data));
log.info("-----下发执行扬尘实时数据结果----" + result);
//saveExecuteRecord(workerInfo, result, dictionariesRecord.getServiceName(), "人员", 1);
}
}
}
}

View File

@ -7,11 +7,13 @@ import com.zhgd.mqtt.bean.PushPayload;
import com.zhgd.mqtt.server.IMqttSender;
import com.zhgd.xmgl.call.HousingDataCall;
import com.zhgd.xmgl.call.WkServiceuCall;
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper;
import com.zhgd.xmgl.modules.worker.mapper.TeamInfoMapper;
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
import com.zhgd.xmgl.util.ProfileJudgeUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
@ -40,10 +42,18 @@ public class AsyncSendAttendance {
private IWorkerAttendancePresenceService workerAttendancePresenceService;
@Autowired
private WkServiceuCall wkServiceuCall;
@Autowired
private ProfileJudgeUtil profileJudgeUtil;
@Autowired
private GovtOpenApiService govtOpenApiService;
@Async("sendAttendanceExecutor")
public void saveAndSendAttendance(WorkerAttendance workerAttendance, WorkerInfo info){
try {
if (profileJudgeUtil.isJlw()) {
// 向政务平台发送数据
govtOpenApiService.workerAttendanceSync(workerAttendance);
}
//计算在场
workerAttendancePresenceService.addWorkerAttendancePresence(workerAttendance);
//上传住建

View File

@ -0,0 +1,146 @@
package com.zhgd.xmgl.modules.govtapi;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.zhgd.xmgl.modules.realnamestatistics.entity.ProjectOperationsAnalysis;
import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerMonthAttendanceStatistics;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 湖里政务平台开放api调用
*
* @author HZI.HUI
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class GovtOpenApiService {
@Value("${govt.host:}")
public String govtHost;
/**
* 考勤打卡
*
* @param workerAttendance
*/
public void workerAttendanceSync(WorkerAttendance workerAttendance) {
try {
String result = HttpUtil.post(govtHost + "/openapi/labour/worker/attendance/sync", JSONUtil.toJsonStr(workerAttendance), 6000);
JSONObject jsonObject = JSONUtil.parseObj(result);
String code = jsonObject.getStr("code");
if ("200".equals(code)) {
log.info("[劳务管理-考勤打卡-同步到政务] 成功,数据:{}", JSONUtil.toJsonStr(workerAttendance));
return;
}
log.error("[劳务管理-考勤打卡-同步到政务] 失败,数据:{}, 错误:{}", JSONUtil.toJsonStr(workerAttendance), result);
} catch (Exception e) {
log.error("[劳务管理-考勤打卡-同步到政务] 失败,数据:{}, 异常:", JSONUtil.toJsonStr(workerAttendance), e);
}
}
/**
* 劳务管理-考情统计-同步到政务
*
* @param statistics
*/
public void workerMonthAttendanceStatisticsSync(WorkerMonthAttendanceStatistics statistics) {
try {
String result = HttpUtil.post(govtHost + "/openapi/labour/worker/month/attendance/statistics/sync", JSONUtil.toJsonStr(statistics), 6000);
JSONObject jsonObject = JSONUtil.parseObj(result);
String code = jsonObject.getStr("code");
if ("200".equals(code)) {
log.info("[劳务管理-考情统计-同步到政务] 成功,数据:{}", JSONUtil.toJsonStr(statistics));
return;
}
log.error("[劳务管理-考情统计-同步到政务] 失败,数据:{}, 错误:{}", JSONUtil.toJsonStr(statistics), result);
} catch (Exception e) {
log.error("[劳务管理-考情统计-同步到政务] 失败,数据:{}, 异常:", JSONUtil.toJsonStr(statistics), e);
}
}
/**
* 劳务管理-开放api-实名制统计
*
* @param analysisList
*/
public void projectOperationsAnalysisUpdateSync(List<ProjectOperationsAnalysis> analysisList) {
if (CollUtil.isEmpty(analysisList)) {
return;
}
for (ProjectOperationsAnalysis projectOperationsAnalysis : analysisList) {
try {
String result = HttpUtil.post(govtHost + "/openapi/labour/project/operations/analysis/update", JSONUtil.toJsonStr(projectOperationsAnalysis), 20000);
JSONObject jsonObject = JSONUtil.parseObj(result);
String code = jsonObject.getStr("code");
if ("200".equals(code)) {
log.info("[劳务管理-实名制统计-同步到政务] 成功,数据:{}", JSONUtil.toJsonStr(projectOperationsAnalysis));
continue;
}
log.error("[劳务管理-实名制统计-同步到政务] 失败,数据:{}, 错误:{}", JSONUtil.toJsonStr(projectOperationsAnalysis), result);
} catch (Exception e) {
log.error("[劳务管理-实名制统计-同步到政务] 失败,数据:{}, 异常:", JSONUtil.toJsonStr(projectOperationsAnalysis), e);
}
}
}
/**
* 劳务管理-开放api-劳务人员新增
*
* @param workerInfo
*/
public void workerInfoAddSync(WorkerInfo workerInfo) {
try {
String result = HttpUtil.post(govtHost + "/openapi/labour/worker/info/add", JSONUtil.toJsonStr(workerInfo), 6000);
JSONObject jsonObject = JSONUtil.parseObj(result);
String code = jsonObject.getStr("code");
if ("200".equals(code)) {
log.info("[劳务管理-劳务人员新增-同步到政务] 成功,数据:{}", JSONUtil.toJsonStr(workerInfo));
return;
}
log.error("[劳务管理-劳务人员新增-同步到政务] 失败,数据:{}, 错误:{}", JSONUtil.toJsonStr(workerInfo), result);
} catch (Exception e) {
log.error("[劳务管理-劳务人员新增-同步到政务] 失败,数据:{}, 异常:", JSONUtil.toJsonStr(workerInfo), e);
}
}
/**
* 劳务管理-开放api-劳务人员新增
*
* @param workerInfo
*/
public void workerInfoDelSync(WorkerInfo workerInfo) {
try {
String result = HttpUtil.post(govtHost + "/openapi/labour/worker/info/del/sync", JSONUtil.toJsonStr(workerInfo), 6000);
JSONObject jsonObject = JSONUtil.parseObj(result);
String code = jsonObject.getStr("code");
if ("200".equals(code)) {
log.info("[劳务管理-劳务人员删除-同步到政务] 成功,数据:{}", JSONUtil.toJsonStr(workerInfo));
return;
}
log.error("[劳务管理-劳务人员删除-同步到政务] 失败,数据:{}, 错误:{}", JSONUtil.toJsonStr(workerInfo), result);
} catch (Exception e) {
log.error("[劳务管理-劳务人员删除-同步到政务] 失败,数据:{}, 异常:", JSONUtil.toJsonStr(workerInfo), e);
}
}
}

View File

@ -4,6 +4,7 @@ package com.zhgd.xmgl.modules.realnamestatistics.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
import com.zhgd.xmgl.modules.realnamestatistics.entity.ProjectOperationsAnalysis;
import com.zhgd.xmgl.modules.realnamestatistics.entity.ProjectTotalStatistics;
import com.zhgd.xmgl.modules.realnamestatistics.entity.vo.TodayAttendance;
@ -16,6 +17,7 @@ import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.service.ITeamInfoService;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.modules.worker.service.IWorkerTypeService;
import com.zhgd.xmgl.util.ProfileJudgeUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -48,13 +50,17 @@ public class ProjectOperationsAnalysisServiceImpl extends ServiceImpl<ProjectOpe
ITeamInfoService teamInfoService;
@Autowired
IWorkerInfoService workerInfoService;
@Autowired
GovtOpenApiService govtOpenApiService;
@Autowired
private ProfileJudgeUtil profileJudgeUtil;
@Override
@Transactional(rollbackFor = Exception.class)
public void updateProjectOperationsAnalysisStatistics() {
try {
//查询所有在建项目
log.info("同步在建项目实名制人员核酸详情开始" + new Date().getTime());
log.info("同步在建项目实名制人员核酸详情开始" + System.currentTimeMillis());
List<ProjectOperationsAnalysis> analysisList = projectOperationsAnalysisMapper.getAllDetails();
for (ProjectOperationsAnalysis projectOperationsAnalysis : analysisList) {
String projectSn = projectOperationsAnalysis.getProjectSn();
@ -73,7 +79,11 @@ public class ProjectOperationsAnalysisServiceImpl extends ServiceImpl<ProjectOpe
baseMapper.deleteById(projectOperationsAnalysis.getId());
}
this.saveBatch(analysisList);
log.info("数据库同步在建项目实名制人员核酸详情结束" + new Date().getTime());
if (profileJudgeUtil.isJlw()) {
// 同步到政务平台
govtOpenApiService.projectOperationsAnalysisUpdateSync(analysisList);
}
log.info("数据库同步在建项目实名制人员核酸详情结束" + System.currentTimeMillis());
} catch (Exception e) {
log.error("项目统计操作失败", e);
}

View File

@ -33,4 +33,6 @@ public interface WorkerMonthAttendanceStatisticsMapper extends BaseMapper<Worker
List<EntityMap> selectProjectMonthAttendanceList(HashMap<String, Object> param);
List<EntityMap> getListByProjectSn(String projectSn);
WorkerMonthAttendanceStatistics selectByCondition(Map<String, Object> param);
}

View File

@ -185,4 +185,12 @@
inner join worker_info wi on wi.person_sn = wmas.person_sn
where wi.project_sn = #{projectSn}
</select>
<select id="selectByCondition"
resultType="com.zhgd.xmgl.modules.worker.entity.WorkerMonthAttendanceStatistics">
select * from worker_month_attendance_statistics
where project_sn = #{projectSn}
and person_sn = #{personSn}
and query_time = date_format(#{inputTime}, '%Y-%m')
</select>
</mapper>

View File

@ -14,6 +14,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.async.AsyncSendAttendance;
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper;
import com.zhgd.xmgl.modules.worker.entity.*;
@ -22,10 +23,7 @@ import com.zhgd.xmgl.modules.worker.entity.dto.GetPassRecordDto;
import com.zhgd.xmgl.modules.worker.mapper.*;
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
import com.zhgd.xmgl.modules.worker.service.IWorkerMonthAttendanceStatisticsService;
import com.zhgd.xmgl.util.Base64Util;
import com.zhgd.xmgl.util.DateUtil;
import com.zhgd.xmgl.util.JxlExcelUtils;
import com.zhgd.xmgl.util.QYUfaceUtil;
import com.zhgd.xmgl.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
@ -75,6 +73,10 @@ public class WorkerAttendanceServiceImpl extends ServiceImpl<WorkerAttendanceMap
private AsyncSendAttendance asyncSendAttendance;
@Autowired
private VisitorManageRecordMapper visitorManageRecordMapper;
@Autowired
private GovtOpenApiService govtOpenApiService;
@Autowired
private ProfileJudgeUtil profileJudgeUtil;
@Autowired
private ICompanyService companyService;
@ -105,6 +107,10 @@ public class WorkerAttendanceServiceImpl extends ServiceImpl<WorkerAttendanceMap
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String nowTime = sdf1.format(new Date());
workerAttendanceMapper.insert(workerAttendance);
if (profileJudgeUtil.isJlw()) {
// 向政务平台发送数据
govtOpenApiService.workerAttendanceSync(workerAttendance);
}
//如果不是当天补的考勤则重新计算考勤统计
if (!nowTime.equals(time)) {
WorkerInfo workerInfo = workerInfoMapper.selectWorkerInfoByPersonSn(MapUtils.getString(map, "personSn"));
@ -450,6 +456,10 @@ public class WorkerAttendanceServiceImpl extends ServiceImpl<WorkerAttendanceMap
workerAttendance.setCardType(7);
workerAttendance.setImageUrl(MapUtils.getString(map, "photoUrl"));
workerAttendanceMapper.insert(workerAttendance);
if (profileJudgeUtil.isJlw()) {
// 向政务平台发送数据
govtOpenApiService.workerAttendanceSync(workerAttendance);
}
}
}
@ -722,7 +732,11 @@ public class WorkerAttendanceServiceImpl extends ServiceImpl<WorkerAttendanceMap
workerAttendance.setProjectSn(projectSn);
workerAttendance.setPassType(type);
workerAttendance.setCardType(2);
workerAttendance.setIsStatistics(1);
if (profileJudgeUtil.isJlw()) {
workerAttendance.setIsStatistics(0);
} else {
workerAttendance.setIsStatistics(1);
}
if (StringUtils.isNotEmpty(MapUtils.getString(map, "passagewayName"))) {
workerAttendance.setPassagewayName(MapUtils.getString(map, "passagewayName"));
} else {
@ -731,6 +745,10 @@ public class WorkerAttendanceServiceImpl extends ServiceImpl<WorkerAttendanceMap
workerAttendance.setAttendanceType(1);
workerAttendanceMapper.insert(workerAttendance);
//asyncSendAttendance.saveAndSendAttendance(workerAttendance,info);
if (profileJudgeUtil.isJlw()) {
// 向政务平台发送数据
govtOpenApiService.workerAttendanceSync(workerAttendance);
}
}
} catch (Exception e) {
e.printStackTrace();

View File

@ -19,6 +19,7 @@ import com.zhgd.xmgl.async.AsyncWorker;
import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise;
import com.zhgd.xmgl.modules.project.mapper.ProjectEnterpriseMapper;
@ -101,6 +102,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
private AsyncWorker asyncWorker;
@Autowired
private IWorkerPhotoFeaturesService workerPhotoFeaturesService;
@Autowired
private GovtOpenApiService govtOpenApiService;
@Autowired
private ProfileJudgeUtil profileJudgeUtil;
@Value("${basePath}")
private String basePath;
@ -266,6 +271,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
if (isGetFaceFeatureDate) {
workerPhotoFeaturesService.saveWorkerPhotoFeatures(workerInfo);
}
if (profileJudgeUtil.isJlw()) {
// 同步到政务平台
govtOpenApiService.workerInfoAddSync(workerInfo);
}
return workerInfo;
}
@ -310,6 +319,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
if (isGetFaceFeatureDate) {
workerPhotoFeaturesService.saveWorkerPhotoFeatures(workerInfo);
}
if (profileJudgeUtil.isJlw()) {
// 同步到政务平台
govtOpenApiService.workerInfoAddSync(workerInfo);
}
return workerInfo;
}
@ -328,6 +341,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
//上传住建
asyncWorker.sendExitWorkById(workerInfo, 1);
workerInfoMapper.deleteById(id);
if (profileJudgeUtil.isJlw()) {
// 同步
govtOpenApiService.workerInfoDelSync(workerInfo);
}
}
/**

View File

@ -1,11 +1,13 @@
package com.zhgd.xmgl.modules.worker.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.worker.entity.WorkerAttendanceRule;
@ -16,6 +18,7 @@ import com.zhgd.xmgl.modules.worker.mapper.*;
import com.zhgd.xmgl.modules.worker.service.IWorkerMonthAttendanceStatisticsService;
import com.zhgd.xmgl.util.DateUtil;
import com.zhgd.xmgl.util.JxlExcelUtils;
import com.zhgd.xmgl.util.ProfileJudgeUtil;
import com.zhgd.xmgl.util.ReflectUtils;
import lombok.extern.log4j.Log4j;
import org.apache.commons.collections.MapUtils;
@ -52,6 +55,10 @@ public class WorkerMonthAttendanceStatisticsServiceImpl extends ServiceImpl<Work
private ProjectMapper projectMapper;
@Autowired
private WorkerInfoMapper workerWorkInfoMapper;
@Autowired
private GovtOpenApiService govtOpenApiService;
@Autowired
private ProfileJudgeUtil profileJudgeUtil;
@Override
@ -142,6 +149,13 @@ public class WorkerMonthAttendanceStatisticsServiceImpl extends ServiceImpl<Work
workerMonthAttendanceDurationMapper.insert(duration);
//workerMonthAttendanceDurationMapper.insertMonthAttendanceDuration(param);
}
if (profileJudgeUtil.isJlw()) {
// 同步到湖里政务平台
WorkerMonthAttendanceStatistics syncData = workerMonthAttendanceStatisticsMapper.selectByCondition(param);
if (ObjectUtil.isNotNull(syncData)) {
govtOpenApiService.workerMonthAttendanceStatisticsSync(syncData);
}
}
} catch (Exception e) {
String err = new StringBuilder("计算人员的考勤状态失败")
.append(",inputTime:").append(inputTime)

View File

@ -0,0 +1,77 @@
package com.zhgd.xmgl.task;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zhgd.xmgl.modules.govtapi.GovtOpenApiService;
import com.zhgd.xmgl.modules.realnamestatistics.entity.ProjectOperationsAnalysis;
import com.zhgd.xmgl.modules.realnamestatistics.service.IProjectOperationsAnalysisService;
import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerMonthAttendanceStatistics;
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.modules.worker.service.IWorkerMonthAttendanceStatisticsService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* @author HZI.HUI
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class GovtSyncTask {
private final GovtOpenApiService govtOpenApiService;
private final IWorkerInfoService workerInfoService;
private final IWorkerAttendanceService workerAttendanceService;
private final IProjectOperationsAnalysisService projectOperationsAnalysisService;
private final IWorkerMonthAttendanceStatisticsService workerMonthAttendanceStatisticsService;
//@PostConstruct
public void initSyncWorkerInfoData() {
List<WorkerInfo> list = workerInfoService.list(Wrappers.<WorkerInfo>lambdaQuery()
.in(WorkerInfo::getProjectSn, "29E5B97B246544E0B0EF18534FA7C78D"));
for (WorkerInfo workerInfo : list) {
govtOpenApiService.workerInfoAddSync(workerInfo);
}
initSyncWorkerAttendanceData();
initProjectOperationsAnalysisData();
getMonthAttendanceStatistics();
}
public void initSyncWorkerAttendanceData() {
List<WorkerAttendance> list = workerAttendanceService.list(Wrappers.<WorkerAttendance>lambdaQuery()
.in(WorkerAttendance::getProjectSn, "29E5B97B246544E0B0EF18534FA7C78D"));
for (WorkerAttendance workerAttendance : list) {
govtOpenApiService.workerAttendanceSync(workerAttendance);
}
}
public void initProjectOperationsAnalysisData() {
List<ProjectOperationsAnalysis> list = projectOperationsAnalysisService.list(Wrappers.<ProjectOperationsAnalysis>lambdaQuery()
.in(ProjectOperationsAnalysis::getProjectSn, "29E5B97B246544E0B0EF18534FA7C78D"));
govtOpenApiService.projectOperationsAnalysisUpdateSync(list);
}
public void getMonthAttendanceStatistics() {
List<WorkerMonthAttendanceStatistics> list = workerMonthAttendanceStatisticsService.list(Wrappers.<WorkerMonthAttendanceStatistics>lambdaQuery()
.in(WorkerMonthAttendanceStatistics::getProjectSn, "29E5B97B246544E0B0EF18534FA7C78D"));
for (WorkerMonthAttendanceStatistics workerAttendance : list) {
govtOpenApiService.workerMonthAttendanceStatisticsSync(workerAttendance);
}
}
}

View File

@ -0,0 +1,22 @@
package com.zhgd.xmgl.util;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* 环境判断
*/
@Component
public class ProfileJudgeUtil {
@Value("${spring.profiles.active}")
private String activeProfile;
/**
* 是否金林湾生产环境
*
* @return
*/
public boolean isJlw() {
return "ljw".equals(activeProfile);
}
}

View File

@ -27,7 +27,7 @@ isGetEnvironmentData=false
isGetFaceFeatureDate=false
#æµ·åº·è§†é¢æŠ¥è­¦å¾ç‰‡IP端å<EFBFBD>£æ¿æ<EFBFBD>¢
#\u6D77\u5EB7\u89C6\u9891\u62A5\u8B66\u56FE\u7247IP\u7AEF\u53E3\u66FF\u6362
video.alarm.newUrl=223.82.100.80:6040
wx-appid=
@ -37,29 +37,29 @@ mqtt-scope=devTopic
serverUrl=http://47.97.202.104:6023
#serverUrl=http://127.0.0.1:6023
#视é¢åˆ†æž<EFBFBD>url
#\u89C6\u9891\u5206\u6790url
video-analysis-url=
#默认政务åˆå»ºé¡¹ç®æ‰€å±žä¼<EFBFBD>ä¸?
#\u9ED8\u8BA4\u653F\u52A1\u521B\u5EFA\u9879\u76EE\u6240\u5C5E\u4F01\uFFFD?
defaultZwComapnySn=
#æ‡ä»¶å­˜å¨é…<EFBFBD>ç½®
#默认使用的存å¨å¹³å<EFBFBD>?
#\u6587\u4EF6\u5B58\u50A8\u914D\u7F6E
#\u9ED8\u8BA4\u4F7F\u7528\u7684\u5B58\u50A8\u5E73\uFFFD?
spring.file-storage.default-platform=local
#".min.jpg" #缩略å¾å<EFBFBD>Žç¼€ï¼Œä¾å¦ã€?min.jpgã€ã€?pngã€?
#".min.jpg" #\u7F29\u7565\u56FE\u540E\u7F00\uFF0C\u4F8B\u5982\uFFFD?min.jpg\u3011\uFFFD?png\uFFFD?
spring.file-storage.thumbnail-suffix=.jpg
# 本地存å¨ï¼Œä¸<EFBFBD>使用的情况ä¸å<EFBFBD>¯ä»¥ä¸<EFBFBD>写
# å­˜å¨å¹³å<EFBFBD>°æ ‡è¯†
# \u672C\u5730\u5B58\u50A8\uFF0C\u4E0D\u4F7F\u7528\u7684\u60C5\u51B5\u4E0B\u53EF\u4EE5\u4E0D\u5199
# \u5B58\u50A8\u5E73\u53F0\u6807\u8BC6
spring.file-storage.local[0].platform=local
#å<EFBFBD>¯ç”¨å­˜å¨
#\u542F\u7528\u5B58\u50A8
spring.file-storage.local[0].enable-storage=true
#å<EFBFBD>¯ç”¨è®¿é—®ï¼ˆçº¿ä¸Šè¯·ä½¿ç”¨ Nginx é…<C3A9>置,效率æ´é«˜ï¼‰
#\u542F\u7528\u8BBF\u95EE\uFF08\u7EBF\u4E0A\u8BF7\u4F7F\u7528 Nginx \u914D\u7F6E\uFF0C\u6548\u7387\u66F4\u9AD8\uFF09
spring.file-storage.local[0].enable-access=false
# 访问域å<EFBFBD><EFBFBD>,ä¾å¦ï¼šâ€œhttp://127.0.0.1:6023/image/â€<C3A2>,注æ„<C3A6>å<EFBFBD>Žé<C5BD>¢è¦<C3A8>åŒ path-patterns ä¿<C3A4>æŒ<C3A6>一致,â€?â€<C3A2>结尾,本地存å¨å»ºè®®ä½¿ç”¨ç¸å¯¹è·¯å¾„,æ¹ä¾¿å<C2BF>ŽæœŸæ´æ<C2B4>¢åŸŸå<C5B8>?
# \u8BBF\u95EE\u57DF\u540D\uFF0C\u4F8B\u5982\uFF1A\u201Chttp://127.0.0.1:6023/image/\u201D\uFF0C\u6CE8\u610F\u540E\u9762\u8981\u548C path-patterns \u4FDD\u6301\u4E00\u81F4\uFF0C\uFFFD?\u201D\u7ED3\u5C3E\uFF0C\u672C\u5730\u5B58\u50A8\u5EFA\u8BAE\u4F7F\u7528\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u65B9\u4FBF\u540E\u671F\u66F4\u6362\u57DF\uFFFD?
spring.file-storage.local[0].domain=
# å­˜å¨åœ°å<EFBFBD>
# \u5B58\u50A8\u5730\u5740
spring.file-storage.local[0].base-path=C:/itbgpImage/
# 访问路径,开å<EFBFBD>?enable-access å<>Žï¼Œé€šè¿‡æ­¤è·¯å¾„å<E2809E>¯ä»¥è®¿é—®åˆ°ä¸Šä¼ çš„æ‡ä»?
# \u8BBF\u95EE\u8DEF\u5F84\uFF0C\u5F00\uFFFD?enable-access \u540E\uFF0C\u901A\u8FC7\u6B64\u8DEF\u5F84\u53EF\u4EE5\u8BBF\u95EE\u5230\u4E0A\u4F20\u7684\u6587\uFFFD?
spring.file-storage.local[0].path-patterns=
spring.file-storage.aliyun-oss[0].platform=aliyun-oss
@ -68,11 +68,12 @@ spring.file-storage.aliyun-oss[0].access-key=
spring.file-storage.aliyun-oss[0].secret-key=
spring.file-storage.aliyun-oss[0].end-point=
spring.file-storage.aliyun-oss[0].bucket-name=
# 访问域å<EFBFBD><EFBFBD>,注æ„<EFBFBD>â€?â€<C3A2>结尾,ä¾å¦ï¼šhttps://abc.oss-cn-shanghai.aliyuncs.com/
# \u8BBF\u95EE\u57DF\u540D\uFF0C\u6CE8\u610F\uFFFD?\u201D\u7ED3\u5C3E\uFF0C\u4F8B\u5982\uFF1Ahttps://abc.oss-cn-shanghai.aliyuncs.com/
spring.file-storage.aliyun-oss[0].domain=
spring.file-storage.aliyun-oss[0].base-path=
#¿Í»§¶Ë LicenseÏà¹ØÅäÖÃ
#\uFFFD\u037B\uFFFD\uFFFD\uFFFD License\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
license.licensePath=C:/license/license.lic
license.publicKeysStorePath=C:/license/publicCerts.keystore
govt.host=http://47.96.183.143/uatapi