public bool ChangeSilo(string S_SiloID, string D_SiloID, string[] ids) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { foreach (string id in ids) { ConsMixprop obj = this.m_UnitOfWork.GetRepositoryBase <ConsMixprop>().Get(id); ConsMixpropItem tmp1 = this.Query().Where(p => p.ConsMixpropID == id && p.SiloID == S_SiloID).First(); decimal val1 = tmp1.Amount; ConsMixpropItem tmp2 = this.Query().Where(p => p.ConsMixpropID == id && p.SiloID == D_SiloID).First(); decimal val2 = tmp2.Amount; tmp1.Amount = val2; tmp2.Amount = val1; this.Update(tmp1); this.Update(tmp2); } tx.Commit(); return(true); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message); throw; } } }
public bool GenConsmixprop(ConsMixprop cm, IList <ConsMixpropItem> cmItemsList) { if (cs != null) { return(cs.GenConsMixprop(cm, cmItemsList)); } return(true); }
/// <summary> /// 修改控制系统配比 /// </summary> /// <param name="cm"></param> /// <param name="cmItemsList"></param> /// <returns></returns> public ResultInfo UpdateConsMixprop(ConsMixprop cm, IList <ConsMixpropItem> cmItemsList) { if (cs != null) { return(cs.UpdateConsMixprop(cm, cmItemsList)); } return(_TrueResult); }
/// <summary> /// CustMixprop表数据导入到ConsMixprop表 /// </summary> /// <param name="sid">CustMixprop表主键ID</param> /// <returns></returns> public bool CU2CO(string sid, string did) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { CustMixprop obj = this.m_UnitOfWork.GetRepositoryBase <CustMixprop>().Get(sid); IConsMixpropRepository m_cons = this.m_UnitOfWork.ConsMixpropRepository; IList <ProductLine> plList = this.m_UnitOfWork.GetRepositoryBase <ProductLine>() .Query() .Where(m => m.IsUsed) .ToList(); ConsMixprop newobj = new ConsMixprop(); foreach (ProductLine pl in plList) { ConsMixprop tempobj = new ConsMixprop(); if (did.Length > 0) { tempobj.ID = did; } tempobj.ConStrength = obj.ConStrength; tempobj.FormulaID = obj.ID; tempobj.IsSlurry = obj.CementType == "混凝土" ? false : true; tempobj.ImpGrade = obj.ImpGrade; tempobj.SCRate = obj.SCRate; tempobj.ProductLineID = pl.ID; newobj = m_cons.Add(tempobj); IList <CustMixpropItem> list = obj.CustMixpropItems; foreach (CustMixpropItem item in list) { foreach (SiloProductLine sp in pl.SiloProductLines) { ConsMixpropItem temp = new ConsMixpropItem(); temp.ConsMixprop = tempobj; temp.ConsMixpropID = tempobj.ID; if (sp.Silo.StuffInfo.StuffType.ID == item.StuffInfo.StuffType.ID) { temp.Amount = (decimal)item.Amount * (decimal)sp.Rate; temp.Silo = sp.Silo; temp.SiloID = sp.Silo.ID; this.m_UnitOfWork.GetRepositoryBase <ConsMixpropItem>().Add(temp); } } } } tx.Commit(); return(true); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message); throw; } } }
public bool Import(string id) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { bool result = true; ProductRecord obj = this.Get(id); ShippingDocument shipdoc = this.m_UnitOfWork.ShippingDocumentRepository.Get(obj.ShipDocID); ConsMixprop cm = this.m_UnitOfWork.ConsMixpropRepository.Get(shipdoc.ConsMixpropID); List <ConsMixpropItem> list = this.m_UnitOfWork.ConsMixpropItemRepository.Query().Where(m => m.ConsMixpropID == cm.ID && m.Amount > 0).ToList(); ThreadID tid; PublicService ps = new PublicService(); foreach (ConsMixpropItem c in list) { ProductRecordItem tmp = new ProductRecordItem(); tmp.ActualAmount = obj.ProduceCube * c.Amount; tmp.TheoreticalAmount = obj.ProduceCube * c.Amount; tmp.SiloID = c.SiloID; tmp.StuffID = c.Silo.StuffInfo.ID; tmp.ProductRecordID = id; tmp.ErrorValue = 0; tmp.ProductLineID = obj.ProductLineID; this.m_UnitOfWork.GetRepositoryBase <ProductRecordItem>().Add(tmp); tid = new ThreadID(); tid.currentDate = DateTime.Now; tid.typeID = tmp.StuffID; //主材id tid.typename = "0"; //主材 ps.ThreadID.Add(tid); } tx.Commit(); return(result); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message); throw new Exception(ex.Message); } } }
public override void Update(ConsMixpropItem entity, System.Collections.Specialized.NameValueCollection form) { try { ConsMixpropItem obj = this.Get(entity.ID); obj.Amount = entity.Amount; ConsMixprop cons = this.m_UnitOfWork.ConsMixpropRepository.Get(obj.ConsMixprop.ID); var DispatchLists = this.m_UnitOfWork.GetRepositoryBase <DispatchList>().Query().Where(p => (p.TaskID == cons.TaskID && p.BetonFormula == obj.ConsMixpropID && p.IsRunning == true && p.IsCompleted == false)).ToList(); if (DispatchLists.Count > 0) { logger.Error("任务单号为:" + cons.TaskID + "在生产时被修改配比"); } ProductLine pl = this.m_UnitOfWork.GetRepositoryBase <ProductLine>().Get(cons.ProductLineID); IList <SiloProductLine> silos = pl.SiloProductLines; foreach (SiloProductLine sp in silos) { if (sp.Silo.ID == obj.Silo.ID) { int order = sp.OrderNum; decimal amount = entity.Amount; Type cmType = cons.GetType(); cmType.GetProperty(string.Format("S{0}_wet", order).ToString()).SetValue(cons, amount, null); } } cons.SynStatus = 0; this.m_UnitOfWork.ConsMixpropRepository.Update(cons, null); //this.m_UnitOfWork.Flush(); this.m_UnitOfWork.ConsMixpropItemRepository.Update(obj, null); this.m_UnitOfWork.Flush(); } catch (Exception ex) { logger.Error(ex.Message); throw; } }
public ActionResult ChangeSiloByDuringDate(string ProductLineID, string S_SiloID, string D_SiloID, string BeginDate, string EndDate) { //先找出给定日期范围内的任务单 IList <ProduceTask> ptlist = this.service.ProduceTask.Query().Where(m => m.NeedDate > Convert.ToDateTime(BeginDate) && m.NeedDate < Convert.ToDateTime(EndDate)).ToList(); IList <string> ptlistids = ptlist.Select(p => p.ID).ToList(); IList <ConsMixprop> cmlist = this.service.ConsMixprop.Query().Where(m => ptlistids.Contains(m.TaskID) && m.ProductLineID == ProductLineID).ToList(); string[] cmidlist = cmlist.Select(c => c.ID).ToArray(); ActionResult ar = ChangeSilo(S_SiloID, D_SiloID, cmidlist); ResultInfo ri = (ResultInfo)ar.GetType().GetProperty("Data").GetValue(ar, null); if (ri.Result == true) { foreach (string id in cmidlist) { ConsMixprop cm = this.service.ConsMixprop.Get(id); cm.SynStatus = 1; this.service.ConsMixprop.Update(cm, null); } } return(ar); }
ResultInfo SendConsmixpropTcp(ConsMixprop cm, IList <ConsMixpropItem> cmItems) { string IP = GetControlSystemIP(cm.ProductLineID); //未指定该生产线IP,不使用TCP通讯,始终返回true; //if (string.IsNullOrEmpty(IP)) if (true) { logger.WarnFormat("未配置该生产线[{0}]的IP,不使用TCP通讯[UpdateDispatchListTcp],直接返回true。", cm.ProductLineID); return(new ResultInfo { Result = true, Message = "未配置该生产线IP,不使用TCP通讯。" }); } DataTable dtcm = new DataTable(); dtcm.Columns.Add("ID"); dtcm.Columns.Add("PTaskListID"); dtcm.Columns.Add("ProductLineID"); dtcm.Columns.Add("FormulaName"); dtcm.Columns.Add("SeepLevel"); dtcm.Columns.Add("FlexStrength"); dtcm.Columns.Add("AdditiveRate"); dtcm.Columns.Add("WaterGlue"); dtcm.Columns.Add("SandRate"); dtcm.Columns.Add("FType"); dtcm.Columns.Add("MixingTime"); dtcm.Columns.Add("Volume"); dtcm.Columns.Add("XZBool"); dtcm.Columns.Add("XZRecord"); dtcm.Columns.Add("Version"); dtcm.Columns.Add("CreateTime"); dtcm.Columns.Add("UpdateTime"); dtcm.Columns.Add("CreaterID"); dtcm.Columns.Add("UpdaterID"); dtcm.Columns.Add("Status"); DataRow Dr = dtcm.NewRow(); Dr["ID"] = cm.ID; Dr["PTaskListID"] = cm.TaskID; Dr["ProductLineID"] = "00000" + cm.ProductLineID;// 系统中数据库已经将机组线号改成8位 //Dr["ProductLineID"] = cm.ProductLineID; Dr["FormulaName"] = cm.ConStrength; Dr["SeepLevel"] = null; Dr["FlexStrength"] = null; Dr["AdditiveRate"] = 0.00; Dr["WaterGlue"] = cm.WCRate; Dr["SandRate"] = cm.SCRate; Dr["FType"] = cm.IsSlurry ? 2 : 1; Dr["MixingTime"] = cm.MixingTime; Dr["Volume"] = cm.Weight; Dr["XZBool"] = null; Dr["XZRecord"] = null; Dr["Version"] = 1; Dr["CreateTime"] = cm.BuildTime.ToString("yyyy-MM-dd HH:mm:ss"); Dr["UpdateTime"] = Convert.ToDateTime(cm.ModifyTime).ToString("yyyy-MM-dd HH:mm:ss"); Dr["CreaterID"] = cm.Builder; Dr["UpdaterID"] = cm.Modifier; Dr["Status"] = 0; dtcm.Rows.Add(Dr); DataTable dtcmitems = new DataTable(); dtcmitems.Columns.Add("ID"); dtcmitems.Columns.Add("FormulaMessageID"); dtcmitems.Columns.Add("SiloID"); dtcmitems.Columns.Add("StuffID"); dtcmitems.Columns.Add("TypeAmount"); dtcmitems.Columns.Add("Version"); dtcmitems.Columns.Add("Status"); foreach (ConsMixpropItem cmItem in cmItems) { DataRow DrcmItem = dtcmitems.NewRow(); DrcmItem["ID"] = cmItem.ID; DrcmItem["FormulaMessageID"] = cmItem.ConsMixpropID; DrcmItem["SiloID"] = cmItem.SiloID; DrcmItem["StuffID"] = cmItem.Silo.StuffID; DrcmItem["TypeAmount"] = cmItem.Amount; DrcmItem["Version"] = 1; DrcmItem["Status"] = 0; dtcmitems.Rows.Add(DrcmItem); } string CMD = "201"; string Num = IP + ":" + DateTime.Now.ToString("yyyyMMddHHmmss"); string XML = TcpIpHelper.CombinSendXML(Num, 1, CMD, "FormulaItems", dtcmitems.Rows.Count, "", dtcm, dtcmitems); return(TcpIpHelper.TcpSend(XML, CMD, IP)); }
/// <summary> /// 更新配比 /// </summary> /// <param name="cm"></param> /// <param name="cmItemsList"></param> /// <returns></returns> public ResultInfo UpdateConsMixprop(ConsMixprop cm, IList <ConsMixpropItem> cmItemsList) { return(SendConsmixpropTcp(cm, cmItemsList)); }