kimi42345
2020-03-23 5bac93baf5659ce013163f884c9dce41990a860e
src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
@@ -1,16 +1,16 @@
package com.highdatas.mdm.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.highdatas.mdm.entity.Flows;
import com.highdatas.mdm.entity.Maintain;
import com.highdatas.mdm.entity.MaintainField;
import com.highdatas.mdm.entity.SysField;
import com.highdatas.mdm.entity.*;
import com.highdatas.mdm.mapper.MaintainFieldMapper;
import com.highdatas.mdm.mapper.SysFieldMapper;
import com.highdatas.mdm.mapper.TableInfoMapper;
import com.highdatas.mdm.pojo.ActivitiStatus;
import com.highdatas.mdm.pojo.Operate;
import com.highdatas.mdm.pojo.Page;
import com.highdatas.mdm.pojo.Result;
import com.highdatas.mdm.service.IFlowsService;
import com.highdatas.mdm.service.IMaintainFieldService;
@@ -46,6 +46,8 @@
    MaintainFieldMapper maintainFieldMapper;
    @Autowired
    IFlowsService flowsService;
    @Autowired
    TableInfoMapper tableInfoMapper;
    @Override
@@ -94,9 +96,9 @@
            fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
            return fieldList;
        }else {
            Integer preNo = maintainFieldOrderNo--;
            Integer preNo = maintainFieldOrderNo - 1;
            maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo));
            fieldList = this.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainFieldId).eq("table_name", tableName).orderBy("order_no"));
            fieldList = this.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainField.getId()).eq("table_name", tableName).orderBy("order_no"));
            return fieldList;
        }
@@ -107,7 +109,16 @@
    public List<SysField> getFieldByTable(String tableName) {
        Maintain nowVersion = maintainService.getNowVersion(tableName);
        if (nowVersion == null) {
            return null;
            List<SysField> fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", tableName).isNull("maintain_field_id").orderBy("order_no"));
            if (fieldList.size() ==0) {
                List<TableSchemaResult> tableField = tableInfoMapper.getTableField(tableName);
                for (TableSchemaResult tableSchemaResult : tableField) {
                    String fieldName = tableSchemaResult.getFieldName();
                    SysField field = new SysField().setField(fieldName);
                    fieldList.add(field);
                }
            }
            return fieldList;
        }
        return getFieldByMaintain(nowVersion.getId());
    }
@@ -172,6 +183,28 @@
        return Result.success(result);
    }
    @Override
    public Result getTotalFields(String tableName, Integer pageNo, Integer pageSize) {
        Result totalFields = getTotalFields(tableName);
        JSONObject result = (JSONObject) totalFields.getData();
        JSONArray list = result.getJSONArray("list");
        int total = list.size();
        Page page = new Page(total);
        page.setPageSize(pageSize);
        page.setPageNo(pageNo);
        List<Object> subList = 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);
    }
    private List<SysField> packageFieldList(List<SysField> nowFields, List<SysField> maxFields) {
        //原始的清除operate用于前端显示
        nowFields =  nowFields.stream().map(sysField -> sysField.setOperate(null)).collect(Collectors.toList());
@@ -193,7 +226,16 @@
        Collections.sort(nowFields, new Comparator<SysField>() {
            @Override
            public int compare(SysField o1, SysField o2) {
                return o1.getOrderNo() - o2.getOrderNo() ;
                Integer o1OrderNo = o1.getOrderNo();
                Integer orderNo = o2.getOrderNo();
                if (o1OrderNo == null && orderNo == null) {
                    return 0;
                }else if (o1OrderNo == null) {
                    return -1;
                }else if  (orderNo == null) {
                    return 1;
                }
                return o1OrderNo - orderNo;
            }
        });
        return nowFields;