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);
// }
// }
///
/// 下载文件并保存到本地
///
}
}