From a6991a33e18f69264f93a63459a4b64ea799295a Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 05 八月 2025 13:02:24 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogItemService.java          |    8 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocRevise.java                      |   34 -
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocReviseController.java        |   19 +
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java                |    3 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogController.java        |  110 +++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogService.java              |    8 
 rsf-server/src/main/resources/mapper/manager/ReviseLogItemMapper.xml                               |    5 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogMapper.java                |   12 
 rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java                            |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLog.java                      |  258 +++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogItemMapper.java            |   12 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLogItem.java                  |  274 ++++++++++++++++++
 rsf-server/src/main/resources/mapper/manager/ReviseLogMapper.xml                                   |    5 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java     |   12 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java    |  110 +++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java |   12 
 16 files changed, 862 insertions(+), 24 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
index 8c55e4e..574305c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
@@ -22,8 +22,8 @@
 //        generator.username="sa";
 //        generator.password="Zoneyung@zy56$";
 
-        generator.table = "man_loc_revise";
-        generator.tableDesc = "搴撳瓨璋冩暣鍗�";
+        generator.table = "man_revise_log_item";
+        generator.tableDesc = "搴撲綅璋冩暣鍘嗗彶";
         generator.packagePath = "com.vincent.rsf.server.manager";
 
         generator.build();
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocReviseController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocReviseController.java
index 4c6f0b6..50e1d61 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocReviseController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocReviseController.java
@@ -10,8 +10,13 @@
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.entity.LocRevise;
+import com.vincent.rsf.server.manager.entity.WarehouseAreas;
 import com.vincent.rsf.server.manager.service.LocReviseService;
+import com.vincent.rsf.server.manager.service.WarehouseAreasService;
+import com.vincent.rsf.server.manager.service.impl.WarehouseAreasServiceImpl;
+import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.controller.BaseController;
+import com.vincent.rsf.server.system.utils.SerialRuleUtils;
 import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -26,6 +31,8 @@
 
     @Autowired
     private LocReviseService locReviseService;
+    @Autowired
+    private WarehouseAreasService warehouseAreasService;
 
     @PreAuthorize("hasAuthority('manager:locRevise:list')")
     @PostMapping("/locRevise/page")
@@ -61,6 +68,18 @@
         locRevise.setCreateTime(new Date());
         locRevise.setUpdateBy(getLoginUserId());
         locRevise.setUpdateTime(new Date());
