using UnityEngine; using UnityEngine.UI; using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Threading.Tasks; using DefaultNamespace; using DefaultNamespace.ProcessMode; using Framework.Manager; using Framework.Utils; using MotionFramework; using MotionFramework.Scripts.Runtime.Engine.Engine.Network.WebRequest; using Zion.ERP.Inventory; using Task = System.Threading.Tasks.Task; namespace Zion.Scripts.ERP.查询合同执行状态报表 { public class ContractStatusReportManager : MonoBehaviour { // 工厂输入框 public InputField factoryInputField; // 公司代码输入框 public InputField companyCodeInputField; // 采购订单输入框 public InputField purchaseOrderInputField; // 合同日期开始输入框 public InputField contractStartDateInputField; // 合同日期结束输入框 public InputField contractEndDateInputField; // 查询按钮 public Button queryButton; public GameObject okPlane; public GameObject errorPlane; public bool isOK = false; // public GameObject AnswerSheet; void Start() { //localFilePath = Application.streamingAssetsPath + "/Excel/" + $"合同执行状态报表_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx"; //Debug.Log("本地文件路径:" + localFilePath); // 绑定查询按钮点击事件 if (queryButton != null) { queryButton.onClick.AddListener(OnQueryButtonClicked); } //await Task.Delay(1000); // UploadFileAsync(); } /// /// 处理查询按钮点击事件 /// private void OnQueryButtonClicked() { // // 验证日期区间 // if (!ValidateDateRange()) // { // Debug.LogError("错误:日期必须大于等于2025.1.1-2025.12.31区间!"); // } // 这里添加查询逻辑 string factory = factoryInputField.text; string companyCode = companyCodeInputField.text; string purchaseOrder = purchaseOrderInputField.text; string contractStartDate = contractStartDateInputField.text; string contractEndDate = contractEndDateInputField.text; List parameters = new List(); parameters.Add(factory); parameters.Add(companyCode); parameters.Add(purchaseOrder); parameters.Add(contractStartDate); parameters.Add(contractEndDate); if (MotionEngine.GetModule().HandleClick(parameters)) { Debug.Log("查询成功"); okPlane.SetActive(true); isOK = true; TutorialGuideManager.Instance.TriggerNextGuide(queryButton.name); } else { Debug.Log("查询失败"); errorPlane.SetActive(true); isOK = false; } Debug.Log($"工厂: {factory}, 公司代码: {companyCode}, 采购订单: {purchaseOrder}, 合同开始日期: {contractStartDate}, 合同结束日期: {contractEndDate}"); //查询合同执行状态报表 // FileComponent.DownloadSingleFile("附件1-合同变更申请_合同1"); FileComponent.DownloadSingleFile("合同执行情况数据反馈_8行"); // AnswerSheet.SetActive(true); } /// /// 验证日期区间是否有效 /// private bool ValidateDateRange() { // 如果日期为空,不进行验证 if (string.IsNullOrEmpty(contractStartDateInputField.text) || string.IsNullOrEmpty(contractEndDateInputField.text)) { return true; } DateTime startDate, endDate; // 尝试解析开始日期 if (!TryParseDate(contractStartDateInputField.text, out startDate)) { Debug.LogError("开始日期格式不正确,请使用yyyy.MM.dd或yyyy-MM-dd格式"); return false; } // 尝试解析结束日期 if (!TryParseDate(contractEndDateInputField.text, out endDate)) { Debug.LogError("结束日期格式不正确,请使用yyyy.MM.dd或yyyy-MM-dd格式"); return false; } // 检查日期区间是否为一年 TimeSpan span = endDate - startDate; int dayDifference = (int)span.TotalDays; // 允许364-366天的区间(考虑闰年) bool isValidSpan = dayDifference >= 364 && dayDifference <= 366; if (!isValidSpan) { Debug.LogError("日期区间必须为1年,例如2024.01.01-2025.01.01"); return false; } return true; } /// /// 尝试解析日期,支持多种格式 /// private bool TryParseDate(string dateString, out DateTime date) { string[] formats = { "yyyy.MM.dd", "yyyy-MM-dd", "yyyy/MM/dd" }; return DateTime.TryParseExact( dateString, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out date); } // private async void UploadFileAsync() // { // // 上传文件 // string uploadUrl = ApiUrls.TransitInventory.UploadFileAndParam; // // string filePath = @"E:\Unity Projects\GitLab\2025\TaizhouWarehousePhaseII\Assets\StreamingAssets\Excel\合同执行状态报表_20250509_150748.xlsx"; // string filePath = localFilePath; // // 获取访问令牌 // // string token = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg4YTRlYTM1LTdkMDQtNDBhMC04ZTA0LTg4ZWMzNTE2NGY3YiJ9.2ldil6bEqNwGdOhEuxEn5XRuDkZZl1fhqLjSNBzrisRrm4wInR1BG76PsHt1ZgMonNVcopvtY9eAVc4WFKpg7g"; // string token = MotionEngine.GetModule().ExamInfo.Token; // // // 使用辅助类上传文件 // string result = await UploadFileHelper.UploadFileWithFormData(uploadUrl, filePath, token); // // if (!string.IsNullOrEmpty(result)) // { // Debug.Log("上传文件结果: " + result); // } // } /// /// 下载文件并保存到本地 /// } }