| | |
| | | String codeRuleOid = classifyVO.getCodeRuleOid(); |
| | | if (StringUtils.isBlank(codeRuleOid)) { |
| | | //往上找 |
| | | CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid); |
| | | return getCodeRuleByClassifyFullInfo(fullInfo); |
| | | CodeRuleVO classifyFullInfoCodeRule = getCodeRuleByClassifyFullInfo(classifyService.getClassifyFullInfo(codeClassifyOid)); |
| | | return toCodeValueApplyStatus(classifyFullInfoCodeRule); |
| | | } |
| | | //查询编码规则 |
| | | return ruleService.getObjectHasSecByOid(codeRuleOid); |
| | | CodeRuleVO objectHasSecByOid = ruleService.getObjectHasSecByOid(codeRuleOid); |
| | | return toCodeValueApplyStatus(objectHasSecByOid); |
| | | } |
| | | |
| | | /** |
| | | * 编码申请表单,隐藏、可输、只读转换 |
| | | * @param codeRuleVO |
| | | * @return |
| | | */ |
| | | private CodeRuleVO toCodeValueApplyStatus(CodeRuleVO codeRuleVO){ |
| | | if(codeRuleVO.getSecVOList().isEmpty()){ |
| | | return codeRuleVO; |
| | | } |
| | | // 可输码段类型 |
| | | List<String> inputTypes = Arrays.asList( |
| | | CodeSecTypeEnum.CODE_FIXED_SEC.getValue(), |
| | | CodeSecTypeEnum.CODE_VARIABLE_SEC.getValue(), |
| | | CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue(), |
| | | CodeSecTypeEnum.CODE_REFER_SEC.getValue() |
| | | ); |
| | | // 只读码段类型 |
| | | List<String> readOnlyTypes = Arrays.asList( |
| | | CodeSecTypeEnum.CODE_LEVEL_SEC.getValue(), |
| | | CodeSecTypeEnum.CODE_ATTR_SEC.getValue(), |
| | | CodeSecTypeEnum.CODE_DATE_SEC.getValue() |
| | | ); |
| | | // 隐藏码段类型 |
| | | /*List<String> hideType = Arrays.asList( |
| | | CodeSecTypeEnum.CODE_SERIAL_SEC.getValue() |
| | | );*/ |
| | | // 当前规则的所有类型码段 |
| | | List<String> secTypeList = codeRuleVO.getSecVOList().stream().map(CodeBasicSecVO::getSecType).collect(Collectors.toList()); |
| | | // 情况一 全部是只读的码段类型 |
| | | boolean hasAllReadOnlyType =secTypeList.stream().allMatch(item -> readOnlyTypes.stream().anyMatch(item1-> item.equals(item1))); |
| | | // 全部是只读的码段类型 |
| | | if(hasAllReadOnlyType){ |
| | | List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> { |
| | | secVO.setCodeValueApplyStatus(3); |
| | | // 日期码段设置默认值 |
| | | if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) { |
| | | try { |
| | | secVO.setCodeDateFormatStr(Func.format(new Date(),secVO.getCodeDateFormatStr())); |
| | | }catch (Exception e){ |
| | | throw new ServiceException("日期码段日期格式配置有误,导致转换出错:"+e.getMessage()); |
| | | } |
| | | } |
| | | return secVO; |
| | | }).collect(Collectors.toList()); |
| | | codeRuleVO.setSecVOList(basicSecVOS); |
| | | return codeRuleVO; |
| | | } |
| | | // 情况二 全部都是可输入类型的 |
| | | boolean hasAllInputType = secTypeList.stream().allMatch(item -> inputTypes.stream().anyMatch(item1-> item.equals(item1))); |
| | | if(hasAllInputType){ |
| | | List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> { |
| | | secVO.setCodeValueApplyStatus(1); |
| | | // 日期码段设置默认值 |
| | | if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) { |
| | | try { |
| | | secVO.setCodeDateFormatStr(Func.format(new Date(),secVO.getCodeDateFormatStr())); |
| | | }catch (Exception e){ |
| | | throw new ServiceException("日期码段日期格式配置有误,导致转换出错:"+e.getMessage()); |
| | | } |
| | | } |
| | | return secVO; |
| | | }).collect(Collectors.toList()); |
| | | codeRuleVO.setSecVOList(basicSecVOS); |
| | | return codeRuleVO; |
| | | } |
| | | // 情况三包含人为选择的码段,又有只读类型码段的,所有码段都要显示出来,可输设置为1,只读设置为2,隐藏设置为3 |
| | | List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> { |
| | | if(inputTypes.contains(secVO.getSecType())){ |
| | | secVO.setCodeValueApplyStatus(1); |
| | | }else if(readOnlyTypes.contains(secVO.getSecType())){ |
| | | secVO.setCodeValueApplyStatus(2); |
| | | }else{ |
| | | secVO.setCodeValueApplyStatus(3); |
| | | } |
| | | // 日期码段设置默认值 |
| | | if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) { |
| | | try { |
| | | secVO.setCodeDateFormatStr(Func.format(new Date(),secVO.getCodeDateFormatStr())); |
| | | }catch (Exception e){ |
| | | throw new ServiceException("日期码段日期格式配置有误,导致转换出错:"+e.getMessage()); |
| | | } |
| | | } |
| | | return secVO; |
| | | }).collect(Collectors.toList()); |
| | | codeRuleVO.setSecVOList(basicSecVOS); |
| | | return codeRuleVO; |
| | | } |
| | | |
| | | /** |
| | | * 使用分类的全部信息获取编码规则 |
| | | * |