public RespSchedule(IDbName database, int machineId, int workerid) { BeamCutQuery = new BeamCutQuery(database); ScheduleQuery = new ScheduleQuery(database); BuildingQuery = new BuildingQuery(database); var orders = BeamCutQuery.GetBDeviceOrder(machineId, workerid, DateTime.Now.ToString("dd/MM/yyyy")); if (orders == null) { Exception = new RespException(true, "Order is empty", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } List <Schedule> schedules = new List <Schedule>(); foreach (var item in orders) { var temp = ScheduleQuery.GetSchedule(item); if (temp != null) { schedules.Add(temp); } } ScheduleList = new List <Schedule_t>(); foreach (var item in schedules) { ScheduleList.Add(new Schedule_t(database, item)); } Exception = new RespException(false, "Get Order: OK", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); }
public RespSchedule(IDbName database, string line, int month, string poNumber) { try { BeamCutQuery = new BeamCutQuery(database); ScheduleQuery = new ScheduleQuery(database); BuildingQuery = new BuildingQuery(database); var productionLine = BuildingQuery.FindProductionLine(line); if (productionLine == null) { Exception = new RespException(true, "Line name is not found", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } DateTime SearchTime = new DateTime(DateTime.Now.Year, month, DateTime.Now.Day); var scheduleclass = ScheduleQuery.GetScheduleClass(SearchTime); if (scheduleclass == null) { Exception = new RespException(true, "Invalid schedule time", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } var schedules = ScheduleQuery.GetSchedules(poNumber); if (schedules == null) { Exception = new RespException(true, "Sequence have no item", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } //var temp = schedules.Where(i => i.ScheduleClass_Id == scheduleclass.id); //if (temp.Count() > 0) // schedules = temp.ToList(); List <Schedule> newSchedule = new List <Schedule>(); foreach (var item in productionLine) { schedules.Where(i => i.ProductionLine_Id == item.id); if (schedules.Count() > 0) { newSchedule.AddRange(schedules.ToList()); } } newSchedule = newSchedule.Take(15).ToList(); ScheduleList = new List <Schedule_t>(); foreach (var item in newSchedule) { ScheduleList.Add(new Schedule_t(database, item)); } Exception = new RespException(false, "Get schedule: OK", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); } }
// stop cut public RespCutting(IDbName database, int binterfaceId, int beamCounter) { BeamCutQuery = new BeamCutQuery(database); StockQuery = new StockQuery(database); EmployeeQuery = new EmployeeQuery(database); SequenceQuery = new SequenceQuery(database); ScheduleQuery = new ScheduleQuery(database); ComponentQuery = new ComponentQuery(database); try { var bInterface = BeamCutQuery.GetBeamInterfaceById(binterfaceId); if (bInterface == null) { Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_STOP_CUTTING); return; } bInterface.Finish = true; bInterface.BeamCutCounter = beamCounter; bInterface.StopCutTime = DateTime.Now; if (!BeamCutQuery.UpdateBeamInterface(bInterface)) { Exception = new RespException(true, "Can not update BInterface", EKB_SYS_REQUEST.BEAM_STOP_CUTTING); return; } Exception = new RespException(false, "Stop cutting: OK", EKB_SYS_REQUEST.BEAM_STOP_CUTTING); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_STOP_CUTTING); } }
public BDeviceCutTime(IDbName database, int deviceId, int totalCutTime) { BeamCutQuery = new BeamCutQuery(database); var statistic = BeamCutQuery.GetBMachineStatistic(deviceId, DateTime.Now); if (statistic == null) { statistic = BeamCutQuery.AddNewBcutStatistic(deviceId, DateTime.Now); } if (statistic.BDeviceCutTimeRecords != null) { foreach (var item in statistic.BDeviceCutTimeRecords) { TotalCutTime += ShareFuncs.GetInt(item.TotalCutTime); } } var lastRecord = BeamCutQuery.Get_DeviceLastRecord(deviceId); if (lastRecord != null) { DateTime updateTime = (DateTime)lastRecord.UpdateTime; if (updateTime.DayOfYear == DateTime.Now.DayOfYear && updateTime.Minute == DateTime.Now.Minute && updateTime.Hour == DateTime.Now.Hour) { // duplicate update detected Exception = new RespException(false, "The cut time has been recorded", EKB_SYS_REQUEST.CUT_TIME_RECORD); return; } } BDeviceCutTimeRecord record = new BDeviceCutTimeRecord { TotalCutTime = totalCutTime, BeamCutDevice_Id = deviceId, BMachineStatistic_Id = statistic.id, }; if (!BeamCutQuery.AddNewBCutTimeRecord(record)) { Exception = new RespException(true, "Add new record failed", EKB_SYS_REQUEST.CUT_TIME_RECORD); return; } TotalCutTime += totalCutTime; }
public RespSchedule(IDbName database, string line, string poNumber) { try { BeamCutQuery = new BeamCutQuery(database); ScheduleQuery = new ScheduleQuery(database); BuildingQuery = new BuildingQuery(database); var productionLine = BuildingQuery.FindProductionLine(line); if (productionLine == null) { Exception = new RespException(true, "Line name is not found", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } var schedules = ScheduleQuery.GetSchedules(poNumber); if (schedules == null) { Exception = new RespException(true, "Sequence have no item", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } List <Schedule> newSchedule = new List <Schedule>(); foreach (var item in productionLine) { schedules.Where(i => i.ProductionLine_Id == item.id); if (schedules.Count() > 0) { newSchedule.AddRange(schedules.ToList()); } } newSchedule = newSchedule.Take(15).ToList(); ScheduleList = new List <Schedule_t>(); foreach (var item in newSchedule) { ScheduleList.Add(new Schedule_t(database, item)); } Exception = new RespException(false, "Get schedule: OK", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); } }
public BeamInterface(BeamCutInterface BInterface, int place) { InitializeComponent(); try { lbStartTime.Text = BInterface.StartCutTime.ToString(); lbStopTime.Text = BInterface.StopCutTime.ToString(); BeamCutQuery beamCutQuery = new BeamCutQuery(_SERVER.ServerName.Database); ScheduleQuery scheduleQuery = new ScheduleQuery(_SERVER.ServerName.Database); SequenceQuery sequenceQuery = new SequenceQuery(_SERVER.ServerName.Database); BuildingQuery buildingQuery = new BuildingQuery(_SERVER.ServerName.Database); var clone_po = beamCutQuery.GetBeamCutPo(BInterface.BeamCutPo_Id); lbTotalPoCutQty.Text = clone_po.CuttingQuantity.ToString(); lbComponent.Text = clone_po.ComponentRef; var po = sequenceQuery.GetOriginalPo(ShareFuncs.GetInt(BInterface.OriginalPo_Id)); var schedule = scheduleQuery.GetSchedule(ShareFuncs.GetInt(BInterface.Schedule_Id)); if (schedule == null) { if (po != null) { schedule = scheduleQuery.GetSchedule(po); } if (schedule == null) { this.Hide(); Error = true; return; } } lbPlace.Text = place.ToString(); DS_Interface.DataSource = BInterface; DS_Po.DataSource = schedule; lbLine.Text = buildingQuery.GetProductionLine(ShareFuncs.GetInt(schedule.ProductionLine_Id)).LineName; } catch { this.Hide(); Error = true; return; } }
public RespBeamDevice(IDbName database, string sysCode, string name) { try { BeamCutQuery BeamCutQuery = new BeamCutQuery(database); var bdevice = BeamCutQuery.GetBeamCutDevice(sysCode, name); if (bdevice == null) { Exception = new RespException(true, "Beam machine not found", SYS_MODELS._ENUM.EKB_SYS_REQUEST.GET_DEVICE_INFO); return; } SystemCode = bdevice.MachineCode; Name = bdevice.Name; id = bdevice.id; } catch (Exception e) { Exception = new RespException(true, e.Message, SYS_MODELS._ENUM.EKB_SYS_REQUEST.GET_DEVICE_INFO); } }
public RespSize(IDbName _database, int seq1Id, int seq2Id) { try { SequenceQuery sequenceQuery = new SequenceQuery(_database); BeamCutQuery beamCutQuery = new BeamCutQuery(_database); List <OriginalPOsequence> SeqList = new List <OriginalPOsequence>(); var CloneSizes = beamCutQuery.GetBeamCutSizes(seq1Id, seq2Id); if (CloneSizes == null) { Exception = new RespException(true, "CloneSizes is NULL", EKB_SYS_REQUEST.BEAM_GET_SIZE); return; } SizeList = new List <Size_t>(); foreach (var size in CloneSizes) { SizeList.Add(new Size_t { SizeId = ShareFuncs.GetInt(size.SizeId), SizeQty = ShareFuncs.GetInt(size.SizeQty), CuttingQty = ShareFuncs.GetInt(size.CutQty), Finish = (size.SizeQty == size.CutQty ? true : false) }); RespTotalCuttingQty += ShareFuncs.GetInt(size.CutQty); RespTotalQty += ShareFuncs.GetInt(size.SizeQty); } Exception = new RespException(false, "Get Size: OK", EKB_SYS_REQUEST.BEAM_GET_SIZE); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_SIZE); } }
public MachineProgressViewer(BeamCutDevice bmachine) { try { InitializeComponent(); bdevice = new BeamCutDevice(); bdevice = bmachine; BeamCutQuery = new BeamCutQuery(_SERVER.ServerName.Database); var orders = BeamCutQuery.GetAllBDeviceOrders(bmachine.id); OrderTab.Controls.Clear(); OrderDetail = new OrderDetail(orders); OrderTab.Controls.Add(OrderDetail); OrderDetail.Dock = DockStyle.Fill; if (startTime.Value.DayOfYear > stopTime.Value.DayOfYear) { return; } UpdateProgress(); } catch { } }
public RespPoInfo(IDbName _database, int scheduleId, int originalPoId, int componentId) { try { ScheduleQuery scheduleQuery = new ScheduleQuery(_database); SequenceQuery sequenceQuery = new SequenceQuery(_database); BeamCutQuery beamCutQuery = new BeamCutQuery(_database); SequenceQuery SequenceQuery = new SequenceQuery(_database); ComponentQuery componentQuery = new ComponentQuery(_database); var schedule = scheduleQuery.GetSchedule(scheduleId); var originalPo = SequenceQuery.GetOriginalPo(originalPoId); var shoeComponent = componentQuery.GetShoeComponent(componentId); if (schedule == null) { if (originalPo == null) { Exception = new RespException(true, "Can not find schedule", EKB_SYS_REQUEST.BEAM_GET_PO_INFO); return; } schedule = scheduleQuery.GetSchedule(originalPo); if (schedule == null) { Exception = new RespException(true, "Can not find schedule", EKB_SYS_REQUEST.BEAM_GET_PO_INFO); return; } } if (shoeComponent == null) { Exception = new RespException(true, "Can not find component", EKB_SYS_REQUEST.BEAM_GET_PO_INFO); return; } PoInfo = new PoInfo(_database, schedule); if (originalPo == null) { Exception = new RespException(true, "Empty sequence file", EKB_SYS_REQUEST.BEAM_GET_PO_INFO); return; } var clonePo = beamCutQuery.FindClonePo(originalPo.id, componentId); if (clonePo != null) { ClonePoId = clonePo.id; SeqList = new List <SeqInfo>(); foreach (var item in clonePo.BeamCutSeqs) { SeqList.Add(new SeqInfo { id = item.id, CuttingQty = ShareFuncs.GetInt(item.CutQty), SeqNo = ShareFuncs.GetInt(item.SequenceNo), SeqQty = ShareFuncs.GetInt(item.SequenceQty), Finish = item.Finish == true ? true : false, }); } } else { var bClonePo = beamCutQuery.CloneOriginalPo(originalPo, shoeComponent); if (bClonePo == null) { Exception = new RespException(true, "An error occured while requesting po information", EKB_SYS_REQUEST.BEAM_GET_PO_INFO); return; } ClonePoId = bClonePo.id; SeqList = new List <SeqInfo>(); foreach (var item in bClonePo.BeamCutSeqs) { SeqList.Add(new SeqInfo { id = item.id, CuttingQty = ShareFuncs.GetInt(item.CutQty), SeqNo = ShareFuncs.GetInt(item.SequenceNo), SeqQty = ShareFuncs.GetInt(item.SequenceQty), Finish = item.Finish == true ? true : false, }); } } Exception = new RespException(false, "Get Poinfo: OK", EKB_SYS_REQUEST.BEAM_GET_PO_INFO); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_PO_INFO); } }
public RespSchedule(IDbName database, string line, int month, int startId) { try { BeamCutQuery = new BeamCutQuery(database); ScheduleQuery = new ScheduleQuery(database); BuildingQuery = new BuildingQuery(database); var productionLine = BuildingQuery.FindProductionLine(line); DateTime SearchTime = new DateTime(DateTime.Now.Year, month, DateTime.Now.Day); if (productionLine == null) { Exception = new RespException(true, "Line name is not found", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } var schedules = ScheduleQuery.GetSchedules(SearchTime); if (schedules == null) { Exception = new RespException(true, $"Can not find the schedule for month:{month}", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); return; } List <Schedule> newSchedule = new List <Schedule>(); foreach (var item in productionLine) { var temp = schedules.Where(i => i.ProductionLine_Id == item.id); if (temp.Count() > 0) { newSchedule.AddRange(temp.ToList()); } } ScheduleList = new List <Schedule_t>(); var tempSch = newSchedule.Where(i => i.id > startId).Take(15).ToList(); if (tempSch.Count() > 0) { newSchedule = newSchedule.Where(i => i.id > startId).Take(15).ToList(); } else { newSchedule = newSchedule.Take(15).ToList(); } ScheduleList = new List <Schedule_t>(); foreach (var item in newSchedule) { var bInterface = BeamCutQuery.GetBeamInterfaceByScheduleId(item.id); var sch = new Schedule_t(database, item); if (bInterface != null) { sch.Cutting = true; } ScheduleList.Add(sch); } Exception = new RespException(false, "Get schedule: OK", EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_SCHEDULE); } }
public RespFinishAll(IDbName database, int bInterfaceId, int cutCounter) { BeamCutQuery BeamCutQuery = new BeamCutQuery(database); StockQuery StockQuery = new StockQuery(database); EmployeeQuery EmployeeQuery = new EmployeeQuery(database); SequenceQuery SequenceQuery = new SequenceQuery(database); ScheduleQuery ScheduleQuery = new ScheduleQuery(database); ComponentQuery ComponentQuery = new ComponentQuery(database); try { var bInterface = BeamCutQuery.GetBeamInterfaceById(bInterfaceId); if (bInterface == null) { Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.FINISH_ALL); return; } var clonePo = BeamCutQuery.GetBeamCutPo(ShareFuncs.GetInt(bInterface.BeamCutPo_Id)); if (clonePo == null) { Exception = new RespException(true, "Invalid clone Po Id", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } int addQty = 0; foreach (var seq in clonePo.BeamCutSeqs) { var currentSeq = BeamCutQuery.GetBeamCutSeq(seq.id); if (currentSeq.SequenceNo < bInterface.SequenceNo + bInterface.TotalSequence) { foreach (var size in seq.BeamCutSizes) { addQty += ShareFuncs.GetInt(size.SizeQty - size.CutQty); size.CutQty = size.SizeQty; size.Finished = true; size.LastUpdate = DateTime.Now; BeamCutQuery.UpdateBeamSize(size); } currentSeq.CutQty += addQty; currentSeq.LastUpdate = DateTime.Now; currentSeq.Finish = true; BeamCutQuery.UpdateBeamCutSeq(currentSeq); } } bInterface.BeamCutCounter += cutCounter; bInterface.CuttingQty += addQty; bInterface.StopCutTime = DateTime.Now; if (!BeamCutQuery.UpdateBeamInterface(bInterface)) { Exception = new RespException(true, "Can not update BInterface", EKB_SYS_REQUEST.FINISH_ALL); return; } } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.FINISH_ALL); } }
public BLastCut(IDbName database, int bdeviceId, int bInterfaceId) { BeamCutQuery = new BeamCutQuery(database); StockQuery = new StockQuery(database); EmployeeQuery = new EmployeeQuery(database); SequenceQuery = new SequenceQuery(database); ScheduleQuery = new ScheduleQuery(database); ComponentQuery = new ComponentQuery(database); try { var bInterface = BeamCutQuery.GetLastInterface(bdeviceId); if (bInterface == null) { Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT); bInterface = BeamCutQuery.GetBeamInterfaceById(bInterfaceId); if (bInterface == null) { Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT); return; } } var bpo = BeamCutQuery.GetBeamCutPo(ShareFuncs.GetInt(bInterface.BeamCutPo_Id)); if (bpo == null) { Exception = new RespException(true, "Can not find clone Po", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT); return; } var originalPo = SequenceQuery.GetOriginalPo(ShareFuncs.GetInt(bInterface.OriginalPo_Id)); if (originalPo == null) { Exception = new RespException(true, "Can not find Po", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT); return; } BinterfaceId = bInterface.id; PoNumber = originalPo.PoNumber; StartSeq = ShareFuncs.GetInt(bInterface.StartSeqNo); StopSeq = ShareFuncs.GetInt(bInterface.StopSeqNo); if (bInterface.StartCutTime != null) { StartTime = ((DateTime)bInterface.StartCutTime).ToString("hh:mm tt, dd/MM/yyyy"); } if (bInterface.StopCutTime != null) { StopTime = ((DateTime)bInterface.StopCutTime).ToString("hh:mm tt, dd/MM/yyyy"); } CutQty = ShareFuncs.GetInt(bInterface.CuttingQty); CutTime = ShareFuncs.GetInt(bInterface.BeamCutCounter); Employee_Id = ShareFuncs.GetInt(bInterface.Employee_Id); Schedule_Id = ShareFuncs.GetInt(bInterface.Schedule_Id); BeamCutPo_Id = ShareFuncs.GetInt(bInterface.BeamCutPo_Id); BeamCutStartSeq_Id = ShareFuncs.GetInt(bInterface.BeamCutStartSeq_Id); Component_Id = ShareFuncs.GetInt(bpo.Component_Id); BeamCutStopSeq_Id = ShareFuncs.GetInt(bInterface.BeamCutStopSeq_Id); Finish = bInterface.Finish != null ? (bool)bInterface.Finish : false; PoQty = ShareFuncs.GetInt(originalPo.Quantity); OriginalPo_Id = ShareFuncs.GetInt(bInterface.OriginalPo_Id); var component = ComponentQuery.GetShoeComponent(ShareFuncs.GetInt(bpo.Component_Id)); if (component != null) { string comp = ShareFuncs.ConvertToUnSign(component.Reference); Component = comp; } Exception = new RespException(false, "Get last cut: OK", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_LAST_CUT); } }
public OrderResult(BeamCutPo beamCutPo) { try { InitializeComponent(); BeamCutPo = new BeamCutPo(); BeamCutPo = beamCutPo; BeamCutQuery beamCutQuery = new BeamCutQuery(_SERVER.ServerName.Database); ComponentQuery componentQuery = new ComponentQuery(_SERVER.ServerName.Database); SequenceQuery sequenceQuery = new SequenceQuery(_SERVER.ServerName.Database); var originalPo = sequenceQuery.GetOriginalPo(beamCutPo.OriginalPo_Id); var component = componentQuery.GetShoeComponent(BeamCutPo.Component_Id); label2.Text = component != null ? component.Reference : ""; var Binterface = beamCutQuery.GetBeamInterface(beamCutPo.id); int totalCutQty = 0; int totalCutTime = 0; bool first = false; bool last = false; double totalTime = 0; DateTime?start = null, stop = null, last_update = null; foreach (var item in Binterface) { if (!first) { if (item.StartCutTime != null) { start = (DateTime)item.StartCutTime; label9.Text = start != null?start.ToString() : ""; } first = true; } totalCutTime += ShareFuncs.GetInt(item.BeamCutCounter); totalCutQty += ShareFuncs.GetInt(item.CuttingQty); if (item.StopCutTime != null) { label7.Text = item.StopCutTime.ToString(); } try { if (item.StopCutTime != null) { stop = (DateTime)item.StopCutTime; } else { stop = (DateTime)item.LastConfirmSize; } label11.Text = stop != null ? ((DateTime)stop).ToString() : ""; totalTime = ((DateTime)stop - (DateTime)start).TotalSeconds; label13.Text = $"{((int)totalTime / 60)}min {(int)totalTime % 60}sec"; label15.Text = $"{(int)(totalCutQty * 60 / totalTime)} c/min"; } catch { } } label3.Text = totalCutQty.ToString(); label5.Text = totalCutTime.ToString(); TotalCutQty = totalCutQty; } catch { } }
// start cutting construction public RespCutting(IDbName database, int deviceId, int workerId, int clonePoId, int seq1Id, int seq2Id, int binterfaceId) { BeamCutQuery = new BeamCutQuery(database); StockQuery = new StockQuery(database); EmployeeQuery = new EmployeeQuery(database); SequenceQuery = new SequenceQuery(database); ScheduleQuery = new ScheduleQuery(database); ComponentQuery = new ComponentQuery(database); try { var worker = EmployeeQuery.GetEmployee(workerId); if (worker == null) { Exception = new RespException(true, "Invalid worker Id", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } var bdevice = BeamCutQuery.GetBeamCutDevice(deviceId); if (bdevice == null) { Exception = new RespException(true, "Invalid device Id", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } var clonePo = BeamCutQuery.GetBeamCutPo(clonePoId); if (clonePo == null) { Exception = new RespException(true, "Invalid clone Po Id", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } var originalPo = SequenceQuery.GetOriginalPo(clonePo.OriginalPo_Id); if (originalPo == null) { Exception = new RespException(true, "Can not find original po", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } var component = ComponentQuery.GetShoeComponent(clonePo.Component_Id); if (component == null) { Exception = new RespException(true, "Can not find component", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } var schedule = ScheduleQuery.GetSchedule(originalPo); if (schedule == null) { Exception = new RespException(true, "Can not find schedule", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } var order = BeamCutQuery.GetBDeviceOrder(originalPo, deviceId); var startSeq = BeamCutQuery.GetBeamCutSeq(seq1Id); var stopSeq = BeamCutQuery.GetBeamCutSeq(seq2Id); if (startSeq == null || stopSeq == null) { Exception = new RespException(true, "Invalid clone Seq Id", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } int[] qty = BeamCutQuery.GetTotalSelectSequenceQty(startSeq, stopSeq); if (qty == null) { qty = new int[] { 0, 0 } } ; int bId = binterfaceId; BeamCutInterface binterface = BeamCutQuery.GetBeamInterfaceById(binterfaceId); int scheduleId = 0; if (schedule != null) { scheduleId = schedule.id; } if (binterface == null) { binterface = new BeamCutInterface { Employee_Id = workerId, BeamCutDevice_Id = deviceId, BeamCutPo_Id = clonePoId, OriginalPo_Id = clonePo.OriginalPo_Id, BeamCutStartSeq_Id = seq1Id, BeamCutStopSeq_Id = seq2Id, TotalSelectedQty = qty[0], TotalSelectCutQty = qty[1], Schedule_Id = scheduleId, StartSeqNo = startSeq.SequenceNo, StopSeqNo = stopSeq.SequenceNo, StartCutTime = DateTime.Now, CuttingQty = 0, BeamCutCounter = 0, BDeviceOrder_Id = order != null ? order.id : 0, }; var beamInterface = BeamCutQuery.AddNewBeamCutInterface(binterface); if (beamInterface == null) { Exception = new RespException(true, "Add new BInterface error", EKB_SYS_REQUEST.BEAM_START_CUTTING); return; } bId = beamInterface.id; } StockMeasure stockMeasure = StockQuery.GetStockMeasure(schedule); if (stockMeasure == null) { var stock = StockQuery.AddNewStockMeasure(schedule); } Exception = new RespException(false, "Start cutting: OK", EKB_SYS_REQUEST.BEAM_START_CUTTING); InterfaceId = bId; } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_START_CUTTING); } }
public RespConfirmSize(IDbName database, int bInterfaceId, int sizeId, int sizeQty) { try { BeamCutQuery = new BeamCutQuery(database); StockQuery = new StockQuery(database); EmployeeQuery = new EmployeeQuery(database); SequenceQuery = new SequenceQuery(database); ScheduleQuery = new ScheduleQuery(database); ComponentQuery = new ComponentQuery(database); var beamInterface = BeamCutQuery.GetBeamInterfaceById(bInterfaceId); if (beamInterface == null) { Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE); return; } var bdevice = BeamCutQuery.GetBeamCutDevice(beamInterface.BeamCutDevice_Id); if (bdevice == null) { Exception = new RespException(true, "Can not find beam cut device", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE); return; } var clonePo = BeamCutQuery.GetBeamCutPo(ShareFuncs.GetInt(beamInterface.BeamCutPo_Id)); if (clonePo == null) { Exception = new RespException(true, "Can not find clone Po", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE); return; } var seq1 = BeamCutQuery.GetBeamCutSeq(ShareFuncs.GetInt(beamInterface.BeamCutStartSeq_Id)); var seq2 = BeamCutQuery.GetBeamCutSeq(ShareFuncs.GetInt(beamInterface.BeamCutStopSeq_Id)); int cutQty = 0; int totalQty = 0; int currentQty = 0; int addQty = 0; int seqTotalQty = 0; int seqQty = 0; foreach (var seq in clonePo.BeamCutSeqs) { if (seq.SequenceNo >= seq1.SequenceNo && seq.SequenceNo <= seq2.SequenceNo) { if (seq.Finish == false) { var sizes = BeamCutQuery.GetBeamCutSize(seq.id); int seqcutQty = ShareFuncs.GetInt(seq.CutQty); foreach (var size in sizes) { if (size.SizeId == sizeId) { if (size.Finished != true && sizeQty > 0) { int oldval = ShareFuncs.GetInt(size.CutQty); int addval = ShareFuncs.GetInt(size.SizeQty) - oldval; if (sizeQty >= addval) { addval = ShareFuncs.GetInt(size.SizeQty) - oldval; size.CutQty = size.SizeQty; size.Finished = true; seqcutQty += addval; sizeQty -= addval; addQty += addval; } else { size.CutQty += sizeQty; seqcutQty += sizeQty; addQty += sizeQty; sizeQty = 0; } size.BeamCutDevice_Id = beamInterface.BeamCutDevice_Id; size.Worker_Id = beamInterface.Employee_Id; size.LastUpdate = DateTime.Now; BeamCutQuery.UpdateBeamSize(size); } totalQty += ShareFuncs.GetInt(size.SizeQty); cutQty += ShareFuncs.GetInt(size.CutQty); } currentQty += ShareFuncs.GetInt(size.CutQty); } seq.BeamCutDevice_Id = beamInterface.BeamCutDevice_Id; seq.Worker_Id = beamInterface.Employee_Id; seq.CutQty = seqcutQty; seq.LastUpdate = DateTime.Now; seq.Finish = seq.CutQty == seq.SequenceQty ? true : false; BeamCutQuery.UpdateBeamCutSeq(seq); } seqTotalQty += ShareFuncs.GetInt(seq.CutQty); seqQty += ShareFuncs.GetInt(seq.SequenceQty); } } if (seqTotalQty == seqQty) { StopCutting = true; } int oldVal = beamInterface.CuttingQty != null ? (int)beamInterface.CuttingQty : 0; beamInterface.LastConfirmSize = DateTime.Now; beamInterface.CuttingQty = addQty + oldVal; BeamCutQuery.UpdateBeamInterface(beamInterface); clonePo.LastUpdate = DateTime.Now; clonePo.CuttingQuantity += addQty; if (clonePo.CuttingQuantity == clonePo.PoQuantity) { clonePo.Finish = true; clonePo.FinishTime = DateTime.Now; } BeamCutQuery.UpdateBeamCutPo(clonePo); var statistic = BeamCutQuery.GetBMachineStatistic(ShareFuncs.GetInt(beamInterface.BeamCutDevice_Id), DateTime.Now); if (statistic == null) { statistic = BeamCutQuery.AddNewBcutStatistic(ShareFuncs.GetInt(beamInterface.BeamCutDevice_Id), DateTime.Now); } BDeviceCutTimeRecord record = new BDeviceCutTimeRecord { TotalCutTime = 0, BeamCutDevice_Id = bdevice.id, ConfirmQuantity = addQty, BMachineStatistic_Id = statistic.id, }; if (!BeamCutQuery.AddNewBCutTimeRecord(record)) { Exception = new RespException(true, "Add new record failed", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE); } int temp = statistic.TotalCutQty != null ? (int)statistic.TotalCutQty : 0; statistic.TotalCutQty = temp + addQty; BeamCutQuery.UpdateBStatistic(statistic); RespTotalCuttingQty = ShareFuncs.GetInt(beamInterface.CuttingQty); SizeId = sizeId; CutQty = cutQty; Finish = (totalQty == cutQty ? true : false); Exception = new RespException(false, "Confirm Size: OK", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE); } catch (Exception e) { Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE); } }
static void Main(string[] args) { IDbName database = new RealDb(); SequenceQuery sequenceQuery = new SequenceQuery(database); ScheduleQuery ScheduleQuery = new ScheduleQuery(database); var po = sequenceQuery.GetOriginalPo(3987); var schedule = ScheduleQuery.GetSchedule(po); //IDbName database = new FakeDb(); while (true) { string s = Console.ReadLine().ToLower(); if (s.Contains("update-database")) { SERVER_INITIALIZE.DbSeed DB = new SERVER_INITIALIZE.DbSeed(database); DB.Runing(); } if (s.Contains("update-schedule")) { Console.WriteLine("Start checking..."); AutoScheule AutoSchedule = new AutoScheule(database); AutoSchedule.Update(); Console.WriteLine("Stop checking..."); } if (s.Contains("get-schedule")) { ScheduleQuery scheduleQuery = new ScheduleQuery(database); var schedules = scheduleQuery.GetSchedules("012").Take(5); foreach (var item in schedules) { Console.WriteLine($"Id:{item.id}, Number: {item.PoNumber}"); } Console.WriteLine("Please select scheule to clone"); string num = Console.ReadLine(); int scheduleId = 0; int.TryParse(num, out scheduleId); BeamCutQuery beamCutQuery = new BeamCutQuery(database); var results = beamCutQuery.CloneOriginalPo(scheduleId); if (results != null) { foreach (var item in results) { Console.WriteLine($"Original Id: {item.OriginalPo_Id}, Comp Id: {item.Component_Id}"); foreach (var seq in item.BeamCutSeqs) { Console.WriteLine($"Seq Id: {seq.id}, Seq No: {seq.SequenceNo}, Seq Qty: {seq.SequenceQty}"); foreach (var size in seq.BeamCutSizes) { Console.WriteLine($"Size Id: {size.SizeId},Beam Po Id: {size.BeamCutPo_Id}, Beam Seq Id: {size.BeamCutSeq_Id}"); } } } } } if (s.Contains("request-schedule")) { var schedules = new RespSchedule(database, "L3", 12, 0); Console.WriteLine(JsonConvert.SerializeObject(schedules)); } if (s.Contains("request-poinfo")) { //var schedules = new EKB_WEBSERVER.API.RuntimeModels.RespPoInfo(database, 2541 ,341); } if (s.Contains("request-size")) { var sizes = new RespSize(database, 3, 9, 341); Console.WriteLine(JsonConvert.SerializeObject(sizes)); } if (s.Contains("request-lastcut")) { //Console.WriteLine(JsonConvert.SerializeObject(new BLastCut(database, 4))); } if (s.Contains("info")) { //var sizes = new EKB_WEBSERVER.API.RuntimeModels.RespPoInfo(database, 2540, 322); //Console.WriteLine(JsonConvert.SerializeObject(sizes)); } if (s.Contains("cuttime")) { var temp = new BDeviceCutTime(database, 1, 6); } } }