钟表维修管理系统技术解析(六) 数据统计

前端之家收集整理的这篇文章主要介绍了钟表维修管理系统技术解析(六) 数据统计前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

钟表维修管理系统技术解析(六) 数据统计

通过统计维修单据,销售单据,采购单据的金额数据,对每年,每月,每日的金额进行统计,以图表的形式显示出来@H_404_6@


@H_404_6@ @H_404_12@ 2.6.1图(1)

@H_404_12@
@H_404_12@
@H_404_12@ 2.6.1图(2)

营业额统计查询界面用到的控件有:@H_404_6@

控件名称@H_404_6@

说明@H_404_6@

文本控件(input type=”text”)@H_404_6@

第一要设置每个控件的id,第二设置大小不设置也有默认,第三(data-options)是数据操作:可以设置控件的一些属性和事件@H_404_6@

按钮(easyui-linkbutton)@H_404_6@

Morris插件@H_404_6@

登陆功能的实现:@H_404_6@

第一步:数据库

@H_404_12@
@H_404_12@ 2.6.1图(3)

表1:工单录入表(pw_GongDianLuRu)

用于存放钟表录入的信息@H_404_6@

列名@H_404_6@

数据类型@H_404_6@

主键/外键@H_404_6@

说明@H_404_6@

GongDanLuRuID@H_404_6@

int@H_404_6@

主键@H_404_6@

工单录入ID@H_404_6@

YuanShiDanHaoID @H_404_6@

int@H_404_6@

外键@H_404_6@

原始单号ID@H_404_6@

GongDanZhuanTaiID@H_404_6@

int@H_404_6@

外键@H_404_6@

工单状态ID@H_404_6@

JinEZhuangTaiID@H_404_6@

int@H_404_6@

外键@H_404_6@

金额状态ID@H_404_6@

GongDanLeiXingID@H_404_6@

int@H_404_6@

外键@H_404_6@

工单类型ID@H_404_6@

KeHuID@H_404_6@

int@H_404_6@

外键@H_404_6@

客户ID@H_404_6@

JianXiuLeiXingID@H_404_6@

int@H_404_6@

外键@H_404_6@

检修类型ID@H_404_6@

PinPaiID@H_404_6@

int@H_404_6@

外键@H_404_6@

品牌ID@H_404_6@

GongDanRiQi@H_404_6@

date@H_404_6@

@H_404_6@

工单日期@H_404_6@

GongDanBianHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

工单编号@H_404_6@

SongXiuRiQi@H_404_6@

data@H_404_6@

@H_404_6@

送修日期@H_404_6@

YuFanRiQi@H_404_6@

data@H_404_6@

@H_404_6@

预返日期@H_404_6@

FenYongJinE@H_404_6@

decimal(18,2)@H_404_6@

@H_404_6@

费用金额@H_404_6@

ZhongBiaoLeiXing@H_404_6@

nchar(10)@H_404_6@

@H_404_6@

钟表类型@H_404_6@

BiaoKuan@H_404_6@

nchar(10)@H_404_6@

@H_404_6@

表款@H_404_6@

GuiGe@H_404_6@

text@H_404_6@

@H_404_6@

规格/名称@H_404_6@

XiuPeiJiLu@H_404_6@

text@H_404_6@

@H_404_6@

修配记录@H_404_6@

JiXinXingHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

机芯号@H_404_6@

BiaoXingHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

表型号@H_404_6@

BiaoShenHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

表身号@H_404_6@

BiaoDaiJieShu@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

表带节数@H_404_6@

ZhongBiaoQiTaoMiaoShu@H_404_6@

varchar(200)@H_404_6@

@H_404_6@

钟表其他描述@H_404_6@

WaiGuan@H_404_6@

text@H_404_6@

@H_404_6@

外观@H_404_6@

KeHuZhiShu@H_404_6@

varchar(200)@H_404_6@

@H_404_6@

客户自述@H_404_6@

YouXiaoFou@H_404_6@

