diff --git a/Admin.Core.IRepository/IRepository_New/IReportQualityInspectionRepository.cs b/Admin.Core.IRepository/IRepository_New/IReportQualityInspectionRepository.cs
new file mode 100644
index 00000000..89d71570
--- /dev/null
+++ b/Admin.Core.IRepository/IRepository_New/IReportQualityInspectionRepository.cs
@@ -0,0 +1,20 @@
+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 IReportQualityInspectionRepository : IBaseRepository
+ {
+
+
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/Admin.Core.IService/IService_New/IReportQualityInspectionServices.cs b/Admin.Core.IService/IService_New/IReportQualityInspectionServices.cs
new file mode 100644
index 00000000..6fb3f53d
--- /dev/null
+++ b/Admin.Core.IService/IService_New/IReportQualityInspectionServices.cs
@@ -0,0 +1,21 @@
+using Admin.Core.Model;
+using Admin.Core.Model.ViewModels;
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace Admin.Core.IService
+{
+ ///
+ /// 质检记录
+ ///
+ public interface IReportQualityInspectionServices : IBaseServices
+ {
+ ///
+ /// 判断是否有不合格质检项
+ ///
+ ///
+ List JudgeIsQualified(string barCode);
+
+ }
+}
\ No newline at end of file
diff --git a/Admin.Core.Model/Model_New/ReportQualityInsPection.cs b/Admin.Core.Model/Model_New/ReportQualityInsPection.cs
new file mode 100644
index 00000000..80b2185a
--- /dev/null
+++ b/Admin.Core.Model/Model_New/ReportQualityInsPection.cs
@@ -0,0 +1,117 @@
+using NPOI.SS.Formula.Functions;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Model
+{
+ ///
+ /// 质检记录
+ ///
+ [SugarTable("REPORT_QUALITY_INSPECTION", "AUCMA_MES")]
+ public class ReportQualityInsPection
+ {
+ ///
+ /// 主键
+ ///
+ [SugarColumn(ColumnName = "OBJ_ID", IsIdentity = true, IsPrimaryKey = true, OracleSequenceName = "SEQ_REPORT_QUALITY_INSPECTION")]
+ public int ObjId { get; set; }
+
+ ///
+ /// 箱体条码
+ ///
+ [SugarColumn(ColumnName = "BAR_CODE")]
+ public string BarCode { get; set; }
+
+ ///
+ /// 物料名称
+ ///
+ [SugarColumn(ColumnName = "MATERIAL_NAME")]
+ public string MaterialName { get; set; }
+ ///
+ /// 工序编号
+ ///
+ [SugarColumn(ColumnName = "PROCESS_CODE")]
+ public string ProcessCode { get; set; }
+ ///
+ /// 检测项(工位)编号
+ ///
+ [SugarColumn(ColumnName = "TEST_ITEM_CODE")]
+ public string TestItemCode { get; set; }
+ ///
+ /// 质量缺陷编码
+ ///
+ [SugarColumn(ColumnName = "QUALITY_DEFECT_CODE")]
+ public string QualityDefectCode { get; set; }
+ ///
+ /// 质量缺陷名称
+ ///
+ [SugarColumn(ColumnName = "QUALITY_DEFECT_NAME")]
+ public string QualityDefectName { get; set; }
+ ///
+ /// 质检处理措施(3=合格,1=返修)
+ ///
+ [SugarColumn(ColumnName = "TREATMENT_MEASURE")]
+ public string TreatmentMeasure { get; set; }
+ ///
+ /// 返修处理结果
+ ///
+ [SugarColumn(ColumnName = "PROCESS_RESULT")]
+ public string ProcessResult { get; set; }
+ ///
+ /// 是否下静态线(1-是;2-否)
+ ///
+ [SugarColumn(ColumnName = "IS_LOWER_LINE")]
+ public string IsLowerLine { get; set; }
+ ///
+ /// 班组编号
+ ///
+ [SugarColumn(ColumnName = "GROUP_CODE")]
+ public string GroupCode { get; set; }
+ ///
+ /// 检测人员
+ ///
+ [SugarColumn(ColumnName = "INSPECTOR_CODE")]
+ public string InspectorCode { get; set; }
+ ///
+ /// 检测时间
+ ///
+ [SugarColumn(ColumnName = "INSPECTOR_TIME")]
+ public DateTime InspectorTime { get; set; }
+ ///
+ /// 返修次数
+ ///
+ [SugarColumn(ColumnName = "REWORK_NUMBER")]
+ public int ReworkNumber { get; set; }
+ ///
+ /// 返修完成时间
+ ///
+ [SugarColumn(ColumnName = "FINISH_TIME")]
+ public DateTime FinishTime { get; set; }
+ ///
+ /// 返修结果(1=正常,2=异常)
+ ///
+ [SugarColumn(ColumnName = "IS_FLAG")]
+ public int IsFlag { get; set; }
+ ///
+ /// 更新人
+ ///
+ [SugarColumn(ColumnName = "UPDATED_BY")]
+ public string UpdatedBy { get; set; }
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "UPDATED_TIME")]
+ public DateTime UpdatedTime { get; set; }
+ ///
+ /// 检测人工位编号
+ ///
+ [SugarColumn(ColumnName = "STATION_CODE")]
+ public string StationCode { get; set; }
+
+
+ }
+}
diff --git a/Admin.Core.Repository/Repository_New/ReportQualityInspectionRepository.cs b/Admin.Core.Repository/Repository_New/ReportQualityInspectionRepository.cs
new file mode 100644
index 00000000..bcb3059e
--- /dev/null
+++ b/Admin.Core.Repository/Repository_New/ReportQualityInspectionRepository.cs
@@ -0,0 +1,23 @@
+using Admin.Core.IRepository;
+using Admin.Core.Model;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Repository
+{
+ ///
+ /// 质检记录
+ ///
+ public class ReportQualityInspectionRepository : BaseRepository, IReportQualityInspectionRepository
+ {
+ public ReportQualityInspectionRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+ {
+ }
+
+ }
+}
diff --git a/Admin.Core.Service/Service_New/ReportQualityInspectionServices.cs b/Admin.Core.Service/Service_New/ReportQualityInspectionServices.cs
new file mode 100644
index 00000000..33cd6326
--- /dev/null
+++ b/Admin.Core.Service/Service_New/ReportQualityInspectionServices.cs
@@ -0,0 +1,49 @@
+using Admin.Core.IRepository;
+using Admin.Core.IService;
+using Admin.Core.Model;
+using Admin.Core.Model.Model_New;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace Admin.Core.Service
+{
+ ///
+ /// 质检记录
+ ///
+ public class ReportQualityInspectionServices : BaseServices, IReportQualityInspectionServices
+ {
+ private readonly IBaseRepository _dal;
+ private readonly IReportQualityInspectionRepository _baseSpaceInfoRepository;
+ private readonly ICodeBindingRecordRepository _codeBindingRecordRepository;
+ public ReportQualityInspectionServices(IBaseRepository dal, IReportQualityInspectionRepository reportQualityInspectionRepository, ICodeBindingRecordRepository codeBindingRepository)
+ {
+ _baseSpaceInfoRepository = reportQualityInspectionRepository;
+ _codeBindingRecordRepository = codeBindingRepository;
+ this._dal = dal;
+ base.BaseDal = dal;
+ }
+
+
+ ///
+ /// 判断是否有不合格质检项,传入的是SN码
+ ///
+ ///
+ public List JudgeIsQualified(string SnCode)
+ {
+ try
+ {
+ string boxCode = _codeBindingRecordRepository.Query(s => s.ProductCode == SnCode).FirstOrDefault().BoxCode;
+ var list = _baseSpaceInfoRepository.Query(x=>x.BarCode.Equals(boxCode) && x.IsFlag!=1);
+ return list;
+
+ }
+ catch (System.Exception ex)
+ {
+ Console.WriteLine(ex.Message);
+ return null;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs
index 73f819a7..1a7da643 100644
--- a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs
+++ b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs
@@ -72,7 +72,8 @@ namespace Aucma.Core.ProductOffLine.Business
private readonly IMaterialCompletionServices? _iMaterialCompletionServices = App.ServiceProvider.GetService();
private readonly ICodeBindingRecordServices? _codeBindingServices = App.ServiceProvider.GetService();
-
+ // 质检记录
+ private readonly IReportQualityInspectionServices? _reportQualityInspectionServices = App.ServiceProvider.GetService();
#endregion
#region 委托事件
@@ -104,23 +105,23 @@ namespace Aucma.Core.ProductOffLine.Business
public void test()
{
-
+
// 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(() =>
- {
- while(true)
- {
- Thread.Sleep(50000);
- Random random = new Random();
- MaterialBarScan("32160030000000912"+random.Next(100,999), "192.168.1.19");
- }
-
- // Thread.Sleep(1000);
- // MaterialBarScanEvent("33160030000000910780", "192.168.1.20");
- });
+ //Task.Run(() =>
+ //{
+ // while(true)
+ // {
+ // Thread.Sleep(50000);
+ // Random random = new Random();
+ // MaterialBarScan("32160030000000912"+random.Next(100,999), "192.168.1.19");
+ // }
+
+ // // Thread.Sleep(1000);
+ // // MaterialBarScanEvent("33160030000000910780", "192.168.1.20");
+ //});
}
///
@@ -130,60 +131,57 @@ namespace Aucma.Core.ProductOffLine.Business
/// 扫码器IP
public void MaterialBarScan(string code,string scannerIp)
{
+ try
+ {
int ScannerNo = scannerIp == Appsettings.app("Middleware", "Scanner1", "Ip") ? 1 : 2; // 确定是哪个扫码器
- log.Info("扫码器ip:" + scannerIp +"编号:["+ScannerNo+ "]扫描到条码:" + code);
-
+ log.Info("扫码器ip:" + scannerIp + "编号:[" + ScannerNo + "]扫描到条码:" + code);
+
string materialType = "";
bool BackResult = false;
if (ScannerNo == 1)
{
//1.扫描的SN条码去条码系统校验
- BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo1); //扫码器1
- materialType = TempOffLineInfo1.ProductCode;
- TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + ",plc放行成功";
-
- //界面刷新
- TempOffLineInfo1.ProductRefreshFlag = true;
- return;
- if (!BackResult)
+ BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo1); //扫码器1
+ materialType = TempOffLineInfo1.ProductCode;
+ if (!BackResult)
{
return;
}
// 2.更新mes数据库
- BackResult = updateMesData(TempOffLineInfo1);
+ BackResult = updateMesData(TempOffLineInfo1);
// 3.plc放行
if (BackResult)
{
- bool plcResult =SendAndWaitSignal(ScannerNo, materialType);
- if (plcResult)
- {
- TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行成功";
-
- //界面刷新
- TempOffLineInfo1.ProductRefreshFlag = true;
- }
- else
- {
- TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行异常";
- TempOffLineInfo1.MsgAlarmFlag = true;
- //界面刷新
- TempOffLineInfo1.ProductRefreshFlag = true;
- }
- log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo1.ProductOrderNo, TempOffLineInfo1.OrderQty));
+ bool plcResult = SendAndWaitSignal(ScannerNo, materialType);
+ if (plcResult)
+ {
+ TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行成功";
+
+ //界面刷新
+ TempOffLineInfo1.ProductRefreshFlag = true;
+ }
+ else
+ {
+ TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行异常";
+ TempOffLineInfo1.MsgAlarmFlag = true;
+ //界面刷新
+ TempOffLineInfo1.ProductRefreshFlag = true;
+ }
+ log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo1.ProductOrderNo, TempOffLineInfo1.OrderQty));
}
-
+
}
// 扫码器2
else if (ScannerNo == 2)
{
- BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo2); //扫码器2
+ BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo2); //扫码器2
materialType = TempOffLineInfo2.ProductCode;
if (!BackResult)
{
return;
}
// 2.更新mes数据库
- BackResult = updateMesData(TempOffLineInfo2);
+ BackResult = updateMesData(TempOffLineInfo2);
// 3.plc放行
if (BackResult)
{
@@ -191,7 +189,7 @@ namespace Aucma.Core.ProductOffLine.Business
if (plcResult)
{
TempOffLineInfo2.MsgInfo = TempOffLineInfo2.MsgInfo + "plc放行成功";
-
+
//界面刷新
TempOffLineInfo2.ProductRefreshFlag = true;
}
@@ -204,8 +202,14 @@ namespace Aucma.Core.ProductOffLine.Business
}
log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo2.ProductOrderNo, TempOffLineInfo2.OrderQty));
}
+ }
+
}
-
+ catch (Exception ex)
+ {
+ log.Error(ex.Message.ToString());
+ }
+
}
///
@@ -300,7 +304,25 @@ namespace Aucma.Core.ProductOffLine.Business
{
try
{
-
+ // 1.质检
+ List qualityList = _reportQualityInspectionServices.JudgeIsQualified(BarCode);
+ if(qualityList != null)
+ {
+ TempOffLineInfo.QualityResult = "失败";
+ TempOffLineInfo.ProductSNCode = BarCode.Trim(); //产品SN条码*1
+ TempOffLineInfo.ProductScanTime = System.DateTime.Now; // 扫码时间*2
+ TempOffLineInfo.MsgInfo = "条码质检失败:";
+ foreach(ReportQualityInsPection item in qualityList)
+ {
+ TempOffLineInfo.MsgInfo += item.QualityDefectName;
+ }
+ TempOffLineInfo.MsgAlarmFlag = true;
+ //界面刷新
+ TempOffLineInfo.ProductRefreshFlag = true;
+ return false;
+ }
+
+
TempOffLineInfo.QualityResult = "成功";
TempOffLineInfo.ProductSNCode = BarCode.Trim(); //产品SN条码*1