1、对MDM服务的批量更新Feign进行改动,以及批量更新接口的开发,接口中字段的添加
| | |
| | | */ |
| | | //@Column(columnDefinition = "所属属性分组") |
| | | private String attributeGroup; |
| | | /** |
| | | * 输入显示 |
| | | */ |
| | | //@Column(columnDefinition = "输入显示") |
| | | private String inputTip; |
| | | |
| | | /** |
| | | * 使用枚举英文编号 |
| | |
| | | String API_PREFIX = "/mdmEngineClient"; |
| | | String SELECT_BY_TYPE_OID = API_PREFIX + "/selectByTypeAndOid"; |
| | | String INSERT_BATCH_BY_TYPE = API_PREFIX + "/insertBatchByType"; |
| | | String UPDATE_BATCH_BY_TYPE = API_PREFIX + "/updateBatchByType"; |
| | | |
| | | /** |
| | | * 传入业务类型以及相oid集合查询数据进行返回 |
| | |
| | | */ |
| | | @PostMapping(INSERT_BATCH_BY_TYPE) |
| | | R<Integer> insertBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels); |
| | | /** |
| | | * 传入业务类型以及相关数据进行批量更新操作 |
| | | * |
| | | * @param btmType 业务类型 |
| | | * @param baseModels 处理数据 |
| | | * @return 处理状态 |
| | | */ |
| | | @PostMapping(UPDATE_BATCH_BY_TYPE) |
| | | R<Integer> updateBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public R<Integer> insertBatchByType(String btmType, List<BaseModel> baseModels){ |
| | | return R.fail("获取数据失败"); |
| | | return R.fail("插入数据失败"); |
| | | } |
| | | |
| | | @Override |
| | | public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) { |
| | | return R.fail("更新数据失败"); |
| | | } |
| | | } |
| | |
| | | * 级联查询属性 |
| | | */ |
| | | private String parentQueryAttr; |
| | | /** |
| | | * 输入提示 |
| | | */ |
| | | private String inputTip; |
| | | |
| | | @Override |
| | | public String toString() { |
| | |
| | | ", libraryIdentification='" + libraryIdentification + '\'' + |
| | | ", parentCode='" + parentCode + '\'' + |
| | | ", parentName='" + parentName + '\'' + |
| | | ", inputTip='" + inputTip + '\'' + |
| | | ", parentQueryAttr='" + parentQueryAttr + '\'' + |
| | | '}'; |
| | | } |
| | |
| | | * 后缀 |
| | | */ |
| | | private String suffix; |
| | | /** |
| | | * 输入提示 |
| | | */ |
| | | private String inputTip; |
| | | |
| | | public boolean isKeyAttr() { |
| | | return keyAttr; |
| | |
| | | public void setField(String field) { |
| | | this.field = field; |
| | | } |
| | | public String getInputTip() { |
| | | return inputTip; |
| | | } |
| | | |
| | | public void setInputTip(String inputTip) { |
| | | this.inputTip = inputTip; |
| | | } |
| | | |
| | | public String getText() { |
| | | return text; |
| | |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | /** |
| | | * 传入业务类型以及相关数据进行批量插入操作 |
| | | * |
| | | * @param btmType 业务类型 |
| | | * @param baseModels 处理数据 |
| | | * @return 处理状态 |
| | | */ |
| | | @Override |
| | | @PostMapping(UPDATE_BATCH_BY_TYPE) |
| | | public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) { |
| | | try { |
| | | return mdmEngineService.updateBatchByBaseModel(btmType,baseModels); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | package com.vci.ubcs.code.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.InterceptorIgnore; |
| | | import org.apache.ibatis.annotations.MapKey; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | |
| | | List<Map> selectBySql(@Param("inSql") String inSql); |
| | | |
| | | /** |
| | | * 传入表明,map,list<map>完成批量更新操作 |
| | | * 传入表名,map,list<map>完成批量更新操作 |
| | | * @param tableName 表名 |
| | | * @param columnMap 单条map用于获取key作为字段 |
| | | * @param mapList 需要插入的所有记录 |
| | | * @return 插入成功的条数 |
| | | */ |
| | | Integer insertByBaseModel(String tableName,Map<String,String> columnMap,List<Map<String,String>> mapList); |
| | | Integer insertByBaseModel(String tableName,Map<String,String> columnMap,List<Map<String,String>> mapList);/** |
| | | * 传入表名,map,list<map>完成批量更新操作 |
| | | * @param tableName 表名 |
| | | * @param mapList 需要更新的所有记录 |
| | | * @return 插入成功的条数 |
| | | */ |
| | | @InterceptorIgnore(tenantLine = "true") |
| | | Integer updateBatchByBaseModel(String tableName,List<Map<String,String>> mapList); |
| | | |
| | | } |
| | |
| | | * @return 查询出的数据 |
| | | */ |
| | | List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException; |
| | | /** |
| | | * 传入业务类型以及相关数据进行批量更新操作 |
| | | * |
| | | * @param btmType 业务类型 |
| | | * @param baseModels 处理数据 |
| | | * @return 处理状态 |
| | | */ |
| | | R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception; |
| | | |
| | | } |
| | |
| | | // conditionMap.put("classifytemplateoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(templateOids.toArray(new String[0])) + ")"); |
| | | // PageHelper pageHelper = new PageHelper(-1); |
| | | // pageHelper.addDefaultAsc("orderNum"); |
| | | List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0]))); |
| | | QueryWrapper<CodeClassifyTemplateAttr> wrapper = new QueryWrapper<>(); |
| | | wrapper.in("classifytemplateoid",templateOids); |
| | | wrapper.orderByAsc("orderNum"); |
| | | List<CodeClassifyTemplateAttr> attrDOS = baseMapper.selectList(wrapper); |
| | | // baseMapper.selectByClassifytemplateoid(VciBaseUtil.toInSql(templateOids.toArray(new String[0]))); |
| | | |
| | | if(!CollectionUtils.isEmpty(attrDOS)){ |
| | | attrDOList.addAll(attrDOS); |
| | |
| | | itemVO.setPrefix(attrVO.getPrefixValue()); |
| | | itemVO.setSuffix(attrVO.getSuffixValue()); |
| | | itemVO.setTooltips(attrVO.getExplain()); |
| | | itemVO.setInputTip(attrVO.getInputTip()); |
| | | itemVO.setSelectLibFlag(attrVO.getLibraryIdentification()); |
| | | //看看是否有枚举 |
| | | if ((StringUtils.isNotBlank(attrVO.getEnumString()) |
| | |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /** |
| | | * 传入业务类型以及相关数据进行批量更新操作 |
| | | * |
| | | * @param btmType 业务类型 |
| | | * @param baseModels 处理数据 |
| | | * @return 处理状态 |
| | | */ |
| | | @Override |
| | | public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception { |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if(listR.getData().size() == 0){ |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | //将bean转为map,mybatis统一处理 |
| | | List<Map<String,String>> maps = new ArrayList<>(); |
| | | |
| | | baseModels.stream().forEach(model-> { |
| | | try { |
| | | maps.add(VciBaseUtil.convertBean2Map(model)); |
| | | } catch (Exception e) { |
| | | throw new VciBaseException("类型转换错误:" + e.getMessage()); |
| | | } |
| | | }); |
| | | try { |
| | | //注意此处更新成功是返回的-1 |
| | | commonsMapper.updateBatchByBaseModel(listR.getData().get(0).getTableName(), maps); |
| | | }catch (Exception e){ |
| | | return R.fail("更新失败!"+e.getMessage()); |
| | | } |
| | | |
| | | return R.success("更新成功!"); |
| | | } |
| | | } |
| | |
| | | </foreach> |
| | | </insert> |
| | | |
| | | <update id="updateBatchByBaseModel" parameterType="java.util.List" > |
| | | BEGIN |
| | | <foreach collection="mapList" item="columnMap" index="index" separator=";"> |
| | | update ${tableName} |
| | | <set> |
| | | <foreach collection="columnMap" item="value" index="key" separator=","> |
| | | ${key} = #{value} |
| | | </foreach> |
| | | </set> |
| | | where oid = #{columnMap.oid} |
| | | </foreach>; |
| | | END; |
| | | </update > |
| | | |
| | | </mapper> |