From 5074c51d978a490a1d0e9dc116a874d33ddeb16c Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 04 六月 2025 13:22:03 +0800
Subject: [PATCH] DO单excel导入功能 任务工作档优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java      |   24 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java              |    8 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryItemController.java    |   43 +---
 rsf-admin/src/page/orders/delivery/DeliveryList.jsx                                               |    8 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java         |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeliveryItemService.java          |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java                          |   11 +
 rsf-admin/src/page/task/TaskList.jsx                                                              |   21 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/DeliveryTemplate.java        |   14 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Delivery.java                      |  136 ++++++++-----
 rsf-server/src/main/resources/application.yml                                                     |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java |  242 +++++++++++-------------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryController.java        |   78 +++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java            |    4 
 14 files changed, 337 insertions(+), 258 deletions(-)

diff --git a/rsf-admin/src/page/orders/delivery/DeliveryList.jsx b/rsf-admin/src/page/orders/delivery/DeliveryList.jsx
index da7d327..4a5b27f 100644
--- a/rsf-admin/src/page/orders/delivery/DeliveryList.jsx
+++ b/rsf-admin/src/page/orders/delivery/DeliveryList.jsx
@@ -40,6 +40,7 @@
 import MyCreateButton from "../../components/MyCreateButton";
 import MyExportButton from '../../components/MyExportButton';
 import ImportButton from "../../components/ImportButton";
+import BillStatusField from "../../components/BillStatusField";
 import PageDrawer from "../../components/PageDrawer";
 import MyField from "../../components/MyField";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
@@ -103,13 +104,13 @@
                     marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.delivery"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
                     <TopToolbar>
                         <FilterButton />
-                        <MyCreateButton onClick={() => { setCreateDialog(true) }} />
+                        {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
                         <SelectColumnsButton preferenceKey='delivery' />
                         <ImportButton value={'delivery'} />
                         {/* <MyExportButton /> */}
@@ -141,7 +142,8 @@
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
                     <TextField source="createBy$" label="common.field.createBy" />
                     <DateField source="createTime" label="common.field.createTime" showTime />
-                    <BooleanField source="statusBool" label="common.field.status" sortable={false} />
+                    <BillStatusField cellClassName="status" source="exceStatus" label="table.field.asnOrder.exceStatus" />
+                    {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */}
                     <TextField source="memo" label="common.field.memo" sortable={false} />
                     <WrapperField cellClassName="opt" label="common.field.opt">
                         <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 52dd7e2..d0bdae8 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -255,7 +255,7 @@
         }
     }
     return (
-        ((record?.taskStatus < 98) || (record?.taskType >= 101 && record?.taskStatus < 198))  || (record?.taskType == 11 && record?.taskStatus == 101) ? (<ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskAltIcon />} onConfirm={clickComplete} />) : (<></>)
+        ((record?.taskStatus < 98) || (record?.taskType >= 101 && record?.taskStatus < 198)) || (record?.taskType == 11 && record?.taskStatus == 101) ? (<ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskAltIcon />} onConfirm={clickComplete} />) : (<></>)
     )
 }
 
@@ -267,8 +267,7 @@
     const record = useRecordContext();
     const notify = useNotify();
     const refresh = useRefresh();
-    const clickCancel = (event) => {
-        event.stopPropagation();
+    const clickCancel = () => {
         cancleTask(record)
     };
     //鍙栨秷浠诲姟
@@ -284,11 +283,11 @@
     }
     return (
         (record.taskStatus == 1 || record.taskStatus == 101) && (record.taskType == 1 || record.taskType == 101 || record.taskType == 10 || record.taskType == 103 || record.taskType == 11) ?
-            <Button
-                onClick={clickCancel}
-                label="toolbar.cancel">
-                <CancelIcon />
-            </Button>
+            <ConfirmButton
+                onConfirm={clickCancel}
+                startIcon={<CancelIcon />}
+                label={"toolbar.cancel"}>
+            </ConfirmButton>
             :
             <></>
     )
@@ -313,7 +312,7 @@
             refresh();
         } else {
             notify(msg);
-        } 
+        }
     }
     return (
         (record.taskStatus == 1 || record.taskStatus == 101) && (record.taskType == 1 || record.taskType == 101 || record.taskType == 10 || record.taskType == 103 || record.taskType == 11) ?
@@ -322,8 +321,8 @@
                 label="toolbar.top">
                 <AlignVerticalTopIcon />
             </Button>
-        :
-        <></>
+            :
+            <></>
     )
 }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryController.java
index 261413d..6d2c9a9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryController.java
@@ -1,25 +1,35 @@
 package com.vincent.rsf.server.manager.controller;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 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.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.entity.Delivery;
+import com.vincent.rsf.server.manager.entity.DeliveryItem;
+import com.vincent.rsf.server.manager.entity.excel.DeliveryTemplate;
+import com.vincent.rsf.server.manager.enums.OrderType;
+import com.vincent.rsf.server.manager.enums.OrderWorkType;
 import com.vincent.rsf.server.manager.service.CompanysService;
+import com.vincent.rsf.server.manager.service.DeliveryItemService;
 import com.vincent.rsf.server.manager.service.DeliveryService;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.controller.BaseController;
 import com.vincent.rsf.server.system.service.SerialRuleService;
 import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
@@ -29,6 +39,8 @@
 
     @Autowired
     private DeliveryService deliveryService;
