add-添加登录

foamRearStore
liuwf 8 months ago
parent a64d7a5273
commit 97ab6ed5e3

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

@ -5,7 +5,6 @@ using HighWayIot.Repository.service;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Aucma.Scada.Business
{
@ -33,7 +32,7 @@ namespace Aucma.Scada.Business
private RegisterServices registerServices = RegisterServices.Instance;
#endregion
#region 接口引用
@ -60,7 +59,7 @@ namespace Aucma.Scada.Business
/// 下传执行计划
/// </summary>
/// <param name="planInfo"></param>
public delegate void NextPassExecutePlanInfo(ExecutePlanInfo planInfo,BaseSpaceInfo spaceInfo = null);
public delegate void NextPassExecutePlanInfo(ExecutePlanInfo planInfo, BaseSpaceInfo spaceInfo = null);
public event NextPassExecutePlanInfo NextPassExecutePlanInfoEvent;
/// <summary>
@ -83,7 +82,7 @@ namespace Aucma.Scada.Business
{
_productPlanInfoService = registerServices.GetService<IProductPlanInfoService>();
_executePlanInfoService = registerServices.GetService<IExecutePlanInfoService>();
}
@ -139,30 +138,30 @@ namespace Aucma.Scada.Business
/// </summary>
/// <param name="productPlanCode"></param>
/// <param name="transmitAmount"></param>
public bool PlanTransmitByProductPlan(string productPlanCode, int transmitAmount,BaseSpaceInfo spaceInfo = null)
public bool PlanTransmitByProductPlan(string productPlanCode, int transmitAmount, BaseSpaceInfo spaceInfo = null)
{
bool result = false;
try
{
// 先删除多余未完成的组装执行计划
List<ExecutePlanInfo> exePlans = _executePlanInfoService.GetExecutePlanInfosByProductLineCode(appConfig.stationCode,true);
if(exePlans != null && exePlans.Count>5)
List<ExecutePlanInfo> exePlans = _executePlanInfoService.GetExecutePlanInfosByProductLineCode(appConfig.stationCode, true);
if (exePlans != null && exePlans.Count > 5)
{
exePlans = exePlans.OrderBy(x => x.createdTime).ToList();
List<ExecutePlanInfo> tempList = exePlans.Take(exePlans.Count-5).ToList();
List<ExecutePlanInfo> tempList = exePlans.Take(exePlans.Count - 5).ToList();
foreach (var exePlan in tempList)
{
_executePlanInfoService.DeleteExecutePlanInfoByPlanCode(exePlan.executePlanCode);
}
}
}
var productPlanInfo = _productPlanInfoService.GetProductPlanByPlanCode(productPlanCode);
if (productPlanInfo != null)
{
ExecutePlanInfo executePlanInfo = new ExecutePlanInfo();
executePlanInfo.executePlanCode = System.Guid.NewGuid().ToString("N");
executePlanInfo.productPlanCode = productPlanInfo.planCode;
@ -171,11 +170,11 @@ namespace Aucma.Scada.Business
executePlanInfo.materialCode = productPlanInfo.materialCode;
executePlanInfo.materialName = productPlanInfo.materialName;
executePlanInfo.executeOrder = _executePlanInfoService.GetExecuteOrderByProductLineCode(appConfig.stationCode);
if (spaceInfo == null)
{//下总装计划 筛选货道
spaceInfo = GetSpaceInfoByMaterialTypeEvent?.Invoke(appConfig.foamStoreCode, executePlanInfo.materialCode);
if(transmitAmount > spaceInfo.spaceStock)
if (transmitAmount > spaceInfo.spaceStock)
{
//弹框提示
PrintMessageEvent?.Invoke($"收到出库计划数:{transmitAmount},匹配到货道:{spaceInfo.spaceCode},库存数:{spaceInfo.spaceStock},已自动将计划数改为库存!");
@ -185,14 +184,14 @@ namespace Aucma.Scada.Business
{
executePlanInfo.planAmount = transmitAmount;
}
}
else // 手动出一个或者整道出
{
executePlanInfo.planAmount = transmitAmount;
}
}
executePlanInfo.executeStatus = 1;
executePlanInfo.createdTime = DateTime.Now;
result = _executePlanInfoService.InsertExecutePlanInfo(executePlanInfo);
@ -201,7 +200,7 @@ namespace Aucma.Scada.Business
GetEexecutePlanInfosByProductLineCode();
// 直接下达 2023-12-20
ExecutePlanInfo_NextPass(executePlanInfo.executePlanCode, "",spaceInfo);
ExecutePlanInfo_NextPass(executePlanInfo.executePlanCode, "", spaceInfo);
}
}
}
@ -287,7 +286,7 @@ namespace Aucma.Scada.Business
/// 下传计划
/// </summary>
/// <param name="planCode"></param>
public ExecutePlanInfo ExecutePlanInfo_NextPass(string planCode, string nowPlanCode,BaseSpaceInfo spaceInfo = null)
public ExecutePlanInfo ExecutePlanInfo_NextPass(string planCode, string nowPlanCode, BaseSpaceInfo spaceInfo = null)
{
ExecutePlanInfo planInfo = null;
try
@ -308,7 +307,7 @@ namespace Aucma.Scada.Business
if (planInfo != null)
{
//传给出库
NextPassExecutePlanInfoEvent?.Invoke(planInfo,spaceInfo);
NextPassExecutePlanInfoEvent?.Invoke(planInfo, spaceInfo);
planInfo.executeStatus = 2;
planInfo.beginTime = DateTime.Now;

@ -111,7 +111,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup />

@ -1,20 +1,14 @@
using Aucma.Core.Scanner;
using Aucma.Scada.HikRobot;
using Aucma.Scada.Model.domain;
using Aucma.Scada.Model.domain;
using Aucma.Scada.Model.dto;
using HighWayIot.Config;
using HighWayIot.Log4net;
using HighWayIot.Repository.service;
using HighWayIot.TouchSocket;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using static Aucma.Core.Scanner.MvCodeHelper;
using static Aucma.Scada.Business.InStoreTaskHandle;
namespace Aucma.Scada.Business
{
@ -43,7 +37,7 @@ namespace Aucma.Scada.Business
private InStoreTaskHandle taskHandle = InStoreTaskHandle.Instance;
#endregion
#region 接口引用
@ -75,7 +69,7 @@ namespace Aucma.Scada.Business
/// 初始化入库任务
/// </summary>
/// <param name="message"></param>
public delegate void RefreshInStoreTask(RealTaskInfo taskInfos,bool isFinsih = false);
public delegate void RefreshInStoreTask(RealTaskInfo taskInfos, bool isFinsih = false);
public event RefreshInStoreTask RefreshInStoreTaskEvent;
/// <summary>
@ -98,7 +92,7 @@ namespace Aucma.Scada.Business
/// 出库状态检测
/// </summary>
System.Timers.Timer timer = new System.Timers.Timer(1000 * 5);
#endregion
#region 自定义变量
@ -164,7 +158,7 @@ namespace Aucma.Scada.Business
try
{
List<RealTaskInfo> outTasks = _taskInfoService.GetAllTaskInfoByStoreCode(appConfig.foamStoreCode, 2);
if (outTasks == null || outTasks.Count==0)
if (outTasks == null || outTasks.Count == 0)
{
//没有正在出库的任务,释放信号量,可以入库
_isBlocked = false;
@ -175,7 +169,8 @@ namespace Aucma.Scada.Business
_isBlocked = true;
}
}catch(Exception ex)
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
@ -187,7 +182,7 @@ namespace Aucma.Scada.Business
}
#endregion
/// <summary>
/// 入库
/// </summary>
@ -200,11 +195,11 @@ namespace Aucma.Scada.Business
// plc报警信息清除
taskHandle.SendPlcWarnInfo(0);
PrintLogInfoMessage($"扫码成功,物料码:{materialCode}");
PrintLogInfoMessage($"扫码成功,物料码:{materialCode}");
string materialType = SubStringMaterialCode(materialCode);
// 加防呆,判断任务表是否有任务了
#region Delete By wenjy 2023-10-30 11:41:00 取消通过数据库获取货道数量、在途量改为通过PLC获取货道信息
// var spaceInfo = _spaceInfoService.InStoreGetSpaceInfoByMaterialType(appConfig.foamStoreCode, materialType);
// var spaceInfo = _spaceInfoService.InStoreGetSpaceInfoByMaterialType(appConfig.foamStoreCode, materialType);
#endregion
// 筛选货道的时候,不能选择正在出库的货道
var spaceInfo = GetSpaceInfoByMaterialType(appConfig.foamStoreCode, materialType);
@ -218,7 +213,7 @@ namespace Aucma.Scada.Business
RefreshScanMateriaCodeEvent?.Invoke(materialCode, GetMaterialName(materialType), spaceInfo.spaceName, appConfig.foamStoreCode); //刷新界面扫码信息
var result = CreateInStoreTask(spaceInfo, materialCode); //创建入库任务
if (result)
{
{
_spaceInfoService.UpdateSpaceInfo(spaceInfo);
}
}
@ -242,8 +237,8 @@ namespace Aucma.Scada.Business
/// </summary>
public void ExceptionInstore(string spaceCode)
{
BaseSpaceInfo space = _spaceInfoService.GetSpaceInfoBySpaceCode(appConfig.foamStoreCode,spaceCode);
if(space != null)
BaseSpaceInfo space = _spaceInfoService.GetSpaceInfoBySpaceCode(appConfig.foamStoreCode, spaceCode);
if (space != null)
{
CreateInStoreTask(space, "");
}
@ -301,17 +296,17 @@ namespace Aucma.Scada.Business
//}
Task.Run(() =>
{
{
Thread.Sleep(2000);
while (true)
{
PassDownFoamTask();
Thread.Sleep(500);
PassDownFoamTask();
Thread.Sleep(500);
}
});
}
/// <summary>
/// 依次获取泡后任务队列进行下发
/// </summary>
@ -319,7 +314,7 @@ namespace Aucma.Scada.Business
/// <param name="e"></param>
private void PassDownFoamTask()
{
try
{
RealTaskInfo taskInfo = _taskInfoService.GetTaskInfoByStoreCode(appConfig.foamStoreCode, 1);
@ -327,7 +322,7 @@ namespace Aucma.Scada.Business
{
PrintLogInfoMessage($"下发泡后入库任务:{taskInfo.taskCode};仓库{taskInfo.storeCode};货道:{taskInfo.spaceCode}");
int result = taskHandle.SendFoamTask_InStore(taskInfo);
if (result==1)
if (result == 1)
{
PrintLogInfoMessage($"泡后入库任务:{taskInfo.taskCode}下发成功等待PLC执行反馈");
@ -340,9 +335,9 @@ namespace Aucma.Scada.Business
_taskInfoService.UpdateTaskInfo(taskInfo);
RefreshInStoreTaskEvent?.Invoke(taskInfo);
}
else if(result==2)
else if (result == 2)
{
PrintLogInfoMessage("泡后入库任务下发失败PLC接收任务未就绪");
}
@ -355,7 +350,7 @@ namespace Aucma.Scada.Business
else
{
logHelper.Info("未获取到需要下发的泡后入库任务");
// PrintLogInfoMessage("未获取到需要下发的泡后入库任务");
// PrintLogInfoMessage("未获取到需要下发的泡后入库任务");
}
}
catch (Exception ex)
@ -363,7 +358,7 @@ namespace Aucma.Scada.Business
PrintLogErrorMessage("依次获取入库任务队列进行下发逻辑异常", ex);
}
}
@ -416,10 +411,10 @@ namespace Aucma.Scada.Business
}
catch (Exception ex)
{
logHelper.Info("InStoreAllBySpaceCode异常:"+ex.Message.ToString());
logHelper.Info("InStoreAllBySpaceCode异常:" + ex.Message.ToString());
}
}
/// <summary>
/// 入库完成
/// </summary>
@ -481,7 +476,7 @@ namespace Aucma.Scada.Business
_baseSpaceDetailService.InsertSpaceDetail(spaceDetail);
#endregion
//清除任务信息
_taskInfoService.DeleteTaskInfo(taskCode, appConfig.foamStoreCode);
}
@ -510,11 +505,11 @@ namespace Aucma.Scada.Business
/// <param name="message"></param>
private void MessageNoRead()
{
PrintLogInfoMessage("入库扫码器未扫上条码");
// 下发plc报警信号
taskHandle.SendPlcWarnInfo(1);
}
@ -582,7 +577,8 @@ namespace Aucma.Scada.Business
{
groups = info.GroupBy(x => x.materialType).Select(y => new FoamStoreStockDto() { materialType = y.Key, storeStock = y.Sum(bs => bs.spaceStock) }).ToList();
}
}catch(Exception ex)
}
catch (Exception ex)
{
PrintLogErrorMessage("库存统计异常", ex);
}
@ -600,7 +596,7 @@ namespace Aucma.Scada.Business
BaseSpaceInfo result = null;
try
{
List<BaseSpaceInfo> info = _spaceInfoService.GetBaseSpaceInfosByMaterialType(storeCode, materialType,1);
List<BaseSpaceInfo> info = _spaceInfoService.GetBaseSpaceInfosByMaterialType(storeCode, materialType, 1);
if (info != null)
{
@ -615,13 +611,13 @@ namespace Aucma.Scada.Business
}
var list = info.Where(x => x.spaceStatus == 1 && x.spaceStock > 0 ? x.spaceCapacity > (x.spaceStock + x.onRouteAmount) : 1 == 1).ToList();
if(list==null || list.Count == 0)
if (list == null || list.Count == 0)
{
list = _spaceInfoService.GetEmptySpaceInfo(appConfig.foamStoreCode);
}
if (list.Count > 0)
{
result = list.OrderByDescending(x => x.spaceStock).First();
result = list.OrderByDescending(x => x.spaceStock).First();
}
}
}
@ -683,8 +679,8 @@ namespace Aucma.Scada.Business
public BaseSpaceInfo GetSpaceInfo(string spaceCode)
{
return _spaceInfoService.GetSpaceInfoBySpaceCode(appConfig.foamStoreCode,spaceCode);
return _spaceInfoService.GetSpaceInfoBySpaceCode(appConfig.foamStoreCode, spaceCode);
}
}
}