Bit@H_404_6@

@H_404_6@

有效否@H_404_6@

表2:采购单(pw_CaiGouDan)

列名@H_404_6@

数据类型@H_404_6@

主键/外键@H_404_6@

说明@H_404_6@

CaiGouDanID@H_404_6@

int@H_404_6@

主键@H_404_6@

采购单ID@H_404_6@

DaoHuoMenDianID@H_404_6@

int@H_404_6@

外键@H_404_6@

到货门店ID@H_404_6@

LuRuYuanID@H_404_6@

int@H_404_6@

外键@H_404_6@

录入员ID@H_404_6@

GongYingShangID@H_404_6@

int@H_404_6@

外键@H_404_6@

供应商ID@H_404_6@

SongHuoFangShiID@H_404_6@

int@H_404_6@

外键@H_404_6@

送货方式ID@H_404_6@

CaiGouLeiBieID@H_404_6@

int@H_404_6@

外键@H_404_6@

采购类别ID@H_404_6@

CaiGouFuKuanLeiXingID@H_404_6@

int@H_404_6@

外键@H_404_6@

采购付款类型ID@H_404_6@

FuKuanZhuangTaiID@H_404_6@

int@H_404_6@

外键@H_404_6@

付款状态ID@H_404_6@

RuKuZhuangTaiID@H_404_6@

int@H_404_6@

外键@H_404_6@

入库状态ID@H_404_6@

CaiGouDanBianHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

采购单编号@H_404_6@

DanJuZhuangTai@H_404_6@

data@H_404_6@

@H_404_6@

单据状态@H_404_6@

CaiGouRiQi@H_404_6@

data@H_404_6@

@H_404_6@

采购日期@H_404_6@

DaoHuoRiQi@H_404_6@

decimal(18,2)@H_404_6@

@H_404_6@

到货日期@H_404_6@

JinE@H_404_6@

nchar(10)@H_404_6@

@H_404_6@

金额@H_404_6@

FaPiaoHao@H_404_6@

nchar(10)@H_404_6@

@H_404_6@

发票号@H_404_6@

BeiZhu@H_404_6@

text@H_404_6@

@H_404_6@

备注@H_404_6@

DingGouFou@H_404_6@

text@H_404_6@

@H_404_6@

订购否@H_404_6@

DeleteFou@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

删除否@H_404_6@

YouXiaoFou@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

有效否@H_404_6@

GengXinShiJian@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

更新时间@H_404_6@

表3:采购退货单单(pw_CaIGouTuiHuoDan)

列名@H_404_6@

数据类型@H_404_6@

主键/外键@H_404_6@

说明@H_404_6@

CaiGouTuiHuoDanID @H_404_6@

int@H_404_6@

主键@H_404_6@

采购退货单ID@H_404_6@

LuRuYuanID@H_404_6@

int@H_404_6@

外键@H_404_6@

录入员ID@H_404_6@

CaiGouDanID@H_404_6@

int@H_404_6@

外键@H_404_6@

采购单ID@H_404_6@

TuiHuoFangShiID@H_404_6@

int@H_404_6@

外键@H_404_6@

退货方式ID@H_404_6@

KuaiDiID@H_404_6@

int@H_404_6@

外键@H_404_6@

快递ID@H_404_6@

KuaiDiDanHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

快递编号@H_404_6@

TuiKuanZhuangTai@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

退款状态@H_404_6@

DanJuZhuangTai@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

单据状态@H_404_6@

CaiGouTuiHuoDanBianHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

采购退货单编号@H_404_6@

JinE@H_404_6@

decimal(18,2)@H_404_6@

@H_404_6@

金额@H_404_6@

TuiHuoRiQi@H_404_6@

Date@H_404_6@

@H_404_6@

退货日期@H_404_6@

GengXinRiQi@H_404_6@

Date@H_404_6@

@H_404_6@

更新日期@H_404_6@

ChuKuFou@H_404_6@

bit@H_404_6@