+    @Autowired
+    private DeliveryItemService deliveryItemService;
 
     @PreAuthorize("hasAuthority('manager:delivery:list')")
     @PostMapping("/delivery/page")
@@ -121,7 +133,71 @@
     @PreAuthorize("hasAuthority('manager:delivery:list')")
     @PostMapping("/delivery/export")
     public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
-        ExcelUtil.build(ExcelUtil.create(deliveryService.list(), Delivery.class), response);
+        if (!Cools.isEmpty(map) && !Cools.isEmpty(map.get("ids"))) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        List<Delivery> orders = new ArrayList<>();
+        if (!Objects.isNull(map.get("ids"))) {
+            List<Long> ids = JSONArray.parseArray(JSONObject.toJSONString(map.get("ids")), Long.class);
+            if (!ids.isEmpty()) {
+                orders = deliveryService.list(new LambdaQueryWrapper<Delivery>().in(Delivery::getId, ids));
+            } else {
+                orders = deliveryService.list(new LambdaQueryWrapper<>());
+            }
+        } else {
+            orders = deliveryService.list();
+        }
+        List<DeliveryTemplate> orderTemplates = new ArrayList<>();
+        for (Delivery order : orders) {
+            List<DeliveryItem> orderItems = deliveryItemService.list(new LambdaQueryWrapper<DeliveryItem>().eq(DeliveryItem::getDeliveryId, order.getId()));
+            for (DeliveryItem item : orderItems) {
+                if (Objects.isNull(item)) {
+                    continue;
+                }
+                DeliveryTemplate template = new DeliveryTemplate();
+                template.setDoCode(order.getCode())
+                        .setType(OrderType.getValType(order.getType()))
+                        .setWkType(OrderWorkType.getWorkDesc(order.getWkType()))
+                        .setAnfme(item.getAnfme() + "")
+                        .setMaktx(item.getMaktx())
+                        .setMemo(item.getMemo())
+                        .setMatnrCode(item.getMatnrCode())
+                        .setPlatItemId(item.getPlatItemId())
+                        .setSplrBatch(item.getSplrBatch())
+                        .setSplrName(item.getSplrName())
+                        .setSplrCode(item.getSplrCode());
+                orderTemplates.add(template);
+            }
+        }
+        ExcelUtil.build(ExcelUtil.create(orderTemplates, DeliveryTemplate.class), response);
+    }
+
+    @PostMapping("/delivery/import")
+    @ApiOperation("DO鍗曞鍏ユ帴鍙�")
+    @PreAuthorize("hasAuthority('manager:delivery:update')")
+    public R importExcel(@RequestParam(value = "file") MultipartFile file) throws Exception {
+        if (Objects.isNull(file)) {
+            return R.error("鏂囦欢涓嶈兘涓虹┖锛侊紒");
+        }
+        Map<String, Object> hashMap = new HashMap<>();
+        return R.ok("瀵煎叆鎴愬姛").add(deliveryItemService.excelImport(file, hashMap, getLoginUserId()));
+
+    }
+
+    /**
+     * @author Ryan
+     * @description 涓嬭浇妯℃澘
+     * @param
+     * @return
+     * @time 2025/4/18 08:17
+     */
+    @PostMapping("/delivery/template/download")
+    @ApiOperation("涓嬭浇鏀惰揣鍗曟ā鏉�")
+    @PreAuthorize("hasAuthority('manager:delivery:update')")
+    public void downloadTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+        DeliveryTemplate template = ExcelUtil.mockData(DeliveryTemplate.class);
+        List<DeliveryTemplate> list = Arrays.asList(template);
+        ExcelUtil.build(ExcelUtil.create(list, DeliveryTemplate.class, true), response);
     }
 
 }
\ No newline at end of file
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryItemController.java
index adf0cba..eb7d9a1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryItemController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeliveryItemController.java
@@ -1,6 +1,7 @@
 package com.vincent.rsf.server.manager.controller;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vincent.rsf.framework.common.Cools;
@@ -11,15 +12,20 @@
 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.Companys;
-import com.vincent.rsf.server.manager.entity.DeliveryItem;
+import com.vincent.rsf.server.manager.entity.*;
+import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
+import com.vincent.rsf.server.manager.entity.excel.DeliveryTemplate;
+import com.vincent.rsf.server.manager.enums.OrderType;
+import com.vincent.rsf.server.manager.enums.OrderWorkType;
 import com.vincent.rsf.server.manager.service.CompanysService;
 import com.vincent.rsf.server.manager.service.DeliveryItemService;
+import com.vincent.rsf.server.manager.service.impl.DeliveryServiceImpl;
 import com.vincent.rsf.server.system.controller.BaseController;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -31,10 +37,10 @@
 
     @Autowired
     private DeliveryItemService deliveryItemService;
-
-
     @Autowired
     private CompanysService companysService;
+    @Autowired
+    private DeliveryServiceImpl deliveryService;
 
     @PreAuthorize("hasAuthority('manager:deliveryItem:list')")
     @PostMapping("/deliveryItem/page")
@@ -115,33 +121,4 @@
         );
         return R.ok().add(vos);
     }
