首次提交:添加src文件夹代码

This commit is contained in:
2026-02-27 14:02:43 +08:00
commit d330cfbca7
4184 changed files with 5546478 additions and 0 deletions

View File

@@ -0,0 +1,156 @@
using Cowain.Bake.BLL;
using Cowain.Bake.Common.Core;
using Cowain.Bake.Common.Enums;
using Cowain.Bake.Model;
using Cowain.Bake.Model.Models;
using Newtonsoft.Json;
using Prism.Commands;
using Prism.Mvvm;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using Unity;
namespace Cowain.Bake.Main.ViewModels
{
internal class MoistureValueViewMode: BindableBase//, Prism.Services.Dialogs.IDialogAware
{
private readonly IUnityContainer _unityContainer;
private float? septumwaterJudge;
private float? cathodewaterJudge;
private float? anodewaterJudge ;
//public string WaterValueModel;
List<WaterModel> waterModels = null;
public CavityDtlViewModel thatParent = null;
//public string Title => "输入水含量值";
//// 弹窗打开时触发:读取传递的参数
//public void OnDialogOpened(IDialogParameters parameters)
//{
// thatParent = parameters.GetValue<CavityDtlViewModel>("this");
// WaterValueModel = thatParent.WaterValueModel ?? "";
//}
//// 允许关闭弹窗返回true即可
//public bool CanCloseDialog() => true;
//// 弹窗关闭后清理资源(可选)
//public void OnDialogClosed() { }
//// Prism 8中用于触发弹窗关闭的事件
//public event Action<IDialogResult> RequestClose;
//public DelegateCommand CloseCommand =>
// new DelegateCommand(() =>
// RequestClose?.Invoke(new DialogResult(ButtonResult.OK)));
public MoistureValueViewMode(IUnityContainer unityContainer)
{
_unityContainer = unityContainer;
}
public float? SeptumWaterJudge //隔离膜水分
{
get => septumwaterJudge;
set => SetProperty(ref septumwaterJudge, value);
}
public float? AnodeWaterJudge //正极水分
{
get => anodewaterJudge;
set => SetProperty(ref anodewaterJudge, value);
}
public float? CathodeWaterJudge //负极水分
{
get => cathodewaterJudge;
set => SetProperty(ref cathodewaterJudge, value);
}
public DelegateCommand<object> Judge => new DelegateCommand<object>((x) =>
{
int septumwaterTargetValue = int.Parse(_unityContainer.Resolve<SysSetupService>().GetValueByParaID(ESysSetup.SeptumwaterTargetJudge.ToString()));
int cathodewaterTargetValue = int.Parse(_unityContainer.Resolve<SysSetupService>().GetValueByParaID(ESysSetup.CathodewaterTargetJudge.ToString()));
int anodewaterTargetValue = int.Parse(_unityContainer.Resolve<SysSetupService>().GetValueByParaID(ESysSetup.AnodewaterTargetJudge.ToString()));
//MessageBoxResult result = HandyControl.Controls.MessageBox.Ask($@"是否确定为手动输入的水含量值?", "操作提示");
//if (result == System.Windows.MessageBoxResult.Cancel)
//{
// return;
//}
LogHelper.Instance.Warn($"开始测水含量0!");
if (!septumwaterJudge.HasValue
|| !anodewaterJudge.HasValue
|| !cathodewaterJudge.HasValue
)
{
HandyControl.Controls.MessageBox.Warning("数值为空, 请人工输入!");
return;
}
var WaterModel = new WaterModel();
WaterModel.AnodeWaterValue = anodewaterJudge.ToString();
WaterModel.CathodeWaterValue = cathodewaterJudge.ToString();
WaterModel.SeptumWaterValue = septumwaterJudge.ToString();
int palletStatus = (int)EPalletStatus.TestOK;
if (septumwaterJudge >= septumwaterTargetValue
|| cathodewaterJudge >= cathodewaterTargetValue
|| anodewaterJudge >= anodewaterTargetValue)
{
palletStatus = (int)EPalletStatus.TestNG;
MessageBoxResult judgeResult = HandyControl.Controls.MessageBox.Ask($@"本次判定水含量值为NG,请确认!", "判定提示");
if (judgeResult == System.Windows.MessageBoxResult.Cancel)
{
return;
}
}
//WaterValueModel,在这个界面点【判定】,会刷新这个值。也就是这个判断结果会累加,但在【工站明细】中不会
waterModels = JsonConvert.DeserializeObject<List<WaterModel>>(thatParent.WaterValueModel??""); //WaterValueModel:数据库中的水含量数据
WaterModel.BatteryCode = GetBatteryCode(waterModels);
if (null == waterModels)
{
waterModels = new List<WaterModel>();
}
else
{
WaterModel.Id = waterModels.Max(w => w.Id) + 1;
}
waterModels.Add(WaterModel);
thatParent.MoistureRuturn(palletStatus, JsonConvert.SerializeObject(waterModels));
HandyControl.Controls.MessageBox.Info("设置测试水含量成功");
});
string GetBatteryCode(List<WaterModel> waterList)
{
var dummys = _unityContainer.Resolve<BatteryInfoService>().GetWaterBatteryCode(thatParent.VirtualId);
if (0 == dummys.Count)
{
return "";
}
if (waterList == null
|| 0 == waterList.Count)
{
return dummys[0].BatteryCode;
}
List<string> dummyCodes = dummys.Select(x => x.BatteryCode).ToList();
List<string> waterCodes = waterList.Select(x => x.BatteryCode).ToList();
// 查找 list1 中不在 list2 中的字符串 var notInList2 = list1.Except(list2);
var batteryCode = dummyCodes.Except(waterCodes);
if (0 ==batteryCode.Count())
{
return waterList.OrderByDescending(x => x.Id).FirstOrDefault().BatteryCode;//最后一次的假电芯码
}
return batteryCode.First();
}
}
}