1
dengjunjie
2025-06-08 3311f02194604247c1fb0384ecc43cc3ef3f04be
1
已删除3个文件
已修改6个文件
已添加4个文件
304 ■■■■■ 文件已修改
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/15173735-4d40-4303-9957-72c73104d72f.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/1b562594-4598-4984-b23d-47d2174f2526.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/64588fc3-3956-44f9-a94a-b42bcc6d9b8b.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b059467b-47d8-4c04-b5e8-149638790949.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b87d687f-d7bb-4da2-b1ce-f7dcf001b90e.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d48a3c6c-f39c-42e9-bd7e-a9ecb962fc09.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/API请求/2025-06-08/叫料任务下发250608.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/ZhongHePDA/common/http.interceptor.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/ZhongHePDA/pages/basic/cachePoint.vue 96 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/ZhongHePDA/pages/task/AgvTask.vue 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/15173735-4d40-4303-9957-72c73104d72f.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/1b562594-4598-4984-b23d-47d2174f2526.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/64588fc3-3956-44f9-a94a-b42bcc6d9b8b.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b059467b-47d8-4c04-b5e8-149638790949.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b87d687f-d7bb-4da2-b1ce-f7dcf001b90e.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d48a3c6c-f39c-42e9-bd7e-a9ecb962fc09.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -47,11 +47,12 @@
        WebResponseContent GenerateOutboundTask(int[] keys);
        WebResponseContent PalletOutboundTask(string roadwayNo, string endStation);
        WebResponseContent Bind(string qty, string point);
        WebResponseContent CallMateriel(string endPoint);
        WebResponseContent MaterielCarry(string startPoint);
        WebResponseContent GetTaskInfo();
        object AGVTaskFeedBack(AGVTaskFeedBackModel taskFeedBackModel);
        WebResponseContent AcrossFloorCallMat(string point);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs
@@ -49,6 +49,61 @@
        }
        /// <summary>
        /// è´§ä½ç»‘定
        /// </summary>
        /// <param name="qty"></param>
        /// <param name="Point"></param>
        /// <returns></returns>
        public WebResponseContent Bind(string qty, string point)
        {
            try
            {
                if (Repository.QueryFirst(x => x.SourceAddress == point &&
                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
                x.TargetAddress == point) != null)
                    throw new Exception($"站点【{point}】存在任务!");
                Dt_CachePoint? cachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == point);
                if (cachePoint == null) throw new Exception("未找到缓存点!");
                if (cachePoint.AreaId != 4) throw new Exception("当前缓存点区域无绑定权限!");
                cachePoint.PointStatus = LocationStatusEnum.InStock.ObjToInt();
                cachePoint.Remark = qty;
                cachePoint.Modifier = App.User.UserName;
                _basicService.CachePointService.Repository.UpdateData(cachePoint);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// é‡Šæ”¾ç¼“存点
        /// </summary>
        /// <param name="point"></param>
        /// <returns></returns>
        public WebResponseContent AcrossFloorCallMat(string point)
        {
            try
            {
                if (Repository.QueryFirst(x => x.SourceAddress == point &&
                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
                x.TargetAddress == point) != null)
                    throw new Exception($"站点【{point}】存在任务!");
                Dt_CachePoint? cachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == point);
                if (cachePoint == null) throw new Exception("未找到缓存点!");
                if (cachePoint.AreaId != 2 && cachePoint.AreaId != 5 && cachePoint.AreaId != 8)
                    throw new Exception("当前缓存点区域无释放权限!");
                cachePoint.PointStatus = LocationStatusEnum.Free.ObjToInt();
                _basicService.CachePointService.Repository.UpdateData(cachePoint);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        /// <summary>
        /// å«æ–™
        /// </summary>
        /// <param name="endPoint"></param>
@@ -57,6 +112,11 @@
        {
            try
            {
                if (Repository.QueryFirst(x => x.SourceAddress == endPoint &&
                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
                x.TargetAddress == endPoint) != null)
                    throw new Exception($"站点【{endPoint}】存在任务!");
                Dt_CachePoint cachePoint = GetCachePointByEndPoint(endPoint);
                Dt_Task task = new Dt_Task()
@@ -78,7 +138,7 @@
                Db.Ado.BeginTran();
                var response = SendAGVTask(task, cachePoint);
                if (response.Status)
                if (!response.Status)
                {
                    _unitOfWorkManage.RollbackTran();
                    return WebResponseContent.Instance.Error($"{response.Message}");
@@ -105,6 +165,11 @@
        {
            try
            {
                if (Repository.QueryFirst(x => x.SourceAddress == startPoint &&
                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
                x.TargetAddress == startPoint) != null)
                    throw new Exception($"站点【{startPoint}】存在任务!");
                Dt_CachePoint cachePoint = GetCachePointByStartPoint(startPoint);
                Dt_Task task = new()
@@ -124,12 +189,21 @@
                };
                cachePoint.PointStatus = LocationStatusEnum.Lock.ObjToInt();
                Db.Ado.BeginTran();
                var response = SendAGVTask(task, cachePoint);
                if (!response.Status)
                {
                    _unitOfWorkManage.RollbackTran();
                    return WebResponseContent.Instance.Error($"{response.Message}");
                }
                _basicService.CachePointService.Repository.UpdateData(cachePoint);
                Repository.AddData(task);
                Db.Ado.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                Db.Ado.RollbackTran();
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs
@@ -11,6 +11,7 @@
using System.IO;
using WIDESEA_Model.Models;
using System;
using System.Net;
namespace WIDESEA_WMSServer.Controllers
{
@@ -29,28 +30,62 @@
            _taskService = taskService;
        }
        /// <summary>
        /// ç»‘定货位
        /// </summary>
        /// <param name="qty"></param>
        /// <param name="point"></param>
        /// <returns></returns>
        [HttpPost, Route("Bind"), AllowAnonymous]
        public WebResponseContent Bind(string qty, string point)
        {
            return _taskService.Bind(qty, point);
        }
        /// <summary>
        /// é‡Šæ”¾ç¼“存点
        /// </summary>
        /// <param name="point"></param>
        /// <returns></returns>
        [HttpPost, Route("AcrossFloorCallMat"), AllowAnonymous]
        public WebResponseContent AcrossFloorCallMat(string point)
        {
            return _taskService.AcrossFloorCallMat(point);
        }
        /// <summary>
        /// å«æ–™
        /// </summary>
        /// <param name="endPoint"></param>
        /// <returns></returns>
        [HttpPost, Route("CallMateriel"), AllowAnonymous]
        public WebResponseContent CallMateriel([FromBody] string endPoint)
        public WebResponseContent CallMateriel(string endPoint)
        {
            return _taskService.CallMateriel(endPoint);
        }
        /// <summary>
        /// æ¬è¿
        /// </summary>
        /// <param name="startPoint"></param>
        /// <returns></returns>
        [HttpPost, Route("MaterielCarry"), AllowAnonymous]
        public WebResponseContent MaterielCarry([FromBody] string startPoint)
        public WebResponseContent MaterielCarry(string startPoint)
        {
            return _taskService.MaterielCarry(startPoint);
        }
        /// <summary>
        /// ç»„盘
        /// </summary>
        /// <param name="materielGroupDTO"></param>
        /// <returns></returns>
        [HttpPost, Route("MaterielGroup")]
        public WebResponseContent MaterielGroup([FromBody] MaterielGroupDTO materielGroupDTO)
        {
            return _inboundService.InbounOrderService.MaterielGroup(materielGroupDTO);
        }
        /// <summary>
        /// æŸ¥è¯¢å…¥åº“单
        /// </summary>
        /// <param name="pageNo"></param>
        /// <param name="orderNo"></param>
        /// <returns></returns>
        [HttpPost, Route("QueryOrderInfo")]
        public WebResponseContent QueryOrderInfo(int pageNo, string orderNo)
        {
@@ -59,7 +94,7 @@
        [HttpPost, HttpGet, Route("UploadApp"), AllowAnonymous]
        public async Task<WebResponseContent> UploadApk(IEnumerable<IFormFile> fileInput)
         {
        {
            // æ£€æŸ¥æ˜¯å¦æœ‰æ–‡ä»¶ä¸Šä¼ 
            if (fileInput == null || !fileInput.Any())
            {
@@ -68,7 +103,7 @@
            var formFile = fileInput.First();
            var uploadFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Upload");
            Directory.CreateDirectory(uploadFolder);
            Directory.CreateDirectory(uploadFolder);
            var fileName = $"WMS-PDA.apk";
            var filePath = Path.Combine(uploadFolder, fileName);
@@ -109,7 +144,7 @@
            }
            memory.Position = 0;
            var ext = Path.GetExtension(filePath).ToLowerInvariant();
            return File(memory, new Dictionary<string, string>{{ ".apk", "application/vnd.android.package-archive" }}[ext], Path.GetFileName(filePath));
            return File(memory, new Dictionary<string, string> { { ".apk", "application/vnd.android.package-archive" } }[ext], Path.GetFileName(filePath));
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Log/System/APIÇëÇó/2025-06-08/½ÐÁÏÈÎÎñÏ·¢250608.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
2025/6/8 20:26:51.713
请求异常
{"请求报文":{"task_id":"68","task_name":null,"priority":"0","site_value_type":1,"src_pos":"ZH013M007","dst_pos":"ZH012M001","car_id":-1,"src_level":4,"dst_level":0,"task_type":"1132","former_id":null},"接收报文":"","错误":"The operation has timed out."}
-------------------------------
´úÂë¹ÜÀí/ZhongHePDA/common/http.interceptor.js
@@ -1,7 +1,7 @@
// let baseUrl = 'http://10.1.105.155:9995'
// let baseUrl = 'http://10.1.211.101:9004'
// let baseUrl = 'http://127.0.0.1:9995'
let baseUrl = 'http://192.168.100.14:9290'
 let baseUrl = 'http://127.0.0.1:9290'
//let baseUrl = 'http://192.168.100.14:9290'
// let baseUrl = 'http://192.168.43.71:9995'
// let baseUrl = 'http://47.112.196.253:8881'
´úÂë¹ÜÀí/ZhongHePDA/pages/basic/cachePoint.vue
@@ -1,36 +1,36 @@
<template>
    <view>
        <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
        </uni-segmented-control>
            <view v-show="current === 0">
                <view style="padding: 5%;">
                    <uni-forms label-width="120">
                        <uni-forms-item label="缓存点">
                            <uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="value"
                                placeholder="请输入缓存点" ref='midInput' />
                        </uni-forms-item>
                    </uni-forms>
                    <button @click="submit" type="primary" size="default" style="margin-top: 2%;">释放</button>
                    <u-toast ref="uToast" />
                </view>
            </view>
            <view v-show="current === 1">
                <view style="padding: 5%;">
                    <uni-forms label-width="120">
                        <uni-forms-item label="缓存点">
                            <uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="value"
                                placeholder="请输入缓存点" ref='midInput' />
                        </uni-forms-item>
                    </uni-forms>
                    <button @click="submit" type="primary" size="default" style="margin-top: 2%;">拆包</button>
                    <u-toast ref="uToast" />
                </view>
            </view>
            <!-- <view v-show="current === 2">
        <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
        </uni-segmented-control>
        <view v-show="current === 0">
            <view style="padding: 5%;">
                <uni-forms label-width="120">
                    <uni-forms-item label="缓存点">
                        <uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="value"
                            placeholder="请输入缓存点" ref='midInput' />
                    </uni-forms-item>
                </uni-forms>
                <button @click="submit" type="primary" size="default" style="margin-top: 2%;">释放</button>
                <u-toast ref="BindluToast" />
            </view>
        </view>
        <view v-show="current === 1">
            <view style="padding: 5%;">
                <uni-forms label-width="120">
                    <uni-forms-item label="缓存点">
                        <uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="value"
                            placeholder="请输入缓存点" ref='midInput' />
                    </uni-forms-item>
                </uni-forms>
                <button @click="submit" type="primary" size="default" style="margin-top: 2%;">拆包</button>
                <u-toast ref="uToast" />
            </view>
        </view>
        <!-- <view v-show="current === 2">
                é€‰é¡¹å¡3的内容
            </view> -->
        </view>
    </view>
    </view>
    </view>
</template>
<script>
@@ -40,7 +40,7 @@
                istrue: false,
                range: [],
                value: "",
                items: ['释放缓存位', '拆包'],
                items: ['释放缓存位'], //, '拆包'
                current: 0
            }
        },
@@ -49,43 +49,43 @@
        },
        methods: {
            onClickItem(e) {
                  if (this.current != e.currentIndex) {
                    this.current = e.currentIndex;
                  }
                },
                if (this.current != e.currentIndex) {
                    this.current = e.currentIndex;
                }
            },
            submit() {
                if (this.value.length <= 0) {
                    this.$refs.uToast.show({
                if (this.value == "") {
                    this.$refs.BindluToast.show({
                        title: "请输入缓存点",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    MainData: {
                        matCode: this.value,
                        endPoint: this.value
                    }
                }
                this.$u.post('/api/AcrossFloorCarry/AcrossFloorCallMat', param).then(res => {
                // var param = {
                //     MainData: {
                //         matCode: this.value,
                //         endPoint: this.value
                //     }
                // }
                this.$u.post('/api/PDA/AcrossFloorCallMat?Point=' + this.value, {}).then(res => {
                    if (res.status) {
                        this.$refs.uToast.show({
                        this.$refs.BindluToast.show({
                            title: "释放成功",
                            type: "success"
                        })
                        this.carNo = "";
                        // this.carNo = "";
                        this.value = "";
                        this.locationNo = "";
                        // this.locationNo = "";
                        this.istrue = false;
                    } else {
                        this.$refs.uToast.show({
                        this.$refs.BindluToast.show({
                            title: res.message,
                            type: "error"
                        })
                    }
                })
            },
        }
    }
</script>
´úÂë¹ÜÀí/ZhongHePDA/pages/task/AgvTask.vue
@@ -5,9 +5,9 @@
        <view v-show="current === 0">
            <view style="padding: 5%;">
                <uni-forms label-width="120">
                    <uni-forms-item label="托盘编码">
                        <uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="PalletCode"
                            placeholder="请输入托盘编码" ref='midInput' />
                    <uni-forms-item label="托盘数量">
                        <uni-easyinput type="text" :focus="istrue" @input="carNoInputChange" v-model="PalletCode"
                            placeholder="请输入托盘数量" ref='midInput' />
                    </uni-forms-item>
                    <uni-forms-item label="绑定货位">
                        <uni-easyinput type="text" :focus="!istrue" @input="carNoInputChange" v-model="Point"
@@ -54,8 +54,8 @@
                range: [],
                EndAddress: "",
                StartAddress: "",
                PalletCode:"",
                Point:"",
                PalletCode: "",
                Point: "",
                items: ['货位绑定', '叫料', '搬运'],
                current: 0
            }
@@ -70,26 +70,27 @@
                }
            },
            Bind() {
                if (this.PalletCode.length <= 0&&this.Point.length) {
                if (this.PalletCode.length == "" || this.Point.length == "") {
                    this.$refs.BindluToast.show({
                        title: "托盘编码跟绑定货位不能为空",
                        title: "托盘数量跟绑定货位不能为空",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    MainData: {
                        "PalletCode": this.PalletCode,
                        "Point":this.Point
                    },
                }
                this.$u.post('/api/PDA/CallMateriel', param).then(res => {
                // var param = {
                //     MainData: {
                //         "PalletCode": this.PalletCode,
                //         "Point": this.Point
                //     },
                // }
                this.$u.post('/api/PDA/Bind?qty=' + this.PalletCode + '&point=' + this.Point, {}).then(res => {
                    if (res.status) {
                        this.$refs.uToast.show({
                            title: "呼叫Agv搬运成功",
                        this.$refs.BindluToast.show({
                            title: "绑定成功",
                            type: "success"
                        })
                        this.EndAddress = "";
                        this.Point = "";
                        this.PalletCode = "";
                        this.istrue = false;
                    } else {
                        this.$refs.BindluToast.show({
@@ -100,22 +101,22 @@
                })
            },
            CallMateriel() {
                if (this.EndAddress.length <= 0) {
                if (this.EndAddress == "") {
                    this.$refs.CallMaterieluToast.show({
                        title: "请输入终点",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    MainData: {
                        "endPoint": this.EndAddress
                    },
                }
                this.$u.post('/api/PDA/CallMateriel', param).then(res => {
                // var param = {
                //     MainData: {
                //         "endPoint": this.EndAddress
                //     },
                // }
                this.$u.post('/api/PDA/CallMateriel?endPoint=' + this.EndAddress, {}).then(res => {
                    if (res.status) {
                        this.$refs.uToast.show({
                            title: "呼叫Agv搬运成功",
                        this.$refs.CallMaterieluToast.show({
                            title: "叫料成功",
                            type: "success"
                        })
                        this.EndAddress = "";
@@ -129,21 +130,21 @@
                })
            },
            MaterielCarry() {
                if (this.StartAddress.length <= 0) {
                if (this.StartAddress == "") {
                    this.$refs.MaterielCarryuToast.show({
                        title: "请输入起点",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    MainData: {
                        "startPoint": this.StartAddress
                    },
                }
                this.$u.post('/api/PDA/MaterielCarry', param).then(res => {
                // var param = {
                //     MainData: {
                //         "startPoint": this.StartAddress
                //     },
                // }
                this.$u.post('/api/PDA/MaterielCarry?startPoint=' + this.StartAddress, {}).then(res => {
                    if (res.status) {
                        this.$refs.uToast.show({
                        this.$refs.MaterielCarryuToast.show({
                            title: "呼叫Agv搬运成功",
                            type: "success"
                        })