quowingwang 5c099ebca5 首检
2025-11-26 15:15:17 +08:00

196 lines
7.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Infrastructure.Attribute;
using Infrastructure.Extensions;
using Infrastructure.Model;
using RIZO.Model.Mes.Dto.WorkOrderInfo;
using RIZO.Model.Mes.MasterData;
using RIZO.Model.Mes.WorkOrderInfo;
using RIZO.Repository;
using RIZO.Service.Mes.IMesService.WorkOrderInfo;
namespace RIZO.Service.Mes.WorkOrderInfo
{
/// <summary>
/// 工单从表存储工单所需物料明细及物料流转状态Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(IWorkOrderItemService), ServiceLifetime = LifeTime.Transient)]
public class WorkOrderItemService : BaseService<WorkOrderItem>, IWorkOrderItemService
{
private PlcFirstCodeService plcFirstCodeService = new PlcFirstCodeService();
/// <summary>
/// 查询工单从表(存储工单所需物料明细及物料流转状态)列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<WorkOrderItemDto> GetList(WorkOrderItemQueryDto parm)
{
var predicate = QueryExp(parm);
var response = Queryable()
.Where(predicate.ToExpression())
.ToPage<WorkOrderItem, WorkOrderItemDto>(parm);
return response;
}
public PagedInfo<WorkOrderItemDto> GetListExport(WorkOrderItemQueryDto parm)
{
var predicate = QueryExpExport(parm);
var response = Queryable()
.Where(predicate.ToExpression())
.ToPage<WorkOrderItem, WorkOrderItemDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public WorkOrderItem GetInfo(long Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加工单从表(存储工单所需物料明细及物料流转状态)
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public WorkOrderItem AddWorkOrderItem(WorkOrderItem model)
{
return Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改工单从表(存储工单所需物料明细及物料流转状态)
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateWorkOrderItem(WorkOrderItem model)
{
return Update(model, true);
}
/// <summary>
/// 查询导出表达式
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
private static Expressionable<WorkOrderItem> QueryExp(WorkOrderItemQueryDto parm)
{
var predicate = Expressionable.Create<WorkOrderItem>();
if (!string.IsNullOrWhiteSpace(parm.ProcessName))
{
predicate.And(it => it.ProcessName.Contains(parm.ProcessName));
}
if (!string.IsNullOrWhiteSpace(parm.ProcessCode))
{
predicate.And(it => it.ProcessCode.Contains(parm.ProcessCode));
}
if (!string.IsNullOrWhiteSpace(parm.WorkOrderCode))
{
predicate.And(it => it.ProcessCode.Contains(parm.WorkOrderCode));
}
return predicate;
}
/// <summary>
/// 查询导出表达式
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
private static Expressionable<WorkOrderItem> QueryExpExport(WorkOrderItemQueryDto parm)
{
var predicate = Expressionable.Create<WorkOrderItem>();
if (parm.StartTime != null && parm.StartTime.ToString().Length > 0)
{
predicate.And(it => it.CreateTime >= parm.StartTime);
}
if (parm.EndTime != null && parm.EndTime.ToString().Length > 0)
{
predicate.And(it => it.CreateTime < parm.EndTime);
}
return predicate;
}
public ApiResult CreateWorkOrderItemBySacnCode(PartsBasketCard partsBasketCard)
{
try
{
//if (string.IsNullOrWhiteSpace(json))
//{
// return ApiResult.Error(400, "扫码数据为空,请重新扫码");
//}
////字符串转对象
//PartsBasketCard partsBasketCard = new PartsBasketCard();
//try
//{
// partsBasketCard = JsonConvert.DeserializeObject<PartsBasketCard>(json);
//}
//catch (Exception ex)
//{
// return ApiResult.Error(400, "扫码数据格式错误,无法解析");
//}
string plcCode = "";
PlcFirstCode plcFirstCode = plcFirstCodeService.Queryable()
.Where(it => it.Character == partsBasketCard.Character).First();
string strPlcFirstCode = "";
if (plcFirstCode != null)
{
strPlcFirstCode = plcFirstCode.FirstCode;
}
int Sequcence = 1;
WorkOrderItem workOrderItem = Queryable()
.Where(it => it.WorkOrderCode == partsBasketCard.WorkOrderCode).OrderByDescending(it => it.Sequcence).First();
if (workOrderItem != null)
{
Sequcence = workOrderItem.Sequcence;
Sequcence += 1;
}
string formattedSequence = Sequcence.ToString("D2");
string strWorkOrderItemCode = partsBasketCard.WorkOrderCode + formattedSequence;
plcCode = strPlcFirstCode + strWorkOrderItemCode;
WorkOrderItem workOrderItem1 = new WorkOrderItem();
workOrderItem1.WorkOrderCode = partsBasketCard.WorkOrderCode;
workOrderItem1.WorkOrderItemCode = strWorkOrderItemCode;
workOrderItem1.PlcCode = plcCode;
workOrderItem1.FirstInspection = partsBasketCard.FirstInspection;
workOrderItem1.LineCode = partsBasketCard.LineCode;
workOrderItem1.LineName = partsBasketCard.LineName;
workOrderItem1.ProcessCode = partsBasketCard.ProcessCode;
workOrderItem1.ProcessName = partsBasketCard.ProcessName;
workOrderItem1.Character = partsBasketCard.Character;
workOrderItem1.IfClean = partsBasketCard.IfClean;
workOrderItem1.CreateBy = partsBasketCard.UserId;
workOrderItem1.CreateName = partsBasketCard.UserName;
workOrderItem1.UpdateBy = partsBasketCard.UserId;
workOrderItem1.UpdateName = partsBasketCard.UserName;
workOrderItem1.CreateTime = DateTime.Now;
workOrderItem1.UpdateTime = DateTime.Now;
workOrderItem1.Sequcence = Sequcence;
int iFlag = Insert(workOrderItem1);
if (iFlag > 0)
{
return ApiResult.Success(workOrderItem1);
}
else
{
return ApiResult.Error("工单明细创建失败");
}
}
catch (Exception ex)
{
return ApiResult.Error("工单明细创建失败" + ex.ToString());
}
}
}
}