public IList <SMT_MMLotsSplit> GetEntities(string LotsID)
        {
            string sqlSMTMMLots = @"SELECT CONVERT(VARCHAR,a.IsSplit) AS IsSplit,a.ReceivePK,a.Attribute02 AS SplitStatus,a.MaterialID,b.MaterialDescription,a.HutID,
                                a.Quantity,a.LotQuantity,(SELECT COUNT(*) FROM dbo.LES_REQUEST_RECEIVE 
                                WHERE HutID='{0}')  AS SlotQuantity 
                                FROM dbo.LES_REQUEST_RECEIVE a LEFT JOIN dbo.LES_REQUEST_DETAIL b ON a.DetailPK=b.DetailPK
                                WHERE a.HutID='{1}' AND a.Status=2  ";

            sqlSMTMMLots = string.Format(sqlSMTMMLots, LotsID, LotsID);
            DataTable dtrequest = co_BSC_BO.GetDataTableBySql(sqlSMTMMLots);
            ModelHandler <SMT_MMLotsSplit> modelMaterial   = new ModelHandler <SMT_MMLotsSplit>();
            IList <SMT_MMLotsSplit>        MMLotslist      = modelMaterial.FillModel(dtrequest);
            IList <SMT_MMLotsSplit>        SplitMMLotslist = new List <SMT_MMLotsSplit>();

            if (MMLotslist == null || MMLotslist.Count == 0)
            {
                return(null);
            }
            SplitMMLotslist = MMLotslist.Where(p => p.IsSplit == "1").ToList();
            IList <SMT_MMLotsSplit> SplitMMLotslist1 = new List <SMT_MMLotsSplit>();

            SplitMMLotslist1 = MMLotslist.Where(p => p.IsSplit == "0").ToList();
            if (SplitMMLotslist == null || SplitMMLotslist.Count == 0 || SplitMMLotslist1 == null || SplitMMLotslist1.Count == 0)
            {
                return(null);
            }
            else
            {
                int    s = Convert.ToInt32(SplitMMLotslist1[0].LotQuantity);
                int    a = Convert.ToInt32(SplitMMLotslist1[0].LotQuantity);
                string c = "1";
                foreach (var item in SplitMMLotslist1)
                {
                    item.Quantity = Convert.ToInt32(Convert.ToInt32(item.Quantity) * 1.003);
                    s             = s - Convert.ToInt32(Convert.ToInt32(item.Quantity) * 1.003);
                    if (item.SplitStatus == null)
                    {
                        item.SplitStatus = "0";
                    }
                    item.HutID = item.HutID + "#" + c;
                    c          = Convert.ToString(Convert.ToInt32(c) + 1);
                }
                foreach (var item in SplitMMLotslist)
                {
                    a = a - Convert.ToInt32(item.Quantity);
                }
                SplitMMLotslist1[0].Quantity = a;
                IList <SMT_MMLotsSplit> SplitMMLotslist2 = new List <SMT_MMLotsSplit>();
                for (int i = 0; i < SplitMMLotslist1.Count; i++)
                {
                    SplitMMLotslist2.Add(SplitMMLotslist1[i]);
                }
                for (int i = 0; i < SplitMMLotslist.Count; i++)
                {
                    SplitMMLotslist2.Add(SplitMMLotslist[i]);
                }

                return(SplitMMLotslist2);
            }
        }
        //获得质检类型
        public DataTable GetSamplingRuleType()
        {
            //string sql = @"select [sValue] from SM_CONFIG_KEY where sOwner = 'hand' and sKey = 'SAMPLING_RULE'";
            string sql = @"select [sValue] from SM_CONFIG_KEY where sKey = 'SAMPLING_RULE'";

            return(BSCBO.GetDataTableBySql(sql));
        }
