包头bug修复

This commit is contained in:
guoshengxiong 2025-04-11 19:04:41 +08:00
parent 1baceceebb
commit fae66d7b0c
4 changed files with 35 additions and 26 deletions

View File

@ -8,10 +8,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.core.util.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gexin.fastjson.JSON;
@ -244,6 +241,25 @@ public class WorkerAdmissionController {
if (CollUtil.isNotEmpty(idCardList)) {
List<String> ids = idCardList.stream().map(Object::toString).collect(Collectors.toList());
//判断身份证格式正确
for (String idCard : ids) {
if (!IdCardUtils.strongVerifyIdNumber(idCard)) {
throw new OpenAlertException("身份证格式" + idCard + "错误");
}
}
// 不能重复身份证号使用Map统计每个元素的出现次数
Map<String, Long> frequencyMap = ids.stream()
.collect(Collectors.groupingBy(s -> s, Collectors.counting()));
// 找出出现次数大于1的元素
List<String> duplicates = frequencyMap.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
if (!duplicates.isEmpty()) {
throw new OpenAlertException("存在重复身份证号" + StrUtil.join(",", duplicates));
}
List<String> blacklists = workerBlacklistService.list(new LambdaQueryWrapper<WorkerBlacklist>()
.in(WorkerBlacklist::getIdCard, ids)).stream().map(WorkerBlacklist::getIdCard).collect(Collectors.toList());
if (CollUtil.isNotEmpty(blacklists)) {
@ -373,16 +389,12 @@ public class WorkerAdmissionController {
.put("workerAdmissionIds", StrUtil.join(",", admissions.stream().map(WorkerAdmission::getId).collect(Collectors.toList())))
.put("projectSn", admissions.get(0).getProjectSn())
.put("isCertificateQualified", 1)
.put("queryExamStatus", 2)//合格
.build());
List<WorkerAdmissionCertificateDetail> certificateDetails = new ArrayList<>();
Map<String, ExamTrainRecord> idCardMap = new HashMap<>();
if (CollUtil.isNotEmpty(details)) {
certificateDetails = workerAdmissionCertificateDetailService.list(new LambdaQueryWrapper<WorkerAdmissionCertificateDetail>()
.in(WorkerAdmissionCertificateDetail::getWorkerAdmissionDetailId, details.stream().map(WorkerAdmissionDetail::getId).collect(Collectors.toList())));
idCardMap = examTrainRecordService.list(new LambdaQueryWrapper<ExamTrainRecord>()
.in(ExamTrainRecord::getWorkerCard, details.stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList()))
.eq(ExamTrainRecord::getIsPass, 1)
).stream().collect(Collectors.toMap(ExamTrainRecord::getWorkerCard, Function.identity(), (examTrainRecord, examTrainRecord2) -> examTrainRecord));
}
List<Map<String, Object>> allList = new ArrayList<>();
//导出文件名称
@ -409,7 +421,8 @@ public class WorkerAdmissionController {
map.put("trainingEngineerName", null);
List<Map<String, Object>> listMap = new ArrayList<>();
map.put("listMap", listMap);
List<WorkerAdmissionDetail> detailList = details.stream().filter(detail -> Objects.equals(detail.getWorkerAdmissionId(), admission.getId())).collect(Collectors.toList());
List<WorkerAdmissionDetail> detailList = details.stream().filter(detail -> Objects.equals(detail.getWorkerAdmissionId(), admission.getId()))
.sorted(Comparator.comparing(WorkerAdmissionDetail::getNum, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList());
if (CollUtil.isNotEmpty(detailList)) {
int i = 0;
for (WorkerAdmissionDetail detail : detailList) {
@ -422,10 +435,6 @@ public class WorkerAdmissionController {
String entryDeadline = detail.getEntryDeadline();
String score = detail.getScore();
String workAreaName = detail.getWorkAreaName();
if (!idCardMap.containsKey(idCard)) {
continue;
}
Map<String, Object> dm = new HashMap<>();
dm.put("order", ++i);
dm.put("num", num);

View File

@ -181,7 +181,7 @@ public class WorkerAdmissionDetailController {
@PostMapping(value = "/batchPrintCard")
public Result batchPrintCard(@ApiIgnore @RequestBody HashMap<String, Object> param) throws IOException {
param.put("isCertificateQualified", 1);
List<WorkerAdmissionDetail> records = workerAdmissionDetailService.queryPageList(param).getRecords();
List<WorkerAdmissionDetail> records = workerAdmissionDetailService.queryList(param);
if (CollUtil.isEmpty(records)) {
return Result.ok();
}

View File

@ -256,5 +256,11 @@ public class WorkerAdmissionDetail implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "项目组名称")
private java.lang.String projectGroupName ;
private java.lang.String projectGroupName;
@TableField(exist = false)
@ApiModelProperty(value = "科目名称")
private String subjectName;
@TableField(exist = false)
@ApiModelProperty(value = "时长")
private String duration;
}

View File

@ -25,24 +25,18 @@
<!-- ,if(wi.id is null,0,1) as is_import-->
,tr.id as record_id
,tr.is_new_batch
,tr.duration
,es.name subject_name
,wa.certificate_issuing_person
,pg.project_group_name
from worker_admission_detail t
left join worker_admission wa on wa.id=t.worker_admission_id
left join enterprise_info ei1 on ei1.id=t.epc_cbs
left join enterprise_info ei2 on ei2.id=t.enterprise_id
<!-- left join ( select etr.* from-->
<!-- exam_train_record etr-->
<!-- join (select etr.worker_card,max(etr.start_exam_time) as start_exam_time-->
<!-- from exam_train_record etr-->
<!-- left join exam_paper ep on ep.id=etr.exam_paper_id-->
<!-- left join exam_subject es on es.id=ep.subject_id-->
<!-- where etr.project_sn = #{param.projectSn}-->
<!-- and etr.is_re_education = 0-->
<!-- and es.type=1-->
<!-- group by etr.worker_card)t on t.worker_card=etr.worker_card and t.start_exam_time=etr.start_exam_time) tr on tr.worker_card = t.id_card-->
left join exam_train_record tr on tr.application_id=wa.id and t.id=tr.worker_id and tr.application_type=1
and tr.submit = 1
left join exam_paper ep on ep.id=wa.paper_id
join exam_subject es on ep.subject_id = es.id
left join post_work_type t2 on t2.id = t.post_work_type
LEFT JOIN project_group pg on pg.id=t.project_group
where 1=1