Example #1
0
        public JsonResult GetCeoBatchAuditBills()
        {
            AuditSearchParamModel pm = new AuditSearchParamModel();

            pm.auditResult = 0;
            pm.finalResult = 0;

            return(Json(new ApplySv().GetAuditList(currentUser.userId, pm)));
        }
Example #2
0
        /// <summary>
        /// 审核人导出Excel
        /// </summary>
        /// <param name="pm">查询参数模型</param>
        /// <param name="userId">用户ID</param>
        public override void ExportAuditorExcle(AuditSearchParamModel pm, int userId)
        {
            //首先从K3同步一下订单号
            //db.updateAllK3OrderNo();

            DateTime fDate, tDate;

            if (!DateTime.TryParse(pm.fromDate, out fDate))
            {
                fDate = DateTime.Parse("2010-6-1");
            }
            if (!DateTime.TryParse(pm.toDate, out tDate))
            {
                tDate = DateTime.Parse("2049-9-9");
            }
            tDate = tDate.AddDays(1);

            pm.saler    = pm.saler ?? "";
            pm.proModel = pm.proModel ?? "";
            pm.sysNo    = pm.sysNo ?? "";

            var result = (from a in db.Apply
                          from ad in a.ApplyDetails
                          join o in db.Order on a.sys_no equals o.sys_no
                          from d in o.OrderDetail
                          where ad.user_id == userId &&
                          a.order_type == BILL_TYPE &&
                          a.sys_no.Contains(pm.sysNo) &&
                          a.user_name.Contains(pm.saler) &&
                          a.p_model.Contains(pm.proModel) &&
                          a.start_date >= fDate &&
                          a.start_date <= tDate &&
                          (pm.finalResult == 10 ||
                           (pm.finalResult == 1 && a.success == true) ||
                           (pm.finalResult == 0 && a.success == null) ||
                           (pm.finalResult == -1 && a.success == false)) &&
                          (pm.auditResult == 10 ||
                           (pm.auditResult == 1 && ad.pass == true) ||
                           (pm.auditResult == 0 && ad.pass == null &&
                            ((ad.countersign == true && a.ApplyDetails.Where(ads => ads.step == ad.step && ads.pass == false).Count() == 0) ||
                             ((ad.countersign == false || ad.countersign == null) && a.ApplyDetails.Where(ads => ads.step == ad.step && ads.pass == true).Count() == 0)
                            )
                           ) ||
                           (pm.auditResult == -1 && ad.pass == false)
                          ) &&
                          (ad.step == 1 || a.ApplyDetails.Where(ads => ads.step == ad.step - 1 && ads.pass == true).Count() > 0)
                          orderby a.start_date descending
                          select new ExcelData()
            {
                h = o,
                e = d,
                auditStatus = a.success == true ? "PASS" : a.success == false ? "NG" : "----"
            }).Take(200).ToList();

            ExportExcel(result);
        }
Example #3
0
        public void ExportAuditorExcel(string billType, FormCollection fc)
        {
            AuditSearchParamModel pm = new AuditSearchParamModel();

            SomeUtils.SetFieldValueToModel(fc, pm);

            BillSv bill = (BillSv) new BillUtils().GetBillSvInstance(billType);

            Wlog("审核人导出Excel:" + JsonConvert.SerializeObject(pm), billType);

            bill.ExportAuditorExcle(pm, currentUser.userId);
        }
Example #4
0
        public JsonResult GetDefaultAuditList()
        {
            AuditSearchParamModel pm;
            var queryData = Request.Cookies["ele_au_qd"];

            if (queryData != null)
            {
                pm = JsonConvert.DeserializeObject <AuditSearchParamModel>(SomeUtils.DecodeToUTF8(queryData.Value));
            }
            else
            {
                pm             = new AuditSearchParamModel();
                pm.auditResult = 0;
                pm.finalResult = 0;
            }
            Wlog("自动获取默认数据:" + JsonConvert.SerializeObject(pm));

            return(Json(new ApplySv().GetAuditList(currentUser.userId, pm)));
        }
