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;
                }
            }
        }
示例#2
0
 public bool GenConsmixprop(ConsMixprop cm, IList <ConsMixpropItem> cmItemsList)
 {
     if (cs != null)
     {
         return(cs.GenConsMixprop(cm, cmItemsList));
     }
     return(true);
 }
示例#3
0
 /// <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);
 }
示例#4
0
        /// <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;
                }
            }
        }
示例#5
0
        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);
        }
示例#8
0
        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));
        }
示例#9
0
 /// <summary>
 /// 更新配比
 /// </summary>
 /// <param name="cm"></param>
 /// <param name="cmItemsList"></param>
 /// <returns></returns>
 public ResultInfo UpdateConsMixprop(ConsMixprop cm, IList <ConsMixpropItem> cmItemsList)
 {
     return(SendConsmixpropTcp(cm, cmItemsList));
 }