From 2d3d006620bb15a2350c516f050058e5f84c7bf8 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 21 五月 2024 17:03:44 +0800
Subject: [PATCH] 添加人工一键下料功能,人工一键切换托盘功能,优化任务等级

---
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs |   20 ++
 代码管理/WMS/WMS_Client/config/buttons.js                                                          |   44 +++++
 代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs             |    3 
 代码管理/WMS/WMS_Client/dist.zip                                                                   |    0 
 代码管理/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js                         |  243 ++++++++++++++++++++++-------
 代码管理/WMS/WMS_Client/src/api/http.js                                                            |    2 
 代码管理/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js                     |    1 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs                                       |    2 
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs               |  157 ++++++++++++++++++
 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs                                       |    2 
 10 files changed, 400 insertions(+), 74 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js"
index 4f03094..ea491db 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/config/buttons.js"
@@ -80,6 +80,50 @@
     onClick: function () {
         this.Upload();
     }
+}, {
+    name: "涓嬫枡浠诲姟",
+    icon: 'el-icon-plus',
+    value: 'AddTask',
+    class: '',
+     plain:true,
+    type: 'success',
+    // plain:true,
+    onClick: function () {
+        this.addTask();
+    }
+}, {
+    name: "鍙栨秷绂佺敤",
+    icon: 'ios-cog',
+    value: 'EnableBtn',
+    class: '',
+    //  plain:true,
+    type: 'success',
+    // plain:true,
+    onClick: function () {
+        // this.addTask();
+    }
+}
+, {
+    name: "绂佺敤",
+    icon: 'ios-cog',
+    value: 'DisEnableBtn',
+    class: '',
+    //  plain:true,
+    type: 'danger',
+    onClick: function () {
+        // this.addTask();
+    }
+}, {
+    name: "鍒囨崲鎵樼洏",
+    icon: 'el-icon-edit',
+    value: 'Trayswitching',
+    class: '',
+     plain:true,
+    type: 'danger',
+    // plain:true,
+    onClick: function () {
+        // this.addTask();
+    }
 }
     // , {
     //     name: "鏁版嵁缁撴瀯",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/dist.zip" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/dist.zip"
new file mode 100644
index 0000000..5758a68
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/dist.zip"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js"
index eb0a016..0af90a4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/api/http.js"
@@ -12,7 +12,7 @@
 let loadingInstance;
 let loadingStatus = false;
 if (process.env.NODE_ENV == 'development') {
-    axios.defaults.baseURL = 'http://192.168.12.101:8098/';
+    axios.defaults.baseURL = 'http://127.0.0.1:8098/';
 }
 else if (process.env.NODE_ENV == 'debug') {
     axios.defaults.baseURL = 'http://192.168.12.101:8098/';
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js"
index 0f74fbf..100b577 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/extension/widesea_wms/system/dt_stationinfo.js"
@@ -38,6 +38,69 @@
         //     x.icon='el-icon-document'
         //   }
         // });
+        let AddTaskBtn = this.buttons.find(r => r.name == "涓嬫枡浠诲姟");
+        if(null!=AddTaskBtn){
+          AddTaskBtn.onClick = function (){
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨涓嬫枡浣�!");
+            let addkeys = rows.map(x => {
+                return x[this.table.key];
+            });
+            if (!addkeys || addkeys.Length == 0) return this.$error("鏈幏鍙栧埌涓嬫枡浣�!");
+            this.$confirm("鏄惁纭瑕佹坊鍔犱笅鏂欎换鍔★紵","鎻愮ず",{
+                        // iconClass:"el-icon-success",//el-icon-remove鑷畾涔夊浘鏍囨牱寮�
+                        confirmButtonText:"纭",//纭鎸夐挳鏂囧瓧鏇存崲
+                        cancelButtonText:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        // cancelBtn:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        showClose: true,//鏄惁鏄剧ず鍙充笂瑙掑叧闂寜閽�
+                        type: "warning",//鎻愮ず绫诲瀷 success:鎴愬姛/info:淇℃伅/warning:璀﹀憡/error:鎶ラ敊
+            }).then(()=>{
+              let params = {
+                MainData: null,
+                DetailData: null,
+                DelKeys: addkeys
+            }
+            this.http.post("/api/dt_stationinfo/SendAGVTask", params, "姝e湪娣诲姞浠诲姟....").then(x => {
+                if (!x.status) return this.$error(x.message);
+                this.$success(x.message);
+                this.refresh();
+            });
+            })
+
+          }
+        }
+
+        let TrayswitchingBtn = this.buttons.find(r => r.name == "鍒囨崲鎵樼洏");
+        if(null!=TrayswitchingBtn){
+          TrayswitchingBtn.onClick = function (){
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨涓嬫枡浣�!");
+            let addkeys = rows.map(x => {
+                return x[this.table.key];
+            });
+            if (!addkeys || addkeys.Length == 0) return this.$error("鏈幏鍙栧埌涓嬫枡浣�!");
+            this.$confirm("鏄惁纭鍒囨崲鎵樼洏锛�","鎻愮ず",{
+                        // iconClass:"el-icon-success",//el-icon-remove鑷畾涔夊浘鏍囨牱寮�
+                        confirmButtonText:"纭",//纭鎸夐挳鏂囧瓧鏇存崲
+                        cancelButtonText:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        // cancelBtn:"鍙栨秷",//鍙栨秷鎸夐挳鏂囧瓧鏇存崲
+                        showClose: true,//鏄惁鏄剧ず鍙充笂瑙掑叧闂寜閽�
+                        type: "warning",//鎻愮ず绫诲瀷 success:鎴愬姛/info:淇℃伅/warning:璀﹀憡/error:鎶ラ敊
+            }).then(()=>{
+              let params = {
+                MainData: null,
+                DetailData: null,
+                DelKeys: addkeys
+            }
+            this.http.post("/api/dt_stationinfo/Trayswitching", params, "姝e湪鍒囨崲....").then(x => {
+                if (!x.status) return this.$error(x.message);
+                this.$success(x.message);
+                this.refresh();
+            });
+            })
+
+          }
+        }
 
         //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
         // this.boxOptions.labelWidth = 150;
@@ -47,69 +110,129 @@
             row.sort=true;
           }
         })
