From a27159c9906fa19f1e0126c87d5550434826e718 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 06 八月 2025 14:09:15 +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/params/ReviseLogItemParams.java | 26 ++++++++
/dev/null | 24 --------
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogItemService.java | 4 +
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLogItem.java | 3 +
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java | 35 ++++++++---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java | 72 ++++++++++++++++++++++++
7 files changed, 134 insertions(+), 33 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java
index 606d4a6..a14eab1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java
@@ -4,14 +4,17 @@
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.ReviseLogItemParams;
import com.vincent.rsf.server.manager.entity.ReviseLogItem;
import com.vincent.rsf.server.manager.service.ReviseLogItemService;
import com.vincent.rsf.server.system.controller.BaseController;
+import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -19,13 +22,14 @@
import javax.servlet.http.HttpServletResponse;
import java.util.*;
+@Api("搴撳瓨璋冩暣鍘嗗彶")
@RestController
public class ReviseLogItemController extends BaseController {
@Autowired
private ReviseLogItemService reviseLogItemService;
- @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+ @PreAuthorize("hasAuthority('manager:locRevise:list')")
@PostMapping("/reviseLogItem/page")
public R page(@RequestBody Map<String, Object> map) {
BaseParam baseParam = buildParam(map, BaseParam.class);
@@ -33,25 +37,25 @@
return R.ok().add(reviseLogItemService.page(pageParam, pageParam.buildWrapper(true)));
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+ @PreAuthorize("hasAuthority('manager:locRevise:list')")
@PostMapping("/reviseLogItem/list")
public R list(@RequestBody Map<String, Object> map) {
return R.ok().add(reviseLogItemService.list());
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+ @PreAuthorize("hasAuthority('manager:locRevise:list')")
@PostMapping({"/reviseLogItem/many/{ids}", "/reviseLogItems/many/{ids}"})
public R many(@PathVariable Long[] ids) {
return R.ok().add(reviseLogItemService.listByIds(Arrays.asList(ids)));
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+ @PreAuthorize("hasAuthority('manager:locRevise:list')")
@GetMapping("/reviseLogItem/{id}")
public R get(@PathVariable("id") Long id) {
return R.ok().add(reviseLogItemService.getById(id));
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:save')")
+ @PreAuthorize("hasAuthority('manager:locRevise:save')")
@OperationLog("Create 搴撲綅璋冩暣鍘嗗彶")
@PostMapping("/reviseLogItem/save")
public R save(@RequestBody ReviseLogItem reviseLogItem) {
@@ -65,7 +69,20 @@
return R.ok("Save Success").add(reviseLogItem);
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:update')")
+ @PreAuthorize("hasAuthority('manager:locRevise:save')")
+ @OperationLog("Create 搴撲綅璋冩暣鍘嗗彶")
+ @PostMapping("/reviseLogItem/items/save")
+ public R itemSave(@RequestBody ReviseLogItemParams reviseLogItem) {
+ if (Objects.isNull(reviseLogItem.getReviseLogId())) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(reviseLogItem.getItems()) || reviseLogItem.getItems().isEmpty()) {
+ throw new CoolException("鏄庣粏鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return R.ok().add(reviseLogItemService.itemSave(reviseLogItem, getLoginUserId()));
+ }
+
+ @PreAuthorize("hasAuthority('manager:locRevise:update')")
@OperationLog("Update 搴撲綅璋冩暣鍘嗗彶")
@PostMapping("/reviseLogItem/update")
public R update(@RequestBody ReviseLogItem reviseLogItem) {
@@ -77,7 +94,7 @@
return R.ok("Update Success").add(reviseLogItem);
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:remove')")
+ @PreAuthorize("hasAuthority('manager:locRevise:remove')")
@OperationLog("Delete 搴撲綅璋冩暣鍘嗗彶")
@PostMapping("/reviseLogItem/remove/{ids}")
public R remove(@PathVariable Long[] ids) {
@@ -87,7 +104,7 @@
return R.ok("Delete Success").add(ids);
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+ @PreAuthorize("hasAuthority('manager:locRevise:list')")
@PostMapping("/reviseLogItem/query")
public R query(@RequestParam(required = false) String condition) {
List<KeyValVo> vos = new ArrayList<>();
@@ -101,7 +118,7 @@
return R.ok().add(vos);
}
- @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+ @PreAuthorize("hasAuthority('manager:locRevise:list')")
@PostMapping("/reviseLogItem/export")
public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
ExcelUtil.build(ExcelUtil.create(reviseLogItemService.list(), ReviseLogItem.class), response);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/ReviseLogItemParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/ReviseLogItemParams.java
new file mode 100644
index 0000000..9dca821
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/ReviseLogItemParams.java
@@ -0,0 +1,26 @@
+package com.vincent.rsf.server.manager.controller.params;
+
+
+import com.vincent.rsf.server.manager.entity.ReviseLog;
+import com.vincent.rsf.server.manager.entity.ReviseLogItem;
+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 = "ReviseLogItemParams", description = "搴撳瓨璋冩暣鍙傛暟")
+public class ReviseLogItemParams implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("璋冩暣鍗曞巻鍙睮D")
+ private Long reviseLogId;
+
+ @ApiModelProperty("璋冩暣鍗曟槑缁�")
+ private List<ReviseLogItem> 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 0170594..0a57ae3 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
@@ -59,6 +59,9 @@
@ApiModelProperty(value= "搴撳尯ID")
private Long areaId;
+ @ApiModelProperty("搴撲綅")
+ private String locCode;
+
/**
* 绫诲瀷
*/
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLogItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLogItem.java
index 0c10f05..f81ca38 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLogItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLogItem.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_item")
public class ReviseLogItem implements Serializable {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogItemService.java
index 1141d9f..ca9e9f5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogItemService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogItemService.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.ReviseLogItemParams;
import com.vincent.rsf.server.manager.entity.ReviseLogItem;
+
+import java.util.List;
public interface ReviseLogItemService extends IService<ReviseLogItem> {
+ List<ReviseLogItem> itemSave(ReviseLogItemParams reviseLogItem, Long userId);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java
index 14cb3b8..df9136e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java
@@ -1,12 +1,84 @@
package com.vincent.rsf.server.manager.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.server.manager.controller.params.ReviseLogItemParams;
+import com.vincent.rsf.server.manager.entity.Loc;
+import com.vincent.rsf.server.manager.entity.LocItem;
+import com.vincent.rsf.server.manager.entity.ReviseLog;
import com.vincent.rsf.server.manager.mapper.ReviseLogItemMapper;
import com.vincent.rsf.server.manager.entity.ReviseLogItem;
+import com.vincent.rsf.server.manager.service.LocItemService;
+import com.vincent.rsf.server.manager.service.LocService;
import com.vincent.rsf.server.manager.service.ReviseLogItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vincent.rsf.server.manager.service.ReviseLogService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
@Service("reviseLogItemService")
public class ReviseLogItemServiceImpl extends ServiceImpl<ReviseLogItemMapper, ReviseLogItem> implements ReviseLogItemService {
+ @Autowired
+ private ReviseLogService reviseLogService;
+ @Autowired
+ private LocItemService locItemService;
+ @Autowired
+ private LocService locService;
+
+
+ /**
+ * 淇濆瓨搴撳瓨璋冩暣鍘嗗彶鍗曟槑缁�
+ * @param reviseLogItem
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public List<ReviseLogItem> itemSave(ReviseLogItemParams reviseLogItem, Long userId) {
+ ReviseLog reviseLog = reviseLogService.getById(reviseLogItem.getReviseLogId());
+ if (Objects.isNull(reviseLog)) {
+ throw new RuntimeException("搴撳瓨鍘嗗彶鍗曟嵁涓嶅瓨鍦紒锛�");
+ }
+ Loc locItem = locService.getOne(new LambdaQueryWrapper<Loc>()
+ .eq(Loc::getCode, reviseLog.getLocCode()));
+ if (Objects.isNull(locItem)) {
+ throw new RuntimeException("搴撲綅搴撳瓨涓嶅瓨鍦紒锛�");
+ }
+ List<ReviseLogItem> items = reviseLogItem.getItems();
+ items.forEach(item -> {
+ ReviseLogItem logItem = new ReviseLogItem();
+ BeanUtils.copyProperties(item, logItem);
+ logItem.setReviseLogId(reviseLogItem.getReviseLogId())
+ .setUpdateBy(userId)
+ .setCreateBy(userId)
+ .setLocId(locItem.getId())
+ .setLocCode(locItem.getCode());
+ if (Objects.isNull(item.getAnfme())) {
+ item.setAnfme(0.0);
+ }
+ if (!this.save(logItem)) {
+ throw new RuntimeException("搴撳瓨鏄庣粏璋冩暣澶辫触");
+ }
+
+ LocItem one = locItemService.getOne(new LambdaQueryWrapper<LocItem>()
+ .eq(LocItem::getMatnrId, logItem.getMatnrId())
+ .eq(LocItem::getBatch, logItem.getBatch())
+ .eq(LocItem::getFieldsIndex, logItem.getFieldsIndex())
+ .eq(LocItem::getLocCode, logItem.getLocCode()));
+ if (Objects.isNull(one)) {
+ throw new RuntimeException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�");
+ }
+
+ one.setAnfme(logItem.getReviseQty());
+
+ if (!locItemService.updateById(one)) {
+ throw new RuntimeException("搴撳瓨鏄庣粏淇敼澶辫触锛侊紒");
+ }
+ });
+ return items;
+ }
}
diff --git a/rsf-server/src/main/java/locRevise.sql b/rsf-server/src/main/java/locRevise.sql
deleted file mode 100644
index bd844af..0000000
--- a/rsf-server/src/main/java/locRevise.sql
+++ /dev/null
@@ -1,28 +0,0 @@
--- save locRevise record
--- mysql
-insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.locRevise', '0', '/manager/locRevise', 'locRevise', '0' , '0', '1' , '1');
-
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query 搴撳瓨璋冩暣鍗�', '', '1', 'manager:locRevise:list', '0', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create 搴撳瓨璋冩暣鍗�', '', '1', 'manager:locRevise:save', '1', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update 搴撳瓨璋冩暣鍗�', '', '1', 'manager:locRevise:update', '2', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete 搴撳瓨璋冩暣鍗�', '', '1', 'manager:locRevise:remove', '3', '1', '1');
-
--- locale menu name
-locRevise: 'LocRevise',
-
--- locale field
-locRevise: {
- code: "code",
- type: "type",
- anfme: "anfme",
- reviseQty: "reviseQty",
- exceStatus: "exceStatus",
- orgAreaId: "orgAreaId",
- orgAreaName: "orgAreaName",
-},
-
--- ResourceContent
-import locRevise from './locRevise';
-
-case 'locRevise':
- return locRevise;
diff --git a/rsf-server/src/main/java/transferOrder.sql b/rsf-server/src/main/java/transferOrder.sql
deleted file mode 100644
index 67173ab..0000000
--- a/rsf-server/src/main/java/transferOrder.sql
+++ /dev/null
@@ -1,24 +0,0 @@
--- save transferOrder record
--- mysql
-insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.transferOrder', '0', '/manager/transferOrder', 'transferOrder', '0' , '0', '1' , '1');
-
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query 璋冩嫈鍗曡鍗曞叧鑱旇〃', '', '1', 'manager:transferOrder:list', '0', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create 璋冩嫈鍗曡鍗曞叧鑱旇〃', '', '1', 'manager:transferOrder:save', '1', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update 璋冩嫈鍗曡鍗曞叧鑱旇〃', '', '1', 'manager:transferOrder:update', '2', '1', '1');
-insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete 璋冩嫈鍗曡鍗曞叧鑱旇〃', '', '1', 'manager:transferOrder:remove', '3', '1', '1');
-
--- locale menu name
-transferOrder: 'TransferOrder',
-
--- locale field
-transferOrder: {
- transferId: "transferId",
- orderId: "orderId",
- exceStatus: "exceStatus",
-},
-
--- ResourceContent
-import transferOrder from './transferOrder';
-
-case 'transferOrder':
- return transferOrder;
--
Gitblit v1.9.1