@ -210,15 +210,15 @@ namespace Aucma.Scada.Business
Thread.Sleep(5000);
continue;
}
IPlc _plc = _plcDictionary[appConfig.foamStoreCode];
if (_plc != null)
{
_plc.writeInt32ByAddress("D7020", 1);
Thread.Sleep(1000);
_plc.writeInt32ByAddress("D7020", 0);
Thread.Sleep(1000);
}
}
IPlc _plc = _plcDictionary[appConfig.foamStoreCode];
if (_plc != null)
{
_plc.writeInt32ByAddress("D7020", 1);
Thread.Sleep(1000);
_plc.writeInt32ByAddress("D7020", 0);
Thread.Sleep(1000);
}
}
}
catch (Exception ex)
{
@ -499,7 +499,7 @@ namespace Aucma.Scada.Business
// spaceInfo.spaceStatus = _plc.readInt32ByAddress(spaceAddress.spaceStatus);
}
}
return spaceInfo;

@ -143,8 +143,8 @@ namespace Aucma.Scada.Business
BaseSpaceInfo spaceInfo = _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode);
if (spaceInfo != null)
{
spaceInfo.unusualFlag = spaceInfo.unusualFlag == 1 ? 2 : 1;
spaceInfo.unusualFlag = spaceInfo.unusualFlag == 1 ? 2 : 1;
result = _spaceInfoService.UpdateSpaceInfo(spaceInfo);
logHelper.Info($"修改仓库:{storeCode};货道:{spaceCode};异常标识:{spaceInfo.unusualFlag};修改{(result == true ? "" : "")}");
}