Exemplo n.º 3
0
        public List <VueTreeNode> getClassNodesByType(string typeNode)
        {
            DataTable          classes = null;
            List <VueTreeNode> list    = new List <VueTreeNode>();
            string             sql     = @" select EquipClassID, EquipClass 
                              from EQM_EQUIP_CLASS class 
                             where 1=1 
                               and class.typeKID  = N'" + typeNode + @"'";

            classes = BSCBO.GetDataTableBySql(sql);
            if (classes != null)
            {
                foreach (DataRow row in classes.Rows)
                {
                    VueTreeNode node = new VueTreeNode()
                    {
                        value = Convert.ToString(row["EquipClassID"]),
                        title = Convert.ToString(row["EquipClass"])
                    };
                    list.Add(node);
                }
            }

            return(list);
        }
        public DataTable getLineData()
        {
            DataTable list = null;
            string    Sql  = @"select LineID,LineName from CV_BPM_LINE 
                            group by LineID,LineName";

            list = co_BSC_BO.GetDataTableBySql(Sql);
            return(list);
        }
        public DataTable getClass(EQM_EQUIP_CLASS tp)
        {
            //get后,post传输数据量大,网址后面不会接数据
            DataTable list = null;

            string Sql = @" select distinct EquipClass 
                              from EQM_EQUIP_CLASS 
                             where 1=1 ";

            list = BSCBO.GetDataTableBySql(Sql);
            return(list);
        }
        public DataTable GetPlant(QM_INFRA_INSPECTION_PLAN_QueryParam qp)
        //传入的参数是对象,用Post,不能用Get
        {
            DataTable list = null;
            string    sql  = @"select [PlantName] 
                             from PM_BPM_PLANT 
                            where 1=1";

            list = BSCBO.GetDataTableBySql(sql);

            return(list);
        }
        public DataTable getRelate(EQM_EQUIP_RELATE tp)
        {
            //get后,post传输数据量大,网址后面不会接数据
            DataTable list = null;

            string Sql = @" select distinct Equiprelate 
                              from EQM_EQUIP_RELATE 
                             where 1=1 ";

            list = BSCBO.GetDataTableBySql(Sql);
            return(list);
        }
        public DataTable getBase(EQM_EQUIP_PRO_BASE_INFO tp)
        {
            //get后,post传输数据量大,网址后面不会接数据
            DataTable list = null;

            string Sql = @" select distinct service_type 
                              from EQM_EQUIP_PRO_BASE_INFO 
                             where 1=1 ";

            list = BSCBO.GetDataTableBySql(Sql);
            return(list);
        }
        public DataTable getSpec(EQM_EQUIP_SPEC tp)
        {
            //get后,post传输数据量大,网址后面不会接数据
            DataTable list = null;

            string Sql = @" select distinct EquipSPEC 
                              from EQM_EQUIP_SPEC 
                             where 1=1 ";

            list = BSCBO.GetDataTableBySql(Sql);
            return(list);
        }
        public DataTable getcount(CV_EQM_EQUIP_SPOT_CHECK_QueryParam qp)
        {
            DataTable list = null;

            string Sql = @" select count(*)
                              from CV_EQM_EQUIP_SPOT_CHECK 
                             where 1=1 ";

            if (!string.IsNullOrEmpty(qp.DeviceType))
            {
                Sql += " and DeviceType = N'" + qp.DeviceType + "' ";
            }
            if (!string.IsNullOrEmpty(qp.DeviceName))
            {
                Sql += " and DeviceName = N'" + qp.DeviceName + "' ";
            }
            if (!string.IsNullOrEmpty(qp.DeviceSpecID))
            {
                Sql += " and DeviceSpecID = N'" + qp.DeviceSpecID + "' ";
            }
            list = BSCBO.GetDataTableBySql(Sql);
            return(list);

            //return Request.CreateResponse(HttpStatusCode.OK, Sql);
        }
