From 2d2d6bf8565f5b89fc9ee054bf6e62f9592f8673 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期一, 23 六月 2025 08:37:37 +0800 Subject: [PATCH] 1 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs | 2 项目代码/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/HandInbound.vue | 86 ++++++++++++++++++++++++++++ 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs | 4 + 项目代码/WCS/WIDESEAWCS_Client/config/buttons.js | 11 +++ 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 46 +++++++++++++++ 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs | 5 + 项目代码/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js | 11 +++ 7 files changed, 160 insertions(+), 5 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/config/buttons.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/config/buttons.js" index 50c4dfd..e8a3296 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/config/buttons.js" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/config/buttons.js" @@ -136,7 +136,16 @@ onClick: function () { this.export(); } -} +}, +{ + name: "鎵� 鍔� 鎼� 杩�", + // icon: 'el-icon-plus', + value: 'HandInbound', + type: 'success', + onClick: function () { + + } +}, ] diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/HandInbound.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/HandInbound.vue" new file mode 100644 index 0000000..fb2c52d --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/HandInbound.vue" @@ -0,0 +1,86 @@ +<template> + <vol-box v-model="show" title="鎵嬪姩鍏ュ簱" :width="900" :height="600"> + <template #content> + <el-form ref="form" :model="form" label-width="90px"> + <el-form-item label="鎼繍鍖哄煙" prop="Area"> + <el-select v-model="form.Area" placeholder="璇烽�夋嫨鎼繍鍖哄煙"> + <el-option label="鍖哄煙涓�" value="1" /> + <el-option label="鍖哄煙浜�" value="2" /> + <el-option label="鍖哄煙涓�" value="3" /> + <el-option label="鍖哄煙鍥�" value="4" /> + </el-select> + </el-form-item> + <el-form-item label="璧风偣"> + <el-input type="text" v-model="form.SourceAddress"></el-input> + </el-form-item> + <el-form-item label="缁堢偣"> + <el-input type="text" v-model="form.TargetAddress"></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:{ + Area:"", + SourceAddress:"", + TargetAddress:"", + }, + show: false, + }; + }, + methods: { + open() { + this.show = true; + }, + submit() { + this.$emit("parentCall", ($vue) => { + if ( + !this.form.TargetAddress || + !this.form.Area || + !this.form.SourceAddress|| + this.form.Area==""|| + this.form.SourceAddress==""|| + this.form.TargetAddress=="" + ) { + this.$message.error("鍙傛暟閿欒"); + return; + } + this.http.post("api/Task/AddTask", this.form, "").then((x) => { + if (!x.status) { + this.$message.error(x.message); + } else { + this.$Message.success("鏂板缓鍏ュ簱浠诲姟"); + // $vue.success("鎴愬姛."); + this.show = false; + this.form=''; + $vue.refresh(); + } + }); + }); + }, + }, + +}; +</script> \ No newline at end of file diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js" index 8a02afb..94357cc 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js" @@ -1,10 +1,11 @@ //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜 import gridBody from './extend/taskExecuteDetail.vue' +import gridHeader from "./extend/HandInbound.vue" let extension = { components: { //鏌ヨ鐣岄潰鎵╁睍缁勪欢 - gridHeader: '', + gridHeader: gridHeader, gridBody: gridBody, gridFooter: '', //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢 @@ -42,6 +43,14 @@ this.$refs.gridBody.open(row); } }); + var btnHandInbound = this.buttons.find(x => x.value == "HandInbound"); + if (btnHandInbound != null) { + btnHandInbound.onClick = () => { + this.$refs.gridHeader.open(); + this.refresh(); + } + + } }, onInited() { //妗嗘灦鍒濆鍖栭厤缃悗 diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" index f29527c..cf91e4f 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" @@ -26,7 +26,7 @@ /// <summary> /// 宸烽亾鍙� /// </summary> - public string RoadWay { get; set; } + public string Area { get; set; } /// <summary> /// 浠诲姟绫诲瀷 diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" index bd99071..0e5f3e7 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" @@ -55,7 +55,9 @@ /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param> /// <returns>杩斿洖澶勭悊缁撴灉</returns> WebResponseContent ReceiveWMSTask([NotNull] List<Dt_Task> taskDTOs); - + + WebResponseContent AddTask(WMSTaskDTO WMSDTO); + /// <summary> /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟 /// </summary> diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" index 66281e3..5021626 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" @@ -25,6 +25,11 @@ { return Service.ReceiveWMSTask(taskDTOs); } + [HttpPost, HttpGet, Route("AddTask"), AllowAnonymous] + public WebResponseContent AddTask([FromBody] WMSTaskDTO WMSDTO) + { + return Service.AddTask(WMSDTO); + } [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")] public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" index 9a3b574..51a7022 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -46,11 +46,15 @@ using WIDESEAWCS_Core.Utilities; using WIDESEAWCS_DTO.Enum; using WIDESEAWCS_DTO.TaskInfo; +using WIDESEAWCS_IBasicInfoRepository; +using WIDESEAWCS_IBasicInfoService; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; +using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.Models; using WIDESEAWCS_QuartzJob.Service; +using WIDESEAWCS_TaskInfoRepository; using static Microsoft.IO.RecyclableMemoryStreamManager; namespace WIDESEAWCS_TaskInfoService @@ -62,6 +66,7 @@ private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository; private readonly ITask_HtyService _task_HtyService; private readonly IMapper _mapper; + private readonly IDt_StationManagerRepository _stationManagerRepository; private Dictionary<string, OrderByType> _taskOrderBy = new() @@ -77,13 +82,14 @@ public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); public List<int> AGVTaskTypes => typeof(AGVTaskTypeEnum).GetEnumIndexList(); - public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService) : base(BaseDal) + public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IDt_StationManagerRepository stationManagerRepository) : base(BaseDal) { _routerService = routerService; _taskExecuteDetailService = taskExecuteDetailService; _taskExecuteDetailRepository = taskExecuteDetailRepository; _task_HtyService = task_HtyService; _mapper = mapper; + _stationManagerRepository = stationManagerRepository; } /// <summary> @@ -117,6 +123,44 @@ return content; } + public WebResponseContent AddTask(WMSTaskDTO WMSDTO) + { + var SourceAddress= _stationManagerRepository.QueryFirst(x=>x.stationCode == WMSDTO.SourceAddress&&x.stationArea==int.Parse( WMSDTO.Area)); + var TargetAddress = _stationManagerRepository.QueryFirst(x=>x.stationCode == WMSDTO.TargetAddress && x.stationArea == int.Parse(WMSDTO.Area)); + if(SourceAddress == null || TargetAddress == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒拌捣鐐规垨缁堢偣绔欏彴淇℃伅,璧风偣:銆恵WMSDTO.SourceAddress}銆�,缁堢偣:銆恵WMSDTO.TargetAddress}銆�"); + } + if (QueryConveyorLineTask(SourceAddress.stationName) != null) + { + return WebResponseContent.Instance.Error($"璧风偣:銆恵WMSDTO.SourceAddress}銆戝瓨鍦ㄤ换鍔�"); ; + } + if (QueryConveyorLineTask(TargetAddress.stationName) != null) + { + return WebResponseContent.Instance.Error($"缁堢偣:銆恵WMSDTO.TargetAddress}銆戝瓨鍦ㄤ换鍔�"); ; + } + Dt_Task taskDTO = new Dt_Task() + { + TaskNum = BaseDal.GetTaskNo().Result, + Grade = 1, + Roadway = SourceAddress.stationArea.ToString(), + SourceAddress = SourceAddress.stationName, + CurrentAddress = SourceAddress.stationName, + TargetAddress = TargetAddress.stationName, + NextAddress = TargetAddress.stationName, + TaskState = (int)AGVTaskStatusEnum.AGVNew, + TaskType = (int)AGVTaskTypeEnum.AGVCarry, + AGVName = SourceAddress.stationArea switch + { + 1 => "AGV01", + 4 => "AGV03", + _ => "AGV02", + } + }; + ReceiveWMSTask(new List<Dt_Task> { taskDTO }); + return WebResponseContent.Instance.OK("浠诲姟娣诲姞鎴愬姛"); + } + /// <summary> /// 鏌ユ壘璇ョ珯鍙版槸鍚︽湁浠诲姟 /// </summary> -- Gitblit v1.9.3