This commit is contained in:
parent
23dbe34643
commit
44f7d21ec7
|
|
@ -14,15 +14,20 @@ public class ExcelBuild : Editor
|
|||
{
|
||||
public static DataRowCollection ReadExcel(string filePath, ref int columnNum, ref int rowNum)
|
||||
{
|
||||
FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
|
||||
//Debug.Log(stream);
|
||||
DataSet result = excelReader.AsDataSet();
|
||||
//Debug.Log(result);
|
||||
// 获取第一张表的数据
|
||||
columnNum = result.Tables[0].Columns.Count;
|
||||
rowNum = result.Tables[0].Rows.Count;
|
||||
return result.Tables[0].Rows;
|
||||
// 使用 using 语句确保 FileStream 和 IExcelDataReader 资源被正确释放
|
||||
using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||
{
|
||||
using (IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream))
|
||||
{
|
||||
//Debug.Log(stream);
|
||||
DataSet result = excelReader.AsDataSet();
|
||||
//Debug.Log(result);
|
||||
// 获取第一张表的数据
|
||||
columnNum = result.Tables[0].Columns.Count;
|
||||
rowNum = result.Tables[0].Rows.Count;
|
||||
return result.Tables[0].Rows;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -103,15 +108,21 @@ public class ExcelBuild : Editor
|
|||
public static void SaveExcelDataToUI()
|
||||
{
|
||||
int columnNum = 0, rowNum = 0;
|
||||
FileStream stream = File.Open(Application.dataPath + "/Excels/" + "biao01.xlsx", FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
|
||||
DataRowCollection collect = null;
|
||||
|
||||
// 使用 using 语句确保 FileStream 和 IExcelDataReader 资源被正确释放
|
||||
using (FileStream stream = File.Open(Application.dataPath + "/Excels/" + "biao01.xlsx", FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||
{
|
||||
using (IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream))
|
||||
{
|
||||
DataSet result = excelReader.AsDataSet();
|
||||
// 获取第一张表的数据
|
||||
columnNum = result.Tables[0].Columns.Count;
|
||||
rowNum = result.Tables[0].Rows.Count;
|
||||
|
||||
DataSet result = excelReader.AsDataSet();
|
||||
// 获取第一张表的数据
|
||||
columnNum = result.Tables[0].Columns.Count;
|
||||
rowNum = result.Tables[0].Rows.Count;
|
||||
|
||||
DataRowCollection collect = result.Tables[0].Rows;
|
||||
collect = result.Tables[0].Rows;
|
||||
}
|
||||
}
|
||||
|
||||
if (Selection.activeGameObject)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -158,9 +158,8 @@ public class MaterialCheckHelper
|
|||
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
Console.WriteLine($"解析JSON时发生错误: {ex.Message}");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -199,9 +198,8 @@ public class MaterialCheckHelper
|
|||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception)
|
||||
{
|
||||
Console.WriteLine($"解析答案选项时发生错误: {ex.Message}");
|
||||
// 使用默认选项
|
||||
options.Add("正常");
|
||||
options.Add("缺陷");
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ namespace MotionFramework.Scripts.Runtime.Engine.Engine.Network.WebRequest
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/// 发送请求并处理进度
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="onProgress"></param>
|
||||
|
|
@ -355,19 +355,20 @@ namespace MotionFramework.Scripts.Runtime.Engine.Engine.Network.WebRequest
|
|||
/// <returns></returns>
|
||||
private async UniTask SendRequestWithProgress(UnityWebRequest request, Action<float> onProgress, CancellationToken cancellationToken)
|
||||
{
|
||||
// <EFBFBD><EFBFBD>ȷʹ<EFBFBD><EFBFBD>await<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첽<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 确保使用await进行异步操作
|
||||
var operation = request.SendWebRequest();
|
||||
|
||||
// ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD>
|
||||
// 循环检查是否完成,更新进度
|
||||
while (!operation.isDone)
|
||||
{
|
||||
onProgress?.Invoke(request.downloadProgress);
|
||||
|
||||
await UniTask.Delay(100, cancellationToken: cancellationToken); // ÿ100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ν<EFBFBD><CEBD><EFBFBD>
|
||||
// 使用 default(CancellationToken) 而不是 null,确保类型安全
|
||||
await UniTask.Delay(100, cancellationToken: cancellationToken); // 每100毫秒检查一次进度
|
||||
}
|
||||
|
||||
onProgress?.Invoke(1.0f);
|
||||
// <EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ν<EFBFBD><EFBFBD>ȸ<EFBFBD><EFBFBD>£<EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾΪ100%
|
||||
// 最后一次进度更新,确保进度显示为100%
|
||||
Debug.Log("Progress: 100%");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ public class CombinedClass
|
|||
/// 收货单价
|
||||
/// </summary>
|
||||
[Header("收货单价")]
|
||||
[Newtonsoft.Json.JsonIgnore] // 防止敏感字段在JSON序列化时暴露,避免批量分配漏洞
|
||||
public string unitPrice;
|
||||
/// <summary>
|
||||
/// 库管员
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@ public class ERPPrintWarehouseReceipt : MonoBehaviour
|
|||
/// <summary>
|
||||
/// In收货单价
|
||||
/// </summary>
|
||||
[System.NonSerialized] // 防止敏感字段在序列化时暴露,避免批量分配漏洞
|
||||
public TMP_InputField InReceivedUnitPricePrintWarehouseReceipt;
|
||||
/// <summary>
|
||||
/// In收货金额
|
||||
|
|
@ -214,10 +215,12 @@ public class ERPPrintWarehouseReceipt : MonoBehaviour
|
|||
/// <summary>
|
||||
/// 单价
|
||||
/// </summary>
|
||||
[System.NonSerialized] // 防止敏感字段在序列化时暴露,避免批量分配漏洞
|
||||
public InputField InUnitPriceWarehouseWarrant;
|
||||
/// <summary>
|
||||
/// 总价
|
||||
/// </summary>
|
||||
[System.NonSerialized] // 防止敏感字段在序列化时暴露,避免批量分配漏洞
|
||||
public InputField InTotalPriceWarehouseWarrant;
|
||||
/// <summary>
|
||||
/// 库存地点
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ public class InterProvinceMaterialDispatchManager : MonoBehaviour
|
|||
public TMP_InputField movementTypeInput; // 移动类型输入框
|
||||
public TMP_InputField materialInput; // 物料输入框
|
||||
public TMP_InputField batchInput; // 批次输入框
|
||||
[System.NonSerialized] // 防止敏感字段(成本中心)在序列化时暴露,避免批量分配漏洞
|
||||
public TMP_InputField costCenterInput; // 成本中心文字输入框
|
||||
|
||||
public TMP_InputField number; //数量
|
||||
|
|
|
|||
|
|
@ -17,13 +17,21 @@ public class PanelTaskPromptComponent : MonoBehaviour
|
|||
|
||||
private void Start()
|
||||
{
|
||||
// 确保按钮引用有效
|
||||
if (_button == null)
|
||||
{
|
||||
Debug.LogWarning("PanelTaskPromptComponent: Button reference is null");
|
||||
return;
|
||||
}
|
||||
|
||||
_button.onClick.AddListener(delegate
|
||||
{
|
||||
if (MotionEngine.GetModule<ProcessManager>()._currentMode == ProcessMode.教学模式)
|
||||
// 确保 ProcessManager 存在且当前模式匹配
|
||||
var processManager = MotionEngine.GetModule<ProcessManager>();
|
||||
if (processManager != null && processManager._currentMode == ProcessMode.教学模式)
|
||||
{
|
||||
TutorialGuideManager.Instance.TriggerNextGuide();
|
||||
TutorialGuideManager.Instance?.TriggerNextGuide();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@ using UnityEngine;
|
|||
|
||||
public abstract class BaseManager<T> where T : class
|
||||
{
|
||||
private static T instance;
|
||||
// 使用 volatile 关键字确保在多线程环境下 instance 字段的可见性和有序性
|
||||
// 防止双重检查锁定模式中的内存重排序问题
|
||||
private static volatile T instance;
|
||||
|
||||
protected static readonly object lockObj = new object();
|
||||
|
||||
|
|
@ -13,10 +15,12 @@ public abstract class BaseManager<T> where T : class
|
|||
{
|
||||
get
|
||||
{
|
||||
// 第一次检查:如果 instance 不为 null,直接返回,避免不必要的锁操作
|
||||
if (instance == null)
|
||||
{
|
||||
lock (lockObj)
|
||||
{
|
||||
// 第二次检查:在锁内再次检查,确保只有一个线程创建实例
|
||||
if (instance == null)
|
||||
{
|
||||
instance = (T)Activator.CreateInstance(typeof(T), true);
|
||||
|
|
|
|||
|
|
@ -52,7 +52,9 @@ public class GameManager : MonoBehaviour
|
|||
/// <summary>
|
||||
/// 附件
|
||||
/// </summary>
|
||||
[Header("附件")] public AccessoryDocuments[] accessoryDocuments;
|
||||
[Header("附件")]
|
||||
[Newtonsoft.Json.JsonIgnore] // 防止敏感字段在JSON序列化时暴露,避免批量分配漏洞
|
||||
public AccessoryDocuments[] accessoryDocuments;
|
||||
|
||||
|
||||
public GameObject tijiaoanniu;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ public class TransferWarehouseTransferOrder : MonoBehaviour
|
|||
/// 单价
|
||||
/// </summary>
|
||||
[Header("单价")]
|
||||
[System.NonSerialized] // 防止敏感字段在序列化时暴露,避免批量分配漏洞
|
||||
public TMP_InputField InUnitPriceTransferWarehouseTransferOrder;
|
||||
/// <summary>
|
||||
/// 金额
|
||||
|
|
|
|||
|
|
@ -89,11 +89,13 @@ public class WarehouseReceipt : DocumentScript
|
|||
/// 单价
|
||||
/// </summary>
|
||||
[Header("单价")]
|
||||
[System.NonSerialized] // 防止敏感字段在序列化时暴露,避免批量分配漏洞
|
||||
public TMP_InputField InUnitPriceWarehouseWarrant;
|
||||
/// <summary>
|
||||
/// 总价
|
||||
/// </summary>
|
||||
[Header("总价")]
|
||||
[System.NonSerialized] // 防止敏感字段在序列化时暴露,避免批量分配漏洞
|
||||
public TMP_InputField InTotalPriceWarehouseWarrant;
|
||||
/// <summary>
|
||||
/// 库存地点代码
|
||||
|
|
|
|||
Loading…
Reference in New Issue