Exemplo n.º 11
0
        public object GetTeamEmployeeByID(string ID, string TeamGuid)
        {
            try
            {
                //CV_PM_EM_TEAM_EMPLOYEE_QueryParam qryModel = new CV_PM_EM_TEAM_EMPLOYEE_QueryParam();
                //qryModel.EmployeeCardID = ID;
                //IList<CV_PM_EM_TEAM_EMPLOYEE> teamList = cvTeamEmployeeBO.GetEntities(qryModel);
                //if (teamList == null || teamList.Count == 0) //不在任何班组
                //{
                //    return null;
                //}
                //else
                //{
                //    qryModel.EmployeeCardID = null;
                //    qryModel.TeamGuid = teamList[0].TeamGuid;
                //    qryModel.EmployeeStatus = "1";
                //    IList<CV_PM_EM_TEAM_EMPLOYEE> finalList = cvTeamEmployeeBO.GetEntities(qryModel);
                //    return finalList;
                //}
                string sqlwhere = "";
                if (!string.IsNullOrEmpty(TeamGuid))
                {
                    sqlwhere += " and TeamGuid='" + TeamGuid + "'";
                }
                string sql = @" SELECT *FROM CV_PM_EM_TEAM_EMPLOYEE WHERE  
TeamGuid IN (SELECT TeamGuid FROM dbo.PM_EM_TEAM WHERE TeamLeaderCardID=N'{0}' AND RowDeleted=0 )
AND EmployeeStatus='1'  " + sqlwhere;
                sql = string.Format(sql, ID);
                DataTable dt = co_BSC_BO.GetDataTableBySql(sql);
                ModelHandler <CV_PM_EM_TEAM_EMPLOYEE> model = new ModelHandler <CV_PM_EM_TEAM_EMPLOYEE>();
                List <CV_PM_EM_TEAM_EMPLOYEE>         list  = model.FillModel(dt);
                if (list == null || list.Count == 0)
                {
                    return(list);
                }
                else
                {
                    list = list.OrderBy(P => P.TeamName).ToList();
                    return(list);
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "GetTeamEmployeeByID失败:" + ex.Message));
            }
        }
        public string BindingTermSection(IList <CV_PM_BPM_TERMINAL_SECTION> param)
        {
            //检查该工段是否已经绑定该工位
            try
            {
                string alreadyBindTerm = "";
                foreach (var item in param)
                {
                    PM_BPM_TERMINAL_SECTION_QueryParam chkModel = new PM_BPM_TERMINAL_SECTION_QueryParam();
                    chkModel.TerminalGuid = item.TerminalGuid;
                    IList <PM_BPM_TERMINAL_SECTION> bindList = term_sectionBO.GetEntities(chkModel);

                    string sql = "SELECT SectionName FROM PM_BPM_SECTION WHERE  SectionGuid='{0}'";
                    sql = string.Format(sql, item.SectionGuid.ToString());
                    ICO_BSC_BO _CO_BSC_BO = ObjectContainer.BuildUp <ICO_BSC_BO>();
                    DataTable  dt         = _CO_BSC_BO.GetDataTableBySql(sql);
                    if (dt == null || dt.Rows.Count == 0)
                    {
                        alreadyBindTerm += "工位:" + item.TerminalID + ",已绑定";
                    }

                    else
                    {
                        if (bindList.Count != 0)
                        {
                            //如果该工位已经进行了绑定,则记录
                            alreadyBindTerm += "工位:" + item.TerminalID + ",已绑定至:" + dt.Rows[0][0].ToString() + "工段";
                        }
                        else
                        {
                            //如果没有绑定,则添加
                            PM_BPM_TERMINAL_SECTION insrtModel = new PM_BPM_TERMINAL_SECTION();
                            insrtModel.TermSectionGuid = Guid.NewGuid();
                            insrtModel.TerminalGuid    = item.TerminalGuid;
                            insrtModel.SectionGuid     = item.SectionGuid;
                            insrtModel.CreatedOn       = SSGlobalConfig.Now;
                            insrtModel.UpdatedOn       = insrtModel.CreatedOn;
                            term_sectionBO.Insert(insrtModel);
                        }
                    }
                }
                if (!string.IsNullOrEmpty(alreadyBindTerm))
                {
                    //除去末位的逗号
                    alreadyBindTerm.Substring(0, alreadyBindTerm.Length - 2);
                    return("[" + alreadyBindTerm + "],如需要修改,请先解绑!");
                }
                else
                {
                    return("绑定成功!");
                }
            }
            catch (Exception ex)
            {
                return("系统异常:" + ex.Message);
            }
        }
        public DataTable getClass()
        {
            DataTable list = null;
            string    Sql  = @" select distinct EquipClass 
                              from EQM_EQUIP_CLASS 
                             where 1=1 ";

            list = BSCBO.GetDataTableBySql(Sql);
            return(list);
        }
Exemplo n.º 14
0
        public DataTable getType(EQM_EQUIP_SPOT_CHECK_TASK tp)
        {
            //get后,post传输数据量大,网址后面不会接数据
            DataTable list = null;

            string Sql = @" select distinct  
                              from EQM_EQUIP_SPOT_CHECK_TASK 
                             where 1=1 ";

            list = BSCBO.GetDataTableBySql(Sql);
            return(list);
        }
Exemplo n.º 15
0
        public DataTable getcount(CV_EQM_EQUIP_RELATE_SERVICE_QueryParam qp)
        {
            DataTable list = null;

            string Sql = @" select count(*)
                              from CV_EQM_EQUIP_RELATE_SERVICE 
                             where 1=1 
                               and EquipTypeID = N'" + qp.EquipTypeID + "'";

            list = BSCBO.GetDataTableBySql(Sql);
            return(list);

            //return Request.CreateResponse(HttpStatusCode.OK, Sql);
        }
Exemplo n.º 16
0
        public object GetFeedingLocationByTerminalID(string terminalID)
        {
            IList <MM_FEEDING_LOCATION> list = new List <MM_FEEDING_LOCATION>();
            ICO_BSC_BO co_BSC_BO             = ObjectContainer.BuildUp <ICO_BSC_BO>();
            string     sql;

            if (terminalID.Length > 7)
            {
                terminalID = terminalID.Substring(0, 7);
                sql        = @"SELECT * FROM dbo.MM_FEEDING_LOCATION  WHERE FeedingLocation like '{0}_%'";
                sql        = string.Format(sql, terminalID);
            }
            else
            {
                sql = @"SELECT *  FROM dbo.MM_FEEDING_LOCATION ";
                sql = string.Format(sql);
            }
            DataTable dtMaterial = co_BSC_BO.GetDataTableBySql(sql);

            if (dtMaterial == null)
            {
                sql        = @"SELECT *  FROM dbo.MM_FEEDING_LOCATION ";
                sql        = string.Format(sql);
                dtMaterial = co_BSC_BO.GetDataTableBySql(sql);
            }
            foreach (DataRow dr in dtMaterial.Rows)
            {
                MM_FEEDING_LOCATION model = new MM_FEEDING_LOCATION();
                model.ID = Convert.ToInt32(dr["ID"]);
                model.FeedingLocation     = dr["FeedingLocation"].ToString();
                model.Note                = dr["Note"].ToString();
                model.FeedingLocationDesc = dr["FeedingLocationDesc"].ToString();
                list.Add(model);
            }
            return(list);
        }