@H_404_6@

出库否@H_404_6@

YouXiaoFou@H_404_6@

bit@H_404_6@

@H_404_6@

有效否@H_404_6@

DeleteFou@H_404_6@

bit@H_404_6@

@H_404_6@

删除否@H_404_6@

BeiZhu@H_404_6@

text@H_404_6@

@H_404_6@

备注@H_404_6@

表4:销售单(pw_XiaoShouDan)

列名@H_404_6@

数据类型@H_404_6@

主键/外键@H_404_6@

说明@H_404_6@

XiaoShouDanID@H_404_6@

int@H_404_6@

主键@H_404_6@

销售单ID@H_404_6@

LuRuYuanID@H_404_6@

int@H_404_6@

外键@H_404_6@

录入员ID@H_404_6@

FuKuanZhuangTaiID@H_404_6@

int@H_404_6@

外键@H_404_6@

付款状态ID@H_404_6@

KeHuID@H_404_6@

int@H_404_6@

外键@H_404_6@

客户ID@H_404_6@

PinPaiID@H_404_6@

int@H_404_6@

外键@H_404_6@

品牌ID@H_404_6@

ZhongBiaoKuanShiID@H_404_6@

int@H_404_6@

外键@H_404_6@

钟表款式ID@H_404_6@

XiaoShouLeiXingID@H_404_6@

int@H_404_6@

外键@H_404_6@

销售类型ID@H_404_6@

XiaoShouFangShiID@H_404_6@

int@H_404_6@

外键@H_404_6@

销售方式ID@H_404_6@

SongHuoFangShiID@H_404_6@

int@H_404_6@

外键@H_404_6@

送货方式ID@H_404_6@

FuKuanFangShiID@H_404_6@

int@H_404_6@

外键@H_404_6@

付款方式ID@H_404_6@

FuKuanLeiXingID@H_404_6@

int@H_404_6@

外键@H_404_6@

付款类型ID@H_404_6@

XiaoShouDanBianHao@H_404_6@

nchar(10)@H_404_6@

@H_404_6@

销售单编号@H_404_6@

JieZhangBianHao@H_404_6@

nchar(10)@H_404_6@

@H_404_6@

结账编号@H_404_6@

DiKeHao@H_404_6@

nchar(10)@H_404_6@

@H_404_6@

底壳号@H_404_6@

XiaoShouRiQi@H_404_6@

date@H_404_6@

@H_404_6@

销售日期@H_404_6@

YingShouJinE@H_404_6@

decimal(18,2)@H_404_6@

@H_404_6@

应收金额@H_404_6@

ShiShouJinE@H_404_6@

decimal(18,2)@H_404_6@

@H_404_6@

实收金额@H_404_6@

GengXinShiJian@H_404_6@

datetime@H_404_6@

@H_404_6@

更新时间@H_404_6@

BeiZhu@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

备注@H_404_6@

BaoFeiYuanYin@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

报废原因@H_404_6@

YouXiaoFou@H_404_6@

Bit@H_404_6@

@H_404_6@

有效否@H_404_6@

DeleteFou@H_404_6@

Bit@H_404_6@

@H_404_6@

删除否@H_404_6@

表5:销售售后单(pw_XiaoShouShouHouDan)

列名@H_404_6@

数据类型@H_404_6@

主键/外键@H_404_6@

说明@H_404_6@

XiaoShouShouHouDanID@H_404_6@

int@H_404_6@

主键@H_404_6@

销售售后单ID@H_404_6@

LuRuYuanID@H_404_6@

int@H_404_6@

外键@H_404_6@

录入员ID@H_404_6@

XiaoShouDanID@H_404_6@

int@H_404_6@

外键@H_404_6@

销售单ID@H_404_6@

XiaoShouShouHouLeiXingID@H_404_6@

int@H_404_6@

外键@H_404_6@

售后类型ID@H_404_6@

XiaoShouShouHouDanBianHao@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

售后单编号@H_404_6@

