|
|
@@ -1045,9 +1045,9 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
//基础中文名校验 - 纯汉字,2-4个字
|
|
|
String regex = "^[\u4e00-\u9fa5]{2,4}$";
|
|
|
boolean matches = Pattern.matches(regex, bo.getUserName());
|
|
|
- if (StringUtils.isBlank(bo.getUserName()) || matches){
|
|
|
+ if (StringUtils.isBlank(bo.getUserName()) || !matches){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("申报人员姓名");
|
|
|
+ vo.setField("userName");
|
|
|
vo.setReason("申报人姓名输入不合法");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
@@ -1057,21 +1057,21 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
.list(new LambdaQueryWrapper<ArtisanCheck>().eq(ArtisanCheck::getType, 1).eq(ArtisanCheck::getStatus, 1));
|
|
|
if (StringUtils.isBlank(bo.getMajor()) || !artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getMajor()))){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("申报专业");
|
|
|
+ vo.setField("major");
|
|
|
vo.setReason("申报专业不符合");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isBlank(bo.getCompanyName())){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("现工作单位");
|
|
|
+ vo.setField("companyName");
|
|
|
vo.setReason("现工作单位不能为空");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isBlank(bo.getInsured())){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("参保单位");
|
|
|
+ vo.setField("insured");
|
|
|
vo.setReason("参保单位不能为空");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
@@ -1079,20 +1079,20 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
//参保时间
|
|
|
if (StringUtils.isBlank(bo.getInsuredStartTime()) || StringUtils.isBlank(bo.getInsuredEndTime())){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("参保时间");
|
|
|
+ vo.setField("insuredStartTime");
|
|
|
vo.setReason("参保时间不能为空");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
LocalDate date1 = LocalDate.parse(bo.getInsuredStartTime(), formatter);
|
|
|
LocalDate date2 = LocalDate.parse(bo.getInsuredEndTime(), formatter);
|
|
|
// 计算两个日期之间的月数差异
|
|
|
long monthsBetween = ChronoUnit.MONTHS.between(date1, date2);
|
|
|
// 取绝对值并判断是否大于6个月
|
|
|
- if (Math.abs(monthsBetween) > 6){
|
|
|
+ if (Math.abs(monthsBetween) < 6){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("参保时间");
|
|
|
+ vo.setField("insuredStartTime");
|
|
|
vo.setReason("参保时间小于半年");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
@@ -1101,15 +1101,15 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
//学历等级
|
|
|
if (StringUtils.isBlank(bo.getEduLevel())){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("学历等级");
|
|
|
+ vo.setField("eduLevel");
|
|
|
vo.setReason("学历等级不能为空");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
|
|
|
List<String> list = Arrays.asList("职高", "高中", "专科", "本科", "硕士研究生", "博士研究生");
|
|
|
- if (StringUtils.isBlank(bo.getExistingLevel()) || !list.contains(bo.getExistingLevel())){
|
|
|
+ if (StringUtils.isBlank(bo.getEduLevel()) || !list.contains(bo.getEduLevel())){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("existingLevel");
|
|
|
+ vo.setField("eduLevel");
|
|
|
vo.setReason("学历等级不符合标准");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
@@ -1117,14 +1117,14 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
//学历专业
|
|
|
if (StringUtils.isBlank(bo.getEduMajor())){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("学历专业");
|
|
|
+ vo.setField("eduMajor");
|
|
|
vo.setReason("学历专业不能为空");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
|
|
|
if (!artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getEduMajor()))){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("学历专业");
|
|
|
+ vo.setField("eduMajor");
|
|
|
vo.setReason("学历专业不符合");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
@@ -1132,52 +1132,112 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
//毕业时间
|
|
|
if (StringUtils.isBlank(bo.getGraduateTime())){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("毕业时间");
|
|
|
+ vo.setField("graduateTime");
|
|
|
vo.setReason("毕业时间不能为空");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
|
|
|
- if (StringUtils.isNotBlank(bo.getEduMajor()) && (bo.getEduMajor().equals("职高") || bo.getEduMajor().equals("高中"))){
|
|
|
- //职高或者高中毕业时间要大于一年
|
|
|
- if (isFullYear(bo.getExistingLevel(),"yyyy-MM-dd",1)){
|
|
|
- AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("existingLevel");
|
|
|
- vo.setReason("学历属于职高/高中,毕业时间需满1年");
|
|
|
- vos.add(vo);
|
|
|
+ if (StringUtils.isNotBlank(bo.getEduLevel())){
|
|
|
+ if (bo.getEduLevel().equals("职高") || bo.getEduLevel().equals("高中")){
|
|
|
+ //从事本专业技术工作满4年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",4)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于职高/高中,从事本专业技术工作满4年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getEduLevel().equals("专科")){
|
|
|
+ //从事本专业技术工作满2年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",2)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于专科,从事本专业技术工作满2年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ if (bo.getEduLevel().equals("本科")){
|
|
|
+ //从事本专业技术工作满1年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",1)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于本科,从事本专业技术工作满1年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- if (bo.getType().equals("评审") && bo.getEducation().equals("有")){
|
|
|
+ if (bo.getType().equals("评审") && !bo.getEducation().equals("有")){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("继续教育");
|
|
|
+ vo.setField("education");
|
|
|
vo.setReason("评审需有继续教育证明");
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
|
|
|
- if (StringUtils.isBlank(bo.getExistingLevel())){
|
|
|
- AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("现有资格等级");
|
|
|
- vo.setReason("现有资格等级不符合标准");
|
|
|
- vos.add(vo);
|
|
|
+ if (bo.getType().equals("认定")){
|
|
|
+ //认定:学历专业和申报专业需一样
|
|
|
+ if (!bo.getExistingMajor().equals(bo.getMajor())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("major");
|
|
|
+ vo.setReason("认定:学历专业和申报专业需要一样");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- if (StringUtils.isBlank(bo.getExistingMajor()) || !artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getExistingMajor()))){
|
|
|
- AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("现有资格专业");
|
|
|
- vo.setReason("现有资格专业不符合");
|
|
|
- vos.add(vo);
|
|
|
- }
|
|
|
+ if (StringUtils.isNotBlank(bo.getEduLevel()) && (bo.getEduLevel().equals("职高") || bo.getEduLevel().equals("高中") || bo.getEduLevel().equals("专科"))){
|
|
|
|
|
|
- if (StringUtils.isBlank(bo.getGraduateTime())){
|
|
|
- AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
- vo.setField("毕业时间");
|
|
|
- vo.setReason("毕业时间不能为空");
|
|
|
- vos.add(vo);
|
|
|
- }
|
|
|
+ if (StringUtils.isBlank(bo.getExistingLevel())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingLevel");
|
|
|
+ vo.setReason("学历为职高/高中/专科,需取得技术员职称后才能申请助工");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getExistingMajor()) || !artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getExistingMajor()))){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingMajor");
|
|
|
+ vo.setReason("学历为职高/高中/专科,需取得技术员职称后才能申请助工");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
|
|
|
+ if (StringUtils.isBlank(bo.getExistingTenant())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingTenant");
|
|
|
+ vo.setReason("学历为职高/高中/专科,需取得技术员职称后才能申请助工");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
|
|
|
+ if (StringUtils.isBlank(bo.getCertificate())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("certificate");
|
|
|
+ vo.setReason("学历为职高/高中/专科,需取得技术员职称后才能申请助工");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getIssueDate())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("issueDate");
|
|
|
+ vo.setReason("学历为职高/高中/专科,需取得技术员职称后才能申请助工");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(vos)){
|
|
|
+ //校验通过
|
|
|
+ ArtisanData data = new ArtisanData();
|
|
|
+ data.setCreateTime(DateUtils.getNowTime());
|
|
|
+ data.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ data.setUserId(userId);
|
|
|
+ data.setGoodsId(bo.getGoodsId());
|
|
|
+ data.setMajorName(bo.getMajorName());
|
|
|
+ data.setDataStr(JSON.toJSONString(bo));
|
|
|
+ iArtisanDataService.save(data);
|
|
|
+ resultVo.setId(data.getId());
|
|
|
+ }else {
|
|
|
+ resultVo.setCheckVos(vos);
|
|
|
+ }
|
|
|
return resultVo;
|
|
|
}
|
|
|
|
|
|
@@ -1258,7 +1318,7 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
|
|
|
if (StringUtils.isNotBlank(bo.getExistingLevel()) && (bo.getExistingLevel().equals("职高") || bo.getExistingLevel().equals("高中"))){
|
|
|
//职高或者高中毕业时间要大于一年
|
|
|
- if (isFullYear(bo.getExistingLevel(),"yyyy-MM-dd",1)){
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",1)){
|
|
|
AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
vo.setField("existingLevel");
|
|
|
vo.setReason("学历属于职高/高中,毕业时间需满1年");
|
|
|
@@ -1292,7 +1352,6 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
vos.add(vo);
|
|
|
}
|
|
|
AssistantResultVo resultVo = new AssistantResultVo();
|
|
|
- resultVo.setCheckVos(vos);
|
|
|
if (CollectionUtils.isEmpty(vos)){
|
|
|
//校验通过
|
|
|
ArtisanData data = new ArtisanData();
|
|
|
@@ -1300,11 +1359,436 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
|
|
|
data.setUpdateTime(DateUtils.getNowTime());
|
|
|
data.setUserId(userId);
|
|
|
data.setGoodsId(bo.getGoodsId());
|
|
|
+ data.setMajorName(bo.getMajorName());
|
|
|
+ data.setDataStr(JSON.toJSONString(bo));
|
|
|
+ iArtisanDataService.save(data);
|
|
|
+ resultVo.setId(data.getId());
|
|
|
+ }else {
|
|
|
+ resultVo.setCheckVos(vos);
|
|
|
+ }
|
|
|
+
|
|
|
+ return resultVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AssistantResultVo engineerIntermediateCheck(EngineerCheckBo bo, Long userId) {
|
|
|
+ AssistantResultVo resultVo = new AssistantResultVo();
|
|
|
+ List<AssistantCheckVo> vos = new ArrayList<>();
|
|
|
+ //基础中文名校验 - 纯汉字,2-4个字
|
|
|
+ String regex = "^[\u4e00-\u9fa5]{2,4}$";
|
|
|
+ boolean matches = Pattern.matches(regex, bo.getUserName());
|
|
|
+ if (StringUtils.isBlank(bo.getUserName()) || !matches){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("userName");
|
|
|
+ vo.setReason("申报人姓名输入不合法");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //专业
|
|
|
+ List<ArtisanCheck> artisanChecks = iArtisanCheckService
|
|
|
+ .list(new LambdaQueryWrapper<ArtisanCheck>().eq(ArtisanCheck::getType, 1).eq(ArtisanCheck::getStatus, 1));
|
|
|
+ if (StringUtils.isBlank(bo.getMajor()) || !artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getMajor()))){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("major");
|
|
|
+ vo.setReason("申报专业不符合");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getCompanyName())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("companyName");
|
|
|
+ vo.setReason("现工作单位不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getInsured())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("insured");
|
|
|
+ vo.setReason("参保单位不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //参保时间
|
|
|
+ if (StringUtils.isBlank(bo.getInsuredStartTime()) || StringUtils.isBlank(bo.getInsuredEndTime())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("insuredStartTime");
|
|
|
+ vo.setReason("参保时间不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ LocalDate date1 = LocalDate.parse(bo.getInsuredStartTime(), formatter);
|
|
|
+ LocalDate date2 = LocalDate.parse(bo.getInsuredEndTime(), formatter);
|
|
|
+ // 计算两个日期之间的月数差异
|
|
|
+ long monthsBetween = ChronoUnit.MONTHS.between(date1, date2);
|
|
|
+ // 取绝对值并判断是否大于6个月
|
|
|
+ if (Math.abs(monthsBetween) < 6){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("insuredStartTime");
|
|
|
+ vo.setReason("参保时间小于半年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //学历情况
|
|
|
+ //学历等级
|
|
|
+ if (StringUtils.isBlank(bo.getEduLevel())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历等级不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> list = Arrays.asList("专科", "本科", "硕士研究生", "博士研究生");
|
|
|
+ if (StringUtils.isBlank(bo.getEduLevel()) || !list.contains(bo.getEduLevel())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历等级不符合标准");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //学历专业
|
|
|
+ if (StringUtils.isBlank(bo.getEduMajor())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduMajor");
|
|
|
+ vo.setReason("学历专业不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getEduMajor()))){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduMajor");
|
|
|
+ vo.setReason("学历专业不符合");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //毕业时间
|
|
|
+ if (StringUtils.isBlank(bo.getGraduateTime())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("graduateTime");
|
|
|
+ vo.setReason("毕业时间不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(bo.getEduLevel())){
|
|
|
+ if (bo.getEduLevel().equals("专科")){
|
|
|
+ //从事本专业技术工作满4年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",4)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于专科,从事本专业技术工作满4年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getEduLevel().equals("本科")){
|
|
|
+ //从事本专业技术工作满4年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",4)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于本科,从事本专业技术工作满4年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getEduLevel().equals("硕士研究生")){
|
|
|
+ //从事本专业技术工作满2年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",2)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于硕士研究生,从事本专业技术工作满2年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //技术总结、论文
|
|
|
+ if (StringUtils.isBlank(bo.getThesis())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("thesis");
|
|
|
+ vo.setReason("在公开出版发行专业期刊上独立发表1篇本专业相关学术论文");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getType().equals("评审") && !bo.getEducation().equals("有")){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("education");
|
|
|
+ vo.setReason("评审需有继续教育证明");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getType().equals("认定")){
|
|
|
+ //认定:学历专业和申报专业需一样
|
|
|
+ if (!bo.getExistingMajor().equals(bo.getMajor())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("major");
|
|
|
+ vo.setReason("认定:学历专业和申报专业需要一样");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(bo.getEduLevel()) && (bo.getEduLevel().equals("专科") || bo.getEduLevel().equals("本科") || bo.getEduLevel().equals("硕士研究生"))){
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getExistingLevel())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingLevel");
|
|
|
+ vo.setReason("学历为专科/本科/硕士研究生,需取得助理工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getExistingMajor()) || !artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getExistingMajor()))){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingMajor");
|
|
|
+ vo.setReason("学历为专科/本科/硕士研究生,需取得助理工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getExistingTenant())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingTenant");
|
|
|
+ vo.setReason("学历为专科/本科/硕士研究生,需取得助理工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getCertificate())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("certificate");
|
|
|
+ vo.setReason("学历为专科/本科/硕士研究生,需取得助理工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getIssueDate())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("issueDate");
|
|
|
+ vo.setReason("学历为专科/本科/硕士研究生,需取得助理工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(vos)){
|
|
|
+ //校验通过
|
|
|
+ ArtisanData data = new ArtisanData();
|
|
|
+ data.setCreateTime(DateUtils.getNowTime());
|
|
|
+ data.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ data.setUserId(userId);
|
|
|
+ data.setGoodsId(bo.getGoodsId());
|
|
|
+ data.setMajorName(bo.getMajorName());
|
|
|
data.setDataStr(JSON.toJSONString(bo));
|
|
|
iArtisanDataService.save(data);
|
|
|
resultVo.setId(data.getId());
|
|
|
+ }else {
|
|
|
+ resultVo.setCheckVos(vos);
|
|
|
+ }
|
|
|
+ return resultVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AssistantResultVo engineerAdvancedCheck(EngineerCheckBo bo, Long userId) {
|
|
|
+ AssistantResultVo resultVo = new AssistantResultVo();
|
|
|
+ List<AssistantCheckVo> vos = new ArrayList<>();
|
|
|
+ //基础中文名校验 - 纯汉字,2-4个字
|
|
|
+ String regex = "^[\u4e00-\u9fa5]{2,4}$";
|
|
|
+ boolean matches = Pattern.matches(regex, bo.getUserName());
|
|
|
+ if (StringUtils.isBlank(bo.getUserName()) || !matches){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("userName");
|
|
|
+ vo.setReason("申报人姓名输入不合法");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //专业
|
|
|
+ List<ArtisanCheck> artisanChecks = iArtisanCheckService
|
|
|
+ .list(new LambdaQueryWrapper<ArtisanCheck>().eq(ArtisanCheck::getType, 1).eq(ArtisanCheck::getStatus, 1));
|
|
|
+ if (StringUtils.isBlank(bo.getMajor()) || !artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getMajor()))){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("major");
|
|
|
+ vo.setReason("申报专业不符合");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getCompanyName())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("companyName");
|
|
|
+ vo.setReason("现工作单位不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getInsured())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("insured");
|
|
|
+ vo.setReason("参保单位不能为空");
|
|
|
+ vos.add(vo);
|
|
|
}
|
|
|
|
|
|
+ //参保时间
|
|
|
+ if (StringUtils.isBlank(bo.getInsuredStartTime()) || StringUtils.isBlank(bo.getInsuredEndTime())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("insuredStartTime");
|
|
|
+ vo.setReason("参保时间不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ LocalDate date1 = LocalDate.parse(bo.getInsuredStartTime(), formatter);
|
|
|
+ LocalDate date2 = LocalDate.parse(bo.getInsuredEndTime(), formatter);
|
|
|
+ // 计算两个日期之间的月数差异
|
|
|
+ long monthsBetween = ChronoUnit.MONTHS.between(date1, date2);
|
|
|
+ // 取绝对值并判断是否大于6个月
|
|
|
+ if (Math.abs(monthsBetween) < 6){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("insuredStartTime");
|
|
|
+ vo.setReason("参保时间小于半年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //学历情况
|
|
|
+ //学历等级
|
|
|
+ if (StringUtils.isBlank(bo.getEduLevel())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历等级不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> list = Arrays.asList("本科", "硕士研究生", "博士研究生");
|
|
|
+ if (StringUtils.isBlank(bo.getEduLevel()) || !list.contains(bo.getEduLevel())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历等级不符合标准");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //学历专业
|
|
|
+ if (StringUtils.isBlank(bo.getEduMajor())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduMajor");
|
|
|
+ vo.setReason("学历专业不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getEduMajor()))){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduMajor");
|
|
|
+ vo.setReason("学历专业不符合");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //毕业时间
|
|
|
+ if (StringUtils.isBlank(bo.getGraduateTime())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("graduateTime");
|
|
|
+ vo.setReason("毕业时间不能为空");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(bo.getEduLevel())){
|
|
|
+ if (bo.getEduLevel().equals("本科")){
|
|
|
+ //从事本专业技术工作满5年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",5)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduMajor");
|
|
|
+ vo.setReason("学历属于本科,从事本专业技术工作满5年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getEduLevel().equals("硕士研究生")){
|
|
|
+ //从事本专业技术工作满5年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",5)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于硕士研究生,从事本专业技术工作满5年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getEduLevel().equals("博士研究生")){
|
|
|
+ //从事本专业技术工作满2年
|
|
|
+ if (isFullYear(bo.getGraduateTime(),"yyyy-MM-dd",2)){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("eduLevel");
|
|
|
+ vo.setReason("学历属于博士研究生,从事本专业技术工作满2年");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //技术总结、论文
|
|
|
+ if (StringUtils.isBlank(bo.getThesis())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("thesis");
|
|
|
+ vo.setReason("在公开出版发行专业期刊上独立发表1篇本专业相关学术论文");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getType().equals("评审") && !bo.getEducation().equals("有")){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("education");
|
|
|
+ vo.setReason("评审需有继续教育证明");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bo.getType().equals("认定")){
|
|
|
+ //认定:学历专业和申报专业需一样
|
|
|
+ if (!bo.getExistingMajor().equals(bo.getMajor())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("major");
|
|
|
+ vo.setReason("认定:学历专业和申报专业需要一样");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(bo.getEduLevel()) && (bo.getEduLevel().equals("本科") || bo.getEduLevel().equals("硕士研究生") || bo.getEduLevel().equals("博士研究生"))){
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getExistingLevel())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingLevel");
|
|
|
+ vo.setReason("学历为专科/硕士研究生/博士研究生,需取得工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getExistingMajor()) || !artisanChecks.stream().anyMatch(x -> x.getMajor().equals(bo.getExistingMajor()))){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingMajor");
|
|
|
+ vo.setReason("学历为专科/硕士研究生/博士研究生,需取得工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getExistingTenant())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("existingTenant");
|
|
|
+ vo.setReason("学历为专科/硕士研究生/博士研究生,需取得工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getCertificate())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("certificate");
|
|
|
+ vo.setReason("学历为专科/硕士研究生/博士研究生,需取得工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(bo.getIssueDate())){
|
|
|
+ AssistantCheckVo vo = new AssistantCheckVo();
|
|
|
+ vo.setField("issueDate");
|
|
|
+ vo.setReason("学历为专科/硕士研究生/博士研究生,需取得工程师职称后才能申请");
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(vos)){
|
|
|
+ //校验通过
|
|
|
+ ArtisanData data = new ArtisanData();
|
|
|
+ data.setCreateTime(DateUtils.getNowTime());
|
|
|
+ data.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ data.setUserId(userId);
|
|
|
+ data.setGoodsId(bo.getGoodsId());
|
|
|
+ data.setMajorName(bo.getMajorName());
|
|
|
+ data.setDataStr(JSON.toJSONString(bo));
|
|
|
+ iArtisanDataService.save(data);
|
|
|
+ resultVo.setId(data.getId());
|
|
|
+ }else {
|
|
|
+ resultVo.setCheckVos(vos);
|
|
|
+ }
|
|
|
return resultVo;
|
|
|
}
|
|
|
|