using Framework.Manager;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using DefaultNamespace;
using DefaultNamespace.ProcessMode;
using MotionFramework;
using UnityEngine;
using Newtonsoft.Json;
using Framework.Dto;
///
/// 场景总控制
///
public class GameManager : MonoBehaviour
{
///
///
///
public static GameManager Instance;
///
/// 科目
///
public GameObject[] subjects;
///
/// 任务提示
///
public TaskPrompt taskPrompt;
///
/// 模型控制
///
public ModerController moderController;
///
/// 单据控制
///
public DocumentManagement documentManagement;
///
/// 总数据
///
[Header("总数据")] public CombinedClass combinedClass;
///
/// 物资品类检查
///
[Header("物资品类检查")] public List materialChecks;
///
/// 附件
///
[Header("附件")] public AccessoryDocuments[] accessoryDocuments;
public GameObject tijiaoanniu;
private void Awake()
{
Instance = this;
}
// Start is called before the first frame update
void Start()
{
taskPrompt = TaskPrompt.Instance;
moderController = ModerController.Instance;
documentManagement = DocumentManagement.Instance;
//eRPSystemControl= ERPSystemControl.Instance;
Init();
GetNumber();
combinedClass.BatchNumber = MotionEngine.GetModule().GetTaskBookValueByMapping("批次");//批次号
combinedClass.materialCode = MotionEngine.GetModule().GetTaskBookValueByMapping("物料编码");//批次号
combinedClass.materialName = MotionEngine.GetModule().GetTaskBookValueByMapping("物料描述");//批次号
combinedClass.SupplierName = "江苏南瑞帕威尔电气有限公司";
combinedClass.materialUnit = unit;
}
///
/// 初始化
///
private void Init()
{
if (GameLauncher.Instance.localtarge != "" && GameLauncher.Instance != null)
{
combinedClass.TargetLocation = GameLauncher.Instance.localtarge;
}
// yield return new WaitForSeconds(3);
//
// combinedClass = new CombinedClass();
// combinedClass.stage = MotionEngine.GetModule().ExamData.Data.shows;
// ParseMaterialAndAssignToCombinedClass(MotionEngine.GetModule().ExamData.Data.task);
// yield return new WaitForSeconds(0.5f);
// //初始化数据
// yield return new WaitForSeconds(0.5f);
//初始化数据
// ParseMaterialAndAssignToCombinedClass(MotionEngine.GetModule().ExamData.Data.task);
if (MotionEngine.GetModule()._currentMode == ProcessMode.考试预览 ||
MotionEngine.GetModule()._currentMode == ProcessMode.教学模式)
{
tijiaoanniu.SetActive(false);
}
else if (MotionEngine.GetModule()._currentMode == ProcessMode.课程预览)
{
tijiaoanniu.SetActive(false);
}
// switch (GlobalDataStorage.Instance.bigName)
// {
// case "采购物资入库": // PurchaseMaterialInbound
//
// break;
// case "调拨物资入库": // TransferMaterialInbound
//
// break;
// case "退料物资入库": // ReturnMaterialInbound
//
// break;
// case "代保管物资入库": // CustodyMaterialInbound
//
// break;
// case "代保管物资出库": // CustodyMaterialOutbound
//
// break;
// case "调拨物资出库": // TransferMaterialOutbound
//
// break;
// case "废旧物资入库": // ScrapMaterialInbound
//
// break;
// case "借用物资出库": // BorrowMaterialOutbound
//
// break;
// case "借用物资入库": // BorrowMaterialInbound
//
// break;
// case "项目领用出库": // ProjectUseMaterialOutbound
//
// break;
// case "库存物资报废": // InventoryMaterialScrap
//
// break;
// }
switch (MotionEngine.GetModule().ExamName)
{
case "1KV电缆终端到货验收入库":
combinedClass.moderName = "1kV电缆终端";
break;
case "1KV电缆终端调拨物资入库":
combinedClass.moderName = "1kV电缆终端";
break;
case "10kV变压器到货验收入库":
combinedClass.moderName = "1kV电缆终端";
break;
case "10kV变压器调拨物资入库":
combinedClass.moderName = "10kV变压器";
break;
case "10KV电缆终端调拨物资入库":
combinedClass.moderName = "10kV电缆终端";
break;
case "电缆分支箱到货验收":
combinedClass.moderName = "电缆分支箱";
break;
case "布电线调拨物资入库":
combinedClass.moderName = "布电线";
break;
case "电缆分支箱调拨物资入库":
combinedClass.moderName = "电缆分支箱";
break;
case "电力电缆调拨物资入库":
combinedClass.moderName = "电力电缆";
break;
case "碟式绝缘子调拨物资入库":
combinedClass.moderName = "蝶式绝缘子";
break;
case "高压熔断器调拨物资入库":
combinedClass.moderName = "高压熔断器";
break;
case "交流盘形县式瓷绝缘子调拨物资入库":
combinedClass.moderName = "交流盘形悬式瓷绝缘子";
break;
case "接地短路故障指示器调拨物资入库":
combinedClass.moderName = "接地短路故障指示器";
break;
case "接续金具-接地线夹调拨物资入库":
combinedClass.moderName = "接续金具-接地线夹";
break;
case "联结金具-直角挂板调拨物资入库":
combinedClass.moderName = "联结金具-直角挂板";
break;
case "配电箱调拨物资入库":
combinedClass.moderName = "配电箱";
break;
case "线路杜式瓷绝缘子调拨物资入库":
combinedClass.moderName = "线路柱式瓷绝缘子";
break;
case "柱上断路器调拨物资入库":
combinedClass.moderName = "柱上断路器";
break;
case "低压电流互感器调拨物资入库":
combinedClass.moderName = "低压电流互感器";
break;
case "10KV三相隔离开关调拨物资入库":
combinedClass.moderName = "10kV三相隔离开关";
break;
case "交流盘形悬式瓷绝缘子到货验收入库":
combinedClass.moderName = "交流盘形悬式瓷绝缘子";
break;
case "10kV电缆终端到货验收入库":
combinedClass.moderName = "10kV电缆终端";
break;
case "低压电流互感器到货验收":
combinedClass.moderName = "低压电流互感器";
break;
case "接地短路故障指示器到货验收":
combinedClass.moderName = "接地短路故障指示器";
break;
case "联结金具-直角挂板到货验收":
combinedClass.moderName = "联结金具-直角挂板";
break;
case "10KV三相隔离开关调拨入库":
combinedClass.moderName = "10kV三相隔离开关";
break;
case "高压熔断器调拨入库":
combinedClass.moderName = "高压熔断器调";
break;
case "接线金具-接地线夹调拨入库":
combinedClass.moderName = "接线金具-接地线夹";
break;
case "配电箱调拨入库":
combinedClass.moderName = "配电箱";
break;
case "退出退役资产物资代保管出库作业":
combinedClass.moderName = "10kV变压器";
break;
case "库存物资报废流程":
combinedClass.moderName = "电力电缆";
break;
case "领用出库":
combinedClass.moderName = "10kV变压器";
break;
// case "1kV电缆终端到货验收":
// break;
}
switch (GlobalDataStorage.Instance.bigName)
{
case "采购物资入库": // PurchaseMaterialInbound
Framework.Dto.PurchaseMaterialInbound purchaseMaterialInbound = (Framework.Dto.PurchaseMaterialInbound)GlobalDataStorage.Instance.materialTaskObj;
// 只有非null值才进行赋值,避免NullReferenceException
if (purchaseMaterialInbound.quantity != null)
combinedClass.incomeQuantity = purchaseMaterialInbound.quantity.ToString();
if (purchaseMaterialInbound.materialName != null)
combinedClass.moderName = purchaseMaterialInbound.materialName.ToString();
if (purchaseMaterialInbound.code != null)
combinedClass.materialCode = purchaseMaterialInbound.code.ToString();
if (purchaseMaterialInbound.description != null)
combinedClass.materialName = purchaseMaterialInbound.description.ToString();
if (purchaseMaterialInbound.location != null)
combinedClass.TargetLocation = purchaseMaterialInbound.location.ToString();
Debug.Log($"已反序列化为PurchaseMaterialInbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "调拨物资入库": // TransferMaterialInbound
Framework.Dto.TransferMaterialInbound transferMaterialInbound = (Framework.Dto.TransferMaterialInbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (transferMaterialInbound.materialQuantity != null && transferMaterialInbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = transferMaterialInbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {transferMaterialInbound.materialQuantity}");
}
else if (transferMaterialInbound.quantity != null && transferMaterialInbound.quantity > 0)
{
combinedClass.incomeQuantity = transferMaterialInbound.quantity.ToString();
Debug.Log($"使用quantity值: {transferMaterialInbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (transferMaterialInbound.materialName != null)
combinedClass.moderName = transferMaterialInbound.materialName.ToString();
if (transferMaterialInbound.materialCode != null)
combinedClass.materialCode = transferMaterialInbound.materialCode.ToString();
if (transferMaterialInbound.materialDescription != null)
combinedClass.materialName = transferMaterialInbound.materialDescription.ToString();
if (transferMaterialInbound.binNumber != null)
combinedClass.TargetLocation = transferMaterialInbound.binNumber.ToString();
Debug.Log($"已反序列化为TransferMaterialInbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "退料物资入库": // ReturnMaterialInbound
Framework.Dto.ReturnMaterialInbound returnMaterialInbound = (Framework.Dto.ReturnMaterialInbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (returnMaterialInbound.materialQuantity != null && returnMaterialInbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = returnMaterialInbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {returnMaterialInbound.materialQuantity}");
}
else if (returnMaterialInbound.quantity != null && returnMaterialInbound.quantity > 0)
{
combinedClass.incomeQuantity = returnMaterialInbound.quantity.ToString();
Debug.Log($"使用quantity值: {returnMaterialInbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (returnMaterialInbound.materialName != null)
combinedClass.moderName = returnMaterialInbound.materialName.ToString();
if (returnMaterialInbound.materialCode != null)
combinedClass.materialCode = returnMaterialInbound.materialCode.ToString();
if (returnMaterialInbound.materialDescription != null)
combinedClass.materialName = returnMaterialInbound.materialDescription.ToString();
if (returnMaterialInbound.binNumber != null)
combinedClass.TargetLocation = returnMaterialInbound.binNumber.ToString();
Debug.Log($"已反序列化为ReturnMaterialInbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "代保管物资入库": // CustodyMaterialInbound
Framework.Dto.CustodyMaterialInbound custodyMaterialInbound = (Framework.Dto.CustodyMaterialInbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (custodyMaterialInbound.materialQuantity != null && custodyMaterialInbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = custodyMaterialInbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {custodyMaterialInbound.materialQuantity}");
}
else if (custodyMaterialInbound.quantity != null && custodyMaterialInbound.quantity > 0)
{
combinedClass.incomeQuantity = custodyMaterialInbound.quantity.ToString();
Debug.Log($"使用quantity值: {custodyMaterialInbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (custodyMaterialInbound.materialName != null)
combinedClass.moderName = custodyMaterialInbound.materialName.ToString();
if (custodyMaterialInbound.materialCode != null)
combinedClass.materialCode = custodyMaterialInbound.materialCode.ToString();
if (custodyMaterialInbound.materialDescription != null)
combinedClass.materialName = custodyMaterialInbound.materialDescription.ToString();
if (custodyMaterialInbound.binNumber != null)
combinedClass.TargetLocation = custodyMaterialInbound.binNumber.ToString();
Debug.Log($"已反序列化为CustodyMaterialInbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "代保管物资出库": // CustodyMaterialOutbound
Framework.Dto.CustodyMaterialOutbound custodyMaterialOutbound = (Framework.Dto.CustodyMaterialOutbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (custodyMaterialOutbound.materialQuantity != null && custodyMaterialOutbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = custodyMaterialOutbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {custodyMaterialOutbound.materialQuantity}");
}
else if (custodyMaterialOutbound.quantity != null && custodyMaterialOutbound.quantity > 0)
{
combinedClass.incomeQuantity = custodyMaterialOutbound.quantity.ToString();
Debug.Log($"使用quantity值: {custodyMaterialOutbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (custodyMaterialOutbound.materialName != null)
combinedClass.moderName = custodyMaterialOutbound.materialName.ToString();
if (custodyMaterialOutbound.materialCode != null)
combinedClass.materialCode = custodyMaterialOutbound.materialCode.ToString();
if (custodyMaterialOutbound.materialDescription != null)
combinedClass.materialName = custodyMaterialOutbound.materialDescription.ToString();
if (custodyMaterialOutbound.storageBin != null)
combinedClass.TargetLocation = custodyMaterialOutbound.storageBin.ToString();
if (custodyMaterialOutbound.batchNumber != null)
combinedClass.BatchNumber = custodyMaterialOutbound.batchNumber.ToString();
Debug.Log($"已反序列化为CustodyMaterialOutbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "调拨物资出库": // TransferMaterialOutbound
Framework.Dto.TransferMaterialOutbound transferMaterialOutbound = (Framework.Dto.TransferMaterialOutbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (transferMaterialOutbound.materialQuantity != null && transferMaterialOutbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = transferMaterialOutbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {transferMaterialOutbound.materialQuantity}");
}
else if (transferMaterialOutbound.quantity != null && transferMaterialOutbound.quantity > 0)
{
combinedClass.incomeQuantity = transferMaterialOutbound.quantity.ToString();
Debug.Log($"使用quantity值: {transferMaterialOutbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (transferMaterialOutbound.materialName != null)
combinedClass.moderName = transferMaterialOutbound.materialName.ToString();
if (transferMaterialOutbound.materialCode != null)
combinedClass.materialCode = transferMaterialOutbound.materialCode.ToString();
if (transferMaterialOutbound.materialDescription != null)
combinedClass.materialName = transferMaterialOutbound.materialDescription.ToString();
if (transferMaterialOutbound.storageBin != null)
combinedClass.TargetLocation = transferMaterialOutbound.storageBin.ToString();
if (transferMaterialOutbound.batchNumber != null)
combinedClass.BatchNumber = transferMaterialOutbound.batchNumber.ToString();
Debug.Log($"已反序列化为TransferMaterialOutbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "废旧物资入库": // ScrapMaterialInbound
Framework.Dto.ScrapMaterialInbound scrapMaterialInbound = (Framework.Dto.ScrapMaterialInbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (scrapMaterialInbound.materialQuantity != null && scrapMaterialInbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = scrapMaterialInbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {scrapMaterialInbound.materialQuantity}");
}
else if (scrapMaterialInbound.quantity != null && scrapMaterialInbound.quantity > 0)
{
combinedClass.incomeQuantity = scrapMaterialInbound.quantity.ToString();
Debug.Log($"使用quantity值: {scrapMaterialInbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (scrapMaterialInbound.materialName != null)
combinedClass.moderName = scrapMaterialInbound.materialName.ToString();
if (scrapMaterialInbound.materialCode != null)
combinedClass.materialCode = scrapMaterialInbound.materialCode.ToString();
if (scrapMaterialInbound.materialDescription != null)
combinedClass.materialName = scrapMaterialInbound.materialDescription.ToString();
if (scrapMaterialInbound.storageBin != null)
combinedClass.TargetLocation = scrapMaterialInbound.storageBin.ToString();
if (scrapMaterialInbound.batchNumber != null)
combinedClass.BatchNumber = scrapMaterialInbound.batchNumber.ToString();
Debug.Log($"已反序列化为ScrapMaterialInbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "借用物资出库": // BorrowMaterialOutbound
Framework.Dto.BorrowMaterialOutbound borrowMaterialOutbound = (Framework.Dto.BorrowMaterialOutbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (borrowMaterialOutbound.materialQuantity != null && borrowMaterialOutbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = borrowMaterialOutbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {borrowMaterialOutbound.materialQuantity}");
}
else if (borrowMaterialOutbound.quantity != null && borrowMaterialOutbound.quantity > 0)
{
combinedClass.incomeQuantity = borrowMaterialOutbound.quantity.ToString();
Debug.Log($"使用quantity值: {borrowMaterialOutbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (borrowMaterialOutbound.materialName != null)
combinedClass.moderName = borrowMaterialOutbound.materialName.ToString();
if (borrowMaterialOutbound.materialCode != null)
combinedClass.materialCode = borrowMaterialOutbound.materialCode.ToString();
if (borrowMaterialOutbound.materialDescription != null)
combinedClass.materialName = borrowMaterialOutbound.materialDescription.ToString();
Debug.Log($"已反序列化为BorrowMaterialOutbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "借用物资入库": // BorrowMaterialInbound
Framework.Dto.BorrowMaterialInbound borrowMaterialInbound = (Framework.Dto.BorrowMaterialInbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (borrowMaterialInbound.materialQuantity != null && borrowMaterialInbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = borrowMaterialInbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {borrowMaterialInbound.materialQuantity}");
}
else if (borrowMaterialInbound.quantity != null && borrowMaterialInbound.quantity > 0)
{
combinedClass.incomeQuantity = borrowMaterialInbound.quantity.ToString();
Debug.Log($"使用quantity值: {borrowMaterialInbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (borrowMaterialInbound.materialName != null)
combinedClass.moderName = borrowMaterialInbound.materialName.ToString();
if (borrowMaterialInbound.materialCode != null)
combinedClass.materialCode = borrowMaterialInbound.materialCode.ToString();
if (borrowMaterialInbound.materialDescription != null)
combinedClass.materialName = borrowMaterialInbound.materialDescription.ToString();
Debug.Log($"已反序列化为BorrowMaterialInbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "项目领用出库": // ProjectUseMaterialOutbound
Framework.Dto.ProjectUseMaterialOutbound projectUseMaterialOutbound = (Framework.Dto.ProjectUseMaterialOutbound)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (projectUseMaterialOutbound.materialQuantity != null && projectUseMaterialOutbound.materialQuantity > 0)
{
combinedClass.incomeQuantity = projectUseMaterialOutbound.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {projectUseMaterialOutbound.materialQuantity}");
}
else if (projectUseMaterialOutbound.quantity != null && projectUseMaterialOutbound.quantity > 0)
{
combinedClass.incomeQuantity = projectUseMaterialOutbound.quantity.ToString();
Debug.Log($"使用quantity值: {projectUseMaterialOutbound.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (projectUseMaterialOutbound.materialName != null)
combinedClass.moderName = projectUseMaterialOutbound.materialName.ToString();
if (projectUseMaterialOutbound.materialCode != null)
combinedClass.materialCode = projectUseMaterialOutbound.materialCode.ToString();
if (projectUseMaterialOutbound.materialDescription != null)
combinedClass.materialName = projectUseMaterialOutbound.materialDescription.ToString();
Debug.Log($"已反序列化为ProjectUseMaterialOutbound: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
case "库存物资报废": // InventoryMaterialScrap
Framework.Dto.InventoryMaterialScrap inventoryMaterialScrap = (Framework.Dto.InventoryMaterialScrap)GlobalDataStorage.Instance.materialTaskObj;
// 智能判断数量字段:优先使用materialQuantity,如果为0则使用quantity
if (inventoryMaterialScrap.materialQuantity != null && inventoryMaterialScrap.materialQuantity > 0)
{
combinedClass.incomeQuantity = inventoryMaterialScrap.materialQuantity.ToString();
Debug.Log($"使用materialQuantity值: {inventoryMaterialScrap.materialQuantity}");
}
else if (inventoryMaterialScrap.quantity != null && inventoryMaterialScrap.quantity > 0)
{
combinedClass.incomeQuantity = inventoryMaterialScrap.quantity.ToString();
Debug.Log($"使用quantity值: {inventoryMaterialScrap.quantity}");
}
else
{
Debug.Log("两个数量字段都为0或null,不进行赋值");
}
if (inventoryMaterialScrap.materialName != null)
combinedClass.moderName = inventoryMaterialScrap.materialName.ToString();
if (inventoryMaterialScrap.materialCode != null)
combinedClass.materialCode = inventoryMaterialScrap.materialCode.ToString();
if (inventoryMaterialScrap.materialDescription != null)
combinedClass.materialName = inventoryMaterialScrap.materialDescription.ToString();
Debug.Log($"已反序列化为InventoryMaterialScrap: {JsonConvert.SerializeObject(GlobalDataStorage.Instance.materialTaskObj)}");
break;
}
// 检查并显示匹配的科目
CheckAndDisplayMatchingSubject();
FlowStepController.Instance.stepInits = FindObjectsOfType().ToList();
moderController.InitializeModelProcessors();
//初始化场景
//TutorialGuideManager.Instance.StartGuide();
if (taskPrompt != null)
{
// taskPrompt.Init(combinedClass.stage);
taskPrompt.Init(GlobalDataStorage.Instance.GetTaskBook());
}
if (moderController != null)
{
moderController.Init(combinedClass.moderName);
}
if (documentManagement != null)
{
documentManagement.Init();
}
FlowStepController.Instance.Init();
pice = GetPice();
}
///
/// 解析JSON为MaterialModel,然后将字段值赋值给combinedClass的对应字段
///
/// JSON字符串
public void ParseMaterialAndAssignToCombinedClass(string jsonString)
{
try
{
// 先解析JSON为MaterialModel对象
InventoryEntry entry = JsonConvert.DeserializeObject(jsonString);
// 匹配字段赋值
combinedClass.materialCode = entry.Code; // 物料编码
combinedClass.materialName = entry.Description; // 物料描述(说明:InventoryEntry 中的 Description 实际为物资描述)
combinedClass.moderName = entry.ModelName; // 物料模型名称
combinedClass.BatchNumber = entry.BatchNumber; // 批次号
combinedClass.storageNumber = entry.StorageDocument; // 入库单编号
combinedClass.goodsTransferNumber = entry.DocNo; // 货物交接单号
combinedClass.StockLocationCode = entry.InventoryLocation; // 库存地点代码
combinedClass.WarehouseNumber = entry.WarehouseNumber; // 仓库号
combinedClass.FactoryCode = entry.FactoryCode; // 工厂代码
combinedClass.TransportationTypeCode = entry.MovementType; // 移动类型代码
combinedClass.TargetLocation = entry.BinNumber; // 目标仓位
combinedClass.incomeQuantity = entry.ReceivedQty; // 收入数量
combinedClass.inventoryQuantity = entry.BalanceQty; // 结存数量
combinedClass.issueQuantity = entry.IssuedQty; // 发出数量
combinedClass.initialQuantity = entry.InitialQty; // 期初库存数量
combinedClass.materialUnit = entry.Quantity; // 物资数量单位
combinedClass.warehouseKeeper = entry.Librarian; // 库管员
combinedClass.warehouseDirector = entry.WarehouseSupervisor; // 仓库主管
combinedClass.materialCompanySign = entry.SupplierSign; // 物资公司签字
combinedClass.unitSign = entry.Receiver; // 单位签收人
combinedClass.supplierDelivery = entry.SupplierDeliverer; // 供应商交付人
combinedClass.shipper = entry.Shipper; // 发货方
combinedClass.deliveryParty = entry.Consignee; // 收货方
combinedClass.materialVoucherNumber = entry.MaterialDocument; // 物料凭证编号
combinedClass.AccountingDate = entry.DocumentDate; // 过账日期
combinedClass.Reviewers = entry.WarehouseSupervisor; // 审核人签字(假设复用仓库主管)
combinedClass.Suppliesdepartment = entry.SupplierSign; // 物资部门签字(假设复用物资公司签字)
combinedClass.Subjectname = MotionEngine.GetModule().ExamData.Data.examName; // 科目名
combinedClass.unitPrice = ""; // 收货单价
combinedClass.TodayTime = ""; // 今天日期
combinedClass.VoucherDateStart = ""; // 凭证日期Start
combinedClass.VoucherDateEnd = ""; // 凭证日期End
combinedClass.OrderNumber = ""; // 订单号
combinedClass.NeedNumber = ""; // 需求数量
combinedClass.Attn = ""; // 经办人签字
combinedClass.SourceLocation = ""; // 源发地仓位
// 其他未匹配字段统一初始化为 ""
// combinedClass.stage = ""; // 任务要求
combinedClass.storageType = ""; // 出入库类型
combinedClass.ContractNumber = ""; // 合同编号
combinedClass.StockLocationName = ""; // 库存地点名称
combinedClass.FactoryName = ""; // 工厂名称
combinedClass.CompanyCode = ""; // 公司代码
combinedClass.CompanyName = ""; // 公司名称
combinedClass.TransportationTypeName = ""; // 移动类型名称
combinedClass.TransportationTypeDescription = ""; // 装运类型描述
combinedClass.SupplierCode = ""; // 供应商编码
combinedClass.SupplierName = ""; // 供应商名称
combinedClass.materialNumber = ""; // 物料编号
combinedClass.materialVoucherCreator = ""; // 物料凭证创建人
combinedClass.accountingVoucherNumber = ""; // 会计凭证号
combinedClass.DeliveryDate = ""; // 实际交货期
combinedClass.FromPartyDeliveryDate = ""; // 发货方时间
combinedClass.ToPartyDeliveryDate = ""; // 收货方时间
combinedClass.SupplierSignatureDate = ""; // 物资供应公司签字日期
combinedClass.ProjectUnitSignatureDate = ""; // 项目单位接收人签字日期
combinedClass.SupplierDeliverySignatureDate = ""; // 供应商交付人签字日期
combinedClass.PurchaseVoucherNumber = ""; // 采购凭证号
combinedClass.PurchaseVoucherItemNumber = ""; // 采购凭证的项目编号
combinedClass.SupplyPlanNumber = ""; // 供应计划编号
combinedClass.ElectronicAcceptanceReportNumber = ""; // 电子验收报告编号
Debug.Log("=== CombinedClass 字段值打印 ===");
Debug.Log($"任务要求: {combinedClass.stage}");
Debug.Log($"出入库类型: {combinedClass.storageType}");
Debug.Log($"物料编码: {combinedClass.materialCode}");
Debug.Log($"物料描述: {combinedClass.materialName}");
Debug.Log($"物料模型名称: {combinedClass.moderName}");
Debug.Log($"物料编号: {combinedClass.materialNumber}");
Debug.Log($"批次号: {combinedClass.BatchNumber}");
Debug.Log($"入库单编号: {combinedClass.storageNumber}");
Debug.Log($"货物交接单号: {combinedClass.goodsTransferNumber}");
Debug.Log($"合同编号: {combinedClass.ContractNumber}");
Debug.Log($"库存地点代码: {combinedClass.StockLocationCode}");
Debug.Log($"库存地点名称: {combinedClass.StockLocationName}");
Debug.Log($"仓库号: {combinedClass.WarehouseNumber}");
Debug.Log($"工厂代码: {combinedClass.FactoryCode}");
Debug.Log($"工厂名称: {combinedClass.FactoryName}");
Debug.Log($"公司代码: {combinedClass.CompanyCode}");
Debug.Log($"公司名称: {combinedClass.CompanyName}");
Debug.Log($"移动类型代码: {combinedClass.TransportationTypeCode}");
Debug.Log($"移动类型名称: {combinedClass.TransportationTypeName}");
Debug.Log($"装运类型描述: {combinedClass.TransportationTypeDescription}");
Debug.Log($"供应商编码: {combinedClass.SupplierCode}");
Debug.Log($"供应商名称: {combinedClass.SupplierName}");
Debug.Log($"目标仓位: {combinedClass.TargetLocation}");
Debug.Log($"源发地仓位: {combinedClass.SourceLocation}");
Debug.Log($"收入数量: {combinedClass.incomeQuantity}");
Debug.Log($"结存数量: {combinedClass.inventoryQuantity}");
Debug.Log($"发出数量: {combinedClass.issueQuantity}");
Debug.Log($"期初库存数量: {combinedClass.initialQuantity}");
Debug.Log($"物资数量单位: {combinedClass.materialUnit}");
Debug.Log($"收货单价: {combinedClass.unitPrice}");
Debug.Log($"库管员: {combinedClass.warehouseKeeper}");
Debug.Log($"仓库主管: {combinedClass.warehouseDirector}");
Debug.Log($"物资公司签字: {combinedClass.materialCompanySign}");
Debug.Log($"单位签收人: {combinedClass.unitSign}");
Debug.Log($"供应商交付人: {combinedClass.supplierDelivery}");
Debug.Log($"发货方: {combinedClass.shipper}");
Debug.Log($"收货方: {combinedClass.deliveryParty}");
Debug.Log($"物料凭证创建人: {combinedClass.materialVoucherCreator}");
Debug.Log($"会计凭证号: {combinedClass.accountingVoucherNumber}");
Debug.Log($"物料凭证编号: {combinedClass.materialVoucherNumber}");
Debug.Log($"实际交货期: {combinedClass.DeliveryDate}");
Debug.Log($"过账日期: {combinedClass.AccountingDate}");
Debug.Log($"发货方时间: {combinedClass.FromPartyDeliveryDate}");
Debug.Log($"收货方时间: {combinedClass.ToPartyDeliveryDate}");
Debug.Log($"物资供应公司签字日期: {combinedClass.SupplierSignatureDate}");
Debug.Log($"项目单位接收人签字日期: {combinedClass.ProjectUnitSignatureDate}");
Debug.Log($"供应商交付人签字日期: {combinedClass.SupplierDeliverySignatureDate}");
Debug.Log($"采购凭证号: {combinedClass.PurchaseVoucherNumber}");
Debug.Log($"采购凭证的项目编号: {combinedClass.PurchaseVoucherItemNumber}");
Debug.Log($"凭证日期Start: {combinedClass.VoucherDateStart}");
Debug.Log($"凭证日期End: {combinedClass.VoucherDateEnd}");
Debug.Log($"供应计划编号: {combinedClass.SupplyPlanNumber}");
Debug.Log($"电子验收报告编号: {combinedClass.ElectronicAcceptanceReportNumber}");
Debug.Log($"订单号: {combinedClass.OrderNumber}");
Debug.Log($"需求数量: {combinedClass.NeedNumber}");
Debug.Log($"审核人签字: {combinedClass.Reviewers}");
Debug.Log($"经办人签字: {combinedClass.Attn}");
Debug.Log($"物资部门签字: {combinedClass.Suppliesdepartment}");
Debug.Log($"今天日期: {combinedClass.TodayTime}");
Debug.Log($"科目名: {combinedClass.Subjectname}");
Debug.Log("=== 打印结束 ===");
//Debug.Log($"【GameManager】成功将MaterialModel数据赋值到combinedClass:{combinedClass.modelName},数量:{combinedClass.quantity}");
}
catch (System.Exception e)
{
Debug.LogError($"【GameManager】解析MaterialModel失败:{e.Message}");
}
}
///
/// 物资数量
///
public int marteialnumber;
///
/// 单位
///
public string unit;
///
/// 单价
///
public string pice;
///
/// 获取价格
///
public string GetPice()
{
if (ModerController.Instance.checkGoods.Count > 0)
{
if (ModerController.Instance.checkGoods[0].name.Contains("1kV电缆终端"))
{
return "123.89";
}
else if (ModerController.Instance.checkGoods[0].name.Contains("10kV变压器"))
{
return "75358.67";
}
else if (ModerController.Instance.checkGoods[0].name.Contains("10kV电缆终端"))
{
return "457.52";
}
else if (ModerController.Instance.checkGoods[0].name.Contains("10kV三相隔离开关"))
{
return "1118.58";
}
else if (MotionEngine.GetModule().ExamName.Contains("布电线"))
{
return "7.22";
}
else if (MotionEngine.GetModule().ExamName.Contains("低压电流互感器"))
{
return "272.57";
}
else if (MotionEngine.GetModule().ExamName.Contains("电缆分支箱"))
{
return "6273.05";
}
else if (MotionEngine.GetModule().ExamName.Contains("电力电缆"))
{
return "908309.73";
}
else if (MotionEngine.GetModule().ExamName.Contains("蝶式绝缘子"))
{
return "6.19";
}
else if (MotionEngine.GetModule().ExamName.Contains("高压熔断器"))
{
return "349.56";
}
else if (MotionEngine.GetModule().ExamName.Contains("交流盘形悬式瓷绝缘子"))
{
return "51.07";
}
else if (MotionEngine.GetModule().ExamName.Contains("接地短路故障指示器"))
{
return "183.19";
}
else if (MotionEngine.GetModule().ExamName.Contains("接续金具-接地线夹"))
{
return "10.09";
}
else if (MotionEngine.GetModule().ExamName.Contains("联结金具-直角挂板"))
{
return "6.27";
}
else if (MotionEngine.GetModule().ExamName.Contains("配电箱"))
{
return "17683.19";
}
else if (MotionEngine.GetModule().ExamName.Contains("线路柱式瓷绝缘子"))
{
return "44.27";
}
else if (MotionEngine.GetModule().ExamName.Contains("柱上断路器"))
{
return "21170";
}
else
{
return "";
}
}
else
{
return "";
}
}
///
/// 获取数量
///
public void GetNumber()
{
if (MotionEngine.GetModule().GetTaskBookValueByMapping("台") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("台"));
unit = "台";
}
if (MotionEngine.GetModule().GetTaskBookValueByMapping("套") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("套"));
unit = "套";
}
if (MotionEngine.GetModule().GetTaskBookValueByMapping("组") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("组"));
unit = "组";
}
if (MotionEngine.GetModule().GetTaskBookValueByMapping("米") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("米"));
unit = "米";
}
if (MotionEngine.GetModule().GetTaskBookValueByMapping("千米") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("千米"));
unit = "千米";
}
if (MotionEngine.GetModule().GetTaskBookValueByMapping("只") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("只"));
unit = "只";
}
if (MotionEngine.GetModule().GetTaskBookValueByMapping("片") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("片"));
unit = "片";
}
if (MotionEngine.GetModule().GetTaskBookValueByMapping("付") != "")
{
marteialnumber = int.Parse(MotionEngine.GetModule().GetTaskBookValueByMapping("付"));
unit = "付";
}
}
///
/// 检查并显示匹配的科目
///
private void CheckAndDisplayMatchingSubject()
{
if (subjects == null || subjects.Length == 0)
{
Debug.LogWarning("没有配置科目对象");
return;
}
string examName = MotionEngine.GetModule().ExamName;
if (string.IsNullOrEmpty(examName))
{
Debug.LogWarning("未获取到题目名称");
return;
}
// 遍历所有科目对象
foreach (var subject in subjects)
{
Debug.Log(subject.name);
if (subject != null && examName.Contains(subject.name))
{
// 显示匹配的科目对象
subject.gameObject.SetActive(true);
Debug.Log($"找到匹配的科目: {subject.name}");
}
else if (subject != null)
{
// 隐藏不匹配的科目对象
subject.gameObject.SetActive(false);
}
}
}
//
// ///
// /// 示例:使用提供的JSON字符串进行测试
// ///
// [ContextMenu("测试MaterialModel解析赋值")]
// public void TestMaterialModelParsing()
// {
// string testJson = "{\"quantity\":\"6\",\"modelName\":\"111\",\"code\":\"33\",\"description\":\"44\",\"storageArea\":\"横梁式货架存储区(B01)\",\"location\":\"B01-01\",\"docNo\":\"111\",\"factoryCode\":\"222\",\"batch\":\"33\",\"inventoryLocation\":\"445\",\"librarian\":\"12得分\",\"warehouseSupervisor\":\"阿斯蒂芬\",\"supplierSign\":\"操作需\",\"receiver\":\"出v发的\",\"supplierDeliverer\":\"阿斯蒂芬\",\"shipper\":\"尺寸v\",\"consignee\":\"试试\",\"receivedQty\":\"1\",\"balanceQty\":\"2\",\"issuedQty\":\"3\",\"initialQty\":\"3\"}";
//
// Debug.Log("=== 开始测试JSON解析 ===");
// ParseMaterialAndAssignToCombinedClass(testJson);
//
// Debug.Log("=== 解析完成,打印combinedClass所有字段 ===");
// }
//
// ///
// /// 使用用户提供的JSON字符串进行测试
// ///
// [ContextMenu("测试用户JSON")]
// public void TestUserProvidedJson()
// {
// // 注意:将quantity从数字6改为字符串"6",因为MaterialModel中的字段都是string类型
// string userJson = "{\"quantity\":\"6\",\"modelName\":\"111\",\"code\":\"33\",\"description\":\"44\",\"storageArea\":\"横梁式货架存储区(B01)\",\"location\":\"B01-01\",\"docNo\":\"111\",\"factoryCode\":\"222\",\"batch\":\"33\",\"inventoryLocation\":\"445\",\"librarian\":\"12得分\",\"warehouseSupervisor\":\"阿斯蒂芬\",\"supplierSign\":\"操作需\",\"receiver\":\"出v发的\",\"supplierDeliverer\":\"阿斯蒂芬\",\"shipper\":\"尺寸v\",\"consignee\":\"试试\",\"receivedQty\":\"1\",\"balanceQty\":\"2\",\"issuedQty\":\"3\",\"initialQty\":\"3\"}";
//
// Debug.Log("=== 开始测试用户提供的JSON ===");
// ParseMaterialAndAssignToCombinedClass(userJson);
//
// Debug.Log("=== 解析完成,打印combinedClass所有字段 ===");
// }
}