@ -1,11 +1,6 @@
using Aucma.Core.Scanner;
using Aucma.Scada.HikRobot;
using HighWayIot.Config;
using HighWayIot.Log4net;
using HighWayIot.Config;
using HighWayIot.Plc;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Aucma.Scada.Business
{
@ -54,7 +49,7 @@ namespace Aucma.Scada.Business
plcPool.disConnectAll();
}
/// <summary>
/// 关闭海康扫码器
@ -63,7 +58,7 @@ namespace Aucma.Scada.Business
{
try
{
// MvCodeHelper.CloseAllDevice();
// MvCodeHelper.CloseAllDevice();
}
catch (Exception ex)
{

@ -1,5 +1,4 @@
using Aucma.Core.Scanner;
using Aucma.Scada.Model.domain;
using Aucma.Scada.Model.domain;
using HighWayIot.Config;
using HighWayIot.Log4net;
using HighWayIot.Repository.service;
@ -9,8 +8,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using static Aucma.Scada.Business.OutStoreTaskHandle;
namespace Aucma.Scada.Business
{
@ -41,7 +38,7 @@ namespace Aucma.Scada.Business
private OutStoreTaskHandle taskHandleBusiness = OutStoreTaskHandle.Instance;
private InStoreBusiness inStoreBusiness = InStoreBusiness.Instance;
#endregion
@ -125,14 +122,14 @@ namespace Aucma.Scada.Business
_recordOutStoreService = registerServices.GetService<IRecordOutStoreService>();
_recordProductfinishService = registerServices.GetService<IRecordProductfinishService>();
assemblyPlanBusiness.NextPassExecutePlanInfoEvent += PlanHandle;
// MvCodeHelper.OutMaterialCodeStrEvent += OutStoreFinishHandle;
// MvCodeHelper.OutMaterialCodeStrEvent += OutStoreFinishHandle;
TouchSocketBusiness.OutMaterialCodeStrEvent += OutStoreFinishHandle;
//assemblyPlanBusiness.PrintLogAndRefreshEvent += PrintLogInfoMessage;
assemblyPlanBusiness.GetSpaceInfoByMaterialTypeEvent += GetSpaceInfoByMaterialType;
taskHandleBusiness.OutStoreAnswerEvent += OutStoreAnswer;
// taskHandleBusiness.OutStoreFinsihEvent += OutStoreFinish;
// test();
// test();
StartPassDown();
}
public void test()
@ -148,7 +145,7 @@ namespace Aucma.Scada.Business
/// 接收下达的组装计划根据BOM获取需要出库的泡后、内胆物料信息
/// </summary>
/// <param name="planInfo"></param>
private void PlanHandle(ExecutePlanInfo planInfo,BaseSpaceInfo spaceInfo = null)
private void PlanHandle(ExecutePlanInfo planInfo, BaseSpaceInfo spaceInfo = null)
{
lock (string.Empty)
{
@ -156,9 +153,9 @@ namespace Aucma.Scada.Business
{
if (planInfo != null)
{
var bomInfo = _bomInfoService.GetBomInfoByMaterialCode(planInfo.materialCode);
if (bomInfo==null)
if (bomInfo == null)
{
PrintLogInfoMessage($"物料:{planInfo.materialCode}获取Bom信息为空");
return;
@ -180,17 +177,17 @@ namespace Aucma.Scada.Business
// Thread.Sleep(500);
// }
//}
// else // 指定货道出一个或者整道出
// {
for (int i = 0; i < planInfo.planAmount - planInfo.completeAmount; i++)
{
string taskCode = System.Guid.NewGuid().ToString("N").Substring(0, 7);
OutStore(appConfig.foamStoreCode, bomInfo, planInfo.executePlanCode, taskCode, spaceInfo);
Thread.Sleep(500);
}
// }
// else // 指定货道出一个或者整道出
// {
for (int i = 0; i < planInfo.planAmount - planInfo.completeAmount; i++)
{
string taskCode = System.Guid.NewGuid().ToString("N").Substring(0, 7);
OutStore(appConfig.foamStoreCode, bomInfo, planInfo.executePlanCode, taskCode, spaceInfo);
Thread.Sleep(500);
}
// }
}
});
}
@ -202,13 +199,13 @@ namespace Aucma.Scada.Business
/// <param name="storeCode"></param>
/// <param name="bomInfo"></param>
/// <param name="planCode"></param>
private void OutStore(string storeCode, BaseBomInfo bomInfo, string planCode, string taskCode,BaseSpaceInfo spaceInfo = null)
private void OutStore(string storeCode, BaseBomInfo bomInfo, string planCode, string taskCode, BaseSpaceInfo spaceInfo = null)
{
try
{
PrintLogInfoMessage($"收到出库计划,物料码:{bomInfo.materialCode}");
if (spaceInfo != null)
{
PrintLogInfoMessage($"匹配货道:{spaceInfo.spaceName}");
@ -248,40 +245,40 @@ namespace Aucma.Scada.Business
bool result = false;
try
{
#region 出库任务赋值
RealTaskInfo realTaskInfo = new RealTaskInfo();
// 执行计划编号
realTaskInfo.planCode = planCode;
realTaskInfo.taskType = 2;
realTaskInfo.taskCode = taksCode;
realTaskInfo.taskModel = taskModel;
realTaskInfo.storeCode = spaceInfo.storeCode;
realTaskInfo.spaceCode = spaceInfo.spaceCode;
realTaskInfo.spaceName = spaceInfo.spaceName;
realTaskInfo.materialType = spaceInfo.materialType;
realTaskInfo.planAmount = 1;
realTaskInfo.taskStatus = 1;
realTaskInfo.createTime = DateTime.Now;
#region 出库任务赋值
RealTaskInfo realTaskInfo = new RealTaskInfo();
// 执行计划编号
realTaskInfo.planCode = planCode;
realTaskInfo.taskType = 2;
realTaskInfo.taskCode = taksCode;
realTaskInfo.taskModel = taskModel;
realTaskInfo.storeCode = spaceInfo.storeCode;
realTaskInfo.spaceCode = spaceInfo.spaceCode;
realTaskInfo.spaceName = spaceInfo.spaceName;
realTaskInfo.materialType = spaceInfo.materialType;
realTaskInfo.planAmount = 1;
realTaskInfo.taskStatus = 1;
realTaskInfo.createTime = DateTime.Now;
#endregion
#endregion
result = _taskInfoService.AddTaskInfo(realTaskInfo);
if (result)
{
result = _taskInfoService.AddTaskInfo(realTaskInfo);
if (result)
{
// 禁止入库
spaceInfo.inStoreFlag = 2;
_spaceInfoService.UpdateSpaceInfo(spaceInfo);
PrintLogInfoMessage("出库任务创建成功");
spaceInfo.inStoreFlag = 2;
_spaceInfoService.UpdateSpaceInfo(spaceInfo);
PrintLogInfoMessage("出库任务创建成功");
RefreshOutStoreTaskEvent?.Invoke();
RefreshOutStoreTaskEvent?.Invoke();
// UpdateSpaceAndDetial(spaceInfo, spaceDetail);
}
else
{
PrintLogInfoMessage("出库任务创建失败");
}
// UpdateSpaceAndDetial(spaceInfo, spaceDetail);
}
else
{
PrintLogInfoMessage("出库任务创建失败");
}
}
catch (Exception ex)
{
@ -337,13 +334,13 @@ namespace Aucma.Scada.Business
//{
// spaceInfo.spaceStock = spaceInfo.spaceStock + 1;
//}
// spaceInfo.outRouteAmount += 1;
// _spaceInfoService.UpdateSpaceInfo(spaceInfo);
// spaceInfo.outRouteAmount += 1;
// _spaceInfoService.UpdateSpaceInfo(spaceInfo);
}
#region 轮询获取出库任务下发至PLC等待PLC执行反馈完成后再次下发
private SemaphoreSlim semaphore = new SemaphoreSlim(0);
private SemaphoreSlim semaphore = new SemaphoreSlim(0);
private int completedTasks = 0;
private int taskAmount = 2;
@ -378,10 +375,10 @@ namespace Aucma.Scada.Business
if (taskInfo != null)
{
// PrintLogInfoMessage($"下发泡后出库任务:{taskInfo.taskCode};仓库{taskInfo.storeCode};货道:{taskInfo.spaceCode}");
// PrintLogInfoMessage($"下发泡后出库任务:{taskInfo.taskCode};仓库{taskInfo.storeCode};货道:{taskInfo.spaceCode}");
int result = taskHandleBusiness.SendFoamTask_OutStore(taskInfo);
if (result==1)
if (result == 1)
{
PrintLogInfoMessage($"出库任务:{taskInfo.taskCode}下发成功等待PLC执行反馈");
@ -392,20 +389,20 @@ namespace Aucma.Scada.Business
_taskInfoService.UpdateTaskInfo(taskInfo);
//刷新出库任务界面
RefreshOutStoreTaskEvent?.Invoke();
// RefreshScanMateriaCodeEvent?.Invoke(taskInfo.materialCode, taskInfo.materialType, taskInfo.spaceName, taskInfo.storeCode);
// RefreshScanMateriaCodeEvent?.Invoke(taskInfo.materialCode, taskInfo.materialType, taskInfo.spaceName, taskInfo.storeCode);
}
else if (result == 2)
{
// PrintLogInfoMessage("泡后出库任务下发失败PLC接收任务未就绪");
// PrintLogInfoMessage("泡后出库任务下发失败PLC接收任务未就绪");
}
else
{
// PrintLogInfoMessage($"泡后出库任务:{taskInfo.taskCode}下发失败请排除PLC连接");
// PrintLogInfoMessage($"泡后出库任务:{taskInfo.taskCode}下发失败请排除PLC连接");
}
}
else
{
// PrintLogInfoMessage("未获取到需要下发的出库任务");
// PrintLogInfoMessage("未获取到需要下发的出库任务");
}
}
catch (Exception ex)
@ -446,10 +443,10 @@ namespace Aucma.Scada.Business
PrintLogInfoMessage("出库应答成功,自动释放信号量,进行下发新任务");
semaphore.Release();
// 视为出库完成,后续改为监测在库数
// OutStoreFinish(storeCode, taskCode);
// OutStoreFinish(storeCode, taskCode);
}
///// <summary>
///// 出库完成
///// </summary>
@ -458,7 +455,7 @@ namespace Aucma.Scada.Business
//private void OutStoreFinish(string storeCode, string taskCode)
//{
// PrintLogInfoMessage($"出库任务:{taskCode};执行完成");
// OutStoreFinishHandle(taskCode, appConfig.foamStoreCode);
//}
@ -487,12 +484,12 @@ namespace Aucma.Scada.Business
{
try
{
// 插入出库记录
PrintLogInfoMessage($"{code}:出库完成");
RealTaskInfo taskInfo = _taskInfoService.GetTaskInfoByTaskCode(SubStringMaterialCode(code), appConfig.foamStoreCode, 2);
if (taskInfo != null)
{
{
//更新计划信息
UpdatePlanInfo(taskInfo.planCode);
@ -506,10 +503,10 @@ namespace Aucma.Scada.Business
RefreshScanMateriaCodeEvent?.Invoke(code, code.Substring(7, 10), "", appConfig.foamStoreCode); //刷新界面扫码信息
#region 根据创建时间删除没有型号的任务
#endregion
}
// _taskInfoService.DeleteTaskInfoByCode(taskInfo);
// _taskInfoService.DeleteTaskInfoByCode(taskInfo);
// 查询该型号的类型任务按照时间排序删除第一条, 清除任务信息
_taskInfoService.DeleteFirstTaskByStoreCode(appConfig.foamStoreCode, 2);
#region 添加出库记录
@ -533,7 +530,7 @@ namespace Aucma.Scada.Business
_spaceDetailService.DeleteSpaceDetailByMaterialCode(code);
#region 出库更新过点数据,插入记录到MATERIAL_COMPLETION表
if (!string.IsNullOrEmpty(code))
@ -556,12 +553,12 @@ namespace Aucma.Scada.Business
}
#endregion
}
catch (Exception ex)
{
PrintLogErrorMessage("出库完成逻辑处理异常:"+ ex);
PrintLogErrorMessage("出库完成逻辑处理异常:" + ex);
}
finally
{
@ -600,7 +597,7 @@ namespace Aucma.Scada.Business
var executeInfo = _executePlanInfoService.GetExecutePlanInfoByPlanCode(planCode);
if (executeInfo != null)
{
executeInfo.completeAmount += 1;
if (executeInfo.completeAmount == executeInfo.planAmount)
@ -613,7 +610,7 @@ namespace Aucma.Scada.Business
var productInfo = _productPlanInfoService.GetProductPlanByPlanCode(executeInfo.productPlanCode);
if (productInfo != null)
{
if(productInfo.completeAmount==0)
if (productInfo.completeAmount == 0)
{
productInfo.beginTime = DateTime.Now;
}
@ -622,7 +619,7 @@ namespace Aucma.Scada.Business
{
productInfo.endTime = DateTime.Now;
}
_productPlanInfoService.UpdateProductPlanInfo(productInfo);
}
@ -673,7 +670,7 @@ namespace Aucma.Scada.Business
{
foreach (var taskInfo in info)
{
result = _taskInfoService.DeleteTaskInfoById(taskInfo.objId);
if (result)
{
@ -704,7 +701,7 @@ namespace Aucma.Scada.Business
/// <summary>
public bool DeleteAllTaskByStoreCode(string storeCode, int taskType)
{
return _taskInfoService.DeleteAllTaskByStoreCode(storeCode, taskType);
return _taskInfoService.DeleteAllTaskByStoreCode(storeCode, taskType);
}
/// <summary>
@ -723,9 +720,9 @@ namespace Aucma.Scada.Business
{
#region 创建mes执行任务关联生产计划
var productPlanInfo = _productPlanInfoService.GetProductPlanInfosByMaterialCode(spaceInfo.materialType);
if(productPlanInfo != null)
if (productPlanInfo != null)
{
result = assemblyPlanBusiness.PlanTransmitByProductPlan(productPlanInfo.planCode, 1,spaceInfo);
result = assemblyPlanBusiness.PlanTransmitByProductPlan(productPlanInfo.planCode, 1, spaceInfo);
}
#endregion
else
@ -772,8 +769,8 @@ namespace Aucma.Scada.Business
}
#endregion
else
{
for(int i = 1; i <= spaceInfo.spaceStock; i++)
{
for (int i = 1; i <= spaceInfo.spaceStock; i++)
{
result = this.CreateOutStoreTask(spaceInfo, System.Guid.NewGuid().ToString("N").Substring(0, 7), System.Guid.NewGuid().ToString("N").Substring(0, 10), 1);
if (!result)
@ -781,7 +778,7 @@ namespace Aucma.Scada.Business
return false;
}
}
}
}
@ -793,7 +790,7 @@ namespace Aucma.Scada.Business
catch (Exception ex)
{
logHelper.Error("根据货道出一个异常", ex);
}
return result;
}
@ -861,20 +858,20 @@ namespace Aucma.Scada.Business
try
{
List<BaseSpaceInfo> info = _spaceInfoService.GetBaseSpaceInfosByMaterialType(storeCode, materialType,2);
List<BaseSpaceInfo> info = _spaceInfoService.GetBaseSpaceInfosByMaterialType(storeCode, materialType, 2);
if (info != null && info.Count>0)
if (info != null && info.Count > 0)
{
foreach (BaseSpaceInfo item in info)
{
var spaceInfo = taskHandleBusiness.ReadSpaceInfoByPlc(item);
item.spaceStock = spaceInfo.spaceStock;
item.onRouteAmount = spaceInfo.onRouteAmount;
}
result = info.OrderByDescending(x => x.spaceStock).First();
foreach (BaseSpaceInfo item in info)
{
var spaceInfo = taskHandleBusiness.ReadSpaceInfoByPlc(item);
item.spaceStock = spaceInfo.spaceStock;
item.onRouteAmount = spaceInfo.onRouteAmount;
}
result = info.OrderByDescending(x => x.spaceStock).First();
}
else
{
@ -888,5 +885,6 @@ namespace Aucma.Scada.Business
return result;
}
} }
}
}

@ -48,7 +48,7 @@ namespace Aucma.Scada.Business
private PlcSpaceConfig spaceConfig = PlcSpaceConfig.Instance;
private RegisterServices registerServices = RegisterServices.Instance;
@ -62,7 +62,7 @@ namespace Aucma.Scada.Business
/// </summary>
private static Dictionary<string, IPlc> _plcDictionary = new Dictionary<string, IPlc>();
#endregion
@ -81,7 +81,7 @@ namespace Aucma.Scada.Business
{
_plcDictionary = _pool.GetAll();
_taskInfoService = registerServices.GetService<IRealTaskInfoService>();
// RealReadFinish();
// RealReadFinish();
}
@ -97,7 +97,7 @@ namespace Aucma.Scada.Business
while (true)
{
RealTaskInfo task = GetTaskInfoByTaskStatus(appConfig.foamStoreCode).OrderBy(x => x.createTime).FirstOrDefault();
if(task != null)
if (task != null)
{
_plcDictionary = _pool.GetAll();
if (_plcDictionary.Count > 0)
@ -162,26 +162,26 @@ namespace Aucma.Scada.Business
if (_plc != null)
{
if (_plc.readInt32ByAddress(plcConfig.out_foam_answer) == 1)
{
logHelper.Info("泡后出库应答字为1货道号:" + plcConfig.out_foam_spaceCode + ";写" + short.Parse(taskInfo.spaceCode.Substring(5, 1)));
//写入货道号
_plc.writeInt32ByAddress(plcConfig.out_foam_spaceCode, short.Parse(taskInfo.spaceCode.Substring(5, 1)));
//写入出库数量
_plc.writeInt32ByAddress(plcConfig.out_foam_amount, taskInfo.planAmount);
//写入完成后读取应答字进行复位
ReadAnswer_OutStore(taskInfo);
if (_plc.readInt32ByAddress(plcConfig.out_foam_answer) == 1)
{
logHelper.Info("泡后出库应答字为1货道号:" + plcConfig.out_foam_spaceCode + ";写" + short.Parse(taskInfo.spaceCode.Substring(5, 1)));
//写入货道号
_plc.writeInt32ByAddress(plcConfig.out_foam_spaceCode, short.Parse(taskInfo.spaceCode.Substring(5, 1)));
//写入出库数量
_plc.writeInt32ByAddress(plcConfig.out_foam_amount, taskInfo.planAmount);
//写入完成后读取应答字进行复位
ReadAnswer_OutStore(taskInfo);
result = 1;
}
else
{
result = 2;
logHelper.Info("应答字为2下发新任务plc未就绪");
}
result = 1;
}
else
{
result = 2;
logHelper.Info("应答字为2下发新任务plc未就绪");
}
}
else
{
@ -212,29 +212,29 @@ namespace Aucma.Scada.Business
{
if (_plc != null)
{
do
do
{
//读取PLC应答字为2时上位机清空写入的出库内容
if (_plc.readInt32ByAddress(plcConfig.out_foam_answer) == 2)
{
//读取PLC应答字为2时上位机清空写入的出库内容
if (_plc.readInt32ByAddress(plcConfig.out_foam_answer) == 2)
{
logHelper.Info("出库应答字写3应答字为2货道号:" + plcConfig.out_foam_spaceCode + ";复位写0");
//写入货道号
_plc.writeInt32ByAddress(plcConfig.out_foam_spaceCode, 0);
//写入应答字3
_plc.writeInt32ByAddress(plcConfig.out_foam_answer, 3);
//写入出库数量
_plc.writeInt32ByAddress(plcConfig.out_foam_amount, 0);
isFlag = false;
OutStoreAnswerEvent?.Invoke(appConfig.foamStoreCode, taskInfo.taskCode);
}
Thread.Sleep(500);
} while (isFlag);
logHelper.Info("出库应答字写3应答字为2货道号:" + plcConfig.out_foam_spaceCode + ";复位写0");
//写入货道号
_plc.writeInt32ByAddress(plcConfig.out_foam_spaceCode, 0);
//写入应答字3
_plc.writeInt32ByAddress(plcConfig.out_foam_answer, 3);
//写入出库数量
_plc.writeInt32ByAddress(plcConfig.out_foam_amount, 0);
isFlag = false;
OutStoreAnswerEvent?.Invoke(appConfig.foamStoreCode, taskInfo.taskCode);
}
Thread.Sleep(500);
} while (isFlag);
}
else
{
@ -249,7 +249,7 @@ namespace Aucma.Scada.Business
}
}
#endregion
/// <summary>
@ -265,11 +265,11 @@ namespace Aucma.Scada.Business
if (_plc != null)
{
spaceInfo.spaceStock = _plc.readInt32ByAddress(spaceAddress.onStore);
spaceInfo.onRouteAmount = _plc.readInt32ByAddress(spaceAddress.onRoute);
// spaceInfo.spaceStatus = _plc.readInt32ByAddress(spaceAddress.spaceStatus);
spaceInfo.spaceStock = _plc.readInt32ByAddress(spaceAddress.onStore);
spaceInfo.onRouteAmount = _plc.readInt32ByAddress(spaceAddress.onRoute);
// spaceInfo.spaceStatus = _plc.readInt32ByAddress(spaceAddress.spaceStatus);
}
return spaceInfo;

@ -61,9 +61,11 @@ namespace Aucma.Scada.Business
services.AddSingleton<IRecordInStoreService, RecordInStoreServiceImpl>();
services.AddSingleton<IRecordOutStoreService, RecordOutStoreServiceImpl>();
services.AddSingleton<IRecordProductfinishService, RecordProductfinishServiceImpl>();
services.AddSingleton<IPrintBarCodeServices, PrintBarCodeServicesImpl>();
services.AddSingleton<IMaterialCompletionServices, MaterialCompletionServiceImpl>();
services.AddSingleton<IBaseMaterialInfoService, BaseMaterialInfoServiceImpl>();
services.AddSingleton<IBaseTeamMembersServices, BaseTeamMembersServiceImpl>();
}
public T GetService<T>()

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.116.0" newVersion="1.0.116.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.122.21.1" newVersion="4.122.21.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.116.0" newVersion="1.0.116.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.122.21.1" newVersion="4.122.21.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.116.0" newVersion="1.0.116.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.122.21.1" newVersion="4.122.21.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.116.0" newVersion="1.0.116.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.122.21.1" newVersion="4.122.21.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

@ -1 +1 @@
fc3d09b7d5a7b7e0dc9fb01d4cdd7deca8d1e7c3
516fbde1671d57c1c728c6069525b853ce724988

@ -181,3 +181,52 @@ E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Business\obj\Debug\Auc
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.csproj.CopyComplete
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.dll
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Aucma.Scada.Business.dll.config
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Aucma.Scada.Business.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Aucma.Scada.Business.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Aucma.Scada.HikRobot.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Aucma.Scada.Model.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Common.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Config.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Log4net.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Plc.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Repository.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.TouchSocket.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Microsoft.Extensions.DependencyInjection.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Reactive.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Reactive.Windows.Threading.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Threading.Tasks.Extensions.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\MvCodeReaderSDK.Net.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\SqlSugar.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Newtonsoft.Json.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\log4net.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HslCommunication.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\TouchSocket.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\TouchSocket.Core.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Aucma.Scada.HikRobot.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Aucma.Scada.Model.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Common.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Config.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Log4net.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Plc.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Repository.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.Repository.dll.config
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\HighWayIot.TouchSocket.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Microsoft.Extensions.DependencyInjection.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Reactive.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Reactive.Windows.Threading.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\System.Threading.Tasks.Extensions.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Newtonsoft.Json.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\TouchSocket.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\TouchSocket.Core.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.csproj.AssemblyReference.cache
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.csproj.CoreCompileInputs.cache
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.csproj.CopyComplete
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\obj\Debug\Aucma.Scada.Business.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Business\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml

@ -3,8 +3,6 @@ using HighWayIot.Log4net;
using MvCodeReaderSDKNet;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
@ -53,7 +51,7 @@ namespace Aucma.Scada.HikRobot
private GrabImage()
{
}
public void InitHikRobot()
{
@ -95,12 +93,12 @@ namespace Aucma.Scada.HikRobot
}
}
} while (false);
}
private void Grab(int index,MvCodeReader.MV_CODEREADER_DEVICE_INFO_LIST stDevList, MvCodeReader.MV_CODEREADER_DEVICE_INFO stDevInfo,MvCodeReader device)
private void Grab(int index, MvCodeReader.MV_CODEREADER_DEVICE_INFO_LIST stDevList, MvCodeReader.MV_CODEREADER_DEVICE_INFO stDevInfo, MvCodeReader device)
{
try
{
@ -196,7 +194,7 @@ namespace Aucma.Scada.HikRobot
RefreshLogMessageEvent?.Invoke("Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
if (!string.IsNullOrEmpty(strCode))
{
if(strCode != lastStr)
if (strCode != lastStr)
{
RefreshMaterialCodeStrEvent?.Invoke(strCode);
}
@ -215,11 +213,12 @@ namespace Aucma.Scada.HikRobot
}
} while (false);
});
}catch(Exception ex)
}
catch (Exception ex)
{
logHelper.Error("扫码异常", ex);
}
}
public void ExitHikRobot()

