From 399e7d565f19f59a8da82277da8f3eab527c2c56 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 09 九月 2025 19:40:20 +0800
Subject: [PATCH] art: 上料接口,上下料查询接口

---
 db/双林新火炬MES数据库设计.pdma.json                                                            |   20 +
 src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java      |  240 +++++++--------------
 src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java         |    8 
 src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java                    |   62 +++--
 src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml         |   15 +
 src/main/java/org/jeecg/modules/lsw/vo/MaterialInventoryVO.java                       |   19 +
 src/main/java/org/jeecg/modules/lsw/controller/LswMaterialInventoryController.java    |   12 
 src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java |   40 +++
 src/main/java/org/jeecg/modules/mes/mapper/MesMaterialLoadingMapper.java              |   11 
 src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml           |   50 +++-
 src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java   |  125 +++++++++--
 src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java           |   18 +
 src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java            |    9 
 13 files changed, 394 insertions(+), 235 deletions(-)

diff --git "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json" "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
index 6eb28d0..23e4f7d 100644
--- "a/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
+++ "b/db/\345\217\214\346\236\227\346\226\260\347\201\253\347\202\254MES\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.pdma.json"
@@ -4,7 +4,7 @@
   "avatar": "",
   "version": "4.9.2",
   "createdTime": "2025-3-10 16:38:19",
-  "updatedTime": "2025-9-8 15:48:21",
+  "updatedTime": "2025-9-9 17:51:22",
   "dbConns": [],
   "profile": {
     "default": {
@@ -65634,6 +65634,24 @@
           "extProps": {},
           "domain": "FF4459C5-6B45-4DBF-8FC0-E06239BC05B4",
           "id": "8D7E6299-FC48-42A2-86FD-0AC3B881BB8B"
+        },
+        {
+          "defKey": "unloading_flag",
+          "defName": "涓嬫枡鏍囪",
+          "comment": "",
+          "type": "",
+          "len": "",
+          "scale": "",
+          "primaryKey": false,
+          "notNull": false,
+          "autoIncrement": false,
+          "defaultValue": "",
+          "hideInGraph": false,
+          "refDict": "",
+          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
+          "extProps": {},
+          "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF",
+          "id": "52642C9A-5EA8-4B30-91CB-5B154D75A139"
         }
       ],
       "correlations": [],
diff --git a/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialInventoryController.java b/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialInventoryController.java
index 289372e..9599a85 100644
--- a/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialInventoryController.java
+++ b/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialInventoryController.java
@@ -13,6 +13,7 @@
 import org.jeecg.modules.lsw.enums.MaterialInventoryStatusEnum;
 import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
 import org.jeecg.modules.lsw.vo.MaterialInventoryStatisticsVO;
+import org.jeecg.modules.lsw.vo.MaterialInventoryVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -62,13 +63,20 @@
     public Result<String> statisticsInventory(@RequestParam(name = "materialId") String materialId) {
         //搴撳瓨缁熻鏁伴噺
         List<MaterialInventoryStatisticsVO> list = lswMaterialInventoryService.statisticsInventory(materialId);
-        if(CollectionUtil.isEmpty(list)){
+        if (CollectionUtil.isEmpty(list)) {
             return Result.OK("0");
         }
         StringBuilder sb = new StringBuilder();
-        for(MaterialInventoryStatisticsVO vo : list){
+        for (MaterialInventoryStatisticsVO vo : list) {
             sb.append(vo.getWarehouseName()).append(": ").append(vo.getMaterialQuantity().stripTrailingZeros().toPlainString()).append(" | ");
         }
         return Result.OK(sb.toString());
     }
+
+    @ApiOperation(value = "鐗╂枡搴撳瓨淇℃伅-鏍规嵁浜х嚎鏌ヨ搴撳瓨", notes = "鐗╂枡搴撳瓨淇℃伅-鏍规嵁浜х嚎鏌ヨ搴撳瓨")
+    @GetMapping(value = "/queryMaterialInventory")
+    public Result<List<MaterialInventoryVO>> queryMaterialInventory(@RequestParam(name = "factoryId") String factoryId) {
+        List<MaterialInventoryVO> list = lswMaterialInventoryService.queryMaterialInventory(factoryId);
+        return Result.OK(list);
+    }
 }
diff --git a/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java b/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java
index ff096c2..33b2e38 100644
--- a/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java
+++ b/src/main/java/org/jeecg/modules/lsw/mapper/LswMaterialInventoryMapper.java
@@ -5,6 +5,7 @@
 import org.jeecg.modules.lsw.entity.LswMaterialInventory;
 import org.jeecg.modules.lsw.vo.LswMaterialInventoryVo;
 import org.jeecg.modules.lsw.vo.MaterialInventoryStatisticsVO;
+import org.jeecg.modules.lsw.vo.MaterialInventoryVO;
 
 import java.util.List;
 
@@ -25,4 +26,12 @@
 	 * @return
 	 */
 	List<MaterialInventoryStatisticsVO> statisticsInventory(@Param("materialId") String materialId);
+
+	/**
+	 * 鏌ヨ鐗╂枡搴撳瓨
+	 * @param warehouseId
+	 * @param materialCategoryList
+	 * @return
+	 */
+    List<MaterialInventoryVO> queryMaterialInventory(@Param("warehouseId") String warehouseId, @Param("materialCategoryList") List<String> materialCategoryList);
 }
