kimi
2020-05-27 c007f0ca1785db093d48f4846cda82fe8e955765
src/main/java/com/highdatas/mdm/controller/MaintainFieldController.java
@@ -29,7 +29,7 @@
 * <p>
 *  前端控制器
 * </p>
 *
 * @description 字段版本接口
 * @author kimi
 * @since 2020-03-06
 */
@@ -47,36 +47,64 @@
    @Autowired
    IMenuMappingService menuMappingService;
    /**
     *
     * @description:  通过主题获取字段版本列表
     * @param menuId 主题id
     * @return: 字段版本列表
     *
     */
    @RequestMapping(value = "/getMaintainListByMenu/{menuId}", method = RequestMethod.GET)
    public Result getMaintainListByTable(@PathVariable String menuId)  {
        //获取menumapping 信息
        MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", menuId).orderBy("create_time"));
        if (menuMapping == null){
            return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
        }
        //获取表名
        String tableName = menuMapping.getTableName();
        //获取字段版本list
        JSONArray array = maintainFieldService.getMaintainListByTable(tableName);
        return Result.success(array);
    }
    /**
     *
     * @description:  获取字段版本id某个版本下的记录
     * @param id 字段版本id
     * @return: 某个版本下的记录
     *
     */
    @RequestMapping(value = "/getMaintainListByMaintainField/{id}", method = RequestMethod.GET)
    public Result getMaintainListByMaintainField(@PathVariable String id, @RequestParam String tableName)  {
        //获取字段版本id某个版本下的记录
        List<Maintain> maintainList = maintainFieldService.getMaintainListByMaintainField(id, tableName);
        return Result.success(maintainList);
    }
    /**
     *
     * @description:  通过表名获取某个版本下的记录
     * @param tableName 表名
     * @return: 某个版本下的记录
     *
     */
    @RequestMapping(value = "/getMaintainListByTable/{tableName}", method = RequestMethod.GET)
    public Result deleteModel(@PathVariable String tableName)  {
        //通过表名获取字段版本list
        List<MaintainField> maintainFieldList = maintainFieldService.selectList(new EntityWrapper<MaintainField>().eq("table_name", tableName).orderBy("order_no"));
        int preOrderNo = -1;
        HashMap<String, List<Maintain>> resultMap = new HashMap<>();
        if (maintainFieldList.size() == 0) {
            //无记录则为有新的字段版本, 仅为默认版本
            List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().orderBy("order_no"));
            resultMap.put(Constant.Default, maintainList);
            return Result.success(resultMap);
        }
        for (MaintainField maintainField : maintainFieldList) {
            String maintainId = maintainField.getMaintainId();
            //筛选掉数据错误的数据
            if (StringUtils.isEmpty(maintainId)) {
                continue;
            }
@@ -85,6 +113,7 @@
                continue;
            }
            Integer orderNo = maintain.getOrderNo();
            //获取某个字段版本对应的数据版本
            List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().ge("order_no", preOrderNo).le("order_no", orderNo));
            resultMap.put(maintainField.getId(), maintainList);
            preOrderNo = orderNo;
@@ -99,14 +128,17 @@
                    return o1.getOrderNo() - o2.getOrderNo();
                }
            }).get();
            //By 字段版本 获取最小的数据版本
            Maintain min = maintainList.stream().min(new Comparator<Maintain>() {
                @Override
                public int compare(Maintain o1, Maintain o2) {
                    return o1.getOrderNo() - o2.getOrderNo();
                }
            }).get();
            //By 字段版本 获取最小的数据版本
            JSONObject object = new JSONObject();
            object.fluentPut("maintainFieldId", s);
            //则version为此数据版本下支持的数据版本范围
            object.fluentPut("version", MessageFormat.format(Constant.extent, min.getVersion(), max.getVersion()));
            array.add(object);