From d2a1ccd801f942381723c5a6001989d8da8ba6f5 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 04 十一月 2025 20:56:08 +0800
Subject: [PATCH] 优化盘点逻辑

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs |   95 +++++--
 新建文件夹/WMS/src/views/outbound/outboundOrder_Hty.vue                  |  619 ++++++++++++++++++++++++++-------------------------
 2 files changed, 385 insertions(+), 329 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs"
index f72a092..ee73c0a 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs"
@@ -3,6 +3,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common;
 using WIDESEA_Common.OrderEnum;
 using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.TaskEnum;
@@ -36,6 +37,7 @@
                 foreach (var item in inventory_Batches)
                 {
                     var supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).ToList();
+                    if (item.SupplyQuantity != 0) throw new Exception($"鐗╂枡缂栧彿銆恵item.MaterielCode}銆戞壒娆″彿銆恵item.BatchNo}銆戝凡瀛樺湪鐩樼偣宸紓!");
                     if (supplyTasks.Count > 0) throw new Exception($"鐗╂枡缂栧彿銆恵item.MaterielCode}銆戞壒娆″彿銆恵item.BatchNo}銆戝凡瀛樺湪鐩樼偣浠诲姟锛岃鍏堝畬鎴愬綋鍓嶇洏鐐逛换鍔�");
                     supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).ToList();
                     if (supplyTasks.Count > 0) throw new Exception($"鐗╂枡缂栧彿銆恵item.MaterielCode}銆戞壒娆″彿銆恵item.BatchNo}銆戝凡瀛樺湪鍑哄簱浠诲姟锛岃鍏堝畬鎴愬綋鍓嶅嚭搴撲换鍔�");
@@ -234,7 +236,7 @@
                 if (materielInfo == null) return WebResponseContent.Instance.Error($"璇风淮鎶ょ墿鏂欑紪鍙枫�恵cabinOrderDetail.Goods_no}銆戠殑鐗╂枡淇℃伅");
                 cabinOrderDetail.Order_Outqty += supplyTask.SupplyQuantity;
                 #region 骞冲簱鐩樼偣鍙兘鍑虹幇鏁寸宸紓
-                if (supplyTask.WarehouseCode == WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000"))
+                if (supplyTask.WarehouseCode == WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000") && materielInfo.MaterielSourceType != MaterielSourceTypeEnum.PurchasePart)
                 {
                     var Qty = supplyTask.SupplyQuantity % materielInfo.BoxQty;
                     if (Qty != 0) return WebResponseContent.Instance.Error($"澶т欢搴撳簱瀛樹负鏁寸锛佺洏鐐规暟閲忎笉鑳藉瓨鍦ㄦ暎浠�");
@@ -247,52 +249,95 @@
                 #endregion
 
                 #region 搴撳瓨
-                Dt_InventoryInfo inventoryInfo = new Dt_InventoryInfo();
+                List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode));
+                List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode) && x.WarehouseCode == supplyTask.WarehouseCode && x.StockStatus == StockStatusEmun.鐩樼偣閿佸畾.ObjToInt());
+                Dt_InventoryInfo? inventoryInfo = new();
+                List<Dt_InventoryInfo> inventoryInfosDel = new List<Dt_InventoryInfo>();
                 if (supplyTask.WarehouseCode != WarehouseEnum.绔嬪簱.ObjToInt().ToString("000"))
                 {
-                    inventoryInfo = _inventoryInfoService.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.WarehouseCode == supplyTask.WarehouseCode && x.LocationCode == supplyTask.LocationCode);
+                    inventoryInfo = inventoryInfos.FirstOrDefault(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.LocationCode == supplyTask.LocationCode);
                     if (inventoryInfo == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌揣浣嶃�恵LocationCode}銆戠殑搴撳瓨淇℃伅");
                 }
                 else
                 {
-                    inventoryInfo = _inventoryInfoService.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.WarehouseCode == supplyTask.WarehouseCode);
+                    inventoryInfo = inventoryInfos.FirstOrDefault(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no);
                 }
