kimi
2020-03-28 ccb933362251344091a3881a4950dcab33c5008f
src/main/java/com/highdatas/mdm/service/impl/SysFieldServiceImpl.java
@@ -22,10 +22,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -52,13 +49,12 @@
    TableInfoMapper tableInfoMapper;
    @Override
    public List<SysField> getFieldByMaintain(String maintainId) {
    public MaintainField getMaintainFieldByMaintainId(String maintainId) {
        MaintainField maintainField;
        List<SysField> fieldList = null;
        if (StringUtils.isEmpty(maintainId)) {
          return null;
            return null;
        }
        Maintain maintain = maintainService.selectById(maintainId);
        if (maintain == null) {
@@ -70,17 +66,28 @@
            //对应版本找不到 往前找
            String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
            if (StringUtils.isEmpty(maintainFieldId)) {
                fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
                return fieldList;
               return null;
            }
            maintainField = maintainFieldService.selectById(maintainFieldId);
            if (maintainField == null){
                //无对应版本
                fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no"));
                return fieldList;
            }
        }
        return maintainField;
    }
    @Override
    public List<SysField> getFieldByMaintain(String maintainId) {
        List<SysField> fieldList;
        Maintain maintain = maintainService.selectById(maintainId);
        if (maintain == null) {
            return null;
        }
        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  判断版本
@@ -102,6 +109,53 @@
            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", maintainField.getId()).eq("table_name", tableName).orderBy("order_no"));
            return fieldList;
        }
    }
    @Override
    public MaintainField getMaintainFieldByMaintain(String maintainId) {
        MaintainField maintainField;
        List<SysField> fieldList = null;
        if (StringUtils.isEmpty(maintainId)) {
            return null;
        }
        Maintain maintain = maintainService.selectById(maintainId);
        if (maintain == null) {
            return null;
        }
        maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("maintain_id", maintainId).orderBy("order_no desc, create_time desc"));
        if (maintainField == null) {
            //对应版本找不到 往前找
            String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo());
            if (StringUtils.isEmpty(maintainFieldId)) {
                return new MaintainField().setId(Constant.Default);
            }
            maintainField = maintainFieldService.selectById(maintainFieldId);
            if (maintainField == null){
                return new MaintainField().setId(Constant.Default);
            }
        }
        String maintainFieldId = maintainField.getId();
        String tableName = maintainField.getTableName();
        ActivitiStatus status = flowsService.getStatusByBusinessId(maintainFieldId);
        if (status != null && status.equals(ActivitiStatus.open)) {
            return maintainFieldService.selectById(maintainField);
        }
        // 当前版本正在审批  找前一版本
        Integer maintainFieldOrderNo = maintainField.getOrderNo();
        if (maintainFieldOrderNo < 1) {
            return new MaintainField().setId(Constant.Default);
        }else {
            Integer preNo = maintainFieldOrderNo - 1;
            maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo));
            return maintainField;
        }
@@ -310,7 +364,8 @@
                //没有中文名称的  应该属于系统自留字段 如id
                continue;
            }
            String alias = fieldList.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON));
            HashSet<SysField> strings = new HashSet<SysField>(fieldList);
            String alias = strings.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON));
            SysField sysField = new SysField().setField(fieldName).setAlias(alias);
            result.add(sysField);
        }