liulb@mesnac.com 10 months ago
parent 65bc307f3b
commit 41d7457722

@ -307,9 +307,9 @@
<param name="code">桶条码</param>
<returns></returns>
</member>
<member name="M:Admin.Core.Api.xl_materialController.BindBarrel2">
<member name="M:Admin.Core.Api.xl_materialController.GetCurrentMaterial">
<summary>
测试
获取当前正在称量的物料
</summary>
<returns></returns>
</member>
@ -360,12 +360,6 @@
<param name="cylinderCode">拉缸Code</param>
<returns></returns>
</member>
<member name="M:Admin.Core.Api.SolventController.GetSolventPlanInfo">
<summary>
获取所有溶剂计划
</summary>
<returns></returns>
</member>
<member name="T:Admin.Core.Api.Controllers.Business.WarehouseController">
<summary>
反应釜防错验证
@ -383,11 +377,13 @@
<param name="hw_WarehouseServices"></param>
<param name="sysUserService"></param>
</member>
<member name="M:Admin.Core.Api.Controllers.Business.WarehouseController.GetByBarrelInfo(System.String)">
<member name="M:Admin.Core.Api.Controllers.Business.WarehouseController.GetByBarrelInfo(System.String,System.String,System.String)">
<summary>
扫描料桶条码 获取桶绑定物料信息
</summary>
<param name="code">桶条码</param>
<param name="kettleBarCode">反应釜</param>
<param name="planId">计划Id</param>
<param name="code">料桶Id</param>
<returns></returns>
</member>
<member name="M:Admin.Core.Api.Controllers.Business.WarehouseController.GetByCode(System.String,System.String)">

@ -643,7 +643,7 @@
</member>
<member name="T:Admin.Core.Model.Hw_Warehouse">
<summary>
反应釜
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_Warehouse.ID">
@ -655,23 +655,18 @@
</member>
<member name="P:Admin.Core.Model.Hw_Warehouse.Name">
<summary>
Desc:成品物料名称
Desc:反应釜名称
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_Warehouse.BarCode">
<summary>
Desc:条码Code
Desc:反应釜二维码
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_Warehouse.PlanId">
<summary>
反应釜计划号
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_Warehouse.CreateTime">
<summary>
Desc:
@ -691,11 +686,6 @@
投料釜相关物料
</summary>
</member>
<member name="M:Admin.Core.Model.Hw_WareHouse_Sub.#ctor">
<summary>
构造函数
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.ID">
<summary>
Desc:主键
@ -705,19 +695,35 @@
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.MainId">
<summary>
Desc:釜主键
Desc:
Default:
Nullable:False
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.PId">
<summary>
计划号
Desc:批次
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.ProductName">
<summary>
Desc:产品名称
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.MaterialID">
<summary>
Desc:物料ID(废弃)
Desc:物料编码
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.Material_Code">
<summary>
Desc:二维码
Default:
Nullable:True
</summary>
@ -729,32 +735,84 @@
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.Material_Code">
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.BinId">
<summary>
Desc:条码
Desc:所属料仓
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.MaterialType">
<summary>
Desc:物料类型:整包、尾料、溶剂
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.SetWeight">
<summary>
Desc:物料重量
Desc:重量
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.SetError">
<summary>
物料误差
Desc:误差值
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.Difference">
<summary>
Desc:工装区分,相同值代表在一个料桶中
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.Fixed">
<summary>
Desc:是否有固含 1为有0没有
Default:0
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.FixedRatio">
<summary>
Desc:固含率
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.Recipe">
<summary>
Desc:配方名
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.Remark">
<summary>
备注
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.CreateTime">
<summary>
Desc:创建时间
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.Weighbridge">
<summary>
地磅
</summary>
</member>
<member name="P:Admin.Core.Model.Hw_WareHouse_Sub.PumpCode">
<summary>
泵条码
</summary>
</member>
<member name="T:Admin.Core.Model.Hw_weigh">
<summary>
@ -837,6 +895,60 @@
Nullable:True
</summary>
</member>
<member name="T:Admin.Core.Model.LR_Alarmlog">
<summary>
报警记录
</summary>
</member>
<member name="P:Admin.Core.Model.LR_Alarmlog.ID">
<summary>
Desc:主键
Default:
Nullable:False
</summary>
</member>
<member name="P:Admin.Core.Model.LR_Alarmlog.Equip_Code">
<summary>
Desc:设备编码
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_Alarmlog.Alarm_ID">
<summary>
Desc:预警编码
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_Alarmlog.Alarm_OccurTime">
<summary>
Desc:发生时间
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_Alarmlog.Alarm_ClearTime">
<summary>
Desc:清理时间
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_Alarmlog.Alarm_Status">
<summary>
Desc:GUID
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_Alarmlog.Alarm_GUID">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="T:Admin.Core.Model.LR_plan">
<summary>
@ -1038,6 +1150,175 @@
Nullable:True
</summary>
</member>
<member name="T:Admin.Core.Model.LR_weigh">
<summary>
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.ID">
<summary>
Desc:
Default:
Nullable:False
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Dosing_ID">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Plan_ID">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Recipe_ID">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Bin_Serial">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Material_ID">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Material_Name">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Set_Weight">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Set_Error">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Real_Weight">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.Real_Error">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.EndTime">
<summary>
Desc:称量时间
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.LR_weigh.MainId">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="T:Admin.Core.Model.Pmt_Alarm">
<summary>
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_ID">
<summary>
Desc:
Default:
Nullable:False
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Equip_Code">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_PLC">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_Point">
<summary>
点位
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_Block">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_Alias">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_Cn_Info">
<summary>
Desc:中文名称
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_En_Info">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_Level">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.Pmt_Alarm.Alarm_Word">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="T:Admin.Core.Model.Pmt_Bin">
<summary>
@ -3706,23 +3987,54 @@
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.BarrelView.MaterialID">
<member name="P:Admin.Core.Model.ViewModels.BarrelView.child">
<summary>
物料信息
</summary>
</member>
<member name="T:Admin.Core.Model.ViewModels.MaterialView">
<summary>
物料信息
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.MaterialView.MaterialID">
<summary>
Desc:物料ID
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.BarrelView.MaterialName">
<member name="P:Admin.Core.Model.ViewModels.MaterialView.MaterialBarCode">
<summary>
Desc:物料二维码
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.MaterialView.MaterialName">
<summary>
Desc:物料名称
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.BarrelView.Weight">
<member name="P:Admin.Core.Model.ViewModels.MaterialView.Weight">
<summary>
Desc:绑定桶的物料重量
Desc:物料重量
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.MaterialView.Error">
<summary>
Desc:物料误差
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.MaterialView.MatchOrNot">
<summary>
Desc:是否验证
Default:
Nullable:True
</summary>
@ -3807,6 +4119,102 @@
类型 :整包、称量
</summary>
</member>
<member name="T:Admin.Core.Model.ViewModels.HwWareHouseSubView">
<summary>
反应釜类型子表
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.ID">
<summary>
Desc:主键
Default:
Nullable:False
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.MainId">
<summary>
Desc:
Default:
Nullable:False
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.PId">
<summary>
Desc:批次
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.ProductName">
<summary>
Desc:产品名称
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.MaterialID">
<summary>
Desc:物料编码
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.Material_Code">
<summary>
Desc:二维码
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.MaterialName">
<summary>
Desc:物料名称
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.BinId">
<summary>
Desc:所属料仓
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.MaterialType">
<summary>
Desc:物料类型:整包、尾料、溶剂
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.SetWeight">
<summary>
Desc:重量
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.SetError">
<summary>
Desc:误差值
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.Difference">
<summary>
Desc:工装区分,相同值代表在一个料桶中
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.HwWareHouseSubView.Recipe">
<summary>
Desc:配方名
Default:
Nullable:True
</summary>
</member>
<member name="T:Admin.Core.Model.ViewModels.KettleView">
<summary>
投料釜匹配完成传入参数
@ -3827,32 +4235,47 @@
投料釜条码
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.KettleView.BarrelCode">
<member name="P:Admin.Core.Model.ViewModels.KettleView.State">
<summary>
料桶条码
状态 0:未扫描 1:匹配 2:报警
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.KettleView.MatCode">
<member name="P:Admin.Core.Model.ViewModels.KettleView.Child">
<summary>
物料条码
投入物料详细
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.KettleView.MatWeight">
<member name="T:Admin.Core.Model.ViewModels.MaterialList">
<summary>
物料重量
物料详细
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.KettleView.MatType">
<member name="P:Admin.Core.Model.ViewModels.MaterialList.MatType">
<summary>
物料类型:整包、散装
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.KettleView.State">
<member name="P:Admin.Core.Model.ViewModels.MaterialList.BarrelCode">
<summary>
状态 0:未扫描 1:匹配 2:报警
料桶条码
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.MaterialList.MatCode">
<summary>
物料条码
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.KettleView.WholePackage">
<member name="P:Admin.Core.Model.ViewModels.MaterialList.MatName">
<summary>
物料名称
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.MaterialList.MatWeight">
<summary>
实际物料重量
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.MaterialList.WholePackage">
<summary>
投料整包完整信息
</summary>
@ -4377,6 +4800,11 @@
子菜单
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.WarehouseView.ID">
<summary>
主键
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.WarehouseView.PlanId">
<summary>
计划ID
@ -4384,28 +4812,14 @@
</member>
<member name="P:Admin.Core.Model.ViewModels.WarehouseView.Name">
<summary>
Desc:成品物料名称
Desc:反应釜名称
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.WarehouseView.BarCode">
<summary>
Desc:条码Code
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.WarehouseView.CreateTime">
<summary>
Desc:
Default:
Nullable:True
</summary>
</member>
<member name="P:Admin.Core.Model.ViewModels.WarehouseView.UpdateTime">
<summary>
Desc:更新时间
Desc:反应釜二维码
Default:
Nullable:True
</summary>

