包头修改

This commit is contained in:
guoshengxiong 2024-11-01 19:27:16 +08:00
parent 463d5af55e
commit 2a717a07bd
16 changed files with 230 additions and 126 deletions

View File

@ -67,6 +67,7 @@ public class PipelineWelderController {
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "weldingPassRateDesc", value = "1焊接合格率降序", paramType = "query", required = false, dataType = "Integer"),
})
@GetMapping(value = "/page")
public Result<IPage<PipelineWelder>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {

View File

@ -21,6 +21,8 @@ import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionCertificateDetailSer
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionDetailService;
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionService;
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
import com.zhgd.xmgl.modules.exam.entity.ExamTrainRecord;
import com.zhgd.xmgl.modules.exam.service.IExamTrainRecordService;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
import com.zhgd.xmgl.util.*;
@ -49,6 +51,7 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -79,6 +82,9 @@ public class WorkerAdmissionController {
private HistoryService historyService;
@Autowired
private IWorkerInfoService workerInfoService;
@Lazy
@Autowired
private IExamTrainRecordService examTrainRecordService;
/**
* 分页列表查询
@ -131,7 +137,10 @@ public class WorkerAdmissionController {
JSONArray numList = JSON.parseArray(MapUtils.getString(map, "numList"));
JSONArray idCardList = JSON.parseArray(MapUtils.getString(map, "idCardList"));
if (CollUtil.isNotEmpty(numList)) {
List<String> nums = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>().eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getNum).collect(Collectors.toList());
List<String> nums = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
.eq(WorkerAdmissionDetail::getProjectSn, projectSn)
.eq(WorkerAdmissionDetail::getIsCertificateQualified, 1))
.stream().map(WorkerAdmissionDetail::getNum).collect(Collectors.toList());
List<String> existNums = new ArrayList<>();
for (int i = 0; i < numList.size(); i++) {
String num = numList.getString(i);
@ -147,7 +156,9 @@ public class WorkerAdmissionController {
if (CollUtil.isNotEmpty(idCardList)) {
List<String> ids = idCardList.stream().map(o -> o.toString()).collect(Collectors.toList());
List<String> existDetailIdCards = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
.in(WorkerAdmissionDetail::getIdCard, ids).eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList());
.in(WorkerAdmissionDetail::getIdCard, ids)
.eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)
.eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList());
List<String> existWorkerIdCards = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>()
.in(WorkerInfo::getIdCard, ids).eq(WorkerInfo::getProjectSn, projectSn)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList());
existDetailIdCards.addAll(existWorkerIdCards);
@ -168,7 +179,6 @@ public class WorkerAdmissionController {
return Result.ok();
}
/**
* 编辑
*
@ -223,11 +233,19 @@ public class WorkerAdmissionController {
if (CollUtil.isEmpty(admissions)) {
return Result.success(new MapBuilder<String, Object>().put("file", null).build());
}
List<WorkerAdmissionDetail> details = workerAdmissionDetailService.queryList(new MapBuilder<String, Object>().put("workerAdmissionIds", StrUtil.join(",", admissions.stream().map(WorkerAdmission::getId).collect(Collectors.toList()))).build());
List<WorkerAdmissionDetail> details = workerAdmissionDetailService.queryList(new MapBuilder<String, Object>()
.put("workerAdmissionIds", StrUtil.join(",", admissions.stream().map(WorkerAdmission::getId).collect(Collectors.toList())))
.put("isCertificateQualified", 1)
.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<>();
//导出文件名称
@ -250,7 +268,8 @@ public class WorkerAdmissionController {
map.put("certificateIssuingPersonName", certificateIssuingPersonName);
map.put("epcSafetyManagerName", epcSafetyManagerName);
map.put("projectTeamHseManagerName", projectTeamHseManagerName);
map.put("trainingEngineerName", trainingEngineerName);
// map.put("trainingEngineerName", trainingEngineerName);
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());
@ -266,6 +285,9 @@ 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);
@ -366,57 +388,32 @@ public class WorkerAdmissionController {
}
//舍弃第一行表头数据
for (int j = sheet.getFirstRowNum() + 3; j <= sheet.getLastRowNum() - 2; j++) {
// DangerIdentificationEvaluationForm excelVo = new DangerIdentificationEvaluationForm();
//获取当前行
Row row = sheet.getRow(j);
if (null == row) {
continue;
}
// //遍历行所有的列
// int firstCellNum = row.getFirstCellNum();
// int lastCellNum = row.getLastCellNum();
//列数
String value = ExcelUtils.getSheelValue(sheet, j, 10);
idCards.add(value);
if (StrUtil.isNotBlank(value)) {
idCards.add(value);
}
}
}
// importExcelVoList = importExcelVoList.stream().filter(d -> StringUtils.isNotBlank(d.getSequenceNumber())).collect(Collectors.toList());
// 判断序号是否有重复的
// Map<String, Long> collect = importExcelVoList.stream().map(DangerIdentificationEvaluationForm::getSequenceNumber).collect(
// Collectors.groupingBy(Function.identity(), Collectors.counting()));
// List<String> list = new ArrayList<>();
// for (String s : collect.keySet()) {
// if (collect.get(s) > 1) {
// list.add(s);
// }
// }
// if (list.size() > 0) {
// String collect1 = list.stream().collect(Collectors.joining(","));
// return Result.error("序号有重复:" + collect1);
// }
//业务逻辑处理......
// List<DangerIdentificationEvaluationForm> queryList = dangerIdentificationEvaluationFormService.list(new QueryWrapper<DangerIdentificationEvaluationForm>().lambda().eq(DangerIdentificationEvaluationForm::getProjectSn, projectSn));
// Map<String, DangerIdentificationEvaluationForm> querySequenceNumberMap = queryList.stream().collect(Collectors.toMap(DangerIdentificationEvaluationForm::getSequenceNumber, Function.identity()));
// List<DangerIdentificationEvaluationForm> updateList = new ArrayList<>();
// List<DangerIdentificationEvaluationForm> addList = new ArrayList<>();
// for (DangerIdentificationEvaluationForm form : importExcelVoList) {
// form.setProjectSn(projectSn);
// if (querySequenceNumberMap.containsKey(form.getSequenceNumber())) {
// form.setId(querySequenceNumberMap.get(form.getSequenceNumber()).getId());
// updateList.add(form);
// } else {
// addList.add(form);
// }
// }
// if (CollUtil.isNotEmpty(addList)) {
// dangerIdentificationEvaluationFormService.saveBatch(addList);
// }
// if (CollUtil.isNotEmpty(updateList)) {
// dangerIdentificationEvaluationFormService.updateBatchById(updateList);
// }
if (CollUtil.isNotEmpty(idCards)) {
Set<String> idCardSet = workerAdmissionDetailService.queryPageList(new MapBuilder<String, Object>()
.put("idCards", StrUtil.join(",", idCards))
.put("isPass", 1)
.put("isCertificateQualified", 1)
.build()).getRecords().stream().map(WorkerAdmissionDetail::getIdCard).distinct().collect(Collectors.toSet());
idCards = idCards.stream().filter(idCardSet::contains).collect(Collectors.toList());
}
if (CollUtil.isEmpty(idCards)) {
throw new OpenAlertException("批量导入合格人员为空");
}
return Result.success(new MapBuilder<String, Object>().put("idCards", StrUtil.join(",", idCards)).build());
} catch (OpenAlertException e) {
throw e;
} catch (Exception e) {
log.error("", e);
return Result.error("excel解析数据异常......");

View File

@ -14,7 +14,6 @@ import cn.hutool.extra.qrcode.QrCodeUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gexin.fastjson.JSONObject;
import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException;
@ -73,7 +72,7 @@ public class WorkerAdmissionDetailController {
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
@ApiImplicitParam(name = "idCards", value = "身份证号s", paramType = "query", required = false, dataType = "String"),
@ApiImplicitParam(name = "idCards", value = "身份证号s(多个逗号分割)", paramType = "query", required = false, dataType = "String"),
})
@GetMapping(value = "/page")
public Result<IPage<WorkerAdmissionDetail>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
@ -160,11 +159,13 @@ public class WorkerAdmissionDetailController {
@OperLog(operModul = "人员入场明细管理", operType = "", operDesc = "批量录入人员到实名制中")
@ApiOperation(value = "批量录入人员到实名制中", notes = "批量录入人员到实名制中", httpMethod = "POST")
@ApiImplicitParam(name = "idCards", value = "人员身份证s", paramType = "query", required = true, dataType = "String")
@ApiImplicitParams({
@ApiImplicitParam(name = "idCards", value = "人员身份证s", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String")
})
@PostMapping(value = "/importWorkerBatch")
public Result importWorkerBatch(@RequestBody HashMap<String, Object> param) {
workerAdmissionDetailService.importWorkerBatch(param);
return Result.ok();
return Result.success(workerAdmissionDetailService.importWorkerBatch(param));
}
@OperLog(operModul = "劳务管理", operType = "", operDesc = "批量制卡")
@ -172,6 +173,7 @@ public class WorkerAdmissionDetailController {
@ApiImplicitParam(name = "idList", value = "ID列表", paramType = "body", required = true)
@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();
if (CollUtil.isEmpty(records)) {
return Result.ok();

View File

@ -171,6 +171,13 @@ public class WorkerAdmissionDetail implements Serializable {
*/
@ApiModelProperty(value = "更新时间")
private java.util.Date updateDate;
@Excel(name = "联系电话", width = 15)
@ApiModelProperty(value="联系电话")
private java.lang.String phone ;
@Excel(name = "资质是否合格0不合格1合格", width = 15)
@ApiModelProperty(value="资质是否合格0不合格1合格")
private java.lang.Integer isCertificateQualified ;
@TableField(exist = false)
private String random;

View File

@ -27,4 +27,8 @@ public interface WorkerAdmissionMapper extends BaseMapper<WorkerAdmission> {
WorkerAdmission getById(String id);
List<WorkerAdmission> queryList(@Param(Constants.WRAPPER) QueryWrapper<WorkerAdmission> queryWrapper);
Integer subTotalWorkerNum(Long workerAdmissionId);
Integer subQualifiedWorkerNum(Long workerAdmissionId);
}

View File

@ -29,14 +29,16 @@
left join enterprise_info ei2 on ei2.id=t.enterprise_id
left join device_unit du1 on du1.id=t.work_area
left join worker_info wi on wi.id_card=t.id_card and t.project_sn=wi.project_sn
left join ( select etr.worker_card,max(etr.start_exam_time) as start_exam_time,etr.is_pass,score
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) tr on tr.worker_card = t.id_card
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 (
<include refid="com.zhgd.xmgl.modules.baotou.mapper.WorkerAdmissionDetailMapper.dicMap">
</include>

View File

@ -38,4 +38,12 @@
)t
where t.id=#{id}
</select>
<update id="subTotalWorkerNum">
update worker_admission set total_worker_num=total_worker_num-1 where id=#{id}
</update>
<update id="subQualifiedWorkerNum">
update worker_admission set qualifier_num=qualifier_num-1 where id=#{id}
</update>
</mapper>

View File

@ -62,5 +62,5 @@ public interface IWorkerAdmissionDetailService extends IService<WorkerAdmissionD
*/
WorkerAdmissionDetail queryById(String id);
void importWorkerBatch(HashMap<String, Object> param);
String importWorkerBatch(HashMap<String, Object> param);
}

View File

@ -64,4 +64,9 @@ public interface IWorkerAdmissionService extends IService<WorkerAdmission> {
WorkerAdmission queryById(String id);
void addFromFlow(Map<String, Object> map);
void subTotalWorkerNum(Long workerAdmissionId);
void subQualifiedWorkerNum(Long workerAdmissionId);
}

View File

@ -1,37 +1,40 @@
package com.zhgd.xmgl.modules.baotou.service.impl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.baotou.entity.PipelineWelder;
import com.zhgd.xmgl.modules.baotou.mapper.PipelineWelderMapper;
import com.zhgd.xmgl.modules.baotou.service.IPipelineWelderService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.util.PageUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.baotou.entity.PipelineWelder;
import com.zhgd.xmgl.modules.baotou.mapper.PipelineWelderMapper;
import com.zhgd.xmgl.modules.baotou.service.IPipelineWelderService;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import com.zhgd.xmgl.util.RefUtil;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Objects;
/**
* @Description: 管道焊工
* @author pds
* @date 2024-09-20
* @date 2024-09-20
* @version V1.0
*/
@Service
public class PipelineWelderServiceImpl extends ServiceImpl<PipelineWelderMapper, PipelineWelder> implements IPipelineWelderService {
@Autowired
private PipelineWelderMapper pipelineWelderMapper;
@Override
public IPage<PipelineWelder> queryPageList(HashMap<String, Object> param) {
QueryWrapper<PipelineWelder> queryWrapper = this.getQueryWrapper(param);
Page<PipelineWelder> page = PageUtil.getPage(param);
IPage<PipelineWelder> pageList = baseMapper.queryList(page, queryWrapper,param);
IPage<PipelineWelder> pageList = baseMapper.queryList(page, queryWrapper, param);
pageList.setRecords(this.dealList(pageList.getRecords()));
return pageList;
}
@ -39,12 +42,17 @@ public class PipelineWelderServiceImpl extends ServiceImpl<PipelineWelderMapper,
@Override
public List<PipelineWelder> queryList(HashMap<String, Object> param) {
QueryWrapper<PipelineWelder> queryWrapper = getQueryWrapper(param);
return dealList(baseMapper.queryList(queryWrapper,param));
return dealList(baseMapper.queryList(queryWrapper, param));
}
private QueryWrapper<PipelineWelder> getQueryWrapper(HashMap<String, Object> param) {
QueryWrapper<PipelineWelder> queryWrapper = QueryGenerator.initPageQueryWrapper(PipelineWelder.class, param, true);
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PipelineWelder::getId));
Integer weldingPassRateDesc = MapUtils.getInteger(param, "weldingPassRateDesc");
if (Objects.equals(weldingPassRateDesc, 1)) {
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PipelineWelder::getWeldingPassRate));
} else {
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PipelineWelder::getId));
}
return queryWrapper;
}
@ -61,7 +69,7 @@ public class PipelineWelderServiceImpl extends ServiceImpl<PipelineWelderMapper,
@Override
public void edit(PipelineWelder pipelineWelder) {
PipelineWelder oldPipelineWelder = baseMapper.selectById(pipelineWelder.getId());
if(oldPipelineWelder==null) {
if (oldPipelineWelder == null) {
throw new OpenAlertException("未找到对应实体");
}
baseMapper.updateById(pipelineWelder);
@ -70,7 +78,7 @@ public class PipelineWelderServiceImpl extends ServiceImpl<PipelineWelderMapper,
@Override
public void delete(String id) {
PipelineWelder pipelineWelder = baseMapper.selectById(id);
if(pipelineWelder==null) {
if (pipelineWelder == null) {
throw new OpenAlertException("未找到对应实体");
}
baseMapper.deleteById(id);

View File

@ -104,7 +104,9 @@ public class ProjectScheduleServiceImpl extends ServiceImpl<ProjectScheduleMappe
List<ProjectSchedule> schedules = projectScheduleMapper.selectList(new LambdaQueryWrapper<ProjectSchedule>()
.eq(ProjectSchedule::getProjectSn, projectSn));
List<ProjectScheduleDeviceUnit> units = projectScheduleDeviceUnitService.list(new LambdaQueryWrapper<ProjectScheduleDeviceUnit>()
.eq(ProjectScheduleDeviceUnit::getProjectSn, projectSn));
.eq(ProjectScheduleDeviceUnit::getProjectSn, projectSn)
.orderByAsc(ProjectScheduleDeviceUnit::getOrderBy)
);
for (ProjectScheduleDeviceUnit unit : units.stream().filter(o->!Objects.equals(o.getParentId(),0)).collect(Collectors.toList())) {
List<ProjectSchedule> collect = schedules.stream().filter(o -> Objects.equals(o.getDeviceUnitId(), unit.getId())).collect(Collectors.toList());
unit.setSchedules(collect);

View File

@ -16,9 +16,11 @@ import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionDetail;
import com.zhgd.xmgl.modules.baotou.mapper.WorkerAdmissionDetailMapper;
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionCertificateDetailService;
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionDetailService;
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionService;
import com.zhgd.xmgl.modules.exam.entity.ExamTrainRecord;
import com.zhgd.xmgl.modules.exam.service.IExamTrainRecordService;
import com.zhgd.xmgl.modules.worker.entity.*;
import com.zhgd.xmgl.modules.worker.service.*;
import com.zhgd.xmgl.util.FlowUtil;
import com.zhgd.xmgl.util.MapBuilder;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
@ -27,8 +29,10 @@ import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -56,6 +60,12 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
@Lazy
@Autowired
private IWorkerCertificateService workerCertificateService;
@Lazy
@Autowired
private IExamTrainRecordService examTrainRecordService;
@Lazy
@Autowired
private IWorkerAdmissionService workerAdmissionService;
@Override
public IPage<WorkerAdmissionDetail> queryPageList(HashMap<String, Object> param) {
@ -105,6 +115,7 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
baseMapper.updateById(workerAdmissionDetail);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(String id) {
WorkerAdmissionDetail workerAdmissionDetail = baseMapper.selectById(id);
@ -112,6 +123,12 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
throw new OpenAlertException("未找到对应实体");
}
baseMapper.deleteById(id);
if (Objects.equals(workerAdmissionDetail.getIsCertificateQualified(), 1)) {
workerAdmissionService.subQualifiedWorkerNum(workerAdmissionDetail.getWorkerAdmissionId());
workerAdmissionService.subTotalWorkerNum(workerAdmissionDetail.getWorkerAdmissionId());
} else {
workerAdmissionService.subTotalWorkerNum(workerAdmissionDetail.getWorkerAdmissionId());
}
}
@Override
@ -124,10 +141,17 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
}
@Override
public void importWorkerBatch(HashMap<String, Object> param) {
public String importWorkerBatch(HashMap<String, Object> param) {
String idCards = MapUtils.getString(param, "idCards");
String projectSn = MapUtils.getString(param, "projectSn");
String msg = "操作成功";
if (StrUtil.isNotBlank(idCards)) {
List<WorkerAdmissionDetail> detailList = this.queryList(new MapBuilder<String, Object>().put("idCards", idCards).build());
List<WorkerAdmissionDetail> detailList = this.queryList(new MapBuilder<String, Object>()
.put("projectSn", projectSn)
.put("idCards", idCards)
.put("isCertificateQualified", 1)
.put("isPass", 1)
.build());
if (CollUtil.isNotEmpty(detailList)) {
ArrayList<WorkerType> addTypes = new ArrayList<>();
ArrayList<TeamInfo> addTeams = new ArrayList<>();
@ -136,7 +160,6 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
ArrayList<WorkerCertificate> addCertificates = new ArrayList<>();
List<WorkerAdmissionDetail> lwDetails = detailList.stream().filter(o -> Objects.equals(o.getPersonType(), 1)).collect(Collectors.toList());
List<WorkerAdmissionDetail> glDetails = detailList.stream().filter(o -> Objects.equals(o.getPersonType(), 2)).collect(Collectors.toList());
String projectSn = detailList.get(0).getProjectSn();
List<WorkerType> existWorkerTypes = new ArrayList<>();
List<TeamInfo> existTeamInfos = new ArrayList<>();
List<DepartmentInfo> existDepartmentInfos = new ArrayList<>();
@ -275,6 +298,7 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
}
}
}
return msg;
}
private WorkerInfo mapWorkerInfo(WorkerAdmissionDetail detail) {
@ -305,9 +329,9 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
Integer personType = detail.getPersonType();
WorkerInfo workerInfo = new WorkerInfo();
workerInfo.setWorkerName(workerName);
workerInfo.setFieldAcquisitionUrl(StrUtil.isNotBlank(fieldAcquisitionUrl)? JSONArray.parseArray(fieldAcquisitionUrl).getJSONObject(0).getString("url") :null);
workerInfo.setIdCardDownPhotoUrl(StrUtil.isNotBlank(idCardDownPhotoUrl)? JSONArray.parseArray(idCardDownPhotoUrl).getJSONObject(0).getString("url") :null);
workerInfo.setIdCardUpPhotoUrl(StrUtil.isNotBlank(idCardUpPhotoUrl)? JSONArray.parseArray(idCardUpPhotoUrl).getJSONObject(0).getString("url") :null);
workerInfo.setFieldAcquisitionUrl(StrUtil.isNotBlank(fieldAcquisitionUrl) ? JSONArray.parseArray(fieldAcquisitionUrl).getJSONObject(0).getString("url") : null);
workerInfo.setIdCardDownPhotoUrl(StrUtil.isNotBlank(idCardDownPhotoUrl) ? JSONArray.parseArray(idCardDownPhotoUrl).getJSONObject(0).getString("url") : null);
workerInfo.setIdCardUpPhotoUrl(StrUtil.isNotBlank(idCardUpPhotoUrl) ? JSONArray.parseArray(idCardUpPhotoUrl).getJSONObject(0).getString("url") : null);
workerInfo.setEnterpriseId(enterpriseId);
workerInfo.setWorkArea(workArea);
workerInfo.setDepartmentName(postWorkTypeName);
@ -318,7 +342,7 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl<WorkerAdmissio
workerInfo.setProjectSn(projectSn);
workerInfo.setAddTime(new Date());
workerInfo.setBirthday(birthday);
workerInfo.setIdCardBigPhotoUrl(StrUtil.isNotBlank(fieldAcquisitionUrl)? JSONArray.parseArray(fieldAcquisitionUrl).getJSONObject(0).getString("url") :null);
workerInfo.setIdCardBigPhotoUrl(StrUtil.isNotBlank(fieldAcquisitionUrl) ? JSONArray.parseArray(fieldAcquisitionUrl).getJSONObject(0).getString("url") : null);
// workerInfo.setPersonSn("");
workerInfo.setEnterDate(entryDeadline);
workerInfo.setInserviceType(1);

View File

@ -147,11 +147,16 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
ArrayList<String> repeatStrs = new ArrayList<>();
if (map.get("details") != null) {
if (map.get("details") instanceof List) {
List<String> nums = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>().eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getNum).collect(Collectors.toList());
List<String> nums = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
.eq(WorkerAdmissionDetail::getProjectSn, projectSn)
.eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)
).stream().map(WorkerAdmissionDetail::getNum).collect(Collectors.toList());
List<Map> detailsList = (List) map.get("details");
List<String> idCards = detailsList.stream().map(o -> MapUtils.getString(((Map) o), "field4731914165560")).collect(Collectors.toList());
List<String> existDetailIdCards = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
.in(WorkerAdmissionDetail::getIdCard, idCards).eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList());
.in(WorkerAdmissionDetail::getIdCard, idCards)
.eq(WorkerAdmissionDetail::getIsCertificateQualified, 1)
.eq(WorkerAdmissionDetail::getProjectSn, projectSn)).stream().map(WorkerAdmissionDetail::getIdCard).collect(Collectors.toList());
List<String> existWorkerIdCards = workerInfoService.list(new LambdaQueryWrapper<WorkerInfo>()
.in(WorkerInfo::getIdCard, idCards).eq(WorkerInfo::getProjectSn, projectSn)).stream().map(WorkerInfo::getIdCard).collect(Collectors.toList());
existDetailIdCards.addAll(existWorkerIdCards);
@ -204,6 +209,8 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
detail.setBirthday(idCardMap.get("birthday"));
// detail.setWorkerAdmissionId();
detail.setRandom(random);
detail.setIsCertificateQualified(isCertificateQualified);
detail.setPhone(FlowUtil.getString(m, "field6776257685667"));
if (nums.contains(num)) {
repeatStrs.add(detail.getWorkerName() + "[" + detail.getNum() + "]");
continue;
@ -215,9 +222,9 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
if (!Objects.equals(isCertificateQualified, 1)) {
//资质不合格
failStrs.add(detail.getWorkerName() + "[" + detail.getIdCard() + "]");
continue;
} else {
successStrs.add(detail.getWorkerName() + "[" + detail.getIdCard() + "]");
}
successStrs.add(detail.getWorkerName() + "[" + detail.getIdCard() + "]");
details.add(detail);
List ces = FlowUtil.getList(m, "field3419932198510");
if (ces != null) {
@ -263,6 +270,8 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
detail.setWorkerAdmissionId(admission.getId());
}
workerAdmissionDetailService.saveBatch(details);
}
if (CollUtil.isNotEmpty(successStrs)) {
msg += ",成功入场人员:" + StrUtil.join("", successStrs);
}
if (CollUtil.isNotEmpty(failStrs)) {
@ -287,6 +296,16 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl<WorkerAdmissionMappe
noticeService.addProjectLevelNotice(projectSn, "人员入场审批", msg, "10", null);
}
@Override
public void subTotalWorkerNum(Long workerAdmissionId) {
baseMapper.subTotalWorkerNum(workerAdmissionId);
}
@Override
public void subQualifiedWorkerNum(Long workerAdmissionId) {
baseMapper.subQualifiedWorkerNum(workerAdmissionId);
}
private Integer setPersonType(Integer postWorkType) {
//劳务or管理100<=管理<200<=劳务是否有资质107,108,109300<=x
Integer i = Convert.toInt(postWorkType);

View File

@ -88,7 +88,7 @@ public class ExamTrainRecord implements Serializable {
@ApiModelProperty(value = "总分")
private Integer totalScore;
/**
* 考试次数
* 考试次数考试一次加1
*/
@Excel(name = "考试次数", width = 15)
@ApiModelProperty(value = "考试次数")

View File

@ -17,14 +17,9 @@ 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.execption.OpenAlertException;
import com.zhgd.xmgl.modules.baotou.entity.ExamScanCode;
import com.zhgd.xmgl.modules.baotou.entity.ViolationDetail;
import com.zhgd.xmgl.modules.baotou.entity.ViolationReEducation;
import com.zhgd.xmgl.modules.baotou.entity.WorkerAdmissionDetail;
import com.zhgd.xmgl.modules.baotou.service.IExamScanCodeService;
import com.zhgd.xmgl.modules.baotou.service.IViolationDetailService;
import com.zhgd.xmgl.modules.baotou.service.IViolationReEducationService;
import com.zhgd.xmgl.modules.baotou.service.IWorkerAdmissionDetailService;
import com.zhgd.xmgl.modules.baotou.entity.*;
import com.zhgd.xmgl.modules.baotou.service.*;
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
import com.zhgd.xmgl.modules.exam.entity.*;
import com.zhgd.xmgl.modules.exam.mapper.ExamTrainRecordMapper;
import com.zhgd.xmgl.modules.exam.service.*;
@ -61,6 +56,9 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl<ExamTrainRecordMappe
@Lazy
@Autowired
IExamQuestionBankService examQuestionBankServie;
@Lazy
@Autowired
NoticeServiceImpl noticeService;
@Autowired
private IExamTrainService examTrainService;
@Autowired
@ -84,6 +82,9 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl<ExamTrainRecordMappe
private IViolationReEducationService violationReEducationService;
@Autowired
private IExamScanCodeService examScanCodeService;
@Lazy
@Autowired
private IWorkerAdmissionService workerAdmissionService;
@Override
public Page<ExamTrainRecordVo> pageList(Page page, Wrapper<ExamTrainRecordVo> wrapper) {
@ -97,9 +98,13 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl<ExamTrainRecordMappe
@Override
public ExamTrainRecord submit(List<ExamAnswerQuestion> examAnswerQuestionList) {
ExamTrainRecord examTrainRecord = this.getOne(new LambdaQueryWrapper<ExamTrainRecord>().eq(ExamTrainRecord::getWorkerCard, examAnswerQuestionList.get(0).getWorkerCard()).eq(ExamTrainRecord::getExamPaperId, examAnswerQuestionList.get(0).getPaperId()));
// ExamTrain examTrain = examTrainService.getById(examTrainRecord.getTrainId());
ExamPaper examPaper = examPaperService.getById(examAnswerQuestionList.get(0).getPaperId());
String card = examAnswerQuestionList.get(0).getWorkerCard();
if (StrUtil.isBlank(card)) {
throw new OpenAlertException("workerCard不能为空");
}
Long paperId = examAnswerQuestionList.get(0).getTrainRecordId();
ExamTrainRecord r = this.getOne(new LambdaQueryWrapper<ExamTrainRecord>().eq(ExamTrainRecord::getWorkerCard, card).eq(ExamTrainRecord::getExamPaperId, paperId));
ExamPaper examPaper = examPaperService.getById(paperId);
int score = 0;
int totalScore = 0;
for (ExamAnswerQuestion examAnswerQuestion : examAnswerQuestionList) {
@ -108,38 +113,54 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl<ExamTrainRecordMappe
score = score + examAnswerQuestion.getScore();
}
}
examTrainRecord.setExamNum(1);
examTrainRecord.setScore(score);
examTrainRecord.setIsPass(score >= examPaper.getPassLine() ? 1 : 0);
long duration = DateUtil.between(examTrainRecord.getStartExamTime(), new Date(), DateUnit.SECOND) * 1000;
examTrainRecord.setDuration(DateUtil.formatBetween(duration));
examTrainRecord.setTotalScore(totalScore);
this.updateById(examTrainRecord);
// List<ExamPointConfig> list = examPointConfigService.list(Wrappers.<ExamPointConfig>lambdaQuery().eq(ExamPointConfig::getProjectSn, examTrainRecord.getProjectSn()));
// if (list.size() > 0) {
// if (examTrain.getTrainEndTime().compareTo(new Date()) > 0) {
// point("1", list, examTrainRecord.getWorkerId(), "在规定时间内参与" + examTrain.getName() + "考试,加");
// } else {
// point("2", list, examTrainRecord.getWorkerId(), "没在规定时间内参与" + examTrain.getName() + "考试,扣");
// }
// if (examTrainRecord.getIsPass() == 1) {
// point("3", list, examTrainRecord.getWorkerId(), "进行" + examTrain.getName() + "考试成绩合格,加");
// } else {
// point("4", list, examTrainRecord.getWorkerId(), "进行" + examTrain.getName() + "考试成绩不合格,扣");
// }
// }
if (Objects.equals(examTrainRecord.getIsPass(), 1)) {
ExamSubject subject = examSubjectService.getById(examPaper.getSubjectId());
r.setExamNum(1);
r.setScore(score);
r.setIsPass(score >= examPaper.getPassLine() ? 1 : 0);
long duration = DateUtil.between(r.getStartExamTime(), new Date(), DateUnit.SECOND) * 1000;
r.setDuration(DateUtil.formatBetween(duration));
r.setTotalScore(totalScore);
this.updateById(r);
ExamSubject subject = examSubjectService.getById(examPaper.getSubjectId());
if (Objects.equals(r.getIsPass(), 1)) {
//违章再教育合格下发门禁
//复工培训合格下发门禁
if (Objects.equals(subject.getType(), 2) || Objects.equals(subject.getType(), 1) && Objects.equals(examTrainRecord.getIsReEducation(), 1)) {
HashMap<String, Object> map = new HashMap<>(16);
map.put("id", examTrainRecord.getWorkerId());
map.put("deductScore", 100);
workerInfoService.updateScoreSendAuth(map);
//复工培训合格下发门禁自动修改成入场
if (Objects.equals(subject.getType(), 2) || Objects.equals(subject.getType(), 1) && Objects.equals(r.getIsReEducation(), 1)) {
// HashMap<String, Object> map = new HashMap<>(16);
// map.put("id", examTrainRecord.getWorkerId());
// map.put("deductScore", 100);
// workerInfoService.updateScoreSendAuth(map);
List<WorkerInfo> infos = workerInfoService.selectWorkerInfoList(new MapBuilder<String, Object>()
.put("id", r.getWorkerId())
.put("projectSn", r.getProjectSn())
.build()).getRecords();
if (CollUtil.isNotEmpty(infos)) {
WorkerInfo workerInfo = infos.get(0);
workerInfo.setInserviceType(1);
workerInfo.setSafeScore(100D);
workerInfo.setAccountType(Objects.equals(workerInfo.getPersonType(), 2) ? 1 : 2);
if (Objects.equals(subject.getType(), 2)) {
workerInfo.setReEntry(1);
}
workerInfoService.editWorkerInfo(workerInfo);
}
}
} else {
//入场培训不合格通知给办证人重考次数用完再提示
if (Objects.equals(subject.getType(), 1) && r.getExamCount() > examPaper.getRetakeNum()) {
String workerCard = r.getWorkerCard();
List<Long> admissionIds = workerAdmissionDetailService.list(new LambdaQueryWrapper<WorkerAdmissionDetail>()
.eq(WorkerAdmissionDetail::getIdCard, workerCard)
).stream().map(WorkerAdmissionDetail::getWorkerAdmissionId).distinct().collect(Collectors.toList());
if (CollUtil.isNotEmpty(admissionIds)) {
List<Long> certificateIssuingPersons = workerAdmissionService.list(new LambdaQueryWrapper<WorkerAdmission>()
.in(WorkerAdmission::getId, admissionIds)).stream().map(WorkerAdmission::getCertificateIssuingPerson).distinct().collect(Collectors.toList());
noticeService.addUsersNotice(certificateIssuingPersons, "入场培训不合格通知",
StrUtil.format("{}(身份证号:{})参加考试科目为{}试题名称为{}的入场培训不合格",
r.getWorkerName(), r.getWorkerCard(), subject.getName(), examPaper.getName()), "10");
}
}
}
return examTrainRecord;
return r;
}
@Override
@ -237,7 +258,11 @@ public class ExamTrainRecordServiceImpl extends ServiceImpl<ExamTrainRecordMappe
needReEducation = true;
}
}
List<WorkerAdmissionDetail> details = workerAdmissionDetailService.queryList(new MapBuilder<String, Object>().put("projectSn", projectSn).put("idCard", idCard).build());
List<WorkerAdmissionDetail> details = workerAdmissionDetailService.queryList(new MapBuilder<String, Object>()
.put("projectSn", projectSn)
.put("idCard", idCard)
.put("isCertificateQualified", 1)
.build());
if (details.size() > 0) {
admissionDetail = details.get(0);
}

View File

@ -216,4 +216,4 @@ tenant.tables[9]=wflow_sub_groups
tenant.tables[10]=wflow_sub_process
sada.host=http://api.e.v1.i-sada.net
h5.exam.url=http://192.168.34.175:8088/zjsjAPP/#/pages/personLocation/login/login?examPaperId=
h5.exam.url=http://192.168.34.133:20626/#/pages/personLocation/login/login?examPaperId=