docs/mes_bag_code_bind_pallet_without_batch_integration.md
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,80 @@ # è¢ç ç»å®æçï¼å å 彿¹æ¬¡ï¼ - å端èè°æ¹æ¡ ## æ¶åé¡µé¢ - èµç 管çï¼è¢ç å表ï¼â å·¥å ·æ ãç»å®æçãæé® + ãè¢ç ç»å®æçãå¼¹çª ## å£å¾åæ´ åãç»å®æçãè¦æ±æéè¢ç å å½å ¥çäº§æ¹æ¬¡ï¼å¦åæç¤ºã请å å½å ¥çäº§æ¹æ¬¡ï¼åç»å®æçããç°å»æè¯¥åç½®éå¶ï¼æå¾éè¢ç çæ¹æ¬¡ç¶æåæµï¼ | æéè¢ç | å¯éæç | ç»å®ç»æ | |---|---|---| | åå·²å½å ¥å䏿¹æ¬¡ | è¯¥æ¹æ¬¡çæç | ä» ç»å®æçï¼ä¸æ¹é åä¸è´ï¼ | | åæªå½å ¥æ¹æ¬¡ | 该åç§å¯ç¨çå ¨é¨æçï¼ä¸´æ¶æç + æ£å¼æçï¼ | ç»å°ä¸´æ¶æçï¼è¢ç ä¿ææªå½å ¥æ¹æ¬¡ï¼ç»å°ææ¹æ¬¡çæ£å¼æçï¼å èªå¨æè¢ç è¡¥å½è¿è¯¥æ¹æ¬¡ï¼åç»å® | | æ··åï¼é¨å已彿¹æ¬¡ãé¨åæªå½ï¼ | â | åç«¯æ¦æªï¼æç¤ºåå¼æä½ | **è§£ç»ä¸åéæ¹æ¬¡**ï¼è¢ç å ç»æçèè¡¥å½è¿æ¹æ¬¡åï¼åç»ãè§£ç»æçãåªè§£é¤æçå ³ç³»ï¼æ¹æ¬¡å½å±ä¿çï¼ä¸ãç¼è¾æ¹æ¬¡åæ¶å¾éæçä¸åéç¶æãå£å¾ä¸è´ã ## API | æ¹æ³ | è·¯å¾ | 说æ | |---|---|---| | GET | /mes/pro/pallet/bindable-list | **æ°å¢**ï¼è¢ç ç»å®æçæ¶çå¯éç®æ æçå表ï¼ä¸´æ¶æç + æ£å¼æçï¼æé¤å·²ä½åºï¼ | | PUT | /mes/pro/bag-code/bind-pallet | å¤ç¨ï¼è¯·æ±ä¸ååºç»æä¸å | **请æ±åæ°ï¼æ°å¢æ¥å£ï¼ï¼** | åæ° | ç±»å | å¿ å¡« | 说æ | |---|---|---|---| | itemId | Long | å¦ | è¢ç åç§ç¼å·ãä¼ å ¥åä» è¿å该åç§çæçï¼ä»¥åå°æªç¡®å®åç§çé¢çæä¸´æ¶æçï¼`item_id` 为空ï¼ç»å®è¢ç æ¶åå¡«åç§ï¼ | **ååºï¼** `MesProPalletRespVO` æ°ç»ï¼å ³é®åæ®µï¼ | åæ®µ | ç±»å | 说æ | |---|---|---| | id | Long | æçç¼å·ï¼æäº¤ç»å®ç¨ï¼ | | code | String | æ£å¼æçç ï¼ä¸´æ¶æç为空 | | tempCode | String | ä¸´æ¶æçç ï¼`code` 为空æ¶ç¨å®å±ç¤º | | batchId / batchCode | Long / String | å·²ç»å®ççäº§æ¹æ¬¡ï¼ä¸´æ¶æç为空 | | itemId / itemName | Long / String | åç§ | | bagCount | Integer | å·²è£ è¢æ° | | capacity | Integer | å¯è£ è¢æ° | | status | Integer | æçç¶æï¼åå ¸ `mes_pro_pallet_status`ï¼ï¼å·²æé¤ä½åº(20) | ## æ¥å£è°ç¨æ¶åº 1. ç¨æ·å¾éè¢ç ï¼ç¹å»ãç»å®æçãã 2. æå¾éè¢ç çæ¹æ¬¡ç¶æéæ©æçæ°æ®æºï¼ - é½å·²å½å ¥å䏿¹æ¬¡ â `GET /mes/pro/pallet/simple-list?batchId=` - 齿ªå½å ¥æ¹æ¬¡ â `GET /mes/pro/pallet/bindable-list?itemId=`ï¼`itemId` åæéè¢ç çåç§ 3. æäº¤ `PUT /mes/pro/bag-code/bind-pallet`ï¼body 为 `{ palletId, ids }`ã ## åæ®µå±ç¤ºè§å | åæ®µ | å±ç¤ºä½ç½® | 说æ | |---|---|---| | batchCode | å¼¹çªãçäº§æ¹æ¬¡ãè¾å ¥æ¡ï¼åªè¯»ï¼ | å·²å½å ¥æ¹æ¬¡æ¾ç¤ºæ¹æ¬¡å·ï¼æªå½å ¥æ¹æ¬¡æ¾ç¤ºãæªå½å ¥æ¹æ¬¡ã | | bagCount | å¼¹çªãç»å®è¢æ°ãè¾å ¥æ¡ï¼åªè¯»ï¼ | æ¬æ¬¡å¾éçè¢ç æ°é | | code / tempCode | æç䏿é项 | æ£å¼æçå `code`ï¼ä¸´æ¶æçåéå° `tempCode` | | batchCode | æç䏿é项 | æªå½å ¥æ¹æ¬¡åºæ¯ä¸æ¾ç¤ºãæ¹æ¬¡ xxxãæãä¸´æ¶æçãï¼ä¾¿äºå¨æ··åå表ä¸å辨 | ## ä¸å¡è§å说æ | åºæ¯ | è§å | |---|---| | è¢ç å·²å½å ¥æ¹æ¬¡ï¼æçåæ¹æ¬¡ | å 许 | | è¢ç å·²å½å ¥æ¹æ¬¡ï¼æçè·¨æ¹æ¬¡ | æç»ï¼è¢ç 䏿çä¸å±äºåä¸çäº§æ¹æ¬¡ï¼ä¸å 许ç»å® | | è¢ç æªå½å ¥æ¹æ¬¡ + ä¸´æ¶æç | å 许ï¼è¢ç ä¿ææªå½å ¥æ¹æ¬¡ï¼åç»ãå½å ¥æ¹æ¬¡ãæ¶ææ¢æçº§èé»è¾æè¯¥ä¸´æ¶æçå为æ£å¼æçç | | è¢ç æªå½å ¥æ¹æ¬¡ + ææ¹æ¬¡æ£å¼æç | å 许ï¼å端å å¤ç¨ãå½å ¥æ¹æ¬¡ãé»è¾æè¢ç è¡¥å½è¿è¯¥æ¹æ¬¡ï¼åç»å®æç | | è¢ç æªå½å ¥æ¹æ¬¡ + éçäº§ä¸æ¹æ¬¡ / æªè¡¥å½æ¹æ¬¡ | æç»ï¼çäº§æ¹æ¬¡ä¸æ¯ç产ä¸ç¶æï¼ä¸å 许çæè¢ç /æçç ï¼æçäº§æ¹æ¬¡å°æªè¡¥å½æ£å¼ä¿¡æ¯ | | è¢ç æªå½å ¥æ¹æ¬¡ + åç§ä¸æ¹æ¬¡ä¸ä¸è´ | æç»ï¼è¢ç /æçå¿ é¡»ä¸æ¹æ¬¡åç§ä¸è´ | | æçæªç»å®æ¹æ¬¡ + è¢ç å·²å½å ¥æ¹æ¬¡ | æç»ï¼æéè¢ç å·²å½å ¥çäº§æ¹æ¬¡ï¼è¯·æ¹éè¯¥æ¹æ¬¡ä¸çæç | | è§£ç»æç | åªè§£é¤æçå ³ç³»ï¼æ¹æ¬¡å½å±ä¸åé | ## 注æäºé¡¹ - ãè¡¥å½æ¹æ¬¡ + ç»å®æçãå¨åä¸äºå¡å 宿ï¼ä»»ä¸æ¥æ ¡éªå¤±è´¥æ´ä½åæ»ï¼ä¸ä¼åºç°è¢ç å·²è¿æ¹æ¬¡ä½æªç»æçã - æªå½å ¥æ¹æ¬¡åºæ¯ä¸æç䏿å¯è½è¾é¿ï¼è¯·ä¿æ `showSearch` å¹¶æè¢ç åç§ä¼ `itemId` æ¶çªèå´ã - `bindable-list` å·²æé¤ä½åºæçï¼`simple-list` æªæé¤ï¼åæçå端ä½åºè¿æ»¤éä¿çã - è¢ç 䏿çå¿ é¡»ååç§ï¼`bindable-list` æ `itemId` è¿æ»¤ï¼ä½å端ä»ä¼äºæ¬¡æ ¡éªï¼å端ä¸å¿ æ®æ¤åç¡¬æ¦æªã docs/mes_bag_code_integration.md
@@ -112,13 +112,13 @@ | æçç»å®æ¹æ¬¡ | ä¸´æ¶æçä» è½ç»å®å·²æ£å¼è¡¥å½ä¸ç产ä¸çæ¹æ¬¡ï¼è·¨æ¹æ¬¡ãéå¤ç»å®è¢«æç» | | ä¸´æ¶æçåºåº | æªç»å®æ¹æ¬¡çæçç¦æ¢åä¸éå®åºåºçä¸å¡æä½ | | è¢ç å½å ¥æ¹æ¬¡ | ä» å 许ç产ä¸çæ£å¼æ¹æ¬¡ï¼ä¸´æ¶æ¹æ¬¡ä¸å¯ä½ä¸ºå½å ¥ç®æ | | è¢ç ç»å®æç | åæ¹å¿ é¡»ä¸ºå䏿£å¼æ¹æ¬¡ï¼æªç»å®æ¹æ¬¡çä¸´æ¶æçä¸å¯åä¸ç»å® | | è¢ç ç»å®æç | æªå½å ¥æ¹æ¬¡çè¢ç å¯ç»ä¸´æ¶æçï¼ä¹å¯ç»ææ¹æ¬¡çæ£å¼æçï¼æ¤æ¶å èªå¨è¡¥å½æ¹æ¬¡åç»å®ï¼ï¼å·²å½å ¥æ¹æ¬¡çè¢ç åªè½ç»åæ¹æ¬¡æç | | äºç»´ç å¯¼åº | ä¸´æ¶æ¹æ¬¡/ä¸´æ¶æçæä¸´æ¶ç 导åºï¼ä¸å¡ä¿¡æ¯ä¸ºç©ºæ¶ä¸æ¾ç¤ºèæå 容 | | æ«ç è¯å« | `PB-YYYYYYYY`âæ¹æ¬¡ã`PL-YYYYYYYY`âæçã`æ¹æ¬¡å·-PXX`âæçã`BAG-YYYYYYYY`âè¢ç ï¼æ£å¼æ¹æ¬¡å·/æçç ç §å¸¸è¯å« | ## 注æäºé¡¹ - å端è°ç¨é¡ºåºï¼æ¹æ¬¡âé¢çæ â è¡¥å½ä¿¡æ¯ â å¼å§ç产âï¼æçâé¢çæ â ç»å®æ¹æ¬¡ â ç»å®è¢ç âï¼è¢ç âçæ â å½å ¥æ¹æ¬¡ â ç»å®æçâã - å端è°ç¨é¡ºåºï¼æ¹æ¬¡âé¢çæ â è¡¥å½ä¿¡æ¯ â å¼å§ç产âï¼æçâé¢çæ â ç»å®æ¹æ¬¡ â ç»å®è¢ç âï¼è¢ç âçæ â ç»å®æç â å½å ¥æ¹æ¬¡âæâçæ â å½å ¥æ¹æ¬¡ â ç»å®æçâåå¯ï¼ç»å®åæ¹æ¬¡çæ£å¼æçæ¶ä¼èªå¨è¡¥å½æ¹æ¬¡ï¼ã - æ¹æ¬¡æ£å¼åå `tempCode` ä¸å é¤ï¼å岿å°ç临æ¶äºç»´ç æ«ç ä»è½è¿½æº¯ï¼å¿ç¨æ£å¼ç è¦ç临æ¶ç ã - ä¸´æ¶æçå¨ç»å®æ¹æ¬¡åä¸å¯è¢«è¢ç ç»å®ãä¸å¯éå®åºåºï¼æ¹éç»å®éå å¾é夿¡ä¸´æ¶æçè®°å½ã - ä¸´æ¶æçå¨ç»å®æ¹æ¬¡åå¯è¢«æªå½å ¥æ¹æ¬¡çè¢ç ç»å®ï¼ä¸å¯éå®åºåºï¼ï¼æ¹éç»å®éå å¾é夿¡ä¸´æ¶æçè®°å½ã - è¡¥å½/ç»å®å¤±è´¥æ¶ä¿çå½åéæ©ï¼é¿å è¯¯ä»¥ä¸ºå·²å®æä¸å¡å ³èã docs/mes_pro_batch_bag_code_integration.md
@@ -249,7 +249,7 @@ | æ¹æ¬¡ä¿®æ¹ | ä» è稿/ç产ä¸å¯ä¿®æ¹ï¼ä¿®æ¹åç§æäº§çº¿ç¼ç ä¼èªå¨éæ°çææ¹æ¬¡å· | | æ¹æ¬¡å é¤ | ä» è稿/å·²ä½åºå¯å é¤ï¼å·²çæè¢ç ææçç çæ¹æ¬¡ä¸å 许å é¤ | | çæç»å é¤ | ä» ç»å è¢ç å ¨é¨ä¸º"å·²çæ"䏿ªç»å®æçæ¶å 许ï¼å é¤åæ¹æ¬¡è¢ç æ°éèªå¨åå | | è¢ç ç»å®æç | è¢ç 䏿çå¿ é¡»å±äºå䏿¹æ¬¡ï¼è¢ç æªç»å®è¿æçï¼ç»å®åæ»æ°ä¸è¶ è¿æçå¯è£ è¢æ° | | è¢ç ç»å®æç | ä¸è¦æ±è¢ç å å½å ¥æ¹æ¬¡ï¼æªå½å ¥æ¹æ¬¡çè¢ç å¯ç»ä¸´æ¶æçï¼ä¹å¯ç»ææ¹æ¬¡çæ£å¼æçï¼æ¤æ¶å èªå¨è¡¥å½æ¹æ¬¡åç»å®ï¼ï¼å·²å½å ¥æ¹æ¬¡çè¢ç åªè½ç»åæ¹æ¬¡æçï¼è¢ç æªç»å®è¿æçï¼ç»å®åæ»æ°ä¸è¶ è¿æçå¯è£ è¢æ° | | 导åºå³å°å· | å¯¼åº Excel åï¼å¯¼åºç"å·²çæ"è¢ç èªå¨å为"已导åºå°å·"å¹¶è®°å½æ¶é´ | | äºç»´ç å 容 | äºç»´ç å 容 = è¢ç å符串ï¼å¦ PC20260818L01NY001-0001ï¼ï¼æ«ç åè° get-by-code 忥 | @@ -261,7 +261,7 @@ - æ¹æ¬¡å·ãè¢ç ãæçç åç±å端èªå¨çæï¼**å端表å䏿ä¾ä»»ä½ç¼ç è¾å ¥æ¡**ã - çæè¢ç /æçç åï¼å ç¨ `GET /mes/pro/batch/simple-list` è®©ç¨æ·éæ©æ¹æ¬¡ï¼åªå è®¸éæ©"ç产ä¸"ç¶æçæ¹æ¬¡ï¼åç«¯å¯æ status=20 è¿æ»¤ï¼ã - ç»å®æçæ¶ï¼æç䏿åºè°ç¨ `GET /mes/pro/pallet/simple-list?batchId=`ï¼ç¡®ä¿æçä¸è¢ç åæ¹æ¬¡ã - ç»å®æçæ¶ï¼æç䏿æè¢ç æ¹æ¬¡ç¶æåæµï¼å·²å½å ¥æ¹æ¬¡ç¨ `GET /mes/pro/pallet/simple-list?batchId=`ï¼æªå½å ¥æ¹æ¬¡ç¨ `GET /mes/pro/pallet/bindable-list?itemId=`ãè¯¦è§ `mes_bag_code_bind_pallet_without_batch_integration.md`ã - çæè¢ç ç `count` 为æå¨è¾å ¥çæ¬æ¬¡è¢æ°ï¼å¯è½å夿¬¡çæï¼åºå·èªå¨æ¥ç»ï¼ä¸ä¼éå¤ã - æ«ç 追溯æ¥å£å¯¹ä¸åå¨çè¢ç è¿åé误ï¼é误ç 1040752000ï¼ï¼å端éæç¤º"è¢ç ä¸åå¨"ã - 导åºè¢ç Excel 伿¹åè¢ç ç¶æï¼å·²çæ â 已导åºå°å·ï¼ï¼å¯¼åºåè¯·å·æ°å表ï¼éå¤å¯¼åºå䏿°æ®å ä¸ä¼éå¤åæ´ç¶æã yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/pallet/MesProPalletController.java
@@ -163,6 +163,16 @@ return success(buildPalletRespVOList(list)); } @GetMapping("/bindable-list") @Operation(summary = "è·å¾è¢ç ç»å®æçæ¶å¯éçç®æ æçå表ï¼ä¸´æ¶æç + æ£å¼æçï¼æé¤å·²ä½åºï¼") @Parameter(name = "itemId", description = "è¢ç åç§ç¼å·ï¼å¯éï¼ç¨äºè¿æ»¤éååç§æçï¼", example = "1024") @PreAuthorize("@ss.hasPermission('mes:pro-pallet:query')") public CommonResult<List<MesProPalletRespVO>> getBindablePalletList( @RequestParam(value = "itemId", required = false) Long itemId) { List<MesProPalletDO> list = palletService.getBindablePalletList(itemId); return success(buildPalletRespVOList(list)); } @GetMapping("/export-excel") @Operation(summary = "å¯¼åºæçç Excel") @PreAuthorize("@ss.hasPermission('mes:pro-pallet:export')") yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/pallet/MesProPalletMapper.java
@@ -56,6 +56,22 @@ .orderByAsc(MesProPalletDO::getId)); } /** * æ¥è¯¢è¢ç ç»å®æçæ¶å¯éçç®æ æçï¼æªä½åºçä¸´æ¶æç䏿£å¼æçã * <p> * ä¼ å ¥åç§æ¶ä» è¿å该åç§çæçï¼ä»¥åå°æªç¡®å®åç§çé¢çæä¸´æ¶æçï¼item_id 为空ï¼ç»å®è¢ç æ¶åå¡«åç§ï¼ã * * @param itemId è¢ç åç§ç¼å·ï¼å¯ä¸ºç©º * @return æçå表 */ default List<MesProPalletDO> selectBindableList(Long itemId) { return selectList(new LambdaQueryWrapperX<MesProPalletDO>() .ne(MesProPalletDO::getStatus, MesProPalletStatusEnum.CANCELED.getStatus()) .and(itemId != null, q -> q.eq(MesProPalletDO::getItemId, itemId) .or().isNull(MesProPalletDO::getItemId)) .orderByDesc(MesProPalletDO::getId)); } default PageResult<MesProPalletDO> selectPage(MesProPalletPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX<MesProPalletDO>() .likeIfPresent(MesProPalletDO::getBusinessCode, reqVO.getBusinessCode()) yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/bagcode/MesProBagCodeServiceImpl.java
@@ -223,7 +223,20 @@ @Override @Transactional(rollbackFor = Exception.class) public void bindBatch(MesProBagCodeBindBatchReqVO bindReqVO) { MesProBatchDO batch = batchMapper.selectByIdForUpdate(bindReqVO.getBatchId()); doBindBatch(bindReqVO.getBatchId(), bindReqVO.getIds()); } /** * å°è¢ç å½å ¥æå®æ¹æ¬¡ï¼å é顺åºä¸ºãæ¹æ¬¡ â è¢ç â æçãã * <p> * ãå½å ¥æ¹æ¬¡ãä¸ãç»å®æçãå ±ç¨æ¤å®ç°ï¼ç»å®æçæ¶è¥æçå·²å±ææ¹æ¬¡ãèæéè¢ç å°æªå½å ¥æ¹æ¬¡ï¼ * å ææ¬æ¹æ³å®æå½å ¥ï¼ä»èä¿è¯æ¹æ¬¡åå ¥æ ¡éªãåç§ä¸è´æ§æ ¡éªãæ¹æ¬¡æ±æ»ååä¸å®æ´æ§è®°å½åªæä¸ä»½ã * * @param batchId çäº§æ¹æ¬¡ç¼å· * @param rawIds å¾ å½å ¥çè¢ç ç¼å·ï¼æªå»éï¼ */ private void doBindBatch(Long batchId, List<Long> rawIds) { MesProBatchDO batch = batchMapper.selectByIdForUpdate(batchId); if (batch == null) { throw exception(PRO_BATCH_NOT_EXISTS); } @@ -234,7 +247,7 @@ if (StrUtil.isEmpty(batch.getCode())) { throw exception(PRO_BATCH_NOT_FILLED); } List<Long> ids = bindReqVO.getIds().stream().distinct().toList(); List<Long> ids = rawIds.stream().distinct().toList(); List<MesProBagCodeDO> bagCodes = bagCodeMapper.selectListByIdsForUpdate(ids); if (bagCodes.size() != ids.size() || bagCodes.stream().anyMatch(code -> code.getBatchId() != null @@ -459,13 +472,40 @@ @Override @Transactional(rollbackFor = Exception.class) public void bindPallet(MesProBagCodeBindReqVO bindReqVO) { // 1. é宿çï¼é¿å ä¸èªå¨å½éå¹¶åä¿®æ¹è¢æ° // 1. æ éé¢è¯»æç䏿éè¢ç ï¼å¤ææ¯å¦éè¦å 为æªå½å ¥æ¹æ¬¡çè¢ç è¡¥å½æ¹æ¬¡ã // å é顺åºå¿ é¡»ä¸ãå½å ¥æ¹æ¬¡ãä¸è´ï¼æ¹æ¬¡ â è¢ç â æçï¼ï¼å¦åä¸¤ä¸ªå ¥å£å¹¶åæ¶äº¤åçå¾ ä¼æ»éã List<Long> ids = bindReqVO.getIds().stream().distinct().toList(); MesProPalletDO palletSnapshot = palletMapper.selectById(bindReqVO.getPalletId()); if (palletSnapshot == null) { throw exception(PRO_PALLET_NOT_EXISTS); } List<MesProBagCodeDO> snapshots = bagCodeMapper.selectListByIds(ids); if (snapshots.size() != ids.size()) { throw exception(PRO_BAG_CODE_NOT_EXISTS); } // 2. æçæªç»å®æ¹æ¬¡æ¶ï¼è¢ç ä¹å¿ é¡»æªå½å ¥æ¹æ¬¡ï¼åå䏿ç«ï¼æªå½å ¥æ¹æ¬¡çè¢ç å¯ç»å°ä»»ææçï¼ if (palletSnapshot.getBatchId() == null && snapshots.stream().anyMatch(code -> code.getBatchId() != null)) { throw new cn.iocoder.yudao.framework.common.exception.ServiceException(400, "æéè¢ç å·²å½å ¥çäº§æ¹æ¬¡ï¼è¯·æ¹éè¯¥æ¹æ¬¡ä¸çæç"); } // 3. æçå·²ç»å®æ¹æ¬¡ãä¸å卿ªå½å ¥æ¹æ¬¡çè¢ç æ¶ï¼å¤ç¨ãå½å ¥æ¹æ¬¡ãé»è¾è¡¥å½ if (palletSnapshot.getBatchId() != null) { List<Long> unboundIds = snapshots.stream() .filter(code -> code.getBatchId() == null && code.getPalletId() == null && !MesProBagCodeStatusEnum.CANCELED.getStatus().equals(code.getStatus())) .map(MesProBagCodeDO::getId).toList(); if (!unboundIds.isEmpty()) { doBindBatch(palletSnapshot.getBatchId(), unboundIds); } } // 4. é宿çï¼é¿å ä¸èªå¨å½éå¹¶åä¿®æ¹è¢æ° MesProPalletDO pallet = palletMapper.selectByIdForUpdate(bindReqVO.getPalletId()); if (pallet == null) { throw exception(PRO_PALLET_NOT_EXISTS); } // 2. éå®å¹¶æ ¡éªè¢ç List<MesProBagCodeDO> bagCodes = validateBagCodesForBind(bindReqVO.getIds(), pallet, true); // 5. éå®å¹¶æ ¡éªè¢ç ï¼å½å ¥æ¹æ¬¡åï¼è¢ç 䏿çå¿ ç¶åæ¹æ¬¡ï¼ List<MesProBagCodeDO> bagCodes = validateBagCodesForBind(ids, pallet, true); Long itemId = cn.iocoder.yudao.module.mes.service.pro.pallet.MesProPalletItemResolver.resolve(pallet, bagCodeMapper.selectListByPalletId(pallet.getId())); for (MesProBagCodeDO bag : bagCodes) { @@ -473,9 +513,9 @@ itemId = cn.iocoder.yudao.module.mes.service.pro.pallet.MesProPalletItemResolver.merge(itemId, bag.getItemId()); } palletMapper.updateById(new MesProPalletDO().setId(pallet.getId()).setItemId(itemId)); // 3. ç»å®è¢ç å¹¶ç´¯å æçå·²è£ è¢æ°ï¼æçæ 容éä¸éï¼ // 6. ç»å®è¢ç å¹¶ç´¯å æçå·²è£ è¢æ°ï¼æçæ 容éä¸éï¼ int currentCount = pallet.getBagCount() == null ? 0 : pallet.getBagCount(); bagCodeMapper.bindPalletByIds(bindReqVO.getIds(), pallet.getId(), StrUtil.isNotBlank(pallet.getCode()) ? pallet.getCode() : pallet.getTempCode()); bagCodeMapper.bindPalletByIds(ids, pallet.getId(), StrUtil.isNotBlank(pallet.getCode()) ? pallet.getCode() : pallet.getTempCode()); palletService.updatePalletBagCount(pallet.getId(), currentCount + bagCodes.size()); } yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/pallet/MesProPalletService.java
@@ -102,6 +102,14 @@ List<MesProPalletDO> getUnboundPalletList(); /** * è·å¾è¢ç ç»å®æçæ¶å¯éçç®æ æçå表ï¼ä¸´æ¶æç + æ£å¼æçï¼æé¤å·²ä½åºï¼ * * @param itemId è¢ç åç§ç¼å·ï¼ç¨äºè¿æ»¤éååç§æçï¼å¯ä¸ºç©º * @return æçç å表 */ List<MesProPalletDO> getBindablePalletList(Long itemId); /** * è·å¾æçç åè¡¨ï¼æç¼å·åè¡¨ï¼ * * @param ids ç¼å·å表 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/pallet/MesProPalletServiceImpl.java
@@ -290,6 +290,11 @@ } @Override public List<MesProPalletDO> getBindablePalletList(Long itemId) { return palletMapper.selectBindableList(itemId); } @Override public List<MesProPalletDO> getPalletListByIds(Collection<Long> ids) { if (CollUtil.isEmpty(ids)) { return List.of();