-        this.buttons.splice(1, 0, {
-          name: "鍙栨秷绂佺敤",
-          icon: 'md-refresh',
-          type: 'primary',
-          onClick: function () {
-              let rows = this.$refs.table.getSelected();
-              if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佸彇娑堢鐢ㄧ殑鏁版嵁");
 
-              this.$confirm('纭瑕佸彇娑堢鐢ㄥ悧?', '璀﹀憡', {
-                  confirmButtonText: '纭畾',
-                  cancelButtonText: '鍙栨秷',
-                  type: 'warning',
-                  center: true
-              }).then(() => {
-                  let data = [];
-                  let parm = {
-                      "data": data,
-                      "type": "1"
-                  }
-                  rows.forEach(t => data.push(t.id))
-                  this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "鍙栨秷绂佺敤涓�...").then(x => {
-                      if (x.status) {
-                          this.$Message.success("鍙栨秷绂佺敤鎴愬姛!");
-                          this.refresh();
-                      } else {
-                          this.$Message.error(x.message);
-                      }
-                  })
-              });
-          }
-      })
+        let EnableBtn = this.buttons.find(r => r.name == "鍙栨秷绂佺敤");
+        if(null!=EnableBtn){
+          EnableBtn.onClick = function (){
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佸彇娑堢鐢ㄧ殑鏁版嵁");
 
-      this.buttons.splice(1, 0, {
-          name: "绂佺敤",
-          icon: 'md-refresh',
-          type: 'danger',
-          onClick: function () {
-              let rows = this.$refs.table.getSelected();
-              if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佺鐢ㄧ殑鏁版嵁");
+            this.$confirm('纭瑕佸彇娑堢鐢ㄥ悧?', '璀﹀憡', {
+                confirmButtonText: '纭畾',
+                cancelButtonText: '鍙栨秷',
+                type: 'warning',
+                center: true
+            }).then(() => {
+                let data = [];
+                let parm = {
+                    "data": data,
+                    "type": "1"
+                }
+                rows.forEach(t => data.push(t.id))
+                this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "鍙栨秷绂佺敤涓�...").then(x => {
+                    if (x.status) {
+                        this.$Message.success("鍙栨秷绂佺敤鎴愬姛!");
+                        this.refresh();
+                    } else {
+                        this.$Message.error(x.message);
+                    }
+                })
+            });
+        }
+        }
 
-              this.$confirm('纭瑕佺鐢ㄥ悧?', '璀﹀憡', {
-                  confirmButtonText: '纭畾',
-                  cancelButtonText: '鍙栨秷',
-                  type: 'warning',
-                  center: true
-              }).then(() => {
-                  let data = [];
-                  let parm = {
-                      "data": data,
-                      "type": "0"
-                  }
-                  rows.forEach(t => data.push(t.id))
-                  this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "閿佸畾涓�...").then(x => {
-                      if (x.status) {
-                          this.$Message.success("绂佺敤鎴愬姛锛�");
-                          this.refresh();
-                      } else {
-                          this.$Message.error(x.message);
-                      }
-                  })
-              });
-          }
-      })
+      //   this.buttons.splice(1, 0, {
+      //     name: "鍙栨秷绂佺敤",
+      //     icon: 'md-refresh',
+      //     type: 'primary',
+      //     onClick: function () {
+      //         let rows = this.$refs.table.getSelected();
+      //         if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佸彇娑堢鐢ㄧ殑鏁版嵁");
+
+      //         this.$confirm('纭瑕佸彇娑堢鐢ㄥ悧?', '璀﹀憡', {
+      //             confirmButtonText: '纭畾',
+      //             cancelButtonText: '鍙栨秷',
+      //             type: 'warning',
+      //             center: true
+      //         }).then(() => {
+      //             let data = [];
+      //             let parm = {
+      //                 "data": data,
+      //                 "type": "1"
+      //             }
+      //             rows.forEach(t => data.push(t.id))
+      //             this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "鍙栨秷绂佺敤涓�...").then(x => {
+      //                 if (x.status) {
+      //                     this.$Message.success("鍙栨秷绂佺敤鎴愬姛!");
+      //                     this.refresh();
+      //                 } else {
+      //                     this.$Message.error(x.message);
+      //                 }
+      //             })
+      //         });
+      //     }
+      // })
+      let DisEnableBtn = this.buttons.find(r => r.name == "绂佺敤");
+        if(null!=DisEnableBtn){
+          DisEnableBtn.onClick = function (){
+            let rows = this.$refs.table.getSelected();
+            if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佺鐢ㄧ殑鏁版嵁");
+
+            this.$confirm('纭瑕佺鐢ㄥ悧?', '璀﹀憡', {
+                confirmButtonText: '纭畾',
+                cancelButtonText: '鍙栨秷',
+                type: 'warning',
+                center: true
+            }).then(() => {
+                let data = [];
+                let parm = {
+                    "data": data,
+                    "type": "0"
+                }
+                rows.forEach(t => data.push(t.id))
+                this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "閿佸畾涓�...").then(x => {
+                    if (x.status) {
+                        this.$Message.success("绂佺敤鎴愬姛锛�");
+                        this.refresh();
+                    } else {
+                        this.$Message.error(x.message);
+                    }
+                })
+            });
+        }
+        }
+
+      // this.buttons.splice(1, 0, {
+      //     name: "绂佺敤",
+      //     icon: 'md-refresh',
+      //     type: 'danger',
+      //     onClick: function () {
+      //         let rows = this.$refs.table.getSelected();
+      //         if (rows.length == 0) return this.$error("璇烽�夋嫨瑕佺鐢ㄧ殑鏁版嵁");
+
+      //         this.$confirm('纭瑕佺鐢ㄥ悧?', '璀﹀憡', {
+      //             confirmButtonText: '纭畾',
+      //             cancelButtonText: '鍙栨秷',
+      //             type: 'warning',
+      //             center: true
+      //         }).then(() => {
+      //             let data = [];
+      //             let parm = {
+      //                 "data": data,
+      //                 "type": "0"
+      //             }
+      //             rows.forEach(t => data.push(t.id))
+      //             this.http.post("/api/dt_stationinfo/SetStationEnable", parm, "閿佸畾涓�...").then(x => {
+      //                 if (x.status) {
+      //                     this.$Message.success("绂佺敤鎴愬姛锛�");
+      //                     this.refresh();
+      //                 } else {
+      //                     this.$Message.error(x.message);
+      //                 }
+      //             })
+      //         });
+      //     }
+      // })
       //   this.buttons.splice(1, 0, {
       //     name: "绉诲簱",
       //     icon: 'el-icon-document',
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js"
index d3c9566..b1e61fa 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js"
@@ -27,6 +27,7 @@
   // }
   add(){
     this.$refs.gridHeader.detialBox = true;
+    
   },
      //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
     onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs"
