浏览代码

save
1.商品管理
2.BOM清单

wks 4 月之前
父节点
当前提交
9217ee81fd
共有 100 个文件被更改,包括 1208 次插入120 次删除
  1. 6 2
      pom.xml
  2. 6 0
      ruoyi-admin-wms/pom.xml
  3. 42 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/BomController.java
  4. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/CheckOrderController.java
  5. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/CheckOrderDetailController.java
  6. 4 4
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/InventoryController.java
  7. 4 4
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/InventoryHistoryController.java
  8. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ItemBrandController.java
  9. 6 4
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ItemController.java
  10. 2 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ItemSkuController.java
  11. 3 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/MerchantController.java
  12. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/MovementOrderController.java
  13. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/MovementOrderDetailController.java
  14. 3 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ReceiptOrderController.java
  15. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ReceiptOrderDetailController.java
  16. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ShipmentOrderController.java
  17. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ShipmentOrderDetailController.java
  18. 73 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/TaskController.java
  19. 2 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/WarehouseController.java
  20. 6 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/BaseOrderBo.java
  21. 12 4
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/BaseOrderDetailBo.java
  22. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/CheckOrderBo.java
  23. 0 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/CheckOrderDetailBo.java
  24. 9 4
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/InventoryBo.java
  25. 12 8
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/InventoryHistoryBo.java
  26. 10 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemBo.java
  27. 7 6
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemBrandBo.java
  28. 3 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemCategoryBo.java
  29. 21 4
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemSkuBo.java
  30. 4 4
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/MerchantBo.java
  31. 2 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/MovementOrderBo.java
  32. 2 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/MovementOrderDetailBo.java
  33. 4 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ReceiptOrderBo.java
  34. 4 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ShipmentOrderBo.java
  35. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ShipmentOrderDetailBo.java
  36. 25 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitAuxiliaryBo.java
  37. 35 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitConfigBo.java
  38. 3 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/WarehouseBo.java
  39. 18 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/constant/ItemType.java
  40. 18 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/constant/TaskStatus.java
  41. 26 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/BomAddDto.java
  42. 26 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/BomItemSkuDto.java
  43. 21 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/BomListQueryDto.java
  44. 32 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/TaskAddDto.java
  45. 24 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/TaskItemSkuDto.java
  46. 37 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/WmsTaskQueryDto.java
  47. 3 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/BaseOrder.java
  48. 17 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/BaseOrderDetail.java
  49. 1 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/CheckOrderDetail.java
  50. 11 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Inventory.java
  51. 11 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/InventoryHistory.java
  52. 6 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Item.java
  53. 4 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ItemBrand.java
  54. 20 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ItemSku.java
  55. 13 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Merchant.java
  56. 2 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/MovementOrder.java
  57. 6 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/MovementOrderDetail.java
  58. 2 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ReceiptOrder.java
  59. 5 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ReceiptOrderDetail.java
  60. 2 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ShipmentOrder.java
  61. 8 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ShipmentOrderDetail.java
  62. 1 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Warehouse.java
  63. 62 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsBomItem.java
  64. 45 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsBomVersion.java
  65. 97 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsTask.java
  66. 57 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsTaskDetails.java
  67. 46 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitAuxiliary.java
  68. 49 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitConfig.java
  69. 1 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/BaseOrderDetailVo.java
  70. 51 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/BomListVo.java
  71. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/CheckOrderDetailVo.java
  72. 1 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/InventoryHistoryVo.java
  73. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemCategoryVo.java
  74. 2 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemSkuMapVo.java
  75. 19 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemSkuVo.java
  76. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MerchantVo.java
  77. 0 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MovementOrderDetailVo.java
  78. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MovementOrderVo.java
  79. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ReceiptOrderDetailVo.java
  80. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ShipmentOrderDetailVo.java
  81. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ShipmentOrderVo.java
  82. 2 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/WarehouseVo.java
  83. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/CheckOrderDetailMapper.java
  84. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/CheckOrderMapper.java
  85. 1 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/InventoryMapper.java
  86. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ItemBrandMapper.java
  87. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/MerchantMapper.java
  88. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/MovementOrderDetailMapper.java
  89. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/MovementOrderMapper.java
  90. 0 3
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ReceiptOrderDetailMapper.java
  91. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ShipmentOrderDetailMapper.java
  92. 1 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ShipmentOrderMapper.java
  93. 18 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsBomItemMapper.java
  94. 29 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsBomVersionMapper.java
  95. 18 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsTaskDetailsMapper.java
  96. 18 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsTaskMapper.java
  97. 18 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsUnitAuxiliaryMapper.java
  98. 18 0
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsUnitConfigMapper.java
  99. 2 1
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/CheckOrderDetailService.java
  100. 5 2
      ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/CheckOrderService.java

+ 6 - 2
pom.xml

@@ -46,7 +46,7 @@
         <aws-java-sdk-s3.version>1.12.540</aws-java-sdk-s3.version>
         <!-- SMS 配置 -->
         <sms4j.version>2.2.0</sms4j.version>
-
+        <knife4j.version>4.4.0</knife4j.version>
         <!-- 插件版本 -->
         <maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
         <maven-war-plugin.version>3.2.2</maven-war-plugin.version>
@@ -325,7 +325,11 @@
                 <artifactId>ruoyi-wms-service</artifactId>
                 <version>${revision}</version>
             </dependency>
