diff --git a/basic-util/src/main/java/ink/wgink/util/IdCardUtil.java b/basic-util/src/main/java/ink/wgink/util/IdCardUtil.java new file mode 100644 index 00000000..0e88b94a --- /dev/null +++ b/basic-util/src/main/java/ink/wgink/util/IdCardUtil.java @@ -0,0 +1,68 @@ +package ink.wgink.util; + +import ink.wgink.exceptions.ParamsException; +import org.joda.time.DateTime; + +/** + * @ClassName: IdCardUtil + * @Description: 身份证工具 + * @Author: wanggeng + * @Date: 2022/5/20 22:39 + * @Version: 1.0 + */ +public class IdCardUtil { + + /** + * 获取性别 + * + * @param idCard + * @return + */ + public static Integer getSexNumber(String idCard) { + if (!RegexUtil.isIdentity(idCard)) { + throw new ParamsException("身份证格式错误"); + } + return Integer.parseInt(idCard.substring(16, 17)); + } + + /** + * 获取性别 + * + * @param idCard + * @return + */ + public static String getSexName(String idCard) { + int sexNumber = getSexNumber(idCard); + if (sexNumber % 2 == 0) { + return "女"; + } else { + return "男"; + } + } + + /** + * 获得年龄 + * + * @param idCard + * @return + */ + public static Integer getAge(String idCard) { + int birthYear = Integer.parseInt(idCard.substring(6, 10)); + int birthMonth = Integer.parseInt(idCard.substring(10, 12)); + int birthDay = Integer.parseInt(idCard.substring(12, 14)); + + DateTime now = DateTime.now(); + int year = now.getYear(); + int month = now.getMonthOfYear(); + int day = now.getDayOfMonth(); + + int age = year - birthYear; + if (month < birthMonth) { + return age - 1; + } else if (month == birthMonth && day < birthDay) { + return age - 1; + } + return age; + } + +} diff --git a/common/src/main/java/ink/wgink/common/manager/env/EnvManager.java b/common/src/main/java/ink/wgink/common/manager/env/EnvManager.java index d50a6735..370479bd 100644 --- a/common/src/main/java/ink/wgink/common/manager/env/EnvManager.java +++ b/common/src/main/java/ink/wgink/common/manager/env/EnvManager.java @@ -26,6 +26,8 @@ public class EnvManager { private IEnvDao envDao; private Env env = new Env(); + private EnvManager() {} + public static EnvManager getInstance() { return envManager; } diff --git a/module-dictionary/src/main/java/ink/wgink/module/dictionary/pojo/dtos/AreaDTO.java b/module-dictionary/src/main/java/ink/wgink/module/dictionary/pojo/dtos/AreaDTO.java index 3a00f73c..b0c1ac39 100644 --- a/module-dictionary/src/main/java/ink/wgink/module/dictionary/pojo/dtos/AreaDTO.java +++ b/module-dictionary/src/main/java/ink/wgink/module/dictionary/pojo/dtos/AreaDTO.java @@ -103,11 +103,11 @@ public class AreaDTO implements Serializable { } public String getAreaMergerName() { - return areaMergerName == null ? "" : areaMergerName; + return areaMergerName == null ? "" : areaMergerName.trim(); } - public void setAreaMergerMame(String areaMergerMame) { - this.areaMergerName = areaMergerMame; + public void setAreaMergerName(String areaMergerName) { + this.areaMergerName = areaMergerName; } public String getAreaShortName() { diff --git a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java index 7580cc8a..38c58feb 100644 --- a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java +++ b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/IAreaService.java @@ -119,6 +119,14 @@ public interface IAreaService { */ List listByCode(String areaCode); + /** + * 地区字典列表(通过地区字典编码) + * + * @param areaCodes + * @return + */ + List listByCodes(List areaCodes); + /** * 地区字典子列表(不包含本级) * diff --git a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java index 93765d60..58def18a 100644 --- a/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java +++ b/module-dictionary/src/main/java/ink/wgink/module/dictionary/service/impl/AreaServiceImpl.java @@ -15,6 +15,7 @@ import ink.wgink.util.string.WStringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -124,6 +125,16 @@ public class AreaServiceImpl extends DefaultBaseService implements IAreaService return areaDao.list(params); } + @Override + public List listByCodes(List areaCodes) { + if (areaCodes == null || areaCodes.isEmpty()) { + return new ArrayList<>(); + } + Map params = getHashMap(1); + params.put("areaCodes", areaCodes); + return areaDao.list(params); + } + @Override public List listSubByCode(String areaCode) { Map params = getHashMap(4); diff --git a/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml b/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml index 4ba7ca33..28d16ad3 100644 --- a/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml +++ b/module-dictionary/src/main/resources/mybatis/mapper/area-mapper.xml @@ -219,6 +219,13 @@ #{areaIds[${index}]} + + AND + area_code IN + + #{areaCodes[${index}]} + + diff --git a/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java index 54c790f8..da079347 100644 --- a/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentService.java @@ -2,6 +2,7 @@ package ink.wgink.service.department.service; import ink.wgink.interfaces.department.IDepartmentBaseService; import ink.wgink.interfaces.department.IDepartmentCheckService; +import ink.wgink.pojo.pos.DepartmentPO; import ink.wgink.pojo.result.UploadExcelResultDTO; import ink.wgink.service.department.pojo.vos.DepartmentVO; import ink.wgink.service.department.pojo.vos.MergeDepartmentInfoVO; @@ -100,4 +101,11 @@ public interface IDepartmentService extends IDepartmentBaseService, IDepartmentC */ void resetCode(); + /** + * 部门列表 + * + * @param departmentNames + * @return + */ + List listPOByNames(List departmentNames); } diff --git a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java index d4b95783..0dd9c57c 100644 --- a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java @@ -539,6 +539,13 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart return count(params); } + @Override + public List listPOByNames(List departmentNames) { + Map params = getHashMap(2); + params.put("departmentNames", departmentNames); + return listPO(params); + } + /** * 通过上级ID和新增或修改日期获取组织列表(简单模式) * diff --git a/service-department/src/main/resources/mybatis/mapper/department-mapper.xml b/service-department/src/main/resources/mybatis/mapper/department-mapper.xml index 6f0b5237..b3829f02 100644 --- a/service-department/src/main/resources/mybatis/mapper/department-mapper.xml +++ b/service-department/src/main/resources/mybatis/mapper/department-mapper.xml @@ -668,6 +668,13 @@ #{departmentIds[${index}]} + + AND + department_name IN + + #{departmentNames[${index}]} + + AND department_name = #{departmentName} diff --git a/service-department/src/main/resources/templates/department/save-merge.html b/service-department/src/main/resources/templates/department/save-merge.html index 4db43f56..9c7914ce 100644 --- a/service-department/src/main/resources/templates/department/save-merge.html +++ b/service-department/src/main/resources/templates/department/save-merge.html @@ -147,7 +147,7 @@
- +