RiQi@H_404_6@

date@H_404_6@

@H_404_6@

日期@H_404_6@

JinE@H_404_6@

decimal(18,2)@H_404_6@

金额@H_404_6@

GengXinShiJian@H_404_6@

datetime@H_404_6@

@H_404_6@

更新时间@H_404_6@

YouXiaoFou@H_404_6@

bit@H_404_6@

@H_404_6@

有效否@H_404_6@

DeleteFou@H_404_6@

bit@H_404_6@

@H_404_6@

删除否@H_404_6@

BeiZhu@H_404_6@

nchar(50)@H_404_6@

@H_404_6@

备注@H_404_6@

第二步:控制器(Controllers)

@H_404_12@
@H_404_12@ 2.6.1图(4)

Linq语法:@H_404_6@

/// <summary>
        /// 营业额统计
        /// </summary>
        /// <param name="Year">查询的年份</param>
        /// <param name="Month">查询的月份</param>
        /// <returns></returns>
        public ActionResult YingYeETongJi(string Year,string Month)
        {
            var MarketMoney = 0;//销售金额
            var ServiceMoney = 0;//维修结账金额
            var PurchaseMoney = 0;//采购金额
            var PurchaseReturnOfGoodsMoney = 0;//采购退货金额
            var MarketReturnOfGoodsMoney = 0;//销售退货金额
            var MarketExChangeMoneyMoney = 0;//销售换货金额
            var MarketGuaranteeMoney = 0;//销售保修金额
            var DateTimeData = Year;
            var Count = "12";
            var dtData = "";
            var dateCount = "";
            DataTable dt = new DataTable();
            dt.Columns.Add("d",typeof(string));
            dt.Columns.Add("visits",typeof(string));
            //判断是否查询月份
            if (Month != "" && Convert.ToInt32(Month.ToString().Trim()) > 0)
            {
                if (Convert.ToInt32(Month) < 10)
                {
                    Month = "0" + Month;
                }
                DateTimeData = DateTimeData + "-" + Month;
                Count = DateTime.DaysInMonth(Convert.ToInt32(Year),Convert.ToInt32(Month)).ToString();
            }

            //销售
            var Market = (from dtMarket in myMdl.pw_XiaoShouDan
                          where dtMarket.YouXiaoFou == true && dtMarket.FuKuanZhuangTaiID == 44
                          select dtMarket).AsEnumerable().Select(n => new
                          {
                              n.ShiShouJinE,XiaoShouRiQi = n.XiaoShouRiQi.Value.ToString("yyyy-MM-dd")
                          });
            //维修结账
            var Service = (from dtService in myMdl.pw_JieZhangQuBiao
                           where dtService.YouXiaoFou == true
                           select dtService).AsEnumerable().Select(n => new
                           {
                               n.ShiShouJinE,FuKuanRiQi = n.FuKuanRiQi.Value.ToString("yyyy-MM-dd")
                           });

            //采购
            var Purchase = (from dtPurchase in myMdl.pw_CaiGouDan
                            where dtPurchase.YouXiaoFou == true
                            select dtPurchase).AsEnumerable().Select(n => new
                            {
                                n.JinE,DaoHuoRiQi = n.DaoHuoRiQi.Value.ToString("yyyy-MM-dd")
                            });

            //采购退货
            var PurchaseReturnOfGoods = (from dtPurchaseReturnOfGoods in myMdl.pw_CaiGouTuiHuoDan
                                         where dtPurchaseReturnOfGoods.TuiKuanZhuangTai == "已退款" && dtPurchaseReturnOfGoods.YouXiaoFou == true
                                         select dtPurchaseReturnOfGoods).AsEnumerable().Select(n => new
                                         {
                                             n.JinE,GengXinRiQi = n.GengXinRiQi.Value.ToString("yyyy-MM-dd")
                                         });

            //销售退货单
            var MarketReturnOfGoods = (from dtMarketReturnOfGoods in myMdl.pw_XiaoShouShouHouDan
                                       where dtMarketReturnOfGoods.XiaoShouShouHouLeiXingID == 48 && dtMarketReturnOfGoods.YouXiaoFou == true
                                       select dtMarketReturnOfGoods).AsEnumerable().Select(n => new
                                       {
                                           n.JinE,RiQi = n.RiQi.Value.ToString("yyyy-MM-dd")
                                       });

            //销售换货单
            var MarketExChangeMoney = (from dtMarketExChangeMoney in myMdl.pw_XiaoShouShouHouDan
                                       where dtMarketExChangeMoney.XiaoShouShouHouLeiXingID == 49 && dtMarketExChangeMoney.YouXiaoFou == true
                                       select dtMarketExChangeMoney).AsEnumerable().Select(n => new
                                       {
                                           n.JinE,RiQi = n.RiQi.Value.ToString("yyyy-MM-dd")
                                       });
            //销售保修 
            var MarketGuarantee = (from dtMarketGuarantee in myMdl.pw_XiaoShouShouHouDan
                                   where dtMarketGuarantee.XiaoShouShouHouLeiXingID == 50 && dtMarketGuarantee.YouXiaoFou == true
                                   select dtMarketGuarantee).AsEnumerable().Select(n => new
                                   {
                                       n.JinE,RiQi = n.RiQi.Value.ToString("yyyy-MM-dd")
                                   });
            for (int i = 0; i < Convert.ToInt32(Count) + 1; i++)
            {
                if (Convert.ToInt32(i) < 10)
                {
                    dateCount = "0" + (i + 1).ToString();
                }
                else
                {
                    dateCount = i.ToString();
                }
                dtData = (DateTimeData + "-" + dateCount).ToString().Trim();
                MarketMoney = 0;//销售金额
                ServiceMoney = 0;//维修结账金额
                PurchaseMoney = 0;//采购金额
                PurchaseReturnOfGoodsMoney = 0;//采购退货金额
                MarketReturnOfGoodsMoney = 0;//销售退货金额
                MarketExChangeMoneyMoney = 0;//销售换货金额
                MarketGuaranteeMoney = 0;//销售保修金额
                DataRow dtRow = dt.Rows.Add();
                //销售
                Market = Market.Where(n => n.XiaoShouRiQi.Contains(dtData));
                foreach (var item in Market)
                {
                    MarketMoney += Convert.ToInt32(item.ShiShouJinE);
                }
                //维修结账
                Service = Service.Where(n => n.FuKuanRiQi.Contains(dtData));
                foreach (var item in Service)
                {
                    ServiceMoney += Convert.ToInt32(item.ShiShouJinE);
                }
                //采购
                Purchase = Purchase.Where(n => n.DaoHuoRiQi.Contains(dtData));
                foreach (var item in Purchase)
                {
                    PurchaseMoney += Convert.ToInt32(item.JinE);
                }
                //采购退货
                PurchaseReturnOfGoods = PurchaseReturnOfGoods.Where(n => n.GengXinRiQi.Contains(dtData));
                foreach (var item in PurchaseReturnOfGoods)
                {
                    PurchaseReturnOfGoodsMoney += Convert.ToInt32(item.JinE);
                }
                //销售退货单
                MarketReturnOfGoods = MarketReturnOfGoods.Where(n => n.RiQi.Contains(dtData));
                foreach (var item in MarketReturnOfGoods)
                {
                    MarketReturnOfGoodsMoney += Convert.ToInt32(item.JinE);
                }
                //销售换货单
                MarketExChangeMoney = MarketExChangeMoney.Where(n => n.RiQi.Contains(dtData));
                foreach (var item in MarketExChangeMoney)
                {
                    MarketExChangeMoneyMoney += Convert.ToInt32(item.JinE);
                }
                //销售保修 
                MarketGuarantee = MarketGuarantee.Where(n => n.RiQi.Contains(dtData));
                foreach (var item in MarketGuarantee)
                {
                    MarketGuaranteeMoney += Convert.ToInt32(item.JinE);
                }
                var Money = ServiceMoney + MarketMoney - PurchaseMoney + PurchaseReturnOfGoodsMoney - MarketReturnOfGoodsMoney + MarketExChangeMoneyMoney + MarketGuaranteeMoney;
                dtRow["d"] = dtData;
                dtRow["visits"] = Money;
            }
            List<Dictionary<string,object>> Listreturn = ConvertHelper.DtToList(dt);
            return Json(Listreturn,JsonRequestBehavior.AllowGet);
        }

