Android Java 定期実行 送信処理

Worker_TEST_01.java

public static Worker_TEST_01 getInstance() {//インスタンスを取得
return instance;
}

/**
* ------------- Send_table_01 から CSV ファイルを作成 処理 & ファイル送信処理 WorkerManager
*/
public void Task_schedule_Send_CSV() {


/**
*  作業用 ファイル名 追加 2021/01/16
*/
// 部署用 ファイル名 取得
File_name_SELECT_BUSYO();
// send_csv_file_name = "SG-" + csv_file_name_01 + "-" + csv_file_name_02 + "-ANDROID-" + get_busho_c_str + ".csv";
// 変更 2021-01-16 send_csv_file_name = "SG-" + csv_file_name_01 + "-" + csv_file_name_02 + "-" + Sagyou_B + "-" + get_TMNF_01 + ".csv";
send_csv_file_name = "SG-" + csv_file_name_01 + "-" + csv_file_name_02 + "-" + Sagyou_Get_file_name + "-" + get_TMNF_01 + ".csv";

DBAdapter.DBHelper helper = new DBAdapter.DBHelper(getApplicationContext());
SQLiteDatabase schedule_db_01 = helper.getReadableDatabase();

String [] arr_item = new String[29];

try {

/***
* --------------------- ファイル 作成処理 Start -------------------------
*/
target_csv_file = new File(getFilesDir() + "/" + send_csv_file_name);

// 書き込み用 ストリーム
FileOutputStream outStream = openFileOutput(send_csv_file_name, MODE_PRIVATE);
// ファイル書き込み 準備
OutputStreamWriter out = new OutputStreamWriter(outStream, "Shift_JIS");

PrintWriter printWriter = new PrintWriter(out);

Cursor cursor = schedule_db_01.rawQuery("SELECT * FROM Send_table_01",null);

if(cursor.moveToFirst()) {

do {

// 作業コード
arr_item[0] = Saghou_Code;

// 作業番号 作成
int tmp_i_01 = cursor.getInt(0);
tmp_s_01 = String.valueOf(tmp_i_01);

String Sagyou_date_str = Saghou_Code + "-" + "0" + tmp_s_01;
// 作業番号
arr_item[1] = Sagyou_date_str;

// 作業日
arr_item[2] = Sagyou_yymmdd;

//----- 担当者C
int idx = cursor.getColumnIndex("send_col_01");
arr_item[3] = cursor.getString(idx);

//----- 部署C
idx = cursor.getColumnIndex("send_col_02");
arr_item[4] = cursor.getString(idx);

//----- 現品票C
idx = cursor.getColumnIndex("send_col_03");
arr_item[5] = cursor.getString(idx);

//----- 品目K 区分
idx = cursor.getColumnIndex("send_col_04");
arr_item[6] = cursor.getString(idx);

//----- 品目C コード
idx = cursor.getColumnIndex("send_col_05");
arr_item[7] = cursor.getString(idx);

//----- 品目名
idx = cursor.getColumnIndex("send_col_06");
arr_item[8] = cursor.getString(idx);
String Himoku_Name = "\"" + arr_item[8] + "\"";

//----- 品備考
idx = cursor.getColumnIndex("send_col_07");
arr_item[9] = cursor.getString(idx);
String Himoku_Bikou = "\"" + arr_item[9] + "\"";

//----- 作業場所
idx = cursor.getColumnIndex("send_col_08");
arr_item[10] = cursor.getString(idx);

// 段取時間
idx = cursor.getColumnIndex("send_col_09");
arr_item[11] = cursor.getString(idx);

// 作業時間
idx = cursor.getColumnIndex("send_col_10");
arr_item[12] = cursor.getString(idx);

//----- 作業場所
idx = cursor.getColumnIndex("send_col_11");
arr_item[13] = cursor.getString(idx);

//----- 作業場所
idx = cursor.getColumnIndex("send_col_12");
arr_item[14] = cursor.getString(idx);

//----- 作業場所
idx = cursor.getColumnIndex("send_col_13");
arr_item[15] = cursor.getString(idx);

//----- 作業場所
idx = cursor.getColumnIndex("send_col_14");
arr_item[16] = cursor.getString(idx);

//----- 作業場所
idx = cursor.getColumnIndex("send_col_15");
arr_item[17] = cursor.getString(idx);

//----- 作業場所
idx = cursor.getColumnIndex("send_col_16");
arr_item[18] = cursor.getString(idx);

// 最終工程
idx = cursor.getColumnIndex("send_col_17");
arr_item[19] = cursor.getString(idx);

// 送信時間
String sousin_time = "\"" + Send_time_str + "\"";

/**
* 工数 追加 **************
*/
idx = cursor.getColumnIndex("send_col_18");
arr_item[20] = cursor.getString(idx);

//******* 工数 「空」 で 送信
String kakou_num = "";

//----- 再送フラグ 基本 この段階では 0
idx = cursor.getColumnIndex("send_col_19");
arr_item[21] = cursor.getString(idx);

saisou_Flg = arr_item[21];

/**
* 「開始時間」 「終了時間」 追加
*/
idx = cursor.getColumnIndex("send_col_20");
arr_item[22] = cursor.getString(idx);

System.out.println(arr_item[22]);

// 開始時間
String tmp_time_01 = arr_item[22];

/** 0 埋め
* 1:9 , 10:9 , 1:30 などのデータ
*/

//****** 「終了時間」
idx = cursor.getColumnIndex("send_col_21");
arr_item[23] = cursor.getString(idx);

//****** 終了時間
String tmp_time_02 = arr_item[23];

/** 0 埋め
* 1:9 , 10:9 , 1:30 などのデータ
*/
/*
int idxx_02 = tmp_time_02.indexOf( ':' );
String result_02;

if(tmp_time_01.length() == 3) {
result_02 = "0" + tmp_time_02.charAt(0) + tmp_time_02.charAt(1) + "0" + tmp_time_02.charAt(2);
System.out.println(result_02);

} else if(idxx_02 == 1){
result_02 = "0" + tmp_time_02.charAt(0) + tmp_time_02.charAt(1) + tmp_time_02.charAt(2) + tmp_time_02.charAt(3);
System.out.println(result_02);

} else if(idxx_02 == 2 && tmp_time_02.length() == 4) {
result_02 ="" + tmp_time_02.charAt(0) + tmp_time_02.charAt(1) + tmp_time_02.charAt(2)+ "0" + tmp_time_02.charAt(3);
System.out.println(result_02);
System.out.println(idxx_02);

} else {
result_02 ="" + tmp_time_02.charAt(0) + tmp_time_02.charAt(1) + tmp_time_02.charAt(2) + tmp_time_02.charAt(3) + tmp_time_02.charAt(4);
}

result_02 = result_02.trim();

*/

// ******* send_col_22 取得 Start ***************
idx = cursor.getColumnIndex("send_col_22");
arr_item[24] = cursor.getString(idx);

// 作業番号 ファイルカラム 2
String GET_id = arr_item[24];

// 作業 DD ファイルカラム 1
String ID_DD = GET_id.substring(0,2);
// ******* send_col_22 取得 END ***************

//******* 作業 yyyymmdd
idx = cursor.getColumnIndex("send_col_23");
arr_item[25] = cursor.getString(idx);

//------------ csv_get_file_item に INSERT 用に 値を格納 ---------
for (int i = 0; i < arr_item.length; i++) {
csv_get_file_item.add(arr_item[i]);
;
}

csv_get_file_item.add(Send_time_str);
csv_get_file_item.add(saisou_Flg);
//------------ csv_get_file_item に INSERT 用に 値を格納 END -------

/**
* 「樹脂成型課用」 追加
*/
idx = cursor.getColumnIndex("send_col_24");
arr_item[26] = cursor.getString(idx); //***************** 色段取時間

idx = cursor.getColumnIndex("send_col_25");
arr_item[27] = cursor.getString(idx); //***************** 型段取時間

idx = cursor.getColumnIndex("send_col_26");
arr_item[28] = cursor.getString(idx); //***************** 機械コード

/**
* CSV ファイルへ 値を格納
*/
String record = ID_DD + "," + GET_id + "," + arr_item[25] + "," + arr_item[3] + "," + arr_item[4] +
"," + arr_item[5] + "," + arr_item[6] + "," + arr_item[7] + "," + Himoku_Name + "," + Himoku_Bikou +
"," + arr_item[10] + "," + arr_item[11] + "," + arr_item[12] + "," + arr_item[13] + "," + arr_item[14] + "," + arr_item[15] +
"," + arr_item[16] + "," + arr_item[17] + "," + arr_item[18] + "," + arr_item[19] + "," +
sousin_time + "," + kakou_num + "," + saisou_Flg + "," +
tmp_time_01 + "," + tmp_time_02 + "," +
arr_item[26] + "," + arr_item[27] + "," + arr_item[28];
// tmp_time_01 + "," + tmp_time_02;

csv_itme_list.add(record);
// ファイルへ 格納
printWriter.println(record);
printWriter.flush();

} while (cursor.moveToNext());

printWriter.close();

} //------------ END if

cursor.close();

StringBuilder stb = new StringBuilder();
for(int i = 0; i < csv_itme_list.size(); i++) {
stb.append(csv_itme_list.get(i) + "\n");
System.out.println("****** 定期実行タスク ****** csvデータ出力:::" + stb);
}

System.out.println("csv_count_list:::");
for(String a : csv_get_file_item) {
System.out.println(a);
}

System.out.println("****** 定期実行タスク ****** 送信ファイル名:::" + send_csv_file_name);
Log.d("送信ファイル名:::",send_csv_file_name + "*** ファイル送信成功***");

} catch(SQLiteDatabaseLockedException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();

} finally {

if(schedule_db_01 != null) {
schedule_db_01.close();
}
}


/***
* --------------------- ファイル 作成処理 END ------------------------->
*/

/***
* ---------------------------------------- POST 送信処理 Start ------------
*/

String jim = "http://192.168.xxx.xxx/tana_phppost_file/UploadToServer.php"; // 社内 OK *****

/**
*  送信 プロパティ
*/
String uploadURL = jim; //------ 社内

String title = send_csv_file_name;
String uploadFile = getFilesDir() + "/" + send_csv_file_name;

// 1 送信 ok , 0 未送信 , 2 送信エラー
send_log_Stats = "0";

try {
//PostAsyncTaskに渡すパラメータをObject配列に設定
Object[] postParams = new Object[3];
postParams[0] = uploadURL;
postParams[1] = title;
postParams[2] = uploadFile;

//PostAsyncTaskを実行
// new PostAsyncTask(getCallingActivity()).execute(postParams);
new PostAsyncTask_02().execute(postParams);

Log.d("CSVファイルを送信しました。", "*** ****** 定期実行タスク ****** 送信成功***WorkerManager");

// ここで 送信フラグを1に変える アップデート処理
// Send_Flg_ON();

// ログ用 送信スタッツ 
send_log_Stats = "1";

} catch (Exception e) {
e.printStackTrace();

//****** ログ用 送信スタッツ *******
send_log_Stats = "2";
Log.d("送信処理が失敗しました。", " ****** 定期実行タスク ****** :::送信失敗:::WorkerManager");
}
/***
* ---------------------------------------- POST 送信処理 END ------------>
*/

// タスク数 取得 SELECT
Get_Task_Num();

//************* ログ用 に Insert
Send_table_01_log_Insert();


} //------------ Read_Send_File_01 END

 

SendWorker.java

public class SendWorker extends Worker {

public SendWorker(Context context, WorkerParameters params) {
super(context, params);

// worker_test_01 = (Worker_TEST_01) this.getApplicationContext();
}

/**
* doWork 内の 処理を実行
*/
@Override
public Result doWork() {

int count = 1;

//************ 送信 処理 ***************
getInstance().Task_schedule_Send_CSV();
Log.d("TAG", "Tossy Worker 起動中 ゴーゴーゴー");
System.out.println("****** 定期実行タスク ****** 成功:::" + "回数" + count);
count++;
return Result.success();
}

/*
public interface Listener {

}

*/
}