示例#1
0
        /// <summary>
        /// 通过Id删除实体
        /// </summary>
        public int DelStuById(long id)
        {
            var res = 0;
            List <SYS_Student> allStus = (List <SYS_Student>)GetSchoolEntities("stu");
            SYS_Student        obj     = allStus.Where(x => x.ID == id).FirstOrDefault();

            if (null != obj)
            {
                UnitOfWork.Repository <SYS_Student>().DeleteEntity(obj);
                res = UnitOfWork.CommitAsync().Result;
            }
            return(res);
        }
        /// <summary>
        /// 手动添加考勤记录
        /// </summary>
        public int AddStuAttManually(long stuId, byte attType, string attTime, string attTemp, string attRemark, byte isSendWxMsg = 1)
        {
            var res = 0;
            List <SYS_Student> allStus = (List <SYS_Student>)GetSchoolEntities("stu");
            SYS_Student        sObj    = allStus.Where(x => x.ID == stuId).FirstOrDefault();

            if (sObj != null)
            {
                DateTime             aTime = DateTime.Parse(attTime);
                SYS_StudentAttRecord sar   = new SYS_StudentAttRecord()
                {
                    SchoolId    = mlUser.School.ID,
                    MasterId    = stuId,
                    AttType     = attType,
                    AttTime     = aTime,
                    AttTimeStr  = aTime.ToString("yyyyMMddHHmmssfff"),
                    AttWay      = (byte)AttWay.手动添加,
                    Temperature = attTemp,
                    Remark      = attRemark
                };
                UnitOfWork.Repository <SYS_StudentAttRecord>().AddEntity(sar);
                var addOk = UnitOfWork.CommitAsync().Result;
                if (addOk > 0)
                {
                    //修改考勤状态
                    if (attType == (byte)AttType.签出)
                    {
                        sObj.AttStatus = (byte)CurrentAttStatus.离校;
                    }
                    else
                    {
                        sObj.AttStatus = (byte)CurrentAttStatus.在校;
                    }
                    UnitOfWork.Repository <SYS_Student>().UpdateEntity(sObj);

                    //推送
                    if (isSendWxMsg == 1)
                    {
                        //查找学生家长
                        List <FK_Stu_Parent> fks = UnitOfWork.Repository <FK_Stu_Parent>().GetEntitiesAsync(x => x.SchoolId == sObj.SchoolId && x.StuId == sObj.ID).Result;
                        if (null != fks && fks.Count > 0)
                        {
                            var pWxPInfo  = UnitOfWork.Repository <Wx_PublicInfo>().GetEntitiesAsync(x => x.Type == 1).Result.FirstOrDefault();
                            var wxpInfoId = pWxPInfo == null ? 0 : pWxPInfo.ID;
                            if (mlUser.School.WxPublicInfoId != null && mlUser.School.WxPublicInfoId > 0)
                            {
                                wxpInfoId = (int)mlUser.School.WxPublicInfoId;
                            }
                            var wxPubInfo = UnitOfWork.Repository <Wx_PublicInfo>().GetEntitiesAsync(x => x.ID == wxpInfoId).Result.FirstOrDefault();
                            foreach (var fk in fks)
                            {
                                //推送消息
                                if (null != wxPubInfo)
                                {
                                    // 需要从Cookie中获取
                                    ModelWxMsg <ModelWmAttendance> wxMsg = new ModelWxMsg <ModelWmAttendance>();
                                    wxMsg = JsonFileProvider.Instance.GetSettings <ModelWxMsg <ModelWmAttendance> >();
                                    wxMsg.data.first.value = string.Format(wxMsg.data.first.value, (AttType)attType);
                                    wxMsg.touser           = fk.OpenId;
                                    wxMsg.url = mWxSetting.PubUrl_Host + "/WxRelated/Center/AttDetail?attId=" + sar.ID;
                                    wxMsg.data.keyword1.value = sObj.StuName;
                                    wxMsg.data.keyword2.value = DateTime.Now.ToString();
                                    wxMsg.data.keyword3.value = mlUser.School.SchoolName;
                                    ModelWmResult wmResult = WXOAuthApiHelper.SendTmplMessage(wxPubInfo.AccessToken, wxMsg);
                                    if (null == wmResult || wmResult.msgid <= 0)
                                    {
                                        LogHelper.Error("推送错误:" + wmResult.errmsg);
                                    }
                                }
                            }
                        }
                    }
                }
                res = addOk + UnitOfWork.CommitAsync().Result;
            }
            return(res);
        }