+                if (inventoryInfo == null) return WebResponseContent.Instance.Error($"鏈壘鍒扮珛搴撶殑搴撳瓨淇℃伅");
                 inventoryInfo.SupplyQuantity = supplyTask.SupplyQuantity - inventoryInfo.StockQuantity;
                 #endregion
 
-                #region 鍒ゆ柇褰撳墠鐗╂枡鎵规鐨勭洏鐐逛换鍔℃槸鍚﹀叏閮ㄥ畬鎴�
-                List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.WarehouseCode == supplyTask.WarehouseCode && x.TaskId != supplyTask.TaskId).ToList();
-                List<Dt_SupplyTask> supplyTasks1 = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.TaskId != supplyTask.TaskId).ToList();
-                Dt_Inventory_Batch inventory_Batch = new Dt_Inventory_Batch();
-                List<Dt_InventoryInfo> inventoryInfos = new List<Dt_InventoryInfo>();
-                if (supplyTasks1.Count < 1)
+                List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.OrderNo == supplyTask.OrderNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.TaskId != supplyTask.TaskId).ToList();//鏌ユ壘褰撳墠鐩樼偣鍗曠殑鐩樼偣浠诲姟
+                if (!supplyTasks.Where(x => cabinOrderDetail.Goods_no == x.MaterielCode && x.BatchNo == cabinOrderDetail.Batch_num).Any())
+                    cabinOrderDetail.OotDetailStatus = "宸插畬鎴�";
+                #region 鍒ゆ柇褰撳墠鐩樼偣鍗曚换鍔℃槸鍚﹀叏閮ㄥ畬鎴�
+                if (supplyTasks.Count < 1)
                 {
-                    #region 鏌ユ壘搴撳瓨
-                    inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.Id != inventoryInfo.Id);
-                    var SupplyQuantitys = inventoryInfos.Sum(x => x.SupplyQuantity) + inventoryInfo.SupplyQuantity;//璁$畻鐩樼偣鎬绘暟
-                    #endregion
-
-                    #region 搴撳瓨鎵规
-                    inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no);
-                    
+                    #region 澶勭悊褰撳墠鐗╂枡鎵规鐨勫簱瀛樺拰鎵规淇℃伅
+                    Dt_Inventory_Batch inventory_Batch = inventory_Batchs.First(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode);
+                    var SupplyQuantitys = inventoryInfos.Where(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode).Sum(x => x.SupplyQuantity);
                     if (SupplyQuantitys == 0)
                     {
-                        foreach (var item in inventoryInfos)
+                        foreach (var item in inventoryInfos.Where(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode))
                         {
                             item.StockQuantity += item.SupplyQuantity;
+                            if (item.StockQuantity <= 0)
+                            {
+                                inventoryInfosDel.Add(item);
+                                continue;
+                            }
+                            item.AvailableQuantity = item.StockQuantity;
                             item.SupplyQuantity = 0;
                             item.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
                         }
-                        inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
-                        inventoryInfo.SupplyQuantity = 0;
-                        inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+                        //inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
+                        //if (inventoryInfo.StockQuantity <= 0)
+                        //{
+                        //    inventoryInfosDel.Add(inventoryInfo);
+                        //    inventoryInfo = null;
+                        //}
+                        //else
+                        //{
+                        //    inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
+                        //    inventoryInfo.SupplyQuantity = 0;
+                        //    inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+                        //}
                     }
                     else
                     {
                         inventory_Batch.SupplyQuantity += SupplyQuantitys;
                     }
                     #endregion
+
+                    #region 澶勭悊鍏朵粬搴撳瓨鎵规鍜屽簱瀛�
+                    foreach (var detail in cabinOrder.Details.Where(x => x.Id != cabinOrderDetail.Id))
+                    {
+                        SupplyQuantitys = inventoryInfos.Where(x => x.BatchNo == detail.Batch_num && x.MaterielCode == detail.Goods_no).Sum(x => x.SupplyQuantity);//璁$畻鐩樼偣鎬绘暟
+                        inventory_Batch = inventory_Batchs.First(x => x.BatchNo == detail.Batch_num && x.MaterielCode == detail.Goods_no);
+                        #region 搴撳瓨鎵规
+                        if (SupplyQuantitys == 0)
+                        {
+                            foreach (var item in inventoryInfos.Where(x => x.BatchNo == detail.Batch_num && x.MaterielCode == detail.Goods_no))
+                            {
+                                item.StockQuantity += item.SupplyQuantity;
+                                if (item.StockQuantity <= 0)
+                                {
+                                    inventoryInfosDel.Add(item);
+                                    continue;
+                                }
+                                item.AvailableQuantity = item.StockQuantity;
+                                item.SupplyQuantity = 0;
+                                item.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+                            }
+                        }
+                        else
+                        {
+                            inventory_Batch.SupplyQuantity += SupplyQuantitys;
+                        }
+                        #endregion
+                    }
+                    #endregion
                 }