diff --git a/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml b/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml
index e7ca719..e04fea9 100644
--- a/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml
+++ b/src/main/java/org/jeecg/modules/lsw/mapper/xml/LswMaterialInventoryMapper.xml
@@ -29,4 +29,19 @@
         left join base_line_side_warehouse m2 on m1.warehouse_id = m2.id
 
     </select>
+	<select id="queryMaterialInventory" resultType="org.jeecg.modules.lsw.vo.MaterialInventoryVO">
+        select t2.material_number,
+        t2.material_name,
+        t2.material_category,
+        t1.batch_number,
+        t1.quantity
+        from lsw_material_inventory t1
+        left join lsw_material t2 on t1.material_id = t2.id
+        where t1.inventory_status = 'NORMAL'
+        and t1.warehouse_id = #{warehouseId}
+        and t2.material_category in
+        <foreach collection="materialCategoryList" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
 </mapper>
diff --git a/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java b/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java
index 26c436b..a4e9e61 100644
--- a/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java
+++ b/src/main/java/org/jeecg/modules/lsw/service/ILswMaterialInventoryService.java
@@ -4,6 +4,7 @@
 import org.jeecg.modules.lsw.entity.LswMaterialInventory;
 import org.jeecg.modules.lsw.vo.LswMaterialInventoryVo;
 import org.jeecg.modules.lsw.vo.MaterialInventoryStatisticsVO;
+import org.jeecg.modules.lsw.vo.MaterialInventoryVO;
 
 import java.util.List;
 
@@ -32,4 +33,11 @@
      * @return
      */
     LswMaterialInventory queryByMaterialNumberAndBatchNumber(String materialNumber, String batchNumber, String warehouseId);
+
+    /**
+     * 鏌ヨ鐗╂枡搴撳瓨
+     * @param factoryId
+     * @return
+     */
+    List<MaterialInventoryVO> queryMaterialInventory(String factoryId);
 }
diff --git a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java
index 11de910..4517bf2 100644
--- a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInventoryServiceImpl.java
@@ -2,17 +2,26 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.base.entity.Factory;
+import org.jeecg.modules.base.entity.LineSideWarehouse;
+import org.jeecg.modules.base.enums.ProductionTypeEnum;
+import org.jeecg.modules.base.service.IFactoryService;
+import org.jeecg.modules.base.service.ILineSideWarehouseService;
 import org.jeecg.modules.lsw.entity.LswMaterial;
 import org.jeecg.modules.lsw.entity.LswMaterialInventory;
+import org.jeecg.modules.lsw.enums.MaterialCategoryEnum;
 import org.jeecg.modules.lsw.enums.MaterialInventoryStatusEnum;
 import org.jeecg.modules.lsw.mapper.LswMaterialInventoryMapper;
 import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
 import org.jeecg.modules.lsw.service.ILswMaterialService;
 import org.jeecg.modules.lsw.vo.LswMaterialInventoryVo;
 import org.jeecg.modules.lsw.vo.MaterialInventoryStatisticsVO;
+import org.jeecg.modules.lsw.vo.MaterialInventoryVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -28,6 +37,10 @@
     private LswMaterialInventoryMapper lswMaterialInventoryMapper;
     @Autowired
     private ILswMaterialService materialService;
+    @Autowired
+    private ILineSideWarehouseService lineSideWarehouseService;
+    @Autowired
+    private IFactoryService factoryService;
 
     @Override
     public List<LswMaterialInventoryVo> selectLineSideMaterialInventoryByMaterialNumber(List<String> bomMaterialNumberList, String factoryId) {
@@ -52,4 +65,31 @@
         queryWrapper.eq(LswMaterialInventory::getInventoryStatus, MaterialInventoryStatusEnum.NORMAL.name());
         return lswMaterialInventoryMapper.selectOne(queryWrapper);
     }
+
+    @Override
+    public List<MaterialInventoryVO> queryMaterialInventory(String factoryId) {
+        Factory factory = factoryService.getById(factoryId);
+        if (factory == null) {
+            return Collections.emptyList();
+        }
+        LineSideWarehouse warehouse = lineSideWarehouseService.queryByFactoryId(factoryId);
+        if (warehouse == null) {
+            return Collections.emptyList();
+        }
+        List<String> materialCategory = new ArrayList<>();
+        if (ProductionTypeEnum.ASSEMBLE.name().equals(factory.getProductionType())) {
+            materialCategory.add(MaterialCategoryEnum.OUTER_FLANGE.name());
+            materialCategory.add(MaterialCategoryEnum.INNER_FLANGE.name());
+            materialCategory.add(MaterialCategoryEnum.SMALL_INNER_RING.name());
+            materialCategory.add(MaterialCategoryEnum.STEEL_BALL.name());
+            materialCategory.add(MaterialCategoryEnum.COMPONENTS.name());
+        } else if (ProductionTypeEnum.INNERFLANGE.name().equals(factory.getProductionType())) {
+            materialCategory.add(MaterialCategoryEnum.BLANK.name());
+        } else if (ProductionTypeEnum.OUTERFLANGE.name().equals(factory.getProductionType())) {
+            materialCategory.add(MaterialCategoryEnum.BLANK.name());
+        } else if (ProductionTypeEnum.HEATTREATMENT.name().equals(factory.getProductionType())) {
+            materialCategory.add(MaterialCategoryEnum.BLANK.name());
+        }
+        return lswMaterialInventoryMapper.queryMaterialInventory(warehouse.getId(), materialCategory);
+    }
 }
