From 15505541dc72f69448e3046affb794c22be5b0f4 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Mon, 12 Aug 2024 10:56:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=AE=A1=E7=90=86=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B2=97=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/BusinessConstants.java | 2 +- .../common/core/utils/ImportExcelUtils.java | 8 +- .../bracelet/exportVo/PersonExportVo.java | 3 + .../bracelet/importVo/PersonImportVo.java | 5 + .../common/entity/bracelet/vo/PersonVo.java | 16 ++- .../bracelet/mapper/PersonMgeMapper.java | 9 ++ .../service/impl/PersonMgeServiceImpl.java | 114 +++++++++++------- .../main/resources/download/person_model.xlsx | Bin 49053 -> 49111 bytes .../mapper/bracelet/PersonMgeMapper.xml | 36 +++--- 9 files changed, 131 insertions(+), 62 deletions(-) diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java index 2d6d496..5b97cac 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/BusinessConstants.java @@ -26,7 +26,7 @@ public class BusinessConstants { public final static String XLS = ".xls"; /** 人员导入*/ - public final static String PERSON_IMPORT_VO = "PersonExportVo"; + public final static String PERSON_IMPORT_VO = "PersonImportVo"; public final static String MAN = "男"; public final static String FEMALE = "女"; public final static String OTHER = "其他"; diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/ImportExcelUtils.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/ImportExcelUtils.java index a4dc1e6..274b4c1 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/ImportExcelUtils.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/ImportExcelUtils.java @@ -86,9 +86,9 @@ public class ImportExcelUtils { } private static boolean checkModal(Sheet sheet, String className) { - int colNum = sheet.getRow(0).getLastCellNum(); + int colNum = sheet.getRow(1).getLastCellNum(); if (Objects.equals(className, BusinessConstants.PERSON_IMPORT_VO)) { - return colNum == 6; + return colNum == 7; } return false; } @@ -166,6 +166,10 @@ public class ImportExcelUtils { obj.put("phone", row.getCell(BusinessConstants.CELL_4).getStringCellValue()); } obj = setFileObj(row, obj, files); + if (row.getCell(BusinessConstants.CELL_6) != null) { + // 人员岗位 + obj.put("post", row.getCell(BusinessConstants.CELL_6).getStringCellValue()); + } return obj; } diff --git a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/exportVo/PersonExportVo.java b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/exportVo/PersonExportVo.java index ab0dfd7..6487009 100644 --- a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/exportVo/PersonExportVo.java +++ b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/exportVo/PersonExportVo.java @@ -33,4 +33,7 @@ public class PersonExportVo { @Excel(name = "马甲编号", width = 20.0,height = 15.0,orderNum = "6") private String mjCode; + + @Excel(name = "人员岗位", width = 20.0,height = 15.0,orderNum = "7") + private String post; } diff --git a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/importVo/PersonImportVo.java b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/importVo/PersonImportVo.java index c2ce932..85ab7a5 100644 --- a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/importVo/PersonImportVo.java +++ b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/importVo/PersonImportVo.java @@ -45,4 +45,9 @@ public class PersonImportVo implements Serializable { * 人脸照片 */ private MultipartFile file; + + /** + * 岗位 + */ + private String post; } diff --git a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonVo.java b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonVo.java index 30c35f5..604c35d 100644 --- a/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonVo.java +++ b/bonus-common/bonus-common-entity/src/main/java/com/bonus/common/entity/bracelet/vo/PersonVo.java @@ -67,12 +67,12 @@ public class PersonVo implements Serializable { /** * 安全帽编号 */ - @Length(max = 10, message = "安全帽编号字符长度不能超过20", groups = {Query.class}) + @Length(max = 10, message = "安全帽编号字符长度不能超过10", groups = {Query.class}) private String aqmCode; /** * 马甲编号 */ - @Length(max = 10, message = "马甲编号字符长度不能超过20", groups = {Query.class}) + @Length(max = 10, message = "马甲编号字符长度不能超过10", groups = {Query.class}) private String mjCode; /** * 创建时间 @@ -168,6 +168,18 @@ public class PersonVo implements Serializable { */ private List delElseFileIdList; + /** + * 岗位 + */ + @NotBlank(message = "人员岗位不能为空", groups = {Query.class}) + @Length(max = 32, message = "人员岗位字符长度不能超过32", groups = {Query.class}) + private String post; + + /** + * 是否推送至人脸库 0.未推送 1.已推送 + */ + private Integer isPush; + /** * 查询条件限制 */ diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java index 1f0d11b..a9eff5c 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/mapper/PersonMgeMapper.java @@ -202,4 +202,13 @@ public interface PersonMgeMapper { * @param vo */ public void insertCertificate(CertificateVo vo); + + /** + * 获取人员岗位 + * @return List> + * @author cwchen + * @date 2024/8/12 10:02 + */ + @MapKey("name") + List> getPostType(); } diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java index 8116b50..6bd03f9 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/PersonMgeServiceImpl.java @@ -94,7 +94,8 @@ public class PersonMgeServiceImpl implements IPersonMgeService { try { list = mapper.getExportPersonLists(dto); for (PersonVo vo : list) { - vo = handleData(vo); + vo.setIdCard(Sm4Utils.decode(vo.getIdCard())); + vo.setPhone(Sm4Utils.decode(vo.getPhone())); } } catch (Exception e) { log.error(e.toString(), e); @@ -122,15 +123,15 @@ public class PersonMgeServiceImpl implements IPersonMgeService { return AjaxResult.error("电话已存在"); } // 验证安全帽编号是否重复、马甲编号是否重复 - if(StringUtils.isNotBlank(vo.getAqmCode())){ - int result = mapper.codeIsExist(vo,1); - if(result > 0){ + if (StringUtils.isNotBlank(vo.getAqmCode())) { + int result = mapper.codeIsExist(vo, 1); + if (result > 0) { return AjaxResult.error("安全帽编号已存在"); } } - if(StringUtils.isNotBlank(vo.getMjCode())){ - int result = mapper.codeIsExist(vo,2); - if(result > 0){ + if (StringUtils.isNotBlank(vo.getMjCode())) { + int result = mapper.codeIsExist(vo, 2); + if (result > 0) { return AjaxResult.error("马甲编号已存在"); } } @@ -176,15 +177,15 @@ public class PersonMgeServiceImpl implements IPersonMgeService { return AjaxResult.error("电话已存在"); } // 验证安全帽编号是否重复、马甲编号是否重复 - if(StringUtils.isNotBlank(vo.getAqmCode())){ - int result = mapper.codeIsExist(vo,1); - if(result > 0){ + if (StringUtils.isNotBlank(vo.getAqmCode())) { + int result = mapper.codeIsExist(vo, 1); + if (result > 0) { return AjaxResult.error("安全帽编号已存在"); } } - if(StringUtils.isNotBlank(vo.getMjCode())){ - int result = mapper.codeIsExist(vo,2); - if(result > 0){ + if (StringUtils.isNotBlank(vo.getMjCode())) { + int result = mapper.codeIsExist(vo, 2); + if (result > 0) { return AjaxResult.error("马甲编号已存在"); } } @@ -242,10 +243,10 @@ public class PersonMgeServiceImpl implements IPersonMgeService { } // 删除人员、资源文件、人脸照片 mapper.delPerson(dto); - list = mapper.getCertificate(dto); - if(list!=null){ + list = mapper.getCertificate(dto); + if (list != null) { for (int i = 0; i < list.size(); i++) { - list.get(i).setCertificateType(list.get(i).getCertificateType()+1); + list.get(i).setCertificateType(list.get(i).getCertificateType() + 1); mapper.delCertificateResourceFile(list.get(i)); } } @@ -263,18 +264,24 @@ public class PersonMgeServiceImpl implements IPersonMgeService { @Override @Transactional(rollbackFor = Exception.class) public AjaxResult excelUpload(MultipartFile file, HttpServletRequest request, HttpServletResponse response) { + String result = UploadCheckUtils.uploadExcelVerify(file); + if(StringUtils.isNotBlank(result)){ + return AjaxResult.error(result); + } List errorFileLists = new ArrayList<>(); try { - List lstObj = (List) ImportExcelUtils.readExcel(file, PersonExportVo.class, tempFilePath); + List lstObj = (List) ImportExcelUtils.readExcel(file, PersonImportVo.class, tempFilePath); List list = new ArrayList<>(); if (CollectionUtils.isEmpty(lstObj)) { return AjaxResult.error("请勿导入空数据"); } + // 获取人员岗位 + List> postTypeList = mapper.getPostType(); // 校验数据是否合法、包含照片验证 for (JSONObject obj : lstObj) { PersonImportVo vo = new PersonImportVo(); PersonVo personVo = new PersonVo(); - vo = setPersonData(vo, obj); + vo = setPersonData(vo, obj, postTypeList); String isVerify = UploadCheckUtils.uploadImgVerify(vo.getFile()); if (StringUtils.isNotBlank(isVerify)) { return AjaxResult.error("第" + obj.getString("rowNo") + "行人脸照片" + isVerify); @@ -301,10 +308,10 @@ public class PersonMgeServiceImpl implements IPersonMgeService { List> personIsExist = mapper.personIsExist(new PersonVo()); for (PersonVo vo : list) { if (idCardIsExist(personIsExist, vo, 1)) { - return AjaxResult.error("第"+vo.getSerialNumber()+"行身份证号码已存在"); + return AjaxResult.error("第" + vo.getSerialNumber() + "行身份证号码已存在"); } if (idCardIsExist(personIsExist, vo, 2)) { - return AjaxResult.error("第"+vo.getSerialNumber()+"行电话已存在"); + return AjaxResult.error("第" + vo.getSerialNumber() + "行电话已存在"); } } for (PersonVo vo : list) { @@ -316,7 +323,7 @@ public class PersonMgeServiceImpl implements IPersonMgeService { errorFileLists.add(delFileId); } } catch (RuntimeException runtimeException) { - if(runtimeException.getMessage() == null){ + if (runtimeException.getMessage() == null) { return AjaxResult.error("模板中含有单元格数据格式不正确"); } return AjaxResult.error(runtimeException.getMessage()); @@ -418,15 +425,16 @@ public class PersonMgeServiceImpl implements IPersonMgeService { /** * 证书资源文件赋值 + * * @param item * @param vo * @return */ public ResourceFileVo setCertificateResourceFileData(JSONObject item, CertificateVo vo) { ResourceFileVo fileVo = new ResourceFileVo(); - String fileType = String.valueOf(vo.getCertificateType()+1); + String fileType = String.valueOf(vo.getCertificateType() + 1); String resourceId = IdUtils.simpleUUID(); - fileVo.setFileType(vo.getCertificateType()+1); + fileVo.setFileType(vo.getCertificateType() + 1); fileVo.setFilePath(item.getString("fileId")); fileVo.setFileSuffix(item.getString("suffix")); fileVo.setFileName(item.getString("fileName")); @@ -444,16 +452,37 @@ public class PersonMgeServiceImpl implements IPersonMgeService { * @author cwchen * @date 2024/7/17 10:38 */ - public PersonImportVo setPersonData(PersonImportVo vo, JSONObject obj) { + public PersonImportVo setPersonData(PersonImportVo vo, JSONObject obj, List> postList) { vo.setSerialNumber(obj.getString("rowNum")); vo.setName(handleData(obj.getString("name"))); vo.setSex(setSexData(handleData(obj.getString("sex")))); vo.setIdCard(handleData(obj.getString("idCard"))); vo.setPhone(handleData(obj.getString("phone"))); vo.setFile(obj.get("file") != null ? (MultipartFile) obj.get("file") : null); + vo.setPost(setPost(postList,handleData(obj.getString("post")))); return vo; } + /** + * 设置人员岗位 + * @param postList + * @param value + * @return String + * @author cwchen + * @date 2024/8/12 10:07 + */ + public String setPost(List> postList, String value) { + if (CollectionUtils.isEmpty(postList)) { + return null; + } + for (Map map : postList) { + if (Objects.equals(map.get("name"), value)) { + return map.get("value"); + } + } + return null; + } + /** * 处理性别 * @@ -521,8 +550,8 @@ public class PersonMgeServiceImpl implements IPersonMgeService { return null; } - public String handleData(String value){ - if(StringUtils.isNotBlank(value)){ + public String handleData(String value) { + if (StringUtils.isNotBlank(value)) { return value.trim(); } return null; @@ -534,13 +563,13 @@ public class PersonMgeServiceImpl implements IPersonMgeService { List electricianImgList = new ArrayList<>(); List elseImgList = new ArrayList<>(); try { - PersonVo vo = mapper.selectCertificateById(memberId); - if(ObjectUtil.isNotEmpty(vo)){ - List list = mapper.selectCertificateFile(memberId); + PersonVo vo = mapper.selectCertificateById(memberId); + if (ObjectUtil.isNotEmpty(vo)) { + List list = mapper.selectCertificateFile(memberId); getImageFile(list); - highImgList = list.stream().filter(bracelet -> (bracelet.getSourceImagType()==2)).collect(Collectors.toList()); - electricianImgList = list.stream().filter(bracelet -> (bracelet.getSourceImagType()==3)).collect(Collectors.toList()); - elseImgList = list.stream().filter(bracelet -> (bracelet.getSourceImagType()==4)).collect(Collectors.toList()); + highImgList = list.stream().filter(bracelet -> (bracelet.getSourceImagType() == 2)).collect(Collectors.toList()); + electricianImgList = list.stream().filter(bracelet -> (bracelet.getSourceImagType() == 3)).collect(Collectors.toList()); + elseImgList = list.stream().filter(bracelet -> (bracelet.getSourceImagType() == 4)).collect(Collectors.toList()); vo.setHighImgList(highImgList); vo.setElectricianImgList(electricianImgList); vo.setElseImgList(elseImgList); @@ -554,12 +583,13 @@ public class PersonMgeServiceImpl implements IPersonMgeService { /** * 图片查询 + * * @param list * @return */ - public void getImageFile(List list) { - if(com.bonus.common.core.utils.StringUtils.isNotEmpty(list)){ - list.forEach(file->{ + public void getImageFile(List list) { + if (com.bonus.common.core.utils.StringUtils.isNotEmpty(list)) { + list.forEach(file -> { R result = remoteFileService.getImgBase64(file.getFilePath(), SecurityConstants.INNER); if (result != null && result.getCode() == HttpStatus.SUCCESS && result.getData() != null) { String jsonString = JSON.toJSONString(result.getData()); @@ -572,11 +602,11 @@ public class PersonMgeServiceImpl implements IPersonMgeService { } - public AjaxResult updateCertificate( MultipartFile[] highfile, MultipartFile[] electfile,MultipartFile[] elsefile, Long id){ + public AjaxResult updateCertificate(MultipartFile[] highfile, MultipartFile[] electfile, MultipartFile[] elsefile, Long id) { String delFileId = null; CertificateVo vo = new CertificateVo(); - try{ - if(highfile!=null) { + try { + if (highfile != null) { R result = remoteFileService.mostUploadFile(highfile, SecurityConstants.INNER); if (result != null && result.getCode() == HttpStatus.ERROR) { log.error("高处作业证上传失败"); @@ -597,7 +627,7 @@ public class PersonMgeServiceImpl implements IPersonMgeService { } } } - if(electfile!=null) { + if (electfile != null) { R result2 = remoteFileService.mostUploadFile(electfile, SecurityConstants.INNER); if (result2 != null && result2.getCode() == HttpStatus.ERROR) { log.error("电工作业证上传失败"); @@ -618,7 +648,7 @@ public class PersonMgeServiceImpl implements IPersonMgeService { } } } - if(elsefile!=null) { + if (elsefile != null) { R result3 = remoteFileService.mostUploadFile(elsefile, SecurityConstants.INNER); if (result3 != null && result3.getCode() == HttpStatus.ERROR) { log.error("其他作业证上传失败"); @@ -639,7 +669,7 @@ public class PersonMgeServiceImpl implements IPersonMgeService { } } } - }catch (Exception e) { + } catch (Exception e) { log.error("新增证书", e); // 添加失败-删除文件 if (org.apache.commons.lang3.StringUtils.isNotEmpty(delFileId)) { @@ -650,5 +680,5 @@ public class PersonMgeServiceImpl implements IPersonMgeService { } return AjaxResult.success(); -} + } } diff --git a/bonus-modules/bonus-bracelet/src/main/resources/download/person_model.xlsx b/bonus-modules/bonus-bracelet/src/main/resources/download/person_model.xlsx index 4ed2858e731952b52899fb1ffe3cd2a06c4438d4..dfadd265d61ea0ac0fe1a7579537d40696ab4e26 100644 GIT binary patch delta 4569 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 #{name}, @@ -32,12 +34,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateTime}, #{updateUser}, 0, - null + null, + #{post}, + #{isPush} - UPDATE tb_people SET name = #{name},sex = #{sex},id_card = #{idCard},phone = #{phone},aqm_code = #{aqmCode},mj_code = #{mjCode},update_time = #{updateTime},update_user = #{updateUser} WHERE id = #{id} + UPDATE tb_people SET name = #{name},sex = #{sex},id_card = #{idCard},phone = #{phone},aqm_code = #{aqmCode},mj_code = #{mjCode},update_time = #{updateTime},update_user = #{updateUser},post = #{post},is_push = #{isPush} WHERE id = #{id} @@ -63,7 +67,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" tp.aqm_code AS aqmCode, tp.mj_code AS mjCode, sfs.file_path AS filePath, - sfs.id AS fileId + sfs.id AS fileId, + tp.post FROM tb_people tp LEFT JOIN sys_file_source sfs ON tp.id = sfs.source_id AND sfs.source_type = #{sourceType} AND sfs.del_flag = 0 WHERE tp.id = #{id} AND tp.del_flag = 0 @@ -79,8 +84,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" tp.mj_code AS mjCode, sfs.file_path AS filePath, sfs.id AS fileId, + sdd.dict_label AS post, + IFNULL(tp.is_push,0) AS isPush, count(tpc.id) as certificateNum FROM tb_people tp + LEFT JOIN sys_dict_data sdd ON tp.post = sdd.dict_value AND sdd.dict_type = 'post_type' AND sdd.status = '0' LEFT JOIN sys_file_source sfs ON tp.id = sfs.source_id AND sfs.source_type = #{sourceType} AND sfs.del_flag = 0 LEFT JOIN tb_people_certificate tpc on tp.id = tpc.people_id WHERE tp.del_flag = 0 @@ -89,18 +97,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND tp.sex = #{sex} - - - - - - - - - GROUP BY tp.id,sfs.id,sfs.file_path - ORDER BY tp.update_time DESC + ORDER BY tp.create_time DESC + +