bug修复

This commit is contained in:
guo 2024-01-16 18:36:09 +08:00
parent dd1baa20a4
commit 689301b434
12 changed files with 254 additions and 110 deletions

View File

@ -153,6 +153,7 @@ public class AiAnalyseHardWareAlarmRecordController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "sizeNum", value = "查询条数默认10条", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "sizeNum", value = "查询条数默认10条", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "workerName", value = "姓名", paramType = "body", required = false, dataType = "String"),
}) })
@PostMapping(value = "/selectAiAnalyseHardWareAlarmList") @PostMapping(value = "/selectAiAnalyseHardWareAlarmList")
public Result<List<AiAnalyseHardWareAlarmRecord>> selectAiAnalyseHardWareAlarmList(@RequestBody Map<String, Object> map) { public Result<List<AiAnalyseHardWareAlarmRecord>> selectAiAnalyseHardWareAlarmList(@RequestBody Map<String, Object> map) {

View File

@ -142,5 +142,10 @@ public class AiAnalyseHardWareAlarmRecord implements Serializable {
private java.lang.String departmentName; private java.lang.String departmentName;
@TableField(exist = false) @TableField(exist = false)
private java.lang.String realName; private java.lang.String realName;
@TableField(exist = false)
@ApiModelProperty(value = "违章人员名称字符串(,分开)")
private java.lang.String workerInfoStr;
@TableField(exist = false)
@ApiModelProperty(value = "报警名称")
private java.lang.String alarmTypeName;
} }

View File

@ -96,9 +96,16 @@
</select> </select>
<select id="selectAiAnalyseHardWareAlarmList" <select id="selectAiAnalyseHardWareAlarmList"
resultType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord"> resultType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord">
SELECT a.* SELECT a.*,group_concat(wi.worker_name) workerInfoStr
FROM ai_analyse_hard_ware_alarm_record a FROM ai_analyse_hard_ware_alarm_record a
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
witaahwar.ai_analyse_hard_ware_alarm_record_id
left join worker_info wi on wi.id = witaahwar.worker_info_id
where a.project_sn = #{projectSn} where a.project_sn = #{projectSn}
<if test="workerName != null and workerName != ''">
and wi.worker_name like concat('%',#{workerName},'%')
</if>
group by a.id
order by a.create_time desc order by a.create_time desc
LIMIT #{sizeNum} LIMIT #{sizeNum}
</select> </select>

View File

@ -18,6 +18,7 @@ import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant; import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant;
import com.zhgd.xmgl.modules.basicdata.entity.Company; import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig; import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyConfigMapper; import com.zhgd.xmgl.modules.basicdata.mapper.CompanyConfigMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper; import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
@ -49,6 +50,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* @Description: AI分析硬件设备报警记录 * @Description: AI分析硬件设备报警记录
@ -189,7 +192,20 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
public List<AiAnalyseHardWareAlarmRecord> selectAiAnalyseHardWareAlarmList(Map<String, Object> map) { public List<AiAnalyseHardWareAlarmRecord> selectAiAnalyseHardWareAlarmList(Map<String, Object> map) {
Integer sizeNum = MapUtils.getInteger(map, "sizeNum", 10); Integer sizeNum = MapUtils.getInteger(map, "sizeNum", 10);
map.put("sizeNum", sizeNum); map.put("sizeNum", sizeNum);
return aiAnalyseHardWareAlarmRecordMapper.selectAiAnalyseHardWareAlarmList(map); List<AiAnalyseHardWareAlarmRecord> aiAnalyseHardWareAlarmRecords = aiAnalyseHardWareAlarmRecordMapper.selectAiAnalyseHardWareAlarmList(map);
List<DictionaryItem> dictList = dictionaryItemService.getDictList(DictionaryConstant.AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE);
try {
Map<String, DictionaryItem> typeMap = dictList.stream().collect(Collectors.toMap(DictionaryItem::getData, Function.identity(), (dictionaryItem, dictionaryItem2) -> dictionaryItem));
for (AiAnalyseHardWareAlarmRecord record : aiAnalyseHardWareAlarmRecords) {
DictionaryItem item = typeMap.get(record.getAlarmType() + "");
if (item != null) {
record.setAlarmTypeName(item.getName());
}
}
} catch (Exception e) {
e.printStackTrace();
}
return aiAnalyseHardWareAlarmRecords;
} }
@Override @Override

View File

@ -82,6 +82,13 @@ public class WorkerCertificateController {
return result; return result;
} }
private void checkParam(WorkerCertificate workerCertificate) {
if (StringUtils.isNotBlank(workerCertificate.getEffectTime()) && StringUtils.isNotBlank(workerCertificate.getIssueTime())
&& DateUtil.parse(workerCertificate.getEffectTime()).compareTo(DateUtil.parse(workerCertificate.getIssueTime())) < 0) {
throw new OpenAlertException("证书签发日期不能大于截止有效日期");
}
}
/** /**
* 编辑 * 编辑
* *
@ -97,22 +104,12 @@ public class WorkerCertificateController {
if (workerCertificateEntity == null) { if (workerCertificateEntity == null) {
result.error500(MessageUtil.get("notFindErr")); result.error500(MessageUtil.get("notFindErr"));
} else { } else {
checkParam(workerCertificate); workerCertificateService.edit(workerCertificate);
boolean ok = workerCertificateService.updateById(workerCertificate);
if (ok) {
result.successMsg(MessageUtil.get("editSucess"));
}
} }
return result; return result;
} }
private void checkParam(WorkerCertificate workerCertificate) {
if (StringUtils.isNotBlank(workerCertificate.getEffectTime()) && StringUtils.isNotBlank(workerCertificate.getIssueTime())
&& DateUtil.parse(workerCertificate.getEffectTime()).compareTo(DateUtil.parse(workerCertificate.getIssueTime())) < 0) {
throw new OpenAlertException("证书签发日期不能大于截止有效日期");
}
}
/** /**
* 通过id删除 * 通过id删除

View File

@ -1,67 +1,86 @@
package com.zhgd.xmgl.modules.worker.entity; package com.zhgd.xmgl.modules.worker.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/** /**
* @Description: 人员黑名单 * @Description: 人员黑名单
* @author pds * @author pds
* @date 2020-11-23 * @date 2020-11-23
* @version V1.0 * @version V1.0
*/ */
@Data @Data
@TableName("worker_blacklist") @TableName("worker_blacklist")
@ApiModel(value="WorkerBlacklist实体类",description="WorkerBlacklist") @ApiModel(value = "WorkerBlacklist实体类", description = "WorkerBlacklist")
public class WorkerBlacklist implements Serializable { public class WorkerBlacklist implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**id*/ /**
* id
*/
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="id") @ApiModelProperty(value = "id")
private java.lang.Long id ; private java.lang.Long id;
/**项目唯一标识*/ /**
@Excel(name = "项目唯一标识", width = 15) * 项目唯一标识
@ApiModelProperty(value="项目唯一标识") */
private java.lang.String projectSn ; @Excel(name = "项目唯一标识", width = 15)
/**人员ID*/ @ApiModelProperty(value = "项目唯一标识")
@Excel(name = "人员ID", width = 15) private java.lang.String projectSn;
@ApiModelProperty(value="人员ID") /**
* 人员ID
private java.lang.Long workerId ; */
/**姓名*/ @Excel(name = "人员ID", width = 15)
@Excel(name = "姓名", width = 15) @ApiModelProperty(value = "人员ID")
@ApiModelProperty(value="姓名")
private java.lang.String workerName ; private java.lang.Long workerId;
/**身份证号*/ /**
@Excel(name = "身份证号", width = 15) * 姓名
@ApiModelProperty(value="身份证号") */
private java.lang.String idCard ; @Excel(name = "姓名", width = 15)
/**加入黑名单原因*/ @ApiModelProperty(value = "姓名")
@Excel(name = "加入黑名单原因", width = 15) private java.lang.String workerName;
@ApiModelProperty(value="加入黑名单原因") /**
private java.lang.String addReason ; * 身份证号
/**reason*/ */
@Excel(name = "reason", width = 15) @Excel(name = "身份证号", width = 15)
@ApiModelProperty(value="reason") @ApiModelProperty(value = "身份证号")
private java.lang.String reason ; private java.lang.String idCard;
/**加入黑名单日期*/ /**
@Excel(name = "加入黑名单日期", width = 15) * 加入黑名单原因
@ApiModelProperty(value="加入黑名单日期") */
private java.lang.String addTime ; @Excel(name = "加入黑名单原因", width = 15)
/**创建时间*/ @ApiModelProperty(value = "加入黑名单原因")
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") private java.lang.String addReason;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") /**
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") * reason
@ApiModelProperty(value="创建时间") */
private java.util.Date createTime ; @Excel(name = "reason", width = 15)
@ApiModelProperty(value = "reason")
private java.lang.String reason;
/**
* 加入黑名单日期
*/
@Excel(name = "加入黑名单日期", width = 15)
@ApiModelProperty(value = "加入黑名单日期")
private java.lang.String addTime;
/**
* 创建时间
*/
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
@ApiModelProperty(value = "类型1证书过期")
private java.lang.Integer type;
} }

