diff --git a/Admin.Core.Api/Admin.Core.Api.xml b/Admin.Core.Api/Admin.Core.Api.xml
index 3ba0122..6c8e5d8 100644
--- a/Admin.Core.Api/Admin.Core.Api.xml
+++ b/Admin.Core.Api/Admin.Core.Api.xml
@@ -300,6 +300,11 @@
+
+
+ 查询料桶重量
+
+
检量称扫码绑定桶(新加)
@@ -421,6 +426,13 @@
json 对象
+
+
+ MES计划下发
+
+
+
+
投料口开/投料口关
@@ -431,7 +443,7 @@
- 查询称量重量
+ 查询称量信息
diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml
index 58d43b3..40d53b3 100644
--- a/Admin.Core.Api/Admin.Core.Model.xml
+++ b/Admin.Core.Api/Admin.Core.Model.xml
@@ -1949,6 +1949,21 @@
Nullable:True
+
+
+ 理论固含
+
+
+
+
+ 是否有固含
+
+
+
+
+ 固含量
+
+
生产计划
@@ -2660,6 +2675,11 @@
Nullable:True
+
+
+ 是否产前验证
+
+
配方信息
@@ -4582,12 +4602,12 @@
投料整包完整信息
-
+
配方编号
-
+
批次号
diff --git a/Admin.Core.Api/Controllers/Business/MaterialController.cs b/Admin.Core.Api/Controllers/Business/MaterialController.cs
index b936c58..b9450f5 100644
--- a/Admin.Core.Api/Controllers/Business/MaterialController.cs
+++ b/Admin.Core.Api/Controllers/Business/MaterialController.cs
@@ -150,6 +150,24 @@ namespace Admin.Core.Api
}
#endregion
+
+ ///
+ /// 查询料桶重量
+ ///
+ [HttpGet]
+ public async Task> GetBindBarrelWeight()
+ {
+ try
+ {
+ decimal result = await _xl_materialService.GetBindBarrelWeight();
+ return Success(result, "成功");
+ }
+ catch (Exception ex)
+ {
+ return Failed("执行失败!");
+ }
+ }
+
#region 检量称扫码绑定桶(新加)
///
/// 检量称扫码绑定桶(新加)
diff --git a/Admin.Core.Api/Controllers/Business/WarehouseController.cs b/Admin.Core.Api/Controllers/Business/WarehouseController.cs
index a7d1dee..81e26d0 100644
--- a/Admin.Core.Api/Controllers/Business/WarehouseController.cs
+++ b/Admin.Core.Api/Controllers/Business/WarehouseController.cs
@@ -15,6 +15,7 @@ using Admin.Core.Model.ViewModels;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using System.Collections;
using NPOI.SS.Formula.Functions;
+using TouchSocket.Core;
namespace Admin.Core.Api.Controllers.Business
{
@@ -125,50 +126,63 @@ namespace Admin.Core.Api.Controllers.Business
}
return Failed("执行失败!");
}
-
+ ///
+ /// MES计划下发
+ ///
+ ///
+ ///
[HttpPost]
public async Task> DownLoadplanInfo([FromBody] List MesDownLoadPlanList)
{
try
{
- int iFlag = 0;
if (MesDownLoadPlanList == null || MesDownLoadPlanList.Count == 0)
{
return Failed("传入参数为空!");
}
-
- foreach (var item in MesDownLoadPlanList)
- {
-
- if (item.RecipeID == "")
- {
- return Failed("传入参数为空!");
- }
- var result = await _hw_WarehouseService.InsertXLPlanInfo(DateTime.Now, item.RecipeID, item.Batch, item.ProductName);
- if (result)
- {
- iFlag = iFlag + 1;
+ string result1 = await _hw_WarehouseService.DownRJPlanAsync(MesDownLoadPlanList);
+ string result2 = await _hw_WarehouseService.DownZBPlanAsync(MesDownLoadPlanList);
+ string result3 = await _hw_WarehouseService.DownXLPlanAsync(MesDownLoadPlanList);
+
+
+ if (result1.Contains("成功"))
+ {
+ if (result2.Contains("成功"))
+ {
+ if (result3.Contains("成功"))
+ {
+ return Success(true);
+ }
+ else
+ {
+ return Failed(result3 + "执行失败!");
+ }
+ }
+ else
+ {
+ return Failed(result2 + "执行失败!");
}
+ }
+ else
+ {
+ return Failed(result1 + "执行失败!");
}
- if (iFlag == MesDownLoadPlanList.Count)
- {
- return Success(true);
- }
- ////配方名或配方编号
+
+ ////配方名或配方编号
//string ss1 = "a82d016e813c4ac3bca0244c519da591";
////批次号
//string ss2 = "2408090522";
////产品名称
//var ss3 = "D1-813";
-
+
}
catch (Exception ex)
{
-
+ return Failed(ex.Message + "执行失败!");
}
- return Failed("执行失败!");
+ return Failed("执行失败!");
}
@@ -193,7 +207,7 @@ namespace Admin.Core.Api.Controllers.Business
return Failed("执行失败!");
}
///
- /// 查询称量重量
+ /// 查询称量信息
///
///
///
diff --git a/Admin.Core.Api/Program.cs b/Admin.Core.Api/Program.cs
index 18820c6..ff3e6a6 100644
--- a/Admin.Core.Api/Program.cs
+++ b/Admin.Core.Api/Program.cs
@@ -42,7 +42,8 @@ namespace Admin.Core.Api
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
- webBuilder.UseIIS().UseStartup();
+ webBuilder.UseUrls("http://*:6062").UseIIS().UseStartup();
+ //webBuilder.UseIIS().UseStartup();
})
.ConfigureLogging((hostingContext, builder) =>
{
diff --git a/Admin.Core.Api/Properties/launchSettings.json b/Admin.Core.Api/Properties/launchSettings.json
index 692d901..66a8f2f 100644
--- a/Admin.Core.Api/Properties/launchSettings.json
+++ b/Admin.Core.Api/Properties/launchSettings.json
@@ -24,7 +24,7 @@
"ASPNETCORE_ENVIRONMENT": "Development"
},
"dotnetRunMessages": "true",
- "applicationUrl": "http://localhost:5001;http://localhost:5000"
+ "applicationUrl": "http://119.45.202.115:5001;http://119.45.202.115:6061"
//"applicationUrl": "http://192.168.137.1:5001;http://192.168.137.1:5000"
}
diff --git a/Admin.Core.Api/appsettings.Development.json b/Admin.Core.Api/appsettings.Development.json
index dc08c8b..bc6167b 100644
--- a/Admin.Core.Api/appsettings.Development.json
+++ b/Admin.Core.Api/appsettings.Development.json
@@ -81,7 +81,7 @@
"Enabled": true,
"HitRate": 50,
//"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",
- "Connection": "Data Source=127.0.0.1;Initial Catalog=cwss_xl;User ID=sa;Password=123456;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ "Connection": "Data Source=119.45.202.115;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"
@@ -171,7 +171,7 @@
{
"Id": 2,
"EquipName": "溶剂PLC",
- "IP": "127.0.0.1",
+ "IP": "127.0.0.2",
"Port": 102
}
],
diff --git a/Admin.Core.Api/appsettings.json b/Admin.Core.Api/appsettings.json
index 8c7a8d2..17eba45 100644
--- a/Admin.Core.Api/appsettings.json
+++ b/Admin.Core.Api/appsettings.json
@@ -80,7 +80,7 @@
"DBType": 1,
"Enabled": true,
"HitRate": 50,
- "Connection": "Data Source=127.0.0.1;Initial Catalog=cwss_xl;User ID=sa;Password=123456;Integrated Security=false;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ "Connection": "Data Source=127.0.0.1;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"
}
diff --git a/Admin.Core.IService/IService_New/IHw_WarehouseServices.cs b/Admin.Core.IService/IService_New/IHw_WarehouseServices.cs
index b33be7a..47e0f1b 100644
--- a/Admin.Core.IService/IService_New/IHw_WarehouseServices.cs
+++ b/Admin.Core.IService/IService_New/IHw_WarehouseServices.cs
@@ -19,8 +19,10 @@ namespace Admin.Core.IService
Task RealWeightInfo(string WeightNo);
Task GetXlInfo(string kettleBarCode, string planId, string code);
Task> GetWarehousePlan(string code);
+ Task DownRJPlanAsync(List MesDownLoadPlanList);
+ Task DownZBPlanAsync(List MesDownLoadPlanList);
- Task InsertXLPlanInfo(DateTime planDate, string recipeGUID, string batch, string productName);
+ Task DownXLPlanAsync(List MesDownLoadPlanList);
Task> GetPlanWeightInfo();
}
diff --git a/Admin.Core.IService/IService_New/Ixl_materialServices.cs b/Admin.Core.IService/IService_New/Ixl_materialServices.cs
index 9c70dfc..ed7b2c1 100644
--- a/Admin.Core.IService/IService_New/Ixl_materialServices.cs
+++ b/Admin.Core.IService/IService_New/Ixl_materialServices.cs
@@ -29,6 +29,13 @@ namespace Admin.Core.IService
///
Task BindBarrel(string code);
+ ///
+ /// 查询料桶重量
+ /// add by CaesarBao,2024.10.14
+ ///
+ ///
+ Task GetBindBarrelWeight();
+
Task> MaterialVerification(string barCode);
Task xlInsertMaterial(string materialCode, string materialName);
diff --git a/Admin.Core.Model/Model_New/Pmt_weigh.cs b/Admin.Core.Model/Model_New/Pmt_weigh.cs
index 6996833..8c338d3 100644
--- a/Admin.Core.Model/Model_New/Pmt_weigh.cs
+++ b/Admin.Core.Model/Model_New/Pmt_weigh.cs
@@ -64,5 +64,20 @@ namespace Admin.Core.Model
/// Nullable:True
///
public decimal? Cpk_Error { get; set; }
+
+ ///
+ /// 理论固含
+ ///
+ public decimal TheoryRate { get; set; }
+ ///
+ /// 是否有固含
+ ///
+ public bool IsRate { get; set; }
+ ///
+ /// 固含量
+ ///
+ public double RateWeight { get; set; }
+
+
}
}
\ No newline at end of file
diff --git a/Admin.Core.Model/Model_New/RT_plan.cs b/Admin.Core.Model/Model_New/RT_plan.cs
index 568f178..d2873e5 100644
--- a/Admin.Core.Model/Model_New/RT_plan.cs
+++ b/Admin.Core.Model/Model_New/RT_plan.cs
@@ -20,7 +20,7 @@ namespace Admin.Core.Model
/// Default:
/// Nullable:False
///
- [SugarColumn(IsPrimaryKey = true)]
+ // [SugarColumn(IsPrimaryKey = true)]
public int Dosing_Id { get; set; }
///
/// Desc:
@@ -34,7 +34,7 @@ namespace Admin.Core.Model
/// Default:
/// Nullable:False
///
- [SugarColumn(IsPrimaryKey = true)]
+ // [SugarColumn(IsPrimaryKey = true)]
public string Equip_Code { get; set; }
///
/// Desc:
diff --git a/Admin.Core.Model/Model_New/xl_plan.cs b/Admin.Core.Model/Model_New/xl_plan.cs
index 6b060ef..0837334 100644
--- a/Admin.Core.Model/Model_New/xl_plan.cs
+++ b/Admin.Core.Model/Model_New/xl_plan.cs
@@ -20,7 +20,6 @@ namespace Admin.Core.Model
/// Default:
/// Nullable:False
///
- [SugarColumn(IsPrimaryKey = true)]
public int Dosing_Id { get; set; }
///
/// Desc:计划Id
@@ -34,7 +33,6 @@ namespace Admin.Core.Model
/// Default:
/// Nullable:False
///
- [SugarColumn(IsPrimaryKey = true)]
public string Equip_Code { get; set; }
///
/// Desc:排序字段
diff --git a/Admin.Core.Model/Model_New/xl_recipe.cs b/Admin.Core.Model/Model_New/xl_recipe.cs
index c877469..b1008cd 100644
--- a/Admin.Core.Model/Model_New/xl_recipe.cs
+++ b/Admin.Core.Model/Model_New/xl_recipe.cs
@@ -153,5 +153,9 @@ public string Creator { get; set; }
/// Nullable:True
///
public DateTime? CreateDateTime { get; set; }
+///
+/// 是否产前验证
+///
+public int IsCheck { get; set; }
}
}
\ No newline at end of file
diff --git a/Admin.Core.Model/ViewModels/MesDownLoadPlanList.cs b/Admin.Core.Model/ViewModels/MesDownLoadPlanList.cs
index aef3dff..c7a03df 100644
--- a/Admin.Core.Model/ViewModels/MesDownLoadPlanList.cs
+++ b/Admin.Core.Model/ViewModels/MesDownLoadPlanList.cs
@@ -5,15 +5,36 @@ public class MesDownLoadPlanList
///
/// 配方编号
///
- public string RecipeID { get; set; }
+ public string No { get; set; }
///
/// 批次号
///
- public string Batch { get; set; }
+ public string PId { get; set; }
///
/// 产品名称
///
public string ProductName { get; set; }
+
+ public string BinId { get; set; }
+
+ public string Material_Code { get; set; }
+ public string MaterialName { get; set; }
+ public string MaterialType { get; set; }
+ public string SetWeight { get; set; }
+ public string SetError { get; set; }
+ public string Difference { get; set; }
+ public string Fixed { get; set; }
+ public string FixedRatio { get; set; }
+ public string PumpCode { get; set; }
+ public string Weighbridge { get; set; }
+ public string Recipe { get; set; }
+ public string Remark { get; set; }
+
+ public string Tare { get; set; }
+
+ public string MainId { get; set; }
+
+
}
\ No newline at end of file
diff --git a/Admin.Core.Repository/Repository_New/Pmt_materialRepository.cs b/Admin.Core.Repository/Repository_New/Pmt_materialRepository.cs
index b38c111..b3241e0 100644
--- a/Admin.Core.Repository/Repository_New/Pmt_materialRepository.cs
+++ b/Admin.Core.Repository/Repository_New/Pmt_materialRepository.cs
@@ -10,6 +10,7 @@ namespace Admin.Core.Repository
{
public Pmt_materialRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
+
}
}
}
\ No newline at end of file
diff --git a/Admin.Core.Service/Admin.Core.Service.csproj b/Admin.Core.Service/Admin.Core.Service.csproj
index b332b8b..41064bc 100644
--- a/Admin.Core.Service/Admin.Core.Service.csproj
+++ b/Admin.Core.Service/Admin.Core.Service.csproj
@@ -1,4 +1,4 @@
-
+
net6.0
@@ -17,6 +17,7 @@
+
diff --git a/Admin.Core.Service/Service_New/Hw_WarehouseServices.cs b/Admin.Core.Service/Service_New/Hw_WarehouseServices.cs
index 6915a25..9da9f55 100644
--- a/Admin.Core.Service/Service_New/Hw_WarehouseServices.cs
+++ b/Admin.Core.Service/Service_New/Hw_WarehouseServices.cs
@@ -15,6 +15,10 @@ using System.Numerics;
using System.Text;
using NPOI.POIFS.FileSystem;
using System.Linq.Expressions;
+using NPOI.SS.Formula.Functions;
+using Admin.Core.Repository;
+using Microsoft.AspNetCore.SignalR;
+using Admin.Core.Common;
namespace Admin.Core.Service
{
@@ -23,6 +27,7 @@ namespace Admin.Core.Service
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Hw_WarehouseServices));
private readonly IBaseRepository _dal;
private readonly IHw_WarehouseRepository _wareHouse;
+ private readonly IPmt_materialRepository _material;
private readonly IHw_WareHouse_SubRepository _wareHouse_Sub;
private readonly IHw_FeedReportRepository _feed;
private readonly IHw_BarrelRepository _barrel;
@@ -30,13 +35,21 @@ namespace Admin.Core.Service
private readonly Ixl_recipeRepository _recipeRepository;
private readonly ILR_weighRepository _lrWeighRepository;
private readonly Ixl_planRepository _planRepository;//小料计划
+ private readonly IHw_PumpRepository _hwPumpRepository;
+ private readonly IRT_planRepository _rtplanRepository;
+ private readonly IPmt_weighRepository _pmtWeighRepository;
+ private readonly IPmt_BinRepository _binRepository;
+ private readonly IPmt_recipeRepository _pmtRecipeRepository;
+ private readonly IUnitOfWork _unitOfWork;
+ private readonly Ixl_weighRepository _xlWeighRepository;
+
private readonly IXLPlan_weightRepository _XLPlan_weightRepository;
public Hw_WarehouseServices(IBaseRepository dal, IHw_WarehouseRepository wareHouse,
IHw_WareHouse_SubRepository wareHouse_Sub, IHw_FeedReportRepository feed,
IHw_BarrelRepository barrel, Ixl_materialRepository materialRepository,
- Ixl_recipeRepository recipeRepository, ILR_weighRepository lrWeighRepository, Ixl_planRepository planRepository, IXLPlan_weightRepository IXLPlan_weightRepository, IXLPlan_weightRepository xLPlan_weightRepository)
+ Ixl_recipeRepository recipeRepository, ILR_weighRepository lrWeighRepository, Ixl_planRepository planRepository, IXLPlan_weightRepository IXLPlan_weightRepository, IXLPlan_weightRepository xLPlan_weightRepository, IPmt_materialRepository PmtmaterialRepository, IHw_PumpRepository hwPumpRepository, IRT_planRepository rtplanRepository, IPmt_recipeRepository pmtRecipeRepository, IUnitOfWork unitOfWork, IPmt_weighRepository pmtWeighRepository, IPmt_BinRepository binRepository, Ixl_weighRepository xlWeighRepository)
{
this._dal = dal;
base.BaseDal = dal;
@@ -49,6 +62,14 @@ namespace Admin.Core.Service
_lrWeighRepository = lrWeighRepository;
_planRepository = planRepository;
_XLPlan_weightRepository = xLPlan_weightRepository;
+ _material = PmtmaterialRepository;
+ _hwPumpRepository = hwPumpRepository;
+ _rtplanRepository = rtplanRepository;
+ _pmtRecipeRepository = pmtRecipeRepository;
+ _unitOfWork = unitOfWork;
+ _pmtWeighRepository = pmtWeighRepository;
+ _binRepository = binRepository;
+ _xlWeighRepository = xlWeighRepository;
}
#region 扫描桶二维码,获取绑定的小料配方物料
@@ -137,6 +158,8 @@ namespace Admin.Core.Service
}
}
#endregion
+
+
#region GetNextSerialNum 获取下一个可用的序号SerialNum 规则:同机台、同日期、同班次 计划号最后2位的最大值加1
///
/// 获取下一个可用的序号
@@ -146,10 +169,26 @@ namespace Admin.Core.Service
public int GetNextSerialNumAsync()
{
+ string strSql = "SELECT MAX(Plan_Serial) FROM RT_plan";
+ Expression> exp = s1 => true;
+ Expression> order = (x) => x.Plan_Serial;
+ var result = _rtplanRepository.Query(exp,order,false).First();
+ if (result == null)
+ {
+ return 1;
+ }
+ else
+ {
+ return Convert.ToInt32(result.Plan_Serial) + 1;
+ }
+ }
+ public int GetXLNextSerialNumAsync()
+ {
+
string strSql = "SELECT MAX(Plan_Serial) FROM xl_plan";
Expression> exp = s1 => true;
Expression> order = (x) => x.Plan_Serial;
- var result = _planRepository.Query(exp,order,false).First();
+ var result = _planRepository.Query(exp, order, false).First();
if (result == null)
{
return 1;
@@ -160,6 +199,24 @@ namespace Admin.Core.Service
}
}
public int GetNextSerialNumFromLRPlan(DateTime planDate)
+ {
+ string strSql = "SELECT MAX(RIGHT(Plan_Id,2)) FROM Hw_plan WHERE LEFT(Plan_Id,8) = @PlanDate";
+ string ss = String.Format("{0:yyyyMMdd}", planDate);
+ SugarParameter[] parameters = new SugarParameter[]
+ {
+ new SugarParameter($"@PlanDate", String.Format("{0:yyyyMMdd}", planDate))
+ };
+ var result = _planRepository.ExecSql(strSql, parameters);
+ if (result == null)
+ {
+ return 1;
+ }
+ else
+ {
+ return Convert.ToInt32(result) + 1;
+ }
+ }
+ public int GetXLNextSerialNumFromLRPlan(DateTime planDate)
{
string strSql = "SELECT MAX(RIGHT(Plan_Id,2)) FROM LR_plan WHERE LEFT(Plan_Id,8) = @PlanDate";
string ss = String.Format("{0:yyyyMMdd}", planDate);
@@ -177,7 +234,6 @@ namespace Admin.Core.Service
return Convert.ToInt32(result) + 1;
}
}
-
#endregion
///
/// 获取下一个可用的计划号 (6位日期、2位机台、1位班次、1位网络/本机、2位流水)
@@ -217,66 +273,672 @@ namespace Admin.Core.Service
}
#endregion
- public async Task InsertXLPlanInfo(DateTime planDate, string recipeGUID, string batch, string productName)
+
+ public async Task DownRJPlanAsync(List MesDownLoadPlanList)
{
try
{
- int shiftID = 1;
- //根据配方编号查询
- var recipe = await _recipeRepository.FirstAsync(d => d.Recipe_Verify == 1 && d.ID == recipeGUID);
- if (recipe == null)
+ var list = MesDownLoadPlanList;
+ List subList = new List();
+ List recipeList = new List();
+ list.ForEach((a) =>
{
- recipe.ID = recipeGUID;
- recipe.Recipe_Name = recipeGUID;
- recipe.Version = "1";
+ Hw_WareHouse_Sub sb = new Hw_WareHouse_Sub();
+ sb.MainId = int.Parse(a.MainId);
+ sb.PId = a.PId;
+ sb.ProductName = a.ProductName;
+ sb.MaterialID = a.Material_Code;
+ sb.Material_Code = a.Material_Code;
+ sb.MaterialName = a.MaterialName;
+ sb.MaterialType = a.MaterialType;
+ sb.SetWeight = Convert.ToDecimal(a.SetWeight);
+ sb.SetError = Convert.ToDecimal(a.SetError);
+ sb.Difference = a.Difference;
+ sb.Fixed = a.Fixed == "" || a.Fixed == null ? false : true;
+ sb.FixedRatio = a.FixedRatio == "" || a.FixedRatio == null ? Convert.ToDecimal(0.00) : Convert.ToDecimal(a.FixedRatio);
+ sb.Weighbridge = a.Weighbridge;
+ sb.PumpCode = a.PumpCode;
+ sb.Recipe = a.Recipe;
+ sb.Remark = a.Remark;
+ sb.CreateTime = DateTime.Now;
+ sb.Tare = Convert.ToDecimal(a.Tare);
+ subList.Add(sb);
+ });
+ //查询溶剂数据
+ var xlList = subList.Where(d => d.MaterialType.Contains("溶剂")).ToList();
+ var xt = (from d in xlList
+ select new
+ {
+ d.PId,
+ d.ProductName,
+ d.MaterialType,
+ d.Recipe,
+ d.Weighbridge,
+ d.PumpCode
+
+ }).Distinct().ToList();
+ if (xt.Count == 0)
+ {
+ return "成功";
}
-
- int rtPlanSNum = GetNextSerialNumAsync(); //xl_plan序号
- //int lrPlanSNum = GetNextSerialNumFromLRPlan(planDate); //LR_Plan序号
- string planID = GenerateNextPlanIDNew(planDate, shiftID, rtPlanSNum); //计划号hlcs0929
+ foreach (var item in xt)
+ {
+ try
+ {
+ #region 配方
+ string recipeCode = Guid.NewGuid().ToString("N");
+ string recipeID = Guid.NewGuid().ToString("N");
+ Pmt_recipe recipe = new Pmt_recipe();
+ recipe.ID = recipeID;
+ recipe.Equip_Code = "01";
+ recipe.Recipe_Code = recipeCode;
+ recipe.Version = "1";
+ recipe.Recipe_Name = item.Recipe;
+ recipe.Recipe_Verify = 1;
+ recipe.Total_Weight = 0;
+ recipe.Total_Error = 0;
+ recipe.CreateDateTime = DateTime.Now;
+
+ #endregion
+
+ #region 物料
+ var repiceList = xlList.Where(d => item.PId.Equals(d.PId) && item.ProductName.Equals(d.ProductName) && item.Recipe.Equals(d.Recipe)).ToList();
+ int i = 1;
+ List weighList = new List();
+ foreach (var sub in repiceList)
+ {
+ Pmt_weigh material = new Pmt_weigh();
+ material.ID = Guid.NewGuid().ToString("N");
+ material.Equip_Code = "01";
+ material.Recipe_ID = recipeID;
+
+ material.Weight_Id = i;
+ if (sub.Material_Code == null | sub.Material_Code == "")
+ {
+ throw new Exception("未查询到物料!");
+ }
+ var obj = await _material.FirstAsync(d => d.Material_code == sub.Material_Code);
+ if (obj == null)
+ {
+ throw new Exception("未查询到当前物料!");
+ }
+ material.Material_ID = obj.ID.ToString();
+ material.Set_Weight = Convert.ToDecimal(sub.SetWeight);
+ material.Set_Error = Convert.ToDecimal(sub.SetError);
+ recipe.Total_Weight = recipe.Total_Weight + material.Set_Weight;
+ recipe.Total_Error = recipe.Total_Error + material.Set_Error;
+ if (sub.Fixed)
+ {
+ material.IsRate = true;
+ material.TheoryRate = Convert.ToDecimal(sub.FixedRatio);
+ }
+ else
+ {
+ material.IsRate = false;
+ material.TheoryRate = 0;
+ }
+ weighList.Add(material);
+ i++;
+ }
+ #endregion
- xl_plan xl_plan = new xl_plan()
+ #region 计划
+ RT_plan plan = new RT_plan();
+ plan.Dosing_Id = 0;
+ plan.Equip_Code = "01";
+ plan.Batch = item.PId;
+ plan.ProductName = item.ProductName;
+ int serialNum = 0;
+ int rtPlanSNum = GetNextSerialNumAsync(); //xl_plan序号
+ int lrPlanSNum = GetNextSerialNumFromLRPlan(DateTime.Now); //Hw_Plan序号
+ if (rtPlanSNum >= lrPlanSNum)
+ {
+ serialNum = rtPlanSNum;
+ }
+ else
+ {
+ serialNum = lrPlanSNum;
+ }
+ string planID = GenerateNextPlanIDNew(DateTime.Now, 1, serialNum); //计划号
+
+ plan.Plan_Id = planID;
+ plan.Plan_Serial = serialNum;
+ plan.Recipe_ID = recipeID;
+ plan.Recipe_Code = recipeCode;
+ plan.Recipe_Name = item.Recipe;
+ plan.Version = "1";
+ plan.Mixer_Line = null;
+ plan.Recipe_Type = 0;
+ plan.Shift_Id = "1";
+ plan.Shift_Class = "";
+ plan.Plan_Num = 1;
+ plan.Real_Num = 0;
+ plan.Duration_Time = 0;
+ plan.End_Date = null;
+ plan.Weight_Man = null;
+ plan.Stock_Man = null;
+ plan.Plan_Batch = null;
+ plan.Plan_State = 5;
+ plan.Plan_StateText = "未启动";
+ plan.Plan_Date = String.Format("{0:yyyy-MM-dd}", DateTime.Now);
+ plan.IF_FLAG = 1;
+ if (string.IsNullOrEmpty(item.Weighbridge))
+ {
+ throw new Exception("地磅不可为空!");
+ }
+ plan.Weighbridge = item.Weighbridge;
+ plan.PumpBarCode = item.PumpCode;
+ if (item.PumpCode == null || item.PumpCode == "")
+ {
+ throw new Exception("投料泵为空!");
+ }
+ var pumpList = _hwPumpRepository.Query();
+ var pump = pumpList.FirstOrDefault(d => d.BarCode == item.PumpCode);
+ plan.PumpName = pump.Name;
+ #endregion
+
+ if (recipe == null)
+ {
+ throw new Exception("配方数据不可为空!");
+ }
+ if (weighList == null)
+ {
+ throw new Exception("配方物料数据不可为空!");
+ }
+ if (plan == null)
+ {
+ throw new Exception("计划数据不可为空!");
+ }
+ if (repiceList == null)
+ {
+ throw new Exception("反应釜计划数据不可为空!");
+ }
+ bool r = SaveRecipe(recipe, weighList, plan, repiceList.ToList());
+ if (r == false)
+ {
+ string msg = $"批次[{plan.Batch}];配方[{item.Recipe}],导入数据失败!";
+ return msg;
+ Console.WriteLine($"批次[{plan.Batch}];配方[{item.Recipe}],导入数据失败!");
+ }
+
+ return "成功";
+ //Console.WriteLine($"{item.PId}——{item.ProductName}——{item.Recipe};状态:{r}");
+ }
+ catch (Exception ex)
+ {
+ string msg = $"配方[{item.Recipe}] 导入失败!异常信息:{ex.Message}";
+ return msg;
+
+ }
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+ return ex.Message;
+ }
+
+ return "执行失败";
+ }
+
+ public async Task DownZBPlanAsync(List MesDownLoadPlanList)
+ {
+ try
+ {
+ var list = MesDownLoadPlanList;
+ List subList = new List();
+ List recipeList = new List();
+ list.ForEach((a) =>
{
- Equip_Code = "01",
- Dosing_Id = 0,
- Plan_Id = planID,
- Batch = batch,
- ProductName= productName,
- Plan_Serial = rtPlanSNum,
- Recipe_ID = recipe.ID,
- Recipe_Code = recipe.ID,
- Recipe_Name = recipe.Recipe_Name,
- Version = recipe.Version,
- Mixer_Line = "0",
- Recipe_Type = 0,
- Shift_Id = "1",
- Shift_Class = "0",
- Plan_Num = 1,
- Real_Num = 0,
- Duration_Time = 0,
- Plan_State = 5,
- Plan_StateText = "未启动",
- Plan_Date = DateTime.Now.ToString("yyyy-mm-dd"),
- IF_FLAG = 1,
-
- };
- var result = await _planRepository.Add(xl_plan);
- if (result == 1)
+ Hw_WareHouse_Sub sb = new Hw_WareHouse_Sub();
+ sb.MainId = int.Parse(a.MainId);
+ sb.PId = a.PId;
+ sb.ProductName = a.ProductName;
+ sb.MaterialID = a.Material_Code;
+ sb.Material_Code = a.Material_Code;
+ sb.MaterialName = a.MaterialName;
+ sb.MaterialType = a.MaterialType;
+ sb.SetWeight = Convert.ToDecimal(a.SetWeight);
+ sb.SetError = Convert.ToDecimal(a.SetError);
+ sb.Difference = a.Difference;
+ sb.PumpCode = a.PumpCode;
+ sb.Weighbridge = a.Weighbridge;
+ sb.Recipe = a.Recipe;
+ sb.Remark = a.Remark;
+ sb.CreateTime = DateTime.Now;
+ sb.Tare = Convert.ToDecimal(a.Tare);
+ subList.Add(sb);
+ });
+
+ //查询数据
+ var xlList = subList.Where(d => d.MaterialType.Contains("整包")).ToList();
+ var xt = from d in xlList
+ group d by new { PId = d.PId, ProductName = d.ProductName, Material_Code = d.Material_Code, MaterialType = d.MaterialType, Recipe = d.Recipe, SetWeight = d.Recipe, SetError = d.SetError, Weighbridge = d.Weighbridge } into g
+ select new
+ {
+ g.Key.PId,
+ g.Key.ProductName,
+ g.Key.Material_Code,
+ g.Key.MaterialType,
+ g.Key.Recipe,
+ SetWeight = g.Sum(m => m.SetWeight),
+ SetError = g.Sum(m => m.SetError),
+ g.Key.Weighbridge
+ };
+
+ if (xt.ToList().Count == 0)
{
- return true;
+ return "成功";
}
- else
+ foreach (var item in xt)
{
- return false;
+ try
+ {
+ #region 配方
+ string recipeID = Guid.NewGuid().ToString("N");
+ string recipeCode = Guid.NewGuid().ToString("N");
+
+ Pmt_recipe recipe = new Pmt_recipe();
+
+ {
+ recipe.ID = recipeID;
+ recipe.Equip_Code = "01";
+ recipe.Recipe_Code = recipeCode;
+ recipe.Version = "1";
+ recipe.Recipe_Name = item.Recipe;
+ recipe.Recipe_Verify = 1;
+ recipe.Total_Weight = 0;
+ recipe.Total_Error = 0;
+ recipe.CreateDateTime = DateTime.Now;
+ }
+
+ #endregion
+
+ #region 物料
+
+
+ List weighList = new List();
+
+ {
+ Pmt_weigh material = new Pmt_weigh();
+ material.ID = Guid.NewGuid().ToString("N");
+ material.Equip_Code = "01";
+ material.Recipe_ID = recipe.ID;
+ material.Weight_Id = 1;
+ if (item.Material_Code == null | item.Material_Code == "")
+ {
+ throw new Exception("未查询到物料!");
+ }
+ var obj = await _material.FirstAsync(d => d.Material_code == item.Material_Code);
+ if (obj == null)
+ {
+ throw new Exception("未查询到当前物料!");
+ }
+ material.Material_ID = obj.ID;
+ material.Set_Weight = Convert.ToDecimal(item.SetWeight);
+ material.Set_Error = Convert.ToDecimal(item.SetError);
+ recipe.Total_Weight = Convert.ToDecimal(item.SetWeight);
+ recipe.Total_Error = Convert.ToDecimal(item.SetError);
+ weighList.Add(material);
+ }
+ #endregion
+
+ #region 计划
+ RT_plan plan = new RT_plan();
+ plan.Dosing_Id = 0;
+ plan.Equip_Code = "01";
+ plan.Batch = item.PId;
+ plan.ProductName = item.ProductName;
+ int serialNum = 0;
+ int rtPlanSNum = GetNextSerialNumAsync(); //xl_plan序号
+ int lrPlanSNum = GetNextSerialNumFromLRPlan(DateTime.Now); //Hw_Plan序号
+ if (rtPlanSNum >= lrPlanSNum)
+ {
+ serialNum = rtPlanSNum;
+ }
+ else
+ {
+ serialNum = lrPlanSNum;
+ }
+ string planID = GenerateNextPlanIDNew(DateTime.Now, 1, serialNum); //计划号
+
+ plan.Plan_Id = planID;
+ plan.Plan_Serial = serialNum;
+ plan.Recipe_ID = recipe.ID;
+ plan.Recipe_Code = recipeCode;
+ plan.Recipe_Name = item.Recipe;
+ plan.Version = "1";
+ plan.Mixer_Line = null;
+ plan.Recipe_Type = 0;
+ plan.Shift_Id = "1";
+ plan.Shift_Class = "";
+ plan.Plan_Num = 1;
+ plan.Real_Num = 0;
+ plan.Duration_Time = 0;
+ plan.End_Date = null;
+ plan.Weight_Man = null;
+ plan.Stock_Man = null;
+ plan.Plan_Batch = null;
+ plan.Plan_State = 5;
+ plan.Plan_StateText = "未启动";
+ plan.Plan_Date = String.Format("{0:yyyy-MM-dd}", DateTime.Now);
+ plan.IF_FLAG = 1;
+ if (string.IsNullOrEmpty(item.Weighbridge))
+ {
+ throw new Exception("地磅不可为空!");
+ }
+ plan.Weighbridge = item.Weighbridge;
+ #endregion
+
+ if (recipe == null)
+ {
+ throw new Exception("配方数据不可为空!");
+ }
+ if (weighList == null)
+ {
+ throw new Exception("配方物料数据不可为空!");
+ }
+ if (plan == null)
+ {
+ throw new Exception("计划数据不可为空!");
+ }
+ var repiceList = xlList.Where(d => item.PId.Equals(d.PId) && item.ProductName.Equals(d.ProductName) && item.Recipe.Equals(d.Recipe)).ToList();
+ if (repiceList == null)
+ {
+ throw new Exception("反应釜计划数据不可为空!");
+ }
+ bool r = SaveRecipe(recipe, weighList, plan, repiceList.ToList());
+ if (r == false)
+ {
+ string msg = $"批次[{plan.Batch}];配方[{item.Recipe}],导入数据失败!";
+ return msg;
+ //Console.WriteLine($"批次[{plan.Batch}];配方[{item.Recipe}],导入数据失败!");
+ }
+ //Console.WriteLine($"{item.PId}——{item.ProductName}——{item.Recipe};状态:{r}");
+ return "成功";
+ }
+ catch (Exception ex)
+ {
+ string msg = $"配方[{item.Recipe}] 导入失败!异常信息:{ex.Message}";
+ return msg;
+ //Console.WriteLine($"配方[{item.Recipe}] 导入失败!异常信息:{ex.Message}");
+ }
}
}
catch (Exception ex)
+ {
+ return ex.Message;
+ }
+
+ return "执行失败";
+ }
+
+
+ public async Task DownXLPlanAsync(List MesDownLoadPlanList)
+ {
+ try
+ {
+ var list = MesDownLoadPlanList;
+ List subList = new List();
+ List recipeList = new List();
+ list.ForEach((a) =>
+ {
+ Hw_WareHouse_Sub sb = new Hw_WareHouse_Sub();
+ sb.MainId = int.Parse(a.MainId);
+ sb.PId = a.PId;
+ sb.ProductName = a.ProductName;
+ sb.BinId = a.BinId == "" || a.BinId == null ? 0 : int.Parse(a.BinId);
+
+ sb.MaterialID = a.Material_Code;
+ sb.Material_Code = a.Material_Code;
+ sb.MaterialName = a.MaterialName;
+ sb.MaterialType = a.MaterialType;
+ sb.SetWeight = Convert.ToDecimal(a.SetWeight);
+ sb.SetError = Convert.ToDecimal(a.SetError);
+ sb.Difference = a.Difference;
+ sb.Fixed = a.Fixed == "" || a.Fixed == null ? false : true;
+ sb.FixedRatio = a.FixedRatio == a.FixedRatio ? Convert.ToDecimal(0.00) : Convert.ToDecimal(a.FixedRatio);
+ sb.Recipe = a.Recipe;
+ sb.Remark = a.Remark;
+ subList.Add(sb);
+ });
+
+ //查询小料数据
+ var xlList = subList.Where(d => d.MaterialType.Contains("尾料")).ToList();
+ var xt = (from d in xlList
+ select new
+ {
+ d.PId,
+ d.ProductName,
+ d.MaterialType,
+ d.Recipe,
+
+ }).Distinct();
+ foreach (var item in xt)
+ {
+ try
+ {
+ string recipeID = Guid.NewGuid().ToString("N");
+ string recipeCode = Guid.NewGuid().ToString("N");
+
+ #region 配方
+ xl_recipe recipe = new xl_recipe();
+ recipe.ID = recipeID;
+ recipe.Equip_Code = "01";
+ recipe.Recipe_Code = recipeCode;
+ recipe.Version = "1";
+ recipe.Recipe_Name = item.Recipe;
+ recipe.Recipe_Verify = 1;
+ recipe.Total_Weight = 0;
+ recipe.Total_Error = 0;
+ recipe.CreateDateTime = DateTime.Now;
+ recipe.IsCheck = 0;
+
+ #endregion
+
+ #region 物料
+ var repiceList = xlList.Where(d => item.PId.Equals(d.PId) && item.ProductName.Equals(d.ProductName) && item.Recipe.Equals(d.Recipe)).ToList();
+ int i = 1;
+ List weighList = new List();
+ foreach (var sub in repiceList)
+ {
+ xl_weigh material = new xl_weigh();
+ material.Equip_Code = "01";
+ material.Recipe_ID = recipe.ID;
+
+ material.Weight_Id = i;
+ if (sub.Material_Code == null | sub.Material_Code == "")
+ {
+ throw new Exception("未查询到物料!");
+ }
+ var obj = await _materialRepository.FirstAsync(d => d.Material_code == sub.Material_Code);
+ if (obj == null)
+ {
+ throw new Exception("未查询到当前物料!");
+ }
+ material.Material_ID = obj.ID;
+ if (sub.BinId == 0)
+ {
+ throw new Exception("未查询到对应料仓!");
+ }
+
+ var binInfo = await _binRepository.FirstAsync(d => d.Bin_Serial == sub.BinId && d.Material_ID == obj.ID);
+ if (binInfo == null)
+ {
+ throw new Exception("未查询到对应料仓!");
+ }
+ material.Bin_Serial = sub.BinId;
+ material.Set_Weight = Convert.ToDecimal(sub.SetWeight);
+ material.Set_Error = Convert.ToDecimal(sub.SetError);
+ recipe.Total_Weight = recipe.Total_Weight + material.Set_Weight;
+ recipe.Total_Error = recipe.Total_Error + material.Set_Error;
+ weighList.Add(material);
+ i++;
+ }
+ #endregion
+
+ #region 计划
+ xl_plan plan = new xl_plan();
+ plan.Dosing_Id = 0;
+
+ plan.Equip_Code = "01";
+ plan.Batch = item.PId;
+ plan.ProductName = item.ProductName;
+ int serialNum = 0;
+ int rtPlanSNum = GetXLNextSerialNumAsync(); //xl_plan序号
+ int lrPlanSNum = GetXLNextSerialNumFromLRPlan(DateTime.Now); //LR_Plan序号
+ if (rtPlanSNum >= lrPlanSNum)
+ {
+ serialNum = rtPlanSNum;
+ }
+ else
+ {
+ serialNum = lrPlanSNum;
+ }
+ string planID = GenerateNextPlanIDNew(DateTime.Now, 1, serialNum); //计划号
+
+ plan.Plan_Id = planID;
+ plan.Plan_Serial = serialNum;
+ plan.Recipe_ID = recipe.ID;
+ plan.Recipe_Code = recipeID;
+ plan.Recipe_Name = item.Recipe;
+ plan.Version = "1";
+ plan.Recipe_Type = 0;
+ plan.Shift_Id = "1";
+ plan.Shift_Class = "";
+ plan.Plan_Num = 1;
+ plan.Real_Num = 0;
+ plan.Duration_Time = 0;
+ plan.Mixer_Line = "0";
+ plan.End_Date = null;
+ plan.Weight_Man = null;
+ plan.Stock_Man = null;
+ plan.Plan_Batch = null;
+ plan.Plan_State = 5;
+ plan.Plan_StateText = "未启动";
+ plan.Plan_Date = String.Format("{0:yyyy-MM-dd}", DateTime.Now);
+ plan.IF_FLAG = 1;
+ #endregion
+
+ if (recipe == null)
+ {
+ throw new Exception("配方数据不可为空!");
+ }
+ if (weighList == null)
+ {
+ throw new Exception("配方物料数据不可为空!");
+ }
+ if (plan == null)
+ {
+ throw new Exception("计划数据不可为空!");
+ }
+ if (repiceList == null)
+ {
+ throw new Exception("反应釜计划数据不可为空!");
+ }
+ bool r = SaveXLRecipe(recipe, weighList, plan, repiceList.ToList());
+ if (r == false)
+ {
+ string msg = $"批次[{plan.Batch}];配方[{item.Recipe}],导入数据失败!";
+ return msg;
+ //Console.WriteLine($"批次[{plan.Batch}];配方[{item.Recipe}],导入数据失败!");
+ }
+ else
+ {
+ return "成功";
+ }
+ //Console.WriteLine($"{item.PId}——{item.ProductName}——{item.Recipe};状态:{r}");
+ }
+ catch (Exception ex)
+ {
+ string msg = $"配方[{item.Recipe}] 导入失败!异常信息:{ex.Message}";
+ return msg;
+ //Console.WriteLine($"配方[{item.Recipe}] 导入失败!异常信息:{ex.Message}");
+ }
+
+ }
+
+
+ }
+ catch (Exception ex)
+ {
+ return ex.Message;
+ }
+
+ return "执行失败";
+ }
+
+ #region 保存配方、计划物料信息
+ ///
+ /// 保存配方、计划物料信息
+ ///
+ /// 配方、物料
+ ///
+ ///
+ ///
+ ///
+ public bool SaveRecipe(Pmt_recipe recipeList, List pmt_weighList, RT_plan plan, List sub)
+ {
+ try
+ {
+ var iflag3 = _rtplanRepository.Add(plan);
+ if (iflag3.Result < 1)
+ throw new Exception("保存计划失败!");
+ var iflag4 = _wareHouse_Sub.Add(sub);
+ if (iflag4 < 1)
+ throw new Exception("保存反应釜计划失败!");
+
+ var iflag1 = _pmtRecipeRepository.Add(recipeList);
+ if (iflag1.Result < 1)
+ throw new Exception("保存溶剂配方失败!");
+ var iflag2 = _pmtWeighRepository.Add(pmt_weighList);
+ if (iflag2 < 1)
+ throw new Exception("保存配方物料失败!");
+
+ return true;
+ }
+ catch (Exception ex)
+ {
+ return false;
+ }
+
+ }
+ public bool SaveXLRecipe(xl_recipe recipeList, List pmt_weighList, xl_plan plan, List sub)
+ {
+ try
+ {
+ var iflag3 = _planRepository.Add(plan);
+ if (iflag3.Result < 1)
+ throw new Exception("保存计划失败!");
+ var iflag4 = _wareHouse_Sub.Add(sub);
+ if (iflag4 < 1)
+ throw new Exception("保存反应釜计划失败!");
+
+ var iflag1 = _recipeRepository.Add(recipeList);
+ if (iflag1.Result < 1)
+ throw new Exception("保存溶剂配方失败!");
+ var iflag2 = _xlWeighRepository.Add(pmt_weighList);
+ if (iflag2 < 1)
+ throw new Exception("保存配方物料失败!");
+
+ return true;
+ }
+ catch (Exception ex)
{
return false;
}
- return false;
+
+ }
+ #endregion
+ #region 根据二维码获取物料
+ public async Task GetMaterialAsync(string barCode)
+ {
+ Pmt_material sub = await _material.FirstAsync(d => d.Material_code == barCode);
+ return sub;
}
+ #endregion
#region 根据传入的二维码、计划Id 查询反应釜下所有的物料
///
diff --git a/Admin.Core.Service/Service_New/SolventServices.cs b/Admin.Core.Service/Service_New/SolventServices.cs
index 466ff12..701771d 100644
--- a/Admin.Core.Service/Service_New/SolventServices.cs
+++ b/Admin.Core.Service/Service_New/SolventServices.cs
@@ -522,13 +522,13 @@ namespace Admin.Core.Service
else
{
var s7 = PlcConnect.Instance;
- int planNum = s7.ReadInt16("DB110.DBW2.0").Content;//执行批次
+ int planNum = s7.ReadInt16("DB111.DBW2.0").Content;//执行批次
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;
- int materialNo = s7.ReadInt16("DB110.DBW1758").Content;//当前执行物料
+ int materialNo = s7.ReadInt16("DB111.DBW1758").Content;//当前执行物料
var hwWeigh = hwWeighList.FirstOrDefault(d => d.MID == materialNo);
if (hwWeigh == null) return null;
diff --git a/Admin.Core.Service/Service_New/xl_materialServices.cs b/Admin.Core.Service/Service_New/xl_materialServices.cs
index 86f4626..75082d0 100644
--- a/Admin.Core.Service/Service_New/xl_materialServices.cs
+++ b/Admin.Core.Service/Service_New/xl_materialServices.cs
@@ -307,6 +307,31 @@ namespace Admin.Core.Service
#endregion
#region 扫码料桶,绑定物料、重量批次信息
+
+ public async Task GetBindBarrelWeight()
+ {
+ try
+ {
+ var plcList = PlcHelper.siemensList.SingleOrDefault(d => d.EquipName.Equals("小料PLC"));
+ if (plcList.plc.IsConnected) // 000533
+ {
+ decimal tcheckWeight = Convert.ToDecimal(plcList.plc.ReadInt16("DB104.DBW164")) / 1000;//检量秤重量
+ log.Info($"重量:{tcheckWeight}");
+ return tcheckWeight;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ catch (Exception ex)
+ {
+ log.Error(ex.Message);
+ return 0;//异常报错
+ }
+ }
+
+
///
/// 扫码料桶,绑定物料、重量批次信息
///