@ -154,6 +154,7 @@ namespace Admin.Core.Api
/// </summary>
/// <param name="code">桶条码</param>
/// <returns></returns>
[Obsolete("废弃")]
[HttpGet]
public async Task<MessageModel<bool>> BindBarrel(string code)
{
@ -188,17 +189,16 @@ namespace Admin.Core.Api
}
#endregion
#region 测试
#region 获取当前正在称量的物料
/// <summary>
/// 测试
/// 获取当前正在称量的物料
/// </summary>
/// <returns></returns>
[HttpGet]
public Task<int> BindBarrel2()
public Task<MessageModel<string>> GetCurrentMaterial()
{
decimal we2 = Convert.ToDecimal(Adapter.ReadInt16("DB104.DBW164")) / 100;//检量秤重量
int tcheckBatch = Adapter.ReadInt32("DB110.DBW212");//当前执行的车次
return Task.FromResult(tcheckBatch);
MessageModel<string> ms=new MessageModel<string>();
return Task.FromResult(ms);
}
#endregion

@ -56,7 +56,7 @@ namespace Admin.Core.Api
var query = await _solventServices.GetByCylinderCode(code.Trim(),weighbridge.Trim());
if (query == null)
{
return Failed<WaitePlanView>("查询失败");
return Failed<WaitePlanView>("未查询到计划信息");
}
return Success(query);
}
@ -136,29 +136,6 @@ namespace Admin.Core.Api
}
#endregion
#region 获取所有溶剂计划
/// <summary>
/// 获取所有溶剂计划
/// </summary>
/// <returns></returns>
[HttpGet]
[Obsolete("废弃")]
public async Task<MessageModel<List<SolventPlanView>>> GetSolventPlanInfo()
{
MessageModel<List<SolventPlanView>> message = new MessageModel<List<SolventPlanView>>();
var list = await _solventServices.GetSolventPlanInfo();
if (list.Count > 0)
{
message.success = true;
message.data = list;
}
else
{
message.success = false;
message.msg = "未查询到计划数据!";
}
return message;
}
#endregion
}
}

@ -37,6 +37,7 @@ namespace Admin.Core.Api.Controllers.Business
/// </summary>
private readonly IHw_WarehouseServices _hw_WarehouseService;
#region 构造方法
/// <summary>
/// 构造方法
/// </summary>
@ -48,20 +49,24 @@ namespace Admin.Core.Api.Controllers.Business
_hw_WarehouseService = hw_WarehouseServices;
}
#endregion
#region 扫描料桶条码 获取桶绑定物料信息
/// <summary>
/// 扫描料桶条码 获取桶绑定物料信息
/// </summary>
/// <param name="code">桶条码</param>
/// <param name="kettleBarCode">反应釜</param>
/// <param name="planId">计划Id</param>
/// <param name="code">料桶Id</param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<BarrelView>> GetByBarrelInfo(string code)
public async Task<MessageModel<BarrelView>> GetByBarrelInfo(string kettleBarCode, string planId,string code)
{
if (!code.IsNotEmptyOrNull())
{
return Failed<BarrelView>("传入参数为空!");
}
var query = await _hw_WarehouseService.GetXlInfo(code.Trim());
var query = await _hw_WarehouseService.GetXlInfo(kettleBarCode.Trim(),planId.Trim(),code.Trim());
if (query == null)
{
return Failed<BarrelView>("查询失败!");
@ -121,7 +126,6 @@ namespace Admin.Core.Api.Controllers.Business
}
#endregion
#region 查询反应釜计划
/// <summary>
/// 查询反应釜计划
@ -143,7 +147,5 @@ namespace Admin.Core.Api.Controllers.Business
return Success(list);
}
#endregion
}
}

@ -13,5 +13,9 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PublishUrl>E:\发布文件</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<_TargetId>Folder</_TargetId>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>net6.0</TargetFramework>
<ProjectGuid>4d119349-9b79-489b-8e25-0f314b0693ba</ProjectGuid>
<SelfContained>false</SelfContained>
</PropertyGroup>
</Project>

@ -61,7 +61,6 @@
// MainDBConnId,Enabledtrue
// *** MutiDBEnabled false ***
// *** MutiDBEnabled trueEnabledtrue **
// https://www.bilibili.com/video/BV1BJ411B7mn?p=6
"MainDB": "ADMIN_SQLITE", //Enabledtrue
"MutiDBEnabled": false, //
"CQRSEnabled": false, //SqlServer
@ -81,11 +80,8 @@
"DBType": 1,
"Enabled": true,
"HitRate": 50,
//"Connection": "Server=127.0.0.1;Port=5432;User Id=postgres;Password=postgres;Database=Admin.Core;",
"Connection": "Data Source=localhost;Initial Catalog=cwss_xl;User ID=sa;Password=sa;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"Connection": "Data Source=.;Initial Catalog=RCEP_Market;User ID=sa;Password=Password01!;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"Connection": "db/hw.db",
//"Connection": "Data Source=121.36.58.109;Initial Catalog=cwss_xl;User ID=sa;Password=haiwei@123;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"Connection": "Data Source=192.168.10.50;Initial Catalog=cwss_xl;User ID=sa;Password=sa;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
}
],
@ -117,7 +113,6 @@
}
},
"Redis": {
//"ConnectionString": "127.0.0.1:6379"
"ConnectionString": "127.0.0.1:6379"
},
"RabbitMQ": {
@ -173,7 +168,7 @@
{
"Id": 2,
"EquipName": "溶剂PLC",
"IP": "127.0.0.1",
"IP": "192.168.10.130",
"Port": 102
}
],