View File

@ -330,6 +330,8 @@ public class WorkerInfo implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "截止日期")
private Date expirationDate;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "人脸分数") @ApiModelProperty(value = "人脸分数")

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.worker.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.worker.entity.WorkerCertificate; import com.zhgd.xmgl.modules.worker.entity.WorkerCertificate;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
@ -11,7 +12,7 @@ import java.util.Map;
/** /**
* @Description: 人员证书表 * @Description: 人员证书表
* @author pds * @author pds
* @date 2021-01-08 * @date 2021-01-08
* @version V1.0 * @version V1.0
*/ */
@Mapper @Mapper
@ -20,4 +21,12 @@ public interface WorkerCertificateMapper extends BaseMapper<WorkerCertificate> {
List<EntityMap> selectWorkerCertificateList(Map<String, Object> map); List<EntityMap> selectWorkerCertificateList(Map<String, Object> map);
List<EntityMap> selectProjectManageCertificateTotal(Map<String, Object> map); List<EntityMap> selectProjectManageCertificateTotal(Map<String, Object> map);
/**
* 查询有证书但是证书过期而且没有添加到黑名单的劳务人员
*
* @return
*/
List<WorkerInfo> selectExpiredNotInBlackWorkerList();
} }

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.worker.mapper.WorkerCertificateMapper"> <mapper namespace="com.zhgd.xmgl.modules.worker.mapper.WorkerCertificateMapper">
<select id="selectWorkerCertificateList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map"> <select id="selectWorkerCertificateList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
SELECT a.*,b.dictionary_name certificate_type_name SELECT a.*,b.dictionary_name certificate_type_name
from worker_certificate a LEFT JOIN from worker_certificate a LEFT JOIN
@ -12,14 +11,23 @@
<select id="selectProjectManageCertificateTotal" resultType="com.zhgd.jeecg.common.mybatis.EntityMap"> <select id="selectProjectManageCertificateTotal" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
SELECT a.dictionary_name,IFNULL(b.certificatenum,0) num SELECT a.dictionary_name,IFNULL(b.certificatenum,0) num
from dictionaries_record a LEFT JOIN from dictionaries_record a LEFT JOIN
(SELECT w1.certificate_type,COUNT(1) certificatenum (SELECT w1.certificate_type,COUNT(1) certificatenum
FROM worker_certificate w1 INNER JOIN worker_info w2 ON w1.worker_id=w2.id FROM worker_certificate w1 INNER JOIN worker_info w2 ON w1.worker_id=w2.id
WHERE w1.project_sn=#{projectSn} WHERE w1.project_sn=#{projectSn}
<if test="userEnterpriseId!=null and userEnterpriseId!=''"> <if test="userEnterpriseId != null and userEnterpriseId != ''">
and FIND_IN_SET(w2.enterprise_id,#{userEnterpriseId}) and FIND_IN_SET(w2.enterprise_id,#{userEnterpriseId})
</if> </if>
GROUP BY w1.certificate_type) b ON a.id=b.certificate_type GROUP BY w1.certificate_type) b ON a.id=b.certificate_type
WHERE a.key_name='WORKER_CERT' and a.type=2 WHERE a.key_name='WORKER_CERT' and a.type=2
order by num; order by num;
</select> </select>
</mapper>
<select id="selectExpiredNotInBlackWorkerList" resultType="com.zhgd.xmgl.modules.worker.entity.WorkerInfo">
select distinct wi.*
from worker_info wi
join worker_certificate wc on wi.id = wc.worker_id
left join worker_blacklist wb on wb.worker_id = wi.id
where wc.effect_time <![CDATA[<]]> current_date
AND (wb.type is null or wb.type != 1)
</select>
</mapper>

View File

@ -10,7 +10,7 @@ import java.util.Map;
/** /**
* @Description: 人员证书表 * @Description: 人员证书表
* @author pds * @author pds
* @date 2021-01-08 * @date 2021-01-08
* @version V1.0 * @version V1.0
*/ */
public interface IWorkerCertificateService extends IService<WorkerCertificate> { public interface IWorkerCertificateService extends IService<WorkerCertificate> {
@ -18,4 +18,6 @@ public interface IWorkerCertificateService extends IService<WorkerCertificate> {
List<EntityMap> selectWorkerCertificateList(Map<String, Object> map); List<EntityMap> selectWorkerCertificateList(Map<String, Object> map);
Map<String, Object> selectProjectManageCertificateTotal(Map<String, Object> map); Map<String, Object> selectProjectManageCertificateTotal(Map<String, Object> map);
void edit(WorkerCertificate workerCertificate);
} }

View File

@ -1,24 +1,34 @@
package com.zhgd.xmgl.modules.worker.service.impl; package com.zhgd.xmgl.modules.worker.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.worker.entity.WorkerBlacklist;
import com.zhgd.xmgl.modules.worker.entity.WorkerCertificate; import com.zhgd.xmgl.modules.worker.entity.WorkerCertificate;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.WorkerBlacklistMapper;
import com.zhgd.xmgl.modules.worker.mapper.WorkerCertificateMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerCertificateMapper;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import com.zhgd.xmgl.modules.worker.service.IWorkerCertificateService; import com.zhgd.xmgl.modules.worker.service.IWorkerCertificateService;
import org.apache.commons.collections.MapUtils; 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.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @Description: 人员证书表 * @Description: 人员证书表
* @author pds * @author pds
* @date 2021-01-08 * @date 2021-01-08
* @version V1.0 * @version V1.0
*/ */
@Service @Service
@ -26,6 +36,10 @@ import java.util.Map;
public class WorkerCertificateServiceImpl extends ServiceImpl<WorkerCertificateMapper, WorkerCertificate> implements IWorkerCertificateService { public class WorkerCertificateServiceImpl extends ServiceImpl<WorkerCertificateMapper, WorkerCertificate> implements IWorkerCertificateService {
@Autowired @Autowired
private WorkerCertificateMapper workerCertificateMapper; private WorkerCertificateMapper workerCertificateMapper;
@Autowired
private WorkerBlacklistMapper workerBlacklistMapper;
@Autowired
private WorkerInfoMapper workerInfoMapper;
@Override @Override
@ -35,16 +49,60 @@ public class WorkerCertificateServiceImpl extends ServiceImpl<WorkerCertificateM
@Override @Override
public Map<String, Object> selectProjectManageCertificateTotal(Map<String, Object> map) { public Map<String, Object> selectProjectManageCertificateTotal(Map<String, Object> map) {
Map<String, Object> data=new HashMap<>(); Map<String, Object> data = new HashMap<>();
List<EntityMap> list=workerCertificateMapper.selectProjectManageCertificateTotal(map); List<EntityMap> list = workerCertificateMapper.selectProjectManageCertificateTotal(map);
int totalNum=0; int totalNum = 0;
if(list!=null&&list.size()>0){ if (list != null && list.size() > 0) {
for (EntityMap entityMap:list){ for (EntityMap entityMap : list) {
totalNum=totalNum+ MapUtils.getInteger(entityMap,"num"); totalNum = totalNum + MapUtils.getInteger(entityMap, "num");
} }
} }
data.put("list",list); data.put("list", list);
data.put("totalNum",totalNum); data.put("totalNum", totalNum);
return data; return data;
} }
@Override
public void edit(WorkerCertificate workerCertificate) {
checkParam(workerCertificate);
updateById(workerCertificate);
List<WorkerCertificate> workerCertificates = workerCertificateMapper.selectList(new LambdaQueryWrapper<WorkerCertificate>()
.eq(WorkerCertificate::getWorkerId, workerCertificate.getWorkerId()));
List<WorkerCertificate> expiredList = workerCertificates.stream().filter(c -> {
return StringUtils.isNotBlank(c.getEffectTime()) && DateUtil.compare(DateUtil.endOfDay(DateUtil.parse(c.getEffectTime())), new Date()) < 0;
}).collect(Collectors.toList());
if (CollUtil.isNotEmpty(expiredList)) {
WorkerInfo workerInfo = workerInfoMapper.selectById(workerCertificate.getWorkerId());
List<WorkerBlacklist> workerBlacklists = workerBlacklistMapper.selectList(new LambdaQueryWrapper<WorkerBlacklist>()
.eq(WorkerBlacklist::getWorkerId, workerInfo.getId()));
if (CollUtil.isNotEmpty(workerBlacklists)) {
//没有新增就新增
WorkerBlacklist black = new WorkerBlacklist();
black.setProjectSn(workerInfo.getProjectSn());
black.setWorkerId(workerInfo.getId());
black.setWorkerName(workerInfo.getWorkerName());
black.setIdCard(workerInfo.getIdCard());
black.setAddReason("证件已到期");
black.setReason("证件已到期");
black.setAddTime(DateUtil.now());
black.setCreateTime(new Date());
black.setType(1);
workerBlacklistMapper.insert(black);
}
} else {
//删除过期数据
workerBlacklistMapper.delete(new LambdaQueryWrapper<WorkerBlacklist>()
.eq(WorkerBlacklist::getWorkerId, workerCertificate.getWorkerId())
.eq(WorkerBlacklist::getType, 1)
);
}
}
private void checkParam(WorkerCertificate workerCertificate) {
if (StringUtils.isNotBlank(workerCertificate.getEffectTime()) && StringUtils.isNotBlank(workerCertificate.getIssueTime())
&& DateUtil.parse(workerCertificate.getEffectTime()).compareTo(DateUtil.parse(workerCertificate.getIssueTime())) < 0) {
throw new OpenAlertException("证书签发日期不能大于截止有效日期");
}
}
} }

View File

@ -1,19 +1,30 @@
package com.zhgd.xmgl.task; package com.zhgd.xmgl.task;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhgd.xmgl.modules.basicdata.service.INoticeService; import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
import com.zhgd.xmgl.modules.project.entity.ProjectExternalSystemService; import com.zhgd.xmgl.modules.project.entity.ProjectExternalSystemService;
import com.zhgd.xmgl.modules.project.mapper.ProjectExternalSystemServiceMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectExternalSystemServiceMapper;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.worker.entity.WorkerBlacklist;
import com.zhgd.xmgl.modules.worker.entity.WorkerCertificate;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.WorkerBlacklistMapper;
import com.zhgd.xmgl.modules.worker.mapper.WorkerCertificateMapper;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import com.zhgd.xmgl.modules.worker.service.IWorkerCertificateService;
import com.zhgd.xmgl.util.ElecardUtil; import com.zhgd.xmgl.util.ElecardUtil;
import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
import lombok.extern.slf4j.Slf4j;
import net.javacrumbs.shedlock.core.SchedulerLock; import net.javacrumbs.shedlock.core.SchedulerLock;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -22,8 +33,9 @@ import java.util.List;
* @author: Mr.Peng * @author: Mr.Peng
* @create: 2021-09-10 17:31 * @create: 2021-09-10 17:31
**/ **/
@Log4j @Slf4j
@Component @Component
@RestController
public class WorkerTask { public class WorkerTask {
@Autowired @Autowired
private ProjectExternalSystemServiceMapper projectExternalSystemServiceMapper; private ProjectExternalSystemServiceMapper projectExternalSystemServiceMapper;
@ -34,17 +46,22 @@ public class WorkerTask {
private INoticeService noticeService; private INoticeService noticeService;
@Autowired @Autowired
private IProjectUfaceConfigService projectUfaceConfigService; private IProjectUfaceConfigService projectUfaceConfigService;
@Autowired
private IWorkerCertificateService workerCertificateService;
@Autowired
private WorkerCertificateMapper workerCertificateMapper;
@Autowired
private WorkerBlacklistMapper workerBlacklistMapper;
/** /**
* 定时修改用户码状态 * 定时修改用户码状态
*/ */
@SchedulerLock(name = "updateWorkerCode", lockAtMostFor = 1000*60*60, lockAtLeastFor = 1000*60*5) @SchedulerLock(name = "updateWorkerCode", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5)
//@Scheduled(cron = "0 0 4 * * ?")
@Scheduled(cron = "0 0 1 * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void updateWorkerCode(){ public void updateWorkerCode() {
log.info("------------------------------健康码同步开始-----------------------------------------"); log.info("------------------------------健康码同步开始-----------------------------------------");
try{ try {
List<ProjectExternalSystemService> list= projectExternalSystemServiceMapper.getChangtongCodeSystemList(); List<ProjectExternalSystemService> list = projectExternalSystemServiceMapper.getChangtongCodeSystemList();
if(list!=null&&list.size()>0){ if(list!=null&&list.size()>0){
for (ProjectExternalSystemService projectExternalSystemService:list){ for (ProjectExternalSystemService projectExternalSystemService:list){
getWorkerCodeState(projectExternalSystemService); getWorkerCodeState(projectExternalSystemService);
@ -119,33 +136,36 @@ public class WorkerTask {
title2.append("红码人员:").append(redWorkerName.toString()).append(""); title2.append("红码人员:").append(redWorkerName.toString()).append("");
} }
title2.append("已销权"); title2.append("已销权");
noticeService.sendProjectNoicte(projectExternalSystemService.getProjectSn(),"红黄码核验",title.toString(),"17"); noticeService.sendProjectNoicte(projectExternalSystemService.getProjectSn(), "红黄码核验", title.toString(), "17");
noticeService.sendProjectNoicte(projectExternalSystemService.getProjectSn(),"红黄码销权",title2.toString(),"17"); noticeService.sendProjectNoicte(projectExternalSystemService.getProjectSn(), "红黄码销权", title2.toString(), "17");
} }
} }
} }
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
/*private void sendNoicte(String projectSn,String title,String msg,String type){ /**
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); * 劳务人员截止日期到期的话就自动填充原因就是证件到期到黑名单中
List<SystemUser> systemUserList=systemUserMapper.selectProjectSystemUserList(projectSn); */
//向项目管理员和子账号推送通知 @SchedulerLock(name = "addWorkerBlacklist", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5)
if(systemUserList.size()>0){ @Scheduled(cron = "0 0 1 * * ?")
for (SystemUser systemUser:systemUserList){ @GetMapping("xmgl/task/addWorkerBlacklist")
addNotice(systemUser.getUserId(),msg,title,sdf.format(new Date()),type); public void addWorkerBlacklist() {
} List<WorkerInfo> list = workerCertificateMapper.selectExpiredNotInBlackWorkerList();
for (WorkerInfo workerInfo : list) {
WorkerBlacklist black = new WorkerBlacklist();
black.setProjectSn(workerInfo.getProjectSn());
black.setWorkerId(workerInfo.getId());
black.setWorkerName(workerInfo.getWorkerName());
black.setIdCard(workerInfo.getIdCard());
black.setAddReason("证件已到期");
black.setReason("证件已到期");
black.setAddTime(DateUtil.now());
black.setCreateTime(new Date());
black.setType(1);
workerBlacklistMapper.insert(black);
} }
} }
private void addNotice(Integer accountId,String msg,String title,String time,String type){
Notice notice = new Notice();
notice.setAccountId(accountId);
notice.setMsg(msg);
notice.setTitle(title);
notice.setSendTime(time);
notice.setType(type);
noticeService.addNotice(notice,true);
}*/
} }