From 25be6fbad7853391a52d3a56752cd1c308c2dfd0 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 14 五月 2024 15:40:30 +0800
Subject: [PATCH] 添加AGV任务删除功能

---
 代码管理/WMS/WMS_Client/src/views/dialog/addTask.vue                                           |   57 ++++++++-----
 代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs |   12 +++
 代码管理/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue                     |   33 ++++----
 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs                     |   10 +-
 代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Partial/Idt_agvtaskService.cs           |    3 
 代码管理/WMS/WMS_Client/src/api/http.js                                                        |    2 
 代码管理/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js                 |   14 +++
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs             |   57 ++++++++++++++
 8 files changed, 141 insertions(+), 47 deletions(-)

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 0af90a4..eb0a016 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://127.0.0.1:8098/';
+    axios.defaults.baseURL = 'http://192.168.12.101: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/views/Task/widesea_wms/taskinfo/dt_agvtask.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue"
index 3904ac0..7f4b64e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue"
@@ -22,7 +22,7 @@
     export default defineComponent({
         setup() {
             const table = ref({
-                key: 'ID',
+                key: 'agv_id',
                 footer: "Foots",
                 cnName: 'AGV浠诲姟',
                 name: 'taskinfo/dt_agvtask',
@@ -30,23 +30,24 @@
                 sortName: "ID"
             });
             const editFormFields = ref({"agv_fromaddress":"","agv_toaddress":"","agv_tasktype":"","agv_grades":"","agv_code":""});
-            const editFormOptions = ref([[{
-        title: "NG涓嬫枡浣�",
-        required: false,
-        field: "agv_fromaddress",
-        type: "select",
-        data: [
-          { key: "X01001003", value: "1鍗曞厓NG涓嬫枡浣�" },
-          { key: "X02001003", value: "2鍗曞厓NG涓嬫枡浣�" },
-          { key: "X03001002", value: "3鍗曞厓NG涓嬫枡浣�" }
-        ]
-      },
-    //   {"title":"NG涓嬫枡浣�","field":"agv_fromaddress","type":"text","required":true}
-    ],
+            const editFormOptions = ref([
+    //             [{
+    //     title: "NG涓嬫枡浣�",
+    //     required: false,
+    //     field: "agv_fromaddress",
+    //     type: "select",
+    //     data: [
+    //       { key: "X01001003", value: "1鍗曞厓NG涓嬫枡浣�" },
+    //       { key: "X02001003", value: "2鍗曞厓NG涓嬫枡浣�" },
+    //       { key: "X03001002", value: "3鍗曞厓NG涓嬫枡浣�" }
+    //     ]
+    //   },
+    // //   {"title":"NG涓嬫枡浣�","field":"agv_fromaddress","type":"text","required":true}
+    // ],
             
                             //   [{"title":"缁堢偣鍦板潃","field":"agv_toaddress","type":"text","required":true}],
-                            //   [{"dataKey":"task_grade","data":[],"title":"浠诲姟绛夌骇","required":true,"field":"agv_grade","type":"select"}],
-                            //   [{"dataKey":"agv_tasktypes","data":[],"title":"浠诲姟绫诲瀷","required":true,"field":"agv_tasktype","type":"select"}]
+                              [{"dataKey":"task_grade","data":[],"title":"浠诲姟绛夌骇","required":true,"field":"agv_grade","type":"select"}],
+                              [{"dataKey":"agv_tasktypes","data":[],"title":"浠诲姟绫诲瀷","required":true,"field":"agv_tasktype","type":"select"}]
                             //   [{"dataKey":"agv_code","data":[],"title":"AGV缂栧彿","required":true,"field":"agv_code","type":"select"}]
                             ]);
             const searchFormFields = ref({"agv_tasknum":"","agv_fromaddress":"","agv_toaddress":"","agv_tasktype":[],"agv_taskstate":[],"agv_materielid":"","agv_createtime":"","agv_barcode":"","agv_materbarcode":""});
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/dialog/addTask.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/dialog/addTask.vue"
index 3af9917..ac6d802 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/dialog/addTask.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/dialog/addTask.vue"
@@ -1,6 +1,6 @@
 <template>
     <div>
-        <vol-box :lazy="true" v-model="detialBox" title="鎵嬪姩绉诲簱" :height="350" :width="400" :padding="15">
+        <vol-box :lazy="true" v-model="detialBox" title="NG浠诲姟" :height="350" :width="400" :padding="15">
             <div>
                 <el-form :model="formdata" label-width="120px" :rules="rules" size="mini" ref="ruleFormRef">
                     <!-- <el-form-item label="绫诲瀷">
@@ -10,18 +10,18 @@
                         </el-radio-group>
                     </el-form-item> -->
 
-                    <el-form-item v-if="inType == 'handle'" label="璧峰鍦板潃" prop="from_address">
-                        <el-select v-model="formdata.from_address" clearable filterable placeholder="璇烽�夋嫨璧峰鍦板潃">
-                            <el-option v-for="item in formAddressList" :label="item.key" :value="item.key" />
+                    <el-form-item v-if="inType == 'handle'" label="NG涓嬫枡浣�" prop="from_address">
+                        <el-select v-model="formdata.from_address" clearable filterable placeholder="璇烽�夋嫨NG涓嬫枡浣�">
+                            <el-option v-for="item in formAddressList" :label="item.value" :value="item.key" />
                         </el-select>
                     </el-form-item>
-                    <el-form-item label="鐩殑鍦板潃" prop="to_address">
+                    <!-- <el-form-item label="鐩殑鍦板潃" prop="to_address">
                         <el-select v-model="formdata.to_address" clearable filterable placeholder="璇烽�夋嫨鐩殑鍦板潃">
                             <el-option v-for="item in toAddressList" :label="item.key" :value="item.key" />
                         </el-select>
-                    </el-form-item>
+                    </el-form-item> -->
                     <el-form-item label="">
-                        <el-button type="primary" @click="onSubmit()" size="mini"> 纭绉诲簱</el-button>
+                        <el-button type="primary" @click="onSubmit()" size="mini"> 纭娣诲姞NG浠诲姟</el-button>
                     </el-form-item>
                 </el-form>
             </div>
@@ -35,17 +35,17 @@
 export default {
     components: { "vol-box": VolBox1Vue },
     methods: {},
-    created() {
-        this.http.post("/api/Sys_Dictionary/GetVueDictionary", ["route_began", "route_end"]).then(x => {
-            x.forEach(item => {
-                if (item.dicNo == 'route_end') {
-                    this.toAddressList = item.data;
-                } else if (item.dicNo == 'route_began') {
-                    this.formAddressList = item.data;
-                }
-            })
-        })
-    },
+    // created() {
+    //     this.http.post("/api/Sys_Dictionary/GetVueDictionary", ["route_began", "route_end"]).then(x => {
+    //         x.forEach(item => {
+    //             if (item.dicNo == 'route_end') {
+    //                 this.toAddressList = item.data;
+    //             } else if (item.dicNo == 'route_began') {
+    //                 this.formAddressList = item.data;
+    //             }
+    //         })
+    //     })
+    // },
     data() {
         return {
             detialBox: false,
@@ -59,7 +59,11 @@
                 from_address: "",
                 to_address: ""
             },
-            formAddressList: [],
+            formAddressList: [
+                { key: "X01001003", value: "1鍗曞厓NG涓嬫枡浣�" },
+          { key: "X02001003", value: "2鍗曞厓NG涓嬫枡浣�" },
+          { key: "X03001002", value: "3鍗曞厓NG涓嬫枡浣�" }
+            ],
             toAddressList: []
         };
     },
@@ -68,10 +72,17 @@
             var _this = this;
             this.$refs.ruleFormRef.validate((valid) => {
                 if (valid) {
-                    _this.http.post("/api/ToMes/AddToFloat3", _this.formdata, "姝e湪娣诲姞....").then(x => {
-                        if (!x.status) return _this.$Message.error(x.message);
-                        _this.$Message.success("娣诲姞鎴愬姛!");
-                        _this.refresh();
+                    _this.http.post("/api/dt_agvtask/addNgTask", _this.formdata, "姝e湪娣诲姞....").then(x => {
+                        if (!x.status){
+                            _this.detialBox=false;
+                            _this.formdata.from_address="";
+                             _this.$Message.error(x.message);
+                        }else{
+                            _this.detialBox=false;
+                            _this.formdata.from_address="";
+                            _this.$Message.success("娣诲姞鎴愬姛!");
+                            window.location.reload();
+                        }
                     });
                 }
             })
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 0373480..d3c9566 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"
@@ -6,11 +6,12 @@
 **鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
 *****************************************************************************************/
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import addTask from "@/views/dialog/addTask"
 
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-    gridHeader: '',
+    gridHeader: addTask,
     gridBody: '',
     gridFooter: '',
     //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
@@ -21,6 +22,12 @@
   tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
   buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
   methods: {
+  //   onClick: function () {
+  //     this.add();
+  // }
+  add(){
+    this.$refs.gridHeader.detialBox = true;
+  },
      //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
     onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
         //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
@@ -39,7 +46,7 @@
         this.buttons.forEach(x => {
           if(x.value == 'Add')
           {
-            x.name = 'NG浠诲姟'
+            x.name = 'NG浠诲姟';
           }
         });
         //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
@@ -72,6 +79,9 @@
       // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
     },
     modelOpenAfter(row) {
+      // if(this.currentAction=='Add'){
+      //   this.editFormFields.agv_fromaddress='xxx';
+      // }
       //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
       //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
       //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs"
index e8934a1..f28587f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs"
@@ -33,7 +33,7 @@
         [MaxLength(50)]
         [Column(TypeName = "nvarchar(50)")]
         [Editable(true)]
-        [Required(AllowEmptyStrings = false)]
+        //[Required(AllowEmptyStrings = false)]
         public string agv_tasknum { get; set; }
 
         /// <summary>
@@ -81,7 +81,7 @@
         [MaxLength(20)]
         [Column(TypeName = "nvarchar(20)")]
         [Editable(true)]
-        [Required(AllowEmptyStrings = false)]
+        //[Required(AllowEmptyStrings = false)]
         public string agv_taskstate { get; set; }
 
         /// <summary>
@@ -134,7 +134,7 @@
         [Display(Name = "鍒涘缓鏃堕棿")]
         [Column(TypeName = "datetime")]
         [Editable(true)]
-        [Required(AllowEmptyStrings = false)]
+        //[Required(AllowEmptyStrings = false)]
         public DateTime agv_createtime { get; set; }
 
         /// <summary>
@@ -157,8 +157,8 @@
         ///浠诲姟绫诲瀷
         /// </summary>
         [Display(Name = "浠诲姟绫诲瀷")]
-        [MaxLength(20)]
-        [Column(TypeName = "nvarchar(20)")]
+        [MaxLength(50)]
+        [Column(TypeName = "nvarchar(50)")]
         [Editable(true)]
         //[Required(AllowEmptyStrings = false)]
         public string agv_tasktype { get; set; }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Partial/Idt_agvtaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Partial/Idt_agvtaskService.cs"
index f56bf3e..98efc94 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Partial/Idt_agvtaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Partial/Idt_agvtaskService.cs"
@@ -5,9 +5,12 @@
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_Core.Utilities;
 using System.Linq.Expressions;
+using WIDESEA_Entity.DomainModels.Mes;
+using Microsoft.AspNetCore.Mvc;
 namespace WIDESEA_WMS.IServices
 {
     public partial interface Idt_agvtaskService
     {
+        WebResponseContent addNgTask([FromBody] MesRequestTemp request);
     }
  }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs"
index 8f5044e..fc7bb72 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs"
@@ -26,6 +26,7 @@
 using WIDESEA_Comm.LogInfo;
 using StackExchange.Redis;
 using WIDESEA_Comm;
+using WIDESEA_Entity.DomainModels.Mes;
 
 namespace WIDESEA_WMS.Services
 {
@@ -47,6 +48,62 @@
             //base.Init(dbRepository);
         }
 
+        public WebResponseContent addNgTask(MesRequestTemp requestTemp)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                var fromaddress = requestTemp.from_address;
+                VOLContext context = new VOLContext();
+                Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
+                IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
+                var station = stationinfoRepository.Find(x => x.stationCode == fromaddress).FirstOrDefault();
+                if (_repository.Find(x => x.agv_fromaddress == fromaddress || x.agv_toaddress == fromaddress).Any())
+                    throw new Exception($"璐т綅{fromaddress}宸插瓨鍦ㄤ换鍔★紒");
+                if (station == null) throw new Exception($"鏈壘鍒拌揣浣峽fromaddress}锛�");
+                if (!station.enable) throw new Exception($"璐т綅{fromaddress}鏈惎鐢紒");
+                if (station.quantity < 1) throw new Exception($"璐т綅{fromaddress}鏃犺溅杞紒");
+                var Work = workinfoRepository.Find(x => x.workOrder == station.Number && x.processCode == "17").FirstOrDefault();
+                if (Work == null) throw new Exception($"鏈壘鍒拌揣浣峽fromaddress}鐨勬満鍔犲伐宸ュ崟淇℃伅");
+                dt_agvtask agvtask = new dt_agvtask()
+                {
+                    agv_fromaddress = station.stationCode,
+                    agv_id = Guid.NewGuid(),
+                    agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
+                    agv_grade = 2,
+                    agv_createtime = DateTime.Now,
+                    agv_taskstate = "Queue",
+                    agv_materielid = station.stationType,
+                    agv_qty = station.quantity,
+                    agv_tasktype = "TaskType_OutsourceInbound",
+                    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
+                };
+                _repository.Add(agvtask, true);
+                station.location_state = LocationStateEnum.InBusy.ToString();
+                stationinfoRepository.Update(station, true);
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                content.Message = ex.Message;
+            }
+            return content;
+        }
+        public override WebResponseContent Update(SaveModel saveModel)
+        {
+            WebResponseContent content = new WebResponseContent();
+            var agv_id = saveModel.MainData["agv_id"].ToString();
+            var task = _repository.Find(x => x.agv_id.ToString() == agv_id).FirstOrDefault();
+            if (task.agv_taskstate != AGVTaskStateEnum.Queue.ToString()) return content.Error("褰撳墠浠诲姟涓嶅彲鏇存敼锛�");
+            return base.Update(saveModel);
+        }
         #region 娣诲姞NG浠诲姟
         public override WebResponseContent Add(SaveModel saveDataModel)
         {
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_agvtaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs"
index 34a5e3a..e451e9f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs"
@@ -11,6 +11,8 @@
 using Microsoft.AspNetCore.Http;
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_WMS.IServices;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels.Mes;
 
 namespace WIDESEA_WMS.Controllers
 {
@@ -29,5 +31,15 @@
             _service = service;
             _httpContextAccessor = httpContextAccessor;
         }
+        /// <summary>
+        /// 娣诲姞NG浠诲姟
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost, Route("addNgTask")]
+        public WebResponseContent addNgTask([FromBody] MesRequestTemp request)
+        {
+            return _service.addNgTask(request);
+        }
     }
 }

--
Gitblit v1.9.3