Kaynağa Gözat

✨ feat(mes): 优化库存选择器和退货明细表单布局

调整库存选择器为下拉选择组件,支持前端过滤,提升用户体验。更新退货明细表单,增加库存记录选择,优化表单布局,确保信息展示更为清晰。
YunaiV 6 ay önce
ebeveyn
işleme
cc29c141a1

+ 15 - 14
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java

@@ -38,13 +38,7 @@ public class MesWmReturnIssueDetailServiceImpl implements MesWmReturnIssueDetail
 
     @Override
     public Long createReturnIssueDetail(MesWmReturnIssueDetailSaveReqVO createReqVO) {
-        // 校验父数据存在
-        MesWmReturnIssueLineDO line = issueLineService.validateReturnIssueLineExists(createReqVO.getLineId());
-        // 校验仓库、库区、库位的关联关系
-        warehouseAreaService.validateWarehouseAreaExists(
-                createReqVO.getWarehouseId(), createReqVO.getLocationId(), createReqVO.getAreaId());
-        // 校验明细总数量不超过行数量
-        validateDetailQuantityNotExceed(createReqVO.getLineId(), createReqVO.getQuantity(), null, line);
+        validateReturnIssueDetailSaveData(createReqVO);
         // TODO @芋艿:【后续搞】不允许物资混放
 
         // 插入
@@ -57,13 +51,7 @@ public class MesWmReturnIssueDetailServiceImpl implements MesWmReturnIssueDetail
     public void updateReturnIssueDetail(MesWmReturnIssueDetailSaveReqVO updateReqVO) {
         // 校验存在
         validateReturnIssueDetailExists(updateReqVO.getId());
-        // 校验父数据存在
-        MesWmReturnIssueLineDO line = issueLineService.validateReturnIssueLineExists(updateReqVO.getLineId());
-        // 校验仓库、库区、库位的关联关系
-        warehouseAreaService.validateWarehouseAreaExists(
-                updateReqVO.getWarehouseId(), updateReqVO.getLocationId(), updateReqVO.getAreaId());
-        // 校验明细总数量不超过行数量(排除自身)
-        validateDetailQuantityNotExceed(updateReqVO.getLineId(), updateReqVO.getQuantity(), updateReqVO.getId(), line);
+        validateReturnIssueDetailSaveData(updateReqVO);
         // TODO @芋艿:【后续搞】不允许物资混放
 
         // 更新
@@ -105,6 +93,19 @@ public class MesWmReturnIssueDetailServiceImpl implements MesWmReturnIssueDetail
         }
     }
 
+    /**
+     * 校验保存时的关联数据
+     */
+    private void validateReturnIssueDetailSaveData(MesWmReturnIssueDetailSaveReqVO reqVO) {
+        // 校验父数据存在
+        MesWmReturnIssueLineDO line = issueLineService.validateReturnIssueLineExists(reqVO.getLineId());
+        // 校验仓库、库区、库位的关联关系
+        warehouseAreaService.validateWarehouseAreaExists(
+                reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId());
+        // 校验明细总数量不超过行数量(排除自身)
+        validateDetailQuantityNotExceed(reqVO.getLineId(), reqVO.getQuantity(), reqVO.getId(), line);
+    }
+
     /**
      * 校验明细总数量不超过行数量
      *

+ 17 - 12
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueLineServiceImpl.java

@@ -43,15 +43,12 @@ public class MesWmReturnIssueLineServiceImpl implements MesWmReturnIssueLineServ
 
     @Override
     public Long createReturnIssueLine(MesWmReturnIssueLineSaveReqVO createReqVO) {
-        // 校验父数据存在
-        MesWmReturnIssueDO issue = issueService.validateReturnIssueExists(createReqVO.getIssueId());
-        // 校验物料存在
-        itemService.validateItemExists(createReqVO.getItemId());
+        // 校验数据
+        MesWmReturnIssueDO issue = validateReturnIssueLineSaveData(createReqVO);
 
         // 插入
         MesWmReturnIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmReturnIssueLineDO.class);
-        // 质量状态自动赋值
-        line.setQualityStatus(calculateQualityStatus(line.getRqcCheckFlag(), issue.getType()));
+        line.setQualityStatus(calculateQualityStatus(line.getRqcCheckFlag(), issue.getType())); // 质量状态自动赋值
         issueLineMapper.insert(line);
         return line.getId();
     }
@@ -60,15 +57,12 @@ public class MesWmReturnIssueLineServiceImpl implements MesWmReturnIssueLineServ
     public void updateReturnIssueLine(MesWmReturnIssueLineSaveReqVO updateReqVO) {
         // 校验存在
         validateReturnIssueLineExists(updateReqVO.getId());
-        // 校验父数据存在
-        MesWmReturnIssueDO issue = issueService.validateReturnIssueExists(updateReqVO.getIssueId());
-        // 校验物料存在
-        itemService.validateItemExists(updateReqVO.getItemId());
+        // 校验数据
+        MesWmReturnIssueDO issue = validateReturnIssueLineSaveData(updateReqVO);
 
         // 更新
         MesWmReturnIssueLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmReturnIssueLineDO.class);
-        // 质量状态自动赋值
-        updateObj.setQualityStatus(calculateQualityStatus(updateObj.getRqcCheckFlag(), issue.getType()));
+        updateObj.setQualityStatus(calculateQualityStatus(updateObj.getRqcCheckFlag(), issue.getType())); // 质量状态自动赋值
         issueLineMapper.updateById(updateObj);
     }
 
@@ -109,6 +103,17 @@ public class MesWmReturnIssueLineServiceImpl implements MesWmReturnIssueLineServ
         return line;
     }
 
+    /**
+     * 校验保存时的关联数据
+     */
+    private MesWmReturnIssueDO validateReturnIssueLineSaveData(MesWmReturnIssueLineSaveReqVO reqVO) {
+        // 校验父数据存在
+        MesWmReturnIssueDO issue = issueService.validateReturnIssueExists(reqVO.getIssueId());
+        // 校验物料存在
+        itemService.validateItemExists(reqVO.getItemId());
+        return issue;
+    }
+
     @Override
     public void updateReturnIssueQualityStatusByIssueId(Long issueId, Integer issueType) {
         List<MesWmReturnIssueLineDO> lines = issueLineMapper.selectListByIssueId(issueId);