From a5abbaea5e8a35e77df3a06a88b8b96bebbf79b4 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期二, 14 十月 2025 08:47:57 +0800
Subject: [PATCH] 新增物料更新接口

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WmsOrderItemParam.java           |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/MatnrLocLevel.java                  |   36 ++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java |    7 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java        |    5 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java |   12 ++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java       |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java        |   10 +++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java                |    7 ++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java       |   59 ++++++++++++++++++-
 rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx                                                  |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java     |    2 
 11 files changed, 135 insertions(+), 10 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
index d33ad5f..78c34a1 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
@@ -286,7 +286,7 @@
                     marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.matnr"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WmsOrderItemParam.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WmsOrderItemParam.java
index 75e00de..e604554 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WmsOrderItemParam.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WmsOrderItemParam.java
@@ -12,7 +12,7 @@
 public class WmsOrderItemParam {
 
     @ApiModelProperty("鐗╂枡缂栫爜")
-    private String matnrCode;
+    private String matnr;
 
     @ApiModelProperty("鐗╂枡鍚嶇О")
     private String maktx;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java
index 41392fb..6997f92 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java
@@ -40,6 +40,16 @@
         return R.ok();
     }
 
+    @ApiOperation("鍩虹鐗╂枡淇℃伅鏇存柊")
+    @PostMapping("/mat/sync/auth/v1")
+    public R matUpdate(@RequestBody BaseMatParms baseMatParms) {
+        if (Objects.isNull(baseMatParms)) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛�");
+        }
+
+        return receiveMsgService.matUpdate(baseMatParms);
+    }
+
     /**
      * @author Ryan
      * @date 2025/8/18
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
index 1d0c087..cd13bb9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
@@ -30,6 +30,9 @@
     @ApiModelProperty("灏哄")
     private String size;
 
+    @ApiModelProperty("瑙勬牸")
+    private String spec;
+
     @ApiModelProperty("鎻忚堪")
     private String describle;
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java
index f1d3d99..105f5e8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java
@@ -22,7 +22,7 @@
     private Long matnrId;
 
     @ApiModelProperty("鐗╂枡缂栫爜")
-    private String matnrCode;
+    private String matnr;
 
     @ApiModelProperty("鐗╂枡鍚嶇О")
     private String maktx;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
index 91015cf..14c8691 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -145,4 +145,11 @@
      * @version 1.0
      */
     R syncCheckDiffs(SyncCheckDiffParams syncParams);
+
+    /**
+     * 鐗╂枡鏇存柊
+     * @param baseMatParms
+     * @return
+     */
+    R matUpdate(BaseMatParms baseMatParms);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index 9c8c055..9584a8f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -277,7 +277,7 @@
     /**
      * @author Ryan
      * @date 2025/8/18
-     * @description: 鐗╂枡淇℃伅鍚屾
+     * @description: 鐗╂枡鍒嗙粍淇℃伅鍚屾
      * @version 1.0
      */
     @Override
@@ -576,7 +576,7 @@
             revise.getItems().forEach(reviseItem -> {
                 ReviseLogItem logItem = new ReviseLogItem();
                 BeanUtils.copyProperties(reviseItem, logItem);
-                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, reviseItem.getMatnrCode()));
+                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, reviseItem.getMatnr()));
                 if (Objects.isNull(matnr)) {
                     throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�");
                 }
