work.uts 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. // #ifdef APP-ANDROID
  2. import { selectTableData, insertTableData, updateTableData, selectJoinTableData, selectRecordData, selectRecordInfo, selectLatestInfoData, deleteTableData } from '@/utils/sqlite'
  3. // #endif
  4. export type Download = {
  5. pdid : number,
  6. workorder : string,
  7. invname : string,
  8. productno : string,
  9. graphid : string,
  10. cardno : string,
  11. processno : string,
  12. ver : string,
  13. updatetime : string,
  14. progress : string,
  15. status : number
  16. }
  17. export type Record = {
  18. sxid : number,
  19. senum : number,
  20. photoitem : string,
  21. productno : string,
  22. part : string,
  23. descb : string,
  24. date : string,
  25. partno : string,
  26. num : number,
  27. status : number,
  28. urlspl : string[],
  29. imgname : string[],
  30. urlpdt : string[]
  31. }
  32. export type TaskProcess = {
  33. id : number
  34. name : string
  35. num : number
  36. step : number
  37. status : number
  38. }
  39. export type JoinRecord = {
  40. sxid : number,
  41. senum : number,
  42. photoitem : string,
  43. productno : string,
  44. part : string,
  45. descb : string,
  46. date : string,
  47. partno : string,
  48. num : number,
  49. status : number,
  50. urlspl : string
  51. imgname : string,
  52. urlpdt : string,
  53. pid : number,
  54. workorder : string,
  55. invname : string
  56. }
  57. export type RecordCalculate = {
  58. photoitem : string,
  59. pid : number,
  60. step : number,
  61. total : number,
  62. status : number
  63. }
  64. //检验任务
  65. export type TaskInfo = {
  66. gxid : string,
  67. itemTitle: string,
  68. photoitemStep : number,
  69. photoitemTotal: number,
  70. photoitemStatus: string,
  71. recordStep : number,
  72. recordTotal : number,
  73. recordStatus : string,
  74. keypointStep : number,
  75. keypointTotal : number
  76. keypointStatus : string
  77. }
  78. export function offlineData(data : UTSJSONObject) : Promise<UTSJSONObject> {
  79. return new Promise((resolve, reject) => {
  80. let result = JSON.parseObject(JSON.stringify(data)) as UTSJSONObject
  81. resolve(result)
  82. });
  83. }
  84. export const statusDict = { '1': '未执行', '2': '执行中', '3': '已执行', '4': '执行错误', '5': '已取消' }
  85. export const recordStatusDict = { '1': '未拍照', '2': '拍照中', '3': '拍照完成', '4': '检验不清晰', '5': '拍照取消' }
  86. export async function getList(tableName : string, condition ?: string | null, value ?: string | null, condition2 ?: string | null, value2 ?: string | null, initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  87. // #ifdef APP-ANDROID
  88. const result = await selectTableData(tableName, condition, value, condition2, value2);
  89. console.log(result);
  90. return result;
  91. // #endif
  92. // #ifdef H5
  93. return offlineData(initData)
  94. // #endif
  95. }
  96. export async function getJoinList(dbTable : string, joinTable : string, labels : string, joinCondition : string, lname ?: string, lvalue ?: string, others ?: string) : Promise<UTSJSONObject> {
  97. // #ifdef APP-ANDROID
  98. const result = await selectJoinTableData(dbTable, joinTable, labels, joinCondition, lname, lvalue, others);
  99. console.log(result);
  100. return result;
  101. // #endif
  102. }
  103. export async function updateData(tableName : string, data : string, lname ?: string, lvalue ?: string) : Promise<UTSJSONObject> {
  104. // #ifdef APP-ANDROID
  105. const result = await updateTableData(tableName, data, lname, lvalue);
  106. console.log(result);
  107. return result;
  108. // #endif
  109. }
  110. export async function getRecordCalculate(tableName : string, value ?: string | null, initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  111. // #ifdef APP-ANDROID
  112. const result = await selectRecordData(tableName, value);
  113. console.log(result);
  114. return result;
  115. // #endif
  116. // #ifdef H5
  117. return offlineData(initData)
  118. // #endif
  119. }
  120. export async function getRecordInfoList(initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  121. // #ifdef APP-ANDROID
  122. const result = await selectRecordInfo();
  123. console.log(result);
  124. return result;
  125. // #endif
  126. // #ifdef H5
  127. return offlineData(initData)
  128. // #endif
  129. }
  130. /**
  131. * 保存媒体信息数据到数据库
  132. * @param data MediaInfoData类型的数据
  133. * @returns Promise<UTSJSONObject> 保存结果
  134. */
  135. export async function saveMediaInfo(data ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  136. // #ifdef APP-ANDROID
  137. // 表名
  138. const tableName = 'app_media_info';
  139. // 构造插入的数据字符串,注意数据库字段名和类型
  140. 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}, 0`;
  141. // 构造字段名字符串
  142. const fields = 'workorder,invname,productno,cardno,model,graphid,ver,phase,processno,progress,status,createtime,createuser,updatetime,updateuser,uploadflag';
  143. try {
  144. // 调用sqlite的插入方法
  145. const result = await insertTableData(tableName, values, fields);
  146. console.log('保存app_media_info成功:', result);
  147. return result;
  148. } catch (error) {
  149. console.error('保存app_media_info失败:', error);
  150. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  151. }
  152. // #endif
  153. // #ifdef H5
  154. return offlineData({ success: true, data: [] } as UTSJSONObject);
  155. // #endif
  156. }
  157. /**
  158. * 保存媒体信息数据到数据库
  159. * @param data saveMediaRecord类型的数据
  160. * @returns Promise<UTSJSONObject> 保存结果
  161. */
  162. export async function saveMediaRecord(values : string) : Promise<UTSJSONObject> {
  163. // #ifdef APP-ANDROID
  164. // 表名
  165. const tableName = 'app_media_record';
  166. // 构造字段名字符串
  167. const fields = 'senum,photoitem,productno,part,partno,pk,exampleid,descb,num,status,date,urlspl,imgname,urlpdt,createtime,createuser,updatetime,updateuser,pid';
  168. try {
  169. // 调用sqlite的插入方法
  170. const result = await insertTableData(tableName, values, fields);
  171. console.log('保存app_media_record成功:', result);
  172. return result;
  173. } catch (error) {
  174. console.error('保存app_media_record失败:', error);
  175. return { errMsg: '保存失败', data: [] as any[] } as UTSJSONObject;
  176. }
  177. // #endif
  178. // #ifdef H5
  179. return offlineData({ success: true, data: [] } as UTSJSONObject);
  180. // #endif
  181. }
  182. export async function getLatestRecord(productNo:string , initData ?: UTSJSONObject | null) : Promise<UTSJSONObject> {
  183. // #ifdef APP-ANDROID
  184. const result = await selectLatestInfoData(productNo);
  185. console.log(result);
  186. return result;
  187. // #endif
  188. // #ifdef H5
  189. return offlineData({ success: true, data: [] } as UTSJSONObject)
  190. // #endif
  191. }
  192. export async function removeTableData(tableName:string, field: string, value: string) : Promise<UTSJSONObject> {
  193. // #ifdef APP-ANDROID
  194. try {
  195. // 调用sqlite的删除方法
  196. const result = await deleteTableData(tableName, field, value);
  197. console.log('删除数据成功:', result);
  198. return result;
  199. } catch (error) {
  200. console.error('删除数据失败:', error);
  201. return { errMsg: '删除失败', data: [] as any[] } as UTSJSONObject;
  202. }
  203. // #endif
  204. // #ifdef H5
  205. return offlineData({ success: true, data: [] } as UTSJSONObject);
  206. // #endif
  207. }
  208. export async function removeInfoAndRecord(value:string) : Promise<UTSJSONObject> {
  209. // #ifdef APP-ANDROID
  210. try {
  211. // 调用sqlite的删除方法
  212. const result = await deleteTableData('app_media_record', 'pid', value);
  213. const result2 = await deleteTableData('app_media_info', 'pdid', value);
  214. return result;
  215. } catch (error) {
  216. console.error('删除数据失败:', error);
  217. return { errMsg: '删除失败', data: [] as any[] } as UTSJSONObject;
  218. }
  219. // #endif
  220. // #ifdef H5
  221. return offlineData({ success: true, data: [] } as UTSJSONObject);
  222. // #endif
  223. }