فهرست منبع

检验任务下载添加判断逻辑非开始工作时可以被覆盖

zhangxike 5 روز پیش
والد
کامیت
76f89c7024
3فایلهای تغییر یافته به همراه46 افزوده شده و 18 حذف شده
  1. 4 4
      utils/dataProcessor.uts
  2. 13 10
      utils/qcDataProcessor.uts
  3. 29 4
      utils/sqlite.uts

+ 4 - 4
utils/dataProcessor.uts

@@ -669,10 +669,6 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
 			});
 		}
 
-		if (callback != null) {
-			callback();
-		}
-
 		if (finalFailedCount === 0) {
 			let updatedData = " uploadFlag = 1, uploadtime = strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime') "
 			updateData('app_media_info', updatedData, 'productno', productCode).then((res : UTSJSONObject) => {
@@ -680,6 +676,10 @@ export const uploadDataToAPI = async (productCode : string, callback ?: () => vo
 			});
 		}
 
+		if (callback != null) {
+			callback();
+		}
+		
 		return finalFailedCount === 0;
 	} catch (error) {
 		console.error(error);

+ 13 - 10
utils/qcDataProcessor.uts

@@ -218,14 +218,17 @@ export const downloadDataFromAPI = async (gxpk : string, callback ?: () => void)
 		const infoJson = await getLatestTask(gxpk, null);
 		if (infoJson?.['data'] != null) {
 			let info = infoJson?.['data'] as UTSJSONObject ?? {} as UTSJSONObject
-			// let ingNum = parseInt(info?.['pdid'] as string);
+			let photoCount = parseInt(info?.['photoCount'] as string);
+			let keyCount = parseInt(info?.['keyCount'] as string);
+			let recordCount = parseInt(info?.['recordCount'] as string);
+			
 			//覆盖标识位
 			let overwiteFlag = ref(false);
 			// 先检查是否有任务正在执行中
-			// if (info != null && ingNum > 0) {
-			// 	uni.showToast({ title: `当前产品号已有任务在执行中!`, icon: 'error' });
-			// 	return false;
-			// }
+			if (info != null && ( photoCount + keyCount + recordCount)> 0) {
+				uni.showToast({ title: `当前工序码已有任务在执行中!`, icon: 'error' });
+				return false;
+			}
 			// 使用Promise来处理异步流程
 			let deleteDataPromise = new Promise<boolean>((resolve) => {
 				// if (info != null && ingNum == 0) {
@@ -233,7 +236,7 @@ export const downloadDataFromAPI = async (gxpk : string, callback ?: () => void)
 					//可以被覆盖,需要有提示框,给用户确认
 					uni.showModal({
 						title: '系统提示',
-						content: '该工序编号已存在任务是否覆盖掉?',
+						content: '该工序已存在任务是否覆盖掉?',
 						cancelText: '取消',
 						confirmText: '确定',
 						success: function (res) {
@@ -719,10 +722,6 @@ export const uploadDataToAPI = async (gxpk : string, callback ?: () => void) : P
 					});
 				}
 
-				if (callback != null) {
-					callback();
-				}
-
 				if (finalFailedCount > 0) {
 					canContinueFlag = false
 				}
@@ -819,6 +818,10 @@ export const uploadDataToAPI = async (gxpk : string, callback ?: () => void) : P
 					icon: 'error'
 				});
 			}
+			
+			if (callback != null) {
+				callback();
+			}
 		}
 		return true;
 	} catch (error) {

+ 29 - 4
utils/sqlite.uts

@@ -710,10 +710,35 @@ export function selectLatestInfoData (
  ):Promise<UTSJSONObject>
  {
    var sql = `SELECT
- 					m.*
- 				FROM
- 					app_task_info m
-				where gxpk = '${gxpk}'
+					m.*,
+					photoCount as photoCount,
+					keyCount as keyCount,
+					recordCount as recordCount
+				FROM
+				  app_task_info m
+				  LEFT JOIN (
+					SELECT 
+					  pdid,
+					  SUM(CASE WHEN photourl IS NOT NULL and photourl != '' THEN 1 ELSE 0 END) as photoCount
+					FROM app_task_photo 
+					GROUP BY pdid
+				  ) p ON m.pdid = p.pdid
+				  LEFT JOIN (
+					SELECT 
+					  pdid,
+					  SUM(CASE WHEN result in ('合格', '不合格') THEN 1 ELSE 0 END) as keyCount
+					FROM app_task_keyprocess 
+					GROUP BY pdid
+				  ) k ON m.pdid = k.pdid
+				  LEFT JOIN (
+					SELECT 
+					  r.pdid,
+					  SUM(CASE WHEN i.result in ( '合格', '不合格' ) THEN 1 ELSE 0 END) as recordCount
+					FROM app_task_record r
+					LEFT JOIN app_task_record_item i ON r.sxid = i.psxid
+					GROUP BY r.pdid
+				  ) i ON m.pdid = i.pdid
+				where m.gxpk = '${gxpk}'  
  				ORDER BY
  					m.pdid DESC
 				LIMIT 1`;