This commit is contained in:
小魔仙
2025-05-26 16:26:06 +08:00

View File

@@ -1,28 +1,16 @@
using System; using System;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text.Json; using System.Text.Json;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Transactions;
using Aliyun.OSS;
using AutoMapper;
using Infrastructure.Attribute; using Infrastructure.Attribute;
using Infrastructure.Extensions;
using JinianNet.JNTemplate;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MQTTnet.Protocol; using MQTTnet.Protocol;
using SqlSugar; using SqlSugar;
using ZR.Common.MqttHelper; using ZR.Common.MqttHelper;
using ZR.Model;
using ZR.Model.Business; using ZR.Model.Business;
using ZR.Model.Dto; using ZR.Model.Dto;
using ZR.Model.MES.wms; using ZR.Model.MES.wms;
using ZR.Repository;
using ZR.Service.Business.IBusinessService; using ZR.Service.Business.IBusinessService;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace ZR.Service.Business namespace ZR.Service.Business
{ {
@@ -690,6 +678,16 @@ namespace ZR.Service.Business
Context.Ado.RollbackTran(); Context.Ado.RollbackTran();
return "箱标签零件号与工单零件号不一致!"; return "箱标签零件号与工单零件号不一致!";
} }
bool hasAny = Context
.Queryable<QcBackEndRecordLabelScan>()
.Where(it => it.Label == data.Label)
.Where(it => it.LabelType == 1)
.Any();
if (hasAny)
{
Context.Ado.RollbackTran();
return "此外箱标签已扫过,禁止重复扫码!";
}
// 上一个内标签流水号检查 // 上一个内标签流水号检查
int oldPackageLabelSort = 1; int oldPackageLabelSort = 1;
QcBackEndRecordLabelScan lastPackagelabelInfo = Context QcBackEndRecordLabelScan lastPackagelabelInfo = Context
@@ -698,7 +696,7 @@ namespace ZR.Service.Business
.Where(it => it.LabelType == 1) .Where(it => it.LabelType == 1)
.OrderByDescending(it => it.LabelSort) .OrderByDescending(it => it.LabelSort)
.First(); .First();
if(lastPackagelabelInfo == null) if (lastPackagelabelInfo == null)
{ {
oldPackageLabelSort = 0; oldPackageLabelSort = 0;
} }
@@ -767,6 +765,17 @@ namespace ZR.Service.Business
Context.Ado.RollbackTran(); Context.Ado.RollbackTran();
return "此内标签已扫过,禁止重复扫码!"; return "此内标签已扫过,禁止重复扫码!";
} }
bool hasAny2 = Context
.Queryable<QcBackEndRecordLabelScan>()
.Where(it => it.Label == data.Label)
.Where(it => it.LabelType == 1)
.Where(it => it.LabelSort > 0)
.Any();
if (hasAny2)
{
Context.Ado.RollbackTran();
return "此外箱标签已扫过,禁止重复扫码!";
}
// 内标签工单确认 // 内标签工单确认
QcBackEndServiceWorkorder workorder = Context QcBackEndServiceWorkorder workorder = Context
.Queryable<QcBackEndServiceWorkorder>() .Queryable<QcBackEndServiceWorkorder>()
@@ -847,9 +856,9 @@ namespace ZR.Service.Business
bool neeedScan = false; bool neeedScan = false;
// 工单判断 // 工单判断
QcBackEndServiceWorkorder workorderInfo = Context QcBackEndServiceWorkorder workorderInfo = Context
.Queryable<QcBackEndServiceWorkorder>() .Queryable<QcBackEndServiceWorkorder>()
.Where(it => it.WorkOrder == workorder) .Where(it => it.WorkOrder == workorder)
.First(); .First();
if (workorder == null) if (workorder == null)
{ {
throw new Exception($"异常:工单不存在{workorder}"); throw new Exception($"异常:工单不存在{workorder}");
@@ -876,7 +885,7 @@ namespace ZR.Service.Business
.Where(it => it.WorkOrder == workorder) .Where(it => it.WorkOrder == workorder)
.Where(it => it.LabelType == 1) .Where(it => it.LabelType == 1)
.Count(); .Count();
packageLabelCount -= 1; packageLabelCount -= 1;
if (packageLabelCount < 0) if (packageLabelCount < 0)
{ {
@@ -955,7 +964,7 @@ namespace ZR.Service.Business
_logger.LogInformation($"发送后道外箱标签打印成功:{topic}"); _logger.LogInformation($"发送后道外箱标签打印成功:{topic}");
// 添加打印记录 // 添加打印记录
await AddBackendLabelPrintRecordAsync(newLabelScran,mqttEventDto, maxPackage); await AddBackendLabelPrintRecordAsync(newLabelScran, mqttEventDto, maxPackage);
} }
catch (JsonException ex) catch (JsonException ex)
{ {
@@ -1057,7 +1066,7 @@ namespace ZR.Service.Business
batchCode = DateTime.Now.ToString("yyMMdd") + "000"; batchCode = DateTime.Now.ToString("yyMMdd") + "000";
} }
// 提取箱流水号 // 提取箱流水号
int packageSort = 0; int packageSort = 1;
QcBackendRecordLabelPrint labelPrintRecord = Context QcBackendRecordLabelPrint labelPrintRecord = Context
.Queryable<QcBackendRecordLabelPrint>() .Queryable<QcBackendRecordLabelPrint>()
.Where(it => it.PartNumber == newLabelScran.PartNumber) .Where(it => it.PartNumber == newLabelScran.PartNumber)
@@ -1067,7 +1076,7 @@ namespace ZR.Service.Business
.First(); .First();
if (labelPrintRecord != null) if (labelPrintRecord != null)
{ {
packageSort = labelPrintRecord.SerialNumber + 1 ?? 0; packageSort = labelPrintRecord.SerialNumber + 1 ?? 1;
} }
// 提取产品描述 // 提取产品描述
string checkPartnumber = newLabelScran.PartNumber; string checkPartnumber = newLabelScran.PartNumber;
@@ -1372,6 +1381,5 @@ namespace ZR.Service.Business
{ {
return Guid.NewGuid().ToString("N").Substring(0, 10); // Generate a 10-character unique ID return Guid.NewGuid().ToString("N").Substring(0, 10); // Generate a 10-character unique ID
} }
} }
} }