diff --git a/src/main/java/org/jeecg/modules/lsw/vo/MaterialInventoryVO.java b/src/main/java/org/jeecg/modules/lsw/vo/MaterialInventoryVO.java
new file mode 100644
index 0000000..91ed45d
--- /dev/null
+++ b/src/main/java/org/jeecg/modules/lsw/vo/MaterialInventoryVO.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.lsw.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class MaterialInventoryVO {
+    //鐗╂枡缂栧彿
+    private String materialNumber;
+    //鐗╂枡鍚嶇О
+    private String materialName;
+    //鐗╂枡绫诲瀷
+    private String materialCategory;
+    //鎵规鍙�
+    private String batchNumber;
+    //搴撳瓨鏁伴噺
+    private BigDecimal quantity;
+}
diff --git a/src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java b/src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java
index 7740a65..277a813 100644
--- a/src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java
+++ b/src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java
@@ -1,6 +1,5 @@
 package org.jeecg.modules.mes.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
@@ -9,175 +8,104 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.modules.mes.entity.MesMaterialLoading;
 import org.jeecg.modules.mes.service.IMesMaterialLoadingService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
-import java.util.Map;
 
 /**
-* @Description: 涓婃枡
-* @Author: jeecg-boot
-* @Date:   2025-07-07
-* @Version: V1.0
-*/
-@Api(tags="涓婃枡")
+ * @Description: 涓婃枡
+ * @Author: jeecg-boot
+ * @Date: 2025-07-07
+ * @Version: V1.0
+ */
+@Api(tags = "涓婃枡")
 @RestController
 @RequestMapping("/mes/mesMaterialLoading")
 @Slf4j
 public class MesMaterialLoadingController extends JeecgController<MesMaterialLoading, IMesMaterialLoadingService> {
-   @Autowired
-   private IMesMaterialLoadingService mesMaterialLoadingService;
+    @Autowired
+    private IMesMaterialLoadingService mesMaterialLoadingService;
 
-   /**
-    * 鍒嗛〉鍒楄〃鏌ヨ
-    *
-    * @param mesMaterialLoading
-    * @param pageNo
-    * @param pageSize
-    * @param req
-    * @return
-    */
-   //@AutoLog(value = "涓婃枡-鍒嗛〉鍒楄〃鏌ヨ")
-   @ApiOperation(value="涓婃枡-鍒嗛〉鍒楄〃鏌ヨ", notes="涓婃枡-鍒嗛〉鍒楄〃鏌ヨ")
-   @GetMapping(value = "/list")
-   public Result<IPage<MesMaterialLoading>> queryPageList(MesMaterialLoading mesMaterialLoading,
-                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-                                  HttpServletRequest req) {
-       Map<String, String[]> parameterMap = req.getParameterMap();
-       QueryWrapper<MesMaterialLoading> queryWrapper = QueryGenerator.initQueryWrapper(mesMaterialLoading, parameterMap);
-       Page<MesMaterialLoading> page = new Page<MesMaterialLoading>(pageNo, pageSize);
-       IPage<MesMaterialLoading> pageList = mesMaterialLoadingService.queryPageList(page, parameterMap);
-       return Result.OK(pageList);
-   }
-
-   /**
-    *   娣诲姞
-    *
-    * @param mesMaterialLoading
-    * @return
-    */
-   @AutoLog(value = "涓婃枡-娣诲姞")
-   @ApiOperation(value="涓婃枡-娣诲姞", notes="涓婃枡-娣诲姞")
-   //@RequiresPermissions("org.jeecg.modules:mes_material_loading:add")
-   @PostMapping(value = "/add")
-   public Result<String> add(@RequestBody MesMaterialLoading mesMaterialLoading) {
-       mesMaterialLoadingService.save(mesMaterialLoading);
-       return Result.OK("娣诲姞鎴愬姛锛�");
-   }
-
-   /**
-    *  缂栬緫
-    *
-    * @param mesMaterialLoading
-    * @return
-    */
-   @AutoLog(value = "涓婃枡-缂栬緫")
-   @ApiOperation(value="涓婃枡-缂栬緫", notes="涓婃枡-缂栬緫")
-   //@RequiresPermissions("org.jeecg.modules:mes_material_loading:edit")
-   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-   public Result<String> edit(@RequestBody MesMaterialLoading mesMaterialLoading) {
-       mesMaterialLoadingService.updateById(mesMaterialLoading);
-       return Result.OK("缂栬緫鎴愬姛!");
-   }
-
-   /**
-    *   閫氳繃id鍒犻櫎
-    *
-    * @param id
-    * @return
-    */
-   @AutoLog(value = "涓婃枡-閫氳繃id鍒犻櫎")
-   @ApiOperation(value="涓婃枡-閫氳繃id鍒犻櫎", notes="涓婃枡-閫氳繃id鍒犻櫎")
-   //@RequiresPermissions("org.jeecg.modules:mes_material_loading:delete")
-   @DeleteMapping(value = "/delete")
-   public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-       mesMaterialLoadingService.removeById(id);
-       return Result.OK("鍒犻櫎鎴愬姛!");
-   }
-
-   /**
-    *  鎵归噺鍒犻櫎
-    *
-    * @param ids
-    * @return
-    */
-   @AutoLog(value = "涓婃枡-鎵归噺鍒犻櫎")
-   @ApiOperation(value="涓婃枡-鎵归噺鍒犻櫎", notes="涓婃枡-鎵归噺鍒犻櫎")
-   //@RequiresPermissions("org.jeecg.modules:mes_material_loading:deleteBatch")
-   @DeleteMapping(value = "/deleteBatch")
-   public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-       this.mesMaterialLoadingService.removeByIds(Arrays.asList(ids.split(",")));
-       return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
-   }
-
-   /**
-    * 閫氳繃id鏌ヨ
-    *
-    * @param id
-    * @return
-    */
-   //@AutoLog(value = "涓婃枡-閫氳繃id鏌ヨ")
-   @ApiOperation(value="涓婃枡-閫氳繃id鏌ヨ", notes="涓婃枡-閫氳繃id鏌ヨ")
-   @GetMapping(value = "/queryById")
-   public Result<MesMaterialLoading> queryById(@RequestParam(name="id",required=true) String id) {
-       MesMaterialLoading mesMaterialLoading = mesMaterialLoadingService.getById(id);
-       if(mesMaterialLoading==null) {
-           return Result.error("鏈壘鍒板搴旀暟鎹�");
-       }
-       return Result.OK(mesMaterialLoading);
-   }
-
-   /**
-   * 瀵煎嚭excel
-   *
-   * @param request
-   * @param mesMaterialLoading
-   */
-   //@RequiresPermissions("org.jeecg.modules:mes_material_loading:exportXls")
-   @RequestMapping(value = "/exportXls")
-   public ModelAndView exportXls(HttpServletRequest request, MesMaterialLoading mesMaterialLoading) {
-       return super.exportXls(request, mesMaterialLoading, MesMaterialLoading.class, "涓婃枡");
-   }
-
-   /**
-     * 閫氳繃excel瀵煎叆鏁版嵁
-   *
-   * @param request
-   * @param response
-   * @return
-   */
-   //@RequiresPermissions("mes_material_loading:importExcel")
-   @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-   public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-       return super.importExcel(request, response, MesMaterialLoading.class);
-   }
-   /**
-    * 閫氳繃loadingId鏌ヨ涓嬫枡淇℃伅
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-   @RequestMapping("/queryUnloadingByLoadingId")
-   public Result<?> queryUnloadingByLoadingId(HttpServletRequest request, HttpServletResponse response) {
-       String loadingId = request.getParameter("loadingId");
-       return Result.OK(mesMaterialLoadingService.queryUnloadingByLoadingId(loadingId));
-   }
-   /*
-   * 閫氳繃 workOrderId 鏌ヨ涓婃枡淇℃伅
-   * @param workOrderId
-   * */
-    @GetMapping("/queryLoadingByWorkOrderId")
-    public Result<?> queryLoadingByWorkOrderId(@RequestParam(name = "workOrderId", required = true) String workOrderId) {
-        return Result.OK(mesMaterialLoadingService.queryLoadingByWorkOrderId(workOrderId));
+    /**
+     * 鍒嗛〉鍒楄〃鏌ヨ
+     *
+     * @param mesMaterialLoading
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    @ApiOperation(value = "涓婃枡-鍒嗛〉鍒楄〃鏌ヨ", notes = "涓婃枡-鍒嗛〉鍒楄〃鏌ヨ")
+    @GetMapping(value = "/list")
+    public Result<IPage<MesMaterialLoading>> queryPageList(MesMaterialLoading mesMaterialLoading,
+                                                           @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        Page<MesMaterialLoading> page = new Page<>(pageNo, pageSize);
+        IPage<MesMaterialLoading> pageList = mesMaterialLoadingService.queryPageList(page, mesMaterialLoading);
+        return Result.OK(pageList);
     }
 
+    /**
+     *   娣诲姞
+     *
+     * @param mesMaterialLoading
+     * @return
+     */
+    @AutoLog(value = "涓婃枡-娣诲姞")
+    @ApiOperation(value = "涓婃枡-娣诲姞", notes = "涓婃枡-娣诲姞")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody MesMaterialLoading mesMaterialLoading) {
+        boolean b = mesMaterialLoadingService.loading(mesMaterialLoading);
+        if (!b) {
+            Result.error("涓婃枡澶辫触锛�");
+        }
+        return Result.OK("涓婃枡鎴愬姛锛�");
+    }
+
+    /**
+     *  缂栬緫
+     *
+     * @param mesMaterialLoading
+     * @return
+     */
+    @AutoLog(value = "涓婃枡-缂栬緫")
+    @ApiOperation(value = "涓婃枡-缂栬緫", notes = "涓婃枡-缂栬緫")
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<String> edit(@RequestBody MesMaterialLoading mesMaterialLoading) {
+        mesMaterialLoadingService.updateById(mesMaterialLoading);
+        return Result.OK("缂栬緫鎴愬姛!");
+    }
+
+    /**
+     * 閫氳繃id鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    //@AutoLog(value = "涓婃枡-閫氳繃id鏌ヨ")
+    @ApiOperation(value = "涓婃枡-閫氳繃id鏌ヨ", notes = "涓婃枡-閫氳繃id鏌ヨ")
+    @GetMapping(value = "/queryById")
+    public Result<MesMaterialLoading> queryById(@RequestParam(name = "id", required = true) String id) {
+        MesMaterialLoading mesMaterialLoading = mesMaterialLoadingService.getById(id);
+        if (mesMaterialLoading == null) {
+            return Result.error("鏈壘鍒板搴旀暟鎹�");
+        }
+        return Result.OK(mesMaterialLoading);
+    }
+
+    /**
+     * 閫氳繃loadingId鏌ヨ涓嬫枡淇℃伅
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping("/queryUnloadingByLoadingId")
+    public Result<?> queryUnloadingByLoadingId(HttpServletRequest request, HttpServletResponse response) {
+        String loadingId = request.getParameter("loadingId");
+        return Result.OK(mesMaterialLoadingService.queryUnloadingByLoadingId(loadingId));
+    }
 }
diff --git a/src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java b/src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java
index fdb6ba0..c062cc9 100644
--- a/src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java
+++ b/src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java
@@ -18,78 +18,82 @@
 /**
  * @Description: 涓婃枡
  * @Author: jeecg-boot
- * @Date:   2025-07-07
+ * @Date: 2025-07-07
  * @Version: V1.0
  */
 @Data
 @TableName("mes_material_loading")
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = false)
-@ApiModel(value="mes_material_loading瀵硅薄", description="涓婃枡")
+@ApiModel(value = "mes_material_loading瀵硅薄", description = "涓婃枡")
 public class MesMaterialLoading implements Serializable {
     private static final long serialVersionUID = 1L;
 
-	/**涓婚敭*/
-	@TableId(type = IdType.ASSIGN_ID)
+    /**涓婚敭*/
+    @TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "涓婚敭")
     private String id;
