| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # éè´å¤æä»¶åæç¡®è®¤æ¥å£ä¼ åç±»å约æï¼`purchase_ledger`ï¼ |
| | | |
| | | ## 1. éç¨æ¥å£ |
| | | |
| | | - `POST /purchase-ai/analyze-files/confirm` |
| | | - `businessType = purchase_ledger` |
| | | |
| | | > æ¬æç¨äºçº¦æå端æäº¤å°ç¡®è®¤æ¥å£ç `payload` ç±»åï¼é¿å
`Cannot deserialize ...` è¿ç±»ååºååå¼å¸¸ã |
| | | |
| | | ## 2. é¡¶å±è¯·æ±ä½ |
| | | |
| | | ```json |
| | | { |
| | | "businessType": "purchase_ledger", |
| | | "payload": { |
| | | "purchaseLedgers": [] |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ## 3. payload ç»æ |
| | | |
| | | æ¨èç»ä¸ä½¿ç¨æ¹éç»æï¼å³ä½¿åªæ 1 æ¡ï¼ï¼ |
| | | |
| | | ```json |
| | | { |
| | | "purchaseLedgers": [ |
| | | { |
| | | "purchaseContractNumber": "CG-2026-001", |
| | | "supplierId": 10001, |
| | | "entryDate": "2026-05-07", |
| | | "type": 2, |
| | | "approvalStatus": 1, |
| | | "productData": [ |
| | | { |
| | | "productCategory": "颿", |
| | | "specificationModel": "Q235-A", |
| | | "unit": "å¨", |
| | | "quantity": 10, |
| | | "taxInclusiveUnitPrice": 1200, |
| | | "taxInclusiveTotalPrice": 12000, |
| | | "taxRate": 13, |
| | | "type": 2 |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ``` |
| | | |
| | | å端ä¹å
¼å®¹âåæ¡ç´ä¼ âï¼`payload` ç´æ¥æ¯ä¸æ¡ `PurchaseLedgerDto`ï¼ï¼ä½ä¸å»ºè®®æ°å端继ç»ä½¿ç¨ã |
| | | |
| | | ## 4. Java ç±»åå° JSON ç±»åæ å°è§å |
| | | |
| | | - `Long` / `Integer`ï¼ä¼ **number**ï¼æ´æ°ï¼ï¼ä¸è¦ä¼ `"pending"`ã`"1级"` è¿ç±»å符串ã |
| | | - `BigDecimal`ï¼ä¼ **number**ï¼å¯å°æ°ï¼ï¼ä¸è¦ä¼ 带éå·ãåä½çå符串ï¼å¦ `"12,000å
"`ï¼ã |
| | | - `Date`ï¼ä¼ **string**ï¼æ ¼å¼åºå® `yyyy-MM-dd`ã |
| | | - `Boolean`ï¼ä¼ `true/false`ï¼ä¸è¦ä¼ `"true"`ã`"æ¯"`ã |
| | | - `List<T>`ï¼ä¼ æ°ç» `[]`ã |
| | | |
| | | ## 5. `PurchaseLedgerDto` åæ®µç±»å约æï¼ç¡®è®¤æ¥å£å¯è¯å«åæ®µï¼ |
| | | |
| | | | åæ®µ | Java ç±»å | JSON ç±»å | 说æ | |
| | | | --- | --- | --- | --- | |
| | | | entryDateStart | String | string | æ¥è¯¢åºé´å¼å§æ¥æï¼`yyyy-MM-dd`ï¼ | |
| | | | entryDateEnd | String | string | æ¥è¯¢åºé´ç»ææ¥æï¼`yyyy-MM-dd`ï¼ | |
| | | | id | Long | number(integer) | å°è´¦ID | |
| | | | purchaseContractNumber | String | string | **å¿
å¡«**ï¼ä¸»ä¸å¡åå·ï¼ | |
| | | | supplierId | Long | number(integer) | `supplierId` ä¸ `supplierName` äºéä¸å¿
å¡« | |
| | | | supplierName | String | string | `supplierId` ä¸ `supplierName` äºéä¸å¿
å¡« | |
| | | | recorderId | Long | number(integer) | å½å
¥äººID | |
| | | | recorderName | String | string | å½å
¥äººåç§° | |
| | | | salesContractNo | String | string | éå®ååå· | |
| | | | salesContractNoId | Long | number(integer) | éå®ååID | |
| | | | projectName | String | string | 项ç®åç§° | |
| | | | entryDate | Date | string(`yyyy-MM-dd`) | å½å
¥æ¥æï¼ç¼ºçæ¶å端ä¼è¡¥å½å¤© | |
| | | | executionDate | Date | string(`yyyy-MM-dd`) | ç¾è®¢æ¥æ | |
| | | | remarks | String | string | 夿³¨ | |
| | | | attachmentMaterials | String | string | é件说æ/è·¯å¾ | |
| | | | createdAt | Date | string(`yyyy-MM-dd`) | åå»ºæ¥æ | |
| | | | updatedAt | Date | string(`yyyy-MM-dd`) | æ´æ°æ¥æ | |
| | | | salesLedgerId | Long | number(integer) | éå®å°è´¦ID | |
| | | | hasChildren | Boolean | boolean | æ¯å¦æå项 | |
| | | | Type | Integer | number(integer) | åå²å段ï¼ä¸æ¨èæ°å端使ç¨ï¼ | |
| | | | productData | List<SalesLedgerProduct> | array | 产åæç»ï¼è§ä¸è | |
| | | | tempFileIds | List<String> | array[string] | ä¸´æ¶æä»¶IDå表 | |
| | | | SalesLedgerFiles | List<CommonFile> | array[object] | åå²å
¼å®¹å段 | |
| | | | phoneNumber | String | string | ä¸å¡åææºå· | |
| | | | businessPersonId | Long | number(integer) | ä¸å¡åID | |
| | | | productId | Long | number(integer) | 产åID | |
| | | | productModelId | Long | number(integer) | 产åè§æ ¼ID | |
| | | | invoiceNumber | String | string | åç¥¨å· | |
| | | | invoiceAmount | BigDecimal | number | å票éé¢ | |
| | | | ticketRegistrationId | Long | number(integer) | æ¥ç¥¨ç»è®°ID | |
| | | | contractAmount | BigDecimal | number | ååéé¢ | |
| | | | receiptPaymentAmount | BigDecimal | number | æ¥ç¥¨éé¢ | |
| | | | unReceiptPaymentAmount | BigDecimal | number | æªæ¥ç¥¨éé¢ | |
| | | | type | Integer | number(integer) | å°è´¦ç±»åï¼éè´åºå® `2`ï¼ç¼ºçæ¶å端补 `2`ï¼ | |
| | | | paymentMethod | String | string | 仿¬¾æ¹å¼ | |
| | | | approvalStatus | Integer | number(integer) | 审æ¹ç¶æï¼**严ç¦ä¼ å符串**ï¼å¦ `"pending"`ï¼ | |
| | | | templateName | String | string | 模æ¿åç§° | |
| | | |
| | | ### 审æ¹ç¶æå»ºè®®å¼ï¼`approvalStatus`ï¼ |
| | | |
| | | å»ºè®®ææ°åä¼ å¼ï¼ |
| | | |
| | | - `1`ï¼å¾
å®¡æ ¸ |
| | | - `2`ï¼å®¡æ ¸ä¸ |
| | | - `3`ï¼å®¡æ ¸éè¿ |
| | | - `4`ï¼å®¡æ ¸æç»/失败 |
| | | - `5`ï¼æ¨¡æ¿æ°æ®ï¼åå²å®ä¹ï¼ |
| | | |
| | | ## 6. `productData`ï¼`SalesLedgerProduct`ï¼å»ºè®®å段åç±»å |
| | | |
| | | | åæ®µ | Java ç±»å | JSON ç±»å | 说æ | |
| | | | --- | --- | --- | --- | |
| | | | productCategory | String | string | **å¿
å¡«**ï¼äº§å大类/åç§° | |
| | | | specificationModel | String | string | **å¿
å¡«**ï¼è§æ ¼åå· | |
| | | | unit | String | string | **å¿
å¡«**ï¼åä½ | |
| | | | quantity | BigDecimal | number | **å¿
å¡«**ï¼æ°é | |
| | | | taxRate | BigDecimal | number | ç¨çï¼å¦ `13`ï¼ | |
| | | | taxInclusiveUnitPrice | BigDecimal | number | **å¿
å¡«**ï¼å«ç¨åä»· | |
| | | | taxInclusiveTotalPrice | BigDecimal | number | **å¿
å¡«**ï¼å«ç¨æ»ä»· | |
| | | | taxExclusiveTotalPrice | BigDecimal | number | ä¸å«ç¨æ»ä»·ï¼å¯ä¸ä¼ ï¼åç«¯å¯æ¨å¯¼ï¼ | |
| | | | invoiceType | String | string | å票类å | |
| | | | productId | Long | number(integer) | 产åID | |
| | | | productModelId | Long | number(integer) | 产ååå·ID | |
| | | | isChecked | Boolean | boolean | æ¯å¦è´¨æ£ | |
| | | | type | Integer | number(integer) | éè´äº§ååºå® `2`ï¼å»ºè®®ä¼ `2`ï¼ | |
| | | |
| | | ## 7. å¿
å¡«ä¸å端é»è®¤è¡ä¸º |
| | | |
| | | - å°è´¦ä¸»è¡¨å¿
å¡«ï¼`purchaseContractNumber`ï¼ä»¥å `supplierId` / `supplierName` äºéä¸ã |
| | | - 产åæç»è¥ä¼ äº `productData`ï¼åæ¯æ¡äº§åå¿
å¡«ï¼`productCategory`ã`specificationModel`ã`unit`ã`quantity`ã`taxInclusiveUnitPrice`ã`taxInclusiveTotalPrice`ã |
| | | - `entryDate` 为空æ¶ï¼å端补å½å¤©æ¥æã |
| | | - `type` 为空æ¶ï¼å端补 `2`ã |
| | | |
| | | ## 8. å端é«é¢éè¯¯ç¤ºä¾ |
| | | |
| | | é误ï¼ä¼è§¦åååºååå¼å¸¸ï¼ï¼ |
| | | |
| | | ```json |
| | | { |
| | | "approvalStatus": "pending", |
| | | "type": "éè´", |
| | | "supplierId": "ä¾åºåA" |
| | | } |
| | | ``` |
| | | |
| | | æ£ç¡®ï¼ |
| | | |
| | | ```json |
| | | { |
| | | "approvalStatus": 1, |
| | | "type": 2, |
| | | "supplierId": 10001 |
| | | } |
| | | ``` |
| | | |
| | | ## 9. æäº¤åèªæ£æ¸
å |
| | | |
| | | 1. ææ `Long/Integer/BigDecimal` åæ®µé½ä¸ºæ°åï¼ä¸æ¯ä¸å¡è¯å符串ã |
| | | 2. æææ¥æåæ®µé½æ¯ `yyyy-MM-dd`ã |
| | | 3. `approvalStatus` ä»
ä¼ æ°åç¶æç ã |
| | | 4. `supplierId` ä¸ `supplierName` è³å°æä¸ä¸ªææå¼ã |
| | | 5. `productData` ä¸å¿
å¡«åé½å
¨ä¸ä¸ºæ£ç¡®ç±»åã |