feat(sales): 实现发货模块部分发货与批量发货功能
- 新增本次发货数量字段支持部分发货,按实际发货数量扣减库存
- 添加批量发货功能支持同一客户多订单批量处理
- 增加剩余可发数量计算与校验防止超发
- 实现发货信息管理页面数量展示与审批流程
- 优化发货按钮逻辑解除完工限制提升用户体验
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- shipping_info æ°å¢"æ¬æ¬¡åè´§æ°é"åæ®µï¼æ¯æé¨ååè´§ |
| | | ALTER TABLE shipping_info |
| | | ADD COLUMN quantity DECIMAL(18, 2) NULL COMMENT 'æ¬æ¬¡åè´§æ°é' AFTER sales_ledger_product_id; |
| | | |
| | | -- å岿°æ®åå¡«ï¼åéåè´§åæå¯¹åºäº§åè¡æ°éåå¡« |
| | | UPDATE shipping_info si |
| | | LEFT JOIN sales_ledger_product slp ON si.sales_ledger_product_id = slp.id |
| | | SET si.quantity = slp.quantity |
| | | WHERE si.quantity IS NULL; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # 管çåå
¨æ¨¡åå
¨æéè±å
|
| | | |
| | | ## åè½è¯´æ |
| | | |
| | | 管çåè´¦å·ï¼adminãæ®é2ãæé«1 è§è²ï¼å¨å
¨é¨æ¨¡åæ¥ææææ¥çãç¼è¾ãæ°å¢ãå 餿éï¼ä¸åå忍¡å"å½å±äºº/ç»´æ¤äºº"ç硬ç¼ç éå¶çº¦æã |
| | | |
| | | å
¨å±æéå±ï¼`*:*:*` æéãæ°æ®èå´è¿æ»¤ãç§æ·è¡çº§è¿æ»¤ï¼åæ¬å·²å¯¹ admin æ¾è¡ï¼æ¬æ¹å¨è§£é¤çæ¯å模åä¸**å½å±äºº/ç»´æ¤äººæ ¡éª**çé¢å¤éå¶ã |
| | | |
| | | ## admin å¤å®æ¹å¼ |
| | | |
| | | å端ç»ä¸ä½¿ç¨ï¼ä¸ `approvalProcess/index.vue`ã`safeWorkApproval/index.vue` æ¢ææ¨¡å¼ä¸è´ï¼ï¼ |
| | | |
| | | ```js |
| | | const isAdminUser = computed(() => |
| | | ["admin", "æ®é2", "æé«1"].some(r => (userStore.roles || []).includes(r)) |
| | | ); |
| | | ``` |
| | | |
| | | åç«¯å¯¹åº `SecurityUtils.isAdmin(userId)`ï¼`SecurityUtils.java`ï¼= æ¥æ `æ®é2` / `admin` / `æé«1` ä»»ä¸è§è²ã |
| | | |
| | | ## æ¶å页é¢ä¸æ¹å¨ |
| | | |
| | | | 模å | é¡µé¢ | éå¶ç¹ | æ¹å¨ | |
| | | |------|------|--------|------| |
| | | | éå® | `salesManagement/salesLedger/index.vue` | ç¼è¾/å 餿é®ä»
ç»´æ¤äººå¯æä½ï¼éç»´æ¤äººéé¢åæ¾ç¤º `*****`ï¼å计æ©ç | `canEditLedger`/`canDeleteLedger` å `\|\| isAdminUser.value`ï¼ä¸¤ä¸ªéé¢ formatter å `&& !isAdminUser.value`ï¼`summarizeChildrenTable` åæ ·è±å
| |
| | | | å®¢æ· | `basicData/customerFileOpenSea/index.vue` | å
¬æµ·å 餿¦æª"ä¸å¯å é¤ä»äººç»´æ¤çæ°æ®" | å é¤ filter å `&& !isAdminUser.value` | |
| | | | å®¢æ· | `basicData/customerFile/index.vue` | ç§æµ·å 餿¦æª"å
¬æµ·åé
ç客æ·ä¸è½å é¤" | å é¤ filter å `&& !isAdminUser.value` | |
| | | | ä¾åºå | `basicData/supplierManage/components/HomeTab.vue`ã`BlacklistTab.vue` | å 餿¦æªä»äººç»´æ¤ | å é¤ filter å `&& !isAdminUser.value` | |
| | | | éè´ | `collaborativeApproval/purchaseApproval/index.vue` | å 餿¦æªä»äººç»´æ¤ | å é¤ filter å `&& !isAdminUser.value` | |
| | | | è´¨é | `qualityManagement/rawMaterialInspection/index.vue`ã`processInspection/index.vue`ã`finalInspection/index.vue` | æ£éª/æäº¤æé®ä»
æ£éªåæ¬äººå¯æä½ | disabled å¤å®å `&& !isAdminUser.value` | |
| | | | 客æ | `customerService/feedbackRegistration/index.vue` | å 餿¦æªä»äººæ°æ® | å é¤ filter å `&& !isAdminUser.value` | |
| | | | å®å
¨ | `safeProduction/dangerInvestigation/index.vue` | æ´æ¹æé®ä»
å½å±äººå¯æä½ | `isRectify` 对 admin æä¸º `false`ï¼æé®ä¸ç¦ç¨ï¼ | |
| | | | ç产 | `productionManagement/workOrder/index.vue` | æ¥å·¥ä»
å·¥å/å·¥åºæ¥å·¥äººå¯æä½ï¼æäº§ä»
å·¥åºäººåå¯æä½ | `canCurrentUserReport` å `isAdminUser.value`ï¼`canScheduleByWorkOrderNo` 对 admin ç´æ¥è¿å `true` | |
| | | |
| | | ## å端修æ¹ç¹ |
| | | |
| | | ### `basic/controller/CustomerPrivatePoolController.java`ï¼å®¢æ·ç§æµ·åè¡¨ï¼ |
| | | |
| | | ```java |
| | | @GetMapping("/listPage") |
| | | @ApiOperation("客æ·ï¼ç§æµ·ï¼å表") |
| | | public R listPage(CustomerPrivatePoolDto customerPrivatePoolDto, Page<CustomerPrivatePoolDto> page){ |
| | | // 管çå坿¥çå
¨é¨å®¢æ·ï¼ä¸åå½å±äººéå¶ |
| | | if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) { |
| | | customerPrivatePoolDto.setBoundId(SecurityUtils.getUserId()); |
| | | } |
| | | IPage<CustomerPrivatePoolDto> listPage = customerPrivatePoolService.listPage(page, customerPrivatePoolDto); |
| | | return R.ok(listPage); |
| | | } |
| | | ``` |
| | | |
| | | > `CustomerPrivatePoolMapper.xml` ç `boundId != null` 卿æ¡ä»¶å¤©ç¶æ¯æç©ºå¼è·³è¿ï¼æ éæ¹ mapperã |
| | | |
| | | ## 注æäºé¡¹ |
| | | |
| | | - å页é¢éå¨ `<script setup>` ä¸å¼å
¥ `computed`ï¼é¨å页é¢åæ¬æªå¼å
¥ï¼å¹¶å®ä¹ `isAdminUser` |
| | | - è´¨éæ£éªä¸æ¨¡åä¸"æ£éª/æäº¤"ä¸¤å¤ disabled é»è¾åéåæ¥ä¿®æ¹ |
| | | - å·¥å页æ¤åæªä½¿ç¨ `userStore`ï¼æ¬æ¬¡æ°å¢ `import useUserStore from "@/store/modules/user"` å¼å
¥ |
| | | - é admin è´¦å·ä¸è¿°éå¶ä¿æåæ ·ï¼ä¸åå½±å |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # 设å¤ä¿å
»æ¹éæ°å¢è®¡å |
| | | |
| | | ## åè½è¯´æ |
| | | |
| | | å¨è®¾å¤ä¿å
»-ä»»å¡è®°å½é¡µ"æ°å¢è®¡å"ä¸ï¼æ¯æä¸æ¬¡å¤éå¤å°è®¾å¤ãå
±ç¨ä¸å¥ä¿å
»é¡¹ç®/计åä¿å
»æ¥æ/å½å
¥äººï¼ä¸é®ä¸ºææéä¸è®¾å¤åçæä¸æ¡ä¿å
»è®¡åï¼åå°éå¤å½å
¥ã |
| | | |
| | | ## æ¶åé¡µé¢ |
| | | |
| | | - 设å¤ä¿å
»ï¼ä»»å¡è®°å½ tabï¼ |
| | | - æ°å¢/ç¼è¾è®¾å¤ä¿å
»è®¡åå¼¹çªï¼`PlanModal.vue`ï¼ |
| | | |
| | | ## API |
| | | |
| | | | æ¹æ³ | è·¯å¾ | 说æ | |
| | | |------|------|------| |
| | | | POST | /device/maintenance/batchAdd | æ¹éæ°å¢è®¾å¤ä¿å
»è®¡å | |
| | | |
| | | **请æ±åæ°ï¼bodyï¼JSONï¼ï¼** |
| | | |
| | | | åæ° | ç±»å | å¿
å¡« | 说æ | |
| | | |------|------|------|------| |
| | | | deviceIds | Long[] | æ¯ | éä¸ç设å¤å°è´¦ id å表ï¼è³å° 1 ä¸ªï¼ | |
| | | | maintenancePlanTime | datetime | æ¯ | 计åä¿å
»æ¥æï¼å
±ç¨ï¼ | |
| | | | createUser | Integer | æ¯ | å½å
¥äººï¼å
±ç¨ï¼ | |
| | | | maintenanceItem | String | å¦ | ä¿å
»é¡¹ç®ï¼å
±ç¨ï¼ | |
| | | |
| | | **ååºï¼** `{ "code": 200, "msg": "æä½æå" }` |
| | | |
| | | ## å端修æ¹ç¹ |
| | | |
| | | ### 1. æ°å¢æ¹é APIï¼`src/api/equipmentManagement/upkeep.js`ï¼ |
| | | |
| | | ```js |
| | | export const batchAddUpkeep = (data) => { |
| | | return request({ |
| | | url: "/device/maintenance/batchAdd", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }; |
| | | ``` |
| | | |
| | | ### 2. æ°å¢è®¡åå¼¹çªè®¾å¤ä¸ææ¹ä¸ºå¤éï¼`Form/PlanModal.vue`ï¼ |
| | | |
| | | ```html |
| | | <el-select |
| | | v-model="form.deviceIds" |
| | | multiple |
| | | @change="setDeviceModel" |
| | | placeholder="è¯·éæ©è®¾å¤" |
| | | filterable |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | | > |
| | | ``` |
| | | |
| | | - `form` ä¸ `deviceLedgerId` åæ®µæ¿æ¢ä¸ºæ°ç» `deviceIds: []` |
| | | - `setDeviceModel` æ¹ä¸ºæéä¸è®¾å¤éåå±ç¤ºè§æ ¼åå·ï¼éå·è¿æ¥ï¼ |
| | | - ç¼è¾æ¨¡å¼åæ¾ï¼`form.deviceIds = [data.deviceLedgerId]` |
| | | |
| | | ### 3. æäº¤é»è¾ä¸åæ¯ |
| | | |
| | | ```js |
| | | const common = { |
| | | maintenancePlanTime: form.maintenancePlanTime, |
| | | createUser: form.createUser, |
| | | maintenanceItem: form.maintenanceItem, |
| | | }; |
| | | if (id.value) { |
| | | // ç¼è¾è®¡åï¼å设å¤ï¼ |
| | | await editUpkeep({ id, deviceLedgerId: form.deviceIds[0], ...common, status }); |
| | | } else if (form.deviceIds.length > 1) { |
| | | // æ¹éæ°å¢ |
| | | await batchAddUpkeep({ deviceIds: form.deviceIds, ...common }); |
| | | } else { |
| | | // åè®¾å¤æ°å¢ |
| | | await addUpkeep({ deviceLedgerId: form.deviceIds[0], ...common }); |
| | | } |
| | | ``` |
| | | |
| | | ## å端修æ¹ç¹ |
| | | |
| | | - `DeviceMaintenance` æ°å¢ `deviceIds`ï¼éè¡¨åæ®µï¼`@TableField(exist = false)`ï¼ |
| | | - `DeviceMaintenanceController` æ°å¢ `POST /device/maintenance/batchAdd` |
| | | - `DeviceMaintenanceServiceImpl.batchSaveDeviceRepair`ï¼éåè®¾å¤ idï¼æè®¾å¤å°è´¦å¡«å
åç§°/è§æ ¼åå·ï¼æ¹é `saveBatch` |
| | | |
| | | ## 注æäºé¡¹ |
| | | |
| | | - æ¹éçæçè®°å½ç¶æé»è®¤ `å¾
ä¿å
»(0)` |
| | | - å¤å°è®¾å¤è§æ ¼åå·ä¸åæ¶ï¼å¼¹çªå
è§æ ¼åå·ä»¥éå·è¿æ¥å±ç¤ºï¼ä»
å±ç¤ºï¼æäº¤åæå设å¤å°è´¦éæ°å¡«å
ï¼ |
| | | - åè®¾å¤æ°å¢ãè¡å
"ç¼è¾"计åé»è¾ä¿æä¸å |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # åè´§æ¨¡åæ¹é ï¼é¨ååè´§ + æ¹éåè´§ + è§£é¤å®å·¥éå¶ |
| | | |
| | | ## èæ¯ |
| | | |
| | | åè´§æ¨¡åæ¬æ¬¡æ¹é ä¸é¡¹è½åï¼ |
| | | |
| | | 1. **é¨ååè´§**ï¼ç³»ç»ä¸å强å¶è¦æ±è®¢å 100% å®å·¥æå¯åè´§ï¼åè´§å¼¹çªå¯è¾å
¥"æ¬æ¬¡åè´§æ°é"ï¼å®¡æ¹éè¿åä»
æè¯¥æ°éæ£ååºåã |
| | | 2. **è§£é¤åè´§æé®éå®**ï¼ä¸åå äº§åæ åºåè®°å½ / 产éä¸è¶³ï¼æªå®å·¥ï¼éå®"åè´§"æé®ï¼åªè¦åå¨å©ä½å¯åæ°éå³å¯åèµ·åè´§ã |
| | | 3. **æ¹éåè´§**ï¼æ¯æåä¸å®¢æ·å¤æ¡è®¢åå¾éåæ¹éåè´§ï¼æ ééæ¡æä½ã |
| | | |
| | | ## æ¶åé¡µé¢ |
| | | |
| | | - éå®å°è´¦å表页ï¼`salesLedger/index.vue`ï¼â åè´§å¼¹çªãæ¹éåè´§å
¥å£ |
| | | - åè´§ä¿¡æ¯ç®¡ç页ï¼`deliveryLedger/index.vue`ï¼â åè´§æ°éå±ç¤º |
| | | |
| | | ## API |
| | | |
| | | | æ¹æ³ | è·¯å¾ | 说æ | |
| | | |------|------|------| |
| | | | POST | /shippingInfo/add | å建åè´§åå¹¶åèµ·å货审æ¹ï¼æ°å¢æ¬æ¬¡åè´§æ°éåæ°ï¼ | |
| | | | POST | /shippingInfo/batchAdd | æ¹éåè´§ï¼åä¸å®¢æ·å¤æ¡è®¢åï¼éæ¡å建åè´§åå¹¶åèµ·å®¡æ¹ | |
| | | | GET | /sales/product/list | 产åæç»å表ï¼ååºæ°å¢å·²åæ°éãå©ä½å¯åæ°éï¼ | |
| | | |
| | | ### 1. POST /shippingInfo/addï¼è¯·æ±åæ°åæ´ï¼ |
| | | |
| | | **请æ±åæ°ï¼** å¨åæå段åºç¡ä¸æ°å¢ `quantity`ï¼æ¬æ¬¡åè´§æ°éï¼ã |
| | | |
| | | | åæ° | ç±»å | å¿
å¡« | 说æ | |
| | | |------|------|------|------| |
| | | | salesLedgerProductId | Long | æ¯ | éå®å°è´¦äº§åæç»ID | |
| | | | quantity | BigDecimal | å¦ | æ¬æ¬¡åè´§æ°éï¼ä¸ä¼ æ¶é»è®¤å产åæç»å
¨éæ°é | |
| | | | type | String | å¦ | 审æ¹å¤æ³¨åç¼ï¼å¦ é¨ååè´§/æ¹éåè´§ï¼ | |
| | | | approveUserIds | Array | å¦ | 审æ¹äººIDå表 | |
| | | | tempFileIds | Array | å¦ | 临æ¶éä»¶IDå表 | |
| | | | expressNumber | String | å¦ | å¿«éåå· | |
| | | | expressCompany | String | å¦ | å¿«éå
¬å¸ | |
| | | | shippingCarNumber | String | å¦ | å货车çå· | |
| | | | shippingDate | String | å¦ | åè´§æ¥æ | |
| | | |
| | | **æ ¡éªè§åï¼** `quantity` å¿
é¡»å¤§äº 0 ä¸ä¸è¶
è¿"å©ä½å¯åæ°é"ï¼å¦åæ¥å£è¿åé误ã |
| | | |
| | | **ååºï¼** `{ "code": 200, "msg": "æä½æå" }` |
| | | |
| | | ### 2. POST /shippingInfo/batchAddï¼æ°å¢æ¥å£ï¼ |
| | | |
| | | **请æ±ä½ï¼** æ°ç»ï¼å
ç´ ä¸ºåè´§åæ°æ®ï¼å段å `/shippingInfo/add`ï¼ã |
| | | |
| | | ```json |
| | | [ |
| | | { |
| | | "salesLedgerId": 1, |
| | | "salesLedgerProductId": 100, |
| | | "quantity": 10, |
| | | "type": "æ¹éåè´§" |
| | | }, |
| | | { |
| | | "salesLedgerId": 2, |
| | | "salesLedgerProductId": 200, |
| | | "quantity": 5, |
| | | "type": "æ¹éåè´§" |
| | | } |
| | | ] |
| | | ``` |
| | | |
| | | **æ ¡éªè§åï¼** ææäº§åæç»æå±éå®å°è´¦å¿
须为**åä¸å®¢æ·**ï¼å¦åè¿åé误"æ¹éåè´§ä»
æ¯æåä¸å®¢æ·ç夿¡è®¢å"ãæ¯æ¡æ°æ®ç¬ç«çæåè´§ç¼å·å¹¶ç¬ç«å起审æ¹ã |
| | | |
| | | **ååºï¼** `{ "code": 200, "msg": "æä½æå" }` |
| | | |
| | | ### 3. GET /sales/product/listï¼ååºæ°å¢åæ®µï¼ |
| | | |
| | | ååºä¸æ¯æ¡äº§åæç»æ°å¢ä¸¤ä¸ªåæ®µï¼ |
| | | |
| | | | åæ®µ | ç±»å | 说æ | |
| | | |------|------|------| |
| | | | alreadyShippedQuantity | BigDecimal | 已忰éï¼ç¶æä¸º"å®¡æ ¸éè¿ + å·²åè´§"çåè´§è®°å½æ°éä¹åï¼ | |
| | | | unshippedQuantity | BigDecimal | å©ä½å¯åæ°é = 产åæç»æ°é â 已忰é | |
| | | |
| | | ## å端修æ¹ç¹ |
| | | |
| | | ### 1. è§£é¤åè´§æé®éå®ï¼canShipï¼ |
| | | |
| | | `canShip` åé»è¾è¦æ± `hasStockInventory`ï¼äº§åå¿
é¡»æåºåè®°å½ï¼ä¸åè´§ç¶æä¸º"å¾
åè´§/å®¡æ ¸æç»"ï¼å¯¼è´æªå®å·¥/产éä¸è¶³æ¶åè´§æé®è¢«éå®ãæ¹é å**ç§»é¤ `!row.hasStockInventory` éå¶**ï¼æ¹ä¸ºå¤æ"å©ä½å¯åæ°é > 0"ã |
| | | |
| | | ```js |
| | | // åé»è¾ |
| | | canShip(row) { |
| | | return row.hasStockInventory |
| | | && (row.shippingStatus === 'å¾
åè´§' || row.shippingStatus === 'å®¡æ ¸æç»'); |
| | | } |
| | | |
| | | // æ°é»è¾ï¼è§£é¤å®å·¥/åºåéå®ï¼ä»
éåå¨å©ä½å¯åæ°é |
| | | canShip(row) { |
| | | return row.unshippedQuantity > 0 |
| | | && (row.shippingStatus === 'å¾
åè´§' || row.shippingStatus === 'å®¡æ ¸æç»'); |
| | | } |
| | | ``` |
| | | |
| | | ### 2. åè´§å¼¹çªæ°å¢"æ¬æ¬¡åè´§æ°é" |
| | | |
| | | åè´§å¼¹çªï¼`deliveryForm`ï¼æ°å¢"æ¬æ¬¡åè´§æ°é"è¾å
¥æ¡ï¼é»è®¤å¼ä¸º `unshippedQuantity`ï¼å©ä½å¯åæ°éï¼ï¼å¹¶åä¸éæ ¡éªã |
| | | |
| | | ```html |
| | | <el-form-item label="æ¬æ¬¡åè´§æ°é" prop="quantity"> |
| | | <el-input-number |
| | | v-model="deliveryForm.quantity" |
| | | :min="0.01" |
| | | :max="Number(deliveryForm.unshippedQuantity)" |
| | | :precision="2" |
| | | placeholder="请è¾å
¥æ¬æ¬¡åè´§æ°é" |
| | | /> |
| | | <span style="margin-left: 8px; color: #909399;">å©ä½å¯åï¼{{ deliveryForm.unshippedQuantity }}</span> |
| | | </el-form-item> |
| | | ``` |
| | | |
| | | ```js |
| | | // data ä¸åå§å |
| | | deliveryForm: { |
| | | salesLedgerProductId: null, |
| | | salesLedgerId: null, |
| | | quantity: null, // æ¬æ¬¡åè´§æ°é |
| | | unshippedQuantity: 0, // å©ä½å¯åæ°éï¼æå¼å¼¹çªæ¶èµå¼ï¼ |
| | | type: 'é¨ååè´§', |
| | | approveUserIds: [], |
| | | tempFileIds: [], |
| | | }, |
| | | |
| | | // æå¼åè´§å¼¹çª |
| | | openDelivery(row) { |
| | | this.deliveryForm = { |
| | | salesLedgerProductId: row.id, |
| | | salesLedgerId: row.salesLedgerId, |
| | | quantity: row.unshippedQuantity, // é»è®¤åå©ä½å¯åæ°é |
| | | unshippedQuantity: row.unshippedQuantity, |
| | | type: 'é¨ååè´§', |
| | | approveUserIds: [], |
| | | tempFileIds: [], |
| | | }; |
| | | this.deliveryOpen = true; |
| | | }, |
| | | |
| | | // æäº¤åè´§ |
| | | submitDelivery() { |
| | | const qty = Number(this.deliveryForm.quantity); |
| | | if (!qty || qty <= 0) { |
| | | this.$modal.msgError('æ¬æ¬¡åè´§æ°éå¿
é¡»å¤§äº 0'); |
| | | return; |
| | | } |
| | | if (qty > Number(this.deliveryForm.unshippedQuantity)) { |
| | | this.$modal.msgError('æ¬æ¬¡åè´§æ°éä¸è½è¶
è¿å©ä½å¯åæ°é'); |
| | | return; |
| | | } |
| | | addShipping(this.deliveryForm).then(res => { |
| | | if (res.code === 200) { |
| | | this.$modal.msgSuccess('åè´§æåï¼å·²å起审æ¹'); |
| | | this.deliveryOpen = false; |
| | | this.getList(); // å·æ° |
| | | } |
| | | }); |
| | | } |
| | | ``` |
| | | |
| | | ### 3. æ¹éåè´§æé® + å¼¹çª |
| | | |
| | | 主表已æ `type="selection"` å¤éæ¡ãæ°å¢"æ¹éåè´§"æé®ï¼å¾é**åä¸å®¢æ·**ç夿¡è®¢ååç¹å»ï¼å¼¹åºæ¹éåè´§å¼¹çªã |
| | | |
| | | ```html |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-s-order" |
| | | @click="handleBatchShipping" |
| | | :disabled="selectedLedgers.length === 0" |
| | | >æ¹éåè´§</el-button> |
| | | ``` |
| | | |
| | | ```js |
| | | data() { |
| | | return { |
| | | selectedLedgers: [], // å¾éçéå®å°è´¦ï¼è®¢åï¼ |
| | | batchShippingOpen: false, // æ¹éåè´§å¼¹çªå¼å
³ |
| | | batchShippingRows: [], // å¯å货产åè¡å表 |
| | | }; |
| | | }, |
| | | |
| | | // å¾éåå |
| | | handleSelectionChange(selection) { |
| | | this.selectedLedgers = selection; |
| | | }, |
| | | |
| | | // æ¹éåè´§ï¼æ ¡éªåä¸å®¢æ·åæåå¯å产åè¡ |
| | | async handleBatchShipping() { |
| | | if (!this.selectedLedgers.length) { |
| | | this.$modal.msgWarning('请å
å¾éè¦åè´§ç订å'); |
| | | return; |
| | | } |
| | | // åä¸å®¢æ·æ ¡éªï¼å端ä¹ä¼æ ¡éªï¼ |
| | | const customerNames = [...new Set(this.selectedLedgers.map(l => l.customerName))]; |
| | | if (customerNames.length > 1) { |
| | | this.$modal.msgError('æ¹éåè´§ä»
æ¯æåä¸å®¢æ·ç夿¡è®¢å'); |
| | | return; |
| | | } |
| | | // æåå订åç产åæç»ï¼æ¶éå©ä½å¯åæ°é > 0 çè¡ |
| | | this.batchShippingRows = []; |
| | | for (const ledger of this.selectedLedgers) { |
| | | const res = await productList({ salesLedgerId: ledger.id, type: 1 }); |
| | | const rows = (res.data || []).filter(r => Number(r.unshippedQuantity) > 0); |
| | | rows.forEach(r => { |
| | | r.salesLedgerId = ledger.id; |
| | | r.shipQuantity = r.unshippedQuantity; // é»è®¤æ¬æ¬¡åè´§æ°é = å©ä½å¯å |
| | | }); |
| | | this.batchShippingRows = this.batchShippingRows.concat(rows); |
| | | } |
| | | if (!this.batchShippingRows.length) { |
| | | this.$modal.msgWarning('æéè®¢åæ å©ä½å¯å货产å'); |
| | | return; |
| | | } |
| | | this.batchShippingOpen = true; |
| | | }, |
| | | |
| | | // æ¹éæäº¤ |
| | | submitBatchShipping() { |
| | | // éè¡æ ¡éªæ°é |
| | | for (const row of this.batchShippingRows) { |
| | | const qty = Number(row.shipQuantity); |
| | | if (!qty || qty <= 0) { |
| | | this.$modal.msgError('å卿¬æ¬¡åè´§æ°é为空æä¸º 0 çè¡'); |
| | | return; |
| | | } |
| | | if (qty > Number(row.unshippedQuantity)) { |
| | | this.$modal.msgError('åå¨è¶
è¿å©ä½å¯åæ°éçè¡'); |
| | | return; |
| | | } |
| | | } |
| | | const reqs = this.batchShippingRows.map(r => ({ |
| | | salesLedgerId: r.salesLedgerId, |
| | | salesLedgerProductId: r.id, |
| | | quantity: r.shipQuantity, |
| | | type: 'æ¹éåè´§', |
| | | approveUserIds: [], |
| | | })); |
| | | batchAdd(reqs).then(res => { |
| | | if (res.code === 200) { |
| | | this.$modal.msgSuccess('æ¹éåè´§æåï¼å·²å起审æ¹'); |
| | | this.batchShippingOpen = false; |
| | | this.getList(); |
| | | } |
| | | }); |
| | | } |
| | | ``` |
| | | |
| | | æ¹éåè´§å¼¹çªè¡¨æ ¼ï¼ |
| | | |
| | | ```html |
| | | <el-table :data="batchShippingRows" border> |
| | | <el-table-column label="产å大类" prop="productCategory" /> |
| | | <el-table-column label="è§æ ¼åå·" prop="specificationModel" /> |
| | | <el-table-column label="è®¢åæ°é" prop="quantity" /> |
| | | <el-table-column label="å©ä½å¯å" prop="unshippedQuantity" /> |
| | | <el-table-column label="æ¬æ¬¡åè´§æ°é"> |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.shipQuantity" |
| | | :min="0.01" |
| | | :max="Number(scope.row.unshippedQuantity)" |
| | | :precision="2" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | ``` |
| | | |
| | | ### 4. åè´§ä¿¡æ¯ç®¡ç页å±ç¤º |
| | | |
| | | `deliveryLedger/index.vue` å表建议å±ç¤ºæ¬æ¬¡åè´§æ°éåï¼å¯¹åºå端 `shipping_info.quantity`ï¼ï¼åºåäºè®¢åæ°éï¼ |
| | | |
| | | ```html |
| | | <el-table-column label="æ¬æ¬¡åè´§æ°é" prop="quantity" align="center" /> |
| | | ``` |
| | | |
| | | ## 注æäºé¡¹ |
| | | |
| | | - **å©ä½å¯åæ°éå£å¾**ï¼ä»
"å®¡æ ¸éè¿ + å·²åè´§"ç¶æåè´§åå ç¨æ°éï¼"å¾
å®¡æ ¸ / å®¡æ ¸ä¸ / å®¡æ ¸æç»"ä¸å æ°éï¼é²æ¢è¶
åã |
| | | - **æ¹éåè´§çå®¢æ·æ ¡éª**ï¼å端ä¸åç«¯åææ ¡éªï¼ä»
æ¯æåä¸å®¢æ·å¤æ¡è®¢åã |
| | | - **é¨ååè´§æ£åºå**ï¼å®¡æ¹éè¿åæ"æ¬æ¬¡åè´§æ°é"æ£ååºåï¼èé订åå
¨éã |
| | | - **å é¤äº§åæç»**ï¼ä¼çº§èå é¤å
¶åè´§åï¼å©ä½å¯åæ°éé乿¢å¤ã |
| | | - **å岿°æ®**ï¼åéåè´§åå·²ç±æ°æ®åºè¿ç§»åå¡« `quantity`ï¼çäºå¯¹åºäº§åæç»æ°éï¼ï¼æ§æ°æ®å©ä½å¯åæ°éæ¾ç¤ºä¸åå½±åã |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | {"msg":"æä½æå","code":200,"data":{"records":[{"salesContractNo":"2608164","customerName":"éåä¸è¾°è¯ä¸æéå
¬å¸","id":839,"salesLedgerId":2076,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260820002-1787198120552","expressNumber":null,"expressCompany":null,"type":"æ¹éåè´§","shippingCarNumber":null,"createTime":"2026-08-20T11:55:21","updateTime":"2026-08-20T11:55:21","createUser":1,"updateUser":1,"tenantId":208,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ååæ é¹¿è¸å£ææ¶²10ml/æ¯*60æ¯/ç礼çï¼æ°çï¼"},{"salesContractNo":"2608165","customerName":"éåä¸è¾°è¯ä¸æéå
¬å¸","id":840,"salesLedgerId":2077,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260820003-1787198120786","expressNumber":null,"expressCompany":null,"type":"æ¹éåè´§","shippingCarNumber":null,"createTime":"2026-08-20T11:55:21","updateTime":"2026-08-20T11:55:21","createUser":1,"updateUser":1,"tenantId":208,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ååæ é¹¿è¸å£ææ¶²10ml*60æ¯è¯´æä¹¦ï¼æ°çï¼"},{"salesContractNo":"2608164","customerName":"éåä¸è¾°è¯ä¸æéå
¬å¸","id":838,"salesLedgerId":2076,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260820001-1787198042511","expressNumber":null,"expressCompany":null,"type":"é¨ååè´§","shippingCarNumber":null,"createTime":"2026-08-20T11:54:03","updateTime":"2026-08-20T11:54:03","createUser":1,"updateUser":1,"tenantId":208,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ååæ é¹¿è¸å£ææ¶²10ml/æ¯*60æ¯/ç礼çï¼æ°çï¼"},{"salesContractNo":"2605216","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":837,"salesLedgerId":1439,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716229-1784174973157","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:09:33","updateTime":"2026-07-16T12:09:33","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¸åå©åº·æ å½èå°é»ä¸¸9å
/丸*15丸/çå°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2605218","customerName":"å京çæå»ç卿¢°æéå
¬å¸","id":836,"salesLedgerId":1441,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716228-1784174964481","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:09:25","updateTime":"2026-07-16T12:09:25","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"0106-133","productName":"å
iè£
ç"},{"salesContractNo":"2605225","customerName":"åäº¬åæ´å¥é¾è¯ä¸æéå
¬å¸","id":835,"salesLedgerId":1449,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716227-1784174959035","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:09:19","updateTime":"2026-07-16T12:09:19","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ç®è¤åº·æ´æ¶²50mlä¸ç"},{"salesContractNo":"2605224","customerName":"åäº¬åæ´å¥é¾è¯ä¸æéå
¬å¸","id":834,"salesLedgerId":1448,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716226-1784174954143","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:09:14","updateTime":"2026-07-16T12:09:14","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ç®è¤åº·æ´æ¶²50ml说æä¹¦"},{"salesContractNo":"2605223","customerName":"é£é¹¤ï¼åæï¼ä¹³åæéå
¬å¸","id":833,"salesLedgerId":1447,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716225-1784174949909","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:09:10","updateTime":"2026-07-16T12:09:10","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"é£å¸3段幼å¿é
æ¹å¥¶ç²çè£
åèå
纸çï¼A10/2403ï¼å¸¦äºç»´ç ,R113116401ï¼"},{"salesContractNo":"2605021","customerName":"å
èå¤å¤©å¥ä¸èå¶è¯è¡ä»½æéå
¬å¸","id":832,"salesLedgerId":1445,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716224-1784174941012","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:09:01","updateTime":"2026-07-16T12:09:01","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"è¡åºéç丸è丸ä¸çæºå
ï¼å¤©å¥åæ ï¼2024ç(è§æ ¼ï¼9g*10*100ç/ä»¶ï¼"},{"salesContractNo":"2605221","customerName":"山西天è´è¯ä¸æéå
¬å¸","id":831,"salesLedgerId":1444,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716223-1784174935177","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:55","updateTime":"2026-07-16T12:08:55","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"äº¬ä¿®å æ çé
¸å·¦æ°§æ°æ²æè¶å36ç²è¯´æä¹¦"},{"salesContractNo":"2605220","customerName":"山西天è´è¯ä¸æéå
¬å¸","id":830,"salesLedgerId":1443,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716222-1784174931166","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:51","updateTime":"2026-07-16T12:08:51","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"äº¬ä¿®å æ çé
¸å·¦æ°æ²æè¶å36ç²/å°ç"},{"salesContractNo":"2605219","customerName":"天津ç¾åè³è¿å»çææ¯æéå
¬å¸","id":829,"salesLedgerId":1442,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716221-1784174926572","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:47","updateTime":"2026-07-16T12:08:47","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"ProHeal 3D.Guaid,295*190*27","productName":"HPC 3D纸ç"},{"salesContractNo":"2605233","customerName":"丹ä¸å®ä¸å¶è¯æéå
¬å¸","id":828,"salesLedgerId":1457,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716220-1784174906620","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:27","updateTime":"2026-07-16T12:08:27","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"䏹宿 夿¹æ°¨è½ç´ ç100çå°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2605232","customerName":"纽å伯è¯ä¸æéå
¬å¸","id":827,"salesLedgerId":1456,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716219-1784174902515","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:23","updateTime":"2026-07-16T12:08:23","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æ£è¿æ 叿´è¬ç¼éè¶å12ç²*2æ¿å°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2605229","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":826,"salesLedgerId":1453,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716218-1784174893516","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:14","updateTime":"2026-07-16T12:08:14","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0092Gå°çï¼æ°çï¼260702Tï¼"},{"salesContractNo":"2605228","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":825,"salesLedgerId":1452,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716217-1784174889349","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:09","updateTime":"2026-07-16T12:08:09","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0114Bå°çï¼æ°çï¼2605184ï¼"},{"salesContractNo":"2605227","customerName":"æ±è¥¿çèèå è¯ä¸è¡ä»½æéå
¬å¸","id":824,"salesLedgerId":1451,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716216-1784174885356","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:08:05","updateTime":"2026-07-16T12:08:05","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æ±ä»å æ æ¸
ç«ç0.19g*24ç*3æ¿è¯´æä¹¦"},{"salesContractNo":"2605226","customerName":"æ±è¥¿çèèå è¯ä¸è¡ä»½æéå
¬å¸","id":823,"salesLedgerId":1450,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716215-1784174879042","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:59","updateTime":"2026-07-16T12:07:59","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æ±ä»å æ æ¸
ç«ç0.19g*24ç*3çå°ç"},{"salesContractNo":"2606011","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":822,"salesLedgerId":1475,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716214-1784174875080","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:55","updateTime":"2026-07-16T12:07:55","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0172Hå°çï¼æ°ç,260514Rï¼"},{"salesContractNo":"2606010","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":821,"salesLedgerId":1474,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716213-1784174870795","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:51","updateTime":"2026-07-16T12:07:51","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0031Eå°çï¼æ°ç,260513R)"},{"salesContractNo":"2606009","customerName":"丹ä¸å®ä¸å¶è¯æéå
¬å¸","id":820,"salesLedgerId":1473,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716212-1784174866726","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:47","updateTime":"2026-07-16T12:07:47","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"䏹宿 ç¡«é
¸åºå¤§éç´ ç¢³é
¸éè¶å10ç²/æ¿*1æ¿/ç说æä¹¦"},{"salesContractNo":"2606008","customerName":"丹ä¸å®ä¸å¶è¯æéå
¬å¸","id":819,"salesLedgerId":1472,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716211-1784174862786","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:43","updateTime":"2026-07-16T12:07:43","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"䏹宿 ç¡«é
¸åºå¤§éç´ ç¢³é
¸éè¶å10ç²è£
å°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606007","customerName":"å山第ä¸å¶è¯éå¢è¡ä»½æéå
¬å¸","id":818,"salesLedgerId":1471,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716210-1784174858595","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:39","updateTime":"2026-07-16T12:07:39","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"åç«ç°æ 夿¹ç²ç¡åé´éæ 14ç²è£
å°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606005","customerName":"å¤©æ´¥ææµ·è¯ä¸æéå
¬å¸","id":817,"salesLedgerId":1469,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716209-1784174850898","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:31","updateTime":"2026-07-16T12:07:31","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"诺è´å乿 äºç²åèæ ¼åæ¬è²è¶åï¼I)1.25mg*60ç²å°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606001","customerName":"å
èå¤å¤©å¥ä¸èå¶è¯è¡ä»½æéå
¬å¸","id":816,"salesLedgerId":1465,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716208-1784174840418","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:20","updateTime":"2026-07-16T12:07:20","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"è¤é»å¥éª¨ä¸¸10è¢ä¸ç2026çï¼è§æ ¼ï¼18丸/è¢*10è¢/ç*200ç/ä»¶ï¼"},{"salesContractNo":"2606014","customerName":"åæçæåé£åæéå
¬å¸","id":815,"salesLedgerId":1484,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716207-1784174830314","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:10","updateTime":"2026-07-16T12:07:10","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æåççé¦30å
å°ç(6923018904075)"},{"salesContractNo":"2606015-16","customerName":"å京çæå»ç卿¢°æéå
¬å¸","id":814,"salesLedgerId":1483,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716206-1784174825935","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:06","updateTime":"2026-07-16T12:07:06","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å
è£
çï¼æ°çï¼0106-371ï¼å
è£
çï¼æ°çï¼0106-372ï¼"},{"salesContractNo":"2606017","customerName":"å京çæå»ç卿¢°æéå
¬å¸","id":813,"salesLedgerId":1481,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716205-1784174820905","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:07:01","updateTime":"2026-07-16T12:07:01","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å
è£
çï¼æ°çï¼0106-373ï¼"},{"salesContractNo":"2606019","customerName":"å京ä¹é¾å¶è¯æéå
¬å¸","id":812,"salesLedgerId":1479,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716204-1784174814277","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:54","updateTime":"2026-07-16T12:06:54","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ç¾å®¶ææ é¾èæ³»èé¢ç²6å
*4è¢å°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606036","customerName":"åæçæåé£åæéå
¬å¸","id":811,"salesLedgerId":1496,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716203-1784174807318","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:47","updateTime":"2026-07-16T12:06:47","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æåççé¦30å
å°ç(6923018904075)"},{"salesContractNo":"2606035","customerName":"å¤©æ´¥åæ²»è¯ä¸é墿éå
¬å¸","id":810,"salesLedgerId":1495,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716202-1784174803257","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:43","updateTime":"2026-07-16T12:06:43","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"èæ±æ¬èæ è¡åºéç软è¶å0.8g*6ç²/æ¿*3æ¿/çå°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606034","customerName":"山西天è´è¯ä¸æéå
¬å¸","id":809,"salesLedgerId":1494,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716201-1784174798620","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:39","updateTime":"2026-07-16T12:06:39","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¿®æ£æ å¤åç»´çç´ Bç120ç/ç¶ç¶ç¾"},{"salesContractNo":"2606033","customerName":"山西天è´è¯ä¸æéå
¬å¸","id":808,"salesLedgerId":1493,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716200-1784174793168","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:33","updateTime":"2026-07-16T12:06:33","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¿®æ£æ å¤åç»´çç´ Bç120ç/ç¶*1ç¶/ç说æä¹¦"},{"salesContractNo":"2606032","customerName":"山西天è´è¯ä¸æéå
¬å¸","id":807,"salesLedgerId":1492,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716199-1784174789158","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:29","updateTime":"2026-07-16T12:06:29","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¿®æ£æ å¤åç»´çç´ Bç120ç/ç¶å°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606031","customerName":"丹ä¸å®ä¸å¶è¯æéå
¬å¸","id":806,"salesLedgerId":1491,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716198-1784174784922","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:25","updateTime":"2026-07-16T12:06:25","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"䏹宿 ç¡«é
¸åºå¤§éç´ ç¢³é
¸éè¶å10ç²/æ¿*1æ¿/ç说æä¹¦"},{"salesContractNo":"2606026","customerName":"å京ä¹é¾å¶è¯æéå
¬å¸","id":805,"salesLedgerId":1488,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716197-1784174767069","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:07","updateTime":"2026-07-16T12:06:07","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"磷é
¸è¯ä¸åæå£ææº¶æ¶²100毫åï¼100毫å
说æä¹¦ï¼æ°çï¼"},{"salesContractNo":"2606025","customerName":"å京ä¹é¾å¶è¯æéå
¬å¸","id":804,"salesLedgerId":1487,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716196-1784174761520","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:06:02","updateTime":"2026-07-16T12:06:02","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¹è¯æ å¯ç«å磷é
¸è¯ä¸åæå£ææº¶æ¶²100毫åï¼100毫å
å°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼äºè½¦é´ï¼"},{"salesContractNo":"2606024","customerName":"å京ä¹é¾å¶è¯æéå
¬å¸","id":803,"salesLedgerId":1486,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716195-1784174757128","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:57","updateTime":"2026-07-16T12:05:57","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"è¾¾å®éæ æ°¨åæææº¶æ¶²80毫å/ç¶è¯´æä¹¦"},{"salesContractNo":"2606023","customerName":"å京ä¹é¾å¶è¯æéå
¬å¸","id":802,"salesLedgerId":1485,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716194-1784174752818","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:53","updateTime":"2026-07-16T12:05:53","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"è¾¾å®éæ æ°¨åæææº¶æ¶²80毫åå°çï¼äºè½¦é´ï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606049","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":801,"salesLedgerId":1509,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716193-1784174748428","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:48","updateTime":"2026-07-16T12:05:48","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"壮è
°å¥è¾ä¸¸è¯´æä¹¦"},{"salesContractNo":"2606048","customerName":"å¤©æ´¥åæ²»è¯ä¸é墿éå
¬å¸","id":800,"salesLedgerId":1508,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716192-1784174744430","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:44","updateTime":"2026-07-16T12:05:44","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å举æ å壿åç0.37g*38ç*240çå°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606047","customerName":"å¤©æ´¥åæ²»è¯ä¸é墿éå
¬å¸","id":799,"salesLedgerId":1507,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716191-1784174738833","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:39","updateTime":"2026-07-16T12:05:39","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å®é宿£æ æ³»ç¢æ¶ä¸¸1.5g*9è¢å°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606045","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":798,"salesLedgerId":1505,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716190-1784174732631","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:33","updateTime":"2026-07-16T12:05:33","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å¦å»æé¹æ 壮è
°å¥è¾ä¸¸9g/丸*24丸/çå°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606044","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":797,"salesLedgerId":1504,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716189-1784174728265","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:28","updateTime":"2026-07-16T12:05:28","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å½èå°é»ä¸¸è¯´æä¹¦ï¼5丸ï¼8丸ï¼10丸ï¼15丸ï¼40丸å
±ç¨ï¼"},{"salesContractNo":"2606043","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":796,"salesLedgerId":1503,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716188-1784174723708","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:24","updateTime":"2026-07-16T12:05:24","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æ©å¨æ å½èå°é»ä¸¸5丸å°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606042","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":795,"salesLedgerId":1502,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716187-1784174717877","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:18","updateTime":"2026-07-16T12:05:18","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"èç丸说æä¹¦(3丸ã5丸ã10丸ã15丸ã20丸ã30丸å
±ç¨ï¼"},{"salesContractNo":"2606041","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":794,"salesLedgerId":1501,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716186-1784174713672","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:14","updateTime":"2026-07-16T12:05:14","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"éå¾·å¿«æ èç丸3g/丸*10丸/çå°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606040","customerName":"天津海奥æ¯ç§ææéå
¬å¸","id":793,"salesLedgerId":1500,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716185-1784174709422","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:09","updateTime":"2026-07-16T12:05:09","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ç©´ä½è´´æ·è´´AåãBåãCåãDåãEåãFåéç¨ç说æä¹¦"},{"salesContractNo":"2606039","customerName":"天津海奥æ¯ç§ææéå
¬å¸","id":792,"salesLedgerId":1499,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716184-1784174705324","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:05","updateTime":"2026-07-16T12:05:05","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ç©´ä½è´´æ·è´´8è´´å°çï¼å¤§Dåï¼è颿 人å¾ï¼"},{"salesContractNo":"2606038","customerName":"é£é¹¤ï¼åæï¼ä¹³åæéå
¬å¸","id":791,"salesLedgerId":1498,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716183-1784174701017","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:05:01","updateTime":"2026-07-16T12:05:01","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"é£å¸3段幼å¿é
æ¹å¥¶ç²çè£
åèå
纸çï¼A10/2403ï¼å¸¦äºç»´ç ,R113116401ï¼"},{"salesContractNo":"2606037","customerName":"é£é¹¤ï¼ææ³ï¼ä¹³åæéå
¬å¸","id":790,"salesLedgerId":1497,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716182-1784174696020","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:56","updateTime":"2026-07-16T12:04:56","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"é£é¹¤è´ç§ç¿å髿é¿å¥¶ç²çè£
200g纸çï¼æ°çï¼131*48*190-A0/2512,R113107602ï¼"},{"salesContractNo":"2606055","customerName":"天津å¸å¥çå¶è¯æéå
¬å¸","id":789,"salesLedgerId":1527,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716181-1784174692056","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:52","updateTime":"2026-07-16T12:04:52","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"8ç²*2æ¿","productName":"å¥çç±æ°æå®æ 夿¹æ°¨é
ç·èºè¶åå°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606056","customerName":"天津å¸å¥çå¶è¯æéå
¬å¸","id":788,"salesLedgerId":1526,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716180-1784174687099","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:47","updateTime":"2026-07-16T12:04:47","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"12ç²*1æ¿","productName":"å¥çç±æ°æ¥åº·æ 夿¹æ°¨é
ç·èºè¶åå°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606061","customerName":"天津å¸å¥çå¶è¯æéå
¬å¸","id":787,"salesLedgerId":1522,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716179-1784174672200","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:32","updateTime":"2026-07-16T12:04:32","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å¥çç±æ°æ 夿¹æ°¨é
ç·èºè¶å说æä¹¦ï¼10ç²/20ç²/12ç²/14ç²/16ç²/22ç²/24ç²/28ç²å
±ç¨ï¼"},{"salesContractNo":"2606063","customerName":"èæ³°ç¥ï¼å京ï¼çç©å¶è¯è¡ä»½æéå
¬å¸","id":786,"salesLedgerId":1520,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716178-1784174665231","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:25","updateTime":"2026-07-16T12:04:25","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"è常轻说æä¹¦ï¼æ°çï¼"},{"salesContractNo":"2606062","customerName":"èæ³°ç¥ï¼å京ï¼çç©å¶è¯è¡ä»½æéå
¬å¸","id":785,"salesLedgerId":1519,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716177-1784174661183","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:21","updateTime":"2026-07-16T12:04:21","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"1å","productName":"è常轻ä¸çï¼æ°çï¼ï¼"},{"salesContractNo":"2606059","customerName":"å
头å¸çº¢å«æ¥ç¨åå·¥æéå
¬å¸","id":784,"salesLedgerId":1518,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716176-1784174657311","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:17","updateTime":"2026-07-16T12:04:17","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"120gå°ç","productName":"çº¢å«æ ç¾èçå«©è¤æ¶¦é¢ï¼æ°çï¼"},{"salesContractNo":"2606053","customerName":"å京çæå»ç卿¢°æéå
¬å¸","id":783,"salesLedgerId":1512,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716175-1784174653353","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:13","updateTime":"2026-07-16T12:04:13","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å
è£
çï¼æ°çï¼0106-158ï¼"},{"salesContractNo":"2606052","customerName":"å京çæå»ç卿¢°æéå
¬å¸","id":782,"salesLedgerId":1511,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716174-1784174649514","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:10","updateTime":"2026-07-16T12:04:10","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å
è£
çï¼æ°çï¼0106-251)"},{"salesContractNo":"2606051","customerName":"å京çæå»ç卿¢°æéå
¬å¸","id":781,"salesLedgerId":1510,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716173-1784174642835","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:04:03","updateTime":"2026-07-16T12:04:03","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å
è£
çï¼æ°çï¼0106-375ï¼"},{"salesContractNo":"2606075","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":780,"salesLedgerId":1549,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716172-1784174635288","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:55","updateTime":"2026-07-16T12:03:55","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0206Kå°çï¼æ°ç,260605Cï¼"},{"salesContractNo":"2606074","customerName":"åäº¬æ³½å®æç§ææéå
¬å¸ ","id":779,"salesLedgerId":1548,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716171-1784174631274","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:51","updateTime":"2026-07-16T12:03:51","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"çåå®çªçèçä¿æ¤åæ´»ç«èï¼ç»èæºï¼50头份*10ç¶å°ç(带äºç»´ç ï¼"},{"salesContractNo":"2606073","customerName":"天津å¸å¥çå¶è¯æéå
¬å¸","id":778,"salesLedgerId":1547,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716170-1784174627325","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:47","updateTime":"2026-07-16T12:03:47","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å¥çç±æ°æ¥åº·æ 对ä¹é
°æ°¨åºé
ç0.3g*12ç*2æ¿å°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606072","customerName":"æ²³åå®çªè¶ä¸æéå
¬å¸ ","id":777,"salesLedgerId":1546,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716169-1784174623382","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:43","updateTime":"2026-07-16T12:03:43","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"TULIPä¸çï¼æ°çï¼æ¹å·139ï¼60æ¯è£
"},{"salesContractNo":"2606071","customerName":"æ²³åå®çªè¶ä¸æéå
¬å¸ ","id":776,"salesLedgerId":1545,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716168-1784174619214","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:39","updateTime":"2026-07-16T12:03:39","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"TULIPå°å¡ï¼æ°çï¼æ¹å·139ï¼"},{"salesContractNo":"2606070","customerName":"æ²³åå®çªè¶ä¸æéå
¬å¸ ","id":775,"salesLedgerId":1544,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716167-1784174615107","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:35","updateTime":"2026-07-16T12:03:35","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"TULIPä¸çï¼æ¹å·138ï¼60æ¯è£
ï¼"},{"salesContractNo":"2606069","customerName":"æ²³åå®çªè¶ä¸æéå
¬å¸ ","id":774,"salesLedgerId":1543,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716166-1784174608626","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:29","updateTime":"2026-07-16T12:03:29","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"TULIPå°å¡ï¼æ¹å·138ï¼"},{"salesContractNo":"2606067","customerName":"伿¥äºå åè¯ä¸æéå
¬å¸","id":773,"salesLedgerId":1541,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716165-1784174602571","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:23","updateTime":"2026-07-16T12:03:23","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æå®æ åºäºå ç60ç/çå°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606065","customerName":"åæç¦åº·è¯ä¸è¡ä»½æéå
¬å¸","id":772,"salesLedgerId":1539,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716164-1784174596582","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:17","updateTime":"2026-07-16T12:03:17","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å©èºç0.45g*24çå°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606087","customerName":"å京çæå»ç卿¢°æéå
¬å¸","id":771,"salesLedgerId":1558,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716163-1784174589554","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:10","updateTime":"2026-07-16T12:03:10","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å
è£
çï¼0106-372ï¼"},{"salesContractNo":"2606086","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":770,"salesLedgerId":1557,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716162-1784174584999","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:03:05","updateTime":"2026-07-16T12:03:05","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0214Lå°çï¼æ°ç,2606048Pï¼"},{"salesContractNo":"2606085","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":769,"salesLedgerId":1556,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716161-1784174579410","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:59","updateTime":"2026-07-16T12:02:59","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0214Kå°çï¼æ°ç,2606049Pï¼"},{"salesContractNo":"2606081-2606084","customerName":"å¤©æ´¥èµ«è±æ©ç¹ç§æå屿éå
¬å¸","id":768,"salesLedgerId":1555,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716160-1784174574965","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:55","updateTime":"2026-07-16T12:02:55","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"èµ«è±æ©ç¹æ 强é£å®30mlå°çï¼æ°çï¼ èµ«è±æ©ç¹æ 强é£å®60mlå°çï¼æ°çï¼ èµ«è±æ©ç¹æ ä¿è å®30mlå°çï¼æ°çï¼ èµ«è±æ©ç¹æ ä¿è å®60mlå°çï¼æ°çï¼"},{"salesContractNo":"2606080","customerName":"å
头å¸çº¢å«æ¥ç¨åå·¥æéå
¬å¸","id":767,"salesLedgerId":1554,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716159-1784174570170","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:50","updateTime":"2026-07-16T12:02:50","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"çº¢å«æ ç¾èçå«©è¤æ¶¦é¢120gå°çï¼æ°çï¼"},{"salesContractNo":"2606079","customerName":"æ²³åä¸åå¶è¯è¡ä»½æéå
¬å¸","id":766,"salesLedgerId":1553,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716158-1784174564145","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:44","updateTime":"2026-07-16T12:02:44","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä»çæ èç½ç¥çé
¸éå£ææº¶æ¶²15ml:40mg*10æ¯/çå°çï¼æ°çï¼03çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606078","customerName":"æ²³åä¸åå¶è¯è¡ä»½æéå
¬å¸","id":765,"salesLedgerId":1552,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716157-1784174560016","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:40","updateTime":"2026-07-16T12:02:40","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"åç¢æ çé
¸å©å¤å¡å æ³¨å°æ¶²5ml:0.1g*5æ¯é£æºçï¼06çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606077","customerName":"æ²³åä¸åå¶è¯è¡ä»½æéå
¬å¸","id":764,"salesLedgerId":1551,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716156-1784174555799","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:36","updateTime":"2026-07-16T12:02:36","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"åç¢æ çé
¸ä¹æå°å°æ³¨å°æ¶²5mlï¼25mg*5æ¯å°çï¼08çï¼å¸¦è¯å追溯ç ï¼é£æºç"},{"salesContractNo":"2606094","customerName":"ä¿¡åæ´çå¶è¯è¡ä»½æéå
¬å¸","id":763,"salesLedgerId":1565,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716155-1784174551699","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:32","updateTime":"2026-07-16T12:02:32","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"æ´çå维马æ¥é
¸æ²ç¾å¸æ±ç100mg*20çç´ ç½å°ç"},{"salesContractNo":"2606093","customerName":"䏿µ·å¯åè£å¾ä»¬è¯ä¸æéå
¬å¸","id":762,"salesLedgerId":1564,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716154-1784174547062","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:27","updateTime":"2026-07-16T12:02:27","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å¯åè£æ æ¤èç100ç/çå°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606092","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":761,"salesLedgerId":1563,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716153-1784174542553","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:23","updateTime":"2026-07-16T12:02:23","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0020Cå°çï¼æ°ç,2605211ï¼"},{"salesContractNo":"2606091","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":760,"salesLedgerId":1562,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716152-1784174538242","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:18","updateTime":"2026-07-16T12:02:18","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0020Bå°çï¼æ°ç,2605218ï¼"},{"salesContractNo":"2606090","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":759,"salesLedgerId":1561,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716151-1784174534181","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:14","updateTime":"2026-07-16T12:02:14","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0161Eå°çï¼æ°ç,2605084Pï¼"},{"salesContractNo":"2606089","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":758,"salesLedgerId":1560,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716150-1784174530199","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:10","updateTime":"2026-07-16T12:02:10","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0175Må°çï¼æ°ç,2605116Pï¼"},{"salesContractNo":"2606088","customerName":"天津åé¸¿ç§æè¡ä»½æéå
¬å¸","id":757,"salesLedgerId":1559,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716149-1784174525079","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:05","updateTime":"2026-07-16T12:02:05","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"A.07.PM0164Yå°çï¼æ°ç,2605083Pï¼"},{"salesContractNo":"2606112","customerName":"èæ³°ç¥ï¼å京ï¼çç©å¶è¯è¡ä»½æéå
¬å¸","id":756,"salesLedgerId":1583,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716148-1784174520994","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:02:01","updateTime":"2026-07-16T12:02:01","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"注å°ç¨æ³¢ç±³æ³°é
¶aæ ç¾ï¼æ°çï¼"},{"salesContractNo":"2606111","customerName":"èæ³°ç¥ï¼å京ï¼çç©å¶è¯è¡ä»½æéå
¬å¸","id":755,"salesLedgerId":1582,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716147-1784174516638","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:57","updateTime":"2026-07-16T12:01:57","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"注å°ç¨æ³¢ç±³æ³°é
¶aä¸çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606110","customerName":"èæ³°ç¥ï¼å京ï¼çç©å¶è¯è¡ä»½æéå
¬å¸","id":754,"salesLedgerId":1581,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716146-1784174510648","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:51","updateTime":"2026-07-16T12:01:51","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"注å°ç¨æ³¢ç±³æ³°é
¶aå°çï¼æ°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606109","customerName":"èæ³°ç¥ï¼å京ï¼çç©å¶è¯è¡ä»½æéå
¬å¸","id":753,"salesLedgerId":1580,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716145-1784174506153","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:46","updateTime":"2026-07-16T12:01:46","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"注å°ç¨æ³¢ç±³æ³°é
¶aå¤§ç®±ï¼æ°çï¼"},{"salesContractNo":"2606108","customerName":"å®åç¹(天津)ç§ææéå
¬å¸","id":752,"salesLedgerId":1579,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716144-1784174501849","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:42","updateTime":"2026-07-16T12:01:42","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å®åç¹ä»ªå¨ç¦æ¥ç"},{"salesContractNo":"2606107","customerName":"æ²³å䏿å»ç¨ä¹³è¶å¶åæéå
¬å¸","id":751,"salesLedgerId":1578,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716143-1784174497348","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:37","updateTime":"2026-07-16T12:01:37","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"åºå£åæå¥çï¼æ°çï¼é©æçï¼"},{"salesContractNo":"2606105","customerName":"åæç¦åº·è¯ä¸è¡ä»½æéå
¬å¸","id":750,"salesLedgerId":1576,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716142-1784174490886","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:31","updateTime":"2026-07-16T12:01:31","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¿®æ£ç½éæ è²å°èæ¶çç26ç*3æ¿/ç说æä¹¦"},{"salesContractNo":"2606104","customerName":"åæç¦åº·è¯ä¸è¡ä»½æéå
¬å¸","id":749,"salesLedgerId":1575,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716141-1784174486918","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:27","updateTime":"2026-07-16T12:01:27","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¿®æ£ç½éæ è²å°èæ¶çç26ç*3æ¿/çå°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606103","customerName":"纽å伯è¯ä¸æéå
¬å¸","id":748,"salesLedgerId":1574,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716140-1784174482613","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:23","updateTime":"2026-07-16T12:01:23","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"宿³°é¦æ 叿´è¬ç¼éè¶å0.3g*9ç²*2æ¿/çå°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606100","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":747,"salesLedgerId":1571,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716139-1784174474522","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:15","updateTime":"2026-07-16T12:01:15","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å å¿çè丸说æä¹¦ï¼60g/ç¶ï¼4.5g*4è¢ï¼4.5g*6è¢ï¼4.5g*10è¢ï¼4.5g*12è¢ï¼4.5g*30è¢ï¼4.5g*36è¢ï¼4.5g*60è¢å
±ç¨ï¼"},{"salesContractNo":"2606099","customerName":"å京ä¸åå¶è¯æéå
¬å¸","id":746,"salesLedgerId":1570,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716138-1784174470043","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:10","updateTime":"2026-07-16T12:01:10","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ä¸åå©åº·æ å å¿çè丸4.5g*12è¢å°çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606096","customerName":"æ²³åç«çè¯ä¸é墿éå
¬å¸","id":745,"salesLedgerId":1567,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716137-1784174459903","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:01:00","updateTime":"2026-07-16T12:01:00","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"è岩山æ çæ°å¼ºèº«é¢ç²10g*24è¢ä¸ççæ"},{"salesContractNo":"2606095","customerName":"æ²³åç«çè¯ä¸é墿éå
¬å¸","id":744,"salesLedgerId":1566,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716136-1784174455349","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:00:55","updateTime":"2026-07-16T12:00:55","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"è岩山æ çæ°å¼ºèº«é¢ç²10g*24è¢ä¸çï¼å¸¦è¯å追溯ç ï¼"},{"salesContractNo":"2606127","customerName":" 天津å¸ç¾ç»é«é£åæéå
¬å¸","id":743,"salesLedgerId":1597,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716135-1784174450771","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:00:51","updateTime":"2026-07-16T12:00:51","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ç¾ç»é«å°ç®äººå°æ¿åççä¹³å³å°çï¼æ°çï¼"},{"salesContractNo":"2606125","customerName":"ä¿¡åæ´çå¶è¯è¡ä»½æéå
¬å¸","id":742,"salesLedgerId":1596,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716134-1784174444084","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:00:44","updateTime":"2026-07-16T12:00:44","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"ç´ ç½å°ç"},{"salesContractNo":"2606124","customerName":"天津èå¨çç©ç§ææéå
¬å¸","id":741,"salesLedgerId":1595,"salesLedgerProductId":null,"quantity":null,"status":"å¾
å®¡æ ¸","shippingDate":null,"shippingNo":"SH20260716133-1784174439690","expressNumber":null,"expressCompany":null,"type":"货车","shippingCarNumber":null,"createTime":"2026-07-16T12:00:40","updateTime":"2026-07-16T12:00:40","createUser":211,"updateUser":211,"tenantId":211,"deptId":null,"approveUserIds":null,"tempFileIds":null,"commonFileList":[],"specificationModel":"/","productName":"å
³å¾¡ç¾å¹´æ å
³ç¸é¾ä¸ä»èç©´ä½åååºæ¿è´´ä½¿ç¨è¯´æä¹¦ï¼B0009-02ï¼"}],"total":279,"size":100,"current":1,"orders":[],"optimizeCountSql":true,"searchCount":true,"maxLimit":null,"countId":null,"pages":3}} |
| | |
| | | @GetMapping("/listPage") |
| | | @ApiOperation("客æ·ï¼ç§æµ·ï¼å表") |
| | | public R listPage(CustomerPrivatePoolDto customerPrivatePoolDto, Page<CustomerPrivatePoolDto> page){ |
| | | //æ¥è¯¢å½åç¨æ·ç客æ·ä¿¡æ¯ |
| | | // 管çå坿¥çå
¨é¨å®¢æ·ï¼ä¸åå½å±äººéå¶ |
| | | if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) { |
| | | customerPrivatePoolDto.setBoundId(SecurityUtils.getUserId()); |
| | | } |
| | | IPage<CustomerPrivatePoolDto> listPage = customerPrivatePoolService.listPage(page, customerPrivatePoolDto); |
| | | return R.ok(listPage); |
| | | } |
| | |
| | | import com.ruoyi.framework.web.domain.AjaxResult; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | return deviceMaintenanceService.saveDeviceRepair(deviceMaintenance); |
| | | } |
| | | |
| | | @PostMapping("/batchAdd") |
| | | @ApiOperation("æ¹éæ·»å 设å¤ä¿å
»") |
| | | public AjaxResult batchAdd(@RequestBody DeviceMaintenance deviceMaintenance) { |
| | | if (CollectionUtils.isEmpty(deviceMaintenance.getDeviceIds())) { |
| | | return AjaxResult.error("è¯·éæ©è®¾å¤"); |
| | | } |
| | | return deviceMaintenanceService.batchSaveDeviceRepair(deviceMaintenance); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®idæ¥è¯¢è®¾å¤ä¿å
»") |
| | | @GetMapping("/{id}") |
| | | public AjaxResult detail(@PathVariable Long id) { |
| | |
| | | */ |
| | | @TableField(value = "maintenance_item") |
| | | private String maintenanceItem; |
| | | |
| | | @ApiModelProperty("æ¹ééæ©ç设å¤å°è´¦idå表") |
| | | @TableField(exist = false) |
| | | private List<Long> deviceIds; |
| | | } |
| | |
| | | |
| | | AjaxResult saveDeviceRepair(DeviceMaintenance deviceMaintenance); |
| | | |
| | | AjaxResult batchSaveDeviceRepair(DeviceMaintenance deviceMaintenance); |
| | | |
| | | AjaxResult updateDeviceDeviceMaintenance(DeviceMaintenance deviceMaintenance); |
| | | |
| | | void export(HttpServletResponse response, Long[] ids); |
| | |
| | | import com.ruoyi.device.dto.DeviceMaintenanceDto; |
| | | import com.ruoyi.device.execl.DeviceMaintenanceExeclDto; |
| | | import com.ruoyi.device.mapper.DeviceMaintenanceMapper; |
| | | import com.ruoyi.device.pojo.DeviceLedger; |
| | | import com.ruoyi.device.pojo.DeviceMaintenance; |
| | | import com.ruoyi.device.service.IDeviceLedgerService; |
| | | import com.ruoyi.device.service.IDeviceMaintenanceService; |
| | | import com.ruoyi.framework.web.domain.AjaxResult; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @Autowired |
| | | private DeviceMaintenanceMapper deviceMaintenanceMapper; |
| | | |
| | | @Autowired |
| | | private IDeviceLedgerService deviceLedgerService; |
| | | |
| | | @Override |
| | | public IPage<DeviceMaintenanceDto> queryPage(Page page, DeviceMaintenanceDto deviceMaintenanceDto) { |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult batchSaveDeviceRepair(DeviceMaintenance deviceMaintenance) { |
| | | List<Long> deviceIds = deviceMaintenance.getDeviceIds(); |
| | | List<DeviceMaintenance> list = new ArrayList<>(); |
| | | for (Long deviceId : deviceIds) { |
| | | DeviceLedger ledger = deviceLedgerService.getById(deviceId); |
| | | if (ledger == null) { |
| | | continue; |
| | | } |
| | | DeviceMaintenance m = new DeviceMaintenance(); |
| | | m.setDeviceLedgerId(deviceId); |
| | | m.setDeviceName(ledger.getDeviceName()); |
| | | m.setDeviceModel(ledger.getDeviceModel()); |
| | | m.setMaintenancePlanTime(deviceMaintenance.getMaintenancePlanTime()); |
| | | m.setMaintenanceItem(deviceMaintenance.getMaintenanceItem()); |
| | | m.setCreateUser(deviceMaintenance.getCreateUser()); |
| | | m.setStatus(0); |
| | | list.add(m); |
| | | } |
| | | if (list.isEmpty()) { |
| | | return AjaxResult.error("æªæ¾å°ææè®¾å¤"); |
| | | } |
| | | return this.saveBatch(list) ? AjaxResult.success() : AjaxResult.error(); |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult updateDeviceDeviceMaintenance(DeviceMaintenance deviceMaintenance) { |
| | | if (this.updateById(deviceMaintenance)) { |
| | | return AjaxResult.success(); |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.approve.bean.vo.ApproveProcessVO; |
| | | import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl; |
| | | import com.ruoyi.common.utils.OrderUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.aspectj.lang.annotation.Log; |
| | | import com.ruoyi.framework.aspectj.lang.enums.BusinessType; |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.framework.web.controller.BaseController; |
| | | import com.ruoyi.framework.web.domain.AjaxResult; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.sales.dto.ShippingInfoDto; |
| | | import com.ruoyi.sales.mapper.ShippingInfoMapper; |
| | | import com.ruoyi.sales.pojo.SalesLedger; |
| | | import com.ruoyi.sales.pojo.SalesLedgerProduct; |
| | | import com.ruoyi.sales.pojo.ShippingInfo; |
| | | import com.ruoyi.sales.service.ISalesLedgerProductService; |
| | | import com.ruoyi.sales.service.ISalesLedgerService; |
| | | import com.ruoyi.sales.service.ShippingInfoService; |
| | | import com.ruoyi.sales.service.impl.CommonFileServiceImpl; |
| | | import io.swagger.annotations.Api; |
| | |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.time.LocalDate; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author :yys |
| | |
| | | private CommonFileServiceImpl commonFileService; |
| | | |
| | | @Autowired |
| | | private ApproveProcessServiceImpl approveProcessService; |
| | | private ISalesLedgerService salesLedgerService; |
| | | |
| | | @Autowired |
| | | private StockUtils stockUtils; |
| | | private ISalesLedgerProductService salesLedgerProductService; |
| | | |
| | | |
| | | @GetMapping("/listPage") |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Log(title = "åè´§ä¿¡æ¯ç®¡ç", businessType = BusinessType.INSERT) |
| | | public AjaxResult add(@RequestBody ShippingInfoDto req) throws Exception { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH"); |
| | | // åè´§å®¡æ¹ |
| | | ApproveProcessVO approveProcessVO = new ApproveProcessVO(); |
| | | approveProcessVO.setApproveType(7); |
| | | approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId()); |
| | | approveProcessVO.setApproveReason(req.getType() + ":" +sh); |
| | | approveProcessVO.setApproveUserIds(req.getApproveUserIds()); |
| | | approveProcessVO.setApproveUser(loginUser.getUserId()); |
| | | approveProcessVO.setApproveTime(LocalDate.now().toString()); |
| | | approveProcessService.addApprove(approveProcessVO); |
| | | // æ·»å åè´§æ¶æ¯ |
| | | req.setShippingNo(sh); |
| | | req.setStatus("å¾
å®¡æ ¸"); |
| | | boolean save = shippingInfoService.save(req); |
| | | return save ? AjaxResult.success() : AjaxResult.error(); |
| | | return shippingInfoService.addShipping(req) ? AjaxResult.success() : AjaxResult.error(); |
| | | } |
| | | |
| | | @PostMapping("/batchAdd") |
| | | @ApiOperation("æ¹éåè´§ï¼åä¸å®¢æ·å¤æ¡è®¢åï¼éæ¡å建åè´§åå¹¶å起审æ¹") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Log(title = "åè´§ä¿¡æ¯ç®¡ç", businessType = BusinessType.INSERT) |
| | | public AjaxResult batchAdd(@RequestBody List<ShippingInfoDto> reqs) throws Exception { |
| | | if (reqs == null || reqs.isEmpty()) { |
| | | return AjaxResult.error("è¯·éæ©è¦åè´§ç产å"); |
| | | } |
| | | // æ ¡éªææäº§åè¡æå±éå®å°è´¦ä¸ºåä¸å®¢æ· |
| | | List<Long> productIds = reqs.stream() |
| | | .map(ShippingInfoDto::getSalesLedgerProductId) |
| | | .filter(Objects::nonNull) |
| | | .distinct() |
| | | .collect(Collectors.toList()); |
| | | List<SalesLedgerProduct> products = salesLedgerProductService.listByIds(productIds); |
| | | List<Long> ledgerIds = products.stream() |
| | | .map(SalesLedgerProduct::getSalesLedgerId) |
| | | .filter(Objects::nonNull) |
| | | .distinct() |
| | | .collect(Collectors.toList()); |
| | | List<SalesLedger> ledgers = salesLedgerService.listByIds(ledgerIds); |
| | | long customerCount = ledgers.stream() |
| | | .map(SalesLedger::getCustomerName) |
| | | .filter(cn -> cn != null && !cn.trim().isEmpty()) |
| | | .distinct() |
| | | .count(); |
| | | if (customerCount > 1) { |
| | | return AjaxResult.error("æ¹éåè´§ä»
æ¯æåä¸å®¢æ·ç夿¡è®¢å"); |
| | | } |
| | | for (ShippingInfoDto req : reqs) { |
| | | if (!shippingInfoService.addShipping(req)) { |
| | | throw new RuntimeException("æ¹éå货失败"); |
| | | } |
| | | } |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | @ApiOperation("åè´§æ£åºå") |
| | |
| | | public class ShippingInfoDto extends ShippingInfo { |
| | | |
| | | /** |
| | | * 审æ¹äººidå表 |
| | | * 审æ¹äººidå表ï¼åç«¯ä¼ æ°ç»ï¼å
¼å®¹éå·åéåç¬¦ä¸²ï¼ |
| | | */ |
| | | // 审æ¹äºº |
| | | private String approveUserIds; |
| | | private List<String> approveUserIds; |
| | | |
| | | private String type; // åè´§ç±»å |
| | | |
| | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "åè´§ç¶æ") |
| | | private String shippingStatus = "å¾
åè´§"; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "已忰éï¼å®¡æ ¸éè¿+å·²åè´§ï¼") |
| | | private BigDecimal alreadyShippedQuantity = BigDecimal.ZERO; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "å©ä½å¯åæ°é") |
| | | private BigDecimal unshippedQuantity = BigDecimal.ZERO; |
| | | /** |
| | | * 产åç¶æ |
| | | */ |
| | |
| | | import lombok.Data; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Date; |
| | | |
| | |
| | | @ApiModelProperty(value = "é宿¥ä»·äº§å表id") |
| | | private Long salesLedgerProductId; |
| | | |
| | | @ApiModelProperty(value = "æ¬æ¬¡åè´§æ°é") |
| | | @Excel(name = "æ¬æ¬¡åè´§æ°é") |
| | | private BigDecimal quantity; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ å¾
å®¡æ ¸ å®¡æ ¸ä¸ ï¼å®¡æ ¸æç» å®¡æ ¸éè¿ å·²åè´§") |
| | | @Excel(name = "ç¶æ") |
| | | private String status; |
| | |
| | | |
| | | boolean deductStock(ShippingInfoDto req) throws IOException; |
| | | |
| | | /** |
| | | * å建åè´§åå¹¶åèµ·å货审æ¹ï¼é¨ååè´§ï¼ææ¬æ¬¡åè´§æ°éåå»ºï¼ |
| | | */ |
| | | boolean addShipping(ShippingInfoDto req) throws Exception; |
| | | |
| | | boolean delete(List<Long> ids); |
| | | |
| | | List<SalesLedgerProductDto> getReturnManagementDtoById( Long shippingId); |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.approve.bean.vo.ApproveProcessVO; |
| | | import com.ruoyi.approve.pojo.ApproveProcess; |
| | | import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl; |
| | | import com.ruoyi.common.enums.FileNameType; |
| | | import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.utils.OrderUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.other.service.impl.TempFileServiceImpl; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.sales.dto.SalesLedgerProductDto; |
| | |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.util.Arrays; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * @author :yys |
| | |
| | | if (byId == null) { |
| | | throw new RuntimeException("åè´§ä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | //æ£ååºå |
| | | //æ£ååºåï¼ææ¬æ¬¡åè´§æ°éï¼æ¯æé¨ååè´§ï¼ |
| | | if(!"å·²åè´§".equals(byId.getStatus())){ |
| | | SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(byId.getSalesLedgerProductId()); |
| | | stockUtils.substractStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId()); |
| | | BigDecimal shipQuantity = byId.getQuantity() != null ? byId.getQuantity() : salesLedgerProduct.getQuantity(); |
| | | stockUtils.substractStock(salesLedgerProduct.getProductModelId(), shipQuantity, StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId()); |
| | | } |
| | | byId.setExpressNumber(req.getExpressNumber()); |
| | | byId.setExpressCompany(req.getExpressCompany()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean addShipping(ShippingInfoDto req) throws Exception { |
| | | // æ ¡éªäº§åè¡ |
| | | SalesLedgerProduct product = salesLedgerProductMapper.selectById(req.getSalesLedgerProductId()); |
| | | if (product == null) { |
| | | throw new RuntimeException("产åæç»ä¸åå¨"); |
| | | } |
| | | if (product.getQuantity() == null) { |
| | | throw new RuntimeException("产åæç»æ°éä¸ºç©ºï¼æ æ³åè´§"); |
| | | } |
| | | // æªä¼ æ¬æ¬¡åè´§æ°éæ¶é»è®¤å产åè¡å
¨é |
| | | if (req.getQuantity() == null) { |
| | | req.setQuantity(product.getQuantity()); |
| | | } |
| | | validateQuantity(req.getSalesLedgerProductId(), req.getQuantity()); |
| | | // åè´§å®¡æ¹ |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH"); |
| | | ApproveProcessVO approveProcessVO = new ApproveProcessVO(); |
| | | approveProcessVO.setApproveType(7); |
| | | approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId()); |
| | | approveProcessVO.setApproveReason(req.getType() + ":" + sh); |
| | | List<String> approveUserIds = req.getApproveUserIds(); |
| | | approveProcessVO.setApproveUserIds( |
| | | approveUserIds == null || approveUserIds.isEmpty() ? "" : String.join(",", approveUserIds)); |
| | | approveProcessVO.setApproveUser(loginUser.getUserId()); |
| | | approveProcessVO.setApproveTime(LocalDate.now().toString()); |
| | | approveProcessService.addApprove(approveProcessVO); |
| | | // æ·»å åè´§å |
| | | req.setShippingNo(sh); |
| | | req.setStatus("å¾
å®¡æ ¸"); |
| | | return this.save(req); |
| | | } |
| | | |
| | | /** |
| | | * å©ä½å¯åæ°é = 产åè¡æ°é - ç¶æä¸º"å®¡æ ¸éè¿/å·²åè´§"çåè´§æ°éä¹å |
| | | */ |
| | | public BigDecimal getUnshippedQuantity(Long salesLedgerProductId) { |
| | | SalesLedgerProduct product = salesLedgerProductMapper.selectById(salesLedgerProductId); |
| | | if (product == null || product.getQuantity() == null) { |
| | | return BigDecimal.ZERO; |
| | | } |
| | | List<ShippingInfo> shippedList = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>() |
| | | .eq(ShippingInfo::getSalesLedgerProductId, salesLedgerProductId) |
| | | .in(ShippingInfo::getStatus, Arrays.asList("å®¡æ ¸éè¿", "å·²åè´§"))); |
| | | BigDecimal shipped = shippedList.stream() |
| | | .map(ShippingInfo::getQuantity) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal remaining = product.getQuantity().subtract(shipped); |
| | | return remaining.compareTo(BigDecimal.ZERO) > 0 ? remaining : BigDecimal.ZERO; |
| | | } |
| | | |
| | | /** |
| | | * æ ¡éªæ¬æ¬¡åè´§æ°éï¼å¿
须大äº0ä¸ä¸è¶
è¿å©ä½å¯åæ°é |
| | | */ |
| | | private void validateQuantity(Long salesLedgerProductId, BigDecimal quantity) { |
| | | if (quantity == null || quantity.compareTo(BigDecimal.ZERO) <= 0) { |
| | | throw new RuntimeException("æ¬æ¬¡åè´§æ°éå¿
须大äº0"); |
| | | } |
| | | BigDecimal remaining = getUnshippedQuantity(salesLedgerProductId); |
| | | if (quantity.compareTo(remaining) > 0) { |
| | | throw new RuntimeException("æ¬æ¬¡åè´§æ°éè¶
è¿å©ä½å¯åæ°éï¼å©ä½å¯åï¼" + remaining + "ï¼"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean delete(List<Long> ids) { |
| | | List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>() |
| | | .in(ShippingInfo::getId, ids)); |
| | |
| | | dm.update_user, |
| | | dm.tenant_id, |
| | | dm.maintenance_actually_name, |
| | | dm.maintenance_item, |
| | | dl.device_name, |
| | | dl.device_model, |
| | | su.user_name as create_user_name |
| | |
| | | CASE |
| | | WHEN t2.id IS NOT NULL THEN 1 |
| | | ELSE 0 |
| | | END as has_stock_inventory |
| | | END as has_stock_inventory, |
| | | (SELECT IFNULL(SUM(si.quantity), 0) |
| | | FROM shipping_info si |
| | | WHERE si.sales_ledger_product_id = T1.id |
| | | AND si.status IN ('å®¡æ ¸éè¿', 'å·²åè´§')) AS already_shipped_quantity, |
| | | (IFNULL(T1.quantity, 0) - (SELECT IFNULL(SUM(si.quantity), 0) |
| | | FROM shipping_info si |
| | | WHERE si.sales_ledger_product_id = T1.id |
| | | AND si.status IN ('å®¡æ ¸éè¿', 'å·²åè´§'))) AS unshipped_quantity |
| | | FROM |
| | | sales_ledger_product T1 |
| | | LEFT JOIN stock_inventory t2 ON T1.product_model_id = t2.product_model_id |
| | |
| | | s.express_number, |
| | | s.express_company, |
| | | s.shipping_no, |
| | | s.quantity, |
| | | s.type, |
| | | s.status, |
| | | s.create_time, |