打标签2号机器添加门把手临时标签,统计总数时去除临时标签。

This commit is contained in:
2024-07-09 13:47:37 +08:00
parent 0006652244
commit 5d42e9e196
3 changed files with 188 additions and 94 deletions

View File

@@ -23,6 +23,7 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
/// <param name="original"></param>
/// <returns></returns>
[HttpGet("common")]
[Log(Title = "退库", BusinessType = BusinessType.DELETE)]
public IActionResult ExitwarehouseCommmon(string originalCode)
{
string msg = null;

View File

@@ -80,7 +80,7 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
/// <returns></returns>
[HttpPost("doConsolidationGoods2")]
[Log(Title = "拼箱", BusinessType = BusinessType.UPDATE)]
[Log(Title = "拼箱2", BusinessType = BusinessType.UPDATE)]
public IActionResult DoConsolidationGoods2([FromBody] WmGoodsConsolidationDto2 parm)
{
try

View File

@@ -1,10 +1,10 @@
using Infrastructure.Attribute;
using SqlSugar;
using System;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using Infrastructure.Attribute;
using SqlSugar;
using ZR.Model;
using ZR.Model.MES.pro;
using ZR.Model.MES.qc;
@@ -16,8 +16,6 @@ using static System.Runtime.InteropServices.JavaScript.JSType;
namespace ZR.Service.mes.qc
{
[AppService(ServiceType = typeof(ICommonFQCService), ServiceLifetime = LifeTime.Transient)]
public class CommonFQCService : BaseService<FirstFQCService>, ICommonFQCService
{
@@ -26,7 +24,8 @@ namespace ZR.Service.mes.qc
try
{
// 检查对应工单是否存在
ProWorkorder_v2 proWorkorder = Context.Queryable<ProWorkorder_v2>()
ProWorkorder_v2 proWorkorder = Context
.Queryable<ProWorkorder_v2>()
.Where(it => it.ClientWorkorder == workOrderId)
.First();
if (proWorkorder == null)
@@ -40,6 +39,7 @@ namespace ZR.Service.mes.qc
return -1;
}
}
/// <summary>
/// 根据年周日生成当日全部工单列表
/// </summary>
@@ -49,11 +49,18 @@ namespace ZR.Service.mes.qc
/// <param name="type">0-不读取status 1-读取status 2- 查询status为1,2时</param>
/// <param name="status">-1-全部 0-初态 1-上线 2-包装完成</param>
/// <returns></returns>
public List<ProWorkorder_v2> GenerateWorkOrderListUtil(int year, int week, int date, int type = 0, int status = -1)
public List<ProWorkorder_v2> GenerateWorkOrderListUtil(
int year,
int week,
int date,
int type = 0,
int status = -1
)
{
try
{
var predicate = Expressionable.Create<ProWorkorder_v2>()
var predicate = Expressionable
.Create<ProWorkorder_v2>()
.And(it => it.Year == year)
.And(it => it.Week == week)
.And(it => it.Date == date)
@@ -61,7 +68,8 @@ namespace ZR.Service.mes.qc
.AndIF(type == 1, it => it.Status == status)
.AndIF(type == 2, it => it.Status == 1 || it.Status == 2)
.ToExpression();
return Context.Queryable<ProWorkorder_v2>()
return Context
.Queryable<ProWorkorder_v2>()
.Where(predicate)
.OrderBy(it => it.Sort)
.ToList();
@@ -70,14 +78,17 @@ namespace ZR.Service.mes.qc
{
return null;
}
}
public int CheckPackageWorkOrderInListStatus(string workOrderId)
{
try
{
// 检查对应工单是否存在
ProWorkorder_v2 proWorkOrder = Context.Queryable<ProWorkorder_v2>().Where(it => it.ClientWorkorder == workOrderId).First();
ProWorkorder_v2 proWorkOrder = Context
.Queryable<ProWorkorder_v2>()
.Where(it => it.ClientWorkorder == workOrderId)
.First();
if (proWorkOrder == null)
{
return -1;
@@ -86,7 +97,12 @@ namespace ZR.Service.mes.qc
int year = proWorkOrder.Year;
int week = proWorkOrder.Week;
int date = proWorkOrder.Date;
List<ProWorkorder_v2> proWorkorders = GenerateWorkOrderListUtil(year, week, date, 2);
List<ProWorkorder_v2> proWorkorders = GenerateWorkOrderListUtil(
year,
week,
date,
2
);
if (proWorkorders == null)
{
return -1;
@@ -97,7 +113,8 @@ namespace ZR.Service.mes.qc
{
if (workOrderId == proWorkorders[i].ClientWorkorder)
{
index = i; break;
index = i;
break;
}
}
if (index == 0)
@@ -139,7 +156,10 @@ namespace ZR.Service.mes.qc
// 未完成
int noFinishNum = 0;
// 检查对应工单是否存在
ProWorkorder_v2 proWorkOrder = Context.Queryable<ProWorkorder_v2>().Where(it => it.ClientWorkorder == workOrderId).First();
ProWorkorder_v2 proWorkOrder = Context
.Queryable<ProWorkorder_v2>()
.Where(it => it.ClientWorkorder == workOrderId)
.First();
if (proWorkOrder == null)
{
return result;
@@ -148,7 +168,12 @@ namespace ZR.Service.mes.qc
int year = proWorkOrder.Year;
int week = proWorkOrder.Week;
int date = proWorkOrder.Date;
List<ProWorkorder_v2> proWorkorders = GenerateWorkOrderListUtil(year, week, date, 2);
List<ProWorkorder_v2> proWorkorders = GenerateWorkOrderListUtil(
year,
week,
date,
2
);
if (proWorkorders == null)
{
return result;
@@ -159,10 +184,17 @@ namespace ZR.Service.mes.qc
{
if (workOrderId == proWorkorders[i].ClientWorkorder)
{
index = i + 1; break;
index = i + 1;
break;
}
}
List<ProWorkorder_v2> finishWorkorders = GenerateWorkOrderListUtil(year, week, date, 1, 2);
List<ProWorkorder_v2> finishWorkorders = GenerateWorkOrderListUtil(
year,
week,
date,
1,
2
);
if (finishWorkorders == null)
{
return result;
@@ -182,6 +214,7 @@ namespace ZR.Service.mes.qc
return null;
}
}
/// <summary>
/// 工单需要打印标签总数
/// </summary>
@@ -192,14 +225,16 @@ namespace ZR.Service.mes.qc
{
try
{
ProWorkorder_v2 workOrder = Context.Queryable<ProWorkorder_v2>().Where(it => it.ClientWorkorder == workOrderId).First();
var res = Context.Queryable<QcFirstinspectionRecord>()
ProWorkorder_v2 workOrder = Context
.Queryable<ProWorkorder_v2>()
.Where(it => it.ClientWorkorder == workOrderId)
.First();
var res = Context
.Queryable<QcFirstinspectionRecord>()
.Where(it => it.FKWorkorderId.Equals(workOrderId))
.GroupBy(it => it.FKWorkorderId)
.Select(it => new
{
sum = SqlFunc.AggregateSum(it.Counter ?? 0)
}).First();
.Select(it => new { sum = SqlFunc.AggregateSum(it.Counter ?? 0) })
.First();
if (res == null)
{
return workOrder.PreviousNumber;
@@ -214,6 +249,7 @@ namespace ZR.Service.mes.qc
return 0;
}
}
/// <summary>
/// 工单已打印标签数
/// </summary>
@@ -224,9 +260,11 @@ namespace ZR.Service.mes.qc
try
{
string[] Machines = new string[] { "0", "1", "2", "3" };
return Context.Queryable<WmPackingrecord>()
return Context
.Queryable<WmPackingrecord>()
.Where(it => it.WorkOrderNum == workOrderId)
.Where(it => Machines.Contains(it.Machine))
.Where(it => it.Standby3 == null)
.OrderBy(it => it.Id)
.Count();
}
@@ -235,12 +273,16 @@ namespace ZR.Service.mes.qc
return 0;
}
}
public QcCommonFqcBoardDto GetWorkOrderBoardData(string workOrderId)
{
try
{
// 检查对应工单是否存在
ProWorkorder_v2 proWorkOrder = Context.Queryable<ProWorkorder_v2>().Where(it => it.ClientWorkorder == workOrderId).First();
ProWorkorder_v2 proWorkOrder = Context
.Queryable<ProWorkorder_v2>()
.Where(it => it.ClientWorkorder == workOrderId)
.First();
if (proWorkOrder == null)
{
return null;
@@ -252,7 +294,12 @@ namespace ZR.Service.mes.qc
int year = proWorkOrder.Year;
int week = proWorkOrder.Week;
int date = proWorkOrder.Date;
List<ProWorkorder_v2> proWorkorders = GenerateWorkOrderListUtil(year, week, date, 2);
List<ProWorkorder_v2> proWorkorders = GenerateWorkOrderListUtil(
year,
week,
date,
2
);
if (proWorkorders == null)
{
return null;
@@ -263,27 +310,44 @@ namespace ZR.Service.mes.qc
{
if (workOrderId == proWorkorders[i].ClientWorkorder)
{
boardData.WorkOrderIndex = i + 1; break;
boardData.WorkOrderIndex = i + 1;
break;
}
}
boardData.WorkOrderPackageCount = GetWorkOrderNeedPackingTotal(workOrderId);
boardData.WorkOrderFinishPackageNum = GetWorkOrderPackingrecordCount(workOrderId);
boardData.WorkOrderNotFinishPackageNum = boardData.WorkOrderPackageCount - boardData.WorkOrderFinishPackageNum;
boardData.WorkOrderNotFinishPackageNum =
boardData.WorkOrderPackageCount - boardData.WorkOrderFinishPackageNum;
// 如果不是第一个工单,找到上一个工单号
if (boardData.WorkOrderIndex > 1)
{
boardData.LastWorkOrderId = proWorkorders[(boardData.WorkOrderIndex - 2) ?? 0].ClientWorkorder;
boardData.LastWorkOrderPackageCount = GetWorkOrderNeedPackingTotal(boardData.LastWorkOrderId);
boardData.LastWorkOrderFinishPackageNum = GetWorkOrderPackingrecordCount(boardData.LastWorkOrderId);
boardData.LastWorkOrderNotFinishPackageNum = boardData.LastWorkOrderPackageCount - boardData.LastWorkOrderFinishPackageNum;
boardData.LastWorkOrderId = proWorkorders[
(boardData.WorkOrderIndex - 2) ?? 0
].ClientWorkorder;
boardData.LastWorkOrderPackageCount = GetWorkOrderNeedPackingTotal(
boardData.LastWorkOrderId
);
boardData.LastWorkOrderFinishPackageNum = GetWorkOrderPackingrecordCount(
boardData.LastWorkOrderId
);
boardData.LastWorkOrderNotFinishPackageNum =
boardData.LastWorkOrderPackageCount
- boardData.LastWorkOrderFinishPackageNum;
}
List<ProWorkorder_v2> finishWorkorders = GenerateWorkOrderListUtil(year, week, date, 1, 2);
List<ProWorkorder_v2> finishWorkorders = GenerateWorkOrderListUtil(
year,
week,
date,
1,
2
);
if (finishWorkorders == null)
{
return null;
}
boardData.WorkOrderFinishNum = finishWorkorders.Count;
boardData.WorkOrderNotFinishNum = boardData.WorkOrderDayListCount - boardData.WorkOrderFinishNum;
boardData.WorkOrderNotFinishNum =
boardData.WorkOrderDayListCount - boardData.WorkOrderFinishNum;
boardData.UpdatedTime = DateTime.Now;
return boardData;
}
@@ -293,7 +357,9 @@ namespace ZR.Service.mes.qc
}
}
public PagedInfo<QcCommonFqcWorkerOrderDataDto> GetWorkOrderFqcData(QcCommonFqcWorkerOrderDataQuery query)
public PagedInfo<QcCommonFqcWorkerOrderDataDto> GetWorkOrderFqcData(
QcCommonFqcWorkerOrderDataQuery query
)
{
try
{
@@ -306,7 +372,11 @@ namespace ZR.Service.mes.qc
DateTime dateTime = query.StartTime ?? DateTime.Now;
GregorianCalendar gregorianCalendar = new GregorianCalendar();
year = gregorianCalendar.GetYear(dateTime);
week = gregorianCalendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
week = gregorianCalendar.GetWeekOfYear(
dateTime,
CalendarWeekRule.FirstDay,
DayOfWeek.Monday
);
date = (int)gregorianCalendar.GetDayOfWeek(dateTime);
if (date == 0)
{
@@ -319,18 +389,31 @@ namespace ZR.Service.mes.qc
{
isCheckData = false;
}
var predicate = Expressionable.Create<ProWorkorder_v2>()
var predicate = Expressionable
.Create<ProWorkorder_v2>()
.AndIF(isCheckData, it => it.Year == year)
.AndIF(isCheckData, it => it.Week == week)
.AndIF(isCheckData, it => it.Date == date)
.And(it => it.Remark3 == "是")
.AndIF(query.Status > -1, it => it.Status == query.Status)
.AndIF(!string.IsNullOrEmpty(query.WorkOrderId), it => it.ClientWorkorder.Contains(query.WorkOrderId))
.AndIF(!string.IsNullOrEmpty(query.Partnumber), it => it.FinishedPartNumber.Contains(query.Partnumber))
.AndIF(!string.IsNullOrEmpty(query.Description), it => it.ProductDescription.Contains(query.Description) || it.Colour.Contains(query.Description) ||
it.Specifications.Contains(query.Description))
.AndIF(
!string.IsNullOrEmpty(query.WorkOrderId),
it => it.ClientWorkorder.Contains(query.WorkOrderId)
)
.AndIF(
!string.IsNullOrEmpty(query.Partnumber),
it => it.FinishedPartNumber.Contains(query.Partnumber)
)
.AndIF(
!string.IsNullOrEmpty(query.Description),
it =>
it.ProductDescription.Contains(query.Description)
|| it.Colour.Contains(query.Description)
|| it.Specifications.Contains(query.Description)
)
.ToExpression();
List<ProWorkorder_v2> orderList = Context.Queryable<ProWorkorder_v2>()
List<ProWorkorder_v2> orderList = Context
.Queryable<ProWorkorder_v2>()
.Where(predicate)
.OrderBy(it => it.Sort)
.ToList();
@@ -338,14 +421,17 @@ namespace ZR.Service.mes.qc
//TODO 分页暂不实现
//转换数据
PagedInfo<QcCommonFqcWorkerOrderDataDto> resultPage = new PagedInfo<QcCommonFqcWorkerOrderDataDto>();
List<QcCommonFqcWorkerOrderDataDto> resultList = new List<QcCommonFqcWorkerOrderDataDto>();
PagedInfo<QcCommonFqcWorkerOrderDataDto> resultPage =
new PagedInfo<QcCommonFqcWorkerOrderDataDto>();
List<QcCommonFqcWorkerOrderDataDto> resultList =
new List<QcCommonFqcWorkerOrderDataDto>();
foreach (var item in orderList)
{
if (item != null)
{
string Remark = "";
WmMaterial material = Context.Queryable<WmMaterial>()
WmMaterial material = Context
.Queryable<WmMaterial>()
.Where(it => it.Partnumber == item.FinishedPartNumber)
.First();
string Description = "";
@@ -362,7 +448,8 @@ namespace ZR.Service.mes.qc
Remark += "物料不在清单内 ";
}
// 首检报表数据拉取
QcQualityStatisticsFirst QcFirstData = Context.Queryable<QcQualityStatisticsFirst>()
QcQualityStatisticsFirst QcFirstData = Context
.Queryable<QcQualityStatisticsFirst>()
.Where(it => it.WorkorderId == item.ClientWorkorder)
.First();
string Team = "";
@@ -378,16 +465,22 @@ namespace ZR.Service.mes.qc
Remark += "工单开始时间为空 ";
}
}
int WorkOrderPackageCount = GetWorkOrderNeedPackingTotal(item.ClientWorkorder);
int WorkOrderFinishPackageNum = GetWorkOrderPackingrecordCount(item.ClientWorkorder);
int WorkOrderNotFinishPackageNum = WorkOrderPackageCount - WorkOrderFinishPackageNum;
int WorkOrderPackageCount = GetWorkOrderNeedPackingTotal(
item.ClientWorkorder
);
int WorkOrderFinishPackageNum = GetWorkOrderPackingrecordCount(
item.ClientWorkorder
);
int WorkOrderNotFinishPackageNum =
WorkOrderPackageCount - WorkOrderFinishPackageNum;
if (WorkOrderNotFinishPackageNum < 0)
{
WorkOrderNotFinishPackageNum = 0;
}
bool IsFinish = WorkOrderNotFinishPackageNum == 0;
QcCommonFqcWorkerOrderDataDto newItem = new()
QcCommonFqcWorkerOrderDataDto newItem =
new()
{
WorkOrderId = item.ClientWorkorder,
Partnumber = item.FinishedPartNumber,