@ -1,27 +1,22 @@
using MvCodeReaderSDKNet;
using HighWayIot.Config;
using HighWayIot.Log4net;
using MvCodeReaderSDKNet;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using static System.Runtime.CompilerServices.RuntimeHelpers;
using HighWayIot.Log4net;
using HighWayIot.Config;
using System.Security.Policy;
namespace Aucma.Core.Scanner
{
public class MvCodeHelper
{
private static LogHelper logHelper = LogHelper.Instance;
private static AppConfig appConfig = AppConfig.Instance;
public static bool m_bGrabbing = true;
private static string SheellLastCode;
private static string LinerLastCode;
// 入库扫码器ip
private static string ShellScannerIp = appConfig.foamHikRobotIp;
@ -189,9 +184,9 @@ namespace Aucma.Core.Scanner
if (MvCodeReader.MV_CODEREADER_OK != nRet)
{
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库",false);
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
Thread.Sleep(1000 * 10);
Console.WriteLine("Enum device failed:{0:x8}", nRet);
break;
@ -200,9 +195,9 @@ namespace Aucma.Core.Scanner
if (0 == stDevList.nDeviceNum)
{
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
Thread.Sleep(1000 * 10);
break;
@ -237,7 +232,7 @@ namespace Aucma.Core.Scanner
{
Console.WriteLine("未找到入库扫码器");
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
Thread.Sleep(1000 * 30);
break;
}
@ -249,7 +244,7 @@ namespace Aucma.Core.Scanner
{
Console.WriteLine("Create device failed:{0:x8}", nRet);
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
break;
}
@ -260,12 +255,12 @@ namespace Aucma.Core.Scanner
{
Console.WriteLine("Open device failed:{0:x8}", nRet);
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
break;
}
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", true);
RefreshStateEvent?.Invoke("入库", true);
// ch:注册回调函数 | en:Register image callback
ImageCallback = new MvCodeReader.cbOutputEx2delegate(ShellImageCallbackFunc);
nRet = device.MV_CODEREADER_RegisterImageCallBackEx2_NET(ImageCallback, IntPtr.Zero);
@ -273,7 +268,7 @@ namespace Aucma.Core.Scanner
{
Console.WriteLine("Register image callback failed!");
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
break;
}
@ -283,7 +278,7 @@ namespace Aucma.Core.Scanner
{
Console.WriteLine("Start grabbing failed:{0:x8}", nRet);
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
break;
}
@ -298,14 +293,14 @@ namespace Aucma.Core.Scanner
if (timeSpan.TotalMinutes >= 10)
{
Console.WriteLine("入库扫码器超时");
break;
}
}
// Console.ReadLine();
// 刷新扫码器状态
RefreshStateEvent?.Invoke("入库", false);
RefreshStateEvent?.Invoke("入库", false);
// ch:停止抓图 | en:Stop grabbing
nRet = device.MV_CODEREADER_StopGrabbing_NET();
if (MvCodeReader.MV_CODEREADER_OK != nRet)
@ -332,7 +327,7 @@ namespace Aucma.Core.Scanner
} while (false);
Thread.Sleep(1000);
Shell();
}
public static void Liner()

@ -1,5 +1,4 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下

@ -1 +1 @@
3eb32e1004be51a33739d5edaf789c03063b8825
065b42af0f016c8371a20da874f175173870f8c3

@ -49,3 +49,20 @@ E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Auc
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.csproj.CopyComplete
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.dll
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\Aucma.Scada.HikRobot.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\Aucma.Scada.HikRobot.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\HighWayIot.Config.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\HighWayIot.Log4net.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\MvCodeReaderSDK.Net.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\HighWayIot.Common.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\log4net.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\Newtonsoft.Json.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\HighWayIot.Config.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\HighWayIot.Log4net.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\HighWayIot.Common.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\bin\Debug\Newtonsoft.Json.xml
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.csproj.AssemblyReference.cache
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.csproj.CoreCompileInputs.cache
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.csproj.CopyComplete
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.HikRobot\obj\Debug\Aucma.Scada.HikRobot.pdb

@ -44,6 +44,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="domain\BaseTeamMembers.cs" />
<Compile Include="domain\BaseMaterialInfo.cs" />
<Compile Include="domain\MaterialCompletion.cs" />
<Compile Include="domain\PrintBarCode.cs" />

@ -13,7 +13,7 @@ namespace Aucma.Scada.Model.domain
///</summary>
[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, IsIdentity = true)]
public int objId { get; set; }
/// <summary>
/// 货道编号
/// </summary>

@ -0,0 +1,87 @@
using SqlSugar;
namespace Aucma.Scada.Model.domain
{
/// <summary>
/// 班组信息
/// </summary>
[SugarTable("BASE_TEAMMEMBERS", "AUCMA_MES")]
public class BaseTeamMembers
{
/// <summary>
/// 主键标识
///</summary>
[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, IsIdentity = true)]
public int ObjId { get; set; }
/// <summary>
/// 班组编号
/// </summary>
[SugarColumn(ColumnName = "TEAM_CODE")]
public string TeamCode { get; set; }
/// <summary>
/// 班组名称
/// </summary>
[SugarColumn(ColumnName = "TEAM_NAME")]
public string TeamName { get; set; }
/// <summary>
/// 班组负责人
/// </summary>
[SugarColumn(ColumnName = "TEAM_HEAD")]
public string TeamHead { get; set; }
/// <summary>
/// 所属产线/工位
/// </summary>
[SugarColumn(ColumnName = "PRODUCT_LINE_CODE")]
public string ProductLineCode { get; set; }
/// <summary>
/// 是否标识
/// </summary>
[SugarColumn(ColumnName = "IS_FLAG")]
public int IsFlag { get; set; }
/// <summary>
/// 创建人
/// </summary>
[SugarColumn(ColumnName = "CREATED_BY")]
public string CreatedBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[SugarColumn(ColumnName = "CREATED_TIME")]
public string CreatedTime { get; set; }
/// <summary>
/// 更新人
/// </summary>
[SugarColumn(ColumnName = "UPDATED_BY")]
public string UpdatedBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
[SugarColumn(ColumnName = "UPDATED_TIME")]
public string UpdatedTime { get; set; }
/// <summary>
/// 开始时间
/// </summary>
[SugarColumn(ColumnName = "START_TIME")]
public string StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
[SugarColumn(ColumnName = "END_TIME")]
public string EndTime { get; set; }
/// <summary>
/// 吃饭时间
/// </summary>
[SugarColumn(ColumnName = "DINE_TIME")]
public string DingTime { get; set; }
}
}

@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
using SqlSugar;
using System;
namespace Aucma.Scada.Model.domain
{
/// <summary>
@ -13,63 +11,63 @@ namespace Aucma.Scada.Model.domain
/// <summary>
/// 主键标识
///</summary>
[SugarColumn(ColumnName="OBJ_ID" ,IsPrimaryKey = true ,OracleSequenceName = "SEQ_RECORD_INSTORE")]
public decimal objId { get; set; }
[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_RECORD_INSTORE")]
public decimal objId { get; set; }
/// <summary>
/// 仓库编号
///</summary>
[SugarColumn(ColumnName="STORE_CODE" )]
public string storeCode { get; set; }
[SugarColumn(ColumnName = "STORE_CODE")]
public string storeCode { get; set; }
/// <summary>
/// 仓库区域
///</summary>
[SugarColumn(ColumnName="STORE_AREA" )]
public string storeArea { get; set; }
[SugarColumn(ColumnName = "STORE_AREA")]
public string storeArea { get; set; }
/// <summary>
/// 货道编号
///</summary>
[SugarColumn(ColumnName="SPACE_CODE" )]
public string spaceCode { get; set; }
[SugarColumn(ColumnName = "SPACE_CODE")]
public string spaceCode { get; set; }
/// <summary>
/// 物料类型
///</summary>
[SugarColumn(ColumnName="MATERIAL_TYPE" )]
public string materialType { get; set; }
[SugarColumn(ColumnName = "MATERIAL_TYPE")]
public string materialType { get; set; }
/// <summary>
/// 物料编号
///</summary>
[SugarColumn(ColumnName="MATERIAL_CODE" )]
public string materialCode { get; set; }
[SugarColumn(ColumnName = "MATERIAL_CODE")]
public string materialCode { get; set; }
/// <summary>
/// 入库数量
///</summary>
[SugarColumn(ColumnName="IN_STORE_AMOUNT" )]
public decimal? inStoreAmount { get; set; }
[SugarColumn(ColumnName = "IN_STORE_AMOUNT")]
public decimal? inStoreAmount { get; set; }
/// <summary>
/// 入库时间
///</summary>
[SugarColumn(ColumnName="IN_STORE_TIME" )]
public DateTime? inStoreTime { get; set; }
[SugarColumn(ColumnName = "IN_STORE_TIME")]
public DateTime? inStoreTime { get; set; }
/// <summary>
/// 物料条码编号
///</summary>
[SugarColumn(ColumnName="BARCODE_CODE" )]
public string barcodeCode { get; set; }
[SugarColumn(ColumnName = "BARCODE_CODE")]
public string barcodeCode { get; set; }
/// <summary>
/// 物料名称
///</summary>
[SugarColumn(ColumnName="MATERIAL_NAME" )]
public string materialName { get; set; }
[SugarColumn(ColumnName = "MATERIAL_NAME")]
public string materialName { get; set; }
/// <summary>
/// 入库方式0-正常1-异常)
///</summary>
[SugarColumn(ColumnName="ENTRY_PATTERN" )]
public short? entryPattern { get; set; }
[SugarColumn(ColumnName = "ENTRY_PATTERN")]
public short? entryPattern { get; set; }
/// <summary>
/// 是否标识
///</summary>
[SugarColumn(ColumnName="IS_FLAG" )]
public short? isFlag { get; set; }
[SugarColumn(ColumnName = "IS_FLAG")]
public short? isFlag { get; set; }
}
}

@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
using SqlSugar;
using System;
namespace Aucma.Scada.Model.domain
{
/// <summary>
@ -13,63 +11,63 @@ namespace Aucma.Scada.Model.domain
/// <summary>
/// 主键标识
///</summary>
[SugarColumn(ColumnName="OBJ_ID" ,IsPrimaryKey = true ,OracleSequenceName = "SEQ_RECORD_OUTSTORE")]
public decimal objId { get; set; }
[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_RECORD_OUTSTORE")]
public decimal objId { get; set; }
/// <summary>
/// 仓库编号
///</summary>
[SugarColumn(ColumnName="STORE_CODE" )]
public string storeCode { get; set; }
[SugarColumn(ColumnName = "STORE_CODE")]
public string storeCode { get; set; }
/// <summary>
/// 仓库区域
///</summary>
[SugarColumn(ColumnName="STORE_AREA" )]
public string storeArea { get; set; }
[SugarColumn(ColumnName = "STORE_AREA")]
public string storeArea { get; set; }
/// <summary>
/// 货道编号
///</summary>
[SugarColumn(ColumnName="SPACE_CODE" )]
public string spaceCode { get; set; }
[SugarColumn(ColumnName = "SPACE_CODE")]
public string spaceCode { get; set; }
/// <summary>
/// 物料编号
///</summary>
[SugarColumn(ColumnName="MATERIAL_CODE" )]
public string materialCode { get; set; }
[SugarColumn(ColumnName = "MATERIAL_CODE")]
public string materialCode { get; set; }
/// <summary>
/// 物料名称
///</summary>
[SugarColumn(ColumnName="MATERIAL_NAME" )]
public string materialName { get; set; }
[SugarColumn(ColumnName = "MATERIAL_NAME")]
public string materialName { get; set; }
/// <summary>
/// 出库数量
///</summary>
[SugarColumn(ColumnName="OUT_STORE_AMOUNT" )]
public decimal? outStoreAmount { get; set; }
[SugarColumn(ColumnName = "OUT_STORE_AMOUNT")]
public decimal? outStoreAmount { get; set; }
/// <summary>
/// 出库时间
///</summary>
[SugarColumn(ColumnName="OUT_STORE_TIME" )]
public DateTime? outStoreTime { get; set; }
[SugarColumn(ColumnName = "OUT_STORE_TIME")]
public DateTime? outStoreTime { get; set; }
/// <summary>
/// 物料条码编号
///</summary>
[SugarColumn(ColumnName="BARCODE_CODE" )]
public string barcodeCode { get; set; }
[SugarColumn(ColumnName = "BARCODE_CODE")]
public string barcodeCode { get; set; }
/// <summary>
/// 物料类型
///</summary>
[SugarColumn(ColumnName="MATERIAL_TYPE" )]
public string materialType { get; set; }
[SugarColumn(ColumnName = "MATERIAL_TYPE")]
public string materialType { get; set; }
/// <summary>
/// 出库方式0-正常1-异常)
///</summary>
[SugarColumn(ColumnName="EXIT_PATTERN" )]
public short? exitPattern { get; set; }
[SugarColumn(ColumnName = "EXIT_PATTERN")]
public short? exitPattern { get; set; }
/// <summary>
/// 是否标识
///</summary>
[SugarColumn(ColumnName="IS_FLAG" )]
public decimal? isFlag { get; set; }
[SugarColumn(ColumnName = "IS_FLAG")]
public decimal? isFlag { get; set; }
}
}

@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SqlSugar;
using SqlSugar;
using System;
namespace Aucma.Scada.Model.domain
{
/// <summary>
@ -13,37 +11,37 @@ namespace Aucma.Scada.Model.domain
/// <summary>
/// 主键标识
///</summary>
[SugarColumn(ColumnName="OBJ_ID" ,IsPrimaryKey = true ,OracleSequenceName = "SEQ_RECORD_PRODUCTFINISH")]
public decimal objId { get; set; }
[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_RECORD_PRODUCTFINISH")]
public decimal objId { get; set; }
/// <summary>
/// 计划编号
///</summary>
[SugarColumn(ColumnName="PLAN_CODE" )]
public string planCode { get; set; }
[SugarColumn(ColumnName = "PLAN_CODE")]
public string planCode { get; set; }
/// <summary>
/// 物料编号
///</summary>
[SugarColumn(ColumnName="MATERIAL_CODE" )]
public string materialCode { get; set; }
[SugarColumn(ColumnName = "MATERIAL_CODE")]
public string materialCode { get; set; }
/// <summary>
/// 计划工位
///</summary>
[SugarColumn(ColumnName="PRODUCTLINE_CODE" )]
public string productlineCode { get; set; }
[SugarColumn(ColumnName = "PRODUCTLINE_CODE")]
public string productlineCode { get; set; }
/// <summary>
/// 完成数量
///</summary>
[SugarColumn(ColumnName="COMPLETE_AMOUNT" )]
public decimal? completeAmount { get; set; }
[SugarColumn(ColumnName = "COMPLETE_AMOUNT")]
public decimal? completeAmount { get; set; }
/// <summary>
/// 记录时间
///</summary>
[SugarColumn(ColumnName="RECORD_TIME" )]
public DateTime? recordTime { get; set; }
[SugarColumn(ColumnName = "RECORD_TIME")]
public DateTime? recordTime { get; set; }
/// <summary>
/// 是否标识
///</summary>
[SugarColumn(ColumnName="IS_FLAG" )]
public decimal? isFlag { get; set; }
[SugarColumn(ColumnName = "IS_FLAG")]
public decimal? isFlag { get; set; }
}
}