@ -61,7 +61,6 @@
// MainDBConnId,Enabledtrue
// *** MutiDBEnabled false ***
// *** MutiDBEnabled trueEnabledtrue **
// https://www.bilibili.com/video/BV1BJ411B7mn?p=6
"MainDB": "ADMIN_SQLITE", //Enabledtrue
"MutiDBEnabled": false, //
"CQRSEnabled": false, //SqlServer
@ -81,11 +80,7 @@
"DBType": 1,
"Enabled": true,
"HitRate": 50,
//"Connection": "Server=127.0.0.1;Port=5432;User Id=postgres;Password=postgres;Database=Admin.Core;",
"Connection": "Data Source=localhost;Initial Catalog=cwss_xl;User ID=sa;Password=sa;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"Connection": "Data Source=.;Initial Catalog=RCEP_Market;User ID=sa;Password=Password01!;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"Connection": "db/hw.db",
"Connection": "Data Source=192.168.10.50;Initial Catalog=cwss_xl;User ID=sa;Password=sa;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ProviderName": "System.Data.SqlClient"
}
],
@ -117,7 +112,6 @@
}
},
"Redis": {
//"ConnectionString": "127.0.0.1:6379"
"ConnectionString": "127.0.0.1:6379"
},
"RabbitMQ": {
@ -167,13 +161,13 @@
{
"Id": 1,
"EquipName": "小料PLC",
"IP": "127.0.0.1",
"IP": "192.168.10.100",
"Port": 102
},
{
"Id": 2,
"EquipName": "溶剂PLC",
"IP": "127.0.0.1",
"IP": "192.168.10.130",
"Port": 102
}
],