+
+        if (Objects.isNull(locRevise.getId())) {
+            String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LOC_REVISE_CODE, null);
+            locRevise.setCode(ruleCode);
+        }
+
+        WarehouseAreas areas = warehouseAreasService.getById(locRevise.getAreaId());
+        if (!Objects.isNull(areas)) {
+            locRevise.setAreaId(areas.getId())
+                    .setAreaName(areas.getName());
+        }
+
         if (!locReviseService.save(locRevise)) {
             return R.error("Save Fail");
         }
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
new file mode 100644
index 0000000..0f46aea
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogController.java
@@ -0,0 +1,110 @@
+package com.vincent.rsf.server.manager.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.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.entity.ReviseLog;
+import com.vincent.rsf.server.manager.service.ReviseLogService;
+import com.vincent.rsf.server.system.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+@RestController
+public class ReviseLogController extends BaseController {
+
+    @Autowired
+    private ReviseLogService reviseLogService;
+
+    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PostMapping("/reviseLog/page")
+    public R page(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<ReviseLog, BaseParam> pageParam = new PageParam<>(baseParam, ReviseLog.class);
+        return R.ok().add(reviseLogService.page(pageParam, pageParam.buildWrapper(true)));
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PostMapping("/reviseLog/list")
+    public R list(@RequestBody Map<String, Object> map) {
+        return R.ok().add(reviseLogService.list());
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLog: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')")
+    @GetMapping("/reviseLog/{id}")
+    public R get(@PathVariable("id") Long id) {
+        return R.ok().add(reviseLogService.getById(id));
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLog:save')")
+    @OperationLog("Create 搴撲綅璋冩暣鍘嗗彶")
+    @PostMapping("/reviseLog/save")
+    public R save(@RequestBody ReviseLog reviseLog) {
+        reviseLog.setCreateBy(getLoginUserId());
+        reviseLog.setCreateTime(new Date());
+        reviseLog.setUpdateBy(getLoginUserId());
+        reviseLog.setUpdateTime(new Date());
+        if (!reviseLogService.save(reviseLog)) {
+            return R.error("Save Fail");
+        }
+        return R.ok("Save Success").add(reviseLog);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLog:update')")
+    @OperationLog("Update 搴撲綅璋冩暣鍘嗗彶")
+    @PostMapping("/reviseLog/update")
+    public R update(@RequestBody ReviseLog reviseLog) {
+        reviseLog.setUpdateBy(getLoginUserId());
+        reviseLog.setUpdateTime(new Date());
+        if (!reviseLogService.updateById(reviseLog)) {
+            return R.error("Update Fail");
+        }
+        return R.ok("Update Success").add(reviseLog);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLog:remove')")
+    @OperationLog("Delete 搴撲綅璋冩暣鍘嗗彶")
+    @PostMapping("/reviseLog/remove/{ids}")
+    public R remove(@PathVariable Long[] ids) {
+        if (!reviseLogService.removeByIds(Arrays.asList(ids))) {
+            return R.error("Delete Fail");
+        }
+        return R.ok("Delete Success").add(ids);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLog:list')")
+    @PostMapping("/reviseLog/query")
+    public R query(@RequestParam(required = false) String condition) {
+        List<KeyValVo> vos = new ArrayList<>();
+        LambdaQueryWrapper<ReviseLog> wrapper = new LambdaQueryWrapper<>();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.like(ReviseLog::getId, condition);
+        }
+        reviseLogService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
+                item -> vos.add(new KeyValVo(item.getId(), item.getId()))
+        );
+        return R.ok().add(vos);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLog: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/ReviseLogItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java
new file mode 100644
index 0000000..606d4a6
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/ReviseLogItemController.java
@@ -0,0 +1,110 @@
+package com.vincent.rsf.server.manager.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.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.entity.ReviseLogItem;
+import com.vincent.rsf.server.manager.service.ReviseLogItemService;
+import com.vincent.rsf.server.system.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+@RestController
+public class ReviseLogItemController extends BaseController {
+
+    @Autowired
+    private ReviseLogItemService reviseLogItemService;
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+    @PostMapping("/reviseLogItem/page")
+    public R page(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<ReviseLogItem, BaseParam> pageParam = new PageParam<>(baseParam, ReviseLogItem.class);
+        return R.ok().add(reviseLogItemService.page(pageParam, pageParam.buildWrapper(true)));
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+    @PostMapping("/reviseLogItem/list")
+    public R list(@RequestBody Map<String, Object> map) {
+        return R.ok().add(reviseLogItemService.list());
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem: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')")
+    @GetMapping("/reviseLogItem/{id}")
+    public R get(@PathVariable("id") Long id) {
+        return R.ok().add(reviseLogItemService.getById(id));
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem:save')")
+    @OperationLog("Create 搴撲綅璋冩暣鍘嗗彶")
+    @PostMapping("/reviseLogItem/save")
+    public R save(@RequestBody ReviseLogItem reviseLogItem) {
+        reviseLogItem.setCreateBy(getLoginUserId());
+        reviseLogItem.setCreateTime(new Date());
+        reviseLogItem.setUpdateBy(getLoginUserId());
+        reviseLogItem.setUpdateTime(new Date());
+        if (!reviseLogItemService.save(reviseLogItem)) {
+            return R.error("Save Fail");
+        }
+        return R.ok("Save Success").add(reviseLogItem);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem:update')")
+    @OperationLog("Update 搴撲綅璋冩暣鍘嗗彶")
+    @PostMapping("/reviseLogItem/update")
+    public R update(@RequestBody ReviseLogItem reviseLogItem) {
+        reviseLogItem.setUpdateBy(getLoginUserId());
+        reviseLogItem.setUpdateTime(new Date());
+        if (!reviseLogItemService.updateById(reviseLogItem)) {
+            return R.error("Update Fail");
+        }
+        return R.ok("Update Success").add(reviseLogItem);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem:remove')")
+    @OperationLog("Delete 搴撲綅璋冩暣鍘嗗彶")
+    @PostMapping("/reviseLogItem/remove/{ids}")
+    public R remove(@PathVariable Long[] ids) {
+        if (!reviseLogItemService.removeByIds(Arrays.asList(ids))) {
+            return R.error("Delete Fail");
+        }
+        return R.ok("Delete Success").add(ids);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem:list')")
+    @PostMapping("/reviseLogItem/query")
+    public R query(@RequestParam(required = false) String condition) {
+        List<KeyValVo> vos = new ArrayList<>();
+        LambdaQueryWrapper<ReviseLogItem> wrapper = new LambdaQueryWrapper<>();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.like(ReviseLogItem::getId, condition);
+        }
+        reviseLogItemService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
+                item -> vos.add(new KeyValVo(item.getId(), item.getId()))
+        );
+        return R.ok().add(vos);
+    }
+
+    @PreAuthorize("hasAuthority('manager:reviseLogItem: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/entity/LocRevise.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocRevise.java
index 069424c..0f998cd 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocRevise.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocRevise.java
@@ -3,6 +3,9 @@
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -22,6 +25,7 @@
 import java.util.Date;
 
 @Data
+@Accessors(chain = true)
 @TableName("man_loc_revise")
 public class LocRevise implements Serializable {
 
@@ -68,13 +72,17 @@
      * 婧愬簱鍖篒D
      */
     @ApiModelProperty(value= "婧愬簱鍖篒D")
-    private Long orgAreaId;
+    private Long areaId;
 
     /**
      * 鍘熷簱鍖哄悕绉�
      */
     @ApiModelProperty(value= "鍘熷簱鍖哄悕绉�")
-    private String orgAreaName;
+    private String areaName;
+
+    @ApiModelProperty("璋冩暣鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    private Date exceTime;
 
     /**
      * 鐘舵�� 1: 姝e父  0: 鍐荤粨  
@@ -135,8 +143,8 @@
         this.anfme = anfme;
         this.reviseQty = reviseQty;
         this.exceStatus = exceStatus;
-        this.orgAreaId = orgAreaId;
-        this.orgAreaName = orgAreaName;
+        this.areaId = orgAreaId;
+        this.areaName = orgAreaName;
         this.status = status;
         this.deleted = deleted;
         this.tenantId = tenantId;
@@ -146,24 +154,6 @@
         this.updateTime = updateTime;
         this.memo = memo;
     }
-
-//    LocRevise locRevise = new LocRevise(
-//            null,    // 璋冩暣鍗�
-//            null,    // 鍗曟嵁绫诲瀷
-//            null,    // 鍗曟嵁鏁伴噺
-//            null,    // 瀹為檯鏁伴噺
-//            null,    // 鎵ц鐘舵��:
-//            null,    // 婧愬簱鍖篒D
-//            null,    // 鍘熷簱鍖哄悕绉�
-//            null,    // 鐘舵�乕闈炵┖]
-//            null,    // 鏄惁鍒犻櫎[闈炵┖]
-//            null,    // 绉熸埛
-//            null,    // 娣诲姞浜哄憳
-//            null,    // 娣诲姞鏃堕棿[闈炵┖]
-//            null,    // 淇敼浜哄憳
-//            null,    // 淇敼鏃堕棿[闈炵┖]
-//            null    // 澶囨敞
-//    );
 
     public String getType$(){
         if (null == this.type){ return null; }
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
new file mode 100644
index 0000000..c647f1d
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLog.java
@@ -0,0 +1,258 @@
+package com.vincent.rsf.server.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.vincent.rsf.framework.common.Cools;
+import com.vincent.rsf.framework.common.SpringUtils;
+import com.vincent.rsf.server.system.service.UserService;
+import com.vincent.rsf.server.system.entity.User;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("man_revise_log")
+public class ReviseLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @ApiModelProperty(value= "ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 璋冩暣鍗旾D
+     */
+    @ApiModelProperty(value= "璋冩暣鍗旾D")
+    private Long reviseId;
+
+    /**
+     * 璋冩暣鍗曠紪鐮�
+     */
+    @ApiModelProperty(value= "璋冩暣鍗曠紪鐮�")
+    private String reviseCode;
+
+    /**
+     * 浠撳簱ID
+     */
+    @ApiModelProperty(value= "浠撳簱ID")
+    private Long warehouseId;
+
+    /**
+     * 搴撳尯ID
+     */
+    @ApiModelProperty(value= "搴撳尯ID")
+    private Long areaId;
+
+    /**
+     * 绫诲瀷
+     */
+    @ApiModelProperty(value= "绫诲瀷")
+    private Integer type;
+
+    /**
+     * 瀹瑰櫒鐮�
+     */
+    @ApiModelProperty(value= "瀹瑰櫒鐮�")
+    private String barcode;
+
+    /**
+     * 搴撲綅鐘舵��
+     */
+    @ApiModelProperty(value= "搴撲綅鐘舵��")
+    private String useStatus;
+
+    /**
+     * 宸烽亾
+     */
+    @ApiModelProperty(value= "宸烽亾")
+    private Integer channel;
+
+    /**
+     * 鎺�
+     */
+    @ApiModelProperty(value= "鎺�")
+    private Integer row;
+
+    /**
+     * 鍒�
+     */
+    @ApiModelProperty(value= "鍒�")
+    private Integer col;
+
+    /**
+     * 灞�
+     */
+    @ApiModelProperty(value= "灞�")
+    private Integer lev;
+
+    /**
+     * 鐘舵�� 1: 姝e父  0: 鍐荤粨  
+     */
+    @ApiModelProperty(value= "鐘舵�� 1: 姝e父  0: 鍐荤粨  ")
+    private Integer status;
+
+    /**
+     * 鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  
+     */
+    @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  ")
+    @TableLogic
+    private Integer deleted;
+
+    /**
+     * 绉熸埛
+     */
+    @ApiModelProperty(value= "绉熸埛")
+    private Integer tenantId;
+
+    /**
+     * 娣诲姞浜哄憳
+     */
+    @ApiModelProperty(value= "娣诲姞浜哄憳")
+    private Long createBy;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value= "娣诲姞鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value= "淇敼浜哄憳")
+    private Long updateBy;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value= "淇敼鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value= "澶囨敞")
+    private String memo;
+
+    public ReviseLog() {}
+
+    public ReviseLog(Long reviseId,String reviseCode,Long warehouseId,Long areaId,Integer type,String barcode,String useStatus,Integer channel,Integer row,Integer col,Integer lev,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+        this.reviseId = reviseId;
+        this.reviseCode = reviseCode;
+        this.warehouseId = warehouseId;
+        this.areaId = areaId;
+        this.type = type;
+        this.barcode = barcode;
+        this.useStatus = useStatus;
+        this.channel = channel;
+        this.row = row;
+        this.col = col;
+        this.lev = lev;
+        this.status = status;
+        this.deleted = deleted;
+        this.tenantId = tenantId;
+        this.createBy = createBy;
+        this.createTime = createTime;
+        this.updateBy = updateBy;
+        this.updateTime = updateTime;
+        this.memo = memo;
+    }
+
+//    ReviseLog reviseLog = new ReviseLog(
+//            null,    // 璋冩暣鍗旾D
+//            null,    // 璋冩暣鍗曠紪鐮�
+//            null,    // 浠撳簱ID
+//            null,    // 搴撳尯ID
+//            null,    // 绫诲瀷
+//            null,    // 瀹瑰櫒鐮�
+//            null,    // 搴撲綅鐘舵��
+//            null,    // 宸烽亾
+//            null,    // 鎺�
+//            null,    // 鍒�
+//            null,    // 灞�
+//            null,    // 鐘舵�乕闈炵┖]
+//            null,    // 鏄惁鍒犻櫎[闈炵┖]
+//            null,    // 绉熸埛
+//            null,    // 娣诲姞浜哄憳
+//            null,    // 娣诲姞鏃堕棿[闈炵┖]
+//            null,    // 淇敼浜哄憳
+//            null,    // 淇敼鏃堕棿[闈炵┖]
+//            null    // 澶囨敞
+//    );
+
+    public String getStatus$(){
+        if (null == this.status){ return null; }
+        switch (this.status){
+            case 1:
+                return "姝e父";
+            case 0:
+                return "鍐荤粨";
+            default:
+                return String.valueOf(this.status);
+        }
+    }
+
+    public String getCreateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.createBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getCreateTime$(){
+        if (Cools.isEmpty(this.createTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+    }
+
+    public String getUpdateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.updateBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getUpdateTime$(){
+        if (Cools.isEmpty(this.updateTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+    }
+
+
+
+    public Boolean getStatusBool(){
+        if (null == this.status){ return null; }
+        switch (this.status){
+            case 1:
+                return true;
+            case 0:
+                return false;
+            default:
+                return null;
+        }
+    }
+
+}
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
new file mode 100644
index 0000000..0c10f05
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ReviseLogItem.java
@@ -0,0 +1,274 @@
+package com.vincent.rsf.server.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.vincent.rsf.framework.common.Cools;
+import com.vincent.rsf.framework.common.SpringUtils;
+import com.vincent.rsf.server.system.service.UserService;
+import com.vincent.rsf.server.system.entity.User;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("man_revise_log_item")
+public class ReviseLogItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @ApiModelProperty(value= "ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 璋冩暣鍗旾D
+     */
+    @ApiModelProperty(value= "璋冩暣鍗旾D")
+    private Long reviseLogId;
+
+    /**
+     * 搴撲綅ID
+     */
+    @ApiModelProperty(value= "搴撲綅ID")
+    private Long locId;
+
+    /**
+     * 搴撲綅
+     */
+    @ApiModelProperty(value= "搴撲綅")
+    private String locCode;
+
+    /**
+     * 鐗╂枡ID
+     */
+    @ApiModelProperty(value= "鐗╂枡ID")
+    private Long matnrId;
+
+    /**
+     * 鐗╂枡鍚嶇О
+     */
+    @ApiModelProperty(value= "鐗╂枡鍚嶇О")
+    private String maktx;
+
+    /**
+     * 鐗╂枡缂栫爜
+     */
+    @ApiModelProperty(value= "鐗╂枡缂栫爜")
+    private String matnrCode;
+
+    /**
+     * 鍗曚綅
+     */
+    @ApiModelProperty(value= "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     */
+    @ApiModelProperty(value= "鏁伴噺")
+    private Double anfme;
+
+    /**
+     * 璋冩暣鏁伴噺
+     */
+    @ApiModelProperty(value= "璋冩暣鏁伴噺")
+    private Double reviseQty;
+
+    /**
+     * 鎵规
+     */
+    @ApiModelProperty(value= "鎵规")
+    private String batch;
+
+    /**
+     * 瑙勬牸
+     */
+    @ApiModelProperty(value= "瑙勬牸")
+    private String spec;
+
+    /**
+     * 鍨嬪彿
+     */
+    @ApiModelProperty(value= "鍨嬪彿")
+    private String model;
+
+    /**
+     * 鎵╁睍瀛楁
+     */
+    @ApiModelProperty(value= "鎵╁睍瀛楁")
+    private String fieldsIndex;
+
+    /**
+     * 鐘舵�� 1: 姝e父  0: 鍐荤粨  
+     */
+    @ApiModelProperty(value= "鐘舵�� 1: 姝e父  0: 鍐荤粨  ")
+    private Integer status;
+
+    /**
+     * 鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  
+     */
+    @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  ")
+    @TableLogic
+    private Integer deleted;
+
+    /**
+     * 绉熸埛
+     */
+    @ApiModelProperty(value= "绉熸埛")
+    private Integer tenantId;
+
+    /**
+     * 娣诲姞浜哄憳
+     */
+    @ApiModelProperty(value= "娣诲姞浜哄憳")
+    private Long createBy;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value= "娣诲姞鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value= "淇敼浜哄憳")
+    private Long updateBy;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value= "淇敼鏃堕棿")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value= "澶囨敞")
+    private String memo;
+
+    public ReviseLogItem() {}
+
+    public ReviseLogItem(Long reviseLogId,Long locId,String locCode,Long matnrId,String maktx,String matnrCode,String unit,Double anfme,Double reviseQty,String batch,String spec,String model,String fieldsIndex,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+        this.reviseLogId = reviseLogId;
+        this.locId = locId;
+        this.locCode = locCode;
+        this.matnrId = matnrId;
+        this.maktx = maktx;
+        this.matnrCode = matnrCode;
+        this.unit = unit;
+        this.anfme = anfme;
+        this.reviseQty = reviseQty;
+        this.batch = batch;
+        this.spec = spec;
+        this.model = model;
+        this.fieldsIndex = fieldsIndex;
+        this.status = status;
+        this.deleted = deleted;
+        this.tenantId = tenantId;
+        this.createBy = createBy;
+        this.createTime = createTime;
+        this.updateBy = updateBy;
+        this.updateTime = updateTime;
+        this.memo = memo;
+    }
+
+//    ReviseLogItem reviseLogItem = new ReviseLogItem(
+//            null,    // 璋冩暣鍗旾D
+//            null,    // 搴撲綅ID
+//            null,    // 搴撲綅
+//            null,    // 鐗╂枡ID
+//            null,    // 鐗╂枡鍚嶇О
+//            null,    // 鐗╂枡缂栫爜
+//            null,    // 鍗曚綅
+//            null,    // 鏁伴噺
+//            null,    // 璋冩暣鏁伴噺
+//            null,    // 鎵规
+//            null,    // 瑙勬牸
+//            null,    // 鍨嬪彿
+//            null,    // 鎵╁睍瀛楁
+//            null,    // 鐘舵�乕闈炵┖]
+//            null,    // 鏄惁鍒犻櫎[闈炵┖]
+//            null,    // 绉熸埛
+//            null,    // 娣诲姞浜哄憳
+//            null,    // 娣诲姞鏃堕棿[闈炵┖]
+//            null,    // 淇敼浜哄憳
+//            null,    // 淇敼鏃堕棿[闈炵┖]
+//            null    // 澶囨敞
+//    );
+
+    public String getStatus$(){
+        if (null == this.status){ return null; }
+        switch (this.status){
+            case 1:
+                return "姝e父";
+            case 0:
+                return "鍐荤粨";
+            default:
+                return String.valueOf(this.status);
+        }
+    }
+
+    public String getCreateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.createBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getCreateTime$(){
+        if (Cools.isEmpty(this.createTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+    }
+
+    public String getUpdateBy$(){
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.getById(this.updateBy);
+        if (!Cools.isEmpty(user)){
+            return String.valueOf(user.getNickname());
+        }
+        return null;
+    }
+
+    public String getUpdateTime$(){
+        if (Cools.isEmpty(this.updateTime)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+    }
+
+
+
+    public Boolean getStatusBool(){
+        if (null == this.status){ return null; }
+        switch (this.status){
+            case 1:
+                return true;
+            case 0:
+                return false;
+            default:
+                return null;
+        }
+    }
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogItemMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogItemMapper.java
new file mode 100644
index 0000000..640456d
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogItemMapper.java
@@ -0,0 +1,12 @@
+package com.vincent.rsf.server.manager.mapper;
+
+import com.vincent.rsf.server.manager.entity.ReviseLogItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface ReviseLogItemMapper extends BaseMapper<ReviseLogItem> {
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogMapper.java
new file mode 100644
index 0000000..c580678
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/ReviseLogMapper.java
@@ -0,0 +1,12 @@
+package com.vincent.rsf.server.manager.mapper;
+
+import com.vincent.rsf.server.manager.entity.ReviseLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface ReviseLogMapper extends BaseMapper<ReviseLog> {
+
+}
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
new file mode 100644
index 0000000..1141d9f
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogItemService.java
@@ -0,0 +1,8 @@
+package com.vincent.rsf.server.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.vincent.rsf.server.manager.entity.ReviseLogItem;
+
+public interface ReviseLogItemService extends IService<ReviseLogItem> {
+
+}
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
new file mode 100644
index 0000000..41baa0d
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/ReviseLogService.java
@@ -0,0 +1,8 @@
+package com.vincent.rsf.server.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.vincent.rsf.server.manager.entity.ReviseLog;
+
+public interface ReviseLogService extends IService<ReviseLog> {
+
+}
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
new file mode 100644
index 0000000..14cb3b8
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java
@@ -0,0 +1,12 @@
+package com.vincent.rsf.server.manager.service.impl;
+
+import com.vincent.rsf.server.manager.mapper.ReviseLogItemMapper;
+import com.vincent.rsf.server.manager.entity.ReviseLogItem;
+import com.vincent.rsf.server.manager.service.ReviseLogItemService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("reviseLogItemService")
+public class ReviseLogItemServiceImpl extends ServiceImpl<ReviseLogItemMapper, ReviseLogItem> implements ReviseLogItemService {
+
+}
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
new file mode 100644
index 0000000..c34ab3d
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogServiceImpl.java
@@ -0,0 +1,12 @@
+package com.vincent.rsf.server.manager.service.impl;
+
+import com.vincent.rsf.server.manager.mapper.ReviseLogMapper;
+import com.vincent.rsf.server.manager.entity.ReviseLog;
+import com.vincent.rsf.server.manager.service.ReviseLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("reviseLogService")
+public class ReviseLogServiceImpl extends ServiceImpl<ReviseLogMapper, ReviseLog> implements ReviseLogService {
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
index 6361b89..5e1228f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
@@ -91,5 +91,8 @@
     /**璋冩嫈鍗曠紪鐮佽鍒�*/
     public final static String SYS_TRANSFER_ORDER_CODE = "sys_transfer_order_code";
 
+    /**搴撳瓨璋冩暣鍗昺fk*/
+    public final static String SYS_LOC_REVISE_CODE = "sys_loc_revise_code";
+
 
 }
diff --git a/rsf-server/src/main/resources/mapper/manager/ReviseLogItemMapper.xml b/rsf-server/src/main/resources/mapper/manager/ReviseLogItemMapper.xml
new file mode 100644
index 0000000..7dfae5a
--- /dev/null
+++ b/rsf-server/src/main/resources/mapper/manager/ReviseLogItemMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vincent.rsf.server.manager.mapper.ReviseLogItemMapper">
+
+</mapper>
diff --git a/rsf-server/src/main/resources/mapper/manager/ReviseLogMapper.xml b/rsf-server/src/main/resources/mapper/manager/ReviseLogMapper.xml
new file mode 100644
index 0000000..d434dd6
--- /dev/null
+++ b/rsf-server/src/main/resources/mapper/manager/ReviseLogMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vincent.rsf.server.manager.mapper.ReviseLogMapper">
+
+</mapper>

--
Gitblit v1.9.1