⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 entitydataservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }        return header;    }    private static int readEntityFile(File file, String delimiter, GenericDelegator delegator) throws IOException, GeneralException {        String entityName = file.getName().substring(0, file.getName().lastIndexOf('.'));        if (entityName == null) {            throw new GeneralException("Entity name cannot be null : [" + file.getName() + "]");        }        BufferedReader reader = new BufferedReader(new FileReader(file));        String[] header = readEntityHeader(file, delimiter, reader);        //Debug.log("Opened data file [" + file.getName() + "] now running...", module);        GeneralException exception = null;        String line = null;        int lineNumber = 1;        while ((line = reader.readLine()) != null) {            // process the record            String fields[] = line.split(delimiter);            //Debug.log("Split record", module);            if (fields.length < 1) {                exception = new GeneralException("Illegal number of fields [" + file.getName() + " / " + lineNumber);                break;            }            GenericValue newValue = makeGenericValue(delegator, entityName, header, fields);            //Debug.log("Made value object", module);            newValue = delegator.createOrStore(newValue);            //Debug.log("Stored record", module);            if (lineNumber % 500 == 0 || lineNumber == 1) {                Debug.log("Records Stored [" + file.getName() + "]: " + lineNumber, module);                //Debug.log("Last record : " + newValue, module);            }            lineNumber++;        }        reader.close();        // now that we closed the reader; throw the exception        if (exception != null) {            throw exception;        }        return lineNumber;    }    private static GenericValue makeGenericValue(GenericDelegator delegator, String entityName, String[] header, String[] line) {        GenericValue newValue = delegator.makeValue(entityName, null);        for (int i = 0; i < header.length; i++) {            String name = header[i].trim();            String value = null;            if (i < line.length) {                value = line[i];            }            // check for null values            if (value != null && value.length() > 0) {                char first = value.charAt(0);                if (first == 0x00) {                    value = null;                }                // trim non-null values                if (value != null) {                    value = value.trim();                }                if (value != null && value.length() == 0) {                    value = null;                }            } else {                value = null;            }            // convert and set the fields            newValue.setString(name, value);        }        return newValue;    }    private String[] getEntityFieldNames(GenericDelegator delegator, String entityName) {        ModelEntity entity = delegator.getModelEntity(entityName);        if (entity == null) {            return null;        }        List modelFields = entity.getFieldsCopy();        if (modelFields == null) {            return null;        }        String[] fieldNames = new String[modelFields.size()];        for (int i = 0; i < modelFields.size(); i++) {            ModelField field = (ModelField) modelFields.get(i);            fieldNames[i] = field.getName();        }        return fieldNames;    }    public static Map rebuildAllIndexesAndKeys(DispatchContext dctx, Map context) {        GenericDelegator delegator = dctx.getDelegator();        Security security = dctx.getSecurity();        // check permission         GenericValue userLogin = (GenericValue) context.get("userLogin");        if (!security.hasPermission("ENTITY_MAINT", userLogin)) {            return ServiceUtil.returnError("You do not have permission to run this service.");        }        String groupName = (String) context.get("groupName");        Boolean fixSizes = (Boolean) context.get("fixColSizes");        if (fixSizes == null) fixSizes = new Boolean(false);        List messages = new ArrayList();        String helperName = delegator.getGroupHelperName(groupName);        DatabaseUtil dbUtil = new DatabaseUtil(helperName);        Map modelEntities = delegator.getModelEntityMapByGroup(groupName);        Set modelEntityNames = new TreeSet(modelEntities.keySet());        Iterator modelEntityNameIter = null;        // step 1 - remove FK indices        Debug.logImportant("Removing all foreign key indices", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {      	    String modelEntityName = (String) modelEntityNameIter.next();      	    ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.deleteForeignKeyIndices(modelEntity, messages);        }        modelEntityNameIter = null;        // step 2 - remove FKs        Debug.logImportant("Removing all foreign keys", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {      	    String modelEntityName = (String) modelEntityNameIter.next();      	    ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.deleteForeignKeys(modelEntity, modelEntities, messages);        }        modelEntityNameIter = null;        // step 3 - remove PKs        Debug.logImportant("Removing all primary keys", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {            String modelEntityName = (String) modelEntityNameIter.next();            ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.deletePrimaryKey(modelEntity, messages);        }        modelEntityNameIter = null;        // step 4 - remove declared indices        Debug.logImportant("Removing all declared indices", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {            String modelEntityName = (String) modelEntityNameIter.next();            ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.deleteDeclaredIndices(modelEntity, messages);        }        modelEntityNameIter = null;        // step 5 - repair field sizes        if (fixSizes.booleanValue()) {            Debug.logImportant("Updating column field size changes", module);            List fieldsWrongSize = new LinkedList();            dbUtil.checkDb(modelEntities, fieldsWrongSize, messages, true, true, true, true);            if (fieldsWrongSize.size() > 0) {                dbUtil.repairColumnSizeChanges(modelEntities, fieldsWrongSize, messages);            } else {                String thisMsg = "No field sizes to update";                messages.add(thisMsg);                Debug.logImportant(thisMsg, module);            }        }        // step 6 - create PKs        Debug.logImportant("Creating all primary keys", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {            String modelEntityName = (String) modelEntityNameIter.next();            ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.createPrimaryKey(modelEntity, messages);        }        modelEntityNameIter = null;        // step 7 - create FK indices        Debug.logImportant("Creating all foreign key indices", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {      	    String modelEntityName = (String) modelEntityNameIter.next();      	    ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.createForeignKeyIndices(modelEntity, messages);        }        modelEntityNameIter = null;        // step 8 - create FKs        Debug.logImportant("Creating all foreign keys", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {      	    String modelEntityName = (String) modelEntityNameIter.next();      	    ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.createForeignKeys(modelEntity, modelEntities, messages);        }        modelEntityNameIter = null;        // step 8 - create FKs        Debug.logImportant("Creating all declared indices", module);        modelEntityNameIter = modelEntityNames.iterator();        while (modelEntityNameIter.hasNext()) {      	    String modelEntityName = (String) modelEntityNameIter.next();      	    ModelEntity modelEntity = (ModelEntity) modelEntities.get(modelEntityName);            dbUtil.createDeclaredIndices(modelEntity, messages);        }        modelEntityNameIter = null;        // step 8 - checkdb        Debug.logImportant("Running DB check with add missing enabled", module);        dbUtil.checkDb(modelEntities, messages, true);                Map result = ServiceUtil.returnSuccess();        result.put("messages", messages);        return result;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -