From d5f42e7da3bd943f49880c8b687836a172579f6e Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 28 七月 2025 18:35:36 +0800
Subject: [PATCH] 调拔单功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TransferOrder.java                  |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/TransferOrderMapper.java            |   12 +++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java         |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TransferType.java                    |   24 ++++++
 rsf-server/src/main/resources/mapper/manager/TransferOrderMapper.xml                               |    5 +
 rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java                            |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java      |   10 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Transfer.java                       |   10 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferOrderServiceImpl.java |   12 +++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TransferOrderService.java          |    8 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferOrderController.java    |  104 ++++++++++++++++++++++++++
 rsf-server/src/main/resources/mapper/manager/TransferMapper.xml                                    |    8 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderType.java                       |    4 +
 rsf-server/src/main/java/transferOrder.sql                                                         |   24 ++++++
 14 files changed, 220 insertions(+), 11 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 f29ee02..ee08141 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_transfer_item";
-        generator.tableDesc = "璋冩嫈鍗曟槑缁�";
+        generator.table = "man_transfer_order";
+        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/OutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
index 8e6ff49..aa78e0c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
@@ -58,8 +58,8 @@
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<WkOrder, BaseParam> pageParam = new PageParam<>(baseParam, WkOrder.class);
         QueryWrapper<WkOrder> queryWrapper = pageParam.buildWrapper(true);
-        List<String> list = Arrays.asList(OrderType.ORDER_OUT.type, OrderType.ORDER_TRANSFER.type);
-        queryWrapper.in("type", list);
+//        List<String> list = Arrays.asList(OrderType.ORDER_OUT.type);
+//        queryWrapper.in("type", list);
         return R.ok().add(outStockService.page(pageParam, queryWrapper));
     }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferOrderController.java
new file mode 100644
index 0000000..b4be6ee
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferOrderController.java
@@ -0,0 +1,104 @@
+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.TransferOrder;
+import com.vincent.rsf.server.manager.service.TransferOrderService;
+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 TransferOrderController extends BaseController {
+
+    @Autowired
+    private TransferOrderService transferOrderService;
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:list')")
+    @PostMapping("/transferOrder/page")
+    public R page(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<TransferOrder, BaseParam> pageParam = new PageParam<>(baseParam, TransferOrder.class);
+        return R.ok().add(transferOrderService.page(pageParam, pageParam.buildWrapper(true)));
+    }
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:list')")
+    @PostMapping("/transferOrder/list")
+    public R list(@RequestBody Map<String, Object> map) {
+        return R.ok().add(transferOrderService.list());
+    }
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:list')")
+    @PostMapping({"/transferOrder/many/{ids}", "/transferOrders/many/{ids}"})
+    public R many(@PathVariable Long[] ids) {
+        return R.ok().add(transferOrderService.listByIds(Arrays.asList(ids)));
+    }
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:list')")
+    @GetMapping("/transferOrder/{id}")
+    public R get(@PathVariable("id") Long id) {
+        return R.ok().add(transferOrderService.getById(id));
+    }
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:save')")
+    @OperationLog("Create 璋冩嫈鍗曡鍗曞叧鑱旇〃")
+    @PostMapping("/transferOrder/save")
+    public R save(@RequestBody TransferOrder transferOrder) {
+        if (!transferOrderService.save(transferOrder)) {
+            return R.error("Save Fail");
+        }
+        return R.ok("Save Success").add(transferOrder);
+    }
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:update')")
+    @OperationLog("Update 璋冩嫈鍗曡鍗曞叧鑱旇〃")
+    @PostMapping("/transferOrder/update")
+    public R update(@RequestBody TransferOrder transferOrder) {
+        if (!transferOrderService.updateById(transferOrder)) {
+            return R.error("Update Fail");
+        }
+        return R.ok("Update Success").add(transferOrder);
+    }
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:remove')")
+    @OperationLog("Delete 璋冩嫈鍗曡鍗曞叧鑱旇〃")
+    @PostMapping("/transferOrder/remove/{ids}")
+    public R remove(@PathVariable Long[] ids) {
+        if (!transferOrderService.removeByIds(Arrays.asList(ids))) {
+            return R.error("Delete Fail");
+        }
+        return R.ok("Delete Success").add(ids);
+    }
+
+    @PreAuthorize("hasAuthority('manager:transferOrder:list')")
+    @PostMapping("/transferOrder/query")
+    public R query(@RequestParam(required = false) String condition) {
+        List<KeyValVo> vos = new ArrayList<>();
+        LambdaQueryWrapper<TransferOrder> wrapper = new LambdaQueryWrapper<>();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.like(TransferOrder::getId, condition);
+        }
+        transferOrderService.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:transferOrder:list')")
+    @PostMapping("/transferOrder/export")
+    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+        ExcelUtil.build(ExcelUtil.create(transferOrderService.list(), TransferOrder.class), response);
+    }
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Transfer.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Transfer.java
index 29b290c..0d73fec 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Transfer.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Transfer.java
@@ -56,13 +56,13 @@
     private Integer type;
 
     /**
-     * 鏉ユ簮: 1: ERP绯荤粺   2: WMS绯荤粺鐢熸垚   3: EXCEL瀵煎叆    4: QMS绯荤粺  
+     * 鏉ユ簮: 1: ERP绯荤粺   2: WMS绯荤粺鐢熸垚   3: EXCEL瀵煎叆    4: QMS绯荤粺
      */
     @ApiModelProperty(value= "鏉ユ簮: 1: ERP绯荤粺   2: WMS绯荤粺鐢熸垚   3: EXCEL瀵煎叆    4: QMS绯荤粺  ")
     private Integer source;
 
     /**
-     * 鎵ц鐘舵��: 0: 鏈墽琛�   1: 鎵ц涓�   2: 鎵ц瀹屾垚  
+     * 鎵ц鐘舵��: 0: 鏈墽琛�   1: 鎵ц涓�   2: 鎵ц瀹屾垚
      */
     @ApiModelProperty(value= "鎵ц鐘舵��: 0: 鏈墽琛�   1: 鎵ц涓�   2: 鎵ц瀹屾垚  ")
     private Short exceStatus;
@@ -116,13 +116,13 @@
     private String tarAreaName;
 
     /**
-     * 鐘舵�� 1: 姝e父  0: 鍐荤粨  
+     * 鐘舵�� 1: 姝e父  0: 鍐荤粨
      */
     @ApiModelProperty(value= "鐘舵�� 1: 姝e父  0: 鍐荤粨  ")
     private Integer status;
 
     /**
-     * 鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  
+     * 鏄惁鍒犻櫎 1: 鏄�  0: 鍚�
      */
     @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  ")
     @TableLogic
@@ -244,7 +244,7 @@
 
     public String getExceStatus$() {
         if (Cools.isEmpty(this.exceStatus)){
-            return "";
+            return null;
         }
         DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
         DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TransferOrder.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TransferOrder.java
index d853eff..18eb434 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TransferOrder.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TransferOrder.java
@@ -10,7 +10,7 @@
 import java.io.Serializable;
 
 @Data
-@Accessors
+@Accessors(chain = true)
 @TableName("man_transfer_order")
 public class TransferOrder implements Serializable {
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderType.java
index b3e6b75..dc85d6b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderType.java
@@ -30,6 +30,8 @@
             return OrderType.ORDER_OUT.type;
         } else if (desc.equals(OrderType.ORDER_CHECK.desc)) {
             return OrderType.ORDER_CHECK.type;
+        } else if (desc.equals(OrderType.ORDER_TRANSFER.desc)) {
+            return OrderType.ORDER_TRANSFER.type;
         }
         return null;
     }
@@ -41,6 +43,8 @@
             return OrderType.ORDER_OUT.desc;
         } else if (type.equals(OrderType.ORDER_CHECK.type)) {
             return OrderType.ORDER_CHECK.desc;
+        } else if (type.equals(OrderType.ORDER_TRANSFER.type)) {
+            return OrderType.ORDER_TRANSFER.desc;
         }
         return null;
     }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TransferType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TransferType.java
index 86a1331..1e05068 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TransferType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TransferType.java
@@ -1,5 +1,6 @@
 package com.vincent.rsf.server.manager.enums;
 
+
 /**
  * @author Ryan
  * @date 2025/7/25
@@ -21,4 +22,27 @@
         this.desc = desc;
     }
 
+
+    public static String getValType(Integer type) {
+        if (type.equals(TransferType.TRANSFER_TYPE_WAREHOUSE.val)) {
+            return TransferType.TRANSFER_TYPE_WAREHOUSE.desc;
+        } else if (type.equals(TransferType.TRANSFER_TYPE_AREAS.val)) {
+            return TransferType.TRANSFER_TYPE_AREAS.desc;
+        } else if (type.equals(TransferType.TRANSFER_TYPE_LOCAL.val)) {
+            return TransferType.TRANSFER_TYPE_LOCAL.desc;
+        }
+        return null;
+    }
+
+    public static Integer getTypeVal(String desc) {
+        if (desc.equals(TransferType.TRANSFER_TYPE_WAREHOUSE.desc)) {
+            return TransferType.TRANSFER_TYPE_WAREHOUSE.val;
+        } else if (desc.equals(TransferType.TRANSFER_TYPE_AREAS.desc)) {
+            return TransferType.TRANSFER_TYPE_AREAS.val;
+        } else if (desc.equals(TransferType.TRANSFER_TYPE_LOCAL.desc)) {
+            return TransferType.TRANSFER_TYPE_LOCAL.val;
+        }
+        return null;
+    }
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/TransferOrderMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/TransferOrderMapper.java
new file mode 100644
index 0000000..b1818e9
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/TransferOrderMapper.java
@@ -0,0 +1,12 @@
+package com.vincent.rsf.server.manager.mapper;
+
+import com.vincent.rsf.server.manager.entity.TransferOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface TransferOrderMapper extends BaseMapper<TransferOrder> {
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TransferOrderService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TransferOrderService.java
new file mode 100644
index 0000000..c9d3f8b
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TransferOrderService.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.TransferOrder;
+
+public interface TransferOrderService extends IService<TransferOrder> {
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferOrderServiceImpl.java
new file mode 100644
index 0000000..84b0d33
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferOrderServiceImpl.java
@@ -0,0 +1,12 @@
+package com.vincent.rsf.server.manager.service.impl;
+
+import com.vincent.rsf.server.manager.mapper.TransferOrderMapper;
+import com.vincent.rsf.server.manager.entity.TransferOrder;
+import com.vincent.rsf.server.manager.service.TransferOrderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("transferOrderService")
+public class TransferOrderServiceImpl extends ServiceImpl<TransferOrderMapper, TransferOrder> implements TransferOrderService {
+
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
index 29d4a58..9455749 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
@@ -38,6 +38,8 @@
     private OutStockService outStockService;
     @Autowired
     private OutStockItemService outStockItemService;
+    @Autowired
+    private TransferOrderService transferOrderService;
 
     /**
      * @author Ryan
@@ -231,6 +233,14 @@
         if (!this.updateById(transfer)) {
             throw new CoolException("璋冩嫈鍗曟洿鏂板け璐ワ紒锛�");
         }
+
+        TransferOrder transferOrder = new TransferOrder();
+        transferOrder.setTransferId(transfer.getId()).setOrderId(wkOrder.getId()).setExceStatus(1);
+
+        if (!transferOrderService.save(transferOrder)) {
+            throw new CoolException("鍗曟嵁鍏宠仈澶辫触锛侊紒");
+        }
+
         return transfer;
     }
 }
diff --git a/rsf-server/src/main/java/transferOrder.sql b/rsf-server/src/main/java/transferOrder.sql
new file mode 100644
index 0000000..67173ab
--- /dev/null
+++ b/rsf-server/src/main/java/transferOrder.sql
@@ -0,0 +1,24 @@
+-- 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;
diff --git a/rsf-server/src/main/resources/mapper/manager/TransferMapper.xml b/rsf-server/src/main/resources/mapper/manager/TransferMapper.xml
index 09c532e..9b1eff9 100644
--- a/rsf-server/src/main/resources/mapper/manager/TransferMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/TransferMapper.xml
@@ -6,6 +6,8 @@
         SELECT
             id,
             `code`,
+            `po_code`,
+            `po_id`,
             `type`,
             `wk_type`,
             `anfme`,
@@ -14,7 +16,11 @@
             `warehouse_id`,
             `ware_area_id`,
             `wave_id`,
-            `exce_status`
+            `exce_status`,
+            `update_time`,
+            `update_by`,
+            `create_by`,
+            `update_by`
         FROM
             man_asn_order
         WHERE
diff --git a/rsf-server/src/main/resources/mapper/manager/TransferOrderMapper.xml b/rsf-server/src/main/resources/mapper/manager/TransferOrderMapper.xml
new file mode 100644
index 0000000..7703415
--- /dev/null
+++ b/rsf-server/src/main/resources/mapper/manager/TransferOrderMapper.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.TransferOrderMapper">
+
+</mapper>

--
Gitblit v1.9.1