-	/**鍒涘缓浜�*/
+    /**鍒涘缓浜�*/
     @ApiModelProperty(value = "鍒涘缓浜�")
     private String createBy;
-	/**鍒涘缓鏃ユ湡*/
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    /**鍒涘缓鏃ユ湡*/
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "鍒涘缓鏃ユ湡")
     private Date createTime;
-	/**鏇存柊浜�*/
+    /**鏇存柊浜�*/
     @ApiModelProperty(value = "鏇存柊浜�")
     private String updateBy;
-	/**鏇存柊鏃ユ湡*/
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    /**鏇存柊鏃ユ湡*/
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "鏇存柊鏃ユ湡")
     private Date updateTime;
-	/**鍒犻櫎鏍囪*/
-	@Excel(name = "鍒犻櫎鏍囪", width = 15)
+    /**鍒犻櫎鏍囪*/
+    @Excel(name = "鍒犻櫎鏍囪", width = 15)
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
     @TableLogic
     private Integer delFlag;
     /**浜х嚎ID*/
     @Excel(name = "浜х嚎ID", width = 15)
     @ApiModelProperty(value = "浜х嚎ID")
+    @Dict(dictTable = "base_factory", dicCode = "id", dicText = "factory_name")
     private String factoryId;
     /**搴撳瓨鍦癐D*/
     @Excel(name = "搴撳瓨鍦癐D", width = 15)
     @ApiModelProperty(value = "搴撳瓨鍦癐D")
