diff --git a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/admin/dailyplan/vo/DailyPlanWorkPageReqVO.java b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/admin/dailyplan/vo/DailyPlanWorkPageReqVO.java index 8ae4360a..d75bf9da 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/admin/dailyplan/vo/DailyPlanWorkPageReqVO.java +++ b/nl-module-lms/nl-module-lms-server/src/main/java/cn/code/nl/module/lms/controller/admin/dailyplan/vo/DailyPlanWorkPageReqVO.java @@ -2,6 +2,7 @@ package cn.code.nl.module.lms.controller.admin.dailyplan.vo; import cn.code.nl.framework.common.pojo.PageParam; import cn.code.nl.module.lms.enums.DailyPlanOrderStatusEnum; +import cn.code.nl.module.lms.enums.DailyPlanStrategyTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.AssertTrue; import jakarta.validation.constraints.NotNull; @@ -18,6 +19,10 @@ public class DailyPlanWorkPageReqVO extends PageParam { @NotNull(message = "订单状态不能为空") private Integer orderStatus; + @Schema(description = "作业类型:1-备货,2-套管") + @NotNull(message = "作业类型不能为空") + private Integer workType; + @Schema(description = "日计划编码或订单号") private String planOrOrderCode; @@ -29,4 +34,10 @@ public class DailyPlanWorkPageReqVO extends PageParam { return orderStatus == null || DailyPlanOrderStatusEnum.IN_PROGRESS.getCode().equals(orderStatus) || DailyPlanOrderStatusEnum.CANCELED.getCode().equals(orderStatus); } + + @AssertTrue(message = "作业类型只能是备货或套管") + public boolean isWorkTypeValid() { + return workType == null || DailyPlanStrategyTypeEnum.STOCKING.getCode().equals(workType) + || DailyPlanStrategyTypeEnum.SLEEVING.getCode().equals(workType); + } } diff --git a/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml b/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml index 4b8920ce..29a97f6d 100644 --- a/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml +++ b/nl-module-lms/nl-module-lms-server/src/main/resources/mapper/dailyplan/DailyPlanMapper.xml @@ -80,6 +80,10 @@ WHERE deleted = b'0' AND order_status = #{reqVO.orderStatus} AND #{reqVO.orderStatus} IN (1, 3) + AND ( + (#{reqVO.workType} = 1 AND stocked_qty < plan_qty + append_qty) + OR (#{reqVO.workType} = 2 AND sleeved_qty < plan_qty + append_qty) + ) ORDER BY sort_seq ASC, daily_plan_id ASC diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/api/lms/dailyplan/index.ts b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/api/lms/dailyplan/index.ts index 7cb193ae..7a7d9eeb 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/api/lms/dailyplan/index.ts +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/api/lms/dailyplan/index.ts @@ -57,6 +57,7 @@ export namespace LmsDailyPlanApi { materialKeyword?: string; orderStatus: number; planOrOrderCode?: string; + workType: number; } export interface CreateReq { diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/work/index.vue b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/work/index.vue index e883351f..f93f0c43 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/work/index.vue +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/lms/daily-plan/work/index.vue @@ -80,6 +80,7 @@ function handleTabChange() { function handleWorkTypeChange() { weightDrafts.value = {}; updateColumns(); + handleRefresh(); } function handleDetail(row: LmsDailyPlanApi.DailyPlan) { @@ -108,6 +109,7 @@ async function handleSort() { orderStatus: Number(activeOrderStatus.value), pageNo, pageSize, + workType: Number(activeWorkType.value), }); rows.push(...page.list); if (page.list.length === 0 || rows.length >= page.total) break; @@ -173,6 +175,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ pageSize: page.pageSize, ...formValues, orderStatus: Number(activeOrderStatus.value), + workType: Number(activeWorkType.value), }), }, },