kimi
2020-05-27 c007f0ca1785db093d48f4846cda82fe8e955765
src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
@@ -64,16 +64,23 @@
        maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("maintain_id", maintainId).orderBy("order_no desc"));
        if (maintainField == null) {
            //对应版本找不到 往前找
            String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
            if (StringUtils.isEmpty(maintainFieldId)) {
            Map<String, String> maintainFieldMap = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
            if (maintainFieldMap == null) {
               return null;
            }
            String maintainFieldId = maintainFieldMap.get(Constant.ID);
            maintainField = maintainFieldService.selectById(maintainFieldId);
        }
        return maintainField;
    }
    /**
     *
     * @description:  通过版本获取字段列表
     * @param maintainId 版本id
     * @return: 字段列表
     *
     */
    @Override
    public List<SysField> getFieldByMaintain(String maintainId) {
        List<SysField> fieldList;
@@ -84,13 +91,11 @@
        MaintainField maintainField = getMaintainFieldByMaintain(maintainId);
        if (maintainField == null || Constant.Default.equalsIgnoreCase(maintainField.getId())) {
            fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
            return fieldList;
        }
        String maintainFieldId = maintainField.getId();
        String tableName = maintainField.getTableName();
        //TODO  判断版本
        ActivitiStatus status = flowsService.getStatusByBusinessId(maintainFieldId);
        if (status != null && status.equals(ActivitiStatus.open)) {
            fieldList = this.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainFieldId).eq("table_name", tableName).orderBy("order_no"));