@ -3,9 +3,7 @@ using Admin.Core.IService.ISys;
using Admin.Core.Tasks;
using log4net;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using System;
using System.Threading.Tasks;
namespace Admin.Core.Extensions
{
@ -15,7 +13,7 @@ namespace Admin.Core.Extensions
public static class QuartzJobMildd
{
private static readonly ILog log = LogManager.GetLogger(typeof(QuartzJobMildd));
public static async Task UseQuartzJobMildd(this IApplicationBuilder app, ISysTasksQzService tasksQzService, ISchedulerCenter schedulerCenter)
public static void UseQuartzJobMildd(this IApplicationBuilder app, ISysTasksQzService tasksQzService, ISchedulerCenter schedulerCenter)
{
if (app == null) throw new ArgumentNullException(nameof(app));
@ -24,7 +22,7 @@ namespace Admin.Core.Extensions
if (Appsettings.app("Middleware", "QuartzNetJob", "Enabled").ObjToBool())
{
//**注意在此处查询《wpf异步查询不到改为同步》**
var allQzServices =await tasksQzService.QueryAsync(x => x.DelFlag == false);
var allQzServices =tasksQzService.Query(x => x.DelFlag == false);
foreach (var item in allQzServices)
{
if ((bool)item.IsStart)

@ -0,0 +1,11 @@
using Admin.Core.Model;
namespace Admin.Core.IRepository
{
/// <summary>
/// ILR_AlarmlogRepository
/// </summary>
public interface ILR_AlarmlogRepository : IBaseRepository<LR_Alarmlog>
{
}
}

@ -0,0 +1,11 @@
using Admin.Core.Model;
namespace Admin.Core.IRepository
{
/// <summary>
/// ILR_weighRepository
/// </summary>
public interface ILR_weighRepository : IBaseRepository<LR_weigh>
{
}
}

@ -0,0 +1,11 @@
using Admin.Core.Model;
namespace Admin.Core.IRepository
{
/// <summary>
/// IPmt_AlarmRepository
/// </summary>
public interface IPmt_AlarmRepository : IBaseRepository<Pmt_Alarm>
{
}
}

@ -14,7 +14,7 @@ namespace Admin.Core.IService
{
Task<WarehouseView> QueryByCode(string code,string planId);
Task<bool> UpdatePlcState(KettleView view);
Task<BarrelView> GetXlInfo(string code);
Task<BarrelView> GetXlInfo(string kettleBarCode, string planId, string code);
Task<List<string>> GetWarehousePlan(string code);
}
}

@ -0,0 +1,12 @@
using Admin.Core.IService;
using Admin.Core.Model;
namespace Admin.Core.IService
{
/// <summary>
/// ILR_AlarmlogServices
/// </summary>
public interface ILR_AlarmlogServices :IBaseServices<LR_Alarmlog>
{
}
}

@ -0,0 +1,12 @@
using Admin.Core.IService;
using Admin.Core.Model;
namespace Admin.Core.IService
{
/// <summary>
/// ILR_weighServices
/// </summary>
public interface ILR_weighServices :IBaseServices<LR_weigh>
{
}
}

@ -0,0 +1,12 @@
using Admin.Core.IService;
using Admin.Core.Model;
namespace Admin.Core.IService
{
/// <summary>
/// IPmt_AlarmServices
/// </summary>
public interface IPmt_AlarmServices :IBaseServices<Pmt_Alarm>
{
}
}

@ -1,4 +1,5 @@
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using SqlSugar;
@ -10,14 +11,11 @@ namespace Admin.Core.Model
///投料釜相关物料
///</summary>
[SugarTable("Hw_WareHouse_Sub", "cwss_xl")]
///<summary>
///反应釜计划
///</summary>
public class Hw_WareHouse_Sub
{
/// <summary>
/// 构造函数
/// </summary>
public Hw_WareHouse_Sub()
{
}
/// <summary>
/// Desc:主键
/// Default:
@ -26,49 +24,108 @@ namespace Admin.Core.Model
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int ID { get; set; }
/// <summary>
/// Desc:釜主键
/// Desc:
/// Default:
/// Nullable:False
/// </summary>
public int MainId { get; set; }
/// <summary>
/// 计划号
/// Desc:批次
/// Default:
/// Nullable:True
/// </summary>
public string PId { get; set; }
/// <summary>
/// Desc:物料ID(废弃)
/// Desc:产品名称
/// Default:
/// Nullable:True
/// </summary>
public string ProductName { get; set; }
/// <summary>
/// Desc:物料编码
/// Default:
/// Nullable:True
/// </summary>
public string MaterialID { get; set; }
/// <summary>
/// Desc:二维码
/// Default:
/// Nullable:True
/// </summary>
public string Material_Code { get; set; }
/// <summary>
/// Desc:物料名称
/// Default:
/// Nullable:True
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// Desc:条码
/// Desc:所属料仓
/// Default:
/// Nullable:True
/// </summary>
public string Material_Code { get; set; }
public int BinId { get; set; }
/// <summary>
/// Desc:物料重量
/// Desc:物料类型:整包、尾料、溶剂
/// Default:
/// Nullable:True
/// </summary>
public string MaterialType { get; set; }
/// <summary>
/// Desc:重量
/// Default:
/// Nullable:True
/// </summary>
public decimal SetWeight { get; set; }
/// <summary>
/// 物料误差
/// Desc:误差值
/// Default:
/// Nullable:True
/// </summary>
public decimal SetError { get; set; }
/// <summary>
/// Desc:创建时间
/// Desc:工装区分,相同值代表在一个料桶中
/// Default:
/// Nullable:True
/// </summary>
public string Difference { get; set; }
/// <summary>
/// Desc:是否有固含 1为有0没有
/// Default:0
/// Nullable:True
/// </summary>
public bool Fixed { get; set; }
/// <summary>
/// Desc:固含率
/// Default:
/// Nullable:True
/// </summary>
public decimal FixedRatio { get; set; }
/// <summary>
/// Desc:配方名
/// Default:
/// Nullable:True
/// </summary>
public string Recipe { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 地磅
/// </summary>
public string Weighbridge { get; set; }
/// <summary>
/// 泵条码
/// </summary>
public string PumpCode { get; set; }
}
}

@ -9,14 +9,11 @@ using SqlSugar;
namespace Admin.Core.Model
{
///<summary>
///
///反应釜
///</summary>
[SugarTable("Hw_Warehouse", "cwss_xl")]
public class Hw_Warehouse
{
public Hw_Warehouse()
{
}
/// <summary>
/// Desc:
/// Default:
@ -25,22 +22,18 @@ namespace Admin.Core.Model
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int ID { get; set; }
/// <summary>
/// Desc:成品物料名称
/// Desc:反应釜名称
/// Default:
/// Nullable:True
/// </summary>
public string Name { get; set; }
/// <summary>
/// Desc:条码Code
/// Desc:反应釜二维码
/// Default:
/// Nullable:True
/// </summary>
public string BarCode { get; set; }
/// <summary>
/// 反应釜计划号
/// </summary>
public string PlanId { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True

@ -0,0 +1,59 @@
using System;
using System.Linq;
using System.Text;
using SqlSugar;
namespace Admin.Core.Model
{
///<summary>
///报警记录
///</summary>
[SugarTable("LR_Alarmlog", "cwss_xl")]
public class LR_Alarmlog
{
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int ID { get; set; }
/// <summary>
/// Desc:设备编码
/// Default:
/// Nullable:True
/// </summary>
public string Equip_Code { get; set; }
/// <summary>
/// Desc:预警编码
/// Default:
/// Nullable:True
/// </summary>
public int? Alarm_ID { get; set; }
/// <summary>
/// Desc:发生时间
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_OccurTime { get; set; }
/// <summary>
/// Desc:清理时间
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_ClearTime { get; set; }
/// <summary>
/// Desc:GUID
/// Default:
/// Nullable:True
/// </summary>
public int? Alarm_Status { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_GUID { get; set; }
}
}

@ -0,0 +1,95 @@
using System;
using System.Linq;
using System.Text;
using SqlSugar;
namespace Admin.Core.Model
{
///<summary>
///
///</summary>
[SugarTable("LR_weigh", "cwss_xl")]
public class LR_weigh
{
/// <summary>
/// Desc:
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int ID { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Dosing_ID { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Plan_ID { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Recipe_ID { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public int? Bin_Serial { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Material_ID { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Material_Name { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Set_Weight { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Set_Error { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public decimal? Real_Weight { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public decimal? Real_Error { get; set; }
/// <summary>
/// Desc:称量时间
/// Default:
/// Nullable:True
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public int MainId { get; set; }
}
}

@ -0,0 +1,79 @@
using System;
using System.Linq;
using System.Text;
using SqlSugar;
namespace Admin.Core.Model
{
///<summary>
///
///</summary>
[SugarTable("Pmt_Alarm", "cwss_xl")]
public class Pmt_Alarm
{
public Pmt_Alarm()
{
}
/// <summary>
/// Desc:
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Alarm_ID { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Equip_Code { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_PLC { get; set; }
/// <summary>
/// 点位
/// </summary>
public string Alarm_Point { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public int? Alarm_Block { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_Alias { get; set; }
/// <summary>
/// Desc:中文名称
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_Cn_Info { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_En_Info { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public int? Alarm_Level { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string Alarm_Word { get; set; }
}
}

@ -31,6 +31,17 @@ namespace Admin.Core.Model.ViewModels
/// Nullable:True
/// </summary>
public string BarCode { get; set; }
/// <summary>
/// 物料信息
/// </summary>
public List<MaterialView> child { get; set; }
}
/// <summary>
/// 物料信息
/// </summary>
public class MaterialView
{
/// <summary>
/// Desc:物料ID
/// Default:
@ -38,16 +49,34 @@ namespace Admin.Core.Model.ViewModels
/// </summary>
public string MaterialID { get; set; }
/// <summary>
/// Desc:物料二维码
/// Default:
/// Nullable:True
/// </summary>
public string MaterialBarCode { get; set; }
/// <summary>
/// Desc:物料名称
/// Default:
/// Nullable:True
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// Desc:绑定桶的物料重量
/// Desc:物料重量
/// Default:
/// Nullable:True
/// </summary>
public decimal? Weight { get; set; }
/// <summary>
/// Desc:物料误差
/// Default:
/// Nullable:True
/// </summary>
public decimal? Error { get; set; }
/// <summary>
/// Desc:是否验证
/// Default:
/// Nullable:True
/// </summary>
public int MatchOrNot { get; set; }
}
}

@ -0,0 +1,97 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.Model.ViewModels
{
/// <summary>
/// 反应釜类型子表
/// </summary>
public class HwWareHouseSubView
{
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int ID { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:False
/// </summary>
public int MainId { get; set; }
/// <summary>
/// Desc:批次
/// Default:
/// Nullable:True
/// </summary>
public string PId { get; set; }
/// <summary>
/// Desc:产品名称
/// Default:
/// Nullable:True
/// </summary>
public string ProductName { get; set; }
/// <summary>
/// Desc:物料编码
/// Default:
/// Nullable:True
/// </summary>
public string MaterialID { get; set; }
/// <summary>
/// Desc:二维码
/// Default:
/// Nullable:True
/// </summary>
public string Material_Code { get; set; }
/// <summary>
/// Desc:物料名称
/// Default:
/// Nullable:True
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// Desc:所属料仓
/// Default:
/// Nullable:True
/// </summary>
public int BinId { get; set; }
/// <summary>
/// Desc:物料类型:整包、尾料、溶剂
/// Default:
/// Nullable:True
/// </summary>
public string MaterialType { get; set; }
/// <summary>
/// Desc:重量
/// Default:
/// Nullable:True
/// </summary>
public decimal SetWeight { get; set; }
/// <summary>
/// Desc:误差值
/// Default:
/// Nullable:True
/// </summary>
public decimal SetError { get; set; }
/// <summary>
/// Desc:工装区分,相同值代表在一个料桶中
/// Default:
/// Nullable:True
/// </summary>
public string Difference { get; set; }
/// <summary>
/// Desc:配方名
/// Default:
/// Nullable:True
/// </summary>
public string Recipe { get; set; }
}
}

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace Admin.Core.Model.ViewModels
{
@ -24,29 +20,43 @@ namespace Admin.Core.Model.ViewModels
/// </summary>
public string KCode { get; set; }
/// <summary>
/// 料桶条码
/// 状态 0:未扫描 1:匹配 2:报警
/// </summary>
public string BarrelCode { get; set; }
public int State { get; set; }
/// <summary>
/// 物料条码
/// 投入物料详细
/// </summary>
public string MatCode { get; set; }
public List<MaterialList> Child { get; set; }
}
/// <summary>
/// 物料重量
/// 物料详细
/// </summary>
public decimal MatWeight { get; set; }
public class MaterialList
{
/// <summary>
/// 物料类型:整包、散装
/// </summary>
public string MatType { get; set; }
/// <summary>
/// 状态 0:未扫描 1:匹配 2:报警
/// 料桶条码
/// </summary>
public int State { get; set; }
public string BarrelCode { get; set; }
/// <summary>
/// 物料条码
/// </summary>
public string MatCode { get; set; }
/// <summary>
/// 物料名称
/// </summary>
public string MatName { get; set; }
/// <summary>
/// 实际物料重量
/// </summary>
public double MatWeight { get; set; }
/// <summary>
/// 投料整包完整信息
/// </summary>
public string WholePackage { get; set; }
}
}

@ -8,38 +8,29 @@ namespace Admin.Core.Model.ViewModels
{
public class WarehouseView
{
/// <summary>
/// 主键
/// </summary>
public int ID { get; set; }
/// <summary>
/// 计划ID
/// </summary>
public string PlanId { get; set; }
/// <summary>
/// Desc:成品物料名称
/// Desc:反应釜名称
/// Default:
/// Nullable:True
/// </summary>
public string Name { get; set; }
/// <summary>
/// Desc:条码Code
/// Desc:反应釜二维码
/// Default:
/// Nullable:True
/// </summary>
public string BarCode { get; set; }
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string CreateTime { get; set; }
/// <summary>
/// Desc:更新时间
/// Default:
/// Nullable:True
/// </summary>
public string UpdateTime { get; set; }
/// <summary>
/// 子菜单
/// </summary>
public List<Hw_WareHouse_Sub> Children { get; set; } = new List<Hw_WareHouse_Sub>();
public List<HwWareHouseSubView> Children { get; set; } = new List<HwWareHouseSubView>();
}
}

@ -20,7 +20,7 @@ namespace Admin.Core.Repository
string sql = @"select w.Weight_Id MID,p.Plan_Id,p.Plan_Num,p.Real_Num,p.Plan_Serial,p.Plan_State,p.Plan_Date,p.Plan_StateText,r.ID as RecipeID,r.Recipe_Serial,r.Recipe_Name,r.Version,r.Recipe_Verify,r.Total_Weight,r.Total_Error,m.ID as MaterialID,m.Material_name,m.Material_code,w.Set_Weight,w.Set_Error,
hw.Plan_ID MaterialPlan,ISNULL(w.IsRate,0) as Exist from RT_plan p left join Pmt_recipe r on p.Recipe_ID=r.ID left join Pmt_weigh w on r.ID=w.Recipe_ID
left join Pmt_material m on w.Material_ID=m.ID
left join Hw_weigh hw on hw.Material_ID=m.ID and p.Real_Num=hw.Dosing_ID where p.Plan_State=3 and p.Plan_Id=@Plan_Id ORDER BY w.Weight_Id";
left join Hw_weigh hw on hw.Plan_ID=p.Plan_Id and p.Real_Num=hw.Dosing_ID where p.Plan_State=3 and p.Plan_Id=@Plan_Id ORDER BY w.Weight_Id";
SugarParameter[] parameters = new SugarParameter[]
{

@ -0,0 +1,15 @@
using Admin.Core.IRepository;
using Admin.Core.Model;
namespace Admin.Core.Repository
{
/// <summary>
/// LR_AlarmlogRepository
/// </summary>
public class LR_AlarmlogRepository : BaseRepository<LR_Alarmlog>, ILR_AlarmlogRepository
{
public LR_AlarmlogRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
}
}

@ -0,0 +1,15 @@
using Admin.Core.IRepository;
using Admin.Core.Model;
namespace Admin.Core.Repository
{
/// <summary>
/// LR_weighRepository
/// </summary>
public class LR_weighRepository : BaseRepository<LR_weigh>, ILR_weighRepository
{
public LR_weighRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
}
}

@ -0,0 +1,15 @@
using Admin.Core.IRepository;
using Admin.Core.Model;
namespace Admin.Core.Repository
{
/// <summary>
/// Pmt_AlarmRepository
/// </summary>
public class Pmt_AlarmRepository : BaseRepository<Pmt_Alarm>, IPmt_AlarmRepository
{
public Pmt_AlarmRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
}
}

@ -7,6 +7,7 @@ using System;
using Admin.Core.Model.ViewModels;
using log4net;
using System.Collections.Generic;
using Microsoft.Data.SqlClient;
using Admin.Core.PlcServer;
namespace Admin.Core.Service
@ -21,8 +22,12 @@ namespace Admin.Core.Service
private readonly IHw_BarrelRepository _barrel;
private readonly Ixl_materialRepository _materialRepository;
private readonly Ixl_recipeRepository _recipeRepository;
private readonly ILR_weighRepository _lrWeighRepository;
public Hw_WarehouseServices(IBaseRepository<Hw_Warehouse> dal, IHw_WarehouseRepository wareHouse, IHw_WareHouse_SubRepository wareHouse_Sub, IHw_FeedReportRepository feed, IHw_BarrelRepository barrel, Ixl_materialRepository materialRepository, Ixl_recipeRepository recipeRepository)
public Hw_WarehouseServices(IBaseRepository<Hw_Warehouse> dal, IHw_WarehouseRepository wareHouse,
IHw_WareHouse_SubRepository wareHouse_Sub, IHw_FeedReportRepository feed,
IHw_BarrelRepository barrel, Ixl_materialRepository materialRepository,
Ixl_recipeRepository recipeRepository, ILR_weighRepository lrWeighRepository)
{
this._dal = dal;
base.BaseDal = dal;
@ -32,31 +37,84 @@ namespace Admin.Core.Service
_barrel = barrel;
_materialRepository = materialRepository;
_recipeRepository = recipeRepository;
_lrWeighRepository = lrWeighRepository;
}
#region 扫描桶二维码,获取绑定的小料配方
#region 扫描桶二维码,获取绑定的小料配方物料
/// <summary>
/// 扫描桶二维码,获取绑定的小料配方
/// </summary>
/// <param name="code">桶条码</param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<BarrelView> GetXlInfo(string code)
public async Task<BarrelView> GetXlInfo(string kettleBarCode, string planId, string code)
{
List<MaterialView> list = new List<MaterialView>();
List<MaterialView> materList = new List<MaterialView>();
try
{
Hw_Barrel hw = (await _barrel.QueryAsync(d => d.IsEnable == "是")).FirstOrDefault(d => d.BarCode == code);
Hw_Barrel hw = await _barrel.FirstAsync(d => d.IsEnable == "是" && d.BarCode == code);
if (hw == null) { return null; }
var recipe = (await _recipeRepository.QueryAsync(d => d.Recipe_Verify == 1)).FirstOrDefault(d => d.Recipe_Code == hw.MaterialID);
var recipe = await _recipeRepository.FirstAsync(d => d.Recipe_Verify == 1 && d.Recipe_Code == hw.MaterialID);
if (recipe == null) { return null; }
var materialList = await _lrWeighRepository.QueryAsync(d => d.Plan_ID == hw.PlanId && d.Recipe_ID == recipe.ID);
if (materialList.Count() == 0) { return null; }
foreach (var material in materialList)
{
MaterialView childView = new MaterialView();
childView.MaterialID = material.Material_ID;
var mat = await _materialRepository.FirstAsync(d => d.ID.Equals(material.Material_ID));
if (materialList == null) { continue; }
childView.MaterialBarCode = mat.Material_code;
childView.MaterialName = material.Material_Name;
childView.Weight = material.Real_Weight;
childView.Error = material.Real_Error;
childView.MatchOrNot = 0;
list.Add(childView);
}
var kettle = await _dal.FirstAsync(d => d.BarCode.Equals(kettleBarCode));
var subList = await _wareHouse_Sub.QueryAsync(d => d.MainId == kettle.ID && d.PId.Equals(planId) &&d.MaterialType.Contains("尾料"));
foreach (var check in list)
{
MaterialView childView = new MaterialView();
childView.MaterialID = check.MaterialID;
var mat = await _materialRepository.FirstAsync(d => d.ID.Equals(check.MaterialID));
childView.MaterialBarCode = mat.Material_code;
childView.MaterialName = check.MaterialName;
var pList = subList.Where(d => d.Material_Code.Equals(check.MaterialBarCode));
if (pList == null)
{
childView.MatchOrNot = 0;
materList.Add(childView);
continue;
}
foreach (var item in pList)
{
decimal? maxValue = item.SetWeight + item.SetError;
decimal? minValue = item.SetWeight - item.SetError;
if (minValue <= check.Weight && check.Weight <= maxValue)
{
childView.Weight = check.Weight;
childView.Error = check.Error;
childView.MatchOrNot = 1;
}
else
{
childView.Weight = check.Weight;
childView.Error = check.Error;
childView.MatchOrNot = 0;
}
}
materList.Add(childView);
}
BarrelView view = new BarrelView()
{
BarrelID = hw.BarrelID,
BarrelName = hw.BarrelName,
BarCode = hw.BarCode,
MaterialID = recipe.Recipe_Code,
MaterialName = recipe.Recipe_Name,
Weight = hw.Weight
child = materList
};
return view;
}
@ -68,31 +126,46 @@ namespace Admin.Core.Service
}
#endregion
#region 根据传入的code 查询投料釜下所有的物料
#region 根据传入的二维码、计划Id 查询反应釜下所有的物料
/// <summary>
/// 根据传入的code 查询投料釜下所有的物料
/// 根据传入的二维码、计划Id 查询反应釜下所有的物料
/// </summary>
/// <param name="code"></param>
/// <param name="code">反应釜二维码</param>
/// <param name="planId">计划Id</param>
/// <returns></returns>
public async Task<WarehouseView> QueryByCode(string code, string planId)
{
List<HwWareHouseSubView> list = new List<HwWareHouseSubView>();
try
{
Hw_Warehouse wh = await _wareHouse.FirstAsync(d => d.BarCode == code);
if (wh == null) return null;
var sub = await _wareHouse_Sub.QueryAsync(d => d.MainId == wh.ID&& d.PId== planId);
if (sub == null) return null;
var sub = await _wareHouse_Sub.QueryAsync(d => d.MainId == wh.ID&& d.PId== planId&&(d.MaterialType.Contains("整包")|| d.MaterialType.Contains("尾料")));
if (sub.Count == 0) return null;
sub.ForEach(sub =>
{
HwWareHouseSubView view = new HwWareHouseSubView();
view.ID = sub.ID;
view.MainId = sub.MainId;
view.PId = sub.PId;
view.ProductName = sub.ProductName;
view.MaterialID = sub.MaterialID;
view.Material_Code = sub.Material_Code;
view.MaterialName = sub.MaterialName;
view.BinId = sub.BinId;
view.MaterialType = sub.MaterialType;
view.SetWeight = sub.SetWeight;
view.SetError = sub.SetError;
list.Add(view);
});
WarehouseView warehouseView = new WarehouseView()
{
ID = wh.ID,
PlanId = wh.PlanId,
Name = wh.Name,
BarCode = wh.BarCode,
CreateTime = wh.CreateTime,
UpdateTime = wh.UpdateTime,
Children = sub
Children = list
};
return warehouseView;
}
catch (Exception ex)
@ -112,10 +185,8 @@ namespace Admin.Core.Service
public async Task<bool> UpdatePlcState(KettleView view)
{
List<Hw_WareHouse_Sub> subList = null;
List<Hw_Barrel> hbList = null;
Hw_WareHouse_Sub sub = null;
List<Hw_FeedReport> report = new List<Hw_FeedReport>();
Hw_Warehouse wh = null;
Hw_Barrel hwBarrel = null;
string message = string.Empty;
string name = string.Empty;
@ -175,20 +246,18 @@ namespace Admin.Core.Service
try
{
var solventPlc = PlcHelper.siemensList.SingleOrDefault(d=>d.EquipName.Equals("小料PLC"));
//log.Info("开始");
var solventPlc = PlcHelper.siemensList.SingleOrDefault(d => d.EquipName.Equals("溶剂PLC"));
log.Info($"PLC状态{solventPlc.plc.IsConnected}");
if (solventPlc.plc.IsConnected)
{
#region 记录数据
//同时记录该扫码到数据库中
List<Hw_Warehouse> list = await _wareHouse.QueryAsync();
if (list != null)
{
wh = list.FirstOrDefault(d => d.BarCode == view.KCode);
wh = await _wareHouse.FirstAsync(d => d.BarCode == view.KCode);
if (wh == null) return false;
subList = await _wareHouse_Sub.QueryAsync(d => d.MainId == wh.ID);
if (subList.Count > 0)
{
sub = subList.FirstOrDefault(d => d.MaterialID == view.MatCode.Trim());
}
}
if (subList.Count == 0) return false;
log.Info("开启模式");
if (view.State == 1)
{
message = "开启";
@ -202,49 +271,37 @@ namespace Admin.Core.Service
log.Error("传递状态为空!");
return false;
}
foreach (var item in view.Child)
{
Hw_FeedReport hw = new Hw_FeedReport()
{
WID = wh.ID,
PlanId = view.PlanId,
WName = wh.Name,
WCode = wh.BarCode,
MaterialId = sub.MaterialID,
MaterialName = sub.MaterialName,
MCode = sub.Material_Code,
MType = view.MatType,
MaterialId = item.MatCode,
MaterialName = item.MatName,
MCode = item.MatCode,
MType = item.MatType,
IsTrue = message,
CreateTime = DateTime.Now,
WholePackage = view.WholePackage.Trim()
WholePackage = item.WholePackage.Trim()
};
report.Add(hw);
}
await _feed.AddAsync(report);
//解绑 桶绑定
//hbList = await _barrel.QueryAsync();
//if (hbList != null)
//{
// hwBarrel = hbList.FirstOrDefault(d => d.BarCode == view.BarrelCode);
// if (hwBarrel != null)
// {
// hwBarrel.MaterialID = null;
// hwBarrel.MaterialName = null;
// await _feed.UpdateAsync(hw);
// }
//}
//保存记录
// int i = await _feed.AddAsync(hw);
if (string.IsNullOrEmpty(name))
{
log.Error("点位名称为空!");
return false;
}
bool result = solventPlc.plc.WriteInt16(name, view.State.ToString());//反应釜点位
if (result)
{
if (view.State == 1)
{
await _feed.AddAsync(hw);
await _feed.AddAsync(report);
}
return result;
}
@ -253,11 +310,16 @@ namespace Admin.Core.Service
log.Error("写入点位失败!");
return result;
}
#endregion
}
else
{
return false;
}
}
catch (Exception ex)
{
log.Info("异常:"+ex.Message);
log.Error(ex.Message);
return false;
}
@ -271,7 +333,8 @@ namespace Admin.Core.Service
/// <returns></returns>
public async Task<List<string>> GetWarehousePlan(string code)
{
Hw_Warehouse wh = await _wareHouse.FirstAsync(d=>d.BarCode== code);
Hw_Warehouse wh = await _wareHouse.FirstAsync(d=>d.BarCode== code.Trim());
if (wh==null) return null;
var list = await _wareHouse_Sub.QueryAsync(d=>d.MainId== wh.ID);
var planList = (from d in list

@ -0,0 +1,17 @@
using Admin.Core.IRepository;
using Admin.Core.Service;
using Admin.Core.IService;
using Admin.Core.Model;
namespace Admin.Core.Service
{
public class LR_AlarmlogServices : BaseServices<LR_Alarmlog>, ILR_AlarmlogServices
{
private readonly IBaseRepository<LR_Alarmlog> _dal;
public LR_AlarmlogServices(IBaseRepository<LR_Alarmlog> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
}
}

@ -0,0 +1,17 @@
using Admin.Core.IRepository;
using Admin.Core.Service;
using Admin.Core.IService;
using Admin.Core.Model;
namespace Admin.Core.Service
{
public class LR_weighServices : BaseServices<LR_weigh>, ILR_weighServices
{
private readonly IBaseRepository<LR_weigh> _dal;
public LR_weighServices(IBaseRepository<LR_weigh> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
}
}

@ -0,0 +1,17 @@
using Admin.Core.IRepository;
using Admin.Core.Service;
using Admin.Core.IService;
using Admin.Core.Model;
namespace Admin.Core.Service
{
public class Pmt_AlarmServices : BaseServices<Pmt_Alarm>, IPmt_AlarmServices
{
private readonly IBaseRepository<Pmt_Alarm> _dal;
public Pmt_AlarmServices(IBaseRepository<Pmt_Alarm> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
}
}

@ -7,6 +7,8 @@ using System.Linq;
using System.Collections.Generic;
using log4net;
using Admin.Core.PlcServer;
using System;
using NPOI.SS.Formula.Functions;
namespace Admin.Core.Service
{
@ -56,15 +58,20 @@ namespace Admin.Core.Service
{
if (view.Weighbridge == "1号地磅")
{
bool matCode = plcList.plc.WriteInt16("DB110.DBW400.0", "1");//执行启动
int rate = Convert.ToInt32(view.Rate * 100);
bool rr=plcList.plc.WriteInt16("DB110.DBW10.0", rate.ToString());//传入固率
bool barCode = plcList.plc.WriteInt16("DB110.DBW1768.0", "1");
// bool matCode = plcList.plc.WriteInt16("DB110.DBW482.0", "1");//执行启动
if (matCode)
if (barCode)
{
plcList.plc.Writedouble("DB110.DBW443.0", view.Rate);//传入固率
//log.Info(view.Rate + "&" + rate);
Hw_SolventErrorPreventionReport report = new Hw_SolventErrorPreventionReport()
{
PlanId = view.Plan_Id,
FinishedNum = plcList.plc.ReadInt16("DB110.DBW2") + 1,
FinishedNum = plcList.plc.ReadInt16("DB110.DBW1758.0"),
RMatCode = view.RMatCode,
MaterialID = view.MaterialID,
MaterialName = view.MaterialName,
@ -77,25 +84,26 @@ namespace Admin.Core.Service
{
var rtPlan = rtPlanList.FirstOrDefault(d => d.Plan_Id == view.Plan_Id);
if (plcList.plc.ReadInt16("DB110.DBW402") != 250)
{
var hwWeighList = await _hwWeighRepository.GetWaiteMaterial(view.Plan_Id);
if (hwWeighList != null)
{
if (hwWeighList.Count() > (rtPlan.Exec_Num + 1))
{
rtPlan.Exec_Num = 1;
}
else if (hwWeighList.Count() == (rtPlan.Exec_Num + 1))
{
rtPlan.Exec_Num = rtPlan.Exec_Num + 1;
}
else
{
rtPlan.Exec_Num = 1;
}
}
if (plcList.plc.ReadInt16("DB110.DBW8") != 250)
{
//var hwWeighList = await _hwWeighRepository.GetWaiteMaterial(view.Plan_Id);
//if (hwWeighList != null)
//{
// if (hwWeighList.Count() > (rtPlan.Exec_Num + 1))
// {
// rtPlan.Exec_Num = 1;
// }
// else if (hwWeighList.Count() == (rtPlan.Exec_Num + 1))
// {
// rtPlan.Exec_Num = rtPlan.Exec_Num + 1;
// }
// else
// {
// rtPlan.Exec_Num = 1;
// }
//}
rtPlan.Exec_Num = plcList.plc.ReadInt16("DB110.DBW1758.0");
//保存本次数据
int i = await _solventErrorPreventionReportRepository.AddAsync(report);
var cylinderList = _hwCylinderRepository.Query();
@ -111,22 +119,24 @@ namespace Admin.Core.Service
return true;
}
}
//等待
return false;
}
return false;
}
else if (view.Weighbridge == "2号地磅")
{
bool matCode = plcList.plc.WriteInt16("DB111.DBW400.0", "1");//执行启动
int rate = Convert.ToInt32(view.Rate * 100);
plcList.plc.WriteInt16("DB110.DBW10.0", rate.ToString());//传入固率
bool barCode = plcList.plc.WriteInt16("DB110.DBW1768.0", "1");
// bool matCode = plcList.plc.WriteInt16("DB110.DBW482.0", "1");//执行启动
if (matCode)
if (barCode)
{
plcList.plc.Writedouble("DB111.DBW443.0", view.Rate);//传入固率
Hw_SolventErrorPreventionReport report = new Hw_SolventErrorPreventionReport()
{
PlanId = view.Plan_Id,
FinishedNum = plcList.plc.ReadInt16("DB111.DBW2") + 1,
FinishedNum = plcList.plc.ReadInt16("DB110.DBW1758.0"),
RMatCode = view.RMatCode,
MaterialID = view.MaterialID,
MaterialName = view.MaterialName,
@ -134,31 +144,31 @@ namespace Admin.Core.Service
WholeMaterial = view.WholeMaterial
};
var rtPlanList = await _planRepository.QueryAsync(d => d.Plan_State == 3);
if (rtPlanList.Count > 0)
{
var rtPlan = rtPlanList.FirstOrDefault(d => d.Plan_Id == view.Plan_Id);
if (plcList.plc.ReadInt16("DB111.DBW402") != 250)
{
var hwWeighList = await _hwWeighRepository.GetWaiteMaterial(view.Plan_Id);
if (hwWeighList != null)
{
if (hwWeighList.Count() > (rtPlan.Exec_Num + 1))
{
rtPlan.Exec_Num = 1;
}
if (hwWeighList.Count() == (rtPlan.Exec_Num + 1))
{
rtPlan.Exec_Num = rtPlan.Exec_Num + 1;
}
if (hwWeighList.Count() > (rtPlan.Exec_Num + 1))
{
rtPlan.Exec_Num = rtPlan.Exec_Num + 1;
}
}
if (plcList.plc.ReadInt16("DB110.DBW8") != 250)
{
//var hwWeighList = await _hwWeighRepository.GetWaiteMaterial(view.Plan_Id);
//if (hwWeighList != null)
//{
// if (hwWeighList.Count() > (rtPlan.Exec_Num + 1))
// {
// rtPlan.Exec_Num = 1;
// }
// else if (hwWeighList.Count() == (rtPlan.Exec_Num + 1))
// {
// rtPlan.Exec_Num = rtPlan.Exec_Num + 1;
// }
// else
// {
// rtPlan.Exec_Num = 1;
// }
//}
rtPlan.Exec_Num = plcList.plc.ReadInt16("DB110.DBW1758.0");
//保存本次数据
int i = await _solventErrorPreventionReportRepository.AddAsync(report);
var cylinderList = _hwCylinderRepository.Query();
@ -166,23 +176,21 @@ namespace Admin.Core.Service
{
return false;
}
rtPlan.CylinderName = cylinderList.FirstOrDefault(d => d.BarCode == view.CylinderBarCode).Name;
rtPlan.CylinderBarCode = view.CylinderBarCode;
Hw_Cylinder hw_Cylinder = cylinderList.FirstOrDefault(d => d.BarCode == view.CylinderBarCode.Trim());
rtPlan.CylinderName = hw_Cylinder.Name;
rtPlan.CylinderBarCode = hw_Cylinder.BarCode;
log.Info(view.CylinderBarCode);
await _planRepository.UpdateExecDb(rtPlan);//更新数据库
return true;
}
}
//等待
return false;
}
return false;
}
else
{
return false;
}
}
else
{
return true;
@ -346,33 +354,64 @@ namespace Admin.Core.Service
var plcList = PlcHelper.siemensList.SingleOrDefault(d => d.EquipName.Equals("溶剂PLC"));
if (plcList.plc.IsConnected)
{
int endStatus = plcList.plc.ReadInt16("DB110.DBW6.0");//完成信号
if (endStatus == 1)
if (weighbridge== "1号地磅")
{
int planNum = plcList.plc.ReadInt16("DB110.DBW2.0");//执行批次
if (plan.Plan_Num > plan.Real_Num)
if (plan.Plan_Num > planNum)
{
var rtPlanList = await _planRepository.QueryAsync(d => d.Plan_State == 3);
var rtPlan = rtPlanList.FirstOrDefault(d => d.Plan_Id == plan.Plan_Id);
execNum = rtPlan.Exec_Num;
var hwWeigh = hwWeighList.FirstOrDefault(d => d.MID == execNum);
int materialNo = plcList.plc.ReadInt16("DB110.DBW1758");//当前执行物料
if (materialNo == 0) materialNo = 1;
var hwWeigh = hwWeighList.FirstOrDefault(d => d.MID == materialNo);
if (hwWeigh == null) return null;
return hwWeigh;
}
else
{
//var rtPlanList = await _planRepository.QueryAsync(d => d.Plan_State == 3);
//var rtPlan = rtPlanList.FirstOrDefault(d => d.Plan_Id == plan.Plan_Id);
//execNum = rtPlan.Exec_Num;
//int materialNo = plcList.plc.ReadInt16("DB110.DBW478.0");//当前执行物料
//var hwWeigh = hwWeighList.FirstOrDefault(d => d.MID == materialNo);
//if (hwWeigh == null) return null;
return null;
}
}
else
{
int planNum = plcList.plc.ReadInt16("DB110.DBW2.0");//执行批次
if (plan.Plan_Num > planNum)
{
var rtPlanList = await _planRepository.QueryAsync(d => d.Plan_State == 3);
var rtPlan = rtPlanList.FirstOrDefault(d => d.Plan_Id == plan.Plan_Id);
execNum = rtPlan.Exec_Num;
var hwWeigh = hwWeighList.FirstOrDefault(d => d.MID == execNum);
int materialNo = plcList.plc.ReadInt16("DB110.DBW1758");//当前执行物料
var hwWeigh = hwWeighList.FirstOrDefault(d => d.MID == materialNo);
if (hwWeigh == null) return null;
return hwWeigh;
}
else
{
//var rtPlanList = await _planRepository.QueryAsync(d => d.Plan_State == 3);
//var rtPlan = rtPlanList.FirstOrDefault(d => d.Plan_Id == plan.Plan_Id);
//execNum = rtPlan.Exec_Num;
//int materialNo = plcList.plc.ReadInt16("DB110.DBW478.0");//当前执行物料
//var hwWeigh = hwWeighList.FirstOrDefault(d => d.MID == materialNo);
//if (hwWeigh == null) return null;
return null;
}
}
}
else
{
log.Error("PLC连接失败");
}
return null;
}

@ -306,14 +306,10 @@ namespace Admin.Core.Service
var plcList = PlcHelper.siemensList.SingleOrDefault(d => d.EquipName.Equals("小料PLC"));
if (plcList.plc.IsConnected)// 000533
{
//int tt123 = plcList.plc.ReadInt16("DB110.DBW88").ObjToInt();
//int tt = plcList.plc.ReadInt16("DB110.DBW90").ObjToInt();
//int tt2 = plcList.plc.ReadInt32("DB110.DBW90").ObjToInt();
//int yyy = plcList.plc.ReadInt16("DB110.DBW90").ObjToInt();
if (plcList.plc.ReadInt16("DB110.DBW90").ObjToInt() == 1)//1检量秤准备好
{
decimal tcheckWeight = Convert.ToDecimal(plcList.plc.ReadInt16("DB104.DBW164")) / 100;//检量秤重量
//log.Info($"重量:{tcheckWeight}");
decimal tcheckWeight = Convert.ToDecimal(plcList.plc.ReadInt16("DB104.DBW164")) / 1000;//检量秤重量
log.Info($"重量:{tcheckWeight}");
//绑定桶
var barrelList = await _hw_BarrelRepository.QueryAsync();
@ -348,7 +344,6 @@ namespace Admin.Core.Service
decimal totalMaxError = exec.Total_Weight + exec.Total_Error;//最大值
decimal totalMinError = exec.Total_Weight - exec.Total_Error;//最小值
if (totalMinError <= tcheckWeight && tcheckWeight <= totalMaxError)//在误差之内
{
await _hw_BarrelRepository.UpdateAsync(barrel);
@ -359,11 +354,11 @@ namespace Admin.Core.Service
log.Info($"no1>>剩余批次:{batch}>计划批次:{exec.Plan_Num}》当前批次》{tcheckBatch}");
await _hw_BarrelRepository.UpdateAsync(barrel);
var r = await UpdatePlanCompletedQuantity(plcList, exec.Plan_Id, tcheckBatch, 8, DateTime.Now, total_Weight, total_Error);
log.Info("称量完成:" + r);
//log.Info("称量完成:" + r);
if (r)
{
//判断上位机判断当前值与配方总重满足要求时置“2”
plcList.plc.WriteInt32("DB110.DBW88", 2);//2上位机完成
plcList.plc.WriteInt32("DB110.DBW88", 2);//2上位机完成,实点位为DB110.DBW90
return 6;
}
else
@ -376,7 +371,7 @@ namespace Admin.Core.Service
log.Info($"no2>>剩余批次:{batch}>计划批次:{exec.Plan_Num}》当前批次》{tcheckBatch}");
await _hw_BarrelRepository.UpdateAsync(barrel);
var r = await UpdatePlanCompletedQuantity(exec.Plan_Id, tcheckBatch, total_Weight, total_Error);
log.Info("称量未完成:" + r);
//log.Info("称量未完成:" + r);
if (r)
{
//判断上位机判断当前值与配方总重满足要求时置“2”
@ -603,5 +598,14 @@ namespace Admin.Core.Service
return tb;
}
#endregion
#region 获取当前正在称量的物料
public Task GetCurrentMaterial()
{
//down = await _planRepository.GetDownLoadPlan();
//if (down.Count() == 0) { return 0; }
return Task.CompletedTask;
}
#endregion
}
}

@ -1,8 +1,13 @@
using Admin.Core.Common;
using Admin.Core.IService;
using Admin.Core.IService.ISys;
using Admin.Core.Model;
using Admin.Core.PlcServer;
using Admin.Core.Service;
using Quartz;
using S71500.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
/// <summary>
@ -12,22 +17,83 @@ namespace Admin.Core.Tasks
{
public class Job_Admin_Quartz : JobBase, IJob
{
string address = Appsettings.app("Siemens", "ConString").ToString();
int port = Appsettings.app("Siemens", "Port").ObjToInt();
private readonly IPmt_AlarmServices _pmtAlarmServices;
private readonly ILR_AlarmlogServices _lrAlarmlogServices;
public Job_Admin_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService)
public Job_Admin_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService,
IPmt_AlarmServices pmtAlarmServices, ILR_AlarmlogServices lrAlarmlogServices)
{
_SysTasksQzService = SysTasksQzService;
_sysJobLogService = sysJobLogService;
_pmtAlarmServices = pmtAlarmServices;
_lrAlarmlogServices = lrAlarmlogServices;
}
public async Task Execute(IJobExecutionContext context)
{
await ExecuteJob(context, async () => await Run(context));
}
public Task Run(IJobExecutionContext context)
public async Task Run(IJobExecutionContext context)
{
var plcList = PlcHelper.siemensList.SingleOrDefault(d => d.EquipName.Equals("小料PLC"));
if (plcList.plc.IsConnected)
{
List<LR_Alarmlog> addAlarmList = new List<LR_Alarmlog>();
List<LR_Alarmlog> updateAlarmList = new List<LR_Alarmlog>();
List<Pmt_Alarm> list = await _pmtAlarmServices.QueryAsync();
foreach (var item in list)
{
if (plcList.plc.ReadBool(item.Alarm_Point))
{
var alarm = await _lrAlarmlogServices.FirstAsync(d => d.Alarm_ID == item.Alarm_ID);
if (alarm==null)
{
LR_Alarmlog lR_Alarmlog = new LR_Alarmlog();
lR_Alarmlog.Equip_Code = "01";
lR_Alarmlog.Alarm_ID = item.Alarm_ID;
lR_Alarmlog.Alarm_OccurTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
lR_Alarmlog.Alarm_Status = 1;
lR_Alarmlog.Alarm_GUID = "01";
await _lrAlarmlogServices.AddAsync(lR_Alarmlog);
//addAlarmList.Add(lR_Alarmlog);
}
else
{
alarm.Alarm_ClearTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
alarm.Alarm_Status = 1;
await _lrAlarmlogServices.UpdateAsync(alarm);
}
}
else
{
var alarm = await _lrAlarmlogServices.FirstAsync(d => d.Alarm_ID == item.Alarm_ID);
if (alarm == null)
{
LR_Alarmlog lR_Alarmlog = new LR_Alarmlog();
lR_Alarmlog.Equip_Code = "01";
lR_Alarmlog.Alarm_ID = item.Alarm_ID;
lR_Alarmlog.Alarm_OccurTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
lR_Alarmlog.Alarm_Status = 0;
lR_Alarmlog.Alarm_GUID = "01";
await _lrAlarmlogServices.UpdateAsync(lR_Alarmlog);
}
else
{
alarm.Alarm_ClearTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
alarm.Alarm_Status = 0;
return Task.CompletedTask;
await _lrAlarmlogServices.UpdateAsync(alarm);
}
}
}
}
}
}
}

@ -1,18 +0,0 @@
# Admin.Core
基于.net6 创建的一个公共的后端框架,目前包含 webpApi、WPF、控制台
#### 软件架构
软件架构说明
#### 安装教程
1. 安装.net6 开发环境
2. web部署配置IIS
3. WPF开发、控制台需要app.cs中 将创建的服务、仓储依赖注入
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
Loading…
Cancel
Save