Example #5
0
        public JsonResult SearchAuditList(FormCollection fc)
        {
            AuditSearchParamModel pm = new AuditSearchParamModel();

            SomeUtils.SetFieldValueToModel(fc, pm);

            var queryData = Request.Cookies["ele_au_qd"];

            if (queryData == null)
            {
                queryData = new HttpCookie("ele_au_qd");
            }
            queryData.Expires = DateTime.Now.AddDays(20);
            queryData.Value   = SomeUtils.EncodeToUTF8(JsonConvert.SerializeObject(pm));
            Response.AppendCookie(queryData);

            Wlog("审核列表查询:" + JsonConvert.SerializeObject(pm));

            return(Json(new ApplySv().GetAuditList(currentUser.userId, pm), "text/html"));
        }
Example #6
0
        public ActionResult CheckAuditList()
        {
            Wlog("打开审核列表视图");

            AuditSearchParamModel pm;
            var queryData = Request.Cookies["ele_au_qd"];

            if (queryData != null)
            {
                pm = JsonConvert.DeserializeObject <AuditSearchParamModel>(SomeUtils.DecodeToUTF8(queryData.Value));
            }
            else
            {
                pm             = new AuditSearchParamModel();
                pm.auditResult = 0;
                pm.finalResult = 0;
            }
            ViewData["queryParams"] = pm;
            return(View());
        }
Example #7
0
        public override void ExportAuditorExcle(AuditSearchParamModel pm, int userId)
        {
            DateTime fDate, tDate;

            if (!DateTime.TryParse(pm.fromDate, out fDate))
            {
                fDate = DateTime.Parse("2010-6-1");
            }
            if (!DateTime.TryParse(pm.toDate, out tDate))
            {
                tDate = DateTime.Parse("2049-9-9");
            }
            tDate = tDate.AddDays(1);

            pm.saler    = pm.saler ?? "";
            pm.proModel = pm.proModel ?? "";
            pm.sysNo    = pm.sysNo ?? "";

            var result = from a in db.Apply
                         from ad in a.ApplyDetails
                         join e in db.Sale_BL on a.sys_no equals e.sys_no
                         where ad.user_id == userId &&
                         a.order_type == BillType &&
                         a.sys_no.Contains(pm.sysNo) &&
                         a.user_name.Contains(pm.saler) &&
                         a.p_model.Contains(pm.proModel) &&
                         a.start_date >= fDate &&
                         a.start_date <= tDate &&
                         (pm.finalResult == 10 ||
                          (pm.finalResult == 1 && a.success == true) ||
                          (pm.finalResult == 0 && a.success == null) ||
                          (pm.finalResult == -1 && a.success == false)) &&
                         (pm.auditResult == 10 ||
                          (pm.auditResult == 1 && ad.pass == true) ||
                          (pm.auditResult == 0 && ad.pass == null &&
                           ((ad.countersign == true && a.ApplyDetails.Where(ads => ads.step == ad.step && ads.pass == false).Count() == 0) ||
                            ((ad.countersign == false || ad.countersign == null) && a.ApplyDetails.Where(ads => ads.step == ad.step && ads.pass == true).Count() == 0)
                           )
                          ) ||
                          (pm.auditResult == -1 && ad.pass == false)
                         ) &&
                         (ad.step == 1 || a.ApplyDetails.Where(ads => ads.step == ad.step - 1 && ads.pass == true).Count() > 0)
                         orderby a.start_date descending
                         select new ExcelData()
            {
                h           = e,
                auditStatus = a.success == true ? "PASS" : a.success == false ? "NG" : "----"
            };

            if (!string.IsNullOrWhiteSpace(pm.saler))
            {
                result = result.Where(r => r.h.applier_name.Contains(pm.saler));
            }

            if (!string.IsNullOrWhiteSpace(pm.sysNo))
            {
                result = result.Where(r => r.h.sys_no.Contains(pm.sysNo));
            }

            if (!string.IsNullOrWhiteSpace(pm.proModel))
            {
                result = result.Where(r => r.h.product_model.Contains(pm.proModel));
            }

            ExportExcel(result.OrderByDescending(r => r.h.id).Take(200).ToList());
        }