-
+            <dependency>
+                <groupId>com.github.xiaoymin</groupId>
+                <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
+                <version>${knife4j.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 6 - 0
ruoyi-admin-wms/pom.xml

@@ -62,6 +62,12 @@
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
+            <version>${knife4j.version}</version>
+        </dependency>
+
         <!-- skywalking 整合 logback -->
 <!--        <dependency>-->
 <!--            <groupId>org.apache.skywalking</groupId>-->

+ 42 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/BomController.java

@@ -0,0 +1,42 @@
+package com.ruoyi.wms.controller;
+
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.wms.domain.dto.BomAddDto;
+import com.ruoyi.wms.domain.dto.BomListQueryDto;
+import com.ruoyi.wms.domain.vo.BomListVo;
+import com.ruoyi.wms.service.WmsBomVersionService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/wms/bom")
+@Tag(name = "BOM配置")
+public class BomController {
+
+    private final WmsBomVersionService wmsBomVersionService;
+
+    @Operation(summary = "物料清单查询")
+    @GetMapping("/list")
+    public R<List<BomListVo>> list(@Validated BomListQueryDto bomListQueryDto) {
+        List<BomListVo> bomConfig = wmsBomVersionService.getBomConfig(bomListQueryDto);
+        return R.ok(bomConfig);
+    }
+
+    @Operation(summary = "添加BOM配置")
+    @PostMapping
+    public R<Object> add(@RequestBody BomAddDto bomAddDto) {
+        wmsBomVersionService.addBomConfig(bomAddDto);
+        return R.ok("添加成功");
+    }
+
+
+}

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/CheckOrderController.java

@@ -65,7 +65,7 @@ public class CheckOrderController extends BaseController {
     @SaCheckPermission("wms:check:all")
     @GetMapping("/{id}")
     public R<CheckOrderVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                   @PathVariable Long id) {
         return R.ok(checkOrderService.queryById(id));
     }
 

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/CheckOrderDetailController.java

@@ -65,7 +65,7 @@ public class CheckOrderDetailController extends BaseController {
     @SaCheckPermission("wms:check:all")
     @GetMapping("/{id}")
     public R<CheckOrderDetailVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                         @PathVariable Long id) {
         return R.ok(checkOrderDetailService.queryById(id));
     }
 

+ 4 - 4
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/InventoryController.java

@@ -11,15 +11,15 @@ import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.web.core.BaseController;
+import com.ruoyi.wms.domain.bo.InventoryBo;
+import com.ruoyi.wms.domain.vo.InventoryVo;
+import com.ruoyi.wms.service.InventoryService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import com.ruoyi.wms.domain.bo.InventoryBo;
-import com.ruoyi.wms.domain.vo.InventoryVo;
-import com.ruoyi.wms.service.InventoryService;
 
 import java.util.List;
 
@@ -83,7 +83,7 @@ public class InventoryController extends BaseController {
     @SaCheckPermission("wms:inventory:all")
     @GetMapping("/{id}")
     public R<InventoryVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                  @PathVariable Long id) {
         return R.ok(inventoryService.queryById(id));
     }
 

+ 4 - 4
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/InventoryHistoryController.java

@@ -11,15 +11,15 @@ import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.web.core.BaseController;
+import com.ruoyi.wms.domain.bo.InventoryHistoryBo;
+import com.ruoyi.wms.domain.vo.InventoryHistoryVo;
+import com.ruoyi.wms.service.InventoryHistoryService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import com.ruoyi.wms.domain.bo.InventoryHistoryBo;
-import com.ruoyi.wms.domain.vo.InventoryHistoryVo;
-import com.ruoyi.wms.service.InventoryHistoryService;
 
 import java.util.List;
 
@@ -65,7 +65,7 @@ public class InventoryHistoryController extends BaseController {
     @SaCheckPermission("wms:inventoryHistory:all")
     @GetMapping("/{id}")
     public R<InventoryHistoryVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                         @PathVariable Long id) {
         return R.ok(inventoryHistoryService.queryById(id));
     }
 

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ItemBrandController.java

@@ -73,7 +73,7 @@ public class ItemBrandController extends BaseController {
     @SaCheckPermission("wms:itemBrand:list")
     @GetMapping("/{id}")
     public R<ItemBrandVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                  @PathVariable Long id) {
         return R.ok(itemBrandService.queryById(id));
     }
 

+ 6 - 4
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ItemController.java

@@ -11,14 +11,14 @@ import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.web.core.BaseController;
+import com.ruoyi.wms.domain.bo.ItemBo;
+import com.ruoyi.wms.domain.vo.ItemVo;
+import com.ruoyi.wms.service.ItemService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import com.ruoyi.wms.domain.bo.ItemBo;
-import com.ruoyi.wms.domain.vo.ItemVo;
-import com.ruoyi.wms.service.ItemService;
 
 import java.util.List;
 
@@ -67,7 +67,7 @@ public class ItemController extends BaseController {
     @GetMapping("/{id}")
     @SaCheckPermission("wms:item:list")
     public R<ItemVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                             @PathVariable Long id) {
         return R.ok(itemService.queryById(id));
     }
 
@@ -82,6 +82,7 @@ public class ItemController extends BaseController {
         itemService.insertByForm(form);
         return R.ok();
     }
+
     /**
      * 修改物料
      */
@@ -107,4 +108,5 @@ public class ItemController extends BaseController {
         itemService.deleteById(id);
         return R.ok();
     }
+
 }

+ 2 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ItemSkuController.java

