From c38154df95a2c2fa1bd32c45f6be9c0d98e37440 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 29 四月 2025 10:52:14 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs                   |   13 ++
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderQuantityView.vue                    |  144 ++++++++++++++++++++++++++++
 代码管理/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue                                   |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs                                      |    7 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs |    6 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs                   |    5 +
 代码管理/WMS/WIDESEA_WMSClient/config/buttons.js                                                      |    3 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs                 |    2 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js                                |   19 +++
 代码管理/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js                                         |   35 ++++--
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                              |   22 ++++
 11 files changed, 240 insertions(+), 18 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index d7f1fad..7e56cfb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -96,5 +96,10 @@
         //        return WebResponseContent.Instance.Error(ex.Message);
         //    }
         //}
+        [HttpPost, HttpGet, Route("RecWMSTaskCompleted"), AllowAnonymous]
+        public WebResponseContent RecWMSTaskCompleted(int taskNum)
+        {
+            return Service.RecWMSTaskCompleted(taskNum);
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index a569c8a..5877ad4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -907,5 +907,27 @@
         {
             return BaseDal.QueryFirst(x => x.PalletCode == PalletCode && x.SourceAddress == locationCode && (x.TaskState == (int)TaskStatusEnum.SC_Execute || x.TaskState == (int)TaskStatusEnum.SC_Executing));
         }
+        /// <summary>
+        /// 鎺ュ彈WMS鎵嬪姩瀹屾垚浠诲姟
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+        public WebResponseContent RecWMSTaskCompleted(int taskNum)
+        {
+            try
+            {
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                if (task != null)
+                {
+                    task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+                    BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.浜哄伐瀹屾垚);
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
index ce74695..5950582 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
@@ -93,9 +93,10 @@
     }
 },
 {
-    name: "鎵� 鍔� 瀹� 鎴�",
+    name: "浠� 鍔� 鎵� 鍔� 瀹� 鎴�",
     icon: '',
     class: '',
+    type: 'success',
     value: 'TaskHandCompleted',
     onClick: function () {
     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderQuantityView.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderQuantityView.vue"
new file mode 100644
index 0000000..351c0ee
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetOrderQuantityView.vue"
@@ -0,0 +1,144 @@
+<template>
+    <vol-box
+      :lazy="true"
+      v-model="model"
+      title="閫夋嫨閲囪喘鍗曟渶澶ф暟閲�"
+      :width="280"
+      :padding="0"
+    >
+      <div>
+        <div>
+          <!-- 鎼滅储閰嶇疆 -->
+          <div class="search-form">
+            <label>閲囪喘鍗曟暟閲忥細</label>
+            <el-input style="width: 160px" v-model="MaterialCode"></el-input>
+          </div>
+          <el-table
+            ref="singleTable"
+            :data="filteredData"
+            style="width: 100%; height: 100%"
+            highlight-current-row
+            height="500px"
+            @selection-change="handleSelectionChange"
+          >
+            >
+            <el-table-column type="selection" width="55"> </el-table-column>
+            <el-table-column
+              v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
+              :key="index"
+              :prop="item.prop"
+              :label="item.title"
+              align="center"
+            >
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <template #footer>
+        <div><el-button type="primary" @click="onSelect">纭</el-button></div>
+      </template>
+    </vol-box>
+  </template>
+  <script>
+  import VolBox from "@/components/basic/VolBox.vue";
+  
+  /******娉ㄦ剰锛氬鏋滃嚭鐜版彁绀烘病鏈夋潈闄愮殑闂锛岃鍚庡彴寮�鍙戞枃妗d笂鐨勩�愰噸鍐欏悗鍙版潈闄愩��*****/
+  
+  //杩欓噷浣跨敤鐨剉ue2璇硶锛屼篃鍙互鍐欐垚vue3璇硶
+  export default {
+    components: {
+      "vol-box": VolBox,
+    },
+    methods: {},
+    data() {
+      return {
+        model: false, //寮瑰嚭妗�
+        wareId: null,
+        showDetialBox: false,
+        MaterialCode:null,
+        selection:null,
+        tableData: [],
+        filteredData: [],
+        tableColumns: [
+          {
+            prop: "quantity",
+            title: "閲囪喘鍗曟暟閲�",
+            type: "string",
+          },
+        ],
+      };
+    },
+    watch: {
+      MaterialCode(newVal) {
+        this.filterLocalData(newVal);
+      }
+    },
+    methods: {
+      open(val) {
+        //鎵撳紑涓昏〃閫夋嫨鏁版嵁
+        this.model = true;
+        this.wareId=val;
+        this.getData();
+      },
+      filterLocalData(code) {
+        if (code) {
+          this.filteredData = this.tableData.filter((item) => {
+              return item.quantity.includes(code);
+          });
+          console.log(this.filteredData.length);
+          console.log(this.tableData.length);
+        } else {
+          this.filteredData = [...this.tableData]; // 閲嶇疆涓哄畬鏁存暟鎹�
+        }
+      },
+      handleSelectionChange(val) {
+          this.selection = val;
+          if (this.selection.length > 1) {
+              this.$message.error("浠呴�夋嫨涓�鏉℃暟鎹�");
+              // 娓呯┖閫変腑鐨勭涓�鏉℃暟鎹�
+              this.$refs.singleTable.clearSelection();
+          }
+          console.log(this.selection);
+      },
+      getData() {
+        this.http
+          .post(
+            "/api/PurchaseOrderDetail/GetOrderQuantity?purchaseOrderNo="  + this.wareId,
+            null,
+            "鏌ヨ涓�"
+          )
+          .then((x) => {
+            this.tableData=x.data.map((i) => ({
+              "quantity":i
+            }))
+            this.filteredData=x.data.map((i) => ({
+              "quantity":i
+            }))
+          });
+      },
+      onSelect() {
+        if (!this.selection) {
+          return this.$message.error("璇烽�夋嫨鏁版嵁");
+        }
+        this.$emit("parentCall", ($parent) => {
+          //濡傦細鍥炲啓缂栬緫琛ㄥ崟鏁版嵁
+          $parent.editFormFields.quantity = this.selection[0].quantity;
+          this.model = false;
+        });
+        this.MaterialCode = null;
+        this.tableData = [];
+        this.filteredData = [];
+      },
+    },
+  };
+  </script>
+  <style lang="less" scoped>
+  .search-form {
+    display: flex;
+    padding: 10px;
+    line-height: 34px;
+    button {
+      margin-left: 10px;
+    }
+  }
+  </style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js"
index c111053..516fc1d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/materielCodeInfo.js"
@@ -2,6 +2,7 @@
 import gridBody from './extend/materielcodeprintView.vue'
 import modelHeader from './extend/materielcodeSelectView.vue'
 import modelBody from './extend/purchaseOrderNoSelectView.vue'
+import modelFooter from './extend/GetOrderQuantityView.vue'
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
@@ -11,7 +12,7 @@
     //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
     modelHeader: modelHeader,
     modelBody: modelBody,
-    modelFooter: ''
+    modelFooter: modelFooter
   },
   tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
   buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
@@ -70,6 +71,22 @@
             }
           });
         });