@ -1,9 +1,5 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Aucma.Scada.Model.domain
{

@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Aucma.Scada.Model.dto
namespace Aucma.Scada.Model.dto
{
public class FoamStoreStockDto
{

@ -1 +1 @@
c1df4a405465ec99296e7191ac19178349a56569
60e1a3b4d3e1418dd026799d4bbe00624d5973b6

@ -22,3 +22,11 @@ E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.csproj.CopyComplete
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.dll
E:\c#\AUCMA\最新代码整合\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\bin\Debug\Aucma.Scada.Model.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\bin\Debug\Aucma.Scada.Model.pdb
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\bin\Debug\SqlSugar.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.csproj.AssemblyReference.cache
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.csproj.CoreCompileInputs.cache
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.csproj.CopyComplete
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.dll
E:\c#\AUCMA\最新代码整合\登录版\泡后库\foam\Aucma.Scada.Model\obj\Debug\Aucma.Scada.Model.pdb

@ -21,6 +21,26 @@
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.122.21.1" newVersion="4.122.21.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.4" newVersion="7.0.0.4" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<!--<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>-->
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

@ -2,10 +2,18 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Aucma.Scada.UI"
StartupUri="MainWindow.xaml">
StartupUri="LoginPageView.xaml">
<Application.Resources>
<!--Button样式-->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="templates/style/resourceStyle.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesign3.Defaults.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Secondary/MaterialDesignColor.Lime.xaml" />
</ResourceDictionary.MergedDictionaries>
<!--Button样式-->
<Style x:Key="TextBoxStyle" TargetType="TextBox">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
@ -20,10 +28,6 @@
</Setter.Value>
</Setter>
</Style>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="templates/style/resourceStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>

@ -40,13 +40,13 @@ namespace Aucma.Scada.UI
else
{
mainBusiness.InitPlc();
// mainBusiness.InitHikRobot();
// mainBusiness.InitHikRobot();
}
}
private void Application_Exit(object sender, ExitEventArgs e)
{
mainBusiness.DisConnectPlc();
// mainBusiness.ExitHikRobot();
// mainBusiness.ExitHikRobot();
logHelper.Info("程序退出");
}

@ -14,6 +14,8 @@
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -59,6 +61,18 @@
<Reference Include="LiveCharts.Wpf, Version=0.9.7.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>..\packages\LiveCharts.Wpf.0.9.7\lib\net45\LiveCharts.Wpf.dll</HintPath>
</Reference>
<Reference Include="MaterialDesignColors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=df2a72020bd7962a, processorArchitecture=MSIL">
<HintPath>..\packages\MaterialDesignColors.3.0.0\lib\net462\MaterialDesignColors.dll</HintPath>
</Reference>
<Reference Include="MaterialDesignThemes.Wpf, Version=5.0.0.0, Culture=neutral, PublicKeyToken=df2a72020bd7962a, processorArchitecture=MSIL">
<HintPath>..\packages\MaterialDesignThemes.5.0.0\lib\net462\MaterialDesignThemes.Wpf.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.39\lib\net45\Microsoft.Xaml.Behaviors.dll</HintPath>
</Reference>
<Reference Include="MySql.Data">
<HintPath>..\HighWayIot.Library\MySql.Data.dll</HintPath>
</Reference>
@ -69,10 +83,29 @@
<HintPath>..\HighWayIot.Library\SqlSugar.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite">
<HintPath>..\HighWayIot.Library\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=7.0.0.4, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Json.7.0.4\lib\net462\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
@ -99,6 +132,7 @@
<Compile Include="Converter\ShellInventory\StatusLabelConverter.cs" />
<Compile Include="Converter\TaskInfo\TaskStatusConverter.cs" />
<Compile Include="Converter\TaskInfo\TaskTypeConverter.cs" />
<Compile Include="Model\Result.cs" />
<Compile Include="Model\typeGridModel.cs" />
<Compile Include="Page\AssemblyPlan\AssemblyPlanControl.xaml.cs">
<DependentUpon>AssemblyPlanControl.xaml</DependentUpon>
@ -148,6 +182,9 @@
<Compile Include="Page\TaskInfo\TaskInfoControl.xaml.cs">
<DependentUpon>TaskInfoControl.xaml</DependentUpon>
</Compile>
<Compile Include="LoginPageView.xaml.cs">
<DependentUpon>LoginPageView.xaml</DependentUpon>
</Compile>
<Compile Include="RecordControl.xaml.cs">
<DependentUpon>RecordControl.xaml</DependentUpon>
</Compile>
@ -165,6 +202,7 @@
<Compile Include="viewModel\LogInfoViewModel.cs" />
<Compile Include="viewModel\MainViewModel.cs" />
<Compile Include="viewModel\OutStoreInfo\OutStoreInfoViewModel.cs" />
<Compile Include="viewModel\LoginPageViewModel.cs" />
<Compile Include="viewModel\RecordViewModel.cs" />
<Compile Include="viewModel\InventoryInfo\ShellInventoryViewModel.cs" />
<Compile Include="viewModel\TaskInfo\TaskInfoViewModel.cs" />
@ -244,6 +282,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="LoginPageView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="RecordControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@ -267,6 +309,8 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Resource Include="templates\image\Newlog.png" />
<Resource Include="templates\image\login-background.png" />
<Resource Include="templates\image\Green.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
@ -335,4 +379,11 @@
<Resource Include="templates\image\background.jpg" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\MaterialDesignThemes.5.0.0\build\MaterialDesignThemes.targets" Condition="Exists('..\packages\MaterialDesignThemes.5.0.0\build\MaterialDesignThemes.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\MaterialDesignThemes.5.0.0\build\MaterialDesignThemes.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MaterialDesignThemes.5.0.0\build\MaterialDesignThemes.targets'))" />
</Target>
</Project>

@ -0,0 +1,73 @@
<Window x:Class="Aucma.Scada.UI.LoginPageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:local="clr-namespace:Aucma.Scada.UI"
mc:Ignorable="d"
Title="登录"
x:Name="MainWindow"
FontFamily="Microsoft YaHei"
WindowStartupLocation="CenterScreen"
WindowState="Maximized" d:DesignWidth="1200" d:DesignHeight="900"
>
<Window.Background>
<ImageBrush ImageSource="/templates/image/login-background.png" />
</Window.Background>
<Border Margin="5" Background="Transparent">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="2*"/>
<RowDefinition/>
</Grid.RowDefinitions>
<UniformGrid Grid.Row="0">
<StackPanel HorizontalAlignment="Left">
<!--<Image Source="/Assets/Images/Newlog.png" Width="100" />-->
</StackPanel>
</UniformGrid>
<UniformGrid Grid.Row="1" Margin="0 10">
<Border BorderThickness="4" CornerRadius="5" x:Name="DialogHost" Width="400" Height="350" VerticalAlignment="Center" HorizontalAlignment="Center" >
<StackPanel Background="White">
<ComboBox Margin="0 50 0 0" BorderThickness="1" FontSize="18"
x:Name="selectTeamComboBox" ItemsSource="{Binding TeamMembersList}"
Width="300"
materialDesign:HintAssist.Hint="班组"
SelectedValuePath="TeamCode"
DisplayMemberPath="TeamName"
BorderBrush="#DCDCDC"
Style="{StaticResource MaterialDesignOutlinedComboBox}">
</ComboBox>
<TextBox Margin="0 10 0 0"
x:Name="txtUserName"
Width="300"
FontSize="18"
BorderBrush="#DCDCDC"
materialDesign:HintAssist.Hint="用户名"
BorderThickness="1"
Style="{StaticResource MaterialDesignOutlinedTextBox}" />
<PasswordBox Margin="0 10 0 0" Width="300" FontSize="18" x:Name="txtPassword"
materialDesign:HintAssist.Hint="密码" BorderThickness="1" BorderBrush="#DCDCDC"
Style="{StaticResource MaterialDesignOutlinedPasswordBox}" />
<Button Margin="0 20 0 0"
x:Name="loginBtn"
Width="300"
Height="53"
BorderBrush="Transparent"
Command="{Binding LoginCommand}" Click="loginBtn_Click"
materialDesign:ButtonAssist.CornerRadius="10" Background="#4285DE" Foreground="#DDFFFFFF"
Content="登录" />
</StackPanel>
</Border>
</UniformGrid>
<UniformGrid Grid.Row="2">
</UniformGrid>
</Grid>
</Border>
</Window>

@ -0,0 +1,72 @@
using Aucma.Scada.Model.domain;
using Aucma.Scada.UI.viewModel;
using HighWayIot.Common;
using System;
using System.Windows;
namespace Aucma.Scada.UI
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class LoginPageView : Window
{
private static readonly Lazy<LoginPageView> _instance = new Lazy<LoginPageView>(() => new LoginPageView());
public static LoginPageView Instance => _instance.Value;
LoginPageViewModel loginViewModel = new LoginPageViewModel();
public LoginPageView()
{
InitializeComponent();
this.DataContext = loginViewModel;
Closing += LoginPageView_Closing; // 订阅窗口关闭事件
}
private void LoginPageView_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
System.Environment.Exit(0);
}
private void loginBtn_Click(object sender, RoutedEventArgs e)
{
string userName = txtUserName.Text;
string passWord = txtPassword.Password;
BaseTeamMembers teamMembers = (BaseTeamMembers)this.selectTeamComboBox.SelectedItem;
if (teamMembers == null)
{
MessageBox.Show("请选择班组!", "系统提醒");
return;
}
// 非空校验,账号密码正则校验
if (string.IsNullOrWhiteSpace(userName))
{
MessageBox.Show("用户名不可为空!", "系统提醒");
return;
}
if (string.IsNullOrWhiteSpace(passWord))
{
MessageBox.Show("密码不可为空!", "系统提醒");
return;
}
// 登录校验
txtUserName.Text = "";
txtPassword.Password = "";
loginViewModel.Login(teamMembers, userName, passWord, this);
}
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
// 弹出系统键盘
OSKHelper.OpenOsk();
}
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
// 隐藏系统键盘
OSKHelper.CloseOsk();
}
}
}