第三步、视图层(views)

@H_404_12@
@H_404_12@ 2.6.1图(5) HTML代码
<div id="_revealloading"  class="reveal-loadding" style="display:block">
    <span class="loading" style="display:block">
    </span>
</div>
<br />
<table>
    <tr>
        <td style="width:50px"></td>
        <td><input type="text" id="Year" maxlength="4" onkeyup="value=value.replace(/[^\d]/g,''); inputFullYear(this);" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"/></td>
        <td><input type="text" id="Month" maxlength="2" onkeyup="value=value.replace(/[^\d]/g,''); inputMonth(this);" onbeforepaste="clipboardData.setData('text',''))"/></td>
        <td><input type="button" class="goodButton1" onclick="onClickLoadData()" style="width:100px;height:26px;border:0" value="查询" /></td>
    </tr>
</table>
<br />
    <center>
        <div style="width:1130px">
        <div class="row">
              <div class="col-lg-12">
                <div class="panel panel-primary">
                  <div class="panel-heading">
                    <h3 class="panel-title"><i class="fa fa-bar-chart-o"></i>营业额统计</h3>
                  </div>
                  <div class="panel-body">
                    <div id="morris-chart-area"></div>
                  </div>
                </div>
              </div>
        </div>
    </div>
    </center>

jQuery代码@H_404_6@