+    @Dict(dictTable = "base_line_side_warehouse", dicCode = "id", dicText = "warehouse_name")
     private String warehouseId;
-	/**鐗╂枡缂栫爜*/
-	@Excel(name = "鐗╂枡缂栫爜", width = 15)
+    /**鐗╂枡缂栫爜*/
+    @Excel(name = "鐗╂枡缂栫爜", width = 15)
     @ApiModelProperty(value = "鐗╂枡缂栫爜")
     private String materialNumber;
-	/**鐗╂枡鍚嶇О*/
-	@Excel(name = "鐗╂枡鍚嶇О", width = 15)
+    /**鐗╂枡鍚嶇О*/
+    @Excel(name = "鐗╂枡鍚嶇О", width = 15)
     @ApiModelProperty(value = "鐗╂枡鍚嶇О")
     private String materialName;
-	/**鎵规鍙�*/
-	@Excel(name = "鎵规鍙�", width = 15)
+    /**鎵规鍙�*/
+    @Excel(name = "鎵规鍙�", width = 15)
     @ApiModelProperty(value = "鎵规鍙�")
     private String batchNumber;
     /**閽㈢悆灏哄*/
     @Excel(name = "閽㈢悆灏哄", width = 15)
     @ApiModelProperty(value = "閽㈢悆灏哄")
