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 { /// /// 工单从表(存储工单所需物料明细及物料流转状态)Service业务层处理 /// [AppService(ServiceType = typeof(IWorkOrderItemService), ServiceLifetime = LifeTime.Transient)] public class WorkOrderItemService : BaseService, IWorkOrderItemService { private PlcFirstCodeService plcFirstCodeService = new PlcFirstCodeService(); /// /// 查询工单从表(存储工单所需物料明细及物料流转状态)列表 /// /// /// public PagedInfo GetList(WorkOrderItemQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } public PagedInfo GetWorkOrderItemByCode(WorkOrderItemQueryDto parm) { var predicate = QueryExpByWorkOrderCode(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } public PagedInfo GetListExport(WorkOrderItemQueryDto parm) { var predicate = QueryExpExport(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public WorkOrderItem GetInfo(long Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加工单从表(存储工单所需物料明细及物料流转状态) /// /// /// public WorkOrderItem AddWorkOrderItem(WorkOrderItem model) { return Insertable(model).ExecuteReturnEntity(); } /// /// 修改工单从表(存储工单所需物料明细及物料流转状态) /// /// /// public int UpdateWorkOrderItem(WorkOrderItem model) { return Update(model, true); } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(WorkOrderItemQueryDto parm) { var predicate = Expressionable.Create(); 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; } private static Expressionable QueryExpByWorkOrderCode(WorkOrderItemQueryDto parm) { var predicate = Expressionable.Create(); if (!string.IsNullOrWhiteSpace(parm.WorkOrderCode)) { predicate.And(it => it.WorkOrderCode.Contains(parm.WorkOrderCode)); } return predicate; } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExpExport(WorkOrderItemQueryDto parm) { var predicate = Expressionable.Create(); 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(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()); } } public string GetFirstInspectionResult(String strWorkOrderItemCode) { string strResult = "首检不合格"; var workOrderItem = Queryable().Where(it => it.WorkOrderItemCode == strWorkOrderItemCode).First(); if (workOrderItem != null) { if (workOrderItem.FirstInspectionResult != null && workOrderItem.FirstInspectionResult == 1) { strResult = "首检合格"; } } return strResult; } } }