var data = undefined;
    var nowDate = new Date();//实例化date
    $(document).ready(function () {
        $("#Month").val(nowDate.getMonth() + 1)//绑定当前月份
        $("#Year").val(nowDate.getFullYear()); //绑定当前年份
        onClickLoadData();
        $('#Year').keydown(function (e) {
            if (e.keyCode == 13) {//键盘回车事件,触发查询功能
                onClickLoadData()
            }
        });
        $('#Month').keydown(function (e) {
            if (e.keyCode == 13) {//键盘回车事件,触发查询功能
                onClickLoadData()
            }
        });
    });

    function onClickLoadData() {
    //打开进度条
        $("#_revealloading").css("display","block");
        //通过ajax进行查询
        $.ajax({
            type: 'post',url: '/ShuJuBiaoGe/YingYeETongJi?Year=' + $("#Year").val() + '&Month=' + $("#Month").val(),success: function (requiredata) {
            //查询成功,返回数据
                data = requiredata;
                document.getElementById('morris-chart-area').innerHTML = ""; //清空插件的数据,否则数据会出现重复现象,图像重叠
                //为图表插件绑定数据
                Morris.Area({
                    element: 'morris-chart-area',data: data,xkey: 'd',ykeys: ['visits'],labels: ['金额(RMB)'],smooth: false
                });
                //关闭进度条
                $("#_revealloading").css("display","none");
            }
        });
    }
    function inputMonth(event) {
        if (event.value>12) {//限制月份不能输入超出12的数
            alert("月份数不能大于12!");
            $("#Month").val(nowDate.getMonth() + 1);
        }
    }
    function inputFullYear(event) {
        if (event.value > nowDate.getFullYear()) {//限制年份输入不能超出当前时间年份
            alert("年份数不能大于当前时间年份!");
            $("#Year").val(nowDate.getFullYear());
        }
    }

@H_404_12@ 该资料仅供学习,禁止用于商业用途
原文链接:https://www.f2er.com/ajax/163320.html

猜你在找的Ajax相关文章