@@ -39,6 +39,7 @@ public class ItemSkuController extends BaseController {
     public TableDataInfo<ItemSkuMapVo> list(ItemSkuBo bo, PageQuery pageQuery) {
         return itemSkuService.queryPageList(bo, pageQuery);
     }
+
     /**
      * 查询sku信息列表
      */
@@ -67,7 +68,7 @@ public class ItemSkuController extends BaseController {
     @GetMapping("/{id}")
     @SaCheckPermission("wms:item:list")
     public R<ItemSkuVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                @PathVariable Long id) {
         return R.ok(itemSkuService.queryById(id));
     }
 

+ 3 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/MerchantController.java

@@ -11,14 +11,14 @@ import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.web.core.BaseController;
+import com.ruoyi.wms.domain.bo.MerchantBo;
 import com.ruoyi.wms.domain.vo.MerchantVo;
+import com.ruoyi.wms.service.MerchantService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import com.ruoyi.wms.domain.bo.MerchantBo;
-import com.ruoyi.wms.service.MerchantService;
 
 import java.util.List;
 
@@ -73,7 +73,7 @@ public class MerchantController extends BaseController {
     @SaCheckPermission("wms:merchant:list")
     @GetMapping("/{id}")
     public R<MerchantVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                 @PathVariable Long id) {
         return R.ok(merchantService.queryById(id));
     }
 

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/MovementOrderController.java

@@ -65,7 +65,7 @@ public class MovementOrderController extends BaseController {
     @SaCheckPermission("wms:movement:all")
     @GetMapping("/{id}")
     public R<MovementOrderVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                      @PathVariable Long id) {
         return R.ok(movementOrderService.queryById(id));
     }
 

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/MovementOrderDetailController.java

@@ -65,7 +65,7 @@ public class MovementOrderDetailController extends BaseController {
     @SaCheckPermission("wms:movement:all")
     @GetMapping("/{id}")
     public R<MovementOrderDetailVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                            @PathVariable Long id) {
         return R.ok(movementOrderDetailService.queryById(id));
     }
 

+ 3 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ReceiptOrderController.java

@@ -12,14 +12,14 @@ import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.web.core.BaseController;
+import com.ruoyi.wms.domain.bo.ReceiptOrderBo;
+import com.ruoyi.wms.domain.vo.ReceiptOrderVo;
+import com.ruoyi.wms.service.ReceiptOrderService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import com.ruoyi.wms.domain.bo.ReceiptOrderBo;
-import com.ruoyi.wms.domain.vo.ReceiptOrderVo;
-import com.ruoyi.wms.service.ReceiptOrderService;
 
 import java.util.List;
 

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ReceiptOrderDetailController.java

@@ -65,7 +65,7 @@ public class ReceiptOrderDetailController extends BaseController {
     @SaCheckPermission("wms:receipt:all")
     @GetMapping("/{id}")
     public R<ReceiptOrderDetailVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                           @PathVariable Long id) {
         return R.ok(receiptOrderDetailService.queryById(id));
     }
 

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ShipmentOrderController.java

@@ -65,7 +65,7 @@ public class ShipmentOrderController extends BaseController {
     @SaCheckPermission("wms:shipment:all")
     @GetMapping("/{id}")
     public R<ShipmentOrderVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                      @PathVariable Long id) {
         return R.ok(shipmentOrderService.queryById(id));
     }
 

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/ShipmentOrderDetailController.java

@@ -65,7 +65,7 @@ public class ShipmentOrderDetailController extends BaseController {
     @SaCheckPermission("wms:shipment:all")
     @GetMapping("/{id}")
     public R<ShipmentOrderDetailVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                            @PathVariable Long id) {
         return R.ok(shipmentOrderDetailService.queryById(id));
     }
 

+ 73 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/TaskController.java

@@ -0,0 +1,73 @@
+package com.ruoyi.wms.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.wms.domain.dto.TaskAddDto;
+import com.ruoyi.wms.domain.dto.WmsTaskQueryDto;
+import com.ruoyi.wms.domain.entity.WmsTask;
+import com.ruoyi.wms.service.WmsTaskService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/wms/task")
+@Tag(name = "生产管理")
+public class TaskController {
+
+    private final WmsTaskService wmsTaskService;
+
+    @Operation(summary = "任务单列表")
+    @GetMapping("/list")
+    public R<List<WmsTask>> get(WmsTaskQueryDto wmsTaskQueryDto) {
+        List<WmsTask> list = wmsTaskService.lambdaQuery()
+            .eq(StringUtils.isNotEmpty(wmsTaskQueryDto.getTaskCode()), WmsTask::getTaskCode, wmsTaskQueryDto.getTaskCode())
+            .ge(!ObjectUtils.isEmpty(wmsTaskQueryDto.getStartDateFrom()), WmsTask::getStartDate, wmsTaskQueryDto.getStartDateFrom())
+            .le(!ObjectUtils.isEmpty(wmsTaskQueryDto.getStartDateTo()), WmsTask::getStartDate, wmsTaskQueryDto.getStartDateTo())
+            .ge(!ObjectUtils.isEmpty(wmsTaskQueryDto.getEndDateFrom()), WmsTask::getEndDate, wmsTaskQueryDto.getEndDateFrom())
+            .le(!ObjectUtils.isEmpty(wmsTaskQueryDto.getEndDateTo()), WmsTask::getEndDate, wmsTaskQueryDto.getEndDateTo())
+            .eq(!ObjectUtils.isEmpty(wmsTaskQueryDto.getStatus()), WmsTask::getStatus, wmsTaskQueryDto.getStatus())
+            .orderByDesc(WmsTask::getCreateTime)
+            .list();
+        return R.ok(list);
+    }
+
+    @Operation(summary = "添加任务单")
+    @PostMapping
+    public R<Object> add(@Validated @RequestBody TaskAddDto taskAddDto) {
+        wmsTaskService.addTask(taskAddDto);
+        return R.ok("添加成功");
+    }
+
+    @Operation(summary = "修改任务单")
+    @PutMapping("{id}")
+    public R<Object> modify(@Validated @RequestBody TaskAddDto taskAddDto, @PathVariable Long id) {
+        wmsTaskService.modifyTask(taskAddDto, id);
+        return R.ok("修改成功");
+    }
+
+    @Operation(summary = "生产完成")
+    @PutMapping("/complete/{id}")
+    public R<Object> complete(@PathVariable String id) {
+        wmsTaskService.complete(id);
+        return R.ok("生产完成");
+    }
+
+    @Operation(summary = "作废")
+    @PutMapping("/revoke/{id}")
+    public R<Object> revoke(@PathVariable String id) {
+        wmsTaskService.revoke(id);
+        return R.ok("作废成功");
+    }
+
+
+}
+

+ 2 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/controller/WarehouseController.java

@@ -11,14 +11,14 @@ import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
 import com.ruoyi.common.web.core.BaseController;
+import com.ruoyi.wms.domain.bo.WarehouseBo;
+import com.ruoyi.wms.domain.vo.WarehouseVo;
 import com.ruoyi.wms.service.WarehouseService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import com.ruoyi.wms.domain.bo.WarehouseBo;
-import com.ruoyi.wms.domain.vo.WarehouseVo;
 
 import java.util.List;
 

+ 6 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/BaseOrderBo.java

@@ -8,22 +8,26 @@ import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serial;
 import java.math.BigDecimal;
 import java.util.List;
 
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class BaseOrderBo<T extends BaseOrderDetailBo> extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = -3349542541257421123L;
+
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 业务单号
      */
-    @NotBlank(message = "入库单号单号不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "入库单号单号不能为空", groups = {AddGroup.class, EditGroup.class})
     private String orderNo;
 
     /**

+ 12 - 4
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/BaseOrderDetailBo.java

@@ -7,38 +7,45 @@ import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serial;
 import java.math.BigDecimal;
 
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class BaseOrderDetailBo extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 7821924599074651238L;
+
     /**
      * 入库单号
      */
-    @NotNull(message = "单号不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "单号不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long orderId;
+
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 规格id
      */
-    @NotNull(message = "规格id不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "规格id不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long skuId;
 
     /**
      * 入库数量
      */
-    @NotNull(message = "出入库数量不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "出入库数量不能为空", groups = {AddGroup.class, EditGroup.class})
     private BigDecimal quantity;
 
     /**
      * 金额
      */
     private BigDecimal amount;
+
     /**
      * 备注
      */
@@ -53,6 +60,7 @@ public class BaseOrderDetailBo extends BaseEntity {
      * 更新前数量
      */
     private BigDecimal beforeQuantity;
+
     /**
      * 更新后数量
      */

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/CheckOrderBo.java

@@ -22,6 +22,6 @@ public class CheckOrderBo extends BaseOrderBo<CheckOrderDetailBo> {
     /**
      * 仓库id
      */
-    @NotNull(message = "仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long warehouseId;
 }

+ 0 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/CheckOrderDetailBo.java

@@ -1,10 +1,7 @@
 package com.ruoyi.wms.domain.bo;
 
-import com.ruoyi.common.core.validate.AddGroup;
-import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.wms.domain.entity.CheckOrderDetail;
 import io.github.linpeilie.annotations.AutoMapper;
-import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 

+ 9 - 4
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/InventoryBo.java

@@ -26,25 +26,25 @@ public class InventoryBo extends BaseEntity {
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 规格ID
      */
-    @NotNull(message = "规格ID不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "规格ID不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long skuId;
 
     /**
      * 所属仓库
      */
-    @NotNull(message = "所属仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "所属仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long warehouseId;
 
     /**
      * 库存
      */
-    @NotNull(message = "库存不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "库存不能为空", groups = {AddGroup.class, EditGroup.class})
     private BigDecimal quantity;
 
     /**
@@ -58,9 +58,14 @@ public class InventoryBo extends BaseEntity {
     private BigDecimal minQuantity;
 
     private String itemName;
+
     private String itemCode;
+
     private String skuName;
+
     private String skuCode;
+
     private Long itemId;
+
     private Long itemCategory;
 }

+ 12 - 8
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/InventoryHistoryBo.java

@@ -27,31 +27,31 @@ public class InventoryHistoryBo extends BaseHistoryEntity {
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 操作id(出库、入库、库存移动表单id)
      */
-    @NotNull(message = "操作id(出库、入库、库存移动表单id)不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "操作id(出库、入库、库存移动表单id)不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long orderId;
 
     /**
      * 操作单号(入库、出库、移库、盘库单号)
      */
-    @NotNull(message = "操作单号(入库、出库、移库、盘库单号)不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "操作单号(入库、出库、移库、盘库单号)不能为空", groups = {AddGroup.class, EditGroup.class})
     private String orderNo;
 
     /**
      * 订单类型
      */
-    @NotNull(message = "订单类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "订单类型不能为空", groups = {AddGroup.class, EditGroup.class})
     private Integer orderType;
 
     /**
      * 物料ID
      */
-    @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "物料ID不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long skuId;
 
     /**
@@ -62,27 +62,31 @@ public class InventoryHistoryBo extends BaseHistoryEntity {
     /**
      * 库存变化
      */
-    @NotNull(message = "库存变化不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "库存变化不能为空", groups = {AddGroup.class, EditGroup.class})
     private BigDecimal quantity;
 
     /**
      * 备注
      */
-    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "备注不能为空", groups = {AddGroup.class, EditGroup.class})
     private String remark;
 
     /**
      * 所属仓库
      */
-    @NotNull(message = "所属仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "所属仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long warehouseId;
 
     private String itemName;
+
     private String itemCode;
+
     private String skuName;
+
     private String skuCode;
 
     private String startTime;
+
     private String endTime;
 
 }

+ 10 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemBo.java

@@ -20,7 +20,7 @@ public class ItemBo extends BaseEntity {
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
@@ -36,15 +36,22 @@ public class ItemBo extends BaseEntity {
     /**
      * 名称
      */
-    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "名称不能为空", groups = {AddGroup.class, EditGroup.class})
     private String itemName;
 
     /**
      * 分类
      */
-    @NotBlank(message = "分类不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "分类不能为空", groups = {AddGroup.class, EditGroup.class})
     private String itemCategory;
 
+    /**
+     * @see com.ruoyi.wms.domain.constant.ItemType
+     * 商品类型
+     */
+//    @NotNull(message = "商品类型不能为空")
+    private Integer itemType;
+
     /**
      * 单位类别
      */

+ 7 - 6
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemBrandBo.java

@@ -1,13 +1,14 @@
 package com.ruoyi.wms.domain.bo;
 
-import com.ruoyi.wms.domain.entity.ItemBrand;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import com.ruoyi.wms.domain.entity.ItemBrand;
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-import io.github.linpeilie.annotations.AutoMapper;
 
 
 /**
@@ -23,15 +24,15 @@ import io.github.linpeilie.annotations.AutoMapper;
 public class ItemBrandBo extends BaseEntity {
 
     /**
-     * 
+     *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 品牌名称
      */
-    @NotBlank(message = "品牌名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "品牌名称不能为空", groups = {AddGroup.class, EditGroup.class})
     private String brandName;
 
 

+ 3 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemCategoryBo.java

@@ -3,12 +3,12 @@ package com.ruoyi.wms.domain.bo;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import com.ruoyi.wms.domain.entity.ItemCategory;
 import io.github.linpeilie.annotations.AutoMapper;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import com.ruoyi.wms.domain.entity.ItemCategory;
 
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -18,7 +18,7 @@ public class ItemCategoryBo extends BaseEntity {
     /**
      * 物料类型id
      */
-    @NotNull(message = "物料类型id不能为空", groups = { EditGroup.class })
+    @NotNull(message = "物料类型id不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
@@ -29,7 +29,7 @@ public class ItemCategoryBo extends BaseEntity {
     /**
      * 物料类型名称
      */
-    @NotBlank(message = "物料类型名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "物料类型名称不能为空", groups = {AddGroup.class, EditGroup.class})
     private String categoryName;
 
     /**

+ 21 - 4
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ItemSkuBo.java

@@ -3,12 +3,12 @@ package com.ruoyi.wms.domain.bo;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import com.ruoyi.wms.domain.entity.ItemSku;
 import io.github.linpeilie.annotations.AutoMapper;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import com.ruoyi.wms.domain.entity.ItemSku;
 
 import java.math.BigDecimal;
 
@@ -20,19 +20,19 @@ public class ItemSkuBo extends BaseEntity {
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 规格名称
      */
-    @NotBlank(message = "规格名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "规格名称不能为空", groups = {AddGroup.class, EditGroup.class})
     private String skuName;
 
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long itemId;
 
     /**
@@ -90,10 +90,27 @@ public class ItemSkuBo extends BaseEntity {
      */
     private String itemCode;
 
+    /**
+     * 单位
+     */
+    private String unit;
+
+    /**
+     * 是否是多单位 0 否 1 是
+     */
+    private Integer isMultiUom;
+
     /**
      * 商品分类
      */
     private String itemCategory;
 
     private Long itemBrand;
+
+    /**
+     * 多单位选中 必传
+     */
+    private UnitConfigBo unitConfig;
+
+
 }

+ 4 - 4
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/MerchantBo.java

@@ -26,25 +26,25 @@ public class MerchantBo extends BaseEntity {
     /**
      * id
      */
-    @NotNull(message = "id不能为空", groups = { EditGroup.class })
+    @NotNull(message = "id不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
      * 编号
      */
-    @NotBlank(message = "编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "编号不能为空", groups = {AddGroup.class, EditGroup.class})
     private String merchantCode;
 
     /**
      * 名称
      */
-    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "名称不能为空", groups = {AddGroup.class, EditGroup.class})
     private String merchantName;
 
     /**
      * 企业类型
      */
-    @NotNull(message = "企业类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "企业类型不能为空", groups = {AddGroup.class, EditGroup.class})
     private Integer merchantType;
 
     /**

+ 2 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/MovementOrderBo.java

@@ -23,13 +23,13 @@ public class MovementOrderBo extends BaseOrderBo<MovementOrderDetailBo> {
     /**
      * 源仓库
      */
-    @NotNull(message = "源仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "源仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long sourceWarehouseId;
 
     /**
      * 目标仓库
      */
-    @NotNull(message = "目标仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "目标仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long targetWarehouseId;
 
 

+ 2 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/MovementOrderDetailBo.java

@@ -28,13 +28,13 @@ public class MovementOrderDetailBo extends BaseOrderDetailBo {
     /**
      * 源仓库
      */
-    @NotNull(message = "源仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "源仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long sourceWarehouseId;
 
     /**
      * 目标仓库
      */
-    @NotNull(message = "目标仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "目标仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long targetWarehouseId;
 
 }

+ 4 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ReceiptOrderBo.java

@@ -23,21 +23,23 @@ public class ReceiptOrderBo extends BaseOrderBo<ReceiptOrderDetailBo> {
     /**
      * 入库类型
      */
-    @NotNull(message = "入库类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "入库类型不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long optType;
 
     /**
      * 订单号
      */
     private String bizOrderNo;
+
     /**
      * 对接商户
      */
     private Long merchantId;
+
     /**
      * 仓库id
      */
-    @NotNull(message = "仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long warehouseId;
 
 }

+ 4 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ShipmentOrderBo.java

@@ -22,20 +22,22 @@ public class ShipmentOrderBo extends BaseOrderBo<ShipmentOrderDetailBo> {
     /**
      * 入库类型
      */
-    @NotNull(message = "出库类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "出库类型不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long optType;
 
     /**
      * 订单号
      */
     private String bizOrderNo;
+
     /**
      * 对接商户
      */
     private Long merchantId;
+
     /**
      * 仓库id
      */
-    @NotNull(message = "仓库不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "仓库不能为空", groups = {AddGroup.class, EditGroup.class})
     private Long warehouseId;
 }

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/ShipmentOrderDetailBo.java

@@ -19,6 +19,6 @@ import lombok.EqualsAndHashCode;
     @AutoMapper(target = ShipmentOrderDetail.class, reverseConvertGenerate = false),
     @AutoMapper(target = InventoryBo.class, reverseConvertGenerate = false)
 })
-public class ShipmentOrderDetailBo extends BaseOrderDetailBo{
+public class ShipmentOrderDetailBo extends BaseOrderDetailBo {
 
 }

+ 25 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitAuxiliaryBo.java

@@ -0,0 +1,25 @@
+package com.ruoyi.wms.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class UnitAuxiliaryBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1838451149733951833L;
+
+    /**
+     * 辅助单位
+     */
+    private String auxiliaryUnit;
+
+    /**
+     * 数量
+     */
+    private Integer quantity;
+
+
+}

+ 35 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/UnitConfigBo.java

@@ -0,0 +1,35 @@
+package com.ruoyi.wms.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class UnitConfigBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 5686788542442756219L;
+
+    /**
+     * 出库默认单位
+     */
+    private String outboundUnit;
+
+    /**
+     * 入库默认单位
+     */
+    private String warehousingUnit;
+
+    /**
+     * 主单位
+     */
+    private String mainUnit;
+
+    /**
+     * 辅助单位
+     */
+    private List<UnitAuxiliaryBo> unitAuxiliaryBo;
+
+}

+ 3 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/bo/WarehouseBo.java

@@ -3,12 +3,12 @@ package com.ruoyi.wms.domain.bo;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import com.ruoyi.wms.domain.entity.Warehouse;
 import io.github.linpeilie.annotations.AutoMapper;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import com.ruoyi.wms.domain.entity.Warehouse;
 
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -18,7 +18,7 @@ public class WarehouseBo extends BaseEntity {
     /**
      *
      */
-    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    @NotNull(message = "不能为空", groups = {EditGroup.class})
     private Long id;
 
     /**
@@ -29,7 +29,7 @@ public class WarehouseBo extends BaseEntity {
     /**
      * 名称
      */
-    @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "名称不能为空", groups = {AddGroup.class, EditGroup.class})
     private String warehouseName;
 
     /**

+ 18 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/constant/ItemType.java

@@ -0,0 +1,18 @@
+package com.ruoyi.wms.domain.constant;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum ItemType {
+
+    ITEM_TYPE_1(1, "原料"),
+    ITEM_TYPE_2(2, "成品"),
+    ITEM_TYPE_3(3, "包材");
+
+    private final Integer code;
+
+    private final String description;
+
+}

+ 18 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/constant/TaskStatus.java

@@ -0,0 +1,18 @@
+package com.ruoyi.wms.domain.constant;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+public enum TaskStatus {
+
+    TASK_STATUS_1(1, "待生产"),
+    TASK_STATUS_2(2, "生产完成"),
+    TASK_STATUS_3(3, "已作废");
+
+    private final Integer code;
+
+    private final String description;
+
+}

+ 26 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/BomAddDto.java

@@ -0,0 +1,26 @@
+package com.ruoyi.wms.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@Schema(description = "BOM配置添加对象")
+public class BomAddDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2695006982750992769L;
+
+    @Schema(description = "BOM版本")
+    private String version;
+
+    @Schema(description = "物料ID")
+    private Long itemSkuId;
+
+    @Schema(description = "BOM 物料列表")
+    private List<BomItemSkuDto> bomItemSkuList;
+
+}

+ 26 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/BomItemSkuDto.java

@@ -0,0 +1,26 @@
+package com.ruoyi.wms.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@Schema(description = "物料信息")
+public class BomItemSkuDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 6695899689314579287L;
+
+    @Schema(description = "物料id")
+    private Long bomItemSkuId;
+
+    @Schema(description = "数量")
+    private String quantity;
+
+    @Schema(description = "单位")
+    private String unit;
+
+
+}

+ 21 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/BomListQueryDto.java

@@ -0,0 +1,21 @@
+package com.ruoyi.wms.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class BomListQueryDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2850719004543477185L;
+
+    @Schema(description = "商品sku ID")
+    private Long skuItemId;
+
+    @Schema(description = "BOM版本 ID")
+    private Long bomVersionId;
+
+}

+ 32 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/TaskAddDto.java

@@ -0,0 +1,32 @@
+package com.ruoyi.wms.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class TaskAddDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 161987080188139835L;
+
+    @Schema(description = "生产开始时间")
+    @NotNull(message = "生产开始时间不能为空")
+    private Date startDate;
+
+    @Schema(description = "生产结束时间")
+    @NotNull(message = "生产结束时间不能为空")
+    private Date endDate;
+
+    @Schema(description = "备注")
+    private String remark;
+
+    @Schema(description = "生产物料信息")
+    private List<TaskItemSkuDto> taskItemSkuDtoList;
+
+}

+ 24 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/TaskItemSkuDto.java

@@ -0,0 +1,24 @@
+package com.ruoyi.wms.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class TaskItemSkuDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1326821484416562414L;
+
+    @Schema(description = "物料id")
+    private Long taskItemSkuId;
+
+    @Schema(description = "Bom 版本")
+    private Long versionId;
+
+    @Schema(description = "生产数量")
+    private Integer quantity;
+
+}

+ 37 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/dto/WmsTaskQueryDto.java

@@ -0,0 +1,37 @@
+package com.ruoyi.wms.domain.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class WmsTaskQueryDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 5105679802142451246L;
+
+    @Schema(description = "任务编号")
+    private String taskCode;
+
+    @Schema(description = "开始时间起")
+    private Date startDateFrom;
+
+    @Schema(description = "开始时间到")
+    private Date startDateTo;
+
+    @Schema(description = "开始时间起")
+    private Date endDateFrom;
+
+    @Schema(description = "开始时间到")
+    private Date endDateTo;
+
+    @Schema(description = "状态")
+    private Integer status;
+
+    @Schema(description = "创建时间")
+    private Date createTime;
+
+}

+ 3 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/BaseOrder.java

@@ -16,6 +16,7 @@ public class BaseOrder extends BaseEntity {
      */
     @TableId(value = "id")
     private Long id;
+
     /**
      * 入库单号
      */
@@ -25,10 +26,12 @@ public class BaseOrder extends BaseEntity {
      * 商品总数
      */
     private BigDecimal totalQuantity;
+
     /**
      * 订单总金额
      */
     private BigDecimal totalAmount;
+
     /**
      * 订单状态
      */

+ 17 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/BaseOrderDetail.java

@@ -4,33 +4,49 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import lombok.experimental.SuperBuilder;
 
+import java.io.Serial;
 import java.math.BigDecimal;
 
 @Data
-@EqualsAndHashCode(callSuper=true)
+@EqualsAndHashCode(callSuper = true)
 public class BaseOrderDetail extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = -7767802229401099891L;
+
     /**
      *
      */
     @TableId(value = "id")
     private Long id;
+
     /**
      * 入库单号
      */
     private Long orderId;
+
     /**
      * 规格id
      */
     private Long skuId;
+
     /**
      * 入库数量
      */
     private BigDecimal quantity;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
     /**
      * 金额
      */
     private BigDecimal amount;
+
     /**
      * 备注
      */

+ 1 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/CheckOrderDetail.java

@@ -21,6 +21,7 @@ public class CheckOrderDetail extends BaseOrderDetail {
      * 盘点数量
      */
     private BigDecimal checkQuantity;
+
     /**
      * 所属仓库
      */

+ 11 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Inventory.java

@@ -18,28 +18,37 @@ import java.math.BigDecimal;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("wms_inventory")
-public class Inventory extends BaseEntity{
+public class Inventory extends BaseEntity {
 
     @Serial
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      *
      */
     @TableId(value = "id")
     private Long id;
+
     /**
      * 规格ID
      */
     private Long skuId;
+
     /**
      * 所属仓库
      */
     private Long warehouseId;
+
     /**
      * 库存
      */
     private BigDecimal quantity;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
     /**
      * 备注
      */

+ 11 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/InventoryHistory.java

@@ -21,49 +21,59 @@ import java.math.BigDecimal;
 public class InventoryHistory extends BaseHistoryEntity {
 
     @Serial
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      *
      */
     @TableId(value = "id")
     private Long id;
+
     /**
      * 操作id(出库、入库、库存移动表单id)
      */
     private Long orderId;
+
     /**
      * 操作单号(入库、出库、移库、盘库单号)
      */
     private String orderNo;
+
     /**
      * 订单类型
      */
     private Integer orderType;
+
     /**
      * 物料ID
      */
     private Long skuId;
+
     /**
      * 金额
      */
     private BigDecimal amount;
+
     /**
      * 库存变化
      */
     private BigDecimal quantity;
+
     /**
      * 更新前数量
      */
     private BigDecimal beforeQuantity;
+
     /**
      * 更新后数量
      */
     private BigDecimal afterQuantity;
+
     /**
      * 备注
      */
     private String remark;
+
     /**
      * 所属仓库
      */

+ 6 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Item.java

@@ -42,6 +42,12 @@ public class Item extends BaseEntity {
      */
     private String unit;
 
+    /**
+     * @see com.ruoyi.wms.domain.constant.ItemType
+     * 商品类型
+     */
+    private String itemType;
+
     /**
      * 品牌
      */

+ 4 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ItemBrand.java

@@ -1,11 +1,11 @@
 package com.ruoyi.wms.domain.entity;
 
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-
 import java.io.Serial;
 
 /**
@@ -20,13 +20,14 @@ import java.io.Serial;
 public class ItemBrand extends BaseEntity {
 
     @Serial
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      *
      */
     @TableId(value = "id")
     private Long id;
+
     /**
      * 品牌名称
      */

+ 20 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ItemSku.java

@@ -1,8 +1,11 @@
 package com.ruoyi.wms.domain.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.mybatis.core.domain.BaseEntity;
+import com.ruoyi.wms.domain.bo.UnitConfigBo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -78,4 +81,21 @@ public class ItemSku extends BaseEntity {
      * 销售价(元)
      */
     private BigDecimal sellingPrice;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
+    /**
+     * 是否是多单位 0 否 1 是
+     */
+    private Integer isMultiUom;
+
+    /**
+     * 忽略字段映射 用于保存数据
+     */
+    @TableField(exist = false)
+    private UnitConfigBo unitConfig;
+
 }

+ 13 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Merchant.java

@@ -20,57 +20,69 @@ import java.io.Serial;
 public class Merchant extends BaseEntity {
 
     @Serial
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      * id
      */
     @TableId(value = "id")
     private Long id;
+
     /**
      * 编号
      */
     private String merchantCode;
+
     /**
      * 名称
      */
     private String merchantName;
+
     /**
      * 企业类型
      */
     private Integer merchantType;
+
     /**
      * 级别
      */
     private String merchantLevel;
+
     /**
      * 开户行
      */
     private String bankName;
+
     /**
      * 银行账户
      */
     private String bankAccount;
+
     /**
      * 地址
      */
     private String address;
+
     /**
      * 手机号
      */
     private String mobile;
+
     /**
      * 座机号
      */
     private String tel;
+
     /**
      * 联系人
      */
     private String contactPerson;
+
     /**
      * Email
      */
     private String email;
+
     /**
      * 备注
      */

+ 2 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/MovementOrder.java

@@ -18,13 +18,14 @@ import java.io.Serial;
 public class MovementOrder extends BaseOrder {
 
     @Serial
-    private static final long serialVersionUID=1L;
+    private static final long serialVersionUID = 1L;
 
 
     /**
      * 源仓库
      */
     private Long sourceWarehouseId;
+
     /**
      * 目标仓库
      */

+ 6 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/MovementOrderDetail.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serial;
+
 /**
  * 库存移动详情对象 wms_movement_order_detail
  *
@@ -15,10 +17,14 @@ import lombok.EqualsAndHashCode;
 @TableName("wms_movement_order_detail")
 public class MovementOrderDetail extends BaseOrderDetail {
 
+    @Serial
+    private static final long serialVersionUID = 2438145249862862698L;
+
     /**
      * 源仓库
      */
     private Long sourceWarehouseId;
+
     /**
      * 目标仓库
      */

+ 2 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ReceiptOrder.java

@@ -23,10 +23,12 @@ public class ReceiptOrder extends BaseOrder {
      * 入库类型
      */
     private Long optType;
+
     /**
      * 业务订单号
      */
     private String bizOrderNo;
+
     /**
      * 供应商
      */

+ 5 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ReceiptOrderDetail.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serial;
+
 /**
  * 入库单详情对象 wms_receipt_order_detail
  *
@@ -15,6 +17,9 @@ import lombok.EqualsAndHashCode;
 @TableName("wms_receipt_order_detail")
 public class ReceiptOrderDetail extends BaseOrderDetail {
 
+    @Serial
+    private static final long serialVersionUID = -1846558982013134346L;
+
     /**
      * 所属仓库
      */

+ 2 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ShipmentOrder.java

@@ -23,10 +23,12 @@ public class ShipmentOrder extends BaseOrder {
      * 入库类型
      */
     private Long optType;
+
     /**
      * 业务订单号
      */
     private String bizOrderNo;
+
     /**
      * 供应商
      */

+ 8 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/ShipmentOrderDetail.java

@@ -1,8 +1,10 @@
 package com.ruoyi.wms.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
+import lombok.*;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serial;
 
 /**
  * 出库单详情对象 wms_shipment_order_detail
@@ -15,8 +17,12 @@ import lombok.EqualsAndHashCode;
 @TableName("wms_shipment_order_detail")
 public class ShipmentOrderDetail extends BaseOrderDetail {
 
+    @Serial
+    private static final long serialVersionUID = -8071268593786217761L;
+
     /**
      * 所属仓库
      */
     private Long warehouseId;
+
 }

+ 1 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/Warehouse.java

@@ -31,6 +31,7 @@ public class Warehouse extends BaseEntity {
      * 名称
      */
     private String warehouseName;
+
     /**
      * 排序
      */

+ 62 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsBomItem.java

@@ -0,0 +1,62 @@
+package com.ruoyi.wms.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * bom 清单
+ *
+ * @TableName wms_bom_item
+ */
+@TableName(value = "wms_bom_item")
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@Data
+public class WmsBomItem implements Serializable {
+    @Serial
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 版本id
+     */
+    @TableField(value = "version_id")
+    private Long versionId;
+
+    /**
+     * 物料 sku ID
+     */
+    @TableField(value = "item_sku_id")
+    private Long itemSkuId;
+
+    /**
+     * 数量
+     */
+    @TableField(value = "quantity")
+    private BigDecimal quantity;
+
+    /**
+     * 单位
+     */
+    @TableField(value = "unit")
+    private String unit;
+
+
+}

+ 45 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsBomVersion.java

@@ -0,0 +1,45 @@
+package com.ruoyi.wms.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * bom版本
+ *
+ * @TableName wms_bom_version
+ */
+@TableName(value = "wms_bom_version")
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class WmsBomVersion implements Serializable {
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 物料 sku ID
+     */
+    @TableField(value = "item_sku_id")
+    private Long itemSkuId;
+
+    /**
+     * 版本号
+     */
+    @TableField(value = "version")
+    private String version;
+}

+ 97 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsTask.java

@@ -0,0 +1,97 @@
+package com.ruoyi.wms.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 任务单
+ *
+ * @TableName wms_task
+ */
+@TableName(value = "wms_task")
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class WmsTask implements Serializable {
+    @Serial
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 任务编号
+     */
+    @TableField(value = "task_code")
+    private String taskCode;
+
+    /**
+     * 生产开始时间
+     */
+    @TableField(value = "start_date")
+    private Date startDate;
+
+    /**
+     * 生产结束时间
+     */
+    @TableField(value = "end_date")
+    private Date endDate;
+
+    /**
+     * 目标数量
+     */
+    @TableField(value = "quantity")
+    private Integer quantity;
+
+    /**
+     * @see com.ruoyi.wms.domain.constant.TaskStatus
+     * 状态
+     */
+    @TableField(value = "status")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_by")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    @TableField(value = "update_by")
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_time")
+    private Date updateTime;
+}

+ 57 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsTaskDetails.java

@@ -0,0 +1,57 @@
+package com.ruoyi.wms.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 任务单-明细
+ *
+ * @TableName wms_task_details
+ */
+@TableName(value = "wms_task_details")
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@Data
+public class WmsTaskDetails implements Serializable {
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private String id;
+
+    /**
+     * 任务id
+     */
+    @TableField(value = "task_id")
+    private Long taskId;
+
+    /**
+     * 商品 sku id
+     */
+    @TableField(value = "item_sku_id")
+    private Long itemSkuId;
+
+    /**
+     * BOM版本
+     */
+    @TableField(value = "version_id")
+    private Long versionId;
+
+    /**
+     * 生产数量
+     */
+    @TableField(value = "quantity")
+    private Integer quantity;
+}

+ 46 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitAuxiliary.java

@@ -0,0 +1,46 @@
+package com.ruoyi.wms.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serial;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 辅助单位
+ * @TableName wms_unit_auxiliary
+ */
+@TableName(value ="wms_unit_auxiliary")
+@Data
+public class WmsUnitAuxiliary implements Serializable {
+    /**
+     *
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     *
+     */
+    @TableField(value = "item_sku_id")
+    private Long itemSkuId;
+
+    /**
+     * 辅助单位
+     */
+    @TableField(value = "auxiliary_unit")
+    private String auxiliaryUnit;
+
+    /**
+     * 数量
+     */
+    @TableField(value = "quantity")
+    private Integer quantity;
+
+    @Serial
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 49 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/entity/WmsUnitConfig.java

@@ -0,0 +1,49 @@
+package com.ruoyi.wms.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 多单位配置
+ * @TableName wms_unit_config
+ */
+@TableName(value ="wms_unit_config")
+@Data
+public class WmsUnitConfig implements Serializable {
+    /**
+     *
+     */
+    @TableId(value = "item_sku_id")
+    private Long itemSkuId;
+
+    /**
+     * 出库默认单位
+     */
+    @TableField(value = "outbound_unit")
+    private String outboundUnit;
+
+    /**
+     * 入库默认单位
+     */
+    @TableField(value = "warehousing_unit")
+    private String warehousingUnit;
+
+    /**
+     * 主单位
+     */
+    @TableField(value = "main_unit")
+    private String mainUnit;
+
+    @Serial
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 1 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/BaseOrderDetailVo.java

@@ -13,6 +13,7 @@ import java.math.BigDecimal;
 public class BaseOrderDetailVo implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
+
     /**
      *
      */

+ 51 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/BomListVo.java

@@ -0,0 +1,51 @@
+package com.ruoyi.wms.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@Schema(description = "物料清单列表信息")
+public class BomListVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -8447352796673753348L;
+
+    @Schema(description = "商品名称")
+    private String itemName;
+
+    @Schema(description = "商品编号")
+    private String itemCode;
+
+    @Schema(description = "商品品牌")
+    private String itemBrand;
+
+    @Schema(description = "规格名称")
+    private String skuName;
+
+    @Schema(description = "单位")
+    private String unit;
+
+    @Schema(description = "BOM版本")
+    private String version;
+
+    @Schema(description = "长(cm)")
+    private BigDecimal length;
+
+    @Schema(description = "宽(cm)")
+    private BigDecimal width;
+
+    @Schema(description = "高(cm)")
+    private BigDecimal height;
+
+    @Schema(description = "毛重(kg)")
+    private BigDecimal grossWeight;
+
+    @Schema(description = "净重(kg)")
+    private BigDecimal netWeight;
+
+}

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/CheckOrderDetailVo.java

@@ -19,7 +19,7 @@ import java.math.BigDecimal;
 @EqualsAndHashCode(callSuper = true)
 @ExcelIgnoreUnannotated
 @AutoMapper(target = CheckOrderDetail.class)
-public class  CheckOrderDetailVo extends BaseOrderDetailVo {
+public class CheckOrderDetailVo extends BaseOrderDetailVo {
 
     /**
      * 盘点数量

+ 1 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/InventoryHistoryVo.java

@@ -87,6 +87,7 @@ public class InventoryHistoryVo implements Serializable {
      * 更新前数量
      */
     private BigDecimal beforeQuantity;
+
     /**
      * 更新后数量
      */

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemCategoryVo.java

@@ -5,9 +5,9 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.common.excel.annotation.ExcelDictFormat;
 import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import com.ruoyi.wms.domain.entity.ItemCategory;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
-import com.ruoyi.wms.domain.entity.ItemCategory;
 
 import java.io.Serial;
 import java.io.Serializable;

+ 2 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemSkuMapVo.java

@@ -12,6 +12,8 @@ public class ItemSkuMapVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private Long skuId;
+
     private ItemVo item;
+
     private ItemSkuVo itemSku;
 }

+ 19 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ItemSkuVo.java

@@ -2,16 +2,16 @@ package com.ruoyi.wms.domain.vo;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.wms.domain.bo.UnitConfigBo;
+import com.ruoyi.wms.domain.entity.ItemSku;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
-import com.ruoyi.wms.domain.entity.ItemSku;
 
 import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
 
 
-
 @Data
 @ExcelIgnoreUnannotated
 @AutoMapper(target = ItemSku.class)
@@ -91,4 +91,21 @@ public class ItemSkuVo implements Serializable {
      */
     @ExcelProperty(value = "销售价(元)")
     private BigDecimal sellingPrice;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
+    /**
+     * 是否是多单位 0 否 1 是
+     */
+    private Integer isMultiUom;
+
+    /**
+     * 多单位选中 必传
+     */
+    private UnitConfigBo unitConfig;
+
+
 }

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MerchantVo.java

@@ -4,9 +4,9 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.ruoyi.common.excel.annotation.ExcelDictFormat;
 import com.ruoyi.common.excel.convert.ExcelDictConvert;
+import com.ruoyi.wms.domain.entity.Merchant;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
-import com.ruoyi.wms.domain.entity.Merchant;
 
 import java.io.Serial;
 import java.io.Serializable;

+ 0 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MovementOrderDetailVo.java

@@ -22,7 +22,6 @@ import java.math.BigDecimal;
 public class MovementOrderDetailVo extends BaseOrderDetailVo {
 
 
-
     /**
      * 源仓库
      */

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/MovementOrderVo.java

@@ -17,7 +17,7 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 @ExcelIgnoreUnannotated
 @AutoMapper(target = MovementOrder.class)
-public class MovementOrderVo extends BaseOrderVo<MovementOrderDetailVo>{
+public class MovementOrderVo extends BaseOrderVo<MovementOrderDetailVo> {
 
     /**
      * 源仓库

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ReceiptOrderDetailVo.java

@@ -16,6 +16,6 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 @ExcelIgnoreUnannotated
 @AutoMapper(target = ReceiptOrderDetail.class)
-public class ReceiptOrderDetailVo extends BaseOrderDetailVo{
+public class ReceiptOrderDetailVo extends BaseOrderDetailVo {
 
 }

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ShipmentOrderDetailVo.java

@@ -16,7 +16,7 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 @ExcelIgnoreUnannotated
 @AutoMapper(target = ShipmentOrderDetail.class)
-public class ShipmentOrderDetailVo extends BaseOrderDetailVo{
+public class ShipmentOrderDetailVo extends BaseOrderDetailVo {
 
 
 }

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/ShipmentOrderVo.java

@@ -17,7 +17,7 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 @ExcelIgnoreUnannotated
 @AutoMapper(target = ShipmentOrder.class)
-public class ShipmentOrderVo extends BaseOrderVo<ShipmentOrderDetailVo>{
+public class ShipmentOrderVo extends BaseOrderVo<ShipmentOrderDetailVo> {
 
     /**
      * 入库类型

+ 2 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/domain/vo/WarehouseVo.java

@@ -35,11 +35,13 @@ public class WarehouseVo extends BaseVo {
      */
     @ExcelProperty(value = "名称")
     private String warehouseName;
+
     /**
      * 排序
      */
     @ExcelProperty(value = "排序")
     private Long orderNum;
+
     /**
      * 备注
      */

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/CheckOrderDetailMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.wms.domain.entity.CheckOrderDetail;
 import com.ruoyi.wms.domain.vo.CheckOrderDetailVo;
-import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * 库存盘点单据详情Mapper接口

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/CheckOrderMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.wms.domain.entity.CheckOrder;
 import com.ruoyi.wms.domain.vo.CheckOrderVo;
-import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * 库存盘点单据Mapper接口

+ 1 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/InventoryMapper.java

@@ -16,6 +16,7 @@ import org.apache.ibatis.annotations.Param;
 public interface InventoryMapper extends BaseMapperPlus<Inventory, InventoryVo> {
 
     Page<InventoryVo> queryItemBoardList(Page<InventoryVo> page, @Param("bo") InventoryBo bo);
+
     Page<InventoryVo> queryWarehouseBoardList(Page<InventoryVo> page, @Param("bo") InventoryBo bo);
 
 }

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ItemBrandMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.wms.domain.entity.ItemBrand;
 import com.ruoyi.wms.domain.vo.ItemBrandVo;
-import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * 商品品牌Mapper接口

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/MerchantMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
-import com.ruoyi.wms.domain.vo.MerchantVo;
 import com.ruoyi.wms.domain.entity.Merchant;
+import com.ruoyi.wms.domain.vo.MerchantVo;
 
 /**
  * 往来单位Mapper接口

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/MovementOrderDetailMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.wms.domain.entity.MovementOrderDetail;
 import com.ruoyi.wms.domain.vo.MovementOrderDetailVo;
-import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * 库存移动详情Mapper接口

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/MovementOrderMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.wms.domain.entity.MovementOrder;
 import com.ruoyi.wms.domain.vo.MovementOrderVo;
-import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * 移库单Mapper接口

+ 0 - 3
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ReceiptOrderDetailMapper.java

@@ -1,12 +1,9 @@
 package com.ruoyi.wms.mapper;
 
 import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
-import org.apache.ibatis.annotations.Param;
 import com.ruoyi.wms.domain.entity.ReceiptOrderDetail;
 import com.ruoyi.wms.domain.vo.ReceiptOrderDetailVo;
 
-import java.util.List;
-
 /**
  * 入库单详情Mapper接口
  *

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ShipmentOrderDetailMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.wms.domain.entity.ShipmentOrderDetail;
 import com.ruoyi.wms.domain.vo.ShipmentOrderDetailVo;
-import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * 出库单详情Mapper接口

+ 1 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/ShipmentOrderMapper.java

@@ -1,8 +1,8 @@
 package com.ruoyi.wms.mapper;
 
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 import com.ruoyi.wms.domain.entity.ShipmentOrder;
 import com.ruoyi.wms.domain.vo.ShipmentOrderVo;
-import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
  * 出库单Mapper接口

+ 18 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsBomItemMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.wms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.wms.domain.entity.WmsBomItem;
+
+/**
+ * @author Administrator
+ * @description 针对表【wms_bom_item(bom 清单)】的数据库操作Mapper
+ * @createDate 2026-04-02 17:54:56
+ * @Entity com.ruoyi.wms.domain.entity.WmsBomItem
+ */
+public interface WmsBomItemMapper extends BaseMapper<WmsBomItem> {
+
+}
+
+
+
+

+ 29 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsBomVersionMapper.java

@@ -0,0 +1,29 @@
+package com.ruoyi.wms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.wms.domain.dto.BomListQueryDto;
+import com.ruoyi.wms.domain.entity.WmsBomVersion;
+import com.ruoyi.wms.domain.vo.BomListVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【wms_bom_version(bom版本)】的数据库操作Mapper
+ * @createDate 2026-04-02 17:54:56
+ * @Entity com.ruoyi.wms.domain.entity.WmsBomVersion
+ */
+public interface WmsBomVersionMapper extends BaseMapper<WmsBomVersion> {
+
+    /**
+     * 通过BOM版本查询 bom 配置
+     * @param bomListQueryDto 查询实体
+     * @return bom 配置
+     */
+    List<BomListVo> getBomConfig(@Param("bomListQueryDto") BomListQueryDto bomListQueryDto);
+}
+
+
+
+

+ 18 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsTaskDetailsMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.wms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.wms.domain.entity.WmsTaskDetails;
+
+/**
+ * @author Administrator
+ * @description 针对表【wms_task_details(任务单-明细)】的数据库操作Mapper
+ * @createDate 2026-04-02 17:54:56
+ * @Entity com.ruoyi.wms.domain.entity.WmsTaskDetails
+ */
+public interface WmsTaskDetailsMapper extends BaseMapper<WmsTaskDetails> {
+
+}
+
+
+
+

+ 18 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsTaskMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.wms.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.wms.domain.entity.WmsTask;
+
+/**
+ * @author Administrator
+ * @description 针对表【wms_task(任务单)】的数据库操作Mapper
+ * @createDate 2026-04-02 17:54:56
+ * @Entity com.ruoyi.wms.domain.entity.WmsTask
+ */
+public interface WmsTaskMapper extends BaseMapper<WmsTask> {
+
+}
+
+
+
+

+ 18 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsUnitAuxiliaryMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.wms.mapper;
+
+import com.ruoyi.wms.domain.entity.WmsUnitAuxiliary;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author Administrator
+* @description 针对表【wms_unit_auxiliary(辅助单位)】的数据库操作Mapper
+* @createDate 2026-04-09 16:02:46
+* @Entity com.ruoyi.wms.domain.entity.WmsUnitAuxiliary
+*/
+public interface WmsUnitAuxiliaryMapper extends BaseMapper<WmsUnitAuxiliary> {
+
+}
+
+
+
+

+ 18 - 0
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/mapper/WmsUnitConfigMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.wms.mapper;
+
+import com.ruoyi.wms.domain.entity.WmsUnitConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author Administrator
+* @description 针对表【wms_unit_config(多单位配置)】的数据库操作Mapper
+* @createDate 2026-04-09 16:02:46
+* @Entity com.ruoyi.wms.domain.entity.WmsUnitConfig
+*/
+public interface WmsUnitConfigMapper extends BaseMapper<WmsUnitConfig> {
+
+}
+
+
+
+

+ 2 - 1
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/CheckOrderDetailService.java

@@ -31,12 +31,13 @@ import java.util.Map;
 public class CheckOrderDetailService extends ServiceImpl<CheckOrderDetailMapper, CheckOrderDetail> {
 
     private final CheckOrderDetailMapper checkOrderDetailMapper;
+
     private final ItemSkuService itemSkuService;
 
     /**
      * 查询库存盘点单据详情
      */
-    public CheckOrderDetailVo queryById(Long id){
+    public CheckOrderDetailVo queryById(Long id) {
         return checkOrderDetailMapper.selectVoById(id);
     }
 

+ 5 - 2
ruoyi-admin-wms/src/main/java/com/ruoyi/wms/service/CheckOrderService.java

@@ -39,14 +39,17 @@ import java.util.Objects;
 public class CheckOrderService {
 
     private final CheckOrderMapper checkOrderMapper;
+
     private final CheckOrderDetailService checkOrderDetailService;
+
     private final InventoryService inventoryService;
+
     private final InventoryHistoryService inventoryHistoryService;
 
     /**
      * 查询库存盘点单据
      */
-    public CheckOrderVo queryById(Long id){
+    public CheckOrderVo queryById(Long id) {
         CheckOrderVo checkOrderVo = checkOrderMapper.selectVoById(id);
         if (checkOrderVo == null) {
             throw new BaseException("盘库单不存在");
@@ -167,7 +170,7 @@ public class CheckOrderService {
         List<CheckOrderDetailBo> details = filterBo.getDetails().stream().filter(detail -> {
             BigDecimal result = detail.getCheckQuantity().subtract(detail.getQuantity());
             return result.signum() != 0;
-        }).map(detail->{
+        }).map(detail -> {
             BigDecimal result = detail.getCheckQuantity().subtract(detail.getQuantity());
             detail.setBeforeQuantity(detail.getQuantity());
             detail.setAfterQuantity(detail.getCheckQuantity());

部分文件因为文件数量过多而无法显示