+    @Dict(dicCode = "steel_ball_size")
     private String steelBallSize;
-	/**鏁伴噺*/
-	@Excel(name = "鏁伴噺", width = 15)
+    /**鏁伴噺*/
+    @Excel(name = "鏁伴噺", width = 15)
     @ApiModelProperty(value = "鏁伴噺")
     private BigDecimal quantity;
-	/**鍓╀綑鏁伴噺*/
-	@Excel(name = "鍓╀綑鏁伴噺", width = 15)
+    /**鍓╀綑鏁伴噺*/
+    @Excel(name = "鍓╀綑鏁伴噺", width = 15)
     @ApiModelProperty(value = "鍓╀綑鏁伴噺")
     private BigDecimal remainingQuantity;
+    /**涓嬫枡鏍囪*/
+    @Excel(name = "涓嬫枡鏍囪", width = 15)
+    @ApiModelProperty(value = "涓嬫枡鏍囪")
+    private String unloadingFlag;
+    /** 鍒嗙被 */
     @TableField(exist = false)
-    @ApiModelProperty(value = "宸ュ崟鍙�")
-    private String workOrderCode;
-    @TableField(exist = false)
-    @ApiModelProperty(value = "璁惧鍚嶇О")
-    private String equipmentName;
+    private String category;
 }
diff --git a/src/main/java/org/jeecg/modules/mes/mapper/MesMaterialLoadingMapper.java b/src/main/java/org/jeecg/modules/mes/mapper/MesMaterialLoadingMapper.java
index e172a3a..16a7b33 100644
--- a/src/main/java/org/jeecg/modules/mes/mapper/MesMaterialLoadingMapper.java
+++ b/src/main/java/org/jeecg/modules/mes/mapper/MesMaterialLoadingMapper.java
@@ -1,7 +1,6 @@
 package org.jeecg.modules.mes.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
@@ -20,8 +19,12 @@
  */
 public interface MesMaterialLoadingMapper extends BaseMapper<MesMaterialLoading> {
     List<MesMaterialUnloading> queryUnloadingByLoadingId(@Param("loadingId") String loadingId);
-    List<MesMaterialLoading> queryLoadingByWorkOrderId(@Param("workOrderId") String workOrderId);
 
-    IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page,
-                                            @Param(Constants.WRAPPER) Wrapper<MesMaterialLoading> queryWrapper);
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page, @Param(Constants.WRAPPER) Wrapper<MesMaterialLoading> queryWrapper);
 }
diff --git a/src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml b/src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml
index 1bf443e..fb86d6e 100644
--- a/src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml
+++ b/src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml
@@ -4,21 +4,41 @@
     <select id="queryUnloadingByLoadingId" resultType="org.jeecg.modules.mes.entity.MesMaterialUnloading">
         select * from mes_material_unloading where loading_id = #{loadingId} and del_flag = 0 order by create_time desc
     </select>
-    <select id="queryLoadingByWorkOrderId" resultType="org.jeecg.modules.mes.entity.MesMaterialLoading">
-        select mml.* ,mpwo.work_order_code as workOrderCode
-        from mes_material_loading mml
-                 left join mes_production_work_order mpwo on mml.work_order_id = mpwo.id
-        where mml.work_order_id = #{workOrderId}
-          and mml.del_flag = 0
-    </select>
+
     <select id="queryPageList" resultType="org.jeecg.modules.mes.entity.MesMaterialLoading">
