diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundAllocationReqVO.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundAllocationReqVO.java new file mode 100644 index 00000000..c39e01cd --- /dev/null +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundAllocationReqVO.java @@ -0,0 +1,34 @@ +package cn.code.nl.module.wms.controller.admin.iostorinv.vo; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * 入库货位分配参数。一个入库明细对应一个目标货位。 + */ +@Data +public class InboundAllocationReqVO { + + @NotNull(message = "入库单不能为空") + private Long iostorinvId; + /** + * 自动分配时由系统在所选库区中选择一个空闲货位。 + */ + private Boolean autoAllocate; + @NotEmpty(message = "货位分配明细不能为空") + @Valid + private List items; + + @Data + public static class Item { + @NotNull(message = "入库明细不能为空") + private Long iostorinvdtlId; + @NotEmpty(message = "库区不能为空") + private String sectId; + private String structId; + } +} diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundSaveReqVO.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundSaveReqVO.java new file mode 100644 index 00000000..adb56d78 --- /dev/null +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundSaveReqVO.java @@ -0,0 +1,26 @@ +package cn.code.nl.module.wms.controller.admin.iostorinv.vo; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 入库单新增、修改参数。 + */ +@Data +public class InboundSaveReqVO { + + private Long iostorinvId; + @NotEmpty(message = "业务类型不能为空") + private String billType; + @NotEmpty(message = "仓库不能为空") + private String storId; + @NotNull(message = "业务日期不能为空") + private LocalDateTime bizDate; + private String remark; + @NotEmpty(message = "请选择生成状态的组盘数据") + private List groupIds; +} diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundSetPointReqVO.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundSetPointReqVO.java new file mode 100644 index 00000000..23b40912 --- /dev/null +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/InboundSetPointReqVO.java @@ -0,0 +1,19 @@ +package cn.code.nl.module.wms.controller.admin.iostorinv.vo; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * 入库分配设置起点并创建任务参数。 + */ +@Data +public class InboundSetPointReqVO { + + @NotNull(message = "入库单不能为空") + private Long iostorinvId; + @NotNull(message = "入库明细不能为空") + private Long iostorinvdtlId; + @NotEmpty(message = "入库点不能为空") + private String pointCode; +} diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/index.vue b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/index.vue new file mode 100644 index 00000000..70925c33 --- /dev/null +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/index.vue @@ -0,0 +1,181 @@ + + + diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/modules/allocation.vue b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/modules/allocation.vue new file mode 100644 index 00000000..ba831ddf --- /dev/null +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/modules/allocation.vue @@ -0,0 +1,401 @@ + + + + + diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/modules/form.vue b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/modules/form.vue new file mode 100644 index 00000000..05b92ea3 --- /dev/null +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/inbound/modules/form.vue @@ -0,0 +1,505 @@ + + + + + diff --git a/sql/mysql/wms_inbound_menu.sql b/sql/mysql/wms_inbound_menu.sql new file mode 100644 index 00000000..a05362f2 --- /dev/null +++ b/sql/mysql/wms_inbound_menu.sql @@ -0,0 +1,70 @@ +-- 入库管理菜单。接口沿用出入库单权限,脚本可重复执行。 +SET @wms_order_menu_id = ( + SELECT id FROM system_menu + WHERE (id = 6400 OR path IN ('order', 'wms-business')) + AND deleted = b'0' + ORDER BY path = 'wms-business' DESC, id = 6400 DESC + LIMIT 1 +); + +INSERT INTO system_menu + (id, name, permission, type, sort, parent_id, path, icon, component, + component_name, status, visible, keep_alive, always_show, + creator, create_time, updater, update_time, deleted) +SELECT 6480, '入库管理', '', 2, 1, @wms_order_menu_id, 'inbound', 'ep:download', + 'wms/inbound/index', 'WmsInboundOrder', 0, b'1', b'1', b'1', + '1', NOW(), '1', NOW(), b'0' + WHERE @wms_order_menu_id IS NOT NULL + AND NOT EXISTS ( + SELECT 1 FROM system_menu + WHERE parent_id = @wms_order_menu_id + AND path = 'inbound' + AND deleted = b'0' + ); + +SET @inbound_menu_id = ( + SELECT id FROM system_menu + WHERE parent_id = @wms_order_menu_id + AND path = 'inbound' + AND deleted = b'0' + LIMIT 1 +); + +INSERT INTO system_menu + (id, name, permission, type, sort, parent_id, path, icon, component, + component_name, status, visible, keep_alive, always_show, + creator, create_time, updater, update_time, deleted) +SELECT 6481, '入库单查询', 'wms:iostor-inv:query', 3, 1, @inbound_menu_id, + '', '#', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' + WHERE @inbound_menu_id IS NOT NULL + AND NOT EXISTS ( + SELECT 1 FROM system_menu + WHERE parent_id = @inbound_menu_id AND permission = 'wms:iostor-inv:query' + AND deleted = b'0' + ); + +INSERT INTO system_menu + (id, name, permission, type, sort, parent_id, path, icon, component, + component_name, status, visible, keep_alive, always_show, + creator, create_time, updater, update_time, deleted) +SELECT 6482, '入库单创建', 'wms:iostor-inv:create', 3, 2, @inbound_menu_id, + '', '#', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' + WHERE @inbound_menu_id IS NOT NULL + AND NOT EXISTS ( + SELECT 1 FROM system_menu + WHERE parent_id = @inbound_menu_id AND permission = 'wms:iostor-inv:create' + AND deleted = b'0' + ); + +INSERT INTO system_menu + (id, name, permission, type, sort, parent_id, path, icon, component, + component_name, status, visible, keep_alive, always_show, + creator, create_time, updater, update_time, deleted) +SELECT 6483, '入库单更新', 'wms:iostor-inv:update', 3, 3, @inbound_menu_id, + '', '#', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' + WHERE @inbound_menu_id IS NOT NULL + AND NOT EXISTS ( + SELECT 1 FROM system_menu + WHERE parent_id = @inbound_menu_id AND permission = 'wms:iostor-inv:update' + AND deleted = b'0' + );