|  | @ -35,6 +35,9 @@ public class ConvertHelper {
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private JdbcTemplate jdbcTemplate;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BasicDictItemHelper basicDictItemHelper;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 进行具体标签生成转换
 | 
	
		
			
				|  |  |      * @return
 | 
	
	
		
			
				|  | @ -46,9 +49,13 @@ public class ConvertHelper {
 | 
	
		
			
				|  |  |         if(CollectionUtils.isEmpty(dataModels)){
 | 
	
		
			
				|  |  |             return saveModels;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //标签job未配置
 | 
	
		
			
				|  |  |         if(null == flLabelDictJob){
 | 
	
		
			
				|  |  |             return saveModels;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //转换器为空表示不需要转换
 | 
	
		
			
				|  |  |         if (flLabelDictJob == null || StringUtils.isEmpty(flLabelDictJob.getConvertClazz())) {
 | 
	
		
			
				|  |  |             return generateSaveModleWithOutConvert(dataModels,sourceType,source);
 | 
	
		
			
				|  |  |         if (StringUtils.isEmpty(flLabelDictJob.getConvertClazz())) {
 | 
	
		
			
				|  |  |             return generateSaveModleWithOutConvert(dataModels,flLabelDictJob.getCategoryId(),sourceType,source);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<FlLabelDict> flLabelDictList = jdbcTemplate.query(flLabelDictJob.getSql(), new BeanPropertyRowMapper(FlLabelDict.class));
 | 
	
		
			
				|  |  |         //如果配置的字典为空
 | 
	
	
		
			
				|  | @ -61,7 +68,7 @@ public class ConvertHelper {
 | 
	
		
			
				|  |  |             Method method = obj.getClass().getMethod("convert", List.class, List.class,String.class,String.class);
 | 
	
		
			
				|  |  |             saveModels = (List<SaveModel>) method.invoke(obj, dataModels, flLabelDictList,sourceType,source);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  | //          logger.error("customized class or convert(List<DataModel> modelList,List<FlLabelDict> flLabelDictList,String sourceType,String source) method not found:" + flLabelDictJob.getConvertClazz());
 | 
	
		
			
				|  |  |           logger.error("customized class or convert() method not found:" + flLabelDictJob.getConvertClazz());
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             return saveModels;
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -71,26 +78,55 @@ public class ConvertHelper {
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 无需转换器直接转换,此种情况为源数据已经分类好标签
 | 
	
		
			
				|  |  |      * @param dataModels
 | 
	
		
			
				|  |  |      * @param categoryId
 | 
	
		
			
				|  |  |      * @param sourceType
 | 
	
		
			
				|  |  |      * @param source
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<SaveModel> generateSaveModleWithOutConvert(List<DataModel> dataModels,String sourceType,String source){
 | 
	
		
			
				|  |  |     public List<SaveModel> generateSaveModleWithOutConvert(List<DataModel> dataModels,Long categoryId,String sourceType,String source){
 | 
	
		
			
				|  |  |         String dictCode = basicDictItemHelper.dictCategoryMap.get(String.valueOf(categoryId));
 | 
	
		
			
				|  |  |         List<SaveModel> saveModels = new ArrayList<>();
 | 
	
		
			
				|  |  |         //lambda无法跳出循环
 | 
	
		
			
				|  |  |         for(DataModel dataModel:dataModels){
 | 
	
		
			
				|  |  |             SaveModel saveModel = new SaveModel();
 | 
	
		
			
				|  |  |             saveModel.setIdcard(dataModel.getIdcard());
 | 
	
		
			
				|  |  |             saveModel.setId(MakeIDUtil.makeSaveModelID(dataModel,""));
 | 
	
		
			
				|  |  |             saveModel.setLabelType(dataModel.getParentCode());
 | 
	
		
			
				|  |  |             saveModel.setLabelCode(dataModel.getLabelCode());
 | 
	
		
			
				|  |  |             saveModel.setLabelName(dataModel.getLabelName());
 | 
	
		
			
				|  |  |             saveModel.setDictCode(dictCode);
 | 
	
		
			
				|  |  |             //只有一种类别
 | 
	
		
			
				|  |  |             if(null == basicDictItemHelper.labelDictMap.get(dictCode)){
 | 
	
		
			
				|  |  |                 logger.error("label dictCode not exist :【" + dictCode+"】");
 | 
	
		
			
				|  |  |                 return new ArrayList<>();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if(basicDictItemHelper.labelDictMap.get(dictCode).size() == 1){
 | 
	
		
			
				|  |  |                 List<FlLabelDict> flLabelDictList = basicDictItemHelper.labelDictMap.get(dictCode);
 | 
	
		
			
				|  |  |                 saveModel.setLabelType(flLabelDictList.get(0).getParentCode());
 | 
	
		
			
				|  |  |                 saveModel.setLabelCode(flLabelDictList.get(0).getLabelCode());
 | 
	
		
			
				|  |  |                 saveModel.setLabelName(flLabelDictList.get(0).getLabelName());
 | 
	
		
			
				|  |  |                 if(!StringUtils.isEmpty(dataModel.getLabelValue())){
 | 
	
		
			
				|  |  |                     if(StringUtils.endsWithIgnoreCase("height_dict",dictCode)){
 | 
	
		
			
				|  |  |                         saveModel.setLabelValue(dataModel.getLabelValue()+"cm");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     else if(StringUtils.endsWithIgnoreCase("weight_dict",dictCode)){
 | 
	
		
			
				|  |  |                         saveModel.setLabelValue(dataModel.getLabelValue()+"kg");
 | 
	
		
			
				|  |  |                     }else{
 | 
	
		
			
				|  |  |                         saveModel.setLabelValue(dataModel.getLabelValue());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 //当有多种类别,sql里构造好需要格式,例如不同code对应不同的label_name
 | 
	
		
			
				|  |  |                 saveModel.setLabelType(dataModel.getParentCode());
 | 
	
		
			
				|  |  |                 saveModel.setLabelCode(dataModel.getLabelCode());
 | 
	
		
			
				|  |  |                 saveModel.setLabelName(dataModel.getLabelName());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             saveModel.setCreateTime(DateFormatUtils.format(new Date(), ConstantUtil.date_format));
 | 
	
		
			
				|  |  |             this.generateDataSource(dataModel,saveModel,sourceType,source);
 | 
	
		
			
				|  |  |             //如果fl_job_config表配置的id和数据来源不一致,则不保存数据,原子性,全部不保存,不然部分存了部分没存不好剔除数据
 | 
	
		
			
				|  |  |             if(StringUtils.isEmpty(saveModel.getSource())){
 | 
	
		
			
				|  |  |                 return new ArrayList<>();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if(StringUtils.isEmpty(dataModel.getSourceTime())){
 | 
	
		
			
				|  |  |                 saveModel.setSourceTime(dataModel.getSourceTime());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             saveModels.add(saveModel);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return saveModels;
 |