From c1f92d034bee8c989ee99519fac9cbe01a71d242 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期二, 02 十二月 2025 17:46:00 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs |   12 +++
 项目代码/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js                                 |   15 ++++
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs                 |    2 
 项目代码/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue                                     |    1 
 项目代码/WIDESEA_WMSClient/config/buttons.js                                                       |    8 ++
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                          |   24 +++++--
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue                     |   68 ++++++++++++++++++++++
 7 files changed, 119 insertions(+), 11 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js"
index 703977c..32004c1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/config/buttons.js"
@@ -199,6 +199,14 @@
     type: 'warning',
     onClick: function () {
     }
+},{
+    name: "绌烘墭鍑哄簱",
+    // icon: 'el-icon-upload2',
+    class: '',
+    value: 'EmptyTrayOutbound',
+    type: 'primary',
+    onClick: function () {
+    }
 },
 ]
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue"
new file mode 100644
index 0000000..13c29f0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/EmptyTrayOutbound.vue"
@@ -0,0 +1,68 @@
+<template>
+  <vol-box v-model="show" title="绌烘墭鍑哄簱" :width="800" :height="600">
+    <template #content>
+      <el-form ref="form" :model="form" label-width="90px">
+        <el-form-item label="鍑哄簱鏁伴噺">
+          <el-input type="text" v-model="this.form.remark"></el-input>
+        </el-form-item>
+      </el-form>
+    </template>
+    <template #footer>
+      <div>
+        <el-button type="danger" size="small" plain @click="submit">
+          <i class="el-icon-check">纭</i>
+        </el-button>
+        <el-button size="small" type="primary" plain @click="() => { this.show = false }">
+          <i class="el-icon-close">鍏抽棴</i>
+        </el-button>
+      </div>
+    </template>
+  </vol-box>
+</template>
+
+<script>
+import VolBox from '@/components/basic/VolBox.vue'
+export default {
+  components: {
+    'vol-box': VolBox
+  },
+  data() {
+    return {
+      form: {
+        remark: ''
+      },
+      palletCode: '',
+      show: false
+    }
+  },
+  methods: {
+    open(palletCode) {
+      this.show = true
+      this.palletCode = palletCode
+    },
+    submit() {
+      this.$emit('parentCall', ($vue) => {
+        console.log(this.form.remark, this.palletCode)
+        if (
+          !this.palletCode ||
+          this.palletCode == ''
+        ) {
+          this.$message.error('鍙傛暟閿欒')
+          return
+        }
+        this.http.post(`/api/Task/OutBoundTaskAsync?palletCode=${this.palletCode}&remark=${this.form.remark}`, {}, '鏁版嵁澶勭悊涓�...')
+          .then((x) => {
+            if (!x.status) {
+              this.$message.error(x.message)
+            } else {
+              console.log(x);
+              this.show = false
+              this.$Message.success(this.palletCode + '鍑哄簱鎴愬姛')
+              $vue.refresh();
+            }
+          })
+      })
+    }
+  }
+}
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
index 5c024ce..860af89 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
@@ -6,12 +6,13 @@
 
 import gridBody from './extend/outOrderDetail.vue'
 import gridHeader from './extend/NoStockOut.vue'
+import gridFooter from './extend/EmptyTrayOutbound.vue'
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
     gridHeader: gridHeader,
     gridBody: gridBody,
-    gridFooter: '',
+    gridFooter: gridFooter,
     //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
     modelHeader: '',
     modelBody: '',
