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 {
}
*/
}