@@ -114,6 +119,13 @@
    }
    /**
     *
     * @description:  通过版本获取字段版本
     * @param maintainId 版本id
     * @return: 字段版本
     *
     */
    @Override
    public MaintainField getMaintainFieldByMaintain(String maintainId) {
        MaintainField maintainField = null;
@@ -140,13 +152,15 @@
        if (maintainField == null) {
            //对应版本找不到 往前找
            String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
            if (StringUtils.isEmpty(maintainFieldId)) {
                return new MaintainField().setId(Constant.Default);
            Map<String, String> maintainFieldMap = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
            if (maintainFieldMap == null) {
                return new MaintainField().setId(Constant.Default).setTableName(maintain.getTableName());
            }
            String maintainFieldId = maintainFieldMap.get(Constant.ID);
            maintainField = maintainFieldService.selectById(maintainFieldId);
            if (maintainField == null){
                return new MaintainField().setId(Constant.Default);
                return new MaintainField().setId(Constant.Default).setTableName(maintain.getTableName());
            }
        }
@@ -161,7 +175,7 @@
        // 当前版本正在审批  找前一版本
        Integer maintainFieldOrderNo = maintainField.getOrderNo();
        if (maintainFieldOrderNo < 1) {
            return new MaintainField().setId(Constant.Default);
            return new MaintainField().setId(Constant.Default).setTableName(maintain.getTableName());
        }else {
            Integer preNo = maintainFieldOrderNo - 1;
            maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo));
@@ -170,7 +184,13 @@
    }
    /**
     *
     * @description:  通过表名获取当前字段列表
     * @param tableName 表名
     * @return: 当前字段列表
     *
     */
    @Override
    public List<SysField> getFieldByTable(String tableName) {
        Maintain nowVersion = maintainService.getNowVersion(tableName);
@@ -188,7 +208,13 @@
        }
        return getFieldByMaintain(nowVersion.getId());
    }
    /**
     *
     * @description:  通过版本获取数据库字段列表
     * @param tableName 表名
     * @return: 字段列表
     *
     */
    @Override
    public Result getTotalFields(String tableName) {
        JSONObject result = new JSONObject();
@@ -248,7 +274,42 @@
        return Result.success(result);
    }
    /**
     *
     * @description:  list 通过分页对象筛选
     * @param list 数据列表
     * @param pageNo 页数
     * @param pageSize 每页数量
     * @return: 分页筛选后的数据列表
     *
     */
    @Override
    public Result getPagedDataByList(List list, Integer pageNo, Integer pageSize) {
        JSONObject result = new JSONObject();
        int total = list.size();
        Page page = new Page(total);
        page.setPageSize(pageSize);
        page.setPageNo(pageNo);
        List subList = (List) list.stream().skip(page.getBeginRecordNo_1()).limit(page.getPageSize()).collect(Collectors.toList());
        result.fluentPut("pages", page.getPageCount());
        result.fluentPut("current", pageNo);
        result.fluentPut("size", pageSize);
        result.fluentPut("total", page.getRecordCount());
        result.fluentPut("list", subList);
        return Result.success(result);
    }
    /**
     *
     * @description:  获取分页后的字段列表
     * @param tableName 表名
     * @param pageNo 页数
     * @param pageSize 每页数据
     * @return: 字段列表
     *
     */
    @Override
    public Result getTotalFields(String tableName, Integer pageNo, Integer pageSize) {
        Result totalFields = getTotalFields(tableName);
@@ -270,7 +331,14 @@
    }
    /**
     *
     * @description:  分类后给前端展示
     * @param nowFields 当前版本字段列表
     * @param maxFields 全部字段列表
     * @return: 分类后的字段列表
     *
     */
    private List<SysField> packageFieldList(List<SysField> nowFields, List<SysField> maxFields) {
        //原始的清除operate用于前端显示
        nowFields =  nowFields.stream().map(sysField -> sysField.setOperate(null)).collect(Collectors.toList());
@@ -306,7 +374,14 @@
        });
        return nowFields;
    }
    /**
     *
     * @description:  更新基础字段对象信息
     * @param preField 更新前的字段对象
     * @param updateField 更新参数
     * @return: 是否更新成功
     *
     */
    @Override
    public boolean updateCommon(SysField preField, SysField updateField) {
        preField.setWidth(updateField.getWidth());
@@ -339,7 +414,14 @@
        preField.setOrderNo(updateField.getOrderNo());
        return preField.updateById();
    }
    /**
     *
     * @description:  通过字段版本获取某个字段的对象
     * @param maintainFieldId 字段版本
     * @param field 字段名称
     * @return: 字段对象
     *
     */
    @Override
    public SysField getOneFieldByMaintainField(String maintainFieldId, String field) {
        List<SysField> fieldByMaintain = getFieldByMaintainField(maintainFieldId);
@@ -349,7 +431,34 @@
        }
        return collect.get(0);
    }
    /**
     *
     * @description:  通过数据版本获取某个字段的对象
     * @param maintainId 数据版本
     * @param field 字段名称
     * @return: 字段对象
     *
     */
    @Override
    public SysField getOneFieldByMaintain(String maintainId, String field) {
        List<SysField> fieldByMaintain = getFieldByMaintain(maintainId);
        if (fieldByMaintain == null || fieldByMaintain.isEmpty()) {
            return null;
        }
        for (SysField sysField : fieldByMaintain) {
            if (sysField.getField().equalsIgnoreCase(field)) {
                return sysField;
            }
        }
        return null;
    }
    /**
     *
     * @description:  通过字段版本获取对象列表
     * @param maintainId 字段版本
     * @return: 字段对象列表
     *
     */
    @Override
    public List<SysField> getFieldByMaintainField(String maintainId) {
        if (StringUtils.isEmpty(maintainId)) {
@@ -357,12 +466,24 @@
        }
        return selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainId).orderBy("order_no"));
    }
    /**
     *
     * @description:  通过表名获取默认字段列表
     * @param tableName 表名
     * @return: 字段对象列表
     *
     */
    @Override
    public List<SysField> getDefaultTableField(String tableName) {
        return selectList(new EntityWrapper<SysField>().eq("table_name", tableName).isNull("maintain_field_id").orderBy("order_no"));
    }
    /**
     *
     * @description:  通过表名获取全部字段列表
     * @param tableName 表名
     * @return: 字段对象列表
     *
     */
    @Override
    public List<SysField> getTotalTableField(String tableName) {
        List<TableSchemaResult> tableField = tableInfoMapper.getTableField(tableName);