-
-    @PreAuthorize("hasAuthority('manager:deliveryItem:list')")
-    @PostMapping("/deliveryItem/export")
-    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
-        if (!Cools.isEmpty(map) && !Cools.isEmpty(map.get("ids"))) {
-            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
-        }
-        List<Long> jsonArray = JSONArray.parseArray(JSONArray.toJSONString(map.get("ids")), Long.class);
-//        if (jsonArray.isEmpty()) {
-//            ExcelUtil.build(ExcelUtil.create(deliveryItemService.getOne(new La), DeliveryItem.class), response);
-//        } else {
-//            ExcelUtil.build(ExcelUtil.create(deliveryItemService.list(), DeliveryItem.class), response);
-//        }
-    }
-
-
-    @PostMapping("/deliveryItem/import")
-    @ApiOperation("DO鍗曞鍏ユ帴鍙�")
-    @PreAuthorize("hasAuthority('manager:asnOrderItem:update')")
-    public R importExcel(@RequestParam(value = "file") MultipartFile file) throws Exception {
-        if (Objects.isNull(file)) {
-            return R.error("鏂囦欢涓嶈兘涓虹┖锛侊紒");
-        }
-        Map<String, Object> hashMap = new HashMap<>();
-
-        return R.ok();
-//        return deliveryItemService.excelImport(file, hashMap, getLoginUserId());
-    }
-
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
index aa3c856..b7ca780 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -101,9 +101,9 @@
     }
 
     @PreAuthorize("hasAuthority('manager:task:remove')")
-    @OperationLog("Delete 浠诲姟宸ヤ綔妗�")
+    @OperationLog("鍙栨秷/鍒犻櫎宸ヤ綔鏋佹。")
+    @ApiOperation("鍙栨秷/鍒犻櫎宸ヤ綔鏋佹。")
     @PostMapping("/task/remove/{ids}")
