分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-05-27 4c176e55bf38acd7408fadfc7dab90591dbf2bd0
添加任务暂停,恢复任务功能
已修改8个文件
183 ■■■■■ 文件已修改
代码管理/WMS/WMS_Client/config/buttons.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskStateEnum.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Idt_agvtaskService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WMS/WMS_Client/config/buttons.js
@@ -124,6 +124,28 @@
    onClick: function () {
        // this.addTask();
    }
}, {
    name: "任务暂停",
    icon: 'ios-cog',
    value: 'PauseBtn',
    class: '',
     plain:true,
    type: 'danger',
    // plain:true,
    onClick: function () {
        // this.addTask();
    }
}, {
    name: "任务恢复",
    icon: 'ios-cog',
    value: 'ContinueBtn',
    class: '',
     plain:true,
    type: 'success',
    // plain:true,
    onClick: function () {
        // this.addTask();
    }
}
    // , {
    //     name: "数据结构",
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/extension/widesea_wms/taskinfo/dt_agvtask.js
@@ -44,6 +44,70 @@
        //    name:"添加任务"
        // })
        let PauseBtn = this.buttons.find(r => r.name == "任务暂停");
        if(null!=PauseBtn){
          PauseBtn.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_agvtask/PauseTask", params, "正在暂停....").then(x => {
                if (!x.status) return this.$error(x.message);
                this.$success(x.message);
                this.refresh();
            });
            })
          }
        }
        let ContinueBtn = this.buttons.find(r => r.name == "任务恢复");
        if(null!=ContinueBtn){
          ContinueBtn.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_agvtask/ContinueTask", params, "正在恢复....").then(x => {
                if (!x.status) return this.$error(x.message);
                this.$success(x.message);
                this.refresh();
            });
            })
          }
        }
        this.buttons.forEach(x => {
          if(x.value == 'Add')
          {
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskStateEnum.cs
@@ -70,5 +70,9 @@
        /// é˜Ÿåˆ—中
        /// </summary>
        Queue,
        /// <summary>
        /// æš‚停
        /// </summary>
        Pause
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs
@@ -9,6 +9,7 @@
using WIDESEA_Common;
using WIDESEA_Core.EFDbContext;
using WIDESEA_Entity.ToAGV;
using WIDESEA_WCS.JobsPart.Common;
using WIDESEA_WMS.IRepositories;
using WIDESEA_WMS.Repositories;
@@ -25,12 +26,14 @@
            {
                VOLContext Context = new VOLContext();
                Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(Context);
                Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
                RequestFromTask requestFromTask = new RequestFromTask();
                var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && !x.agv_fromaddress.Contains("W") && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList();
                foreach (var agv_task in agv_tasks)
                {
                    try
                    {
                        EmptyTray.GetEmptyTrayStation(stationinfoRepository, agv_task);
                        requestFromTask.TASK_NO = agv_task.agv_tasknum;
                        requestFromTask.FROM_POSITION = agv_task.agv_fromaddress;
                        requestFromTask.Material = agv_task.agv_materielid;
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs
@@ -91,7 +91,7 @@
                        agv_taskstate = "Create",
                        agv_qty = EmptyStation.quantity <= quantity ? EmptyStation.quantity : quantity,
                        //agv_qty = EmptyStation.quantity - toEmptyStation.quantity,
                        StarQuantity = EmptyStation.quantity <= quantity ? 0 : toEmptyStation.quantity,
                        StarQuantity = EmptyStation.quantity <= quantity ? 0 : EmptyStation.quantity - quantity,
                        EndQuantity = toEmptyStation.quantity,
                        agv_tasktype = "TaskType_EmptyPallet",
                        agv_toaddress = toEmptyStation.stationCode,
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/IServices/Taskinfo/Idt_agvtaskService.cs
@@ -2,11 +2,14 @@
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 */
using WIDESEA_Core.BaseProvider;
using WIDESEA_Core.Utilities;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WMS.IServices
{
    public partial interface Idt_agvtaskService : IService<dt_agvtask>
    {
        WebResponseContent ContinueTask(SaveModel saveModel);
        WebResponseContent PauseTask(SaveModel saveModel);
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs
@@ -30,6 +30,7 @@
using WIDESEA_WMS.Common;
using System.Reflection.Emit;
using System.Threading.Tasks;
using System.Net;
namespace WIDESEA_WMS.Services
{
@@ -50,6 +51,62 @@
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
        /// <summary>
        /// ä»»åŠ¡æš‚åœ
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public WebResponseContent PauseTask(SaveModel saveModel)
        {
            WebResponseContent response = new WebResponseContent().OK();
            foreach (var Key in saveModel.DelKeys)
            {
                try
                {
                    var task = repository.Find(x => x.agv_id.ToString() == Key.ToString()).FirstOrDefault();
                    if (task.agv_taskstate == AGVTaskStateEnum.Queue.ToString())
                    {
                        task.agv_taskstate = AGVTaskStateEnum.Pause.ToString();
                        repository.Update(task, x => new { x.agv_taskstate }, true);
                        response.OK(response.Message += $"{task.agv_tasknum}暂停成功!");
                    }
                }
                catch (Exception ex)
                {
                    response.Error(response.Message += ex.Message);
                }
            }
            return response;
        }
        /// <summary>
        /// ä»»åŠ¡ç»§ç»­
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public WebResponseContent ContinueTask(SaveModel saveModel)
        {
            WebResponseContent response = new WebResponseContent().OK();
            foreach (var Key in saveModel.DelKeys)
            {
                try
                {
                    var task = repository.Find(x => x.agv_id.ToString() == Key.ToString()).FirstOrDefault();
                    if (task.agv_taskstate == AGVTaskStateEnum.Pause.ToString())
                    {
                        task.agv_taskstate = AGVTaskStateEnum.Queue.ToString();
                        repository.Update(task, x => new { x.agv_taskstate }, true);
                        response.OK(response.Message += $"{task.agv_tasknum}恢复成功!");
                    }
                }
                catch (Exception ex)
                {
                    response.Error(response.Message += ex.Message);
                }
            }
            return response;
        }
        public override WebResponseContent Del(object[] keys, bool delList = true)
        {
            #region æ‰¹é‡ä¿®æ”¹è´§ä½çŠ¶æ€
@@ -66,7 +123,7 @@
            //stationinfoRepository.UpdateRange(stations, x => new { x.location_state }, true); 
            #endregion
            VOLContext volContext = new VOLContext();
            Idt_agvtask_htyRepository agvtask_HtyRepository=new dt_agvtask_htyRepository(volContext);
            Idt_agvtask_htyRepository agvtask_HtyRepository = new dt_agvtask_htyRepository(volContext);
            var agvtasks = repository.Find(x => keys.Contains(x.agv_id)).ToList();
            List<dt_agvtask_hty> dt_Agvtask_Hties = new List<dt_agvtask_hty>();
            foreach (var task in agvtasks)
@@ -103,7 +160,7 @@
                };
                dt_Agvtask_Hties.Add(agvtask_Hty);
            }
            agvtask_HtyRepository.AddRange(dt_Agvtask_Hties,true);
            agvtask_HtyRepository.AddRange(dt_Agvtask_Hties, true);
            return base.Del(keys, delList);
        }
        public WebResponseContent addNgTask(MesRequestTemp requestTemp)
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_agvtaskController.cs
@@ -13,6 +13,8 @@
using WIDESEA_WMS.IServices;
using WIDESEA_Core.Utilities;
using WIDESEA_Entity.DomainModels.Mes;
using WIDESEA_WMS.Services;
using Microsoft.AspNetCore.Authorization;
namespace WIDESEA_WMS.Controllers
{
@@ -41,5 +43,27 @@
        {
            return _service.addNgTask(request);
        }
        /// <summary>
        /// æš‚停任务
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        [HttpPost, Authorize, Route("PauseTask"), AllowAnonymous]
        public WebResponseContent PauseTask([FromBody] SaveModel saveModel)
        {
            return dt_agvtaskService.Instance.PauseTask(saveModel);
        }
        /// <summary>
        /// ç»§ç»­ä»»åŠ¡
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        [HttpPost, Authorize, Route("ContinueTask"), AllowAnonymous]
        public WebResponseContent ContinueTask([FromBody] SaveModel saveModel)
        {
            return dt_agvtaskService.Instance.ContinueTask(saveModel);
        }
    }
}