+                #endregion
                 _unitOfWorkManage.BeginTran();
                 #region 澶勭悊鐩樼偣鍗�
                 if (supplyTasks.Count < 1)
@@ -315,12 +360,12 @@
                     _deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
                 }
                 #endregion
-                _inventoryInfoService.UpdateData(inventoryInfo);
+                //_inventoryInfoService.UpdateData(inventoryInfo);
                 _supplyTaskService.Repository.DeleteAndMoveIntoHty(supplyTask, OperateTypeEnum.鑷姩瀹屾垚);
                 _inventoryInfoService.UpdateData(inventoryInfos);
-                _inventory_BatchServices.UpdateData(inventory_Batch);
+                if (inventoryInfosDel.Count > 0) _inventoryInfoService.DeleteData(inventoryInfosDel);
+                _inventory_BatchServices.UpdateData(inventory_Batchs);
                 _unitOfWorkManage.CommitTran();
-                #endregion
                 content.OK();
             }
             catch (Exception ex)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/outbound/outboundOrder_Hty.vue" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/outbound/outboundOrder_Hty.vue"
index 5d53b4f..d8725c4 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/outbound/outboundOrder_Hty.vue"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WMS/src/views/outbound/outboundOrder_Hty.vue"
@@ -5,311 +5,322 @@
  *涓氬姟璇峰湪@/extension/widesea_wcs/order/Dt_OutboundOrder_Hty.js姝ゅ缂栧啓
  -->
 <template>
-    <view-grid ref="grid"
-               :columns="columns"
-               :detail="detail"
-               :editFormFields="editFormFields"
-               :editFormOptions="editFormOptions"
-               :searchFormFields="searchFormFields"
-               :searchFormOptions="searchFormOptions"
-               :table="table"
-               :extend="extend">
-    </view-grid>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
 </template>
 <script>
