// #ifdef APP-ANDROID import { selectTableData, insertTableData, updateTableData, selectJoinTableData, selectRecordData, selectRecordInfo, selectLatestInfoData, deleteTableData } from '@/utils/sqlite' // #endif export type Download = { pdid : number, workorder : string, invname : string, productno : string, graphid : string, cardno : string, processno : string, ver : string, updatetime : string, progress : string, status : number } export type Record = { sxid : number, senum : number, photoitem : string, productno : string, part : string, descb : string, date : string, partno : string, num : number, status : number, urlspl : string[], imgname : string[], urlpdt : string[] } export type TaskProcess = { id : number name : string num : number step : number status : number } export type JoinRecord = { sxid : number, senum : number, photoitem : string, productno : string, part : string, descb : string, date : string, partno : string, num : number, status : number, urlspl : string imgname : string, urlpdt : string, pid : number, workorder : string, invname : string } export type RecordCalculate = { photoitem : string, pid : number, step : number, total : number, status : number } export function offlineData(data : UTSJSONObject) : Promise { return new Promise((resolve, reject) => { let result = JSON.parseObject(JSON.stringify(data)) as UTSJSONObject resolve(result) }); } export const statusDict = { '1': '未执行', '2': '执行中', '3': '已执行', '4': '执行错误', '5': '已取消' } export const recordStatusDict = { '1': '未拍照', '2': '拍照中', '3': '拍照完成', '4': '检验不清晰', '5': '拍照取消' } export async function getList(tableName : string, condition ?: string | null, value ?: string | null, condition2 ?: string | null, value2 ?: string | null, initData ?: UTSJSONObject | null) : Promise { // #ifdef APP-ANDROID const result = await selectTableData(tableName, condition, value, condition2, value2); console.log(result); return result; // #endif // #ifdef H5 return offlineData(initData) // #endif } export async function getJoinList(dbTable : string, joinTable : string, labels : string, joinCondition : string, lname ?: string, lvalue ?: string, others ?: string) : Promise { // #ifdef APP-ANDROID const result = await selectJoinTableData(dbTable, joinTable, labels, joinCondition, lname, lvalue, others); console.log(result); return result; // #endif } export async function updateData(tableName : string, data : string, lname ?: string, lvalue ?: string) : Promise { // #ifdef APP-ANDROID const result = await updateTableData(tableName, data, lname, lvalue); console.log(result); return result; // #endif } export async function getRecordCalculate(tableName : string, value ?: string | null, initData ?: UTSJSONObject | null) : Promise { // #ifdef APP-ANDROID const result = await selectRecordData(tableName, value); console.log(result); return result; // #endif // #ifdef H5 return offlineData(initData) // #endif } export async function getRecordInfoList(initData ?: UTSJSONObject | null) : Promise { // #ifdef APP-ANDROID const result = await selectRecordInfo(); console.log(result); return result; // #endif // #ifdef H5 return offlineData(initData) // #endif } /** * 保存媒体信息数据到数据库 * @param data MediaInfoData类型的数据 * @returns Promise 保存结果 */ export async function saveMediaInfo(data ?: UTSJSONObject | null) : Promise { // #ifdef APP-ANDROID // 表名 const tableName = 'app_media_info'; // 构造插入的数据字符串,注意数据库字段名和类型 const values = `'${data?.getString('workorder') ?? ''}','${data?.getString('invname') ?? ''}','${data?.getString('productcode') ?? ''}','${data?.getString('cardno') ?? ''}','${data?.getString('model') ?? ''}','${data?.getString('graphid') ?? ''}','${data?.getString('ver') ?? ''}','${data?.getString('phase') ?? ''}','${data?.getString('processno') ?? ''}','${data?.getString('progress') ?? ''}',${data?.getNumber('status') ?? 1},'${data?.getString('createtime') ?? ''}',${data?.getNumber('createuser') ?? 0},'${data?.getString('updatetime') ?? ''}',${data?.getNumber('updateuser') ?? 0}`; // 构造字段名字符串 const fields = 'workorder,invname,productno,cardno,model,graphid,ver,phase,processno,progress,status,createtime,createuser,updatetime,updateuser'; try { // 调用sqlite的插入方法 const result = await insertTableData(tableName, values, fields); console.log('保存app_media_info成功:', result); return result; } catch (error) { console.error('保存app_media_info失败:', error); return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject; } // #endif // #ifdef H5 return offlineData({ success: true, data: [] } as UTSJSONObject); // #endif } /** * 保存媒体信息数据到数据库 * @param data saveMediaRecord类型的数据 * @returns Promise 保存结果 */ export async function saveMediaRecord(values : string) : Promise { // #ifdef APP-ANDROID // 表名 const tableName = 'app_media_record'; // 构造字段名字符串 const fields = 'senum,photoitem,productno,part,partno,pk,descb,num,status,date,urlspl,imgname,urlpdt,createtime,createuser,updatetime,updateuser,pid'; try { // 调用sqlite的插入方法 const result = await insertTableData(tableName, values, fields); console.log('保存app_media_record成功:', result); return result; } catch (error) { console.error('保存app_media_record失败:', error); return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject; } // #endif // #ifdef H5 return offlineData({ success: true, data: [] } as UTSJSONObject); // #endif } export async function getLatestRecord(productNo:string , initData ?: UTSJSONObject | null) : Promise { // #ifdef APP-ANDROID const result = await selectLatestInfoData(productNo); console.log(result); return result; // #endif // #ifdef H5 return offlineData({ success: true, data: [] } as UTSJSONObject) // #endif } export async function removeTableData(tableName:string, field: string, value: string) : Promise { // #ifdef APP-ANDROID try { // 调用sqlite的删除方法 const result = await deleteTableData(tableName, field, value); console.log('删除数据成功:', result); return result; } catch (error) { console.error('删除数据失败:', error); return { errMsg: '删除失败', data: [] as any[] } as UTSJSONObject; } // #endif // #ifdef H5 return offlineData({ success: true, data: [] } as UTSJSONObject); // #endif } export async function removeInfoAndRecord(value:string) : Promise { // #ifdef APP-ANDROID try { // 调用sqlite的删除方法 const result = await deleteTableData('app_media_record', 'pid', value); const result2 = await deleteTableData('app_media_info', 'pdid', value); return result; } catch (error) { console.error('删除数据失败:', error); return { errMsg: '删除失败', data: [] as any[] } as UTSJSONObject; } // #endif // #ifdef H5 return offlineData({ success: true, data: [] } as UTSJSONObject); // #endif }