Exemplo n.º 17
0
        public string ajqxUpQM_Batch_Error(QM_Batch_Error_Param def)
        {
            try
            {
                QM_Batch_Error      defList           = new QM_Batch_Error();
                LES_REQUEST_RECEIVE updateReceiveTime = new LES_REQUEST_RECEIVE();
                string orderID    = "";
                string materialID = "";
                string lotID      = "";
                if (def.IsMoisture == "1" || def.IsMoisture == "是")
                {
                    defList.RowDelete = true;
                    defList.PK        = def.PK;
                    IQM_Batch_ErrorBOibo.UpdateSome(defList);
                    materialID = defList.MaterialID;
                    orderID    = defList.OrderID;
                    lotID      = defList.lotID;
                    string sqlGetReceivePK = @"SELECT ReceivePK FROM dbo.LES_REQUEST_RECEIVE WHERE OrderID='{0}' AND MaterialID='{1}' AND LotID='{2}' and Status=3";
                    sqlGetReceivePK = string.Format(sqlGetReceivePK, orderID, materialID, lotID);
                    DataTable dtReceivePk = co_BSC_BO.GetDataTableBySql(sqlGetReceivePK);
                    if (dtReceivePk == null || dtReceivePk.Rows.Count == 0)
                    {
                    }
                    else
                    {
                        for (int i = 0; i < dtReceivePk.Rows.Count; i++)
                        {
                            updateReceiveTime.ReceivePK   = Convert.ToInt32(dtReceivePk.Rows[i][0]);
                            updateReceiveTime.ReceiveTime = DateTime.Now;
                            ILES_Request_ReceiveBO.UpdateSome(updateReceiveTime);
                            //string updateLesReceiveTime = @"UPDATE dbo.LES_REQUEST_RECEIVE SET ReceiveTime=GETDATE() WHERE ReceivePK='" + dtReceivePk.Rows[i][0] + "'";
                            //updateLesReceiveTime = string.Format(updateLesReceiveTime);
                            //co_BSC_BO.ExecuteNonQueryBySql(updateLesReceiveTime);
                        }
                    }
                }
                else
                {
                    return("当前产品不需要释放。");
                }


                return("OK");
            }
            catch (Exception ex) {
                return("系统内部出现异常:" + ex.Message);
            }
        }
        public void DeleteGroupJobs(Int32 jobGroupPK)
        {
            try
            {
                string sql = String.Format(@"DECLARE	@return_value int
                    EXEC	@return_value = [dbo].[CP_UpdateJobGroupByjobgroupPK]
		                    @JobGroupPK = N'{0}'		                
                    SELECT	'Return Value' = @return_value"    , jobGroupPK);

                DataTable dt = _CO_BSC_BO.GetDataTableBySql(sql);
                //jgBO.Delete(jobGroupPK);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemplo n.º 19
0
        public HttpResponseMessage UpdateTeam(PM_EM_TEAM definitions)
        {
            definitions.UpdatedOn = DateTime.Now;

            string    sql = " SELECT * FROM  PM_EM_TEAM WHERE TeamName=N'" + definitions.TeamName + "' and TeamGuid!='" + definitions.TeamGuid.ToString() + "' ";
            DataTable dt  = co_BSC_BO.GetDataTableBySql(sql);

            if (dt != null)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "已存在相同的班组名称,请更换!"));
            }
            else
            {
                definitions.RowDeleted = false;
                teamBO.Update(definitions);
                return(Request.CreateResponse(HttpStatusCode.OK, "编辑成功"));
            }
        }
        public IList <PM_BPM_LINE> GetAllLine()
        {
            IList <PM_BPM_LINE> list = new List <PM_BPM_LINE>();
            //list = LineBO.GetAll();
            string     sql        = @"SELECT [LineID], [LineName], [LineType], [LineDesc] FROM dbo.PM_BPM_LINE  WHERE RowDeleted = '0' OR RowDeleted is null ";
            ICO_BSC_BO _CO_BSC_BO = ObjectContainer.BuildUp <ICO_BSC_BO>();
            DataTable  dt         = _CO_BSC_BO.GetDataTableBySql(sql);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                PM_BPM_LINE line = new PM_BPM_LINE();
                line.LineID   = dt.Rows[i]["LineID"].ToString();
                line.LineName = dt.Rows[i]["LineName"].ToString();
                line.LineType = dt.Rows[i]["LineType"].ToString();
                line.LineDesc = dt.Rows[i]["LineDesc"].ToString();
                list.Add(line);
            }
            //log.Debug(JsonConvert.SerializeObject(list));
            return(list);
        }
        public string addFirstCheck(AddFirstCheckRequest param)
        {
            string message = "";
            Dictionary <string, string> dict = new Dictionary <string, string>();

            dict.Add("PN", "SJ" + param.snOrderList[0].OrderID);
            DateTime now = SSGlobalConfig.Now;

            CV_QM_FIRSTCHECK_SN snOrder = param.snOrderList[0];
            //先获得首检检验项
            string SubBopID = null;

            if (snOrder.Step == "装配" || snOrder.Step == "检定" || snOrder.Step == "包装")
            {   //查询step是否为包装或者装配,若是,则查询需加上subbopid
                SubBopID = snOrder.Step;
            }
            IList <CV_QM_PROCESSITEM> processItemList = _ICV_QM_PROCESSITEMBO.GetEntitiesByOrderID(snOrder.OrderID, "1", SubBopID);//首检InspectSource = 1

            if (processItemList.Count() == 0)
            {
                message = "NG,无首检检验项信息";
            }
            else
            {
                QM_PROCESS_TOP top = new QM_PROCESS_TOP()
                {
                    Source           = 1,
                    SequenceStatus   = "待检",
                    SapOrderID       = snOrder.SalesOrderID,    //SAP订单
                    WorkOrderID      = snOrder.OrderID,         //MES工单
                    MinSampleSize    = param.minSampleSize,     //最小抽样数量
                    SampleQua        = param.snOrderList.Count, //抽样数量
                    MaterielID       = snOrder.DefID,           //物料编码
                    MaterielVer      = snOrder.DefVer,          //物料版本
                    MaterielDescript = snOrder.DefDescript,     //物料描述
                    PlantID          = snOrder.PlanPlant,       //工厂ID
                    Plant            = snOrder.PlantName,       //工厂名称
                    Step             = snOrder.Step,            //工序
                    Workshop         = snOrder.DepartID,        //车间
                    LineID           = snOrder.LineID,          //产线ID
                    ProdLine         = snOrder.LineName,        //产线名称
                    CreateBy         = param.user,              //创建者
                    CreateTime       = now                      //创建时间
                };

                using (TransactionScope ts = new TransactionScope())
                {
                    top.Sequence = createCode("FirstInspectRule", dict);//首检单号
                    //创建首检单
                    _IQM_PROCESS_TOPBO.Insert(top);
                    //获得刚创建的首检单
                    QM_PROCESS_TOP_QueryParam topParam = new QM_PROCESS_TOP_QueryParam()
                    {
                        Source   = 1,
                        Sequence = top.Sequence
                    };
                    //查询KID
                    top = _IQM_PROCESS_TOPBO.GetEntitiesByQueryParam(topParam)[0];
                    foreach (CV_QM_FIRSTCHECK_SN tmp in param.snOrderList)
                    {
                        QM_PROCESS_MIDDLE middle = new QM_PROCESS_MIDDLE()
                        {
                            KID      = top.KID,
                            Sequence = top.Sequence,
                            SN       = tmp.LotID,
                            SNStatus = "待检"
                        };
                        _IQM_PROCESS_MIDDLEBO.Insert(middle);
                    }
                    //查询KLID
                    IList <QM_PROCESS_MIDDLE> middleList = _IQM_PROCESS_MIDDLEBO.GetByKid(top.KID.Value);
                    //操作底表
                    foreach (QM_PROCESS_MIDDLE middleTmp in middleList)
                    {
                        foreach (CV_QM_PROCESSITEM item in processItemList)
                        {
                            QM_PROCESS_BOTTOM bottom = new QM_PROCESS_BOTTOM()
                            {
                                KLID         = middleTmp.KLID,
                                Sequence     = middleTmp.Sequence,
                                SN           = middleTmp.SN,
                                MaterielID   = top.MaterielID,
                                ItemIndex    = item.InforDetailID,
                                Item         = item.InspectItemDes,
                                ItemStatus   = "待检",
                                ItemProperty = item.InspectItemProperty.Equals("2") ? "定量" : "定性",
                            };

                            if (!string.IsNullOrEmpty(item.TargetValue))
                            {
                                bottom.Target = SafeConvert.ToDouble(item.TargetValue);
                            }

                            if (!string.IsNullOrEmpty(item.UpperLimit))
                            {
                                bottom.UpperBound = SafeConvert.ToDouble(item.UpperLimit);
                            }

                            if (!string.IsNullOrEmpty(item.LowerLimit))
                            {
                                bottom.LowerBound = SafeConvert.ToDouble(item.LowerLimit);
                            }
                            _IQM_PROCESS_BOTTOMBO.Insert(bottom);
                        }
                    }

                    //创建预警信息
                    string    cmd_altsql = string.Format(CultureInfo.InvariantCulture, firstAltSql, top.ProdLine, top.WorkOrderID, top.Sequence);
                    DataTable dt         = bscbo.GetDataTableBySql(cmd_altsql);
                    if (dt.Rows.Count > 0)
                    {
                        //开始推送
                        PM_ALT_MESSAGE msg = alt_messagebo.GetEntity(SafeConvert.ToInt64(dt.Rows[0]["MsgPK"].ToString()));
                        if (alt_bscbo.ExecuteNotify(msg))
                        {
                            message = top.Sequence;
                            ts.Complete();
                        }
                        else
                        {
                            message = "NG,推送失败,请重新提交..";
                        }
                    }
                }
            }
            return(message);
        }
        //获得组织树
        public List <UserGroupNode> getGroupTree(string userID)
        {
            //用nodes集合接收树结构
            List <UserGroupNode> nodes = new List <UserGroupNode>();
            //用户userID查找到所属部门
            IList <CV_PM_WECHAT_USER_DEPARTMENT> myuserdepartmentlist = new List <CV_PM_WECHAT_USER_DEPARTMENT>();
            CV_PM_WECHAT_USER_DEPARTMENT         mydepartment         = new CV_PM_WECHAT_USER_DEPARTMENT()
            {
                UserID = userID
            };

            myuserdepartmentlist = user_departbo.GetUserDepartmentbyuserID(mydepartment);
            if (myuserdepartmentlist != null)
            {
                Dictionary <int, UserGroupLeftNode> departNode = new Dictionary <int, UserGroupLeftNode>();
                DataTable dtRes = null;
                //执行存储过程,通过用户所在部门的DepartmentID查询本部门及以下部门并显示
                for (int i = 0; i < myuserdepartmentlist.Count; i++)
                {
                    string    sql = "Exec dbo.PM_WECHAT_DEPARTMENT_CHILD '" + myuserdepartmentlist[i].DepartmentID + "'";
                    DataTable dt  = _CO_BSC_BO.GetDataTableBySql(sql);
                    if (dtRes == null)
                    {
                        dtRes = dt;
                    }
                    else
                    {
                        dtRes.Merge(dt);
                    }
                }
                if (dtRes != null)
                {
                    //循环查询显示部门的所属用户
                    foreach (DataRow row in dtRes.Rows)
                    {
                        log.Info("====>" + row["Name"]);
                        //查询部门所属用户
                        IList <CV_PM_WECHAT_USER_DEPARTMENT> userList = user_departbo.GetUsersByDepartmentGuid(Guid.Parse(row["DepartmentGuid"].ToString()));
                        if (userList != null && userList.Count > 0)
                        {
                            //获得部门
                            //将显示部门的树属性赋值
                            UserGroupNode currentNode = new UserGroupNode()
                            {
                                title           = row["Name"].ToString(),
                                expand          = false,
                                guid            = Guid.Parse(row["DepartmentGuid"].ToString()),
                                disableCheckbox = false,
                                children        = new List <UserGroupLeftNode>()
                            };
                            //累计加入到键值对里
                            departNode.Add(int.Parse(row["ID"].ToString()), currentNode);

                            //获得用户
                            foreach (CV_PM_WECHAT_USER_DEPARTMENT user in userList)
                            {
                                UserGroupLeftNode userNode = new UserGroupLeftNode()
                                {
                                    title           = user.Name,
                                    userid          = user.UserID,
                                    expand          = false,
                                    pGuid           = user.DepartmentGuid.Value,
                                    disableCheckbox = false,
                                    guid            = user.UserGuid.Value,
                                    isUser          = true
                                };
                                currentNode.children.Add(userNode);
                            }
                            log.Info("department.ParentID.Value-->" + row["ParentID"].ToString());

                            if (departNode.ContainsKey(int.Parse(row["ParentID"].ToString())))
                            {
                                ((UserGroupNode)departNode[int.Parse(row["ParentID"].ToString())]).children.Add(currentNode);
                            }
                            else
                            {
                                nodes.Add(currentNode);
                            }
                        }
                        else
                        {
                            //当前部门无人员
                            UserGroupLeftNode currentNode = new UserGroupLeftNode()
                            {
                                title           = row["Name"].ToString(),
                                expand          = false,
                                guid            = Guid.Parse(row["DepartmentGuid"].ToString()),
                                disableCheckbox = true
                            };

                            if (departNode.ContainsKey(int.Parse(row["ParentID"].ToString())))
                            {
                                ((UserGroupNode)departNode[int.Parse(row["ParentID"].ToString())]).children.Add(currentNode);
                            }
                        }
                    }
                }

                return(nodes);
            }
            else
            {
                return(nodes);
            }
        }
        public string CreateNamePlate(POM_TEMP_ERP_ORDER param)
        {
            try
            {
                if (param == null)
                {
                    return("请选择ERP工单");
                }
                //1.查询数量是否超过限定数量
                IList <MM_LOTS_NAMEPLATE> entities = namePlateBO.GetEntities(param);
                if (entities.Count >= param.Quantity)
                {
                    return("局号已经足够,不允许生成局号");
                }

                string namePlatePro = param.Attribute05 + param.Attribute06; //前置值+后置值
                string PlateStart   = param.Attribute05;                     //前置值
                string PlateEnd     = param.Attribute06;                     //后置值
                string serialNumber = param.Attribute04;                     //流水号
                int    status       = 0;
                if (param.Attribute07 == "流水号前置")
                {
                    status = 1;
                }
                else if (param.Attribute07 == "流水号后置")
                {
                    status = 2;
                }

                if (status == 0 || PlateStart == "" || PlateEnd == "" || serialNumber == "")
                {
                    return("接收信息不全(前置、后置、流水号、类型都不允许为空),请重新操作");
                }

                //2.调存储过程,修改规则
                string sqlRule = @" DECLARE	@return_value int,
		                            @Message nvarchar(255)
                                    EXEC	@return_value = [dbo].[CP_BARCOCODE_NAMEPLATE_CONFIG]
		                            @Status = {0},
		                            @PartStart = N'{1}',
		                            @PartEnd = N'{2}',
		                            @Serial = N'{3}',
		                            @Message = @Message OUTPUT
                                    SELECT	@Message as N'@Message'"    ;
                sqlRule = string.Format(sqlRule, status, PlateStart, PlateEnd, serialNumber);
                DataTable message = co_BSC_BO.GetDataTableBySql(sqlRule);
                if (message.Rows[0][0].ToString() != "")
                {
                    return(message.Rows[0][0].ToString());
                }

                //3.生成局号插入表中
                IList <string> Code;
                Code = pom_ORDER_EXTBO.CreateNameplate((int)param.Quantity, PlateStart, PlateEnd, param.Attribute07);

                DateTime dtLot = SSGlobalConfig.Now;

                //保存到表MM_LOTS_NAMEPLATE
                List <MM_LOTS_NAMEPLATE> list = new List <MM_LOTS_NAMEPLATE>();
                for (int i = 0; i < Code.Count; i++)
                {
                    MM_LOTS_NAMEPLATE entity = new MM_LOTS_NAMEPLATE();
                    entity.NamePlate  = Code[i];
                    entity.Sequence   = i + 1;
                    entity.SapOrderID = param.SapOrderID;
                    entity.CreatedBy  = param.Attribute08;
                    entity.CreatedOn  = dtLot;
                    entity.UpdatedBy  = param.Attribute08;
                    entity.UpdatedOn  = entity.CreatedOn;
                    //namePlateBO.Insert(entity);
                    list.Add(entity);
                }
                if (list == null || list.Count == 0)
                {
                    //do nothing
                }
                else
                {
                    co_BSC_BO.ExcuteSqlTranction(list, "MM_LOTS_NAMEPLATE"); //批量插入
                }

                //修改POM_TEMP_ERP_ORDER状态
                param.IsGenerated = true;
                orderBO.UpdateSome(param);
                return("生成流水号成功");
            }
            catch (Exception ex)
            {
                return(ex.Message.ToString());
            }
        }