-    import extend from "@/extension/outbound/outboundOrder_Hty.js";
-    import { ref, defineComponent } from "vue";
-    export default defineComponent({
-        setup() {
-            const table = ref({
-                key: 'id',
-                footer: "Foots",
-                cnName: '鍘嗗彶鍑哄簱鍗�',
-                name: 'DeliveryOrderHty',
-                url: "/DeliveryOrderHty/",
-                sortName: "id"
-            });
-            const editFormFields = ref({});
-            const editFormOptions = ref([]);
-            const searchFormFields = ref({
-                out_no: "",
-                out_type: "",
-                client_no: "",
-                client_name: "",
-                warehouse_no: "",
-                outStatus: "",
-                account_time: "",
-            });
-            const searchFormOptions = ref([
-                [
-                    { title: "鍑哄簱鍗曞彿", field: "out_no", type: "like" },
-                    { title: "瀹㈡埛浠g爜", field: "client_no", type: "like" },
-                    {
-                        title: "鍑哄簱鍗曠被鍨�",
-                        field: "out_type",
-                        type: "select",
-                        dataKey: "out_type",
-                        data: [],
-                    },
-                ],
-                [
-                    {
-                        title: "鐘舵��",
-                        field: "outStatus",
-                        type: "select",
-                        dataKey: "outStatus",
-                        data: [],
-                    },
-                    { title: "瀹㈡埛鍚嶇О", field: "client_name", type: "like" },
-                    { title: "鍑哄簱璁拌处鏃堕棿", field: "account_time", type: "datetime" },
-                ]
-            ]);
-            const columns = ref([
-                {
-                    field: 'id',
-                    title: '鍘嗗彶璁板綍涓婚敭',
-                    type: 'int',
-                    width: 120,
-                    hidden: true,
-                    readonly: true,
-                    require: true,
-                    align: 'left'
-                },
-                {
-                    field: 'sourceId',
-                    title: '鍘熶富閿�',
-                    type: 'int',
-                    width: 100,
-                    align: 'left'
-                },
-                {
-                    field: 'out_no',
-                    title: '鍑哄簱鍗曞彿',
-                    type: 'string',
-                    width: 150,
-                    require: true,
-                    align: 'left',
-                    sort: true,
-                    link: true
-                },
-                {
-                    field: 'out_type',
-                    title: '鍑哄簱鍗曠被鍨�',
-                    type: 'string',
-                    width: 120,
-                    require: true,
-                    align: 'left',
-                    bind: { key: "out_type", data: [] }
-                },
-                {
-                    field: 'client_no',
-                    title: '瀹㈡埛浠g爜',
-                    type: 'string',
-                    width: 120,
-                    align: 'left'
-                },
-                {
-                    field: 'client_name',
-                    title: '瀹㈡埛鍚嶇О',
-                    type: 'string',
-                    width: 150,
-                    align: 'left'
-                },
-                {
-                    field: 'warehouse_no',
-                    title: '搴撳彂鍙�',
-                    type: 'string',
-                    width: 100,
-                    align: 'left',
-                    bind: { key: "warehouseNuber", data: [] }
-                },
-                {
-                    field: 'account_time',
-                    title: '鍑哄簱璁拌处鏃堕棿',
-                    type: 'datetime',
-                    width: 160,
-                    align: 'left'
-                },
-                {
-                    field: 'outStatus',
-                    title: '澶存爣鐘舵��',
-                    type: 'string',
-                    width: 120,
-                    align: 'left',
-                    bind: { key: "outStatus", data: [] }
-                },
-                // {
-                //     field: 'creater',
-                //     title: '鍒涘缓浜�',
-                //     type: 'string',
-                //     width: 90,
-                //     align: 'left'
-                // },
-                {
-                    field: 'createDate',
-                    title: '鍒涘缓鏃堕棿',
-                    type: 'datetime',
-                    width: 160,
-                    align: 'left',
-                    sort: true
-                },
-                // {
-                //     field: 'modifier',
-                //     title: '淇敼浜�',
-                //     type: 'string',
-                //     width: 100,
-                //     align: 'left'
-                // },
-                // {
-                //     field: 'modifyDate',
-                //     title: '淇敼鏃堕棿',
-                //     type: 'datetime',
-                //     width: 160,
-                //     align: 'left',
-                //     sort: true
-                // }
-            ]);
-            const detail = ref({
-                cnName: "鍘嗗彶鍑哄簱鍗曟槑缁�",
-                table: "DtDeliveryOrderDetailHty",
-                columns: [
-                    {
-                        field: 'id',
-                        title: '鍘嗗彶璁板綍涓婚敭',
-                        type: 'int',
-                        width: 120,
-                        hidden: true,
-                        readonly: true,
-                        require: true,
-                        align: 'left'
-                    },
-                    {
-                        field: 'sourceId',
-                        title: '鍘熶富閿�',
-                        type: 'int',
-                        width: 100,
-                        align: 'left'
-                    },
-                    // {
-                    //     field: 'deliveryOrderId',
-                    //     title: '鍏宠仈鍑哄簱鍗旾D',
-                    //     type: 'int',
-                    //     width: 120,
-                    //     require: true,
-                    //     align: 'left',
-                    //     sort: true,
-                    //     hidden: true
-                    // },
-                    {
-                        field: 'reservoirarea',
-                        title: '搴撳尯',
-                        type: 'string',
-                        width: 120,
-                        align: 'left',
-                        bind: { key: "warehouseNuber", data: [] }
-                    },
-                        {
-                        field: "goods_no",
-                        title: "鐗╂枡鍚嶇О",
-                        type: "string",
-                        width: 150,
-                        align: "left",
-                        required: true,
-                        edit:{type:""},
-                        bind: { key: "MaterielNames", data: [] },
-                    },
-                    {
-                        field: 'goods_no',
-                        title: '鑽搧缂栫爜',
-                        type: 'string',
-                        width: 150,
-                        require: true,
-                        align: 'left',
-                        bind: { key: "medicineGoods", data: [] }
-                    },
-                    {
-                        field: 'order_qty',
-                        title: '璁㈠崟鏁伴噺',
-                        type: 'decimal',
-                        width: 100,
-                        require: true,
-                        align: 'left'
-                    },
-                    {
-                        field: 'batch_num',
-                        title: '鎵瑰彿',
-                        type: 'string',
-                        width: 120,
-                        require: true,
-                        align: 'left'
-                    },
-                    {
-                        field: 'exp_date',
-                        title: '鏍℃湡',
-                        type: 'string',
-                        width: 120,
-                        align: 'left'
-                    },
-                    {
-                        field: 'ootDetailStatus',
-                        title: '鐘舵��',
-                        type: 'string',
-                        width: 120,
-                        align: 'left',
-                        bind: { key: "ootDetailStatus", data: [] }
-                    },
-                    {
-                        field: 'status',
-                        title: '鍚屾鐘舵��',
-                        type: 'int',
-                        width: 120,
-                        align: 'left',
-                        bind: { key: "syncStatus", data: [] }
-                    },
-                    {
-                        field: 'creater',
-                        title: '鍒涘缓浜�',
-                        type: 'string',
-                        width: 90,
-                        align: 'left'
-                    },
-                    {
-                        field: 'createDate',
-                        title: '鍒涘缓鏃堕棿',
-                        type: 'datetime',
-                        width: 160,
-                        align: 'left',
-                        sort: true
-                    },
-                    {
-                        field: 'modifier',
-                        title: '淇敼浜�',
-                        type: 'string',
-                        width: 100,
-                        align: 'left'
-                    },
-                    {
-                        field: 'modifyDate',
-                        title: '淇敼鏃堕棿',
-                        type: 'datetime',
-                        width: 160,
-                        align: 'left',
-                        sort: true
-                    }
-                ],
-                sortName: "id",
-                key: "id"
-            });
-            return {
-                table,
-                extend,
-                editFormFields,
-                editFormOptions,
-                searchFormFields,
-                searchFormOptions,
-                columns,
-                detail,
-            };
-        },
+import extend from "@/extension/outbound/outboundOrder_Hty.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "鍘嗗彶鍑哄簱鍗�",
+      name: "DeliveryOrderHty",
+      url: "/DeliveryOrderHty/",
+      sortName: "id",
     });
