From f43b7df8400f4fcffc9f19dca0888d61e2b33d5f Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 12 三月 2025 18:41:52 +0800
Subject: [PATCH] WMS系统添加PDA权限,PDA程序

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs |  164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 164 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs"
new file mode 100644
index 0000000..fcbfd31
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs"
@@ -0,0 +1,164 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
+using WIDESEA_Core.Helper;
+using WIDESEA_DTO.Inbound;
+using WIDESEA_IInboundService;
+using WIDESEA_IOutboundService;
+using WIDESEA_ITaskInfoService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers
+{
+    [Route("api/PDA")]
+    [Authorize, ApiController]
+    public class PDAController : Controller
+    {
+        private readonly IInboundService _inboundService;
+        private readonly IOutboundService _outboundService;
+        private readonly ITaskService _taskService;
+
+        public PDAController(ITaskService taskService, IInboundService inboundService, IOutboundService outboundService)
+        {
+            _inboundService = inboundService;
+            _outboundService = outboundService;
+            _taskService = taskService;
+        }
+
+
+        /// <summary>
+        /// 涓嬭浇PDA
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("DownLoadApp"), AllowAnonymous]
+        public virtual ActionResult DownLoadApp()
+        {
+            string path = $"{AppDomain.CurrentDomain.BaseDirectory}Upload/App/";
+            if (!Directory.Exists(path)) Directory.CreateDirectory(path);
+            path += "WMS-PDA.apk";
+
+            if (System.IO.File.Exists(path))
+            {
+                byte[] fileBytes = System.IO.File.ReadAllBytes(path);
+                return File(
+                        fileBytes,
+                        System.Net.Mime.MediaTypeNames.Application.Octet,
+                        System.IO.Path.GetFileName(path)
+                    );
+            }
+            else
+            {
+                return Json(WebResponseContent.Instance.Error($"鏈壘鍒板畨瑁呭寘"));
+            }
+
+        }
+
+        /// <summary>
+        /// 涓婁紶PDA
+        /// </summary>
+        /// <param name="fileInput"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("UploadApp"), AllowAnonymous]
+        [Consumes("multipart/form-data")]
+        public WebResponseContent UploadApp(IEnumerable<IFormFile> fileInput)
+        {
+            try
+            {
+                List<IFormFile> files = fileInput.ToList();
+                if (files == null || files.Count() == 0)
+                    return new WebResponseContent { Status = true, Message = "璇烽�夋嫨涓婁紶鐨勬枃浠�" };
+                IFormFile formFile = files[0];
+                string dicPath = $"{AppDomain.CurrentDomain.BaseDirectory}Upload/App/";
+                if (!Directory.Exists(dicPath)) Directory.CreateDirectory(dicPath);
+                string path = $"{dicPath}WMS-PDA{DateTime.Now:yyyyMMddhhmmss}.apk";
+                dicPath = $"{dicPath}WMS-PDA.apk";
+                if (System.IO.File.Exists(dicPath))
+                    System.IO.File.Move(dicPath, path);
+
+                using (var stream = new FileStream(dicPath, FileMode.Create))
+                {
+                    formFile.CopyTo(stream);
+                }
+                return new WebResponseContent { Status = true, Message = "鏂囦欢涓婁紶鎴愬姛" };
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// PDA鐗堟湰
+        /// </summary>
+        /// <param name="version"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("GetPDAVersion"), AllowAnonymous]
+        public WebResponseContent GetPDAVersion(string version)
+        {
+            try
+            {
+                string PDAVersion = AppSettings.Configuration[nameof(PDAVersion)];
+                if (Convert.ToInt32(PDAVersion) > Convert.ToInt32(version))
+                    return WebResponseContent.Instance.OK(data: true);
+                else return WebResponseContent.Instance.OK(data: false);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        [HttpPost, Route("CallMateriel")]
+        public WebResponseContent CallMateriel(string endPoint)
+        {
+            return _taskService.CallMateriel(endPoint);
+        }
+
+        [HttpPost, Route("MaterielCarry")]
+        public WebResponseContent MaterielCarry(string startPoint)
+        {
+            return _taskService.MaterielCarry(startPoint);
+        }
+
+        [HttpPost, Route("MaterielGroup")]
+        public WebResponseContent MaterielGroup([FromBody] MaterielGroupDTO materielGroupDTO)
+        {
+            return _inboundService.InbounOrderService.MaterielGroup(materielGroupDTO);
+        }
+
+        [HttpPost, Route("PdaAddStockInfo")]
+        public WebResponseContent PdaAddStockInfo([FromBody] PdaMaterielGroupDTO materielGroupDTO)
+        {
+            return _inboundService.InbounOrderService.PdaAddStockInfo(materielGroupDTO);
+        }
+
+        /// <summary>
+        /// 绌烘墭鍏ュ簱
+        /// </summary>
+        /// <param name="materielGroupDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("InEmpty")]
+        public WebResponseContent InEmpty(string barcode)
+        {
+            return _inboundService.InbounOrderService.PdaAddEmptyStockInfo(barcode);
+        }
+
+        /// <summary>
+        /// 绌烘墭鍑哄簱
+        /// </summary>
+        /// <param name="materielGroupDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("OutEmpty")]
+        public WebResponseContent OutEmpty()
+        {
+            return _outboundService.OutboundOrderService.PdaOutEmpty();
+        }
+
+        [HttpPost, Route("QueryOrderInfo")]
+        public WebResponseContent QueryOrderInfo(int pageNo, string orderNo)
+        {
+            return _inboundService.InbounOrderService.QueryOrderInfo(pageNo, orderNo);
+        }
+    }
+}

--
Gitblit v1.9.3