Exemplo n.º 24
0
        /// 单条报工
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public string GetEXCPtimeByOrderId(string orderid, string excpTimeGuid) //传入的参数是OrderId
        {
            string retmes = "";

            try
            {
                IAPI_SAP_BO sapBO     = ObjectContainer.BuildUp <IAPI_SAP_BO>();
                ICO_BSC_BO  co_BSC_BO = ObjectContainer.BuildUp <ICO_BSC_BO>();
                //------------------------------------

                string sqlSL = @" SELECT SapOrderID,PersonSdt,Day,StepID FROM CV_POM_ORDERTIME where  excpTimeGuid='" + excpTimeGuid + "'";

                DataTable datatable = co_BSC_BO.GetDataTableBySql(sqlSL);
                if (datatable == null || datatable.Rows.Count == 0)
                {
                    return("未查询到需要报工记录!");
                }
                ModelHandler <Expt> MH            = new ModelHandler <Expt>();
                List <Expt>         listStopOrder = new List <Expt>();
                listStopOrder = MH.FillModel(datatable);
                for (int j = 0; j < listStopOrder.Count; j++)
                {
                    POMOrder_CompletedByTime li         = new POMOrder_CompletedByTime();
                    POM_ORDER_EXCP_TIME      POM_TIME   = new POM_ORDER_EXCP_TIME();
                    IPOM_ORDER_EXCP_TIMEBO   POM_TIMEBO = ObjectContainer.BuildUp <IPOM_ORDER_EXCP_TIMEBO>();


                    string retmessage = "";
                    //获取当前工单的多个BOPID进行多次报工
//                    string FrID = @" SELECT  BOPID FROM dbo.POM_ORDER_EXT  t
//                                    LEFT JOIN dbo.PLM_BOP_LINE_STD b on b.OrderID=t.PomOrderID
//                                    WHERE SapOrderID='" + listStopOrder[j].SapOrderID + @"'
//                                    GROUP BY BOPID ";
//                    DataTable FrIDdt = co_BSC_BO.GetDataTableBySql(FrID);
//                    foreach (DataRow item in FrIDdt.Rows)
//                    {
                    List <POMOrder_CompletedByTime> list = new List <POMOrder_CompletedByTime>();
                    li.SapOrderID = listStopOrder[j].SapOrderID;
                    li.PK         = Guid.NewGuid().ToString();
                    li.PersonSdt  = Convert.ToDecimal(listStopOrder[j].PersonSdt);
                    li.Unit       = "s";
                    li.MachineSdt = 0;
                    li.OtherSdt   = 0;
                    li.DepretSdt  = 0;
                    li.Day        = listStopOrder[j].Day.ToString("yyyy-MM-dd HH:mm:ss");;
                    li.SapStepID  = listStopOrder[j].StepID.ToUpper();
                    list.Add(li);

                    //掉SAP接口
                    ReturnValue rv = sapBO.OrderCompleteByTime(list[j]);
                    if (rv.Success)
                    {
                        POM_TIME.Status = 1;
                        #region MyRegion
                        //POM_TIME.ExcpTimeGuid = Guid.NewGuid();
                        //POM_TIME.Day = date;
                        //POM_TIME.SapOrderID = listStopOrder[j].SapOrderID;
                        //POM_TIME.PersonSdt = Convert.ToDecimal(listStopOrder[j].PersonSdt);
                        //POM_TIME.Message = rv.Message;
                        //POM_TIME.CreatedOn = DateTime.Now;
                        //POM_TIME.Status = 1;
                        //POM_TIMEBO.Insert(POM_TIME);
                        ////StopLineBO.UpdateSome();
                        //for (int i = 0; i < stoplineGuid.Count; i++)
                        //{

                        //    POM_STOPLINE.ExcpStopLineGuid = Guid.NewGuid();
                        //    POM_STOPLINE.ExcpTimeGuid = POM_TIME.ExcpTimeGuid;
                        //    POM_STOPLINE.StopLineGuid = stoplineGuid[i].StopLineGuid;
                        //    POM_STOPLINEBO.Insert(POM_STOPLINE);
                        //    //stopline表的是否报工为true。
                        //    pM_EM_TS_STOPLINE.StopLineGuid = stoplineGuid[i].StopLineGuid;
                        //    pM_EM_TS_STOPLINE.IsReleased = true;
                        //    StopLineBO.UpdateSome(pM_EM_TS_STOPLINE);
                        //}
                        #endregion
                    }
                    else
                    {
                        retmes         += rv.Message;
                        POM_TIME.Status = -1;
                        #region MyRegion
                        //POM_TIME.ExcpTimeGuid = Guid.NewGuid();
                        //POM_TIME.Day = date;
                        //POM_TIME.SapOrderID = listStopOrder[j].SapOrderID;
                        //POM_TIME.PersonSdt = Convert.ToDecimal(listStopOrder[j].PersonSdt);
                        //POM_TIME.Message = rv.Message;
                        //POM_TIME.CreatedOn = DateTime.Now;
                        //POM_TIME.Status = -1;
                        //POM_TIMEBO.Insert(POM_TIME);

                        //for (int i = 0; i < stoplineGuid.Count; i++)
                        //{
                        //    POM_STOPLINE.ExcpStopLineGuid = Guid.NewGuid();
                        //    POM_STOPLINE.ExcpTimeGuid = POM_TIME.ExcpTimeGuid;
                        //    POM_STOPLINE.StopLineGuid = stoplineGuid[i].StopLineGuid;
                        //    POM_STOPLINEBO.Insert(POM_STOPLINE);
                        //    //stopline表的是否报工为true。
                        //    pM_EM_TS_STOPLINE.StopLineGuid = stoplineGuid[i].StopLineGuid;
                        //    pM_EM_TS_STOPLINE.IsReleased = true;
                        //    StopLineBO.UpdateSome(pM_EM_TS_STOPLINE);
                        //}
                        #endregion
                    }
                    // }

                    if (retmes == "")
                    {
                        retmes = "true";
                    }

                    POM_TIME.ExcpTimeGuid = new Guid(excpTimeGuid);
                    POM_TIME.SapOrderID   = listStopOrder[j].SapOrderID;
                    POM_TIME.PersonSdt    = Convert.ToDecimal(listStopOrder[j].PersonSdt);
                    POM_TIME.Message      = retmes;
                    POM_TIMEBO.UpdateSome(POM_TIME);
                }

                return(retmes);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
                return("报工异常:" + ex.Message);
            }
        }