using SlnMesnac.Model.domain; using SlnMesnac.Repository.service; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SlnMesnac.Business.business { public class DatabaseHandleBusniess { private ProdPlanInfoService _prodPlanInfoService; private ProdPlanExecuteUserService _prodPlanExecuteUserService; private ProdOrderInfoService _prodOrderInfoService; private ProdPlanDetailService _prodPlanDetailService; private IRecordStaffRealTimeService _recordStaffRealTimeService; private List prodPlanInfos; public DatabaseHandleBusniess(ProdPlanInfoService prodPlanInfoService, ProdOrderInfoService prodOrderInfoService, ProdPlanExecuteUserService prodPlanExecuteUserService, IRecordStaffRealTimeService recordStaffRealTimeService, ProdPlanDetailService prodPlanDetailService) { _prodPlanInfoService = prodPlanInfoService; _prodOrderInfoService = prodOrderInfoService; prodPlanInfos = _prodPlanInfoService.GetRecordStaffAttendances(); _prodPlanExecuteUserService = prodPlanExecuteUserService; _recordStaffRealTimeService = recordStaffRealTimeService; _prodPlanDetailService = prodPlanDetailService; } /// /// 根据订单编号查询订单信息 /// /// /// public ProdOrderInfo GetProdOrderInfoByOrderCode(string orderCode) { return _prodOrderInfoService.GetProdOrderInfoByOrderCode(orderCode); } /// /// 添加新的工单信息 /// /// /// public void AddNewPlanInfo(string? orderCode,string? stationCode,string? deviceCode,string? processCode,string? importFlag) { var orderInfo = GetProdOrderInfoByOrderCode(orderCode); if (orderInfo != null) { string randomString = GenerateRandomString(14); _prodPlanInfoService.Insert(new ProdPLanInfo() { PlanCode = orderCode + randomString, OrderCode = orderCode, MaterialCode = orderInfo.MaterialCode, MaterialName = orderInfo.MaterialName, BeginTime =DateTime.Now.ToString(), StationCode = stationCode, DeviceCode = deviceCode, PlanAmount = orderInfo.OrderAmount, CompleteAmount = orderInfo.CompleteAmount, PlanStatus = "4", ProcessCode = processCode, ImportFlag = importFlag }); } } /// /// 生成随机字符串 /// /// /// private string GenerateRandomString(int length) { const string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); StringBuilder result = new StringBuilder(); for (int i = 0; i < length; i++) { result.Append(chars[random.Next(chars.Length)]); } return result.ToString(); } /// /// 更新订单状态 /// /// /// /// /// /// /// public void UpdatePlanStatus(string orderCode, string stationCode, string deviceCode, string processCode, string status) { _prodPlanInfoService.UpdatePlanStatus(orderCode, stationCode, deviceCode, processCode, status); } /// /// 插入工单执行人员信息 /// public void InsertPlanExecuteUser(ProdPLanInfo prodPlanInfo,ProdPlanDetail prodPlanDetail,List realTimes) { string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); foreach (var item in realTimes) { ProdPlanExecuteUser prodPlanExecuteUser = new ProdPlanExecuteUser() { PlanCode = prodPlanInfo.PlanCode, OrderCode = prodPlanInfo.OrderCode, ProcessCode = prodPlanInfo.ProcessCode, StationCode = prodPlanInfo.StationCode, StaffId = item.StaffId, CompleteAmount = prodPlanDetail.CompleteAmount, PlanBeginDate = prodPlanDetail.BeginTime, PlanEndDate = prodPlanDetail.EndTime, CreatedBy = prodPlanInfo.CreatedBy, CreatedTime = time, UpdatedBy = prodPlanInfo.UpdatedBy, UpdatedTime = prodPlanInfo.UpdatedTime, BatchNumber = prodPlanDetail.BatchNumber, }; _prodPlanExecuteUserService.Insert(prodPlanExecuteUser); } _prodPlanDetailService.DeleteByPlanCodeBatchNumber(prodPlanDetail.PlanCode, 0); } /// /// 查询所有工单执行人员信息 /// /// public List GetRecordStaffRealTimes() { var list = _recordStaffRealTimeService.Query(); return list; } /// /// 查询本条工单是否完成 /// /// /// /// /// /// /// public ProdPLanInfo SelectPlanStatus(string orderCode, string stationCode, string deviceCode, string processCode, string v) { return _prodPlanInfoService.GetPlanInfoByConditions(orderCode,"","", stationCode,"0").FirstOrDefault(); } /// /// 更新订单信息状态 /// /// /// public void UpdateOrderInfoStatus(string orderCode,string status) { _prodOrderInfoService.UpdateOrderInfoStatus(orderCode,status); } /// /// 删除对应批次的明细和执行人信息 /// /// /// public void DeleteTheBatchDetailAndExecuter(string planCode,int batch) { if (planCode != "" && batch != 0) { bool result = _prodPlanDetailService.DeleteTheBatchNumberByPlanCode(planCode, batch); _prodPlanExecuteUserService.DeleteByPlanCodeAndTheBatchNumber(planCode, batch); } } /// /// 获取班长 /// /// /// public MonitorInfo GetMonitor(string stationCode) { MonitorInfo monitorInfo = new MonitorInfo(); monitorInfo = _recordStaffRealTimeService.GetMonitorInfo(stationCode); return monitorInfo; } /// /// 获取最后一条明细的结束时间 /// public ProdPlanDetail GetLastDetailEndTime(string planCode) { ProdPlanDetail prodPlanDetail = new ProdPlanDetail(); prodPlanDetail = _prodPlanDetailService.GetLastPlanDetailByPlanCode(planCode); return prodPlanDetail; } ///// ///// 设置员工下班时间 ///// //public void SetOffWorkTime(string staffId,string dateTime) //{ // _prodPlanExecuteUserService.SetExecuterOffWorkTime(staffId, dateTime); //} ///// ///// 查询所有计划工位 ///// ///// //public List GetProductLineCodes() //{ // List productLineCodes = new List(); // foreach (var prodPlanInfo in prodPlanInfos) // { // productLineCodes.Add(prodPlanInfo.StationCode); // } // return productLineCodes; //} ///// ///// 查询所有工单编号 ///// ///// //public List GetPlanCodes() //{ // List planCodes = new List(); // foreach (var prodPlanInfo in prodPlanInfos) // { // planCodes.Add(prodPlanInfo.PlanCode); // } // return planCodes; //} ///// ///// 查询所有订单编号 ///// ///// //public List GetOrderCodes() //{ // List orderCodes = new List(); // foreach (var prodPlanInfo in prodPlanInfos) // { // orderCodes.Add(prodPlanInfo.OrderCode); // } // return orderCodes; //} ///// ///// 查询所有物料名称 ///// ///// //public List GetMaterialNames() //{ // List materialNames = new List(); // foreach (var prodPlanInfo in prodPlanInfos) // { // materialNames.Add(prodPlanInfo.MaterialName); // } // return materialNames; //} } }