中水北方修改
This commit is contained in:
parent
ce8752b742
commit
3d34bd6dc1
@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.zhgd.annotation.OperLog;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
@ -13,6 +14,8 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.entity.vo.AttendanceOfEachCompanyVo;
|
||||
import com.zhgd.xmgl.entity.vo.NumberTimeTableVo;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
|
||||
import com.zhgd.xmgl.modules.quality.entity.QualityRegionToUfaceDev;
|
||||
import com.zhgd.xmgl.modules.quality.service.IQualityRegionToUfaceDevService;
|
||||
import com.zhgd.xmgl.modules.worker.entity.MockWorkerAttendanceConfig;
|
||||
import com.zhgd.xmgl.modules.worker.entity.UfaceDev;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance;
|
||||
@ -67,6 +70,9 @@ public class WorkerAttendanceController {
|
||||
@Resource
|
||||
private IUfaceDevService ufaceDevService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private IQualityRegionToUfaceDevService qualityRegionToUfaceDevService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IWorkerInfoService workerInfoService;
|
||||
@Lazy
|
||||
@ -219,10 +225,23 @@ public class WorkerAttendanceController {
|
||||
@ApiImplicitParam(name = "devSn", value = "设备sn", dataType = "String", paramType = "body", required = false),
|
||||
@ApiImplicitParam(name = "cardType", value = "卡类型 1 IC卡 2人脸识别 3 指纹识别 4补卡操作(辅助考勤),5二维码,6蓝牙,7手机打卡,8车辆通行,9身份证", dataType = "Integer", paramType = "body", required = false),
|
||||
@ApiImplicitParam(name = "isMock", value = "1是模拟数据", dataType = "Integer", paramType = "body", required = false),
|
||||
@ApiImplicitParam(name = "regionId", value = "区域ID", dataType = "Integer", paramType = "body", required = false),
|
||||
})
|
||||
@PostMapping(value = "/reissueAttendanceCard")
|
||||
public Result reissueAttendanceCard(@RequestBody Map<String, Object> map) {
|
||||
UfaceDev ufaceDev = ufaceDevService.getOne(new LambdaQueryWrapper<UfaceDev>().eq(UfaceDev::getDevSn, MapUtils.getString(map, "devSn")));
|
||||
String devSn = MapUtils.getString(map, "devSn");
|
||||
String regionId = MapUtils.getString(map, "regionId");
|
||||
if (devSn == null && regionId != null) {
|
||||
List<Long> devIds = qualityRegionToUfaceDevService.list(Wrappers.<QualityRegionToUfaceDev>lambdaQuery()
|
||||
.eq(QualityRegionToUfaceDev::getQualityRegionId, regionId)).stream().map(q -> q.getUfaceDevId()).collect(Collectors.toList());
|
||||
List<UfaceDev> list = ufaceDevService.list(Wrappers.<UfaceDev>lambdaQuery().in(UfaceDev::getId, devIds)
|
||||
.eq(UfaceDev::getIsOut, 1));
|
||||
if (list.size() > 0) {
|
||||
devSn = list.get(0).getDevSn();
|
||||
map.put("devSn", devSn);
|
||||
}
|
||||
}
|
||||
UfaceDev ufaceDev = ufaceDevService.getOne(new LambdaQueryWrapper<UfaceDev>().eq(UfaceDev::getDevSn, devSn));
|
||||
if (ufaceDev != null) {
|
||||
map.put("passagewayName", ufaceDev.getDevName());
|
||||
}
|
||||
|
||||
@ -413,6 +413,10 @@ public class WorkerInfo implements Serializable {
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "动火证编号")
|
||||
private String fireCertificate;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "中水北方,进入超24小时未出进行人员预警信息")
|
||||
private String alarmFlag;
|
||||
/**
|
||||
* 通知的人员id
|
||||
*/
|
||||
|
||||
@ -43,7 +43,7 @@ public interface WorkerAttendancePresenceMapper extends BaseMapper<WorkerAttenda
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<Long> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId);
|
||||
List<Map<String, Object>> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId);
|
||||
|
||||
/**
|
||||
* 查询一段时间的在场人数趋势
|
||||
|
||||
@ -37,7 +37,8 @@
|
||||
qr.id,
|
||||
qr.region_name as regionName,
|
||||
qr.project_sn as projectSn,
|
||||
COUNT(DISTINCT wap.person_sn) AS present
|
||||
COUNT(DISTINCT wap.person_sn) AS present,
|
||||
MIN(wap.create_time) as minTime
|
||||
from
|
||||
quality_region qr
|
||||
join quality_region_to_uface_dev qrtud on qr.id = qrtud.quality_region_id
|
||||
@ -55,9 +56,9 @@
|
||||
GROUP BY qr.id
|
||||
</select>
|
||||
|
||||
<select id="getPresentWorkerIdListByRegion" resultType="java.lang.Long">
|
||||
<select id="getPresentWorkerIdListByRegion" resultType="java.util.Map">
|
||||
SELECT
|
||||
distinct wi.id
|
||||
wi.id, MIN(wap.create_time) minTime
|
||||
from
|
||||
quality_region qr
|
||||
join quality_region_to_uface_dev qrtud on qr.id = qrtud.quality_region_id
|
||||
@ -73,6 +74,7 @@
|
||||
join worker_attendance_presence wap on wap.person_sn = a.person_sn
|
||||
join worker_info wi on wi.person_sn=a.person_sn
|
||||
WHERE qr.id=#{regionId}
|
||||
GROUP BY wi.id
|
||||
</select>
|
||||
|
||||
<select id="queryPresentTrend" resultType="com.zhgd.xmgl.entity.vo.NumberTimeTableVo">
|
||||
|
||||
@ -38,5 +38,5 @@ public interface IWorkerAttendancePresenceService extends IService<WorkerAttenda
|
||||
|
||||
List<Map<String, Object>> getPresentByRegion(Map<String, Object> paramMap);
|
||||
|
||||
List<Long> getPresentWorkerIdListByRegion(Long regionId);
|
||||
List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId);
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.zhgd.xmgl.modules.worker.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -74,11 +76,20 @@ public class WorkerAttendancePresenceServiceImpl extends ServiceImpl<WorkerAtten
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getPresentByRegion(Map<String, Object> paramMap) {
|
||||
return workerAttendancePresenceMapper.getPresentByRegion(paramMap);
|
||||
List<Map<String, Object>> presentByRegion = workerAttendancePresenceMapper.getPresentByRegion(paramMap);
|
||||
for (Map<String, Object> map : presentByRegion) {
|
||||
Object minTime = map.get("minTime");
|
||||
if (minTime != null) {
|
||||
map.put("alarmFlag", DateUtil.between(DateUtil.parseDateTime(minTime.toString()), new Date(), DateUnit.HOUR) > 24 ? 1 : 0);
|
||||
} else {
|
||||
map.put("alarmFlag", 0);
|
||||
}
|
||||
}
|
||||
return presentByRegion;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getPresentWorkerIdListByRegion(Long regionId) {
|
||||
public List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId) {
|
||||
return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId);
|
||||
}
|
||||
|
||||
|
||||
@ -3,10 +3,7 @@ package com.zhgd.xmgl.modules.worker.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateRange;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.*;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.stream.StreamUtil;
|
||||
@ -301,10 +298,20 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
@Override
|
||||
public IPage<WorkerInfo> selectWorkerInfoList(Map<String, Object> map) {
|
||||
String regionIdForUface = MapUtils.getString(map, "regionIdForUface");
|
||||
List<Map<String, Object>> workerAttendList = new ArrayList<>();
|
||||
if (StrUtil.isNotBlank(regionIdForUface)) {
|
||||
List<Long> workerIds = workerAttendancePresenceService.getPresentWorkerIdListByRegion(Long.valueOf(regionIdForUface));
|
||||
if (workerIds.size() == 0) {
|
||||
workerAttendList = workerAttendancePresenceService.getPresentWorkerIdListByRegion(Long.valueOf(regionIdForUface));
|
||||
for (Map<String, Object> param : workerAttendList) {
|
||||
Object minTime = param.get("minTime");
|
||||
if (minTime != null) {
|
||||
param.put("enterHour", DateUtil.between(DateUtil.parseDateTime(minTime.toString()), new Date(), DateUnit.HOUR));
|
||||
}
|
||||
}
|
||||
List<Long> workerIds = new ArrayList<>();
|
||||
if (workerAttendList.size() == 0) {
|
||||
workerIds.add(-100L);
|
||||
} else {
|
||||
workerIds = workerAttendList.stream().map(w -> Long.valueOf(w.get("id").toString())).collect(Collectors.toList());
|
||||
}
|
||||
map.put("workerInfos", StrUtil.join(",", workerIds));
|
||||
}
|
||||
@ -349,6 +356,16 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
}
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(regionIdForUface)) {
|
||||
for (WorkerInfo workerInfo : list) {
|
||||
for (Map<String, Object> stringObjectMap : workerAttendList) {
|
||||
if (workerInfo.getId().toString().equals(stringObjectMap.get("id").toString()) && stringObjectMap.get("enterHour") != null
|
||||
&& Integer.valueOf(stringObjectMap.get("enterHour").toString()) > 24) {
|
||||
workerInfo.setAlarmFlag("人员在场超过" + Integer.valueOf(stringObjectMap.get("enterHour").toString()) + "小时,请确认人员是否安全");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return page.setRecords(list);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user