index 613f832..b99f78e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs"
@@ -10,7 +10,8 @@
     public partial interface Idt_stationinfoService
     {
         WebResponseContent SetStationEnable(object parm);
-        WebResponseContent SendAGVTask(object parm);
+        WebResponseContent SendAGVTask(SaveModel saveModel);
         WebResponseContent dt_stationinfolist();
+        WebResponseContent Trayswitching(SaveModel saveModel);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
index a9c5dbf..6230dc3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs"
@@ -25,6 +25,9 @@
 using static System.Collections.Specialized.BitVector32;
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_WMS.Repositories;
+using WIDESEA_Comm;
+using WIDESEA_Comm.TaskNo;
+using WIDESEA_Common;
 
 namespace WIDESEA_WMS.Services
 {
@@ -97,17 +100,159 @@
             }
             return webResponse;
         }
-
-        public WebResponseContent SendAGVTask(object json)
+        /// <summary>
+        /// 鍒囨崲鎵樼洏
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public WebResponseContent Trayswitching(SaveModel saveModel)
         {
             WebResponseContent webResponse = new WebResponseContent();
-            try
+            VOLContext context = new VOLContext();
+            Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
+            IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
+            string completor = UserContext.Current.UserName;
+            foreach (var Key in saveModel.DelKeys)
             {
+                try
+                {
+                    var station = repository.Find(x => x.id.ToString() == Key.ToString()).FirstOrDefault();
+                    if (!station.stationCode.Contains("X")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�");
+                    if (!station.enable) throw new Exception($"{station.stationCode}鏈惎鐢紒");
+                    if (station.location_state == LocationStateEnum.Abnormal.ToString()) throw new Exception($"{station.stationCode}鐘舵�佸紓甯革紒");
+                    if (station.location_state == LocationStateEnum.Empty.ToString()) throw new Exception($"{station.stationCode}鐘舵�佷负绌猴紒");
+                    if (station.remark == "妗佹灦涓嬫枡") throw new Exception($"{station.stationCode}妗佹灦姝e湪涓嬫枡锛�");
+                    if (agvtaskRepository.Find(x => x.agv_toaddress == station.stationCode).Any()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�");
+                    
+                    if (!agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any())
+                    {
+                        #region 涓虹┖鎵樺苟涓旀暟閲忎负0,鍒涘缓鍙栫┖鎵樹换鍔�
+                        if (station.tray_status == TrayStateEnum.EmptyTray.ToString() && station.quantity == 0)
+                        {
+                            dt_agvtask agvtask = new dt_agvtask()
+                            {
+                                agv_fromaddress = station.stationCode,
+                                agv_id = Guid.NewGuid(),
+                                agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+                                agv_grade = 1,
+                                agv_createtime = DateTime.Now,
+                                agv_taskstate = AGVTaskStateEnum.Queue.ToString(),
+                                agv_qty = 1,
+                                StarQuantity = 0,
+                                EndQuantity = 0,//EmptyStation.quantity,
+                                agv_tasktype = AGVTaskTypeEnum.TaskType_EmptyPallet.ToString(),
+                                agv_toaddress = "",
+                                agv_userid = UserContext.Current.UserName,
+                                agv_TrayStatus = station.tray_status,
+                                agv_Traytype = station.tray_type
+                            };
+                            agvtaskRepository.Add(agvtask, true);
 
+                            station.location_state = LocationStateEnum.Busy.ToString();
+                        }
+                        #endregion
+
+                        #region 鍒涘缓鍏ュ簱浠诲姟
+                        else if (station.location_state == LocationStateEnum.Stroge.ToString() && station.quantity > 0)
+                        {
+                            var Work = workinfoRepository.Find(x => x.workOrder == station.Number && x.processCode == "17").FirstOrDefault();
+                            if (Work == null) throw new Exception($"鏈壘鍒拌揣浣峽station.stationCode}鐨勬満鍔犲伐宸ュ崟淇℃伅锛�");
+                            dt_agvtask agvtask = new dt_agvtask()
+                            {
+                                agv_fromaddress = station.stationCode,
+                                agv_id = Guid.NewGuid(),
+                                agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+                                agv_grade = 1,
+                                agv_createtime = DateTime.Now,
+                                agv_taskstate = AGVTaskStateEnum.Queue.ToString(),
+                                agv_materielid = station.stationType,
+                                agv_qty = station.quantity,
+                                agv_tasktype = station.stationCode.Contains("3") ? AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString() : AGVTaskTypeEnum.TaskType_Inbound.ToString(),
+                                agv_toaddress = "",
+                                agv_userid = UserContext.Current.UserName,
+                                bindSN = station.bindSN,
+                                agv_worktype = Convert.ToInt32(Work.processCode),
+                                agv_materbarcode = Work.materialCode,
+                                agv_Traytype = station.tray_type,
+                                jobID = station.Number,
+                                agv_TrayStatus = station.tray_status
+                            };
+                            agvtaskRepository.Add(agvtask, true);
+
+                            station.location_state = LocationStateEnum.InBusy.ToString();
+                        }
+                        #endregion
+                    }
+
+                    station.tray_type = station.tray_type == TrayTypeEnum.SmallTray.ToString() ? TrayTypeEnum.LargeTray.ToString() : TrayTypeEnum.SmallTray.ToString();
+                    repository.Update(station, x => new { x.location_state, x.tray_type }, true);
+
+                    webResponse.OK(webResponse.Message += $"{station.stationCode}鍒囨崲鎴愬姛!");
+                }
+                catch (Exception ex)
+                {
+                    webResponse.Error(webResponse.Message += ex.Message);
+                }
             }
-            catch (Exception ex)
+            return webResponse;
+        }
+        /// <summary>
+        /// 涓嬫枡浠诲姟
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
+        public WebResponseContent SendAGVTask(SaveModel saveModel)
+        {
+            WebResponseContent webResponse = new WebResponseContent();
+            VOLContext context = new VOLContext();
+            Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context);
+            IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
+            string completor = UserContext.Current.UserName;
+            foreach (var Key in saveModel.DelKeys)
             {
-
+                try
+                {
+                    var station = repository.Find(x => x.id.ToString() == Key.ToString()).FirstOrDefault();
+                    if (!station.stationCode.Contains("X")) throw new Exception($"鏃爗station.stationCode}浣跨敤鏉冮檺锛�");
+                    if (!station.enable) throw new Exception($"{station.stationCode}鏈惎鐢紒");
+                    if (station.location_state == LocationStateEnum.Abnormal.ToString()) throw new Exception($"{station.stationCode}鐘舵�佸紓甯革紒");
+                    if (station.location_state == LocationStateEnum.Empty.ToString()) throw new Exception($"{station.stationCode}鐘舵�佷负绌猴紒");
+                    if (station.tray_status == TrayStateEnum.EmptyTray.ToString()) throw new Exception($"{station.stationCode}涓虹┖鎵樼洏锛�");
+                    if (station.quantity < 1) throw new Exception($"{station.stationCode}鏁伴噺灏戜簬1锛�");
+                    if (station.remark == "妗佹灦涓嬫枡") throw new Exception($"{station.stationCode}妗佹灦姝e湪涓嬫枡锛�");
+                    //if (station.location_state.Contains("Busy")) throw new Exception($"{station.stationCode}鍗犵敤锛�");
+                    if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_fromaddress == station.stationCode).Any()) throw new Exception($"{station.stationCode}瀛樺湪浠诲姟锛�");
+                    var Work = workinfoRepository.Find(x => x.workOrder == station.Number && x.processCode == "17").FirstOrDefault();
+                    if (Work == null) throw new Exception($"鏈壘鍒拌揣浣峽station.stationCode}鐨勬満鍔犲伐宸ュ崟淇℃伅锛�");
+                    dt_agvtask agvtask = new dt_agvtask()
+                    {
+                        agv_fromaddress = station.stationCode,
+                        agv_id = Guid.NewGuid(),
+                        agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+                        agv_grade = 1,
+                        agv_createtime = DateTime.Now,
+                        agv_taskstate = AGVTaskStateEnum.Queue.ToString(),
+                        agv_materielid = station.stationType,
+                        agv_qty = station.quantity,
+                        agv_tasktype = station.stationCode.Contains("3") ? AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString() : AGVTaskTypeEnum.TaskType_Inbound.ToString(),
+                        agv_toaddress = "",
+                        agv_userid = UserContext.Current.UserName,
+                        bindSN = station.bindSN,
+                        agv_worktype = Convert.ToInt32(Work.processCode),
+                        agv_materbarcode = Work.materialCode,
+                        agv_Traytype = station.tray_type,
+                        jobID = station.Number,
+                        agv_TrayStatus = station.tray_status
+                    };
+                    agvtaskRepository.Add(agvtask, true);
+                    station.location_state = LocationStateEnum.InBusy.ToString();
+                    repository.Update(station, x => new { x.location_state }, true);
+                    webResponse.OK(webResponse.Message += $"{station.stationCode}浠诲姟娣诲姞鎴愬姛!");
+                }
+                catch (Exception ex)
+                {
+                    webResponse.Error(webResponse.Message += ex.Message);
+                }
             }
             return webResponse;
         }
