Skip to main content

Production Data Process

info

Before you begin, please ensure that your host has the ability to connect to the Internet, has docker and docker-compose installed correctly, and has a available MongoAtlas database.

For the installation of docker, please refer to here

For the installation of docker-compose, please refer to here

To apply for free MongoAtlas, please refer to here

Configuration

./testnet.yaml

environment:
- MSSQL_DATABASE_USER= # MSSQL username
- MSSQL_DATABASE_PASSWORD= # MSSQL password
- MSSQL_DATABASE_DBNAME= # MSSQL Database
- MSSQL_DATABASE_SERVER= # MSSQL Server URL
- MSSQL_DATABASE_PORT= # MSSQL Server Port
- MSSQL_DATABASE_TABLE= # MSSQL Table Name
- MONGO_URL=mongodb+srv://<USERNAME>:<PASSWORD>@<MONGODB URL>/<DATABASE> # MONGODB INFO (It is recommended to use Mongo Atlas)
volumes:
- ./config/wellinfo_testnet.js:/app/config/wellinfo.js

./config/wellinfo_testnet.js


module.exports = {
uniqueId: {
"locationID-Here": ['OILuniqueId-Here', 'GASuniqueId-Here'],
}
};

How to use


docker-compose -f testnet.yaml up -d

How to build


docker build -t treasurenet/productiondataprocess:1.0 .

How to change frequency

./index.js

const rule = new schedule.RecurrenceRule();
rule.hour = [0, 12];

Want to upload production volume for a specific date

./index.js


const startDate = moment('2023-08-01'); //START Date
const endDate = moment('2023-10-05'); //END Date

Data Schema that can be accepted by the ProdctionDataUploader automatic tool


const RecordSchema = new mongoose.Schema({
location_id: {type: Number, index: true, required: true},
date: {type: Number, index: true, required: true},
amount: Number,
month: Number,
uniqueId: {type: String, required: true},
status: {type: Number, default: dict.STATUS.UNUSED}, // 0:未使用 1:已使用
timestamp: {type: Date, default: Date.now},
});

const OilDataRecordModel = mongoose.model('ProductionDataRecord_OIL', RecordSchema);
const GasDataRecordModel = mongoose.model('ProductionDataRecord_GAS', RecordSchema);