/// <summary>
 /// 保存实体数据.
 /// </summary>
 public void Save(InstrumentWaitSendModel model)
 {
     if (model.AutoId == 0)
     {
         DBProvider.InstrumentWaitSendDAO.Add(model);
     }
     else
     {
         DBProvider.InstrumentWaitSendDAO.Update(model);
     }
 }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult IsHasRemind()
        {
            int count = 0;

            #region 过期仪器提醒
            StringBuilder sqlWhere = new StringBuilder();
            sqlWhere.Append("1=1");
            if (!LoginHelper.LoginUserAuthorize.ContainsKey("Instrument-CheckAll".ToLower()))
            {
                sqlWhere.AppendFormat(" and {0}", Global.Business.ServiceProvider.UserManageDepartService.GetSQL2MyMangeDepart("BelongDepart"));
            }
            sqlWhere.AppendFormat(" and '{0:yyyy-MM-dd}'>DueEndDate and ManageLevel !='C' and RecordState={1}", DateTime.Now, UtilConstants.InstrumentState.过期禁用.GetHashCode());

            IList <Instrument.Common.Models.InstrumentModel> overTimeList = ServiceProvider.InstrumentService.GetAllInstrumentListByWhere(sqlWhere.ToString());
            //当前用户下已加入清单但未送检的仪器
            IList <InstrumentWaitSendModel> preSendList             = ServiceProvider.InstrumentWaitSendService.GetByUserId(LoginHelper.LoginUser.UserId);
            InstrumentWaitSendModel         instrumentWaitSendModel = null;

            foreach (Instrument.Common.Models.InstrumentModel item in overTimeList)
            {
                instrumentWaitSendModel = preSendList.SingleOrDefault(i => i.InstrumentId.Equals(item.InstrumentId));
                if (instrumentWaitSendModel != null)
                {
                    continue;
                }
                count++;
                break;
            }
            #endregion

            #region 软件过期提醒
            if (count == 0)
            {
                string PublishKey = WebUtils.GetSettingsValue("PublishDate");
                if (string.IsNullOrEmpty(PublishKey) == true)
                {
                    PublishKey = Global.Common.GlobalConstants.PublishDate;
                }
                else
                {
                    PublishKey = SSOHelper.Decrypt(PublishKey);
                }
                DateTime publishDate = DateTime.ParseExact(PublishKey, "yyyy-MM-dd", null);
                count = new TimeSpan(DateTime.Now.Ticks - (publishDate.AddYears(1).Ticks)).Days;
            }
            #endregion

            JsonResult jr = Json(new
            {
                hasremind = count > 0?true:false
            }, JsonRequestBehavior.AllowGet);
            return(jr);
        }
Example #3
0
 public string AddToShoppingCart(string jobNo, string barCode, string accessToKen)
 {
     try
     {
         UserModel user        = null;
         string    Checkresult = CheckAccess(accessToKen, jobNo, ref user);
         if (Checkresult != "OK")
         {
             return(Checkresult);
         }
         InstrumentModel instrument = ServiceProvider.InstrumentService.GetByBarCode(barCode);
         if (instrument == null)
         {
             return(ToolsLib.Utility.CommonUtils.JsonSerialize(new { Msg = "仪器不存在!" }));
         }
         if (instrument.InstrumentForm == Instrument.Common.Constants.InstrumentForm.固定资产.GetHashCode())
         {
             return(ToolsLib.Utility.CommonUtils.JsonSerialize(new { Msg = "固定资产不能送检!" }));
         }
         bool result = ServiceProvider.InstrumentWaitSendService.ExistsInstrument(instrument.InstrumentId, user.UserId);
         if (result)
         {
             return(ToolsLib.Utility.CommonUtils.JsonSerialize(new { Msg = "仪器已存在待送清单中!" }));
         }
         InstrumentWaitSendModel model = new InstrumentWaitSendModel();
         model.InstrumentId = instrument.InstrumentId;
         model.UserId       = user.UserId;
         ServiceProvider.InstrumentWaitSendService.Save(model);
         return(ToolsLib.Utility.CommonUtils.JsonSerialize(new { Msg = "OK" }));
     }
     catch (Exception ex)
     {
         log.Error(ex);
         return(ToolsLib.Utility.CommonUtils.JsonSerialize(new { Msg = ex.Message }));
     }
 }
 /// <summary>
 /// 更新一条数据.
 /// </summary>
 public void Update(InstrumentWaitSendModel model)
 {
     DBProvider.dbMapper.Update("Instrument_WaitSend.Update", model);
 }
 /// <summary>
 /// 增加一条数据.
 /// </summary>
 public void Add(InstrumentWaitSendModel model)
 {
     DBProvider.dbMapper.Insert("Instrument_WaitSend.Insert", model);
 }
