From a27f1b573fc5cf9a3b78e2eacb56e44310f83456 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 27 八月 2025 12:17:01 +0800
Subject: [PATCH] art: 添加入库逻辑,SAP订单同步参数动态配置

---
 src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInboundServiceImpl.java |   64 +++++++++++++++++++++++++++++++
 1 files changed, 63 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInboundServiceImpl.java b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInboundServiceImpl.java
index 9acc70f..3c2899e 100644
--- a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInboundServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialInboundServiceImpl.java
@@ -1,18 +1,80 @@
 package org.jeecg.modules.lsw.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.constant.CommonConstant;
+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.mapper.LswMaterialInboundMapper;
 import org.jeecg.modules.lsw.service.ILswMaterialInboundService;
+import org.jeecg.modules.lsw.service.ILswMaterialInventoryService;
+import org.jeecg.modules.lsw.service.ILswMaterialService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @Description: 鐗╂枡鍏ュ簱鍗�
  * @Author: jeecg-boot
- * @Date:   2025-06-30
+ * @Date: 2025-06-30
  * @Version: V1.0
  */
 @Service
 public class LswMaterialInboundServiceImpl extends ServiceImpl<LswMaterialInboundMapper, LswMaterialInbound> implements ILswMaterialInboundService {
+    @Autowired
+    private ILswMaterialInventoryService inventoryService;
+    @Autowired
+    private ILswMaterialService materialService;
 
+    @Override
+    public IPage<Map<String, Object>> getlswMaterialInboundListData(Integer pageNo, Integer pageSize, HttpServletRequest req) {
+        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
+        Map<String, String> paramMap = new HashMap<String, String>();
+        Map<String, String[]> parameterMap = req.getParameterMap();
+        if (null != parameterMap) {
+            if (parameterMap.containsKey("materialNumber") && StringUtils.isNotBlank(parameterMap.get("materialNumber")[0])) {
+                paramMap.put("materialNumber", parameterMap.get("materialNumber")[0]);
+            }
+            if (parameterMap.containsKey("materialName") && StringUtils.isNotBlank(parameterMap.get("materialName")[0])) {
+                paramMap.put("materialName", parameterMap.get("materialName")[0].trim());
+            }
+            if (parameterMap.containsKey("batchNumber") && StringUtils.isNotBlank(parameterMap.get("batchNumber")[0])) {
+                paramMap.put("batchNumber", parameterMap.get("batchNumber")[0].trim());
+            }
+        }
+        return super.getBaseMapper().getlswMaterialInboundListData(pageData, paramMap);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean inboundMaterial(LswMaterialInbound materialInbound) {
+        if (StringUtils.isBlank(materialInbound.getMaterialNumber())
+                || StringUtils.isBlank(materialInbound.getFactoryId())
+                || StringUtils.isBlank(materialInbound.getWarehouseId())
+                || materialInbound.getQuantity() == null
+                || materialInbound.getQuantity().intValue() > 0
+                || StringUtils.isBlank(materialInbound.getBatchNumber())) {
+            return false;
+        }
+        LswMaterial material = materialService.queryByMaterialNumber(materialInbound.getMaterialNumber());
+        if(material == null) {
+            return false;
+        }
+        //淇濆瓨鍏ュ簱淇℃伅
+        materialInbound.setDelFlag(CommonConstant.DEL_FLAG_0);
+        materialInbound.setReceiveTime(new Date());
+        super.save(materialInbound);
+        //淇濆瓨搴撳瓨淇℃伅
+        LswMaterialInventory lswMaterialInventory = new LswMaterialInventory(materialInbound, material.getId(), material.getMaterialCategory());
+        inventoryService.save(lswMaterialInventory);
+        return true;
+    }
 }

--
Gitblit v1.9.3