@@ -180,7 +325,7 @@
             WebResponseContent content = new WebResponseContent();
             VOLContext volContext = new VOLContext();
             Idt_stationinfoRepository dsta = new dt_stationinfoRepository(volContext);
-            string[] stationCodes = { "A","S", "X", "W", "DD","B", "C", "D01"};
+            string[] stationCodes = { "A", "S", "X", "W", "DD", "B", "C", "D01" };
             List<Tuple<List<dt_stationinfo>, int>> responseData = new List<Tuple<List<dt_stationinfo>, int>>();
             foreach (string code in stationCodes)
             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs"
index 933f469..60a8b53 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs"
@@ -90,7 +90,7 @@
                         agv_fromaddress = station.stationCode,
                         agv_id = Guid.NewGuid(),
                         agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
-                        agv_grade = 1,
+                        agv_grade = 0,
                         agv_createtime = DateTime.Now,
                         agv_taskstate = "Queue",
                         agv_materielid = station.stationType,
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs"
index b40fa60..65dd109 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs"
@@ -65,7 +65,7 @@
                     agv_fromaddress = station1.stationCode,
                     agv_id = Guid.NewGuid(),
                     agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
-                    agv_grade = 1,
+                    agv_grade = 0,
                     agv_createtime = DateTime.Now,
                     agv_taskstate = "Create",
                     agv_materielid = station1.stationType,
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs"
index 826b2a9..92f4799 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs"
@@ -13,6 +13,7 @@
 using WIDESEA_WMS.IServices;
 using WIDESEA_Core.Utilities;
 using WIDESEA_WMS.Services;