Example #6
0
        /// <summary>
        /// 仪器送检
        /// 仪器手机App接口和网页功能公用方法
        /// </summary>
        /// <param name="instrumentIds">以逗号分隔的仪器标识(未加密)</param>
        /// <param name="orderJson">送检单Json数据(送检人SendUser,App和网页分别独立赋值)</param>
        /// <returns></returns>
        public string SendOrder(string instrumentIds, string orderJson, string OrgName, string UserName, int UserId)
        {
            string result = "";
            //组装数据
            JObject orderObj         = JObject.Parse(orderJson);
            var     instrumentIdArr  = instrumentIds.Split(',');
            var     instrumentIdList = instrumentIdArr.Select(l => Convert.ToInt32(l)).ToList();
            IList <InstrumentModel>         instrumentList         = ServiceProvider.InstrumentService.GetByIdList(instrumentIdList);                            //对应的仪器列表
            IList <InstrumentWaitSendModel> instrumentWaitSendList = ServiceProvider.InstrumentWaitSendService.GetByInstrumentIdsList(instrumentIdList, UserId); //对应的送检仪器备注
            //单号
            string orderNumber = ServiceProvider.OrderService.GenerateUniqueOrderNumber();
            //组装送检仪器MD5Code字典
            Dictionary <int, string> dictionaryMd5 = new Dictionary <int, string>();

            foreach (int instrumentId in instrumentIdList)
            {
                dictionaryMd5.Add(instrumentId, Guid.NewGuid().ToString());
            }
            IList <Global.Common.Models.ParamModel> paramList = Global.Business.ServiceProvider.ParamService.GetAll();

            Global.Common.Models.ParamModel company = paramList.SingleOrDefault(t => t.ParamCode == Constants.SysParamType.CompanyInfo);
            if (null == company)
            {
                company = new Global.Common.Models.ParamModel();
            }
            Global.Common.Models.ParamItemModel CompanyName = company.itemsList.SingleOrDefault(s => s.ParamItemName.Equals("公司名称"));
            Global.Common.Models.ParamItemModel CompanyCode = company.itemsList.SingleOrDefault(s => s.ParamItemName.Equals("公司编号"));

            orderObj.Add("OrderNumber", orderNumber);
            orderObj.Add("CompanyName", CompanyName == null ? "" : CompanyName.ParamItemValue);
            orderObj.Add("CompanyCode", CompanyCode == null ? "" : CompanyCode.ParamItemValue);
            //送检人部门

            orderObj.Add("SendUserOrgName", OrgName);
            orderObj.Add("InstrumentCount", instrumentList.Count);
            //orderObj.Add("SendUser", LoginHelper.LoginUser.UserName);//送检人

            //仪器Json数据组装
            JArray projectJArr = new JArray();
            int    maxLen      = int.Parse(string.IsNullOrEmpty(WebUtils.GetSettingsValue("SendOrderLength")) ? "1000" : WebUtils.GetSettingsValue("SendOrderLength"));//一次送检的最大仪器数量
            int    leftCout    = instrumentList.Count % maxLen;
            int    count       = 0;
            InstrumentWaitSendModel instrumentWaitSendModel = null;

            foreach (var item in instrumentList)
            {
                instrumentWaitSendModel = instrumentWaitSendList.SingleOrDefault(I => I.InstrumentId.Equals(item.InstrumentId));
                count++;
                JObject projectObj = new JObject();
                projectObj.Add("CertificationNumber", item.CertificateNo);
                projectObj.Add("InstrumentName", item.InstrumentName);
                projectObj.Add("Specification", item.Specification);
                projectObj.Add("ManageNumber", item.ManageNo);
                projectObj.Add("MadeNumber", item.SerialNo);
                projectObj.Add("InspectDate", item.DueStartDate);
                projectObj.Add("DueEndDate", item.DueEndDate);
                projectObj.Add("InspectOrg", item.InspectOrg);
                projectObj.Add("Remark", instrumentWaitSendModel.Remark);
                projectObj.Add("MD5Code", dictionaryMd5[item.InstrumentId]);
                projectJArr.Add(projectObj);
                if (count % maxLen == 0 || (count % maxLen == leftCout))
                {
                    string En_Order   = SSOHelper.Encrypt(orderObj.ToString());
                    string En_Project = SSOHelper.Encrypt(projectJArr.ToString());

                    string jsonData = GRGTCommonUtils.WSProvider.EbusinessProvider.SendOrder(En_Order, En_Project, Global.Business.ServiceProvider.ParamService.GetaccessToken(Instrument.Common.Constants.SysParamType.CompanyInfo));
                    Dictionary <string, object> dic = ToolsLib.Utility.CommonUtils.JsonDeserialize(jsonData, typeof(Dictionary <string, object>)) as Dictionary <string, object>;
                    result = dic["Msg"].ToString();
                    projectJArr.Clear();
                    if (!result.Equals("OK"))//一次不成功则终止推送
                    {
                        break;
                    }
                }
            }

            if (result.Equals("OK"))
            {
                OrderModel order = new OrderModel();
                order.OrderNumber     = orderNumber;//单号
                order.SendUser        = UserName;
                order.UserId          = UserId;
                order.CreateUser      = order.SendUser;
                order.ReceivedUser    = "";
                order.InstrumentCount = instrumentIdList.Count;
                ServiceProvider.OrderService.Save(order);
                //新增送检仪器清单
                InstrumentModel instrumentModel = null;

                foreach (int instrumentId in instrumentIdList)
                {
                    OrderSendInstrumentModel model = new OrderSendInstrumentModel();
                    instrumentModel         = instrumentList.SingleOrDefault(I => I.InstrumentId.Equals(instrumentId));
                    instrumentWaitSendModel = instrumentWaitSendList.SingleOrDefault(I => I.InstrumentId.Equals(instrumentId));
                    if (instrumentModel == null)
                    {
                        continue;
                    }
                    model.InstrumentId        = instrumentId;
                    model.ItemCode            = dictionaryMd5[instrumentId];
                    model.OrderId             = order.OrderId;
                    model.InstrumentName      = instrumentModel.InstrumentName;
                    model.CertificationNumber = instrumentModel.CertificateNo;
                    model.SerialNo            = instrumentModel.SerialNo;
                    model.Specification       = instrumentModel.Specification;
                    model.ManageNo            = instrumentModel.ManageNo;
                    model.InspectDate         = instrumentModel.DueStartDate;
                    model.DueEndDate          = instrumentModel.DueEndDate;
                    model.InspectOrg          = "广电计量";//
                    model.Remark = instrumentWaitSendModel.Remark;
                    ServiceProvider.OrderSendInstrumentService.Save(model);
                }
            }

            return(result);
        }