@@ -621,13 +621,13 @@
             }
             order.getOrdersItems().forEach(orderItem -> {
                 WkOrderItem wkOrderItem = asnOrderItemService.getOne(new LambdaUpdateWrapper<WkOrderItem>()
-                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnrCode())
+                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnr())
                         .eq(StringUtils.isNotEmpty(orderItem.getBatch()), WkOrderItem::getSplrBatch, orderItem.getBatch())
                         .eq(WkOrderItem::getOrderCode, wkOrder.getCode()));
                 if (!Objects.isNull(wkOrderItem)) {
                     if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
                             .eq(WkOrderItem::getOrderCode, wkOrder.getCode())
-                            .eq(WkOrderItem::getMatnrCode, orderItem.getMatnrCode())
+                            .eq(WkOrderItem::getMatnrCode, orderItem.getMatnr())
                             .eq(StringUtils.isNotEmpty(orderItem.getBatch()), WkOrderItem::getSplrBatch, orderItem.getBatch())
                             .eq(StringUtils.isNotEmpty(orderItem.getPlatItemId()), WkOrderItem::getPlatItemId, orderItem.getPlatItemId())
                             .set(WkOrderItem::getAnfme, orderItem.getAnfme()))) {
@@ -671,7 +671,7 @@
             }
             order.getOrdersItems().forEach(orderItem -> {
                 if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>()
-                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnrCode())
+                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnr())
                         .eq(StringUtils.isNotEmpty(orderItem.getBatch()), WkOrderItem::getSplrBatch, orderItem.getBatch())
                         .eq(StringUtils.isNotEmpty(orderItem.getPlatItemId()), WkOrderItem::getPlatItemId, orderItem.getPlatItemId())
                         .eq(WkOrderItem::getOrderCode, wkOrder.getCode()))) {
@@ -744,4 +744,53 @@
 
         return R.ok().add(dtos);
     }
+
+    /**
+     * 鍩虹鐗╂枡淇℃伅鍙樻洿
+     * @param baseMatParms
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R matUpdate(BaseMatParms baseMatParms) {
+        if (StringUtils.isNotBlank(baseMatParms.getMatnr())) {
+            throw new CoolException("鍩虹淇℃伅鍙樻洿澶辫触锛侊紒");
+        }
+        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, baseMatParms.getMatnr()));
+        if (Objects.isNull(matnr)) {
+            BeanUtils.copyProperties(baseMatParms, matnr);
+            matnr.setCode(baseMatParms.getMatnr());
+            matnr.setName(baseMatParms.getMaktx());
+            if (!Objects.isNull(baseMatParms.getGroupName())) {
+                MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
+                        .eq(MatnrGroup::getName, baseMatParms.getGroupName()));
+                if (Objects.isNull(matnrGroup)) {
+                    matnr.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
+                }
+            }
+            if (!matnrService.save(matnr)) {
+                throw new CoolException("鐗╂枡鏂板澶辫触锛侊紒");
+            }
+        } else {
+
+            if (!Objects.isNull(baseMatParms.getGroupName())) {
+                MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
+                        .eq(MatnrGroup::getName, baseMatParms.getGroupName()));
+                if (Objects.isNull(matnrGroup)) {
+                    matnr.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
+                }
+            }
+
+            matnr.setName(baseMatParms.getMaktx())
+                    .setColor(baseMatParms.getColor())
+                    .setModel(baseMatParms.getModel())
+                    .setSpec(baseMatParms.getSpec());
+
+            if (!matnrService.updateById(matnr)) {
+                throw new CoolException("鐗╂枡鏇存柊澶辫触锛侊紒");
+            }
+        }
+
+        return R.ok();
+    }
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/MatnrLocLevel.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/MatnrLocLevel.java
new file mode 100644
index 0000000..39f54b3
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/MatnrLocLevel.java
@@ -0,0 +1,36 @@
+package com.vincent.rsf.server.manager.enums;
+
+/**
+ * 鐗╂枡搴撳瓨ABCD绫�
+ */
+public enum MatnrLocLevel {
+
+    //A銆丅, C锛� D
+    MATNR_LOC_LEVEL_A("0", "A绫�"),
+    MATNR_LOC_LEVEL_B("1", "B绫�"),
+    MATNR_LOC_LEVEL_C("2", "C绫�"),
+    MATNR_LOC_LEVEL_D("3", "D绫�"),
+    ;
+
+    MatnrLocLevel(String type, String desc) {
+        this.type = Short.parseShort(type);
+        this.desc = desc;
+    }
+
+    public Short type;
+
+    public String desc;
+
+    public static Short getTypeVal(String desc) {
+        if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_A.desc)) {
+            return MatnrLocLevel.MATNR_LOC_LEVEL_A.type;
+        } else if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_B.desc)) {
+            return MatnrLocLevel.MATNR_LOC_LEVEL_B.type;
+        } else if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_C.desc)) {
+            return MatnrLocLevel.MATNR_LOC_LEVEL_C.type;
+        } else if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_D.desc)) {
+            return MatnrLocLevel.MATNR_LOC_LEVEL_D.type;
+        }
+        return null;
+    }
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
index 3617b00..4dc8371 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -239,6 +239,13 @@
         if (Objects.isNull(wkOrderItem.getAnfme()) || Double.compare(wkOrderItem.getAnfme(), 0.0) <= 0) {
             throw new CoolException("璁″垝鏁颁笉鑳戒负绌猴紒锛�");
         }