示例#3
0
        /// <summary>
        /// 批量导入学生
        /// </summary>
        public string ImportStus(int classId, string fileName)
        {
            var res           = "数据格式有误";
            var totalRowCount = 0;
            var stuCount      = 0;
            var repeatStuStr  = "";
            var repeatCardStr = "";

            try
            {
                DataTable dt          = ExcelHelper.ImportExcel(fileName);
                var       nameCol     = 0;
                var       isNameColOk = false;
                var       cls         = UnitOfWork.Repository <SYS_Class>().GetEntitiesAsync(x => x.ID == classId && x.SchoolId == mlUser.School.ID).Result.FirstOrDefault();
                if (null != cls && dt.Rows.Count > 1)
                {
                    var allStus = (List <SYS_Student>)GetSchoolEntities("stu");
                    totalRowCount = dt.Rows.Count - 1;
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        DataRow dr = dt.Rows[i];
                        if (!isNameColOk)
                        {
                            for (int j = 0; j < 10; j++)
                            {
                                //定位姓名所在列号
                                if (dr[j].ToString().Contains("姓名"))
                                {
                                    nameCol     = j;
                                    isNameColOk = true;
                                    break;
                                }
                            }
                        }
                        else
                        {
                            //新建学生
                            byte sex    = 1;
                            var  name   = dr[nameCol].ToString();
                            var  phone  = dr[nameCol + 1].ToString();
                            var  oldStu = allStus.Where(x => x.StuName == name && x.Phone == phone && x.SchoolId == mlUser.School.ID && x.Status == (byte)StuStatus.正常).FirstOrDefault();
                            if (oldStu == null)
                            {
                                if (dr[nameCol + 2].ToString().Contains("女"))
                                {
                                    sex = 2;
                                }
                                var stu = new SYS_Student
                                {
                                    StuName    = name,
                                    SchoolId   = mlUser.School.ID,
                                    ClassId    = classId,
                                    Grade      = cls.Grade,
                                    Phone      = phone,
                                    Sex        = sex,
                                    StuNo      = dr[nameCol + 3].ToString(),
                                    Address    = dr[nameCol + 4].ToString(),
                                    Birthday   = DateTime.Parse(dr[nameCol + 5].ToString()),
                                    Status     = (byte)StuStatus.正常,
                                    AttStatus  = (byte)CurrentAttStatus.未签到,
                                    CreateTime = DateTime.Now
                                };
                                UnitOfWork.Repository <SYS_Student>().AddEntity(stu);
                                stuCount++;

                                //新建卡
                                var totalCol = dr.ItemArray.Count();
                                if (totalCol > 5)
                                {
                                    var cardNoList = new List <string>();

                                    for (var k = 1; k < totalCol - 5; k++)
                                    {
                                        int cardNo    = 0;
                                        var cardNoStr = dr[nameCol + 5 + k].ToString();
                                        if (cardNoStr.Length > 3 && int.TryParse(cardNoStr, out cardNo))
                                        {
                                            cardNoList.Add(cardNoStr);
                                        }
                                        else
                                        {
                                            break;
                                        }
                                    }
                                    if (cardNoList.Count > 0)
                                    {
                                        //先提交学生到数据库-->得到学生ID
                                        var isOk = UnitOfWork.CommitAsync().Result;
                                        if (isOk > 0)
                                        {
                                            //开始建卡
                                            foreach (var cNo in cardNoList)
                                            {
                                                var oldCard = UnitOfWork.Repository <SYS_Card>().GetEntitiesAsync(x => x.CardNo == cNo && x.SchoolId == mlUser.School.ID).Result
                                                              .FirstOrDefault();
                                                if (oldCard == null)
                                                {
                                                    var card = new SYS_Card
                                                    {
                                                        SchoolId     = mlUser.School.ID,
                                                        CardMasterId = stu.ID,
                                                        CardNo       = cNo,
                                                        CardType     = (byte)CardType.学生卡,
                                                        Status       = (byte)CardStatus.正常,
                                                        CreateTime   = DateTime.Now
                                                    };
                                                    UnitOfWork.Repository <SYS_Card>().AddEntity(card);
                                                }
                                                else
                                                {
                                                    repeatCardStr += stu.StuName + ":" + cNo + "  ";
                                                }
                                            }
                                            UnitOfWork.Commit();
                                        }
                                    }
                                }
                            }
                            else//同一个学校学生信息重复
                            {
                                repeatStuStr += oldStu.StuName + "  ";
                            }
                        }
                    }
                    UnitOfWork.Commit();
                    if (repeatStuStr.Length > 0)
                    {
                        repeatStuStr = "<b class='text-danger'>" + repeatStuStr + "</b>";
                    }
                    else
                    {
                        repeatStuStr = "无";
                    }
                    if (repeatCardStr.Length > 0)
                    {
                        repeatCardStr = "<b class='text-danger'>" + repeatCardStr + "</b>";
                    }
                    else
                    {
                        repeatCardStr = "无";
                    }

                    res = "<div>操作OK,完成导入学生数:<b class='text-success'>" + stuCount +
                          "</b></div><div>重复学生导入失败:" + repeatStuStr +
                          "</div><div>重复卡号建卡失败:" + repeatCardStr + "</div>";
                }
                dt.Dispose();
            }
            catch (Exception ex)
            {
                res = "错误:" + ex.Message;
            }

            GC.Collect();
            System.IO.File.Delete(fileName);
            return(res);
        }