-    @Transactional(rollbackFor = Exception.class)
     public R remove(@PathVariable Long[] ids) {
         if (Objects.isNull(ids) || ids.length < 1) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Delivery.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Delivery.java
index 5a928b9..376d34e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Delivery.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Delivery.java
@@ -8,10 +8,14 @@
 import com.vincent.rsf.server.system.constant.DictTypeCode;
 import com.vincent.rsf.server.system.entity.DictData;
 import com.vincent.rsf.server.system.service.DictDataService;
+import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
+
 import com.baomidou.mybatisplus.annotation.TableLogic;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.text.SimpleDateFormat;
@@ -28,10 +32,12 @@
 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
+@Accessors(chain = true)
 @TableName("man_delivery")
 public class Delivery implements Serializable {
 
@@ -40,134 +46,139 @@
     /**
      * ID
      */
-    @ApiModelProperty(value= "ID")
+    @ApiModelProperty(value = "ID")
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
      * 閲囪喘鍗曞彿
      */
-    @ApiModelProperty(value= "閲囪喘鍗曞彿")
+    @ApiModelProperty(value = "閲囪喘鍗曞彿")
     private String code;
 
     /**
      * erp涓诲崟鏍囪瘑
      */
-    @ApiModelProperty(value= "erp涓诲崟鏍囪瘑")
+    @ApiModelProperty(value = "erp涓诲崟鏍囪瘑")
     private String platId;
 
     /**
      * 鍗曟嵁绫诲瀷
      */
-    @ApiModelProperty(value= "鍗曟嵁绫诲瀷")
+    @ApiModelProperty(value = "鍗曟嵁绫诲瀷")
     private String type;
 
     /**
      * 涓氬姟绫诲瀷
      */
-    @ApiModelProperty(value= "涓氬姟绫诲瀷")
+    @ApiModelProperty(value = "涓氬姟绫诲瀷")
     private String wkType;
 
     /**
      * 鍗曟嵁鏉ユ簮
      */
-    @ApiModelProperty(value= "鍗曟嵁鏉ユ簮")
+    @ApiModelProperty(value = "鍗曟嵁鏉ユ簮")
     private String source;
 
     /**
      * 鍑哄簱鏁伴噺
      */
-    @ApiModelProperty(value= "鍑哄簱鏁伴噺")
+    @ApiModelProperty(value = "鍑哄簱鏁伴噺")
     private Double anfme;
 
     /**
      * 宸插嚭搴撴暟閲�
      */
-    @ApiModelProperty(value= "宸插嚭搴撴暟閲�")
+    @ApiModelProperty(value = "宸插嚭搴撴暟閲�")
     private Double qty;
 
     /**
      * 鎵ц涓暟閲�
      */
-    @ApiModelProperty(value= "鎵ц涓暟閲�")
+    @ApiModelProperty(value = "鎵ц涓暟閲�")
     private Double workQty;
 
     /**
      * 骞冲彴鍗曞彿
      */
-    @ApiModelProperty(value= "骞冲彴鍗曞彿")
+    @ApiModelProperty(value = "骞冲彴鍗曞彿")
     private String platCode;
 
     /**
      * 璁″垝鍑哄簱鏃堕棿
      */
-    @ApiModelProperty(value= "璁″垝鍑哄簱鏃堕棿")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "璁″垝鍑哄簱鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date startTime;
 
     /**
      * 璁″垝鍑哄簱缁撴潫鏃堕棿
      */
-    @ApiModelProperty(value= "璁″垝鍑哄簱缁撴潫鏃堕棿")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "璁″垝鍑哄簱缁撴潫鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
 
     /**
-     * 鐘舵�� 1: 宸插畬鎴�  0: 寰呮墽琛�   2:  鏈畬鎴�  
+     * 鐘舵�� 1: 姝e父  0: 绂佺敤
      */
-    @ApiModelProperty(value= "鐘舵�� 1: 宸插畬鎴�  0: 寰呮墽琛�   2:  鏈畬鎴�  ")
+    @ApiModelProperty(value = "鐘舵�� 1: 姝e父  0: 绂佺敤")
     private Integer status;
 
+
+    @ApiModelProperty(value = "鐘舵�� 1: 鎵ц涓�  0: 鏈墽琛�   2:  閮ㄥ垎瀹屾垚 3:宸插畬鎴�  ")
+    private Short exceStatus;
+
     /**
-     * 鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  
+     * 鏄惁鍒犻櫎 1: 鏄�  0: 鍚�
      */
-    @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  ")
+    @ApiModelProperty(value = "鏄惁鍒犻櫎 1: 鏄�  0: 鍚�  ")
     @TableLogic
     private Integer deleted;
 
     /**
      * 绉熸埛
      */
-    @ApiModelProperty(value= "绉熸埛")
+    @ApiModelProperty(value = "绉熸埛")
     private Integer tenantId;
 
     /**
      * 娣诲姞浜哄憳
      */
-    @ApiModelProperty(value= "娣诲姞浜哄憳")
+    @ApiModelProperty(value = "娣诲姞浜哄憳")
     private Long createBy;
 
     /**
      * 娣诲姞鏃堕棿
      */
-    @ApiModelProperty(value= "娣诲姞鏃堕棿")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @ApiModelProperty(value = "娣诲姞鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
      * 淇敼浜哄憳
      */
-    @ApiModelProperty(value= "淇敼浜哄憳")
+    @ApiModelProperty(value = "淇敼浜哄憳")
     private Long updateBy;
 
     /**
      * 淇敼鏃堕棿
      */
-    @ApiModelProperty(value= "淇敼鏃堕棿")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
     /**
      * 澶囨敞
      */
-    @ApiModelProperty(value= "澶囨敞")
+    @ApiModelProperty(value = "澶囨敞")
     private String memo;
 
-    public Delivery() {}
+    public Delivery() {
+    }
 
-    public Delivery(String code,String platId,String type,String wkType,String source,Double anfme,Double qty,Double workQty,String platCode,Date startTime,Date endTime,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
+    public Delivery(String code, String platId, String type, String wkType, String source, Double anfme, Double qty, Double workQty, String platCode, Date startTime, Date endTime, Integer status, Integer deleted, Integer tenantId, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
         this.code = code;
         this.platId = platId;
         this.type = type;
@@ -212,8 +223,22 @@
 //    );
 
 
-    public String getType$(){
-        if (Cools.isEmpty(this.type)){
+    public String getExceStatus$() {
+        if (Cools.isEmpty(this.exceStatus)) {
+            return null;
+        }
+        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
+        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
+                .eq(DictData::getDictTypeCode, DictTypeCode.SYS_PO_EXCE_STATUS)
+                .eq(DictData::getValue, this.exceStatus));
+        if (Objects.isNull(dictData)) {
+            return null;
+        }
+        return dictData.getLabel();
+    }
+
+    public String getType$() {
+        if (Cools.isEmpty(this.type)) {
             return "";
         }
         DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
@@ -224,8 +249,8 @@
         return dictData.getLabel();
     }
 
-    public String getWkType$(){
-        if (Cools.isEmpty(this.wkType)){
+    public String getWkType$() {
+        if (Cools.isEmpty(this.wkType)) {
             return "";
         }
         DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
@@ -236,71 +261,74 @@
         return dictData.getLabel();
     }
 
-    public String getStartTime$(){
-        if (Cools.isEmpty(this.startTime)){
+    public String getStartTime$() {
+        if (Cools.isEmpty(this.startTime)) {
             return "";
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
     }
 
-    public String getEndTime$(){
-        if (Cools.isEmpty(this.endTime)){
+    public String getEndTime$() {
+        if (Cools.isEmpty(this.endTime)) {
             return "";
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
     }
 
-    public String getStatus$(){
-        if (null == this.status){ return null; }
-        switch (this.status){
+    public String getStatus$() {
+        if (null == this.status) {
+            return null;
+        }
+        switch (this.status) {
             case 1:
                 return "宸插畬鎴�";
             case 0:
                 return "寰呮墽琛�";
-            case  2:
+            case 2:
                 return " 鏈畬鎴�";
             default:
                 return String.valueOf(this.status);
         }
     }
 
-    public String getCreateBy$(){
+    public String getCreateBy$() {
         UserService service = SpringUtils.getBean(UserService.class);
         User user = service.getById(this.createBy);
-        if (!Cools.isEmpty(user)){
+        if (!Cools.isEmpty(user)) {
             return String.valueOf(user.getNickname());
         }
         return null;
     }
 
-    public String getCreateTime$(){
-        if (Cools.isEmpty(this.createTime)){
+    public String getCreateTime$() {
+        if (Cools.isEmpty(this.createTime)) {
             return "";
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
     }
 
-    public String getUpdateBy$(){
+    public String getUpdateBy$() {
         UserService service = SpringUtils.getBean(UserService.class);
         User user = service.getById(this.updateBy);
-        if (!Cools.isEmpty(user)){
+        if (!Cools.isEmpty(user)) {
             return String.valueOf(user.getNickname());
         }
         return null;
     }
 
-    public String getUpdateTime$(){
-        if (Cools.isEmpty(this.updateTime)){
+    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){
+    public Boolean getStatusBool() {
+        if (null == this.status) {
+            return null;
+        }
+        switch (this.status) {
             case 1:
                 return true;
             case 0:
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
index 997a919..74ec628 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
@@ -5,6 +5,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.vincent.rsf.server.manager.service.TaskService;
 import com.vincent.rsf.server.system.constant.DictTypeCode;
 import com.vincent.rsf.server.system.entity.DictData;
 import com.vincent.rsf.server.system.service.DictDataService;
@@ -247,6 +248,16 @@
 //            null    // 澶囨敞
 //    );
 
+//    public String getParentId$() {
+//        if (Cools.isEmpty(this.parentId)) {
+//            return null;
+//        }
+//        TaskService taskService = SpringUtils.getBean(TaskService.class);
+//        Task task = taskService.getById(this.parentId);
+//        return task.getTaskCode();
+//    }
+
+
     public String getTaskStatus$(){
         if (Cools.isEmpty(this.taskStatus)) {
             return null;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/DeliveryTemplate.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/DeliveryTemplate.java
index 69ccd27..6bcd33f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/DeliveryTemplate.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/DeliveryTemplate.java
@@ -17,8 +17,8 @@
     private static final long serialVersionUID = 1L;
 
     @Excel(name = "*DO鍗曞彿")
-    @ApiModelProperty(value= "*PO鍗曞彿")
-    @ExcelComment(value = "poCode", example = "PO25413975")
+    @ApiModelProperty(value= "*DO鍗曞彿")
+    @ExcelComment(value = "doCode", example = "DO25413975")
     private String doCode;
 
     @Excel(name = "*琛屽彿")
@@ -76,7 +76,7 @@
     @Excel(name = "鐗╂枡鍚嶇О")
     @ApiModelProperty(value= "鐗╂枡鍚嶇О")
     @ExcelComment(value = "matnrName", example = "TC-03128瀵歌繛浣撳唴涓婃墭")
-    private String matnrName;
+    private String maktx;
 
 
     /**
@@ -103,6 +103,14 @@
     @ExcelComment(value = "splrBatch", example = "20250401")
     private String splrBatch;
 
+    /**
+     * 渚涘簲鍟嗗悕绉�
+     */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    @ApiModelProperty(value= "渚涘簲鍟嗗悕绉�")
+    @ExcelComment(value = "splrName", example = "涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�")
+    private String splrName;
+
 
     @Excel(name = "棰勮閫佽揪鏃堕棿")
     @ApiModelProperty("棰勮閫佽揪鏃堕棿")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index e63a975..57813fb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -95,7 +95,7 @@
      * 浠诲姟鑷姩涓嬪彂
      * @throws Exception
      */
-//    @Scheduled(cron = "0/5 * * * * ?  ")
+    @Scheduled(cron = "0/5 * * * * ?  ")
     @Transactional(rollbackFor = Exception.class)
     public void taskToWCS() throws Exception {
         Long loginUserId = SystemAuthUtils.getLoginUserId();
@@ -121,7 +121,11 @@
                 LocToTaskParams params = new LocToTaskParams();
                 params.setOrgLoc(shallowLoc).setType(TaskType.TASK_TYPE_LOC_MOVE.type + "");
                 //鐢熸垚绉诲簱浠诲姟
-                locItemService.genMoveTask(params, loginUserId);
+                Task moveTask = locItemService.genMoveTask(params, loginUserId);
+                moveTask.setSort(task.getSort() + 1);
+                if (!taskService.updateById(moveTask)) {
+                    throw new Exception("浠诲姟浼樺厛绾ф洿鏂板け璐ワ紒锛�");
+                }
             }
             //TODO 璋冪敤涓嬪彂浠诲姟鎺ュ彛
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeliveryItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeliveryItemService.java
index 1abc71d..a9507a7 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeliveryItemService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeliveryItemService.java
@@ -11,5 +11,5 @@
 
 public interface DeliveryItemService extends IService<DeliveryItem> {
 
-//    R excelImport(MultipartFile file, Map<String, Object> hashMap, Long loginUserId) throws Exception;
+    R excelImport(MultipartFile file, Map<String, Object> hashMap, Long loginUserId) throws Exception;
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java
index 7e59d53..dbaeed5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryItemServiceImpl.java
@@ -10,10 +10,7 @@
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
 import com.vincent.rsf.server.manager.entity.excel.DeliveryTemplate;
-import com.vincent.rsf.server.manager.enums.CompanysType;
-import com.vincent.rsf.server.manager.enums.OrderType;
-import com.vincent.rsf.server.manager.enums.OrderWorkType;
-import com.vincent.rsf.server.manager.enums.QlyIsptResult;
+import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.server.manager.mapper.DeliveryItemMapper;
 import com.vincent.rsf.server.manager.service.CompanysService;
 import com.vincent.rsf.server.manager.service.DeliveryItemService;
@@ -44,7 +41,6 @@
     @Autowired
     private DeliveryItemService deliveryItemService;
 
-//    private
     /**
      * excel DO鍗曞鍏�
      *
@@ -53,130 +49,114 @@
      * @param loginUserId
      * @return
      */
-//    @Override
-//    public R excelImport(MultipartFile file, Map<String, Object> hashMap, Long loginUserId) throws Exception {
-//        ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(), DeliveryTemplate.class, ExcelUtil.getDefaultImportParams());
-//        if (result.getList().isEmpty()) {
-//            throw new CoolException("琛ㄦ牸鍐呭涓嶈兘涓虹┖锛侊紒");
-//        }
-//        List<DeliveryTemplate> resultList = result.getList();
-//        Map<String, List<DeliveryTemplate>> listMap = resultList.stream().collect(Collectors.groupingBy(DeliveryTemplate::getDoCode));
-//        StringBuffer sbFaild = new StringBuffer();
-//        for (String key : listMap.keySet()) {
-//            if (StringUtils.isBlank(key)) {
-//                throw new CoolException("鍗曞彿涓嶈兘涓虹┖锛侊紒");
-//            }
-//            DeliveryTemplate template = listMap.get(key).stream().findFirst().get();
-//            Delivery order = deliveryService.getOne(new LambdaQueryWrapper<Delivery>().eq(Delivery::getCode, key));
-//            if (!Objects.isNull(order)) {
-//                sbFaild.append(template.getDoCode()).append(",宸叉坊鍔狅紒锛�");
-//                throw new CoolException(sbFaild.toString());
-//            }
-//            order = new Delivery();
-//            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-//            Date date = dateFormat.parse(template.getArrTime());
-//            if (Objects.isNull(date)) {
-//                throw new CoolException("鏃堕棿鏍煎紡閿欒锛侊紒");
-//            }
-//            if (Objects.isNull((OrderType.getTypeVal(template.getType())))) {
-//                sbFaild.append(template.getDoCode()).append(",鍗曟嵁鐘舵�佷笉瀛樺湪锛侊紒");
-//                throw new CoolException(sbFaild.toString());
-//            }
-//            if (Objects.isNull((OrderWorkType.getWorkType(template.getWkType())))) {
-//                sbFaild.append(template.getDoCode()).append(",涓氬姟鐘舵�佷笉瀛樺湪锛侊紒");
-//                throw new CoolException(sbFaild.toString());
-//            }
-//
-//            order.setCode(template.getDoCode())
-//                    .setPoCode(template.getPoCode())
-//                    .setMemo(template.getMemo())
-//                    .setArrTime(date)
-//                    .setUpdateBy(loginUserId)
-//                    .setLogisNo(template.getLogicNo())
-//                    .setCreateBy(loginUserId)
-//                    .setType(OrderType.getTypeVal(template.getType()))
-//                    .setWkType(OrderWorkType.getWorkType(template.getWkType()));
-//            if (!deliveryService.save(order)) {
-//                throw new CoolException("鍗曟嵁淇濆瓨澶辫触锛侊紒");
-//            }
-//            List<DeliveryItem> items = new ArrayList<>();
-//            for (DeliveryTemplate orderTemplate : listMap.get(key)) {
-//                DeliveryItem orderItem = new DeliveryItem();
-//                if (StringUtils.isBlank(orderTemplate.getMatnrCode())) {
-//                    throw new CoolException(orderTemplate.getDoCode() + "锛氱墿鏂欑紪鐮佷笉鑳戒负绌猴紒锛�");
-//                }
-//                if (StringUtils.isBlank(orderTemplate.getAnfme())) {
-//                    throw new CoolException(orderTemplate.getDoCode() + "锛氭暟閲忎笉鑳戒负绌猴紒锛�");
-//                }
-//                if (StringUtils.isBlank(orderTemplate.getType())) {
-//                    throw new CoolException(orderTemplate.getDoCode() + "锛氬崟鎹被鍨嬩笉鑳戒负绌猴紒锛�");
-//                }
-//                if (StringUtils.isBlank(orderTemplate.getWkType())) {
-//                    throw new CoolException(orderTemplate.getDoCode() + "锛氫笟鍔$被鍨嬩笉鑳戒负绌猴紒锛�");
-//                }
-//
-//                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>()
-//                        .eq(Matnr::getCode, orderTemplate.getMatnrCode()));
-//                if (Objects.isNull(matnr)) {
-//                    sbFaild.append(orderTemplate.getMatnrCode()).append("鐗╂枡涓嶅瓨鍦�");
-//                    throw new CoolException(sbFaild.toString());
-//                }
-//                String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, matnr);
-//                orderItem.setDeliveryId(order.getId())
-//                        .setDeliveryCode(order.getCode())
-//                        .setSplrBatch(orderTemplate.getSplrBatch())
-//                        .setPlatItemId(orderTemplate.getPlatItemId())
-//                        .setAnfme(Double.parseDouble(orderTemplate.getAnfme()))
-//                        .setIsptResult(QlyIsptResult.getDescVal(orderTemplate.getIsptResult()))
-////                        .setTrackCode(trackCode)
-//                        .setBarcode(trackCode)
-//                        .setPlatOrderCode(orderTemplate.getPlatOrderCode())
-//                        .setPlatWorkCode(orderTemplate.getPlatWorkCode())
-//                        .setProjectCode(orderTemplate.getProjectCode())
-//                        .setPoCode(orderTemplate.getDoCode())
-//                        .setPurUnit(matnr.getUnit())
-//                        .setCreateBy(loginUserId)
-//                        .setUpdateBy(loginUserId)
-//                        .setSpec(matnr.getSpec())
-//                        .setModel(matnr.getModel())
-//                        .setMaktx(matnr.getName())
-//                        .setMatnrCode(matnr.getCode())
-//                        .setMatnrId(matnr.getId())
-//                        .setStockUnit(matnr.getUnit());
-//                if (!Objects.isNull(orderTemplate.getSplrCode())) {
-//                    Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>()
-//                            .eq(Companys::getType, CompanysType.COMPANYS_TYPE_SUPPLIER.val)
-//                            .eq(Companys::getCode, orderTemplate.getSplrCode()));
-//                    if (!Objects.isNull(companys)) {
-//                        orderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName());
-//                    } else {
-//                        sbFaild.append("渚涘簲鍟�:" + orderTemplate.getSplrCode()).append("涓嶅瓨鍦�");
-//                        throw new CoolException(sbFaild.toString());
-//                    }
-//                } else {
-//                    continue;
-//                }
-//                items.add(orderItem);
-//
-//                if (!deliveryItemService.save(orderItem)) {
-//                    throw new CoolException("鍗曟嵁鏄庣粏淇濆瓨澶辫触锛侊紒");
-//                }
-//            }
-//            if (!items.isEmpty()) {
-////                double qty = items.stream().mapToDouble(AsnOrderItem::getQty).sum();
-//                double anfme = items.stream().mapToDouble(DeliveryItem::getAnfme).sum();
-//                if (!deliveryService.update(new LambdaUpdateWrapper<Delivery>()
-////                        .set(AsnOrder::getQty, qty)
-//                        .set(Delivery::getAnfme, anfme)
-//                        .eq(Delivery::getId, order.getId()))) {
-//                    throw new CoolException("鍗曟嵁鏁伴噺淇敼澶辫触锛侊紒");
-//                }
-//            }
-//
-//
-//        }
-//
-//
-//        return null;
-//    }
+    @Override
+    public R excelImport(MultipartFile file, Map<String, Object> hashMap, Long loginUserId) throws Exception {
+        ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(), DeliveryTemplate.class, ExcelUtil.getDefaultImportParams());
+        if (result.getList().isEmpty()) {
+            throw new CoolException("琛ㄦ牸鍐呭涓嶈兘涓虹┖锛侊紒");
+        }
+        List<DeliveryTemplate> resultList = result.getList();
+        Map<String, List<DeliveryTemplate>> listMap = resultList.stream().collect(Collectors.groupingBy(DeliveryTemplate::getDoCode));
+        StringBuffer sbFaild = new StringBuffer();
+        for (String key : listMap.keySet()) {
+            if (StringUtils.isBlank(key)) {
+                throw new CoolException("鍗曞彿涓嶈兘涓虹┖锛侊紒");
+            }
+            DeliveryTemplate template = listMap.get(key).stream().findFirst().get();
+            Delivery order = deliveryService.getOne(new LambdaQueryWrapper<Delivery>().eq(Delivery::getCode, key));
+            if (!Objects.isNull(order)) {
+                sbFaild.append(template.getDoCode()).append(",宸叉坊鍔狅紒锛�");
+                throw new CoolException(sbFaild.toString());
+            }
+            order = new Delivery();
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            Date date = dateFormat.parse(template.getArrTime());
+            if (Objects.isNull(date)) {
+                throw new CoolException("鏃堕棿鏍煎紡閿欒锛侊紒");
+            }
+            if (Objects.isNull((OrderType.getTypeVal(template.getType())))) {
+                sbFaild.append(template.getDoCode()).append(",鍗曟嵁鐘舵�佷笉瀛樺湪锛侊紒");
+                throw new CoolException(sbFaild.toString());
+            }
+            if (Objects.isNull((OrderWorkType.getWorkType(template.getWkType())))) {
+                sbFaild.append(template.getDoCode()).append(",涓氬姟鐘舵�佷笉瀛樺湪锛侊紒");
+                throw new CoolException(sbFaild.toString());
+            }
+
+            order.setCode(template.getDoCode())
+                    .setType(OrderType.getTypeVal(template.getType()))
+                    .setWkType(OrderWorkType.getWorkType(template.getWkType()))
+                    .setMemo(template.getMemo())
+                    .setSource(OrderSourceType.ORDER_SOURCE_TYPE_ERP.desc)
+                    .setAnfme(Double.parseDouble(template.getAnfme()))
+                    .setUpdateBy(loginUserId)
+                    .setCreateBy(loginUserId);
+            if (!deliveryService.save(order)) {
+                throw new CoolException("鍗曟嵁淇濆瓨澶辫触锛侊紒");
+            }
+            List<DeliveryItem> items = new ArrayList<>();
+            for (DeliveryTemplate orderTemplate : listMap.get(key)) {
+                DeliveryItem orderItem = new DeliveryItem();
+                if (StringUtils.isBlank(orderTemplate.getMatnrCode())) {
+                    throw new CoolException(orderTemplate.getDoCode() + "锛氱墿鏂欑紪鐮佷笉鑳戒负绌猴紒锛�");
+                }
+                if (StringUtils.isBlank(orderTemplate.getAnfme())) {
+                    throw new CoolException(orderTemplate.getDoCode() + "锛氭暟閲忎笉鑳戒负绌猴紒锛�");
+                }
+                if (StringUtils.isBlank(orderTemplate.getType())) {
+                    throw new CoolException(orderTemplate.getDoCode() + "锛氬崟鎹被鍨嬩笉鑳戒负绌猴紒锛�");
+                }
+                if (StringUtils.isBlank(orderTemplate.getWkType())) {
+                    throw new CoolException(orderTemplate.getDoCode() + "锛氫笟鍔$被鍨嬩笉鑳戒负绌猴紒锛�");
+                }
+
+                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>()
+                        .eq(Matnr::getCode, orderTemplate.getMatnrCode()));
+                if (Objects.isNull(matnr)) {
+                    sbFaild.append(orderTemplate.getMatnrCode()).append("鐗╂枡涓嶅瓨鍦�");
+                    throw new CoolException(sbFaild.toString());
+                }
+                orderItem.setDeliveryId(order.getId())
+                        .setDeliveryCode(order.getCode())
+                        .setSplrBatch(orderTemplate.getSplrBatch())
+                        .setPlatItemId(orderTemplate.getPlatItemId())
+                        .setAnfme(Double.parseDouble(orderTemplate.getAnfme()))
+                        .setUnit(matnr.getUnit())
+                        .setCreateBy(loginUserId)
+                        .setUpdateBy(loginUserId)
+                        .setSplrBatch(orderTemplate.getSplrBatch())
+                        .setMaktx(matnr.getName())
+                        .setMatnrCode(matnr.getCode())
+                        .setMatnrId(matnr.getId());
+                if (!Objects.isNull(orderTemplate.getSplrCode())) {
+                    Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>()
+                            .eq(Companys::getType, CompanysType.COMPANYS_TYPE_SUPPLIER.val)
+                            .eq(Companys::getCode, orderTemplate.getSplrCode()));
+                    if (!Objects.isNull(companys)) {
+                        orderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName());
+                    } else {
+                        sbFaild.append("渚涘簲鍟�:" + orderTemplate.getSplrCode()).append("涓嶅瓨鍦�");
+                        throw new CoolException(sbFaild.toString());
+                    }
+                } else {
+                    continue;
+                }
+                items.add(orderItem);
+
+                if (!deliveryItemService.save(orderItem)) {
+                    throw new CoolException("鍗曟嵁鏄庣粏淇濆瓨澶辫触锛侊紒");
+                }
+            }
+            if (!items.isEmpty()) {
+                Double anfme = items.stream().mapToDouble(DeliveryItem::getAnfme).sum();
+                if (!deliveryService.update(new LambdaUpdateWrapper<Delivery>()
+                        .set(Delivery::getAnfme, anfme)
+                        .eq(Delivery::getId, order.getId()))) {
+                    throw new CoolException("鍗曟嵁鏁伴噺淇敼澶辫触锛侊紒");
+                }
+            }
+        }
+
+        return null;
+    }
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index 5fbaf0b..ca4d6b6 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -138,10 +138,8 @@
                 if (Objects.isNull(deviceSite)) {
                     throw new CoolException("褰撳墠绔欑偣涓嶆敮鎸佺洏鐐瑰嚭搴擄紒锛�");
                 }
-
                 task.setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type).setWarehType(deviceSite.getDevice());
             }
-
             if (!taskService.save(task)) {
                 throw new CoolException("浠诲姟鍒涘缓澶辫触锛侊紒");
             }
@@ -159,10 +157,6 @@
                     //浼樺厛鐢熸垚绉诲簱浠诲姟
                     if (one.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
                         moveTask = genMoveTask(map, loginUserId);
-                        task.setParentId(moveTask.getId());
-                        if (!taskService.updateById(task)) {
-                            throw new CoolException("涓讳换鍔″叧鑱斿け璐ワ紒锛�");
-                        }
                     }
                 } else {
                     workTask.setSort(task.getSort() + 1).setParentId(task.getId());
@@ -172,14 +166,16 @@
                 }
             }
 
-
-
-//            if (!Objects.isNull(moveTask.getId())) {
-//                moveTask.setParentId(task.getId()).setSort(moveTask.getSort() - 1);
-//                if (!taskService.saveOrUpdate(moveTask)) {
-//                    throw new CoolException("浠诲姟淇℃伅淇敼澶辫触锛侊紒");
-//                }
-//            }
+            if (!Objects.isNull(moveTask.getId())) {
+                moveTask.setParentId(task.getId()).setSort(moveTask.getSort() + 1);
+                if (!taskService.saveOrUpdate(moveTask)) {
+                    throw new CoolException("浠诲姟淇℃伅淇敼澶辫触锛侊紒");
+                }
+                task.setParentId(moveTask.getId());
+                if (!taskService.updateById(task)) {
+                    throw new CoolException("涓讳换鍔″叧鑱斿け璐ワ紒锛�");
+                }
+            }
 
             List<TaskItem> taskItems = new ArrayList<>();
             listMap.get(key).forEach(item -> {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 9ad72a4..f0caa13 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -753,8 +753,6 @@
                     if (!this.updateById(outTask)) {
                         throw new CoolException("浠诲姟淇℃伅淇敼澶辫触锛侊紒");
                     }
-                } else {
-//                    throw new CoolException("鏃犳硶鐢熸垚鏂扮殑绉诲簱浠诲姟锛屽彇娑堝け璐ワ紒锛�");
                 }
             }
 
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index db51329..ac31a5b 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -25,7 +25,7 @@
   #  global-config:
   #    field-strategy: 0
   configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     map-underscore-to-camel-case: true
     cache-enabled: true
     call-setters-on-nulls: true

--
Gitblit v1.9.1