Commit 56511aac by Kang Donghun

#73114 作業同期

parent 36fd7757
......@@ -40,7 +40,8 @@ public class MasterDataLogic extends AbstractLogic {
// Map に保存されたデータをJSONに変換する。
for (Map.Entry<String, String> entry : masterDataMap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
// 値は巨大になり得るためキーのみ(デバッグ時は必要に応じてレベル調整)
Logger.d(TAG, "masterData key=" + entry.getKey());
try {
createMasterDataJson(entry.getKey(), entry.getValue());
} catch (IOException e) {
......
......@@ -13,9 +13,11 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import jp.agentec.abook.abv.bl.acms.client.AcmsClient;
......@@ -108,20 +110,25 @@ public class OperationLogic extends AbstractLogic {
*/
private void retrieveServerOperation() throws AcmsException, NetworkDisconnectedException {
List<OperationDto> localOperations = mOperationDao.getAllOperation();
Map<Long, OperationDto> localByOperationId = new HashMap<Long, OperationDto>();
for (OperationDto local : localOperations) {
localByOperationId.put(local.operationId, local);
}
AcmsParameters param = new AcmsParameters(cache.getMemberInfo().sid);
OperationListJSON json = AcmsClient.getInstance(cache.getUrlPath(), networkAdapter).getOperationList(param);
List<OperationDto> serverOperations = json.operationList;
Set<Long> serverOperationIds = new HashSet<Long>();
for (OperationDto serverOperationDto : serverOperations) {
serverOperationIds.add(serverOperationDto.operationId);
// 登録フラグ
boolean insertFlg = true;
for (OperationDto localProjcetDto : localOperations) {
if (serverOperationDto.operationId.equals(localProjcetDto.operationId)) {
OperationDto localProjcetDto = localByOperationId.get(serverOperationDto.operationId);
if (localProjcetDto != null) {
//update
serverOperationDto.needSyncFlg = serverOperationDto.equalsLastEdit(localProjcetDto) ? localProjcetDto.needSyncFlg : true;
serverOperationDto.operationLastSyncDate = localProjcetDto.operationLastSyncDate;
List<Long> localOperationContentIds = mOperationContentDao.getContentIds(serverOperationDto.operationId);
boolean operationContentFlg = false;
for (OperationContentDto operationContentDto : serverOperationDto.operationContentDtoList) {
if (localOperationContentIds == null || localOperationContentIds.size() == 0) {
// insert
......@@ -176,8 +183,6 @@ public class OperationLogic extends AbstractLogic {
mOperationDao.update(serverOperationDto);
// 更新することで登録フラグをfalseにセット
insertFlg = false;
break;
}
}
// 更新されたら以下の処理は行わない
......@@ -221,14 +226,7 @@ public class OperationLogic extends AbstractLogic {
List<OperationDto> deleteListDtoArray = new ArrayList<OperationDto>();
for (OperationDto localProjcetDto : localOperations) {
boolean deleteFlg = true;
for (OperationDto serverOperationDto : serverOperations) {
if (localProjcetDto.operationId.equals(serverOperationDto.operationId)) {
deleteFlg = false;
break;
}
}
if (deleteFlg) {
if (!serverOperationIds.contains(localProjcetDto.operationId)) {
deleteListDtoArray.add(localProjcetDto);
}
}
......
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