示例#4
0
        /// <summary>
        /// 新增或修改学生(type->1:新增,2:修改)
        /// </summary>
        public string AddOrModifyStu(byte type, string entity)
        {
            var res = "操作失败";

            if (entity.Length > 6)
            {
                List <SYS_Class> classes = (List <SYS_Class>)GetSchoolEntities("class");
                SYS_Student      obj     = JsonHelper.JsonToTByKey <SYS_Student>(entity, "Student");
                List <string>    cardNos = JsonHelper.JsonToTByKey <List <string> >(entity, "Cards");

                if (null != obj)
                {
                    SYS_Class clas = classes.Where(x => x.ID == obj.ClassId).FirstOrDefault();
                    if (type == 1)//新增
                    {
                        obj.SchoolId   = mlUser.School.ID;
                        obj.Status     = (byte)StuStatus.正常;
                        obj.Grade      = clas.Grade;
                        obj.AttStatus  = (byte)CurrentAttStatus.未签到;
                        obj.CreateTime = DateTime.Now;

                        var oldStu = UnitOfWork.Repository <SYS_Student>().GetEntitiesAsync(x => x.StuName == obj.StuName && x.Phone == obj.Phone && x.SchoolId == obj.SchoolId && x.Status == (byte)StuStatus.正常).Result.FirstOrDefault();
                        var isOk   = 0;
                        if (oldStu == null)
                        {
                            UnitOfWork.Repository <SYS_Student>().AddEntity(obj);
                            isOk = UnitOfWork.CommitAsync().Result;
                            if (isOk > 0)
                            {
                                res = "OK,学生添加成功";
                            }
                        }
                        else
                        {
                            res = "学生信息重复,无法添加\r\n";
                        }
                        //建卡
                        var stuOldCards = UnitOfWork.Repository <SYS_Card>().GetEntitiesAsync(x => x.CardMasterId == obj.ID && x.CardType == (byte)CardType.学生卡).Result;//该学生已有卡
                        if (isOk > 0 && null != cardNos && cardNos.Count > 0)
                        {
                            var repeatCardStr = "";
                            foreach (var cNo in cardNos)
                            {
                                if (stuOldCards.FindIndex(delegate(SYS_Card card) { return(card.CardNo == cNo); }) < 0)
                                {
                                    var oldCard = UnitOfWork.Repository <SYS_Card>().GetEntitiesAsync(x => x.CardNo == cNo && x.SchoolId == mlUser.School.ID)
                                                  .Result.FirstOrDefault();
                                    if (oldCard == null)
                                    {
                                        SYS_Card newCard = new SYS_Card
                                        {
                                            CardNo       = cNo,
                                            CardMasterId = obj.ID,
                                            SchoolId     = mlUser.School.ID,
                                            CardType     = (byte)CardType.学生卡,
                                            Status       = (byte)CardStatus.正常,
                                            CreateTime   = DateTime.Now
                                        };
                                        UnitOfWork.Repository <SYS_Card>().AddEntity(newCard);
                                        isOk = UnitOfWork.CommitAsync().Result;
                                    }
                                    else
                                    {
                                        repeatCardStr += cNo + " ";
                                    }
                                }
                            }
                            if (repeatCardStr.Length > 0)
                            {
                                res = "警告:学生添加成功,但是卡" + repeatCardStr + "已存在,无法添加";
                            }
                        }
                    }
                    else//修改
                    {
                        UnitOfWork.Repository <SYS_Student>().UpdateEntity(obj);
                        var isOk = UnitOfWork.CommitAsync().Result;
                        if (isOk > 0)
                        {
                            res = "OK,学生修改成功";
                        }
                        else
                        {
                            res = "学生信息修改失败\r\n";
                        }
                        ///建卡
                        //检索该学生已有卡
                        var stuOldCards = UnitOfWork.Repository <SYS_Card>().GetEntitiesAsync(x => x.CardMasterId == obj.ID && x.CardType == (byte)CardType.学生卡).Result;
                        if (isOk > 0 && null != cardNos && cardNos.Count > 0)
                        {
                            var repeatCardStr = "";
                            foreach (var cNo in cardNos)
                            {
                                if (stuOldCards.FindIndex(delegate(SYS_Card card) { return(card.CardNo == cNo); }) < 0)
                                {
                                    var oldCard = UnitOfWork.Repository <SYS_Card>().GetEntitiesAsync(x => x.CardNo == cNo && x.SchoolId == mlUser.School.ID && x.Status == (byte)CardStatus.正常)
                                                  .Result.FirstOrDefault();
                                    if (oldCard == null)
                                    {
                                        SYS_Card newCard = new SYS_Card
                                        {
                                            CardNo       = cNo,
                                            CardMasterId = obj.ID,
                                            SchoolId     = mlUser.School.ID,
                                            CardType     = (byte)CardType.学生卡,
                                            Status       = (byte)CardStatus.正常,
                                            CreateTime   = DateTime.Now
                                        };
                                        UnitOfWork.Repository <SYS_Card>().AddEntity(newCard);
                                        isOk = UnitOfWork.CommitAsync().Result;
                                    }
                                    else
                                    {
                                        repeatCardStr += cNo + " ";
                                    }
                                }
                            }
                            if (repeatCardStr.Length > 0)
                            {
                                res = "警告:卡" + repeatCardStr + "已存在,无法添加";
                            }
                        }
                    }
                }
            }
            return(res);
        }