From 9e97ded95f71e4c736bf11464ea2c25860d2aab8 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 10 九月 2025 11:47:27 +0800
Subject: [PATCH] art: 下料接口,上下料查询接口修改

---
 src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java    |   15 ++++---
 src/main/java/org/jeecg/modules/mes/mapper/xml/MesMaterialLoadingMapper.xml         |    2 
 src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialLoadingServiceImpl.java |   61 +++++++++++++++++++++++++++++-
 src/main/java/org/jeecg/modules/mes/entity/MesMaterialUnloading.java                |    3 +
 src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java                  |    4 ++
 src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java         |    8 +++
 6 files changed, 81 insertions(+), 12 deletions(-)

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 277a813..5cb522a 100644
--- a/src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java
+++ b/src/main/java/org/jeecg/modules/mes/controller/MesMaterialLoadingController.java
@@ -71,12 +71,15 @@
      * @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("缂栬緫鎴愬姛!");
+    @AutoLog(value = "涓婃枡-涓嬫枡")
+    @ApiOperation(value = "涓婃枡-涓嬫枡", notes = "涓婃枡-涓嬫枡")
+    @RequestMapping(value = "/unloading", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<String> unloading(@RequestBody MesMaterialLoading mesMaterialLoading) {
+        boolean b = mesMaterialLoadingService.unloading(mesMaterialLoading);
+        if (!b) {
+            Result.error("涓嬫枡澶辫触锛�");
+        }
+        return Result.OK("涓嬫枡鎴愬姛锛�");
     }
 
     /**
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 c062cc9..f2ef091 100644
--- a/src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java
+++ b/src/main/java/org/jeecg/modules/mes/entity/MesMaterialLoading.java
@@ -35,6 +35,7 @@
     private String id;
     /**鍒涘缓浜�*/
     @ApiModelProperty(value = "鍒涘缓浜�")
+    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
     private String createBy;
     /**鍒涘缓鏃ユ湡*/
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@@ -96,4 +97,7 @@
     /** 鍒嗙被 */
     @TableField(exist = false)
     private String category;
+    /** 涓嬫枡鏁伴噺 */
+    @TableField(exist = false)
+    private BigDecimal unloadingQuantity;
 }
diff --git a/src/main/java/org/jeecg/modules/mes/entity/MesMaterialUnloading.java b/src/main/java/org/jeecg/modules/mes/entity/MesMaterialUnloading.java
index df19578..5b0a7f5 100644
--- a/src/main/java/org/jeecg/modules/mes/entity/MesMaterialUnloading.java
+++ b/src/main/java/org/jeecg/modules/mes/entity/MesMaterialUnloading.java
@@ -14,6 +14,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -74,5 +75,5 @@
 	/**鏁伴噺*/
 	@Excel(name = "鏁伴噺", width = 15)
     @ApiModelProperty(value = "鏁伴噺")
-    private Double quantity;
+    private BigDecimal quantity;
 }
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 fb86d6e..ade3ec2 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
@@ -32,7 +32,7 @@
                      t2.warehouse_id,
                      t2.batch_number,
                      t2.steel_ball_size,
-                     t2.quantity,
+                     t1.quantity,
                      t2.remaining_quantity,
                      t2.unloading_flag,
                      'UNLOADING' AS category
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 53c56f3..2115e03 100644
--- a/src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java
+++ b/src/main/java/org/jeecg/modules/mes/service/IMesMaterialLoadingService.java
@@ -7,7 +7,6 @@
 import org.jeecg.modules.mes.entity.MesMaterialUnloading;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Description: 涓婃枡
@@ -32,4 +31,11 @@
      * @return
      */
     boolean loading(MesMaterialLoading mesMaterialLoading);
