Browse Source

同步进行中不可以再次点击同步

master
白凤吉 4 months ago
parent
commit
9c6237586b
  1. 4
      app/build.gradle
  2. 8
      app/src/main/assets/web/asset-manifest.json
  3. 2
      app/src/main/assets/web/index.html
  4. 3
      app/src/main/assets/web/static/css/main.4ee465da.css
  5. 3
      app/src/main/assets/web/static/css/main.d6377741.css
  6. 2
      app/src/main/assets/web/static/js/main.0c770ba9.js
  7. 2
      app/src/main/assets/web/static/js/main.bbb767b6.js
  8. 0
      app/src/main/assets/web/static/js/main.bbb767b6.js.LICENSE.txt
  9. 4
      app/src/main/java/com/iflytop/profilometer/MainActivity.java
  10. 21
      app/src/main/java/com/iflytop/profilometer/api/basic/BasicApi.java
  11. 11
      app/src/main/java/com/iflytop/profilometer/core/sync/UploadManager.java

4
app/build.gradle

@ -14,9 +14,9 @@ android {
minSdk 26
targetSdk 35
//
versionCode 8
versionCode 10
//
versionName "1.1.8"
versionName "1.1.10"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

8
app/src/main/assets/web/asset-manifest.json

@ -1,7 +1,7 @@
{
"files": {
"main.css": "./static/css/main.d6377741.css",
"main.js": "./static/js/main.0c770ba9.js",
"main.css": "./static/css/main.4ee465da.css",
"main.js": "./static/js/main.bbb767b6.js",
"static/js/206.d71bd05f.chunk.js": "./static/js/206.d71bd05f.chunk.js",
"static/media/icon_tab3_u.svg": "./static/media/icon_tab3_u.6d18cbd7c4dc6a54f745fdfcc7716050.svg",
"static/media/icon_tab3_s.svg": "./static/media/icon_tab3_s.b0a9cbf5ecee59829c9de63a2e9de169.svg",
@ -21,7 +21,7 @@
"static/media/icon_check_s_u.svg": "./static/media/icon_check_s_u.2c5e20bec088338dc1cb2161b5cba37d.svg"
},
"entrypoints": [
"static/css/main.d6377741.css",
"static/js/main.0c770ba9.js"
"static/css/main.4ee465da.css",
"static/js/main.bbb767b6.js"
]
}

2
app/src/main/assets/web/index.html

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/><title>廓形仪</title><script defer="defer" src="./static/js/main.0c770ba9.js"></script><link href="./static/css/main.d6377741.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>function setupWebViewJavascriptBridge(e){if(window.WebViewJavascriptBridge)return e(WebViewJavascriptBridge);if(/android/i.test(navigator.userAgent))document.addEventListener("WebViewJavascriptBridgeReady",(function(){e(WebViewJavascriptBridge)}),!1);else{if(window.WVJBCallbacks)return window.WVJBCallbacks.push(e);window.WVJBCallbacks=[e];var i=document.createElement("iframe");i.style.display="none",i.src="https://__bridge_loaded__",document.documentElement.appendChild(i),setTimeout((function(){document.documentElement.removeChild(i)}),0)}}setupWebViewJavascriptBridge((function(e){window.bridge=e}));var SyncBridgeJS={call:function(e,i){return prompt("sync/syncBridge/"+e,i)}}</script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/><title>廓形仪</title><script defer="defer" src="./static/js/main.bbb767b6.js"></script><link href="./static/css/main.4ee465da.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>function setupWebViewJavascriptBridge(e){if(window.WebViewJavascriptBridge)return e(WebViewJavascriptBridge);if(/android/i.test(navigator.userAgent))document.addEventListener("WebViewJavascriptBridgeReady",(function(){e(WebViewJavascriptBridge)}),!1);else{if(window.WVJBCallbacks)return window.WVJBCallbacks.push(e);window.WVJBCallbacks=[e];var i=document.createElement("iframe");i.style.display="none",i.src="https://__bridge_loaded__",document.documentElement.appendChild(i),setTimeout((function(){document.documentElement.removeChild(i)}),0)}}setupWebViewJavascriptBridge((function(e){window.bridge=e}));var SyncBridgeJS={call:function(e,i){return prompt("sync/syncBridge/"+e,i)}}</script></body></html>

3
app/src/main/assets/web/static/css/main.4ee465da.css
File diff suppressed because it is too large
View File

3
app/src/main/assets/web/static/css/main.d6377741.css
File diff suppressed because it is too large
View File

2
app/src/main/assets/web/static/js/main.0c770ba9.js
File diff suppressed because it is too large
View File

2
app/src/main/assets/web/static/js/main.bbb767b6.js
File diff suppressed because it is too large
View File

0
app/src/main/assets/web/static/js/main.0c770ba9.js.LICENSE.txt → app/src/main/assets/web/static/js/main.bbb767b6.js.LICENSE.txt

4
app/src/main/java/com/iflytop/profilometer/MainActivity.java

@ -61,8 +61,8 @@ public class MainActivity extends AppCompatActivity {
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
// webView.loadUrl("http://127.0.0.1:8080/");
webView.loadUrl("http://192.168.1.114:3000/");
webView.loadUrl("http://127.0.0.1:8080/");
// webView.loadUrl("http://192.168.1.114:3000/");
OnBackPressedCallback callback = new OnBackPressedCallback(true) {
@Override

21
app/src/main/java/com/iflytop/profilometer/api/basic/BasicApi.java

@ -30,6 +30,8 @@ import cn.hutool.json.JSONUtil;
public class BasicApi {
private final Context context;
private volatile boolean isSync = false;
public BasicApi(Context context) {
this.context = context.getApplicationContext();
}
@ -74,16 +76,21 @@ public class BasicApi {
* 科天健 更新基础数据
*/
public String ktjUpdate() {
if (isSync) {
return Result.success();
}
isSync = true;
CompletableFuture.supplyAsync(() -> {
int progress = 0;
UpdateKtjWebsocketManager.getInstance().send(progress, false, false, "开始同步基础数据");
SystemConfigDao systemConfigDao = new SystemConfigDao(context);
BaseDataDao baseDataDao = new BaseDataDao(context);
try {
UpdateKtjWebsocketManager.getInstance().send(progress, false, false, "开始同步基础数据");
SystemConfigDao systemConfigDao = new SystemConfigDao(context);
BaseDataDao baseDataDao = new BaseDataDao(context);
SystemConfig serverConfig = systemConfigDao.getSystemConfigByKey(SystemConfigType.SERVER);
String serverPath = serverConfig.getConfigValue();
SystemConfig serverConfig = systemConfigDao.getSystemConfigByKey(SystemConfigType.SERVER);
String serverPath = serverConfig.getConfigValue();
try {
//1更新字典数据
String dictUrl = "/KTJData/services/dictionaryListService";
String dictJson = HttpUtil.getInstance().get(serverPath + dictUrl);
@ -175,6 +182,8 @@ public class BasicApi {
} catch (Exception e) {
UpdateKtjWebsocketManager.getInstance().send(progress, true, true, "数据更新失败" + e.getMessage());
return false;
} finally {
isSync = false;
}
return true;
});

11
app/src/main/java/com/iflytop/profilometer/core/sync/UploadManager.java

@ -66,6 +66,13 @@ public class UploadManager {
Map<String, Object> itemDataMap = new HashMap<>();
itemDataMap.put("id", uploadId);
itemDataMap.put("success", result);
if(!result){
SyncTaskDao syncTaskDao = new SyncTaskDao(ProfilometerApplication.getContext());
SyncTask syncTask = syncTaskDao.getSyncTaskById(uploadId);
if(syncTask != null){
itemDataMap.put("errorMsg", syncTask.getErrorMsg());
}
}
itemMap.put("data", itemDataMap);
WebSocketManager.send(JSONUtil.toJsonStr(itemMap));
@ -219,18 +226,22 @@ public class UploadManager {
JSONObject resultJsonObject = JSONUtil.parseObj(resultStr);
if (resultJsonObject.getBool("success")) {//成功
profileRecordDescription.setSyncStatus(SyncStatus.finish);
syncTask.setSyncStatus(SyncStatus.finish);
profileRecordDao.updateProfileRecord(profileRecordDescription);
syncTaskDao.updateSyncTask(syncTask);
return true;
} else {
if (resultJsonObject.getInt("code") == 501) {//成功
profileRecordDescription.setSyncStatus(SyncStatus.finish);
syncTask.setSyncStatus(SyncStatus.finish);
profileRecordDao.updateProfileRecord(profileRecordDescription);
syncTaskDao.updateSyncTask(syncTask);
return true;
} else {//失败
fail++;
profileRecordDescription.setSyncStatus(SyncStatus.fail);
syncTask.setSyncStatus(SyncStatus.fail);
syncTask.setErrorMsg(resultJsonObject.getStr("message"));
profileRecordDao.updateProfileRecord(profileRecordDescription);
syncTaskDao.updateSyncTask(syncTask);
return false;

Loading…
Cancel
Save