From 5466af6a44f22552d0040adfe63ac2a574b66c74 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 05 八月 2025 14:22:42 +0800
Subject: [PATCH] 库存调单明细保存

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLog.java                  |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogController.java    |   30 ++++++++++----
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogService.java          |    4 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java |   44 ++++++++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/ReviseLogParams.java |   26 +++++++++++++
 5 files changed, 98 insertions(+), 9 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogController.java
index 0f46aea..064997b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogController.java
@@ -4,11 +4,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.common.utils.ExcelUtil;
 import com.vincent.rsf.server.common.annotation.OperationLog;
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.manager.controller.params.ReviseLogParams;
 import com.vincent.rsf.server.manager.entity.ReviseLog;
 import com.vincent.rsf.server.manager.service.ReviseLogService;
 import com.vincent.rsf.server.system.controller.BaseController;
@@ -25,7 +27,7 @@
     @Autowired
     private ReviseLogService reviseLogService;
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PreAuthorize("hasAuthority('manager:locRevise:list')")
     @PostMapping("/reviseLog/page")
     public R page(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
@@ -33,25 +35,25 @@
         return R.ok().add(reviseLogService.page(pageParam, pageParam.buildWrapper(true)));
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PreAuthorize("hasAuthority('manager:locRevise:list')")
     @PostMapping("/reviseLog/list")
     public R list(@RequestBody Map<String, Object> map) {
         return R.ok().add(reviseLogService.list());
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PreAuthorize("hasAuthority('manager:locRevise:list')")
     @PostMapping({"/reviseLog/many/{ids}", "/reviseLogs/many/{ids}"})
     public R many(@PathVariable Long[] ids) {
         return R.ok().add(reviseLogService.listByIds(Arrays.asList(ids)));
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PreAuthorize("hasAuthority('manager:locRevise:list')")
     @GetMapping("/reviseLog/{id}")
     public R get(@PathVariable("id") Long id) {
         return R.ok().add(reviseLogService.getById(id));
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:save')")
+    @PreAuthorize("hasAuthority('manager:locRevise:save')")
     @OperationLog("Create 搴撲綅璋冩暣鍘嗗彶")
     @PostMapping("/reviseLog/save")
     public R save(@RequestBody ReviseLog reviseLog) {
@@ -65,7 +67,7 @@
         return R.ok("Save Success").add(reviseLog);
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:update')")
+    @PreAuthorize("hasAuthority('manager:locRevise:update')")
     @OperationLog("Update 搴撲綅璋冩暣鍘嗗彶")
     @PostMapping("/reviseLog/update")
     public R update(@RequestBody ReviseLog reviseLog) {
@@ -77,7 +79,17 @@
         return R.ok("Update Success").add(reviseLog);
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:remove')")
+    @PreAuthorize("hasAuthority('manager:locRevise:update')")
+    @OperationLog("save 搴撳瓨璋冩暣鏄庣粏")
+    @PostMapping("/reviseLog/items/save")
+    public R update(@RequestBody ReviseLogParams reviseLog) {
+        if (Objects.isNull(reviseLog)) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return R.ok().add(reviseLogService.reviseLoc(reviseLog, getLoginUserId()));
+    }
+
+    @PreAuthorize("hasAuthority('manager:locRevise:remove')")
     @OperationLog("Delete 搴撲綅璋冩暣鍘嗗彶")
     @PostMapping("/reviseLog/remove/{ids}")
     public R remove(@PathVariable Long[] ids) {
@@ -87,7 +99,7 @@
         return R.ok("Delete Success").add(ids);
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PreAuthorize("hasAuthority('manager:locRevise:list')")
     @PostMapping("/reviseLog/query")
     public R query(@RequestParam(required = false) String condition) {
         List<KeyValVo> vos = new ArrayList<>();
@@ -101,7 +113,7 @@
         return R.ok().add(vos);
     }
 
-    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PreAuthorize("hasAuthority('manager:locRevise:list')")
     @PostMapping("/reviseLog/export")
     public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
         ExcelUtil.build(ExcelUtil.create(reviseLogService.list(), ReviseLog.class), response);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/ReviseLogParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/ReviseLogParams.java
new file mode 100644
index 0000000..39d8cf5
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/ReviseLogParams.java
@@ -0,0 +1,26 @@
+package com.vincent.rsf.server.manager.controller.params;
+
+import com.vincent.rsf.server.manager.entity.ReviseLog;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "ReviseLogParams", description = "搴撳瓨鍘嗗彶鍙傛暟")
+public class ReviseLogParams implements Serializable {
+
+    @ApiModelProperty("搴撳瓨璋冩暣鍗旾D")
+    private Long reviseId;
+
+    @ApiModelProperty("搴撳瓨璋冩暣鍗曠紪鐮�")
+    private String reviseCode;
+
+    @ApiModelProperty("搴撳瓨璋冩暣鏄庣粏")
+    private List<ReviseLog> items;
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLog.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLog.java
index c647f1d..a2e0647 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLog.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLog.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+
+import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -22,6 +24,7 @@
 import java.util.Date;
 
 @Data
+@Accessors(chain = true)
 @TableName("man_revise_log")
 public class ReviseLog implements Serializable {
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogService.java
index 41baa0d..4ca6f62 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogService.java
@@ -1,8 +1,12 @@
 package com.vincent.rsf.server.manager.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.vincent.rsf.server.manager.controller.params.ReviseLogParams;
 import com.vincent.rsf.server.manager.entity.ReviseLog;
+
+import java.util.List;
 
 public interface ReviseLogService extends IService<ReviseLog> {
 
+    List<ReviseLog> reviseLoc(ReviseLogParams reviseLog, Long loginUserId);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java
index c34ab3d..d8d00e7 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java
@@ -1,12 +1,56 @@
 package com.vincent.rsf.server.manager.service.impl;
 
+import com.vincent.rsf.server.manager.controller.params.ReviseLogParams;
+import com.vincent.rsf.server.manager.entity.LocRevise;
+import com.vincent.rsf.server.manager.entity.ReviseLogItem;
 import com.vincent.rsf.server.manager.mapper.ReviseLogMapper;
 import com.vincent.rsf.server.manager.entity.ReviseLog;
+import com.vincent.rsf.server.manager.service.LocReviseService;
 import com.vincent.rsf.server.manager.service.ReviseLogService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
 
 @Service("reviseLogService")
 public class ReviseLogServiceImpl extends ServiceImpl<ReviseLogMapper, ReviseLog> implements ReviseLogService {
 
+    @Autowired
+    private LocReviseService locReviseService;
+
+    @Autowired
+    private ReviseLogService reviseLogService;
+
+    /**
+     * 搴撳瓨璋冩暣鍗曟槑缁嗘坊鍔�
+     * @param revise
+     * @param loginUserId
+     * @return
+     */
+    @Override
+    public List<ReviseLog> reviseLoc(ReviseLogParams revise, Long loginUserId) {
+        LocRevise locRevise = locReviseService.getById(revise.getReviseId());
+        if (Objects.isNull(locRevise)) {
+            throw new RuntimeException("璋冩暣鍗曟嵁涓嶅瓨鍦紒锛�");
+        }
+        List<ReviseLog> items = revise.getItems();
+        if (items.isEmpty()) {
+            throw new RuntimeException("璋冩暣鍗曟槑缁嗗弬鏁颁负绌猴紒锛�");
+        }
+        items.forEach(item -> {
+            ReviseLog reviseLog = new ReviseLog();
+            BeanUtils.copyProperties(item, reviseLog);
+            reviseLog.setAreaId(locRevise.getAreaId())
+                    .setReviseId(locRevise.getId())
+                    .setReviseCode(locRevise.getCode()) ;
+            if (!reviseLogService.save(reviseLog)) {
+                throw new RuntimeException("璋冩暣鍗曟槑缁嗕繚瀛樺け璐ワ紒锛�");
+            }
+        });
+
+        return items;
+    }
 }

--
Gitblit v1.9.1