kimi42345
2020-03-29 57c62dd3e7d398e253c2db549b819d020040b1a5
src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java
@@ -47,6 +47,9 @@
    RedisClient redisClient;
    @Autowired
    IMaintainFieldService maintainFieldService;
    @Autowired
    IMasterAuthorService masterAuthorService;
    @Resource
    protected DataSource dataSource;
@@ -75,41 +78,40 @@
    }
    @Override
    public Result selectList(String tableName) {
        return selectList(tableName, null,null, (maintainService.getNowVersion(tableName).getVersion()));
    public Result selectList(TUser user, String tableName) {
        return selectList(user, tableName, null,null, (maintainService.getNowVersion(tableName).getVersion()));
    }
    @Override
    public Result selectList(String tableName, String whereSegment) {
        return selectList(tableName, whereSegment, (maintainService.getNowVersion(tableName).getVersion()));
    public Result selectList(TUser user, String tableName, String whereSegment) {
        return selectList(user,tableName, whereSegment, (maintainService.getNowVersion(tableName).getVersion()));
    }
    @Override
    public Result selectList(String tableName, String whereSegment, String version) {
        return selectList(tableName, null, whereSegment, version);
    public Result selectList(TUser user,String tableName, String whereSegment, String version) {
        return selectList(user, tableName, null, whereSegment, version);
    }
    @Override
    public Result selectList(String tableName, List<String> fieldList, String whereSegment) {
        return selectList(tableName, fieldList, whereSegment, maintainService.getNowVersion(tableName).getVersion());
    public Result selectList(TUser user, String tableName, List<String> fieldList, String whereSegment) {
        return selectList(user, tableName, fieldList, whereSegment, maintainService.getNowVersion(tableName).getVersion());
    }
    @Override
    public Result selectList(String tableName,List<String> fieldList, String whereSegment, String version) {
    public Result selectList(TUser user, String tableName,List<String> fieldList, String whereSegment, String version) {
        try{
            JSONObject object = new JSONObject();
            //TODO only add  version
            Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
            String fields;
            if (fieldList == null || fieldList.size() == 0) {
                fields = getFields(tableName);
                fields = getFields(user, tableName, maintainFromVersion);
            } else {
                fields = fieldList.stream().collect(Collectors.joining(Constant.COMMA));
            }
            //std
            List<Map<String, Object>> select = mapper.select(tableName, fields, whereSegment);
            //TODO only add  version
            Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
            List<Map<String, Object>> maps = maintainService.selectVersionOperatorByType(tableName, maintainFromVersion.getId(), Operate.create);
@@ -124,8 +126,8 @@
    @Override
    public Result selectList(String tableName, List<String> fields) {
        return selectList(tableName,fields,Constant.WHERE_DEFAULT,(maintainService.getNowVersion(tableName).getVersion()));
    public Result selectList(TUser user, String tableName, List<String> fields) {
        return selectList(user, tableName,fields,Constant.WHERE_DEFAULT,(maintainService.getNowVersion(tableName).getVersion()));
    }
    public Long getCount(String tableName, String whereSegment) {
@@ -143,20 +145,24 @@
    }
    @Override
    public Long getCountByVersion (String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
    public Long getCountByVersion (TUser user, String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
        try{
            Maintain maintain = maintainService.selectById(maintainId);
            String fields = getFields(tableName, maintain);
            String Hfields = getFields(tableName, Constant.H, maintain);
            String tempFields = getTempFields(tableName, maintain);
            String A1fields = getFields(tableName, Constant.A1, maintain);
            String A2fields = getFields(tableName, Constant.A2, maintain);
            String tempHFields = getTempFields(tableName, Constant.H, maintain);
            String fields = getFields(user,tableName, maintain);
            String Hfields = getFields(user, tableName, Constant.H, maintain);
            String tempFields = getTempFields(user, tableName, maintain);
            String A1fields = getFields(user, tableName, Constant.A1, maintain);
            String A2fields = getFields(user, tableName, Constant.A2, maintain);
            String tempHFields = getTempFields(user, tableName, Constant.H, maintain);
            if (StringUtils.isEmpty(whereSegment)) {
                whereSegment = Constant.WHERE_DEFAULT;
            }
            Long count = mapper.getCountByVersion(tableName, tableTempName, fields, tempFields, Hfields, A1fields,A2fields,tempHFields, fromOrderNo, toOrderNo, DbUtils.quotedStr(maintainId), whereSegment);
            Long count;
            if (StringUtils.isEmpty(fields)) {
                return 0L;
            }
            count = mapper.getCountByVersion(tableName, tableTempName, fields, tempFields, Hfields, A1fields,A2fields,tempHFields, fromOrderNo, toOrderNo, DbUtils.quotedStr(maintainId), whereSegment);
            return count;
        }
        catch (Exception e) {
@@ -165,16 +171,16 @@
        }
    }
    public Long getCountByMaxVersion (String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
    public Long getCountByMaxVersion (TUser user, String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
        try{
            Maintain maintain = maintainService.selectById(maintainId);
            String fields = getFields(tableName, maintain);
            String Hfields = getFields(tableName, Constant.H, maintain);
            String tempFields = getTempFields(tableName, maintain);
            String A1fields = getFields(tableName, Constant.A1, maintain);
            String A2fields = getFields(tableName, Constant.A2, maintain);
            String tempHFields = getTempFields(tableName, Constant.H, maintain);
            String fields = getFields(user, tableName, maintain);
            String Hfields = getFields(user, tableName, Constant.H, maintain);
            String tempFields = getTempFields(user, tableName, maintain);
            String A1fields = getFields(user, tableName, Constant.A1, maintain);
            String A2fields = getFields(user, tableName, Constant.A2, maintain);
            String tempHFields = getTempFields(user, tableName, Constant.H, maintain);
            if (StringUtils.isEmpty(whereSegment)) {
                whereSegment = Constant.WHERE_DEFAULT;
            }
@@ -194,9 +200,9 @@
    }
    @Override
    public String getFields(String tableName, Maintain maintain) {
    public String getFields(TUser user, String tableName, Maintain maintain) {
        return getFields(tableName, null, maintain);
        return getFields(user, tableName, null, maintain);
    }
    private String getCaseWhenFields(String tableName) {
@@ -233,9 +239,17 @@
    }
    @Override
    public String getFields(String tableName, String alias, Maintain maintain) {
        List<SysField> fields = fieldService.getFieldByMaintain(maintain.getId());
    public String getFields(TUser user, String tableName, String alias, Maintain maintain) {
        List<SysField> fields;
        if (user == null) {
            fields = fieldService.getFieldByMaintain(maintain.getId());
        }else {
            fields = masterAuthorService.getField(user.getUserId(), maintain.getId());
        }
        ContentBuilder contentBuilder = new ContentBuilder(Constant.COMMA);
        if (fields == null) {
            return Constant.EMPTY_Str;
        }
        if (!fields.contains(Constant.ID)) {
            fields.add(new SysField().setField(Constant.ID));
        }
@@ -258,17 +272,18 @@
    }
    @Override
    public String getTempFields(String tableName, Maintain maintain) {
        return getTempFields(tableName, null, maintain);
    public String getTempFields(TUser user, String tableName, Maintain maintain) {
        return getTempFields(user, tableName, null, maintain);
    }
    @Override
    public String getTempFields(String tableName) {
        return getTempFields(tableName, Constant.EMPTY_Str);
    public String getTempFields(TUser user, String tableName) {
        return getTempFields(user, tableName, Constant.EMPTY_Str);
    }
    @Override
    public String getTempFields(String tableName, String alias) {
    public String getTempFields(TUser user, String tableName, String alias) {
        List<TableSchemaResult> tableField = mapper.getTableField(tableName);
        ContentBuilder contentBuilder = new ContentBuilder(Constant.COMMA);
        for (TableSchemaResult tableSchemaResult : tableField) {
            String fieldName = tableSchemaResult.getFieldName();
@@ -290,8 +305,16 @@
    }
    @Override
    public String getTempFields(String tableName, String alias, Maintain maintain) {
        List<SysField> fields = fieldService.getFieldByMaintain(maintain.getId());
    public String getTempFields(TUser user, String tableName, String alias, Maintain maintain) {
        List<SysField> fields;
        if (user == null) {
            fields = fieldService.getFieldByMaintain(maintain.getId());
        }else {
            fields = masterAuthorService.getField(user.getUserId(), maintain.getId());
        }
        if (fields == null) {
            return Constant.EMPTY_Str;
        }
        ContentBuilder contentBuilder = new ContentBuilder(Constant.COMMA);
        if (!fields.contains(Constant.ID)) {
            fields.add(new SysField().setField(Constant.ID));
@@ -317,45 +340,45 @@
    }
    @Override
    public Result selectListByPageByVersion(String tableName, Integer pageNo, Integer pageSize, boolean findMax) {
        return selectListByPageByVersion(tableName,Constant.WHERE_DEFAULT,pageNo,pageSize, findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, Integer pageNo, Integer pageSize, boolean findMax) {
        return selectListByPageByVersion(user, tableName,Constant.WHERE_DEFAULT,pageNo,pageSize, findMax);
    }
    @Override
    public Result selectListByPageByVersion(String tableName, String whereSegment, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(tableName,null, whereSegment,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, String whereSegment, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(user, tableName,null, whereSegment,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
    }
    @Override
    public Result selectListByPageByVersion(String tableName, Integer pageNo, String version, boolean findMax) {
        return selectListByPageByVersion(tableName,null,Constant.WHERE_DEFAULT,pageNo, null, version, findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, Integer pageNo, String version, boolean findMax) {
        return selectListByPageByVersion(user, tableName,null,Constant.WHERE_DEFAULT,pageNo, null, version, findMax);
    }
    @Override
    public Result selectListByPageByVersion(String tableName, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(tableName,null,Constant.WHERE_DEFAULT,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(user, tableName,null,Constant.WHERE_DEFAULT,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
    }
    @Override
    public Result selectListByPageByVersion(String tableName, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
        return selectListByPageByVersion(tableName,null,whereSegment,pageNo,pageSize, findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
        return selectListByPageByVersion(user, tableName,null,whereSegment,pageNo,pageSize, findMax);
    }
    @Override
    public Result selectListByPageByVersion(String tableName, List<String> fieldList, String whereSegment, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(tableName,null,whereSegment,pageNo, null, findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, List<String> fieldList, String whereSegment, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(user, tableName,null,whereSegment,pageNo, null, findMax);
    }
    @Override
    public Result selectListByPageByVersion(String tableName, List<String> fieldList, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(tableName,null,Constant.WHERE_DEFAULT,pageNo, findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, List<String> fieldList, Integer pageNo, boolean findMax) {
        return selectListByPageByVersion(user, tableName,null,Constant.WHERE_DEFAULT,pageNo, findMax);
    }
    @Override
    public Result selectListByPageByVersion(String tableName, String whereSegment, Integer pageNo, String version, boolean findMax) {
        return selectListByPageByVersion(tableName, null,whereSegment, pageNo, null,version, findMax);
    public Result selectListByPageByVersion(TUser user, String tableName, String whereSegment, Integer pageNo, String version, boolean findMax) {
        return selectListByPageByVersion(user, tableName, null,whereSegment, pageNo, null,version, findMax);
    }
    @Override
    public List<Map<String, Object>> selectListByVersion(String tableName, List<String> fieldList, String whereSegment, String version, boolean findMax) {
    public List<Map<String, Object>> selectListByVersion(TUser user, String tableName, List<String> fieldList, String whereSegment, String version, boolean findMax) {
        Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
        Maintain nowVersionMaintain = maintainService.getNowVersion(tableName);
        boolean isMax = maintainService.checkdMaxVersion(maintainFromVersion.getId());
@@ -379,12 +402,12 @@
        String tempHfields;
        if (fieldList == null || fieldList.size() == 0) {
            fields = getFields(tableName, maintainFromVersion);
            Hfields = getFields(tableName,Constant.H, maintainFromVersion);
            A1fields = getFields(tableName,Constant.A1, maintainFromVersion);
            A2fields = getFields(tableName,Constant.A2, maintainFromVersion);
            tempFields = getTempFields(tableName, maintainFromVersion);
            tempHfields = getTempFields(tableName, Constant.H, maintainFromVersion);
            fields = getFields(user, tableName, maintainFromVersion);
            Hfields = getFields(user, tableName,Constant.H, maintainFromVersion);
            A1fields = getFields(user, tableName,Constant.A1, maintainFromVersion);
            A2fields = getFields(user, tableName,Constant.A2, maintainFromVersion);
            tempFields = getTempFields(user, tableName, maintainFromVersion);
            tempHfields = getTempFields(user, tableName, Constant.H, maintainFromVersion);
        } else {
            fields = fieldList.stream().collect(Collectors.joining(Constant.COMMA));
            Hfields = fieldList.stream().map(s -> MessageFormat.format(Constant.Alias,Constant.H, s)).collect(Collectors.joining(Constant.COMMA));
@@ -423,8 +446,7 @@
        return result;
    }
    @Override
    public Result selectListByPageByVersion(String tableName, List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, String version, boolean findMax) {
    public Result selectListByPageByVersion(TUser user, String tableName, List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, String version, boolean findMax) {
        Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
        Maintain nowVersionMaintain = maintainService.getNowVersion(tableName);
        boolean isMax = maintainService.checkdMaxVersion(maintainFromVersion.getId());
@@ -448,11 +470,13 @@
           if (isFirst && nowVersionMaintain == null) {
               nowVersionOrderNo = nowVersionOrderNo - 1;
           }
            count = getCountByMaxVersion(maintainFromVersion.getId(), tableName, tableTempName, fromVersionOrderNo, nowVersionOrderNo,  whereSegment);
            count = getCountByMaxVersion(user, maintainFromVersion.getId(), tableName, tableTempName, fromVersionOrderNo, nowVersionOrderNo,  whereSegment);
        }else {
            count = getCountByVersion(maintainFromVersion.getId(), tableName, tableTempName, nowVersionOrderNo, fromVersionOrderNo, whereSegment);
            count = getCountByVersion(user, maintainFromVersion.getId(), tableName, tableTempName, nowVersionOrderNo, fromVersionOrderNo, whereSegment);
        }
        if (count == 0) {
            return Result.success(null);
        }
        //mapper.selectByPageByVersion(tableName, tableTempName, fieldList, whereSegment,);
        Page page = new Page(count);
        if (pageSize != null && pageSize.compareTo(1) != -1) {
@@ -473,12 +497,12 @@
        String tempHfields;
        if (fieldList == null || fieldList.size() == 0) {
            fields = getFields(tableName, maintainFromVersion);
            Hfields = getFields(tableName,Constant.H, maintainFromVersion);
            A1fields = getFields(tableName,Constant.A1, maintainFromVersion);
            A2fields = getFields(tableName,Constant.A2, maintainFromVersion);
            tempFields = getTempFields(tableName, maintainFromVersion);
            tempHfields = getTempFields(tableName, Constant.H, maintainFromVersion);
            fields = getFields(user, tableName, maintainFromVersion);
            Hfields = getFields(user, tableName,Constant.H, maintainFromVersion);
            A1fields = getFields(user, tableName,Constant.A1, maintainFromVersion);
            A2fields = getFields(user, tableName,Constant.A2, maintainFromVersion);
            tempFields = getTempFields(user, tableName, maintainFromVersion);
            tempHfields = getTempFields(user, tableName, Constant.H, maintainFromVersion);
        } else {
            fields = fieldList.stream().collect(Collectors.joining(Constant.COMMA));
            Hfields = fieldList.stream().map(s -> MessageFormat.format(Constant.Alias,Constant.H, s)).collect(Collectors.joining(Constant.COMMA));
@@ -539,7 +563,6 @@
    @Override
    public Maintain uploadedData(String tableName, SysAssembleUpdateType uploadType, String userId) {
        MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("table_name",tableName));
        SysOperateLog operateLog = new SysOperateLog();
@@ -701,8 +724,8 @@
    }
    @Override
    public Result selectListByPageByVersion(String tableName,List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
       return  selectListByPageByVersion(tableName, fieldList, whereSegment,pageNo,pageSize,String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
    public Result selectListByPageByVersion(TUser user, String tableName,List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
       return  selectListByPageByVersion(user, tableName, fieldList, whereSegment,pageNo,pageSize,String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
    }
    @Override
@@ -1038,7 +1061,9 @@
        ArrayList<String> fieldList = new ArrayList<>();
        fieldList.add(field);
        fieldList.add(Constant.ID);
        List<Map<String, Object>> maps = selectListByVersion(tableName, fieldList, Constant.WHERE_DEFAULT, max.getVersion(), false);
        // where
        List<Map<String, Object>> maps = selectListByVersion(null, tableName, fieldList, Constant.WHERE_DEFAULT, max.getVersion(), false);
        String tempTableName = tableName + Constant.RECORD;
        List<Map<String, Object>> tempVals = mapper.getOneTempFieldDataByMaintainExtent(DbUtils.quotedStr(tableName), tempTableName, field, min.getOrderNo(), max.getOrderNo());
        maps.addAll(tempVals);