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),
}),
},
},