Commit 91109368 by Kim Jinsung

Merge branch 'features/1.0.500_#33721' into 'feature/1.1.0'

Features/1.0.500 #33721

See merge request !18
parents 14959da0 3caba0b7
...@@ -3,6 +3,7 @@ package jp.agentec.abook.abv.bl.acms.client.json; ...@@ -3,6 +3,7 @@ package jp.agentec.abook.abv.bl.acms.client.json;
import jp.agentec.abook.abv.bl.acms.client.AcmsClient; import jp.agentec.abook.abv.bl.acms.client.AcmsClient;
import jp.agentec.abook.abv.bl.common.exception.AcmsException; import jp.agentec.abook.abv.bl.common.exception.AcmsException;
import jp.agentec.abook.abv.bl.common.exception.JSONValidationException; import jp.agentec.abook.abv.bl.common.exception.JSONValidationException;
import jp.agentec.abook.abv.bl.common.util.JsonUtil;
import org.json.adf.JSONArray; import org.json.adf.JSONArray;
import org.json.adf.JSONObject; import org.json.adf.JSONObject;
...@@ -26,15 +27,12 @@ public class ApertureMasterDataJSON extends AcmsCommonJSON { ...@@ -26,15 +27,12 @@ public class ApertureMasterDataJSON extends AcmsCommonJSON {
protected void parse(JSONObject json) throws JSONValidationException { protected void parse(JSONObject json) throws JSONValidationException {
// 絞り検索の日付を取得 // 絞り検索の日付を取得
if(json.has(apertureLastEditDate)) { if(json.has(apertureLastEditDate)) {
lastEditDate = json.getString(apertureLastEditDate); this.lastEditDate = json.getString(apertureLastEditDate);
} }
// 絞り検索のデータを取得 // 絞り検索のデータを取得
if (json.has(ApertureData)) { if (json.has(ApertureData)) {
JSONArray apertureList = json.getJSONArray(ApertureData); this.apertureData = JsonUtil.getJSONObject(json, ApertureData);
for (int i = 0; i < apertureList.length(); i++) {
apertureData = apertureList.getJSONObject(i);
}
} }
} }
} }
...@@ -5,8 +5,12 @@ package jp.agentec.abook.abv.bl.acms.client.parameters; ...@@ -5,8 +5,12 @@ package jp.agentec.abook.abv.bl.acms.client.parameters;
*/ */
public class GetApertureMasterDataParameters extends AcmsParameters { public class GetApertureMasterDataParameters extends AcmsParameters {
private String lastEdit;
public GetApertureMasterDataParameters(String sid) { public GetApertureMasterDataParameters(String sid, String lastFetchDate) {
super(sid); super(sid);
this.lastEdit = lastFetchDate;
} }
public String getLastEdit() { return this.lastEdit; }
} }
\ No newline at end of file
...@@ -164,11 +164,8 @@ public class ContentRefresher { ...@@ -164,11 +164,8 @@ public class ContentRefresher {
categoryLogic.initializeCategories(); // カテゴリ設定 categoryLogic.initializeCategories(); // カテゴリ設定
// 絞り検索マスタデータの最新更新された時のFetchDateを一時に保存する。 // 絞り検索マスタデータの最新更新された時のFetchDateを一時に保存する。
Logger.d(TAG, "before fetchDate : " + ABVDataCache.getInstance().getTempApertureMasterDataFetchDate());
// CMSでメンテナンスされる絞り検索マスタデータをアプリから取得できるようにJSONファイルを生成する。 // CMSでメンテナンスされる絞り検索マスタデータをアプリから取得できるようにJSONファイルを生成する。
apertureMasterDataLogic.initializeApertureMasterData(ABVDataCache.getInstance().getTempApertureMasterDataFetchDate()); apertureMasterDataLogic.initializeApertureMasterData();
Logger.d(TAG, "after fetchDate : " + ABVDataCache.getInstance().getTempApertureMasterDataFetchDate());
if (interrupt) { // この時点で停止要求が来た場合先には進まない。(ServiceOption/Group/Categoryの更新は1セットで行う(トランザクションはそれぞれ別)) if (interrupt) { // この時点で停止要求が来た場合先には進まない。(ServiceOption/Group/Categoryの更新は1セットで行う(トランザクションはそれぞれ別))
Logger.d(TAG, "stop refresh worker before content update."); Logger.d(TAG, "stop refresh worker before content update.");
...@@ -344,7 +341,6 @@ public class ContentRefresher { ...@@ -344,7 +341,6 @@ public class ContentRefresher {
try { try {
// サーバー通信でプロジェクト取得 // サーバー通信でプロジェクト取得
operationLogic.initializeOperations(); operationLogic.initializeOperations();
} catch (Exception e1) { } catch (Exception e1) {
Logger.e(TAG, e1); Logger.e(TAG, e1);
e = e1; e = e1;
......
package jp.agentec.abook.abv.bl.logic; package jp.agentec.abook.abv.bl.logic;
import org.json.adf.JSONException;
import org.json.adf.JSONObject; import org.json.adf.JSONObject;
import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Date; import java.util.Date;
import java.util.Iterator;
import jp.agentec.abook.abv.bl.acms.client.AcmsClient; import jp.agentec.abook.abv.bl.acms.client.AcmsClient;
import jp.agentec.abook.abv.bl.acms.client.json.ApertureMasterDataJSON; import jp.agentec.abook.abv.bl.acms.client.json.ApertureMasterDataJSON;
import jp.agentec.abook.abv.bl.acms.client.parameters.GetApertureMasterDataParameters; import jp.agentec.abook.abv.bl.acms.client.parameters.GetApertureMasterDataParameters;
import jp.agentec.abook.abv.bl.common.ABVEnvironment; import jp.agentec.abook.abv.bl.common.ABVEnvironment;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.bl.common.util.JsonUtil;
import jp.agentec.adf.util.DateTimeFormat; import jp.agentec.adf.util.DateTimeFormat;
import jp.agentec.adf.util.DateTimeUtil; import jp.agentec.adf.util.DateTimeUtil;
import jp.agentec.adf.util.FileUtil; import jp.agentec.adf.util.FileUtil;
public class ApertureMasterDataLogic extends AbstractLogic { public class ApertureMasterDataLogic extends AbstractLogic {
private static final java.lang.String TAG = "RefineMasterDataLogic"; private static final java.lang.String TAG = "RefineMasterDataLogic";
private static final String ApertureData = "apertureData";
/** /**
* グループ情報をサーバから受信し、ローカルに保存します。既存のデータは上書きされます。また、サーバにないグループがローカルにある場合、そのグループは削除されます。 * グループ情報をサーバから受信し、ローカルに保存します。既存のデータは上書きされます。
* また、サーバにないグループがローカルにある場合、そのグループは削除されます。
* 絞り検索マスタデータ情報をサーバから受信し、ローカルにJSONで保存する。 * 絞り検索マスタデータ情報をサーバから受信し、ローカルにJSONで保存する。
* 日付を比べてサーバーからローカルのデータより最新のデータを受信した場合、受信した情報を保存する。 * 日付を比べてサーバーからローカルのデータより最新のデータを受信した場合、受信した情報を保存する。
* ローカルの日付はない場合、受信した情報を保存する。 * ローカルの日付はない場合、受信した情報を保存する。
* @param lastFetchDateString
*/ */
public void initializeApertureMasterData(String lastFetchDateString) { public void initializeApertureMasterData() {
try { try {
GetApertureMasterDataParameters param = new GetApertureMasterDataParameters(cache.getMemberInfo().sid); //端末機の日付
String lastFetchDateString = cache.getTempApertureMasterDataFetchDate();
GetApertureMasterDataParameters param = new GetApertureMasterDataParameters(cache.getMemberInfo().sid, lastFetchDateString);
//サーバーから絞り検索マスタデータを取得 //サーバーから絞り検索マスタデータを取得
ApertureMasterDataJSON masterDataJson = AcmsClient.getInstance(cache.getUrlPath(), networkAdapter).getApertureMasterData(param); ApertureMasterDataJSON masterDataJson = AcmsClient.getInstance(cache.getUrlPath(), networkAdapter).getApertureMasterData(param);
//サーバーデータの日付 //サーバーデータの日付
String lastEditDateString = masterDataJson.lastEditDate; String lastEditDateString = masterDataJson.lastEditDate;
if(lastFetchDateString != null) {
Date lastFetchDate = DateTimeUtil.toDate(lastFetchDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen); if (lastFetchDateString == null){
Date lastEditDate = DateTimeUtil.toDate(lastEditDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen); //最初のマスタデータダウンロードの場合
if (lastFetchDate == null || lastEditDate.after(lastFetchDate)) { if (masterDataJson.apertureData != null && masterDataJson.apertureData.keys().hasNext()) {
createApertureMasterDataJson(masterDataJson.apertureData); createApertureMasterDataJson(masterDataJson.apertureData);
cache.setTempApertureMasterDataFetchDate(lastEditDateString); cache.setTempApertureMasterDataFetchDate(lastEditDateString);
} }
} }
else{ else if(lastEditDateString != null){
//マスタデータがある場合、サーバーから修正事項があるセットだけ上書きする
Date lastFetchDate = DateTimeUtil.toDate(lastFetchDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen);
Date lastEditDate = DateTimeUtil.toDate(lastEditDateString, "UTC", DateTimeFormat.yyyyMMddHHmmss_hyphen);
if (lastEditDate != null && lastEditDate.after(lastFetchDate)) {
if (masterDataJson.apertureData != null && masterDataJson.apertureData.keys().hasNext()) {
createApertureMasterDataJson(masterDataJson.apertureData); createApertureMasterDataJson(masterDataJson.apertureData);
// updateApertureMasterDataJson(masterDataJson.apertureData);
cache.setTempApertureMasterDataFetchDate(lastEditDateString); cache.setTempApertureMasterDataFetchDate(lastEditDateString);
} }
}
}
} catch (Exception e) { } catch (Exception e) {
Logger.e(TAG, "apertureMasterDataSend error : ", e); Logger.e(TAG, "apertureMasterDataSend error : ", e);
} }
...@@ -51,12 +72,12 @@ public class ApertureMasterDataLogic extends AbstractLogic { ...@@ -51,12 +72,12 @@ public class ApertureMasterDataLogic extends AbstractLogic {
/** /**
* apertureMaster.jsonファイル作成 * apertureMaster.jsonファイル作成
* @param json * @param masterDataJson
* @throws IOException * @throws IOException
*/ */
private void createApertureMasterDataJson(JSONObject json) throws IOException { private void createApertureMasterDataJson(JSONObject masterDataJson) throws IOException {
// マスタデータの保存されるパス // マスタデータの保存されるパス
String masterDataJsonPath = ABVEnvironment.getInstance().getMasterFilePath() + File.separator + ABVEnvironment.getInstance().ApertureMasterDataFileName; String masterDataJsonPath = ABVEnvironment.getInstance().getMasterFilePath() + File.separator + ABVEnvironment.getInstance().ApertureMasterDataFileName;
FileUtil.createFile(masterDataJsonPath, json.toString()); FileUtil.createFile(masterDataJsonPath, masterDataJson.toString());
} }
} }
...@@ -1349,8 +1349,12 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -1349,8 +1349,12 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
//添付した写真はTempパスにある。 //添付した写真はTempパスにある。
//保存されてある写真はoperationフォルダにある。 //保存されてある写真はoperationフォルダにある。
//保存されてある写真を修正する場合、ファイルをTempにコピーした後に編集する。 //保存されてある写真を修正する場合、ファイルをTempにコピーした後に編集する。
final String tempImagePath = ABVEnvironment.getInstance().getTempFilePath(getContentId(), mTaskKey, mAttachedFileName); //添付ファイルのTempパス final String taskKey = mTaskKey;
String savedImagePath = ABVEnvironment.getInstance().getOperationTaskReportLevelDirPath(mOperationId, mTaskKey,0) + "/" + mAttachedFileName; //保存された写真のパス final String attachedFilename = mAttachedFileName;
final String cmd = mCmd;
Long operationId = mOperationId;
final String tempImagePath = ABVEnvironment.getInstance().getTempFilePath(getContentId(), taskKey, attachedFilename); //添付ファイルのTempパス
String savedImagePath = ABVEnvironment.getInstance().getOperationTaskReportLevelDirPath(operationId, taskKey,0) + "/" + attachedFilename; //保存された写真のパス
//保存されたイメージがあり、編集したいイメージのパスがTempがない場合、ファイルをTempにコピー //保存されたイメージがあり、編集したいイメージのパスがTempがない場合、ファイルをTempにコピー
// パスがTempと一緒の場合、イメージが一回以上修正され、上書きしない。 // パスがTempと一緒の場合、イメージが一回以上修正され、上書きしない。
if(FileUtil.exists(savedImagePath) && !mEditFilePath.equals(tempImagePath)){ if(FileUtil.exists(savedImagePath) && !mEditFilePath.equals(tempImagePath)){
...@@ -1370,8 +1374,8 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity { ...@@ -1370,8 +1374,8 @@ public abstract class ABVContentViewActivity extends ABVAuthenticatedActivity {
@Override @Override
public void onDismiss(DialogInterface dialogInterface) { public void onDismiss(DialogInterface dialogInterface) {
//Web Cacheが更新されて編集画面のダイアローグ閉じた後、JavascriptにてImgタグを再生成してThumbnailを更新 //Web Cacheが更新されて編集画面のダイアローグ閉じた後、JavascriptにてImgタグを再生成してThumbnailを更新
webViewLoadUrl(String.format("javascript:document.getElementById('reportForm').contentWindow.changeThumbnailTagForAnd('%s','%s')", mAttachedFileName, tempImagePath)); webViewLoadUrl(String.format("javascript:document.getElementById('reportForm').contentWindow.changeThumbnailTagForAnd('%s','%s')", attachedFilename, tempImagePath));
afterABookCheckApi(mCmd, mTaskKey, 0, "", null); afterABookCheckApi(cmd, taskKey, 0, "", null);
mPhotoEditDialog = null; mPhotoEditDialog = null;
setFixedOrientation(false); ////回転可能 setFixedOrientation(false); ////回転可能
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment