using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Comm.LogInfo; using WIDESEA_Core.EFDbContext; using WIDESEA_Entity.DomainModels; using WIDESEA_WCS.IRepositories; using WIDESEA_WCS.IServices; using WIDESEA_WCS.Repositories; using WIDESEA_WCS.Services; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; namespace WIDESEA_WCS.JobsPart.Common { public class AutoUpdateWork { #region MyRegion //static FreeDB freeDB = new FreeDB(); ///// ///// 自动取空托任务 ///// //public static void HCJCreation() //{ // try // { // List stationinfos = new List(); // for (int i = 1; i <= 3; i++) // { // for (int j = 1; j <= 3; j++) // { // dt_stationinfo stationinfo = new dt_stationinfo(); // stationinfo.id = Guid.NewGuid(); // stationinfo.stationCode = "X0" + i + (i <= 9 ? "00" + i : "0" + i) + (j <= 9 ? "00" + j : "0" + j); // stationinfo.area = "5"; // stationinfo.enable = true; // stationinfo.line = i; // stationinfo.column = j; // stationinfos.Add(stationinfo); // } // } // freeDB.AddRange(stationinfos); // } // catch (Exception ex) // { // throw; // } //} #endregion /// /// 查询已完成工单 /// public static void FinishMesWork() { VOLContext context = new VOLContext(); Idt_mes_headRepository mes_HeadRepository = new dt_mes_headRepository(context); Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context); Idt_management_timeRepository timeRepository = new dt_management_timeRepository(context); var val = timeRepository.Find(x => x.management_name == "FinishMesWork").FirstOrDefault().management_numericalvalue; var mes_heads = mes_HeadRepository.Find(x => x.quantity == x.finishNum || x.CreateTime.AddDays(val) < DateTime.Now).Take(10).ToList(); #region 检测线工单 var mes_head_jcxs = mes_heads.Where(x => x.processCode == "28").ToList(); if (mes_head_jcxs.Count > 0) { foreach (var mes_head in mes_head_jcxs) { AddHtyMesWork(mes_head, mes_HeadRepository); } } #endregion #region 机加工工单 var mes_head_jjgs = mes_heads.Where(x => x.processCode == "17").ToList(); if (mes_head_jjgs.Count > 0) { foreach (var mes_head in mes_head_jjgs) { var inventorys = inventoryRepository.Find(x => x.jobID == mes_head.jobID).ToList(); if (inventorys.Count == mes_head.quantity || inventorys.Count==0) AddHtyMesWork(mes_head, mes_HeadRepository); } var k = "加载完成"; } #endregion } /// /// 已完成工单移入历史 /// public static void AddHtyMesWork(dt_mes_head mes_Head, Idt_mes_headRepository mes_HeadRepository, string compeletor = "system", string operatetype = "自动完成") { try { VOLContext context = new VOLContext(); Idt_mes_detailRepository mes_DetailRepository = new dt_mes_detailRepository(context); Idt_mes_detail_htyRepository mes_DetailRepository_hty = new dt_mes_detail_htyRepository(context); Idt_mes_head_htyRepository mes_Head_HtyRepository = new dt_mes_head_htyRepository(context); var mes_Details = mes_DetailRepository.Find(x => x.jobID == mes_Head.jobID).ToList(); if (mes_Details.Count > 0) { List mes_Details_hty = new List(); foreach (var mes_Detail in mes_Details) { dt_mes_detail_hty mes_Detail_Hty = new dt_mes_detail_hty { billetID = mes_Detail.billetID, compeletor = compeletor, FinishTime = mes_Detail.FinishTime, heatBatchID = mes_Detail.heatBatchID, heatID = mes_Detail.heatID, jobID = mes_Detail.jobID, mes_detail_id = mes_Detail.mes_detail_id, mes_headID = mes_Detail.mes_headID, operatetype = string.IsNullOrEmpty(mes_Detail.Status) ? "超时清理" : operatetype, SN = mes_Detail.SN, Status = mes_Detail.Status, completedate = DateTime.Now, }; mes_Details_hty.Add(mes_Detail_Hty); mes_DetailRepository.Delete(mes_Detail, true); } mes_DetailRepository_hty.AddRange(mes_Details_hty, true); } dt_mes_head_hty mes_Head_Hty = new dt_mes_head_hty() { materialCode = mes_Head.materialCode, area = mes_Head.area, compeletor = compeletor, creator = mes_Head.creator, CreateTime = mes_Head.CreateTime, drawingNo = mes_Head.drawingNo, drawingNoVer = mes_Head.drawingNoVer, jobID = mes_Head.jobID, expectedFinishTime = mes_Head.expectedFinishTime, quantity = mes_Head.quantity, expectedStartTime = mes_Head.expectedStartTime, finishNum = mes_Head.finishNum, FinishTime = mes_Head.FinishTime, maxDiameterDiff = mes_Head.maxDiameterDiff, operatetype = operatetype, processCode = mes_Head.processCode, mes_id = mes_Head.mes_id, skip_op_1 = mes_Head.skip_op_1, skip_op_2 = mes_Head.skip_op_2, skip_op_3 = mes_Head.skip_op_3, stackNoRange = mes_Head.stackNoRange, productDesc = mes_Head.productDesc, productName = mes_Head.productName, reqID = mes_Head.reqID, reqIDLineNo = mes_Head.reqIDLineNo, typeID = mes_Head.typeID, workOrder = mes_Head.workOrder, completedate = DateTime.Now, }; mes_Head_HtyRepository.Add(mes_Head_Hty, true); mes_HeadRepository.Delete(mes_Head, true); WriteDBLog.Success("处理已完成工单", $"工单编号:{mes_Head.jobID}", "PCS", compeletor); } catch (Exception ex) { WriteDBLog.Error("处理已完成工单", $"错误信息:{ex.Message}", "PCS", compeletor); } } } }