|
|
|
@ -3,7 +3,7 @@ using Admin.Core.IService;
|
|
|
|
|
using Admin.Core.Model;
|
|
|
|
|
using Admin.Core.Model.Model_New;
|
|
|
|
|
using Admin.Core.Service;
|
|
|
|
|
using Aucma.Core.PLc;
|
|
|
|
|
using Aucma.Core.HwPLc;
|
|
|
|
|
using Aucma.Core.ProductOffLine;
|
|
|
|
|
using Aucma.Core.ProductOffLine.Models;
|
|
|
|
|
using log4net;
|
|
|
|
@ -103,28 +103,30 @@ namespace Aucma.Core.ProductOffLine.Business
|
|
|
|
|
|
|
|
|
|
public async void test()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
string result = await _productOffLineServices.QueryChecked("1531000AP0098DCU0481");
|
|
|
|
|
Console.WriteLine(result);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// string result = await _productOffLineServices.QueryChecked("1531000AP0098DCU0481");
|
|
|
|
|
// Console.WriteLine(result);
|
|
|
|
|
|
|
|
|
|
// string tt = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000004899@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01";
|
|
|
|
|
//Task.Run(() =>
|
|
|
|
|
//{
|
|
|
|
|
// Thread.Sleep(5000);
|
|
|
|
|
// MaterialBarScanEvent("32160030000000910780", "192.168.1.19");
|
|
|
|
|
// Thread.Sleep(1000);
|
|
|
|
|
// MaterialBarScanEvent("33160030000000910780", "192.168.1.20");
|
|
|
|
|
//});
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
|
MaterialBarScanEvent("32160030000000910780", "192.168.1.19");
|
|
|
|
|
// Thread.Sleep(1000);
|
|
|
|
|
// MaterialBarScanEvent("33160030000000910780", "192.168.1.20");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 处理条码
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="code"></param>
|
|
|
|
|
/// <param name="direction">扫码器方向</param>
|
|
|
|
|
public void MaterialBarScanEvent(string code,string scannerIp)//接收条码数据
|
|
|
|
|
/// <param name="scannerIp">扫码器IP</param>
|
|
|
|
|
public void MaterialBarScanEvent(string code,string scannerIp)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(scannerIp);
|
|
|
|
|
int ScannerNo = scannerIp == Appsettings.app("Middleware", "Scanner1", "Ip") ? 1 : 2; // 确定是哪个扫码器
|
|
|
|
|
log.Info("扫码器ip:" + scannerIp +"编号:["+ScannerNo+ "]扫描到条码:" + code);
|
|
|
|
|
|
|
|
|
|
string materialType = "";
|
|
|
|
|
bool BackResult = false;
|
|
|
|
|
if (ScannerNo == 1)
|
|
|
|
@ -233,20 +235,20 @@ namespace Aucma.Core.ProductOffLine.Business
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
// 1.先质检
|
|
|
|
|
|
|
|
|
|
TempOffLineInfo.QualityResult = "成功";
|
|
|
|
|
Thread.Sleep(10000);
|
|
|
|
|
TempOffLineInfo.ProductSNCode = BarCode.Trim(); //产品SN条码*1
|
|
|
|
|
TempOffLineInfo.ProductScanTime = System.DateTime.Now; // 扫码时间*2
|
|
|
|
|
TempOffLineInfo.ProductOrderNo = "";
|
|
|
|
|
|
|
|
|
|
log.Info("条码验证开始:" + BarCode);
|
|
|
|
|
|
|
|
|
|
//1.查询条码系统
|
|
|
|
|
// string result = await _productOffLineServices.QueryChecked(BarCode);
|
|
|
|
|
string result = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000003987@BCD-160C,家电下乡@@BCD-160C@test皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01";
|
|
|
|
|
|
|
|
|
|
//查询到的数据分割处理,结果中用"@"号分隔,刷新页面显示
|
|
|
|
|
string[] FArrayList = result.Split('@');
|
|
|
|
|
//用"@"号分隔
|
|
|
|
|
string[] FArrayList = result.Split('@');
|
|
|
|
|
if (FArrayList[0].ToUpper() == "Y") //查询数据成功
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "成功返回验证信息:" + result);
|
|
|
|
@ -313,83 +315,89 @@ namespace Aucma.Core.ProductOffLine.Business
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
// mes查询订单数据, 异常处理:后期可能根据SN码查箱体码,查订单号并检查更新订单数据
|
|
|
|
|
BaseOrderInfo order = _baseOrderInfoServices.FirstAsync(x => x.OrderCode == TempOffLineInfo.ProductOrderNo.Replace("0000", "")).Result;
|
|
|
|
|
//2.上传条码系统
|
|
|
|
|
if (!string.IsNullOrEmpty(TempOffLineInfo.ProductOrderNo))
|
|
|
|
|
{
|
|
|
|
|
// string strSave = await _productOffLineServices.SaveBarcodeInfo(BarCode.Trim(), "ILS_SORT", TempOffLineInfo.ProductOrderNo, 1);
|
|
|
|
|
string strSave = "Y";
|
|
|
|
|
if (!string.IsNullOrEmpty(strSave))
|
|
|
|
|
|
|
|
|
|
//2.上传条码系统
|
|
|
|
|
if (!string.IsNullOrEmpty(TempOffLineInfo.ProductOrderNo))
|
|
|
|
|
{
|
|
|
|
|
if (strSave == "Y")
|
|
|
|
|
// mes查询订单数据, 异常处理:后期可能根据SN码查箱体码,查订单号并检查更新订单数据
|
|
|
|
|
BaseOrderInfo order = _baseOrderInfoServices.FirstAsync(x => x.OrderCode == TempOffLineInfo.ProductOrderNo.Replace("0000", "")).Result;
|
|
|
|
|
|
|
|
|
|
string strSave = _productOffLineServices.SaveBarcodeInfo(BarCode.Trim(), "ILS_SORT", TempOffLineInfo.ProductOrderNo, 1);
|
|
|
|
|
// string strSave = "Y";
|
|
|
|
|
if (!string.IsNullOrEmpty(strSave))
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "上传条码成功:" + strSave);
|
|
|
|
|
if (strSave == "Y")
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码成功";
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
log.Info(BarCode + "上传条码成功:" + strSave);
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码成功";
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
if (order != null)
|
|
|
|
|
{
|
|
|
|
|
TempOffLineInfo.OrderQty = order.OrderAmount; // 订单数量*5
|
|
|
|
|
TempOffLineInfo.ActQty = order.CompleteAmount; // 订单已上传*6
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "上传条码失败:" + strSave);
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码失败" + strSave;
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
if (strSave.Contains("条码重复"))
|
|
|
|
|
{
|
|
|
|
|
// 查询本地数据库是否有数据
|
|
|
|
|
OffLineInfo offLineInfo = _offLineInfoServices.FirstAsync(x => x.ProductSNCode == BarCode).Result;
|
|
|
|
|
if (offLineInfo != null)
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "条码重复,本地已存在,放行");
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + "条码重复,本地已存在,放行";
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
return true;
|
|
|
|
|
// chkout:条码重复是否允许放行
|
|
|
|
|
//if (TempOffLineInfo.ChkOut == true)
|
|
|
|
|
//{
|
|
|
|
|
// return true;
|
|
|
|
|
//}
|
|
|
|
|
TempOffLineInfo.OrderQty = order.OrderAmount; // 订单数量*5
|
|
|
|
|
TempOffLineInfo.ActQty = order.CompleteAmount; // 订单已上传*6
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "条码重复,本地不存在,已插入,放行");
|
|
|
|
|
OffLineInfo info11 = MapperTwo(TempOffLineInfo);
|
|
|
|
|
_offLineInfoServices.AddAsync(info11);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "上传条码失败:" + strSave);
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码失败" + strSave;
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
if (strSave.Contains("条码重复"))
|
|
|
|
|
{
|
|
|
|
|
// 查询本地数据库是否有数据
|
|
|
|
|
OffLineInfo offLineInfo = _offLineInfoServices.FirstAsync(x => x.ProductSNCode == BarCode).Result;
|
|
|
|
|
if (offLineInfo != null)
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "条码重复,本地已存在,放行");
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + "条码重复,本地已存在,放行";
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
return true;
|
|
|
|
|
// chkout:条码重复是否允许放行
|
|
|
|
|
//if (TempOffLineInfo.ChkOut == true)
|
|
|
|
|
//{
|
|
|
|
|
// return true;
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
log.Info(BarCode + "条码重复,本地不存在,已插入,放行");
|
|
|
|
|
OffLineInfo info11 = MapperTwo(TempOffLineInfo);
|
|
|
|
|
_offLineInfoServices.AddAsync(info11);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
TempOffLineInfo.MsgAlarmFlag = false;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",条码系统保存接口异常";
|
|
|
|
|
TempOffLineInfo.MsgAlarmFlag = true;
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",条码系统保存接口异常";
|
|
|
|
|
TempOffLineInfo.MsgAlarmFlag = true;
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
return false;
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",生产单号异常";
|
|
|
|
|
TempOffLineInfo.MsgAlarmFlag = true;
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",生产单号异常";
|
|
|
|
|
TempOffLineInfo.MsgAlarmFlag = true;
|
|
|
|
|
//界面刷新
|
|
|
|
|
TempOffLineInfo.ProductRefreshFlag = true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
TempOffLineInfo.MsgInfo = "获取产品条码异常:" + ex.Message;
|
|
|
|
|