import fr.gouv.finances.dgfip.xemelios.common.config.EtatModel;
import fr.gouv.finances.dgfip.xemelios.common.config.Loader;
import fr.gouv.finances.dgfip.xemelios.common.config.SpecialKeyModel;
+import fr.gouv.finances.dgfip.xemelios.data.impl.pool.PoolManager;
import fr.gouv.finances.dgfip.xemelios.data.impl.sqlconfig.PersistenceConfigParser;
import fr.gouv.finances.dgfip.xemelios.data.impl.sqlconfig.TDocument;
import fr.gouv.finances.dgfip.xemelios.data.impl.sqlconfig.TEtat;
if (this.archiveLocator != null) {
this.archiveLocator.initialize();
}
+
+ // ----- beurk : application du patch qui passe doc_id et initial_doc_name 100 -> 300 (EV-MiniFin-Xemelios-0806) ------
+ final PoolManager pool = PoolManager.getInstance();
+ final Connection connection = pool.getConnection();
+ try {
+ final String value = this.getParameterValue(connection, "patchDocIdInitDocName");
+ if (!"1".equals(value)) {
+ this.patchDocIdInitDocName(connection);
+ this.setParameterValue(connection, "patchDocIdInitDocName", "1");
+
+ if (!connection.getAutoCommit()) {
+ connection.commit();
+ }
+ }
+ } finally {
+ pool.releaseConnection(connection);
+ }
}
public ArchiveLocator getArchiveLocator() {
}
}
+ public boolean parameterExists(final Connection connection, final String paramName) throws SQLException {
+ final PreparedStatement ps = connection.prepareStatement(this.queryProvider.getQuery("setParameterValue.exists"));
+ try {
+ final ResultSet rs = ps.executeQuery();
+ return rs.next();
+ } finally {
+ ps.close();
+ }
+ }
+
+ public void setParameterValue(final Connection connection, final String paramName, final String paramValue) throws SQLException {
+ final String query = this.queryProvider.getQuery(this.parameterExists(connection, paramName) ? "setParameterValue.update" : "setParameterValue.insert");
+ final PreparedStatement ps = connection.prepareStatement(query);
+ try {
+ ps.setString(1, paramName);
+ ps.setString(2, paramValue);
+ ps.execute();
+ } finally {
+ ps.close();
+ }
+ }
+
public boolean isAlreadyImportingArchive(final Connection connection, final String archiveName, final String exercice) throws SQLException {
final PreparedStatement ps = connection.prepareStatement(this.queryProvider.getQuery("isAlreadyImportingArchive"));
try {
return result;
}
+
+ protected void patchDocIdInitDocName(final Connection connection) throws SQLException {
+ final String alterQuery = this.queryProvider.getQuery("patchDocIdInitDocName.alterTable");
+
+ final PreparedStatement ps = connection.prepareStatement(this.queryProvider.getQuery("patchDocIdInitDocName.getTableColumn"));
+ try {
+ final ResultSet rs = ps.executeQuery();
+ final Statement alterSt = connection.createStatement();
+
+ while (rs.next()) {
+ final String sql = alterQuery.replace(":table", rs.getString(1)).replace(":column", rs.getString(2));
+ alterSt.execute(sql);
+ }
+ } finally {
+ ps.close();
+ }
+ }
}
-createImportJob=INSERT INTO IMPORT_JOBS(ARCHIVE_NAME, EXERCICE, USER_LOGIN, DATE_DEMANDE, IMPORT_STATUS, IMPORT_SCHEME, DATE_MESSAGE, DATE_RAPPEL, DATE_CONFIRM) VALUES (DEFAULT, ?, ?, ?, SYSDATE, 0, ?, NULL, NULL, NULL)
-
getParameterValue=SELECT PARAM_VALUE FROM PARAMETERS WHERE PARAM_NAME = ?
+setParameterValue.exists=SELECT 1 FROM PARAMETERS WHERE PARAM_NAME = ?
+setParameterValue.update=UPDATE PARAMETERS SET PARAM_VALUE = ? WHERE PARAM_NAME = ?
+setParameterValue.insert=INSERT INTO PARAMETERS(PARAM_NAME, PARAM_VALUE) VALUES (?, ?)
+
isAlreadyImportingArchive=SELECT IMPORT_ID FROM IMPORT_JOBS WHERE ARCHIVE_NAME=? AND EXERCICE=? AND IMPORT_STATUS IN (0, 1)
declareMapping.exists=SELECT 1 FROM ARCHIVE_BUDGET WHERE IDCOLL = ? AND EXERCICE = ? AND ARCHIVE_NAME = ?
updateArchiveStatus=UPDATE IMPORT_JOBS SET IMPORT_STATUS=? WHERE IMPORT_ID=?
-getArchiveToImport=SELECT IMPORT_ID, ARCHIVE_NAME, EXERCICE, USER_LOGIN, IMPORT_SCHEME FROM IMPORT_JOBS WHERE IMPORT_STATUS=? ORDER BY DATE_DEMANDE ASC
\ No newline at end of file
+getArchiveToImport=SELECT IMPORT_ID, ARCHIVE_NAME, EXERCICE, USER_LOGIN, IMPORT_SCHEME FROM IMPORT_JOBS WHERE IMPORT_STATUS=? ORDER BY DATE_DEMANDE ASC
+