-        SELECT
-            t1.*,
-            t2.work_order_code workOrderCode,
-            t3.equipment_name equipmentName
-        FROM mes_material_loading t1
-        LEFT JOIN mes_production_work_order t2 ON t1.work_order_id = t2.id
-        LEFT JOIN eam_equipment t3 ON t1.equipment_id = t3.id
-        ${ew.customSqlSegment}
+        select *
+        from (SELECT m.id,
+                     m.create_by,
+                     m.create_time,
+                     m.material_number,
+                     m.material_name,
+                     m.factory_id,
+                     m.warehouse_id,
+                     m.batch_number,
+                     m.steel_ball_size,
+                     m.quantity,
+                     m.remaining_quantity,
+                     m.unloading_flag,
+                     'LOADING' AS category
+              FROM mes_material_loading m
+              WHERE m.del_flag = 0
+              UNION ALL
+              SELECT t1.id,
+                     t1.create_by,
+                     t1.create_time,
+                     t1.material_number,
+                     t1.material_name,
+                     t2.factory_id,
+                     t2.warehouse_id,
+                     t2.batch_number,
+                     t2.steel_ball_size,
+                     t2.quantity,
+                     t2.remaining_quantity,
+                     t2.unloading_flag,
+                     'UNLOADING' AS category
+              FROM mes_material_unloading t1
+              INNER JOIN mes_material_loading t2 ON t1.loading_id = t2.id
+              WHERE t1.del_flag = 0) mml
+            ${ew.customSqlSegment}
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java b/src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java
index dfcfc48..53c56f3 100644
--- a/src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java
+++ b/src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java
@@ -12,12 +12,24 @@
 /**
  * @Description: 涓婃枡
  * @Author: jeecg-boot
- * @Date:   2025-07-07
+ * @Date: 2025-07-07
  * @Version: V1.0
  */
 public interface IMesMaterialLoadingService extends IService<MesMaterialLoading> {
     List<MesMaterialUnloading> queryUnloadingByLoadingId(String loadingId);
-    List<MesMaterialLoading> queryLoadingByWorkOrderId(String workOrderId);
 
-    IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page, Map<String, String[]> parameterMap);
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param mesMaterialLoading
+     * @return
+     */
+    IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page, MesMaterialLoading mesMaterialLoading);
+
+    /**
+     * 涓婃枡鎺ュ彛
+     * @param mesMaterialLoading
+     * @return
+     */
+    boolean loading(MesMaterialLoading mesMaterialLoading);
 }