+
+    /**
+     * 涓嬫枡
+     * @param mesMaterialLoading
+     * @return
+     */
+    boolean unloading(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 317f986..69ffb6b 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
@@ -3,7 +3,6 @@
 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;
@@ -13,10 +12,13 @@
 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.LswMaterialInbound;
 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.MaterialInboundCategory;
 import org.jeecg.modules.lsw.enums.MaterialOutboundCategory;
+import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
 import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
 import org.jeecg.modules.lsw.service.ILswMaterialOutboundService;
 import org.jeecg.modules.lsw.service.ILswMaterialService;
@@ -24,13 +26,12 @@
 import org.jeecg.modules.mes.entity.MesMaterialUnloading;
 import org.jeecg.modules.mes.mapper.MesMaterialLoadingMapper;
 import org.jeecg.modules.mes.service.IMesMaterialLoadingService;
+import org.jeecg.modules.mes.service.IMesMaterialUnloadingService;
 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: 涓婃枡
@@ -49,6 +50,10 @@
     private ILswMaterialInventoryService materialInventoryService;
     @Autowired
     private ILswMaterialService materialService;
+    @Autowired
+    private IMesMaterialUnloadingService mesMaterialUnloadingService;
+    @Autowired
+    private ILswMaterialInboundService materialInboundService;
 
     @Override
     public List<MesMaterialUnloading> queryUnloadingByLoadingId(String loadingId) {
@@ -138,4 +143,54 @@
         this.save(mesMaterialLoading);
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean unloading(MesMaterialLoading mesMaterialLoading) {
+        if (mesMaterialLoading == null) {
+            throw new JeecgBootException("鍙傛暟閿欒锛�");
+        }
+        if (StringUtils.isBlank(mesMaterialLoading.getId())
+                || mesMaterialLoading.getUnloadingQuantity() == null
+                || mesMaterialLoading.getUnloadingQuantity().intValue() < 1) {
+            throw new JeecgBootException("鍙傛暟閿欒锛�");
+        }
+        //鏌ヨ涓婃枡鏁版嵁
+        MesMaterialLoading loading = super.getById(mesMaterialLoading.getId());
+        if (loading == null) {
+            throw new JeecgBootException("鏈煡璇㈠埌涓婃枡鏁版嵁锛�");
+        }
+        if (loading.getRemainingQuantity().compareTo(mesMaterialLoading.getUnloadingQuantity()) < 0) {
+            throw new JeecgBootException("涓嬫枡鏁伴噺涓嶈兘澶т簬褰撳墠鍓╀綑鏁伴噺锛�");
+        }
+        //绾胯竟搴撲俊鎭�
+        LineSideWarehouse warehouse = lineSideWarehouseService.getById(loading.getWarehouseId());
+        if(warehouse == null) {
+            throw new JeecgBootException("鏈煡璇㈠埌绾胯竟搴擄紒");
+        }
+        loading.setUnloadingFlag(CommonConstant.STATUS_1);
+        loading.setRemainingQuantity(loading.getRemainingQuantity().subtract(mesMaterialLoading.getUnloadingQuantity()));
+        super.updateById(loading);
+        //淇濆瓨涓嬫枡淇℃伅
+        MesMaterialUnloading unloading = new MesMaterialUnloading();
+        unloading.setLoadingId(loading.getId());
+        unloading.setMaterialNumber(loading.getMaterialNumber());
+        unloading.setMaterialName(loading.getMaterialName());
+        unloading.setBatchNumber(loading.getBatchNumber());
+        unloading.setQuantity(mesMaterialLoading.getUnloadingQuantity());
+        mesMaterialUnloadingService.save(unloading);
+        //淇濆瓨鍏ュ簱淇℃伅
+        LswMaterialInbound materialInbound = new LswMaterialInbound()
+                .setFactoryId(loading.getFactoryId())
+                .setWarehouseId(loading.getWarehouseId())
+                .setMaterialNumber(loading.getMaterialNumber())
+                .setMaterialName(loading.getMaterialName())
+                .setBatchNumber(loading.getBatchNumber())
+                .setQuantity(unloading.getQuantity())
+                .setInboundCategory(MaterialInboundCategory.PRODUCTION_UNLOADING.name())//涓嬫枡
+                .setOriginalCode(warehouse.getWarehouseCode())
+                .setOriginalName(warehouse.getWarehouseName());
+        materialInboundService.inboundMaterial(materialInbound);
+        return true;
+    }
 }

--
Gitblit v1.9.3