Example #7
0
        public void ExportOverTimeAndWarnList(int state, int day)
        {
            StringBuilder                   sqlWhere     = new StringBuilder();
            ParamItemModel                  mParamItem   = new ParamItemModel();
            IList <ParamItemModel>          overTimeList = new List <ParamItemModel>();
            IList <InstrumentWaitSendModel> preSendList  = new List <InstrumentWaitSendModel>();

            if (state == 0)
            {
                sqlWhere.AppendFormat("'{0:yyyy-MM-dd}'>DueEndDate and ManageLevel !='C' and RecordState={1}", DateTime.Now, UtilConstants.InstrumentState.过期禁用.GetHashCode());
                preSendList = ServiceProvider.InstrumentWaitSendService.GetByUserId(LoginHelper.LoginUser.UserId);
            }
            if (state == 1)
            {
                sqlWhere.AppendFormat("DueEndDate<='{0:yyyy-MM-dd}' and DueEndDate>='{1:yyyy-MM-dd}' and ManageLevel !='C'", DateTime.Now.AddDays(day), DateTime.Now);
            }
            IList <Instrument.Common.Models.InstrumentModel> instrumentList = ServiceProvider.InstrumentService.GetAllInstrumentListByWhere(sqlWhere.ToString());
            //数据列表
            DataTable dtData = new DataTable();

            if (state == 0)
            {
                dtData.Columns.Add("RecordState", typeof(string));    //仪器状态
                overTimeList = Global.Business.ServiceProvider.ParamService.GetAll().SingleOrDefault(t => t.ParamCode == Instrument.Common.Constants.SysParamType.InstrumentState).itemsList;
            }
            if (state == 1)
            {
                dtData.Columns.Add("WarnDay", typeof(string));    //预警天数
            }
            dtData.Columns.Add("InstrumentName", typeof(string)); //仪器名字
            dtData.Columns.Add("CertificateNo", typeof(string));  //证书编号
            dtData.Columns.Add("DueEndDate", typeof(string));     //到期日期
            dtData.Columns.Add("Specification", typeof(string));  //仪器型号
            dtData.Columns.Add("ManageNo", typeof(string));       //管理编号
            dtData.Columns.Add("SerialNo", typeof(string));       //出厂编号

            int      warnDay;
            DateTime dueEndDate;
            InstrumentWaitSendModel instrumentWaitSendModel = null;

            foreach (var item in instrumentList)
            {
                DataRow drData = dtData.NewRow();
                if (state == 0)
                {
                    instrumentWaitSendModel = preSendList.SingleOrDefault(i => i.InstrumentId.Equals(item.InstrumentId));
                    if (instrumentWaitSendModel != null)
                    {
                        continue;
                    }
                    mParamItem            = overTimeList.SingleOrDefault(c => c.ParamItemValue == string.Format("{0}", item.RecordState));
                    drData["RecordState"] = mParamItem == null ? "" : mParamItem.ParamItemName;
                }
                else
                {
                    if (!string.IsNullOrWhiteSpace(string.Format("{0}", item.DueEndDate)))
                    {
                        dueEndDate = Convert.ToDateTime(string.Format("{0:d}", item.DueEndDate));
                    }
                    else
                    {
                        dueEndDate = DateTime.MinValue;
                    }
                    warnDay           = (dueEndDate - Convert.ToDateTime(string.Format("{0:d}", DateTime.Now))).Days;
                    warnDay           = warnDay < 0 ? 0 : warnDay;
                    warnDay           = (dueEndDate - Convert.ToDateTime(string.Format("{0:d}", DateTime.Now))).Days;
                    warnDay           = warnDay < 0 ? 0 : warnDay;
                    drData["WarnDay"] = warnDay;
                }
                drData["InstrumentName"] = item.InstrumentName;
                drData["CertificateNo"]  = item.CertificateNo;
                drData["DueEndDate"]     = string.Format("{0:yyyy-MM-dd}", item.DueEndDate);
                drData["Specification"]  = item.Specification;
                drData["ManageNo"]       = item.ManageNo;
                drData["SerialNo"]       = item.SerialNo;
                dtData.Rows.Add(drData);
            }
            //导出
            string[] head = new string[] { "仪器状态", "仪器名称", "证书编号", "到期日期", "仪器型号", "管理编号", "出厂编号" };
            if (state == 1)
            {
                head[0] = "预警天数";
            }
            List <string> headerList = new List <string>(head);

            string result = ToolsLib.FileService.ExcelFile.WriteDataToExcel(headerList, dtData, "Sheet1", ToolsLib.LibConst.ExcelVersion.Excel2007);

            ToolsLib.FileService.WebServer.DownLoadFile(result, string.Format("{0:yyyyMMddHHmmss}仪器预警{1}", DateTime.Now, System.IO.Path.GetExtension(result)), true);
        }