diff --git a/src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java b/src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java
index 188ec6c..317f986 100644
--- a/src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java
@@ -2,26 +2,53 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.base.entity.LineSideWarehouse;
+import org.jeecg.modules.base.service.ILineSideWarehouseService;
+import org.jeecg.modules.lsw.entity.LswMaterial;
+import org.jeecg.modules.lsw.entity.LswMaterialInventory;
+import org.jeecg.modules.lsw.entity.LswMaterialOutbound;
+import org.jeecg.modules.lsw.enums.MaterialCategoryEnum;
+import org.jeecg.modules.lsw.enums.MaterialOutboundCategory;
+import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
+import org.jeecg.modules.lsw.service.ILswMaterialOutboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialService;
 import org.jeecg.modules.mes.entity.MesMaterialLoading;
 import org.jeecg.modules.mes.entity.MesMaterialUnloading;
 import org.jeecg.modules.mes.mapper.MesMaterialLoadingMapper;
 import org.jeecg.modules.mes.service.IMesMaterialLoadingService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
 /**
  * @Description: 涓婃枡
  * @Author: jeecg-boot
- * @Date:   2025-07-07
+ * @Date: 2025-07-07
  * @Version: V1.0
  */
 @Service
 public class MesMaterialLoadingServiceImpl extends ServiceImpl<MesMaterialLoadingMapper, MesMaterialLoading> implements IMesMaterialLoadingService {
+
+    @Autowired
+    private ILineSideWarehouseService lineSideWarehouseService;
+    @Autowired
+    private ILswMaterialOutboundService lswMaterialOutboundService;
+    @Autowired
+    private ILswMaterialInventoryService materialInventoryService;
+    @Autowired
+    private ILswMaterialService materialService;
 
     @Override
     public List<MesMaterialUnloading> queryUnloadingByLoadingId(String loadingId) {
@@ -29,38 +56,86 @@
     }
 
     @Override
-    public List<MesMaterialLoading> queryLoadingByWorkOrderId(String workOrderId) {
-        return baseMapper.queryLoadingByWorkOrderId(workOrderId);
+    public IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page, MesMaterialLoading mesMaterialLoading) {
+        QueryWrapper<MesMaterialLoading> queryWrapper = new QueryWrapper<>();
+        if (StringUtils.isNotBlank(mesMaterialLoading.getFactoryId())) {
+            queryWrapper.eq("mml.factory_id", mesMaterialLoading.getFactoryId());
+        }
+        if (StringUtils.isNotBlank(mesMaterialLoading.getCategory())) {
+            queryWrapper.eq("mml.category", mesMaterialLoading.getCategory());
+        }
+        if (StringUtils.isNotBlank(mesMaterialLoading.getMaterialNumber())) {
+            queryWrapper.like("mml.material_number", mesMaterialLoading.getMaterialNumber());
+        }
+        if (StringUtils.isNotBlank(mesMaterialLoading.getMaterialName())) {
+            queryWrapper.like("mml.material_name", mesMaterialLoading.getMaterialName());
+        }
+        if (StringUtils.isNotBlank(mesMaterialLoading.getBatchNumber())) {
+            queryWrapper.like("mml.batch_number", mesMaterialLoading.getBatchNumber());
+        }
+        queryWrapper.orderByDesc("mml.create_time");
+        return this.baseMapper.queryPageList(page, queryWrapper);
     }
 
     @Override
-    public IPage<MesMaterialLoading> queryPageList(Page<MesMaterialLoading> page, Map<String, String[]> parameterMap) {
-        QueryWrapper<MesMaterialLoading> queryWrapper = Wrappers.query();
-        String[] factoryIds = parameterMap.get("factoryId");
-        if (factoryIds != null && factoryIds.length > 0) {
-            queryWrapper.eq("t2.factory_id", factoryIds[0]);
+    @Transactional(rollbackFor = Exception.class)
+    public boolean loading(MesMaterialLoading mesMaterialLoading) {
+        if (mesMaterialLoading == null) {
+            throw new JeecgBootException("鍙傛暟閿欒锛�");
         }
-        String[] workOrderIds = parameterMap.get("workOrderId");
-        if (workOrderIds != null && workOrderIds.length > 0) {
-            queryWrapper.eq("t1.work_order_id", workOrderIds[0]);
+        if (StringUtils.isBlank(mesMaterialLoading.getFactoryId())
+                || StringUtils.isBlank(mesMaterialLoading.getMaterialNumber())
+                || mesMaterialLoading.getQuantity() == null
+                || mesMaterialLoading.getQuantity().intValue() < 1
+                || StringUtils.isBlank(mesMaterialLoading.getBatchNumber())) {
+            throw new JeecgBootException("鍙傛暟閿欒锛�");
         }
-        String[] materialNumbers = parameterMap.get("materialNumber");
-        if (materialNumbers != null && materialNumbers.length > 0) {
-            queryWrapper.like("t1.material_number", materialNumbers[0]);
+        LineSideWarehouse warehouse = lineSideWarehouseService.queryByFactoryId(mesMaterialLoading.getFactoryId());
+        if (warehouse == null) {
+            throw new JeecgBootException("绾胯竟搴撲笉瀛樺湪锛岃妫�鏌ワ紒");
         }
-        String[] materialNames = parameterMap.get("materialName");
-        if (materialNames != null && materialNames.length > 0) {
-            queryWrapper.like("t1.material_name", materialNames[0]);
+
+        LswMaterial material = materialService.queryByMaterialNumber(mesMaterialLoading.getMaterialNumber());
+        if (material == null) {
+            throw new JeecgBootException("鐗╂枡淇℃伅涓嶅瓨鍦紝璇锋鏌ワ紒");
         }
-        String[] batchNumbers = parameterMap.get("batchNumber");
-        if (batchNumbers != null && batchNumbers.length > 0) {
-            queryWrapper.like("t1.batch_number", batchNumbers[0]);
+
+        if (MaterialCategoryEnum.STEEL_BALL.name().equals(material.getMaterialCategory()) && StringUtils.isBlank(mesMaterialLoading.getSteelBallSize())) {
+            throw new JeecgBootException("閽㈢悆灏哄涓嶈兘涓虹┖锛岃妫�鏌ワ紒");
         }
-        String[] equipmentIds = parameterMap.get("equipmentId");
-        if (equipmentIds != null && equipmentIds.length > 0) {
-            queryWrapper.eq("t1.equipment_id", equipmentIds[0]);
+
+        LswMaterialInventory inventory = materialInventoryService.queryByMaterialNumberAndBatchNumber(mesMaterialLoading.getMaterialNumber(), mesMaterialLoading.getBatchNumber(), warehouse.getId());
+        if (inventory == null) {
+            throw new JeecgBootException("搴撳瓨涓嶅瓨鍦紝璇锋鏌ワ紒");
         }
-        queryWrapper.orderByDesc("t1.create_time");
-        return this.baseMapper.queryPageList(page, queryWrapper);
+        if (inventory.getQuantity().compareTo(mesMaterialLoading.getQuantity()) != 0) {
+            throw new JeecgBootException("涓婃枡鍜屽簱瀛樻暟閲忎笉鍖归厤锛岃妫�鏌ワ紒");
+        }
+
+        //浜哄憳淇℃伅
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null) {
+            throw new JeecgBootException("鐢ㄦ埛淇℃伅鑾峰彇澶辫触锛�");
+        }
+        LswMaterialOutbound outbound = new LswMaterialOutbound();
+        outbound.setMaterialNumber(mesMaterialLoading.getMaterialNumber());
+        outbound.setMaterialName(mesMaterialLoading.getMaterialName());
+        outbound.setQuantity(mesMaterialLoading.getQuantity());
+        outbound.setFactoryId(mesMaterialLoading.getFactoryId());
+        outbound.setWarehouseId(warehouse.getId());
+        outbound.setBatchNumber(mesMaterialLoading.getBatchNumber());
+        outbound.setOutboundCategory(MaterialOutboundCategory.MATERIAL_LOADING.name());
+        outbound.setInventoryId(inventory.getId());
+        outbound.setOutboundStaff(sysUser.getUsername());
+        boolean b = lswMaterialOutboundService.outboundMaterial(outbound);
+        if (!b) {
+            throw new JeecgBootException("搴撳瓨鍑哄簱澶辫触锛�");
+        }
+        mesMaterialLoading.setWarehouseId(warehouse.getId());
+        mesMaterialLoading.setRemainingQuantity(mesMaterialLoading.getQuantity());
+        mesMaterialLoading.setDelFlag(CommonConstant.DEL_FLAG_0);
+        mesMaterialLoading.setUnloadingFlag(CommonConstant.STATUS_0);
+        this.save(mesMaterialLoading);
+        return true;
     }
 }

--
Gitblit v1.9.3