+
+        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, wkOrderItem.getMatnrCode()));
+        if (Objects.isNull(matnr)) {
+            throw new CoolException("鏁版嵁閿欒锛氱墿鏂�" + wkOrderItem.getMatnrCode() + "涓嶅瓨鍦紒锛�");
+        }
+        wkOrderItem.setMatnrCode(matnr.getCode()).setMatnrId(matnr.getId());
+
         //淇濆瓨鎵╁睍瀛楁
         try {
             StringBuffer sb = new StringBuffer();
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
index fe62567..181193c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -17,6 +17,7 @@
 import com.vincent.rsf.server.manager.controller.params.MatnrToGroupParams;
 import com.vincent.rsf.server.manager.entity.MatnrGroup;
 import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate;
+import com.vincent.rsf.server.manager.enums.MatnrLocLevel;
 import com.vincent.rsf.server.manager.mapper.MatnrMapper;
 import com.vincent.rsf.server.manager.entity.Matnr;
 import com.vincent.rsf.server.manager.service.MatnrGroupService;
@@ -96,10 +97,10 @@
                     .setModel(template.getModel())
                     .setGroupCode(template.getGroupCode())
                     .setPurUnit(template.getPurUnit())
-                    .setStockLevel(!Objects.isNull(template.getStockLevel()) ? Short.parseShort(template.getStockLevel()) : 0)
+                    .setStockLevel(MatnrLocLevel.getTypeVal(template.getStockLevel()))
                     .setSafeQty(!Objects.isNull(template.getSafeQty()) ? Double.parseDouble(template.getSafeQty()) : 0)
                     .setMinQty(!Objects.isNull(template.getMinQty()) ? Double.parseDouble(template.getMinQty()) : 0);
-            if (Objects.isNull(template.getGroupCode()) && Objects.isNull(template.getGroupName())) {
+            if (!Objects.isNull(template.getGroupCode()) || !Objects.isNull(template.getGroupName())) {
                 MatnrGroup matnrGroups = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
                         .eq(!Objects.isNull(template.getGroupCode()), MatnrGroup::getCode, template.getGroupCode())
                         .eq(!Objects.isNull(template.getGroupName()),MatnrGroup::getName, template.getGroupName()));
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java
index 25cbcbf..e82223a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java
@@ -6,10 +6,12 @@
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.common.utils.FieldsUtils;
 import com.vincent.rsf.server.manager.entity.Companys;
+import com.vincent.rsf.server.manager.entity.Matnr;
 import com.vincent.rsf.server.manager.enums.CompanysType;
 import com.vincent.rsf.server.manager.mapper.TransferItemMapper;
 import com.vincent.rsf.server.manager.entity.TransferItem;
 import com.vincent.rsf.server.manager.service.CompanysService;
+import com.vincent.rsf.server.manager.service.MatnrService;
 import com.vincent.rsf.server.manager.service.TransferItemService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
@@ -25,6 +27,9 @@
 
     @Autowired
     private CompanysService companysService;
+
+    @Autowired
+    private MatnrService matnrService;
 
 
     /**
@@ -48,6 +53,13 @@
         if (Objects.isNull(wkOrderItem.getAnfme()) || Double.compare(wkOrderItem.getAnfme(), 0.0) <= 0) {
             throw new CoolException("璁″垝鏁颁笉鑳戒负绌猴紒锛�");
         }
+
+        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, wkOrderItem.getMatnrCode()));
+        if (Objects.isNull(matnr)) {
+            throw new CoolException("鏁版嵁閿欒锛氱墿鏂�" + wkOrderItem.getMatnrCode() + "涓嶅瓨鍦紒锛�");
+        }
+        wkOrderItem.setMatnrCode(matnr.getCode()).setMatnrId(matnr.getId());
+
 //        //淇濆瓨鎵╁睍瀛楁
         try {
             StringBuffer sb = new StringBuffer();

--
Gitblit v1.9.1