+using Microsoft.AspNetCore.Authorization;
 
 namespace WIDESEA_WMS.Controllers
 {
@@ -43,14 +44,25 @@
         }
 
         /// <summary>
-        /// 涓嬪彂NG浠诲姟
+        /// 涓嬫枡浠诲姟
         /// </summary>
         /// <param name="parm"></param>
         /// <returns></returns>
-        [HttpPost, Route("SendAGVTask")]
-        public WebResponseContent SendAGVTask([FromBody] object parm)
+        [HttpPost, Authorize, Route("SendAGVTask"),AllowAnonymous]
+        public WebResponseContent SendAGVTask([FromBody] SaveModel saveModel)
         {
-            return dt_stationinfoService.Instance.SendAGVTask(parm);
+            return dt_stationinfoService.Instance.SendAGVTask(saveModel);
+        }
+
+        /// <summary>
+        /// 鍒囨崲鎵樼洏
+        /// </summary>
+        /// <param name="parm"></param>
+        /// <returns></returns>
+        [HttpPost, Authorize, Route("Trayswitching"), AllowAnonymous]
+        public WebResponseContent Trayswitching([FromBody] SaveModel saveModel)
+        {
+            return dt_stationinfoService.Instance.Trayswitching(saveModel);
         }
 
         /// <summary>

--
Gitblit v1.9.3