|
|
@@ -1,5 +1,5 @@
|
|
|
import { getToken, getTokenFromApi } from './auth'
|
|
|
-import { saveMediaInfo, saveMediaRecord, getLatestRecord, removeInfoAndRecord, getJoinList, updateData } from '@/api/work'
|
|
|
+import { saveMediaInfo, saveMediaRecord, getLatestRecord, removeInfoAndRecord, getList, updateData } from '@/api/work'
|
|
|
import { globalConfig } from '@/config'
|
|
|
|
|
|
|
|
|
@@ -52,6 +52,7 @@ export type PhotoFilesExample = {
|
|
|
}
|
|
|
|
|
|
export type UploadImg = {
|
|
|
+ sxid : string,
|
|
|
pk : string,
|
|
|
path : string
|
|
|
}
|
|
|
@@ -399,13 +400,14 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
|
|
|
}
|
|
|
|
|
|
// 获取数据
|
|
|
- const res = await getJoinList('app_media_record as r', 'app_media_info as i', 'r.*,i.productno, i.uploadFlag', 'r.pid=i.pdid', 'i.productno', productCode, null);
|
|
|
+ const res = await getList('app_media_record', 'productno', productCode, 'uploadFlag', '0', null);
|
|
|
let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>();
|
|
|
console.log(dataList);
|
|
|
|
|
|
+
|
|
|
if (dataList == null || dataList.length === 0) {
|
|
|
uni.hideLoading();
|
|
|
- uni.showToast({ title: '未获取到数据', icon: 'error' });
|
|
|
+ uni.showToast({ title: '未获取到需要上传的数据', icon: 'error' });
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
@@ -432,13 +434,14 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
|
|
|
showProgress(processStep, '准备上传');
|
|
|
//收集图片信息
|
|
|
let urlpdtStr = record.getString('urlpdt');
|
|
|
+ let sxid = record.getString('sxid');
|
|
|
let pk = record.getString('pk');
|
|
|
let urlArr = urlpdtStr?.split(",") ?? [];
|
|
|
|
|
|
for (let j = 0; j < urlArr.length; j++) {
|
|
|
let path = urlArr[j];
|
|
|
const fullFilePath = `${uni.env.USER_DATA_PATH}` + path;
|
|
|
- allImagesToUpload.push({ pk: pk ?? '', path: fullFilePath });
|
|
|
+ allImagesToUpload.push({sxid: sxid ?? '', pk: pk ?? '', path: fullFilePath });
|
|
|
}
|
|
|
processStep++;
|
|
|
}
|
|
|
@@ -460,8 +463,8 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
|
|
|
uni.showLoading({ title: `正在上传图片 (0/${totalImages})` });
|
|
|
|
|
|
for (let i = 0; i < allImagesToUpload.length; i++) {
|
|
|
- const { pk, path } = allImagesToUpload[i];
|
|
|
- console.log(`开始上传文件: ${path}, 索引: ${i}, apiToken: ${apiToken}, billid: ${pk}`);
|
|
|
+ const { sxid, pk, path } = allImagesToUpload[i];
|
|
|
+ console.log(`开始上传文件: ${path}, 索引: ${i}, apiToken: ${apiToken}, billid: ${pk}, sxid: ${sxid}`);
|
|
|
|
|
|
try {
|
|
|
// 串行执行,等待前一个图片上传完成再处理下一张
|
|
|
@@ -486,6 +489,11 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
|
|
|
console.log(resData)
|
|
|
if (resData?.['_id'] != null && resData?.['_id'] != '') {
|
|
|
successCount++;
|
|
|
+ //更新数据库记录
|
|
|
+ let updatedData = " uploadflag = 1 "
|
|
|
+ updateData('app_media_record', updatedData, 'sxid', sxid).then((res : UTSJSONObject) => {
|
|
|
+ console.log(`更新图片记录的上传标识 ${sxid}`)
|
|
|
+ });
|
|
|
// 等待一小段时间确保文件完全上传并处理完成
|
|
|
setTimeout(() => {
|
|
|
resolve();
|
|
|
@@ -516,17 +524,17 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
|
|
|
uni.showLoading({ title: `正在上传图片 (${i + 1}/${totalImages})` });
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
- uploadTask.onProgressUpdate((res) => {
|
|
|
- console.log('上传进度' + res.progress);
|
|
|
- console.log('已经上传的数据长度' + res.totalBytesSent);
|
|
|
- console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend);
|
|
|
- });
|
|
|
+ //调试时开启
|
|
|
+ // uploadTask.onProgressUpdate((res) => {
|
|
|
+ // console.log('上传进度' + res.progress);
|
|
|
+ // console.log('已经上传的数据长度' + res.totalBytesSent);
|
|
|
+ // console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend);
|
|
|
+ // });
|
|
|
});
|
|
|
} catch (error) {
|
|
|
// 捕获上传失败的错误,将失败的图片信息添加到错误数组
|
|
|
console.log(`处理第${i + 1}张图片时出错:`, error);
|
|
|
- failedImages.push({ pk, path });
|
|
|
+ failedImages.push({ sxid, pk, path });
|
|
|
// 出错后继续处理下一张图片
|
|
|
}
|
|
|
|
|
|
@@ -560,8 +568,8 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
|
|
|
|
|
|
// 串行上传失败的图片
|
|
|
for (let i = 0; i < retryImages.length; i++) {
|
|
|
- const { pk, path } = retryImages[i];
|
|
|
- console.log(`重试上传文件: ${path}, 索引: ${i}, 重试次数: ${retryCount}, apiToken: ${apiToken}, billid: ${pk}`);
|
|
|
+ const { sxid, pk, path } = retryImages[i];
|
|
|
+ console.log(`重试上传文件: ${path}, 索引: ${i}, 重试次数: ${retryCount}, apiToken: ${apiToken}, billid: ${pk}, sxid: ${sxid}`);
|
|
|
console.log(`重试上传路径:${globalConfig.uploadURL}`)
|
|
|
|
|
|
await new Promise<void>((resolve) => {
|
|
|
@@ -581,18 +589,23 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
|
|
|
const resData = JSON.parse(uploadRes.data) as UTSJSONObject;
|
|
|
if (resData?.['_id'] != null && resData?.['_id'] != '') {
|
|
|
currentSuccessCount++;
|
|
|
+ //更新数据库
|
|
|
+ let updatedData = " uploadflag = 1 "
|
|
|
+ updateData('app_media_record', updatedData, 'sxid', sxid).then((res : UTSJSONObject) => {
|
|
|
+ console.log(`更新图片记录的上传标识 ${sxid}`)
|
|
|
+ });
|
|
|
} else {
|
|
|
- currentFailedImages.push({ pk, path });
|
|
|
+ currentFailedImages.push({ sxid, pk, path });
|
|
|
}
|
|
|
} else {
|
|
|
- currentFailedImages.push({ pk, path });
|
|
|
+ currentFailedImages.push({ sxid, pk, path });
|
|
|
}
|
|
|
console.log(`重试上传完成,当前成功: ${currentSuccessCount}, 当前失败: ${currentFailedImages.length}`);
|
|
|
resolve();
|
|
|
},
|
|
|
fail: (err) => {
|
|
|
console.error(`重试文件${path}上传失败`, err);
|
|
|
- currentFailedImages.push({ pk, path });
|
|
|
+ currentFailedImages.push({sxid, pk, path });
|
|
|
resolve();
|
|
|
},
|
|
|
complete: () => {
|