@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Aucma.Scada.UI" FontFamily="Microsoft YaHei"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d"
mc:Ignorable="d" Name="window"
Title="SCADA" Height="1080" Width="1920" Icon="Icon.png"
WindowState="Maximized" WindowStyle="None" ResizeMode="NoResize">
<Window.Background>
@ -29,7 +29,7 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<!--<StackPanel Grid.Row="0" >
-->
@ -54,21 +54,17 @@
<TextBlock Text="澳柯玛生产控制系统" FontSize="42" Foreground="White" FontWeight="Bold"/>
</StackPanel>
<StackPanel Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right">
<StackPanel Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0 20 0 0" >
<Grid>
<!--<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>-->
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding ShiftStr}" FontSize="25" Foreground="White" FontWeight="Bold" Margin="0,0,30,0"/>
<TextBlock Grid.Row="1" Text="{Binding CurrentDateTime}" FontSize="20" Foreground="White" FontWeight="Bold" Margin="0,0,30,0"/>
<!--<TextBlock Grid.Column="1" Text="|" FontSize="25" Foreground="White" FontWeight="Bold" Margin="0,0,30,0"/>
<TextBlock Grid.Column="2" Text="SCADA" FontSize="25" Foreground="White" FontWeight="Bold" Margin="0,0,10,0"/>-->
<StackPanel Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Grid.Column="0" Text="{Binding TeamName}" FontSize="20" Foreground="White" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Right"/>
<TextBlock Grid.Column="1" Text="{Binding CurrentDateTime}" FontSize="18" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>
@ -92,8 +88,8 @@
<!--<Button Content="日 志" x:Name="logInfo" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=logInfo}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>-->
<!--<Button Content="记 录" x:Name="record" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=record}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>-->
<Button Content="键 盘" Command="{Binding OpenSystemKeyboardCommand}" Style="{StaticResource BUTTON_AGREE}" Width="80" Height="40" Background="#4285DE" BorderBrush="#FF36B5C1" Margin="5 0" FontSize="17"/>
<Button Content="最小化" x:Name="Minimized" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Minimized}" Style="{StaticResource BUTTON_AGREE}" Width="80" Height="40" Background="#FF9900" BorderBrush="#FF9900" Margin="5 0" FontSize="17"/>
<Button Content="退 出" x:Name="Exit" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Exit}" Style="{StaticResource BUTTON_AGREE}" Width="80" Height="40" Background="#FF0033" BorderBrush="#FF0033" Margin="5 0" FontSize="17"/>
<Button Content="最小化" x:Name="Minimized" Command="{Binding MinCommand}" CommandParameter="{Binding ElementName=window}" Style="{StaticResource BUTTON_AGREE}" Width="80" Height="40" Background="#FF9900" BorderBrush="#FF9900" Margin="5 0" FontSize="17"/>
<Button Content="退 出" x:Name="Exit" Command="{Binding CloseCommand}" CommandParameter="{Binding ElementName=window}" Style="{StaticResource BUTTON_AGREE}" Width="80" Height="40" Background="#FF0033" BorderBrush="#FF0033" Margin="5 0" FontSize="17"/>
</StackPanel>
<StackPanel Height="50" Orientation="Horizontal" HorizontalAlignment="Right">

@ -1,19 +1,22 @@
using Aucma.Scada.UI.viewModel;
using System.Windows;
using System;
namespace Aucma.Scada.UI
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
public partial class MainWindow
{
public MainWindow()
private static readonly Lazy<MainWindow> _instance = new Lazy<MainWindow>(() => new MainWindow());
public static MainWindow Instance => _instance.Value;
private MainWindow()
{
InitializeComponent();
MainViewModel mainViewModel = new MainViewModel();
this.DataContext = mainViewModel;
}
}
}

@ -0,0 +1,21 @@
namespace Aucma.Scada.UI.Model
{
/**
*
* */
public class Result
{
/// <summary>
/// 返回结果
/// </summary>
public string msg { get; set; }
/// <summary>
/// 返回状态
/// </summary>
public int code { get; set; }
/// <summary>
/// 返回令牌
/// </summary>
public string token { get; set; }
}
}

@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Aucma.Scada.UI.Model
namespace Aucma.Scada.UI.Model
{
public class typeGridModel
{

@ -1,18 +1,6 @@
using Aucma.Scada.Model.domain;
using Aucma.Scada.UI.viewModel.AssemblyPlan;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Aucma.Scada.UI.Page.AssemblyPlan
{

@ -1,18 +1,5 @@
using Aucma.Scada.UI.viewModel.AssemblyPlan;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Aucma.Scada.UI.Page.AssemblyPlan
{
@ -27,8 +14,8 @@ namespace Aucma.Scada.UI.Page.AssemblyPlan
this.DataContext = new SearchCriteriaViewModel();
}
}
}

@ -1,6 +1,5 @@
using Aucma.Scada.Business;
using Aucma.Scada.UI.viewModel.InStoreInfo;
using HighWayIot.Config;
using System;
using System.Text.RegularExpressions;
using System.Windows;
@ -30,7 +29,7 @@ namespace Aucma.Scada.UI.Page.InStoreInfo
{
try
{
if (string.IsNullOrEmpty(SpaceCodeText.Text))
{
MessageBox.Show("请输入1-9的货道编号!");
@ -46,20 +45,21 @@ namespace Aucma.Scada.UI.Page.InStoreInfo
bool isMatch = regex.IsMatch(SpaceCodeText.Text);
if (isMatch)
{
MessageBoxResult result = MessageBox.Show($"确认异常入{SpaceCodeText.Text}库吗", "删除确认", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
// 入库
InStoreBusiness.Instance.ExceptionInstore("PH_00" + SpaceCodeText.Text);
}
}
}
else
{
MessageBox.Show("请输入1-9的货道编号!");
}
}
}catch (Exception ex)
}
catch (Exception ex)
{
}

@ -1,19 +1,5 @@
using Aucma.Scada.UI.viewModel;
using Aucma.Scada.UI.viewModel.InventoryInfo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Aucma.Scada.UI.viewModel.InventoryInfo;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Aucma.Scada.UI.Page.InventoryInfo
{

@ -1,17 +1,5 @@
using Aucma.Scada.UI.viewModel.InventoryInfo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Aucma.Scada.UI.Page.InventoryInfo
{

@ -1,19 +1,6 @@
using Aucma.Scada.UI.viewModel.AssemblyPlan;
using Aucma.Scada.UI.viewModel.InventoryInfo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aucma.Scada.UI.viewModel.InventoryInfo;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Aucma.Scada.UI.Page.InventoryInfo
{
@ -22,11 +9,11 @@ namespace Aucma.Scada.UI.Page.InventoryInfo
/// </summary>
public partial class SelectType : Window
{
private SelectTypeViewModel viewModel = null;
public SelectType(int ncount,string spaceCode)
private SelectTypeViewModel viewModel = null;
public SelectType(int ncount, string spaceCode)
{
InitializeComponent();
viewModel = new SelectTypeViewModel(ncount,spaceCode);
viewModel = new SelectTypeViewModel(ncount, spaceCode);
this.DataContext = viewModel;
viewModel.closeEvent += closeWindow;
}
@ -38,7 +25,7 @@ namespace Aucma.Scada.UI.Page.InventoryInfo
private void closeWindow()
{
this.Close();
this.Close();
}
}
}

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.116.0" newVersion="1.0.116.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.122.21.1" newVersion="4.122.21.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.116.0" newVersion="1.0.116.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.122.21.1" newVersion="4.122.21.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save