diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml
index 06d88e13..17daf502 100644
--- a/Admin.Core.Api/Admin.Core.Model.xml
+++ b/Admin.Core.Api/Admin.Core.Model.xml
@@ -491,6 +491,16 @@
完成时间
+
+
+ 条码下线信息
+
+
+
+
+ 主键标识
+
+
SAP BOM 信息
diff --git a/Admin.Core.IRepository/IRepository_New/IOffLineInfoRepository.cs b/Admin.Core.IRepository/IRepository_New/IOffLineInfoRepository.cs
new file mode 100644
index 00000000..96ab32ae
--- /dev/null
+++ b/Admin.Core.IRepository/IRepository_New/IOffLineInfoRepository.cs
@@ -0,0 +1,17 @@
+using Admin.Core.Model;
+using Admin.Core.Model.Model_New;
+using Admin.Core.Model.ViewModels;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace Admin.Core.IRepository
+{
+ ///
+ /// 成品下线记录
+ ///
+ public interface IOffLineInfoRepository : IBaseRepository
+ {
+
+
+ }
+}
\ No newline at end of file
diff --git a/Admin.Core.IService/IService_New/IOffLineInfoServices.cs b/Admin.Core.IService/IService_New/IOffLineInfoServices.cs
new file mode 100644
index 00000000..1b854f37
--- /dev/null
+++ b/Admin.Core.IService/IService_New/IOffLineInfoServices.cs
@@ -0,0 +1,18 @@
+using Admin.Core.IService;
+using Admin.Core.Model;
+using Admin.Core.Model.Model_New;
+using Admin.Core.Model.ViewModels;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace Admin.Core.IService
+{
+ ///
+ /// 成品下线
+ ///
+ public interface IOffLineInfoServices : IBaseServices
+ {
+
+
+ }
+}
\ No newline at end of file
diff --git a/Admin.Core.IService/IService_New/IProductOffLineServices.cs b/Admin.Core.IService/IService_New/IProductOffLineServices.cs
index 4068224a..9df9e4f3 100644
--- a/Admin.Core.IService/IService_New/IProductOffLineServices.cs
+++ b/Admin.Core.IService/IService_New/IProductOffLineServices.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Admin.Core.IService
{
///
- /// 成品下线
+ /// 成品下线对接条码系统
///
public interface IProductOffLineServices : IBaseServices
{
diff --git a/Admin.Core.Model/Model_New/OffLineInfo.cs b/Admin.Core.Model/Model_New/OffLineInfo.cs
new file mode 100644
index 00000000..58d1b911
--- /dev/null
+++ b/Admin.Core.Model/Model_New/OffLineInfo.cs
@@ -0,0 +1,58 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Model.Model_New
+{
+ ///
+ /// 条码下线信息
+ ///
+ [SugarTable("OFF_LINEINFO", "AUCMA_MES")]
+ public class OffLineInfo
+ {
+ ///
+ /// 主键标识
+ ///
+ [SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, IsIdentity = true)]
+ public int ObjId { get; set; }
+
+ public string ProductFactoryCode; //计划工厂
+ public string ProductSNCode; //公司条码
+ public string ProductOrderNo; //工单号
+ public string ProductSaleNo; //销售订单号
+ public string ProductSaleLineNo; //销售行号
+ public string ProductCode;//物料编码
+ public string ProductModel;//产品型号
+ public string ProductName;//物料描述
+ public string ProductType;//产品类型
+ public string ProductCheckInfo;//验证组合
+ public string ProductRemark; //标签特征
+ public string ProductBarNo; //产品条码编码
+ public string ProductMasterModel;//主型号
+ public string ProductVersion;//版本号
+ public string ProductUseInfo;//用途位
+ public string ProductCirculate;//流通特性
+ public string ProductCreateDate;//生成日期
+ public string ProductScanTime; //扫描时间
+
+
+ public bool ProductRefreshFlag;
+ public int ReadFlag;
+ public bool ProductDataFlag;
+ // 界面提示信息
+ public string MsgInfo;
+ public bool MsgAlarmFlag;
+ public int OrderQty;
+ public int ActQty;
+ public string oneCode;
+ public string serialNumber;
+ public string rfid;
+ public string sim;
+ public string number1;
+ public bool ChkOut;
+
+ }
+}
diff --git a/Admin.Core.Repository/Repository_New/OffLineInfoRepository.cs b/Admin.Core.Repository/Repository_New/OffLineInfoRepository.cs
new file mode 100644
index 00000000..574d8780
--- /dev/null
+++ b/Admin.Core.Repository/Repository_New/OffLineInfoRepository.cs
@@ -0,0 +1,24 @@
+using Admin.Core.IRepository;
+using Admin.Core.Model;
+using Admin.Core.Model.Model_New;
+using Admin.Core.Model.ViewModels;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static ICSharpCode.SharpZipLib.Zip.ZipEntryFactory;
+
+namespace Admin.Core.Repository
+{
+ public class OffLineInfoRepository : BaseRepository, IOffLineInfoRepository
+ {
+ public OffLineInfoRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+ {
+ }
+
+
+ }
+}
diff --git a/Admin.Core.Service/Service_New/OffLineInfoServices.cs b/Admin.Core.Service/Service_New/OffLineInfoServices.cs
new file mode 100644
index 00000000..a565cf55
--- /dev/null
+++ b/Admin.Core.Service/Service_New/OffLineInfoServices.cs
@@ -0,0 +1,17 @@
+using Admin.Core.IRepository;
+using Admin.Core.IService;
+using Admin.Core.Model;
+using Admin.Core.Model.Model_New;
+
+namespace Admin.Core.Service
+{
+ public class OffLineInfoServices : BaseServices, IOffLineInfoServices
+ {
+ private readonly IBaseRepository _dal;
+ public OffLineInfoServices(IBaseRepository dal)
+ {
+ this._dal = dal;
+ base.BaseDal = dal;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Admin.Core.Service/Service_New/ProductOffLineServices.cs b/Admin.Core.Service/Service_New/ProductOffLineServices.cs
index 0024f21a..e328b7e1 100644
--- a/Admin.Core.Service/Service_New/ProductOffLineServices.cs
+++ b/Admin.Core.Service/Service_New/ProductOffLineServices.cs
@@ -57,8 +57,7 @@ namespace Admin.Core.Service
{
// 保存业务
var _db = baseRepository.Db;
- var infos = await _db.Ado.SqlQueryAsync($"");
-
+ var infos = await _db.Ado.SqlQueryAsync($"SELECT ILS_TMPRD.ILS_SORT_BARCODE_PKG.SAVE_BARCODE_INFO({Barcode},{Created_By},{Order_number},{Order_type})");
return infos.FirstOrDefault().result;
}
catch (Exception ex)
diff --git a/Aucma.Core.ProductOffLine/Aucma.Core.ProductOffLine.csproj b/Aucma.Core.ProductOffLine/Aucma.Core.ProductOffLine.csproj
index 2492a5ac..4ca354a2 100644
--- a/Aucma.Core.ProductOffLine/Aucma.Core.ProductOffLine.csproj
+++ b/Aucma.Core.ProductOffLine/Aucma.Core.ProductOffLine.csproj
@@ -71,6 +71,7 @@
+
diff --git a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs
index f52b35f7..929f9bc7 100644
--- a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs
+++ b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs
@@ -4,11 +4,15 @@ using Admin.Core.Model.Model_New;
using Admin.Core.Service;
using Aucma.Core.PLc;
using Aucma.Core.ProductOffLine;
+using Aucma.Core.ProductOffLine.Models;
using log4net;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Logging;
+using RestSharp;
using System;
+using System.Collections;
using System.Collections.Generic;
+using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
@@ -32,14 +36,26 @@ namespace Aucma.Core.ProductOffLine.Business
}
}
#endregion
+ //public OffLineBusiness(){}
+
+ #region 变量定义
+ public static OffLineInfo TempOffLineInfo = new OffLineInfo();
+ public static OffLineInfo FDOffLineInfo = new OffLineInfo();
+ // 河南工厂编码
+ private static string Werks = "1301";
+ #endregion
+
+
#region 接口引用
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(OffLineBusiness));
- private readonly IBaseOrderInfoServices _baseOrderInfoServices;
- private readonly IProductPlanInfoServices? _productPlanInfoServices;
- private readonly IProductOffLineServices? _productOffLineServices;
-
+ private readonly IBaseOrderInfoServices _baseOrderInfoServices = App.ServiceProvider.GetService();
+ private readonly IProductPlanInfoServices? _productPlanInfoServices = App.ServiceProvider.GetService();
+ // 成品下线操作条码系统接口
+ private readonly IProductOffLineServices? _productOffLineServices = App.ServiceProvider.GetService();
+ // 成品下线操作mes数据
+ private readonly IOffLineInfoServices? _offLineInfoServices = App.ServiceProvider.GetService();
#endregion
@@ -66,55 +82,51 @@ namespace Aucma.Core.ProductOffLine.Business
#endregion
- public OffLineBusiness()
- {
-
-
+
- }
- public void test()
- {
+ public async void test()
+ {
+ BaseOrderInfo order = await _baseOrderInfoServices.FirstAsync();
+ Console.WriteLine(order);
}
///
- /// 扫描的条码处理
+ /// 处理条码
///
///
/// 扫码器方向
- private async void ReceiveCode(string code, int scannerNo)
+ private async void MaterialBarScanEvent(string code)//接收条码数据
{
- //1.扫描的SN条码去条码系统查询GET_BARCODE_DATA 返回校验数据
- // string result = await _productOffLineServices.QueryChecked(code);
- string result = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000000807@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01";
- // 如果校验失败,下发报警
- if ("N".Equals(result.Substring(0, 1)))
- {
- sendPlcError();
- // 刷新页面提示信息 result.Substring(2)
- return;
- }
- //2.查询到的数据分割处理,结果中用"@"号分隔,刷新页面显示并存到scada数据库(表待建)
- string[] resultArray = result.Split('@');
- // 输出结果
- foreach (string item in resultArray)
- {
- Console.WriteLine(item);
+ //1.扫描的SN条码去条码系统校验
+ bool BackResult = await HandleMaterialBarCode(code.Trim()); //处理条码信息
+ TempOffLineInfo.ReadFlag = 0;
+ if (BackResult == true)
+ {
+
}
+ // // 如果校验失败,下发报警
+ // if ("N".Equals(result.Substring(0, 1)))
+ //{
+ // sendPlcError();
+ // // 刷新页面提示信息 result.Substring(2)
+ // return false;
+ //}
+
//3.分垛A,B库逻辑(先左边读到的条码分A库,右边读到的B库==>预留分库逻辑)
- //4.下发plc信号
- bool flag = SendPlcPass(scannerNo);
- if (!flag)
- {
- log.Error("获取plc反馈失败");
- return;
- }
- Console.WriteLine(code);
- return;
+ ////4.下发plc信号
+ //bool flag = SendPlcPass();
+ //if (!flag)
+ //{
+ // log.Error("获取plc反馈失败");
+ // return;
+ //}
+ //Console.WriteLine(code);
+ //return;
//5.调条码系统保存入库接口SaveBarcodeInfo
string saveResult = await _productOffLineServices.SaveBarcodeInfo("333", "ILS_SORT", "11111", 1);
if (string.IsNullOrEmpty(saveResult) || "E".Equals(saveResult.Substring(0, 1)))
@@ -157,6 +169,167 @@ namespace Aucma.Core.ProductOffLine.Business
}
+ ///
+ /// 去条码系统查询校验并保存
+ ///
+ ///
+ ///
+ public async Task HandleMaterialBarCode(string BarCode)
+ {
+ try
+ {
+ TempOffLineInfo.ProductSNCode = BarCode.Trim(); //SN码
+ TempOffLineInfo.ProductScanTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+ TempOffLineInfo.ProductOrderNo = "";
+ log.Info("条码验证开始:" + BarCode);
+
+ //1.查询条码系统
+ string result = await _productOffLineServices.QueryChecked(BarCode);
+ // string result = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000000807@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01";
+
+ //查询到的数据分割处理,结果中用"@"号分隔,刷新页面显示
+ string[] FArrayList = result.Split('@');
+ if (FArrayList[0].ToUpper() == "Y") //查询数据成功
+ {
+
+ log.Info(BarCode + "成功返回验证信息:" + result);
+ #region 实体赋值
+ TempOffLineInfo.MsgInfo = "获取信息成功" + BarCode + " 返回值:" + FArrayList[0].ToUpper();
+ TempOffLineInfo.ProductFactoryCode = FArrayList[1];
+ TempOffLineInfo.ProductSNCode = FArrayList[2];
+ TempOffLineInfo.ProductOrderNo = DBToString(FArrayList[3]);
+ TempOffLineInfo.ProductSaleNo = DBToString(FArrayList[4]);
+ TempOffLineInfo.ProductSaleLineNo = DBToString(FArrayList[5]);
+ TempOffLineInfo.ProductCheckInfo = DBToString(FArrayList[6]); //验证组合
+ TempOffLineInfo.ProductCode = DBToString(FArrayList[7]);
+ TempOffLineInfo.ProductName = DBToString(FArrayList[8]); //产品描述
+ TempOffLineInfo.ProductType = FArrayList[9];
+ TempOffLineInfo.ProductModel = FArrayList[10]; //产品型号
+ TempOffLineInfo.ProductRemark = DBToString(FArrayList[11]);
+ TempOffLineInfo.ProductBarNo = FArrayList[12];
+ TempOffLineInfo.ProductMasterModel = FArrayList[13]; //产品主型号
+ TempOffLineInfo.ProductVersion = FArrayList[14];
+ TempOffLineInfo.ProductUseInfo = FArrayList[15];//产品用途
+ TempOffLineInfo.ProductCirculate = FArrayList[16];//流通特性
+ TempOffLineInfo.ProductCreateDate = FArrayList[17];
+ #endregion
+
+ // 多码系统校验,是否需要待定,现场看情况
+ bool flag = TestBarCode(TempOffLineInfo);
+ if (!flag)
+ {
+ return false;
+ }
+ log.Info(TempOffLineInfo.ProductSNCode + ", 多码验证通过!");
+ }
+ else
+ {
+ log.Info(BarCode + "失败返回验证信息:" + FArrayList[1]);
+ #region 实体赋值
+ TempOffLineInfo.ProductDataFlag = true;
+ TempOffLineInfo.MsgAlarmFlag = true;
+ TempOffLineInfo.MsgInfo = "获取信息失败. " + BarCode + " 返回值:" + FArrayList[0].ToString();
+ TempOffLineInfo.ProductOrderNo = "";
+ TempOffLineInfo.ProductSaleNo = "";
+ TempOffLineInfo.ProductSaleLineNo = "";
+ TempOffLineInfo.ProductCheckInfo = ""; //验证组合
+ TempOffLineInfo.ProductCode = "";
+ TempOffLineInfo.ProductName = ""; //产品描述
+ TempOffLineInfo.ProductType = "";
+ TempOffLineInfo.ProductModel = ""; //产品型号
+ TempOffLineInfo.ProductRemark = "";
+ TempOffLineInfo.ProductBarNo = ""; ;
+ TempOffLineInfo.ProductMasterModel = ""; //产品主型号
+ TempOffLineInfo.ProductVersion = "";
+ TempOffLineInfo.ProductUseInfo = "";//产品用途
+ TempOffLineInfo.ProductCirculate = "";//流通特性
+ TempOffLineInfo.ProductCreateDate = "";
+ TempOffLineInfo.oneCode = "";
+ TempOffLineInfo.serialNumber = "";
+ TempOffLineInfo.rfid = "";
+ TempOffLineInfo.sim = "";
+ TempOffLineInfo.number1 = "";
+ #endregion
+ return false;
+ }
+ // mes查询订单数据, 异常处理:后期可能根据SN码查箱体码,查订单号并检查更新订单数据
+ BaseOrderInfo order = await _baseOrderInfoServices.FirstAsync(x => x.OrderCode == TempOffLineInfo.ProductOrderNo.Replace("0000", ""));
+ //2.上传条码系统
+ if (!string.IsNullOrEmpty(TempOffLineInfo.ProductOrderNo))
+ {
+ string strSave = await _productOffLineServices.SaveBarcodeInfo(BarCode.Trim(), "ILS_SORT", TempOffLineInfo.ProductOrderNo, 1);
+ if (!string.IsNullOrEmpty(strSave))
+ {
+ if (strSave == "Y")
+ {
+ log.Info(BarCode + "上传条码成功:" + strSave);
+
+ TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码成功" + strSave;
+ if (order != null)
+ {
+ TempOffLineInfo.OrderQty = order.OrderAmount;
+ TempOffLineInfo.ActQty = order.CompleteAmount;
+ }
+ return true;
+ }
+ else
+ {
+ log.Info(BarCode + "上传条码失败:" + strSave);
+ TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码失败" + strSave;
+ if (strSave.Contains("条码重复"))
+ {
+ // 查询本地数据库是否有数据
+ OffLineInfo offLineInfo = await _offLineInfoServices.FirstAsync(x => x.ProductSNCode == BarCode);
+ if (offLineInfo != null)
+ {
+ log.Info(BarCode + "条码重复,本地已存在");
+ TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码失败" + strSave + "上传日期:" + DBToString(offLineInfo.ProductScanTime);
+
+ if (TempOffLineInfo.ChkOut == true)
+ {
+ return true;
+ }
+ }
+ else
+ {
+ log.Info(BarCode + "条码重复,本地不存在,已上传中");
+ await _offLineInfoServices.AddAsync(TempOffLineInfo);
+ }
+ }
+ return false;
+ }
+
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",生产单号异常";
+ return false;
+ }
+ }
+ catch (Exception ex)
+ {
+ TempOffLineInfo.MsgInfo = "获取产品条码异常:" + ex.Message;
+ TempOffLineInfo.MsgAlarmFlag = true;
+
+ log.Info(BarCode + "条码验证异常:" + ex.Message.ToString());
+ return false;
+ }
+ finally
+ {
+ TempOffLineInfo.ProductRefreshFlag = true;
+ }
+
+ }
+
+
+
+
#region plc交互
private SemaphoreSlim semaphore = new SemaphoreSlim(0);
@@ -298,5 +471,125 @@ namespace Aucma.Core.ProductOffLine.Business
}
#endregion
+
+
+ #region 工具方法
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static string DBToString(object refData)
+ {
+ if (refData == null)
+ return "";
+ else
+ return refData == DBNull.Value ? "" : refData.ToString();
+ }
+
+ ///
+ /// 多码系统校验
+ ///
+ ///
+ ///
+ public bool TestBarCode(OffLineInfo TempOffLineInfo)
+ {
+ if (TempOffLineInfo.ProductCode.Replace("00000000", "") == "9002005518" || TempOffLineInfo.ProductCode.Replace("00000000", "") == "9002005517")
+ {
+ TempOffLineInfo.ProductRemark = "";
+ }
+
+ if (TempOffLineInfo.ProductRemark != "")
+ {
+ log.Info(TempOffLineInfo.ProductSNCode + ", 验证组合:" + TempOffLineInfo.ProductRemark);
+
+ string strCheck = TempOffLineInfo.ProductRemark.Replace("wb", "");
+
+ Boolean blnY = strCheck.Contains("Y");
+ Boolean blnZ = strCheck.Contains("Z");
+ Boolean blnX = strCheck.Contains("X");
+ Boolean blnG = strCheck.Contains("G");
+ //Boolean blnC = strCheck.Contains("C");
+
+ int iCheck = 0;
+
+ if (blnY == true)
+ iCheck = iCheck + 1;
+
+ if (blnZ == true)
+ iCheck = iCheck + 1;
+
+ if (blnX == true)
+ iCheck = iCheck + 1;
+
+ if (blnG == true)
+ iCheck = iCheck + 1;
+
+ //if (blnC == true)
+ // iCheck = iCheck + 1;
+
+ //y一维码,公司条码 oneCode
+ //z资产号 serialNumber
+ //x芯片 rfid
+ //g模块信息 sim
+ //wb不需要验证
+ //c是摄像头码 number1
+ if (blnY == true && iCheck > 1)
+ {
+ if (blnY || blnZ || blnX || blnG) //|| blnC
+ {
+ var client = new RestClient("http://10.100.83.113/syong/test.php");
+ client.Timeout = -1;
+ var request = new RestRequest(Method.POST);
+ request.AlwaysMultipartFormData = true;
+ request.AddParameter("oneCode", TempOffLineInfo.ProductSNCode);
+ request.AddParameter("Werks", "2701");
+ request.AddParameter("mark", "YZX");
+ IRestResponse response = client.Execute(request);
+ Console.WriteLine(response.Content);
+ var chkInfo = Newtonsoft.Json.JsonConvert.DeserializeObject(response.Content);
+
+ TempOffLineInfo.oneCode = DBToString(chkInfo.oneCode);
+ TempOffLineInfo.serialNumber = DBToString(chkInfo.serialNumber);
+ TempOffLineInfo.rfid = DBToString(chkInfo.rfid);
+ TempOffLineInfo.sim = DBToString(chkInfo.sim);
+ TempOffLineInfo.number1 = DBToString(chkInfo.number1);
+
+ if (blnY == true && DBToString(chkInfo.oneCode) == "")
+ {
+ TempOffLineInfo.MsgInfo = "多码验证,公司条码验证失败";
+ log.Info(TempOffLineInfo.ProductSNCode + ", 多码验证,公司条码验证失败");
+ return false;
+ }
+
+ if (blnZ == true && DBToString(chkInfo.serialNumber) == "")
+ {
+ TempOffLineInfo.MsgInfo = "多码验证,资产号验证失败";
+ log.Info(TempOffLineInfo.ProductSNCode + ", 多码验证,资产号验证失败");
+ return false;
+ }
+
+ if (blnX == true && DBToString(chkInfo.rfid) == "")
+ {
+ TempOffLineInfo.MsgInfo = "多码验证,芯片验证失败";
+ log.Info(TempOffLineInfo.ProductSNCode + ", 多码验证,芯片验证失败");
+ return false;
+ }
+
+ if (blnG == true && DBToString(chkInfo.sim) == "")
+ {
+ TempOffLineInfo.MsgInfo = "多码验证,模块信息验证失败";
+ log.Info(TempOffLineInfo.ProductSNCode + ", 多码验证,模块信息验证失败");
+ return false;
+ }
+
+ return true;
+ }
+ }
+ }
+ return true;
+ }
+
+ #endregion
}
}
diff --git a/Aucma.Core.ProductOffLine/Models/AucmaBarCodeModel.cs b/Aucma.Core.ProductOffLine/Models/AucmaBarCodeModel.cs
new file mode 100644
index 00000000..e46921fe
--- /dev/null
+++ b/Aucma.Core.ProductOffLine/Models/AucmaBarCodeModel.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Aucma.Core.ProductOffLine.Models
+{
+ public class AucmaBarCodeModel
+ {
+ ///
+ /// 公司条码
+ ///
+ public string oneCode { get; set; }
+ ///
+ /// 资产条码
+ ///
+ public string serialNumber { get; set; }
+ ///
+ /// 芯片码
+ ///
+ public string rfid { get; set; }
+
+ public string update { get; set; }
+
+ public string imei { get; set; }
+
+ public string imsi { get; set; }
+ ///
+ /// 模块信息
+ ///
+ public string sim { get; set; }
+
+ public string wifiMac { get; set; }
+
+ public string btMac { get; set; }
+
+ public string uuid { get; set; }
+
+ public string major { get; set; }
+
+ public string minor { get; set; }
+
+ public string Iwerk { get; set; }
+
+ public string customNumber { get; set; }
+ ///
+ /// 是摄像头码
+ ///
+ public string number1 { get; set; }
+
+ public string number2 { get; set; }
+
+ public string number3 { get; set; }
+
+ public string number4 { get; set; }
+
+ //{ "oneCode":"1252002000010B150050","serialNumber":"AKMZG20210207568","rfid":"6062F554",
+ //"update":"2021-01-08 10:49:43","imei":null,"imsi":null,"sim":null,"wifiMac":null,"btMac":null,
+ //"uuid":null,"major":null,"minor":null,"Iwerk":"1021","customNumber":"","number1":"","number2":"","number3":"","number4":""}
+
+
+ }
+}