diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerAttendanceController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerAttendanceController.java index 9ed4eae78..6276b0e73 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerAttendanceController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerAttendanceController.java @@ -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 map) { - UfaceDev ufaceDev = ufaceDevService.getOne(new LambdaQueryWrapper().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 devIds = qualityRegionToUfaceDevService.list(Wrappers.lambdaQuery() + .eq(QualityRegionToUfaceDev::getQualityRegionId, regionId)).stream().map(q -> q.getUfaceDevId()).collect(Collectors.toList()); + List list = ufaceDevService.list(Wrappers.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().eq(UfaceDev::getDevSn, devSn)); if (ufaceDev != null) { map.put("passagewayName", ufaceDev.getDevName()); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java index 0031e1435..d79fe4780 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java @@ -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 */ diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendancePresenceMapper.java b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendancePresenceMapper.java index 1f83b5562..dad5bd083 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendancePresenceMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerAttendancePresenceMapper.java @@ -43,7 +43,7 @@ public interface WorkerAttendancePresenceMapper extends BaseMapper getPresentWorkerIdListByRegion(@Param("regionId") Long regionId); + List> getPresentWorkerIdListByRegion(@Param("regionId") Long regionId); /** * 查询一段时间的在场人数趋势 diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml index c601af301..d9116747a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendancePresenceMapper.xml @@ -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 - 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