소스 검색

✨ feat(mes): 新增外协工单编码字段及相关查询逻辑

YunaiV 2 달 전
부모
커밋
fce023ad40

+ 3 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/outsourcereceipt/vo/MesWmOutsourceReceiptPageReqVO.java

@@ -33,4 +33,7 @@ public class MesWmOutsourceReceiptPageReqVO extends PageParam {
     @Schema(description = "状态", example = "0")
     private Integer status;
 
+    @Schema(description = "外协工单编码", example = "WO2026030001")
+    private String workOrderCode;
+
 }

+ 2 - 1
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/outsourcereceipt/MesWmOutsourceReceiptMapper.java

@@ -13,12 +13,13 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface MesWmOutsourceReceiptMapper extends BaseMapperX<MesWmOutsourceReceiptDO> {
 
-    default PageResult<MesWmOutsourceReceiptDO> selectPage(MesWmOutsourceReceiptPageReqVO reqVO) {
+    default PageResult<MesWmOutsourceReceiptDO> selectPage(MesWmOutsourceReceiptPageReqVO reqVO, java.util.Collection<Long> workOrderIds) {
         return selectPage(reqVO, new LambdaQueryWrapperX<MesWmOutsourceReceiptDO>()
                 .likeIfPresent(MesWmOutsourceReceiptDO::getCode, reqVO.getCode())
                 .likeIfPresent(MesWmOutsourceReceiptDO::getName, reqVO.getName())
                 .eqIfPresent(MesWmOutsourceReceiptDO::getVendorId, reqVO.getVendorId())
                 .eqIfPresent(MesWmOutsourceReceiptDO::getStatus, reqVO.getStatus())
+                .inIfPresent(MesWmOutsourceReceiptDO::getWorkOrderId, workOrderIds)
                 .betweenIfPresent(MesWmOutsourceReceiptDO::getReceiptDate, reqVO.getReceiptDate())
                 .orderByDesc(MesWmOutsourceReceiptDO::getId));
     }

+ 1 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java

@@ -414,6 +414,7 @@ public interface ErrorCodeConstants {
     ErrorCode WM_OUTSOURCE_ISSUE_STATUS_NOT_APPROVED = new ErrorCode(1_040_707_006, "只有待执行出库状态才允许此操作");
     ErrorCode WM_OUTSOURCE_ISSUE_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_707_007, "已完成或已取消的发料单不允许取消");
     ErrorCode WM_OUTSOURCE_ISSUE_LINE_NOT_EXISTS = new ErrorCode(1_040_707_100, "外协发料单行不存在");
+    ErrorCode WM_OUTSOURCE_ISSUE_LINE_ITEM_NOT_IN_BOM = new ErrorCode(1_040_707_101, "发料单行对应的物料不在当前工单的 BOM 列表中");
     ErrorCode WM_OUTSOURCE_ISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_040_707_200, "外协发料单明细不存在");
     ErrorCode WM_OUTSOURCE_ISSUE_WORK_ORDER_TYPE_INVALID = new ErrorCode(1_040_707_008, "工单类型不是外协(代工)类型");
 

+ 8 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderService.java

@@ -58,6 +58,14 @@ public interface MesProWorkOrderService {
      */
     MesProWorkOrderDO getWorkOrder(Long id);
 
+    /**
+     * 根据编码获得生产工单
+     *
+     * @param code 编码
+     * @return 生产工单
+     */
+    MesProWorkOrderDO getWorkOrder(String code);
+
     /**
      * 获得生产工单分页
      *

+ 5 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderServiceImpl.java

@@ -134,6 +134,11 @@ public class MesProWorkOrderServiceImpl implements MesProWorkOrderService {
         return workOrderMapper.selectById(id);
     }
 
+    @Override
+    public MesProWorkOrderDO getWorkOrder(String code) {
+        return workOrderMapper.selectByCode(code);
+    }
+
     @Override
     public PageResult<MesProWorkOrderDO> getWorkOrderPage(MesProWorkOrderPageReqVO pageReqVO) {
         return workOrderMapper.selectPage(pageReqVO);