Example #8
0
 /// <summary>
 /// 审核人导出Excel
 /// </summary>
 /// <param name="pm">搜索参数模型</param>
 public abstract void ExportAuditorExcle(AuditSearchParamModel pm, int userId);
Example #9
0
        /// <summary>
        /// (无餐构造) 取得审核列表
        /// </summary>
        /// <param name="userId">审核人ID</param>
        /// <param name="sysNo">流水号</param>
        /// <param name="salerName">申请人姓名</param>
        /// <param name="proModel">规格型号</param>
        /// <param name="fromDate">起始日期</param>
        /// <param name="toDate">结束日期</param>
        /// <param name="auditResult">审核结果</param>
        /// <param name="finalResult">最终审核结果</param>
        /// <returns></returns>
        public List <AuditListModel> GetAuditList(int userId, AuditSearchParamModel pm)
        {
            DateTime fDate, tDate;

            if (!DateTime.TryParse(pm.fromDate, out fDate))
            {
                fDate = DateTime.Parse("2010-6-1");
            }
            if (!DateTime.TryParse(pm.toDate, out tDate))
            {
                tDate = DateTime.Parse("2049-9-9");
            }
            tDate = tDate.AddDays(1);

            pm.saler    = pm.saler ?? "";
            pm.proModel = pm.proModel ?? "";
            pm.sysNo    = pm.sysNo ?? "";

            var result = (from a in db.Apply
                          from ad in a.ApplyDetails
                          where ad.user_id == userId &&
                          a.sys_no.Contains(pm.sysNo) &&
                          a.user_name.Contains(pm.saler) &&
                          a.p_model.Contains(pm.proModel) &&
                          a.start_date >= fDate &&
                          a.start_date <= tDate &&
                          (pm.finalResult == 10 ||
                           (pm.finalResult == 1 && a.success == true) ||
                           (pm.finalResult == 0 && a.success == null) ||
                           (pm.finalResult == -1 && a.success == false)) &&
                          (pm.auditResult == 10 ||
                           (pm.auditResult == 1 && ad.pass == true) ||
                           (pm.auditResult == 0 && ad.pass == null &&
                            ((ad.countersign == true && a.ApplyDetails.Where(ads => ads.step == ad.step && ads.pass == false).Count() == 0) ||
                             ((ad.countersign == false || ad.countersign == null) && a.ApplyDetails.Where(ads => ads.step == ad.step && ads.pass == true).Count() == 0)
                            )
                           ) ||
                           (pm.auditResult == -1 && ad.pass == false)
                          ) &&
                          (ad.step == 1 || a.ApplyDetails.Where(ads => ads.step == ad.step - 1 && ads.pass == true).Count() > 0)
                          orderby a.start_date descending
                          select new AuditListModel()
            {
                applyId = a.id,
                applyDetailId = ad.id,
                applyTime = DateTime.Parse(a.start_date.ToString()).ToString("yyyy-MM-dd HH:mm"),
                salerName = a.user_name,
                customer = a.p_customer,
                model = a.p_model,
                depName = new UA((int)a.user_id).GetUserDepartmentName(),
                sysNo = a.sys_no,
                step = (int)ad.step,
                stepName = ad.step_name,
                finalStatus = a.success == true ? "PASS" : a.success == false ? "NG" : "----",
                status = ad.pass == true ? "已通过" : ad.pass == false ? "已NG" : "待确认"
            }).Take(200).ToList();

            //单据详细类型和状态的逻辑比较复杂,不能在上面的sql语句中处理。
            result.ForEach(r => {
                r.orderType = ((BillSv) new BillUtils().GetBillSvInstanceBySysNo(r.sysNo)).GetSpecificBillTypeName();
                if (r.status.Equals("待确认"))
                {
                    if (IsCurrentStepAuditing(db.ApplyDetails.Single(a => a.id == r.applyDetailId)))
                    {
                        if (db.BlockOrder.Where(b => b.sys_no == r.sysNo && b.step == r.step && b.@operator == userId).Count() > 0)
                        {
                            r.status = "挂起中";
                        }
                        else
                        {
                            r.status = "待审核";
                        }
                    }
                    else
                    {
                        r.status = "已结束";
                    }
                }
            });

            return(result);
        }