+        this.editFormOptions.forEach((option) => {
+          option.forEach((item) => {
+            if (item.field == 'quantity') {
+              //鍒濆鍖栧脊鍑烘閫夋嫨鍣ㄩ厤缃�
+              item.extra = {
+                icon: 'el-icon-zoom-out', //鏄剧ず鍥炬爣
+                text: '閲囪喘鍗曟渶澶ф暟閲�', //鏄剧ず鏂囨湰
+                style: 'color: #3a8ee6;font-size: 13px;cursor: pointer;',
+                //瑙﹀彂浜嬩欢
+                click: (item) => {
+                  this.$refs.modelFooter.open(this.editFormFields.purchaseOrderNo);
+                }
+              };
+            }
+          });
+        });
         // warehouseIdOption.onChange = (val, option) => {
         //   this.editFormFields.materielCode = "";
         //   materielCodeOption.data = [];
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js"
index 4e7fe7d..50ec494 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js"
@@ -39,20 +39,27 @@
       let TaskHandCompletedBtn = this.buttons.find(x => x.value == 'TaskHandCompleted');
       if (TaskHandCompletedBtn) {
         TaskHandCompletedBtn.onClick = function () {
-          let rows = this.$refs.table.getSelected();
-          if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
-          if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
-          var param = rows[0].taskNum;
-          this.http
-            .post("api/Task/TaskCompleted?taskNum="+param, "鏁版嵁澶勭悊涓�...")
-            .then((x) => {
-              if (x.status) {
-                this.$Message.success('浠诲姟鎵嬪姩瀹屾垚');
-                this.refresh();
-              } else {
-                return this.$error(x.message);
-              }
-            });
+          this.$confirm("鏄惁纭瀹屾垚浠诲姟","鎵嬪姩浠诲姟瀹屾垚璀﹀憡",{
+              confirmButtonText: "纭畾",
+              cancelButtonText: "鍙栨秷",
+              type: "warning",
+              center: true,
+              }).then(() => {
+                let rows = this.$refs.table.getSelected();
+                if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+                if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
+                var param = rows[0].taskNum;
+                this.http
+                .post("api/Task/TaskCompleted?taskNum="+param, "鏁版嵁澶勭悊涓�...")
+                .then((x) => {
+                    if (x.status) {
+                    this.$Message.success('浠诲姟鎵嬪姩瀹屾垚');
+                    this.refresh();
+                  } else {
+                    return this.$error(x.message);
+                  }
+                });
+              });
         }
       }
       },
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue"
index 38cd25d..528ef98 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue"
@@ -71,7 +71,7 @@
         {
           title: "鏁伴噺",
           field: "quantity",
-          required: true,
+          type:"int"
         },
       ],
       [
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs"
index 462a257..fc0fe80 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs"
@@ -56,6 +56,11 @@
         /// 搴撳瓨鏉垮嚭搴�
         /// </summary>
         [Description("搴撳瓨鏉垮嚭搴�")]
-        WMS_MES_ProductOutBound
+        WMS_MES_ProductOutBound,
+        /// <summary>
+        /// 鍥炶皟WCS浠诲姟瀹屾垚
+        /// </summary>
+        [Description("鍥炶皟WCS浠诲姟瀹屾垚")]
+        FeedBackWCSTaskCompleted
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs"
index d56094b..6595181 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IPurchaseOrderDetailService.cs"
@@ -14,5 +14,7 @@
     {
         WebResponseContent GetPurchaseOrderDetailMaterielCode(int warehouseId);
         WebResponseContent GetPurchaseOrderNos(string materielCode);
+
+        WebResponseContent GetOrderQuantity(string purchaseOrderNo);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs"
index bf6d65c..b0a6a70 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs"
@@ -50,5 +50,18 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+        public WebResponseContent GetOrderQuantity(string purchaseOrderNo)
+        {
+            try
+            {
+                List<Dt_PurchaseOrder> purchaseOrders = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == purchaseOrderNo).ToList();
+                List<float> orderQuantity = purchaseOrders.Select(x => x.OrderQuantity).ToList();
+                return WebResponseContent.Instance.OK(data: orderQuantity);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs"
index 2a4cb19..2402aa9 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/PurchaseOrderDetailController.cs"
@@ -28,5 +28,11 @@
         {
             return Service.GetPurchaseOrderNos(materielCode);
         }
+
+        [HttpPost, HttpGet, Route("GetOrderQuantity"), AllowAnonymous]
+        public WebResponseContent GetOrderQuantity(string purchaseOrderNo)
+        {
+            return Service.GetOrderQuantity(purchaseOrderNo);
+        }
     }
 }

--
Gitblit v1.9.3