From 45e6bfcdd4a4bf40e2b74c811763c369ff450d19 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期一, 07 七月 2025 20:20:00 +0800 Subject: [PATCH] 上传 --- 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_ConveyorLineCPDBName.cs | 10 +- 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_RgvCPDBName.cs | 12 ++ 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/RGVJob_CP.cs | 53 ++++++++++--- 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPC.cs | 3 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs | 74 +++++++++++++++++ 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 2 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPB.cs | 48 ++++++++++- 项目资料/通信协议/输送线与上位机交互协议_20250707.xlsx | 0 项目资料/通信协议/龙利得设备通讯协议.xls | 0 项目资料/通信协议/成品输送IP地址分配_20250613.xlsx | 0 10 files changed, 171 insertions(+), 31 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" index d2bb2c1..8b55db4 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -199,7 +199,7 @@ List<Dt_Task> tasks = new List<Dt_Task>(); foreach (var item in taskDTOs) { - if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null) + if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum) != null) { flag = true; continue; diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs" index 39ef4bd..1dfe14b 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs" @@ -85,15 +85,15 @@ /// <summary> /// RGV鎺ユ敹浠诲姟鍙�<br/> /// </summary> - public short RgvTask { get; set; } + public int RgvTask { get; set; } /// <summary> /// RGV缁撴潫浠诲姟鍙�<br/> /// </summary> - public short RgvEndTask { get; set; } + public int RgvEndTask { get; set; } /// <summary> /// RGV涓婃浠诲姟鍙�<br/> /// </summary> - public short RgvLastTask { get; set; } + public int RgvLastTask { get; set; } /// <summary> /// 浠诲姟鐘舵�佸弽棣�<br/> /// </summary> @@ -103,4 +103,72 @@ /// </summary> public short HeartBeat { get; set; } } + public class W_RGVCPInfo : DeviceCommand + { + /// <summary> + /// 浠诲姟鍙�1<br/> + /// </summary> + public int WcsTask1 { get; set; } + /// <summary> + /// 浠诲姟鍙�2<br/> + /// </summary> + public int WcsTask2 { get; set; } + /// <summary> + /// 浠诲姟鍙�3<br/> + /// </summary> + public int WcsTask3 { get; set; } + /// <summary> + /// 浠诲姟绫诲瀷<br/> + /// 1瀹氫綅<br/> + /// 2鍙栬揣<br/> + /// 3鏀捐揣<br/> + /// 4鍙栨斁璐�<br/> + /// </summary> + public short TaskType { get; set; } + /// <summary> + /// 鎵ц宸ヤ綅<br/> + /// 1:1宸ヤ綅<br/> + /// 2:2宸ヤ綅<br/> + /// 3:3宸ヤ綅<br/> + /// 4:12宸ヤ綅<br/> + /// 5:13宸ヤ綅<br/> + /// 6:23宸ヤ綅<br/> + /// 7:123宸ヤ綅<br/> + /// </summary> + public short WorkStation { get; set; } + /// <summary> + /// 鍙栬揣鍦板潃1<br/> + /// </summary> + public short Qu1 { get; set; } + /// <summary> + /// 鍙栬揣鍦板潃2<br/> + /// </summary> + public short Qu2 { get; set; } + /// <summary> + /// 鍙栬揣鍦板潃3<br/> + /// </summary> + public short Qu3 { get; set; } + /// <summary> + /// 鏀捐揣鍦板潃1<br/> + /// </summary> + public short Fang1 { get; set; } + /// <summary> + /// 鏀捐揣鍦板潃2<br/> + /// </summary> + public short Fang2 { get; set; } + /// <summary> + /// 鏀捐揣鍦板潃3<br/> + /// </summary> + public short Fang3 { get; set; } + /// <summary> + /// 蹇冭烦<br/> + /// </summary> + public short HearBeat { get; set; } + /// <summary> + /// 涓嬪彂/瀹屾垚浠诲姟鏍囪瘑<br/> + /// 1纭浠诲姟涓嬪彂<br/> + /// 2纭浠诲姟瀹屾垚<br/> + /// </summary> + public short TaskReceivedDone { get; set; } + } } diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_ConveyorLineCPDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_ConveyorLineCPDBName.cs" index ec9be2f..534b4de 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_ConveyorLineCPDBName.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_ConveyorLineCPDBName.cs" @@ -11,22 +11,22 @@ /// <summary> /// 鍛戒护 /// </summary> - Command, + W_Command, /// <summary> /// 鐩爣鍦板潃 /// </summary> - TargetAddress, + W_TargetAddress, /// <summary> /// 浠诲姟鍙� /// </summary> - TaskNo, + W_TaskNo, /// <summary> /// 棰勭暀 /// </summary> - Reserve, + W_Reserve, /// <summary> /// 蹇冭烦 /// </summary> - Heart + W_Heart } } diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_RgvCPDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_RgvCPDBName.cs" index 4ae561a..ed72ff4 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_RgvCPDBName.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/W_RgvCPDBName.cs" @@ -9,9 +9,17 @@ public enum W_RgvCPDB { /// <summary> - /// 浠诲姟鍙�<br/> + /// 浠诲姟鍙�1<br/> /// </summary> - WcsTask, + WcsTask1, + /// <summary> + /// 浠诲姟鍙�2<br/> + /// </summary> + WcsTask2, + /// <summary> + /// 浠诲姟鍙�3<br/> + /// </summary> + WcsTask3, /// <summary> /// 浠诲姟绫诲瀷<br/> /// 1瀹氫綅<br/> diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs" index 91ec5eb..bba09d9 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs" @@ -72,16 +72,15 @@ { DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_ConveyorLineCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(W_ConveyorLineCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); - if (deviceProRead != null && deviceProWrite!=null) + if (item.StationType==StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt() && deviceProRead != null && deviceProWrite!=null) { R_ConveyorLineCPInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineCPInfo>(deviceProRead.DeviceProAddress); - if (conveyorLineInfoRead.Command == 6 && conveyorLineInfoRead.TaskNo>0 && !string.IsNullOrEmpty(conveyorLineInfoRead.PalletCode)) + if (conveyorLineInfoRead.Command == 5 && conveyorLineInfoRead.TaskNo>0 && !string.IsNullOrEmpty(conveyorLineInfoRead.PalletCode)) { - Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum== conveyorLineInfoRead.TaskNo && x.CurrentAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt() && x.DeviceCode==device.DeviceCode); + Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum== conveyorLineInfoRead.TaskNo && x.NextAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode==device.DeviceCode); if (task != null) { //鍒嗛厤宸烽亾 瀛樺叆鎵樼洏鏁版嵁 - List<Dt_Router> routers = _routerService.QueryNextRoutes(item.StationCode, "SC01_CP", task.TaskType); Dt_Router? router = routers.FirstOrDefault(); if (routers == null || routers.Count == 0 || router == null) @@ -95,9 +94,10 @@ continue; } - device.SetValue(W_ConveyorLineCPDB.TargetAddress, router.NextPosi, item.StationCode); - device.SetValue(W_ConveyorLineCPDB.TaskNo, task.TaskNum, item.StationCode); - device.SetValue(W_ConveyorLineCPDB.Command, 1, item.StationCode); + device.SetValue(W_ConveyorLineCPDB.W_TargetAddress, router.NextPosi, item.StationCode); + device.SetValue(W_ConveyorLineCPDB.W_TaskNo, task.TaskNum, item.StationCode); + device.SetValue(W_ConveyorLineCPDB.W_Command, 1, item.StationCode); + task.CurrentAddress = item.StationCode; task.NextAddress=router.NextPosi; task.PalletType = 1; task.PalletCode = conveyorLineInfoRead.PalletCode; @@ -115,6 +115,40 @@ } } } + else if (item.StationType == StationTypeEnum.StationType_InboundAndOutbound.ObjToInt() && deviceProRead != null) + { + R_ConveyorLineCPInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineCPInfo>(deviceProRead.DeviceProAddress); + if (conveyorLineInfoRead.Command == 4 && conveyorLineInfoRead.TaskNo > 0) + { + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNo && x.CurrentAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode); + if (task != null) + { + List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.CurrentAddress == x.StartPosi); + Dt_Router? router = routers.FirstOrDefault(); + if (routers == null || routers.Count == 0 || router == null) + { + WriteError(item.StationName, $"鏈壘鍒板搴旇矾鐢变俊鎭�,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}"); + continue; + } + if (routers.Count > 1) + { + WriteError(item.StationName, $"璺敱淇℃伅閰嶇疆閿欒,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}"); + continue; + } + device.SetValue(W_ConveyorLineCPDB.W_Command, 2, item.StationCode); + task.NextAddress = router.NextPosi; + _taskService.UpdateTask(task, TaskStatusEnum.Line_Executing); + WriteError(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}涓嬩竴姝�"); + //string? locationCode = _taskService.RequestAssignLocation(task.TaskNum, "AGV_CP"); + //if (string.IsNullOrEmpty(locationCode) && task.TaskType != TaskTypeEnum.EmptyProductBack.ObjToInt()) + //{ + // WriteError(item.StationName, $"璇锋眰鍒嗛厤璐т綅杩斿洖淇℃伅閿欒,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}"); + // continue; + //} + + } + } + } else { WriteError(item.StationName, $"鏈壘鍒拌澶囧瓙缂栧彿{item.StationCode}鐨勫崗璁俊鎭�"); diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs" index 68b33fc..b1cc6be 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs" @@ -75,7 +75,7 @@ if (item.StationType == StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt() && deviceProRead != null) { R_ConveyorLineCPInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineCPInfo>(deviceProRead.DeviceProAddress); - if (conveyorLineInfoRead.StatusPV == 3 && conveyorLineInfoRead.Command == 11) + if (conveyorLineInfoRead.StatusPV == 2 && conveyorLineInfoRead.Command == 11) { Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && (x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() || x.TaskState == TaskStatusEnum.New.ObjToInt())); if (task == null) @@ -96,6 +96,7 @@ _taskService.UpdateTask(taskNew, TaskStatusEnum.RGV_Execute); } } + Thread.Sleep(1000); } } } diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs" index 64903f2..d5ed193 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs" @@ -75,28 +75,52 @@ if (deviceProRead != null && deviceProWrite != null) { R_RGVCPInfo rgvInfoRead = device.Communicator.ReadCustomer<R_RGVCPInfo>(deviceProRead.DeviceProAddress); - if (rgvInfoRead.Mode==4 && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1) + W_RGVCPInfo rgvInfoWrite = device.Communicator.ReadCustomer<W_RGVCPInfo>(deviceProWrite.DeviceProAddress); + if (rgvInfoRead.Mode==5 && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1) { + List<Dt_Task> tasks = _taskRepository.QueryData(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState != TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode); //鑾峰彇浠诲姟 - Dt_Task task = _taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode==device.DeviceCode); - if (task != null) + Dt_Task? task1 = tasks.FirstOrDefault(x => x.HeightType==1); + Dt_Task? task2 = tasks.FirstOrDefault(x => x.HeightType == 2); + Dt_Task? task3 = tasks.FirstOrDefault(x => x.HeightType == 3); + Dt_Task task = _taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode); + if (task != null && task1 == null) { - device.SetValue(W_RgvCPDB.WcsTask, task.TaskNum); + device.SetValue(W_RgvCPDB.WcsTask1, task.TaskNum); device.SetValue(W_RgvCPDB.TaskType, 4); device.SetValue(W_RgvCPDB.WorkStation, 1); device.SetValue(W_RgvCPDB.Qu1, task.CurrentAddress); device.SetValue(W_RgvCPDB.Fang1, task.NextAddress); device.SetValue(W_RgvCPDB.TaskReceivedDone, 1); - Thread.Sleep(1000); - //澶嶄綅淇″彿 - device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); + task.HeightType = 1; + _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing); + }else if (task != null && task2 == null) + { + device.SetValue(W_RgvCPDB.WcsTask1, task.TaskNum); + device.SetValue(W_RgvCPDB.TaskType, 4); + device.SetValue(W_RgvCPDB.WorkStation, 1); + device.SetValue(W_RgvCPDB.Qu2, task.CurrentAddress); + device.SetValue(W_RgvCPDB.Fang2, task.NextAddress); + device.SetValue(W_RgvCPDB.TaskReceivedDone, 1); + task.HeightType = 2; + _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing); + } + else if (task != null && task3 == null) + { + device.SetValue(W_RgvCPDB.WcsTask1, task.TaskNum); + device.SetValue(W_RgvCPDB.TaskType, 4); + device.SetValue(W_RgvCPDB.WorkStation, 1); + device.SetValue(W_RgvCPDB.Qu3, task.CurrentAddress); + device.SetValue(W_RgvCPDB.Fang3, task.NextAddress); + device.SetValue(W_RgvCPDB.TaskReceivedDone, 1); + task.HeightType = 3; _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing); } } - else if(rgvInfoRead.Mode == 4 && rgvInfoRead.State == 1 && rgvInfoRead.TaskDone == 3) + else if((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.TaskDone == 3) { //鑾峰彇浠诲姟 - Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum==rgvInfoRead.RgvEndTask && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode); + Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum==rgvInfoRead.RgvTask && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode); if (task != null) { //鑾峰彇涓嬩竴涓妭鐐圭殑璺敱 @@ -105,9 +129,6 @@ task.NextAddress = ""; task.DeviceCode = stationManger.StationDeviceCode; device.SetValue(W_RgvCPDB.TaskReceivedDone, 2); - Thread.Sleep(1000); - //澶嶄綅淇″彿 - device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute); WriteError(device.DeviceName, $"RGV浠诲姟瀹屾垚,浠诲姟鍙穥rgvInfoRead.RgvEndTask}"); } @@ -116,6 +137,14 @@ WriteError(device.DeviceName, $"鏈壘鍒癛GV瀵瑰簲鐨勭粨鏉熶换鍔rgvInfoRead.RgvEndTask}"); } } + else if (rgvInfoRead.TaskDone == 2 && rgvInfoWrite.TaskReceivedDone == 1) + { + device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); + } + else if (rgvInfoRead.TaskDone == 0 && rgvInfoWrite.TaskReceivedDone == 2) + { + device.SetValue(W_RgvCPDB.TaskReceivedDone, 0); + } } else { diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201IP\345\234\260\345\235\200\345\210\206\351\205\215_20250613.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201IP\345\234\260\345\235\200\345\210\206\351\205\215_20250613.xlsx" index 706eca4..c4e1e37 100644 --- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201IP\345\234\260\345\235\200\345\210\206\351\205\215_20250613.xlsx" +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201IP\345\234\260\345\235\200\345\210\206\351\205\215_20250613.xlsx" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\350\276\223\351\200\201\347\272\277\344\270\216\344\270\212\344\275\215\346\234\272\344\272\244\344\272\222\345\215\217\350\256\256_20250707.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\350\276\223\351\200\201\347\272\277\344\270\216\344\270\212\344\275\215\346\234\272\344\272\244\344\272\222\345\215\217\350\256\256_20250707.xlsx" new file mode 100644 index 0000000..7af063d --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\350\276\223\351\200\201\347\272\277\344\270\216\344\270\212\344\275\215\346\234\272\344\272\244\344\272\222\345\215\217\350\256\256_20250707.xlsx" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\256\276\345\244\207\351\200\232\350\256\257\345\215\217\350\256\256.xls" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\256\276\345\244\207\351\200\232\350\256\257\345\215\217\350\256\256.xls" index f05e4a2..32560b2 100644 --- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\256\276\345\244\207\351\200\232\350\256\257\345\215\217\350\256\256.xls" +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\256\276\345\244\207\351\200\232\350\256\257\345\215\217\350\256\256.xls" Binary files differ -- Gitblit v1.9.3