@@ -20,6 +21,8 @@
   tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
   buttons: {
     view: [
+
+
       /* {
        name: '鍑哄簱',
        type: 'primary',
@@ -364,6 +367,16 @@
         }
       }
 
+      var EmptyTrayOutboundBtn = this.buttons.find(x => x.value == "EmptyTrayOutbound");
+        if (EmptyTrayOutboundBtn != null) {
+          EmptyTrayOutboundBtn.onClick = () => {
+                let rows = this.$refs.table.getSelected();
+                if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+                if (rows.length >1) return this.$error("璇烽�夋嫨鏁版嵁!");
+               this.$refs.gridHeader.open();
+            }
+        }
+
     },
     onInited() {
       //妗嗘灦鍒濆鍖栭厤缃悗
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue"
index 9287497..c5f6168 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue"
@@ -66,6 +66,7 @@
         { title: "鐗╂枡缂栧彿", field: "materielCode" ,type:'like'},
         { title: "鐗╂枡鍚嶇О", field: "materielName" ,type:'like'},
         { title: "鍗曟嵁缂栧彿", field: "orderNo" ,type:'like'},
+        { title: "鎵樼洏鍙�", field: "palletCode" ,type:'like'},
       ],
     ]);
     const columns = ref([
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 76d06f2..cc02019 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -18,6 +18,7 @@
 using AutoMapper;
 using Dm.filter;
 using MailKit.Search;
+using Microsoft.AspNetCore.Mvc;
 using Microsoft.Extensions.Logging;
 using Newtonsoft.Json;
 using Org.BouncyCastle.Asn1.Ocsp;
@@ -1059,17 +1060,20 @@
                                     Barcode = item.CurrentBarcode,
                                     SupplyCode = item.SupplyCode,
                                     BatchNo = item.BatchNo,
-                                    Unit = item.BarcodeUnit,
+                                    Unit = detail.BarcodeUnit,
                                     Qty = 0
                                 };
                                 // 鍗曚綅涓嶄竴鑷存椂杞崲
-                                if (item.BarcodeUnit != item.Unit)
+                                if (detail.BarcodeUnit != detail.Unit)
                                 {
-                                    var convertResult = await _materialUnitService.ConvertAsync(item.MaterielCode, item.PickedQty, item.Unit, item.BarcodeUnit);
+                                    var convertResult = await _materialUnitService.ConvertAsync(item.MaterielCode, item.PickedQty, detail.Unit, detail.BarcodeUnit);
                                     barModel.Unit = convertResult.Unit;
                                     barModel.Qty = convertResult.Quantity;
                                 }
-
+                                else
+                                {
+                                    barModel.Qty = item.PickedQty;
+                                }
                                 detailModel.Qty += barModel.Qty;
                                 detailModel.Barcodes.Add(barModel);
                             }
@@ -1140,18 +1144,22 @@
                                     barcode = item.CurrentBarcode,
                                     supplyCode = item.SupplyCode,
                                     batchNo = item.BatchNo,
-                                    unit = item.BarcodeUnit,
+                                    unit = detail.BarcodeUnit,
                                     qty = item.PickedQty
                                 };
                                 // 鍗曚綅涓嶄竴鑷存椂杞崲
-                                if (item.BarcodeUnit != item.Unit)
+                                if (detail.BarcodeUnit != detail.Unit)
                                 {
-                                    var convertResult = await _materialUnitService.ConvertAsync(item.MaterielCode, item.PickedQty, item.Unit, item.BarcodeUnit);
+                                    var convertResult = await _materialUnitService.ConvertAsync(item.MaterielCode, item.PickedQty, detail.Unit, detail.BarcodeUnit);
                                     barModel.unit = convertResult.Unit;
                                     barModel.qty = convertResult.Quantity;
                                 }
+                                else
+                                {
+                                    barModel.qty = item.PickedQty;
+                                }
 
-                                detailModel.qty += barModel.qty;
+                                    detailModel.qty += barModel.qty;
                                 detailModel.currentDeliveryQty += barModel.qty;
                                 detailModel.barcodes.Add(barModel);
                             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index 73516ab..f590bb0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -68,7 +68,7 @@
                     TaskType = TaskTypeEnum.OutEmpty.ObjToInt(),
                     WarehouseId = stockInfo.WarehouseId,
                     PalletType = stockInfo.PalletType
-
+                    
                 };
                 int beforeStatus = locationInfo.LocationStatus;
                 _unitOfWorkManage.BeginTran();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs"
index d17e070..69bc686 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs"
@@ -1,4 +1,5 @@
 锘縰sing Autofac.Core;
+using MailKit.Search;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
@@ -8,15 +9,19 @@
 using System.Threading.Tasks;
 using WIDESEA_BasicService;
 using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.StockEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.Attributes;
 using WIDESEA_Core.BaseController;
+using WIDESEA_DTO.Allocate;
 using WIDESEA_DTO.Inbound;
 using WIDESEA_DTO.Mes;
 using WIDESEA_IBasicService;
 using WIDESEA_IInboundService;
 using WIDESEA_InboundService;
+using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
+using WIDESEA_OutboundService;
 
 namespace WIDESEA_WMSServer.Controllers.Inbound
 {
@@ -35,8 +40,10 @@
         private readonly ILocationInfoService _locationInfoService;
         private readonly IDailySequenceService _dailySequenceService;
         private readonly IMaterialUnitService _materialUnitService;
+        private readonly IOutStockLockInfoService _outStockLockInfoService;
+        private readonly IOutboundOrderDetailService _outboundOrderDetailService;
         private readonly ILogger<InboundOrderController> _logger;
-        public InboundOrderController(IInboundOrderService service, WIDESEA_IBasicService.IErpApiService erpApiService, WIDESEA_IBasicService.IInvokeMESService invokeMESService, IESSApiService eSSApiService, IDailySequenceService dailySequenceService, ILocationInfoService locationInfoService, ILogger<InboundOrderController> logger, IMaterialUnitService materialUnitService, IInboundService inboundService) : base(service)
+        public InboundOrderController(IInboundOrderService service, WIDESEA_IBasicService.IErpApiService erpApiService, WIDESEA_IBasicService.IInvokeMESService invokeMESService, IESSApiService eSSApiService, IDailySequenceService dailySequenceService, ILocationInfoService locationInfoService, ILogger<InboundOrderController> logger, IMaterialUnitService materialUnitService, IInboundService inboundService, IOutStockLockInfoService outStockLockInfoService, IOutboundOrderDetailService outboundOrderDetailService) : base(service)
         {
             this.erpApiService = erpApiService;
             _invokeMESService = invokeMESService;
@@ -46,11 +53,14 @@
             _logger = logger;
             _materialUnitService = materialUnitService;
             _inboundService = inboundService;
+            _outStockLockInfoService = outStockLockInfoService;
+            _outboundOrderDetailService = outboundOrderDetailService;
         }
 
         [HttpPost, Route("Test"), AllowAnonymous, MethodParamsValidate]
         public async Task<WebResponseContent> Test()
         {
+  
 
             // Service.Db.Deleteable<Dt_InboundOrder>().Where(x=>x.UpperOrderNo== "12020251100040").ExecuteCommand();
             //_inboundService.InboundOrderDetailService.Db.Deleteable<Dt_InboundOrderDetail>()

--
Gitblit v1.9.3