+    const editFormFields = ref({});
+    const editFormOptions = ref([]);
+    const searchFormFields = ref({
+      out_no: "",
+      out_type: "",
+      client_no: "",
+      client_name: "",
+      warehouse_no: "",
+      outStatus: "",
+      account_time: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "鍑哄簱鍗曞彿", field: "out_no", type: "like" },
+        { title: "瀹㈡埛浠g爜", field: "client_no", type: "like" },
+        {
+          title: "鍑哄簱鍗曠被鍨�",
+          field: "out_type",
+          type: "select",
+          dataKey: "out_type",
+          data: [],
+        },
+      ],
+      [
+        {
+          title: "鐘舵��",
+          field: "outStatus",
+          type: "select",
+          dataKey: "outStatus",
+          data: [],
+        },
+        { title: "瀹㈡埛鍚嶇О", field: "client_name", type: "like" },
+        { title: "鍑哄簱璁拌处鏃堕棿", field: "account_time", type: "datetime" },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "鍘嗗彶璁板綍涓婚敭",
+        type: "int",
+        width: 120,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "sourceId",
+        title: "鍘熶富閿�",
+        type: "int",
+        width: 100,
+        align: "left",
+      },
+      {
+        field: "out_no",
+        title: "鍑哄簱鍗曞彿",
+        type: "string",
+        width: 150,
+        require: true,
+        align: "left",
+        sort: true,
+        link: true,
+      },
+      {
+        field: "out_type",
+        title: "鍑哄簱鍗曠被鍨�",
+        type: "string",
+        width: 120,
+        require: true,
+        align: "left",
+        bind: { key: "out_type", data: [] },
+      },
+      {
+        field: "client_no",
+        title: "瀹㈡埛浠g爜",
+        type: "string",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "client_name",
+        title: "瀹㈡埛鍚嶇О",
+        type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "warehouse_no",
+        title: "搴撳彂鍙�",
+        type: "string",
+        width: 100,
+        align: "left",
+        bind: { key: "warehouseNuber", data: [] },
+      },
+      {
+        field: "account_time",
+        title: "鍑哄簱璁拌处鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "outStatus",
+        title: "澶存爣鐘舵��",
+        type: "string",
+        width: 120,
+        align: "left",
+        bind: { key: "outStatus", data: [] },
+      },
+      // {
+      //     field: 'creater',
+      //     title: '鍒涘缓浜�',
+      //     type: 'string',
+      //     width: 90,
+      //     align: 'left'
+      // },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+        sort: true,
+      },
+      // {
+      //     field: 'modifier',
+      //     title: '淇敼浜�',
+      //     type: 'string',
+      //     width: 100,
+      //     align: 'left'
+      // },
+      // {
+      //     field: 'modifyDate',
+      //     title: '淇敼鏃堕棿',
+      //     type: 'datetime',
+      //     width: 160,
+      //     align: 'left',
+      //     sort: true
+      // }
+    ]);
+    const detail = ref({
+      cnName: "鍘嗗彶鍑哄簱鍗曟槑缁�",
+      table: "DtDeliveryOrderDetailHty",
+      columns: [
+        {
+          field: "id",
+          title: "鍘嗗彶璁板綍涓婚敭",
+          type: "int",
+          width: 120,
+          hidden: true,
+          readonly: true,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "sourceId",
+          title: "鍘熶富閿�",
+          type: "int",
+          width: 100,
+          align: "left",
+        },
+        // {
+        //     field: 'deliveryOrderId',
+        //     title: '鍏宠仈鍑哄簱鍗旾D',
+        //     type: 'int',
+        //     width: 120,
+        //     require: true,
+        //     align: 'left',
+        //     sort: true,
+        //     hidden: true
+        // },
+        {
+          field: "reservoirarea",
+          title: "搴撳尯",
+          type: "string",
+          width: 120,
+          align: "left",
+          bind: { key: "warehouseNuber", data: [] },
+        },
+        {
+          field: "goods_no",
+          title: "鐗╂枡鍚嶇О",
+          type: "string",
+          width: 150,
+          align: "left",
+          required: true,
+          edit: { type: "" },
+          bind: { key: "MaterielNames", data: [] },
+        },
+        {
+          field: "goods_no",
+          title: "鑽搧缂栫爜",
+          type: "string",
+          width: 150,
+          require: true,
+          align: "left",
+          bind: { key: "medicineGoods", data: [] },
+        },
+        {
+          field: "order_qty",
+          title: "璁㈠崟鏁伴噺",
+          type: "decimal",
+          width: 100,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "order_Outqty",
+          title: "瀹屾垚鏁伴噺",
+          type: "decimal",
+          width: 100,
+          require: true,
+          align: "left",
+          // edit:{type:"number"}
+        },
+        {
+          field: "batch_num",
+          title: "鎵瑰彿",
+          type: "string",
+          width: 120,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "exp_date",
+          title: "鏍℃湡",
+          type: "string",
+          width: 120,
+          align: "left",
+        },
+        {
+          field: "ootDetailStatus",
+          title: "鐘舵��",
+          type: "string",
+          width: 120,
+          align: "left",
+          bind: { key: "ootDetailStatus", data: [] },
+        },
+        {
+          field: "status",
+          title: "鍚屾鐘舵��",
+          type: "int",
+          width: 120,
+          align: "left",
+          bind: { key: "syncStatus", data: [] },
+        },
+        {
+          field: "creater",
+          title: "鍒涘缓浜�",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "createDate",
+          title: "鍒涘缓鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+          sort: true,
+        },
+        {
+          field: "modifier",
+          title: "淇敼浜�",
+          type: "string",
+          width: 100,
+          align: "left",
+        },
+        {
+          field: "modifyDate",
+          title: "淇敼鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+          sort: true,
+        },
+      ],
+      sortName: "id",
+      key: "id",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
 </script>
\ No newline at end of file

--
Gitblit v1.9.3