钟表维修管理系统技术解析 工单外派(四)

工单外派模块

当本店的技术不足或其他原因导致钟表不能在本店维修,那么就要进行工单外派的操作了,工单外派可以外派到其他门店进行维修,当维修好了再返回到本店中。


实现思路:

      第一选择外派合作商,第二选择快递并填写单号,第三选择要外派的工单。保存后在数据库的外派表中插入一条外派单,并且修改外派的单据状态为外派中,当外派的单据外派返店后,单据的状态变为外派完成。


界面效果图:


2.2.6(图1)


第一步:数据库

表与关系

2.2.6(图2)

表1:工单外派(pw_GongDanWaiPai)

存外派的单据信息

列名

类型

主外键

说明

GongDaoWaiPaiID

int

主键

工单外派ID

GongDanLuRuID

int

外键

工单录入ID

CaoZhuYuanID

int

外键

录入员ID

WaiPaiQianGongDanZhuangTaiID

int

外键

外派时工单状态ID

FangDianJieShouRenID

int

外键

返店录入员ID

FangHuiKuaiID

int

外键

返店快递ID

ShouJianRenID

int

外键

收件人ID

KuaiDiID

int

外键

外派快递ID

WaiPaiDanJuHao

nchar(50)

 

外派单据号

WaiPaiShiJian

date

 

外派时间

KuaiDiDanHao

nchar(50)

 

快递单号

SunHuaiMiaoShu

text

 

损坏描述

FangDianShiJian

date

 

返店时间

FanDianKuaiDiDanHao

nchar(50)

 

返店快递单号

GenXinShiJian

datetime

 

更新时间

YouXiaoFou

bit

 

有效

 

表2:员工表(sys_YuanGong)

列名

数据类型

主外键

说明

YuanGongID

int

主键

员工ID

LuRuYuanID

int

外键

录入员ID

JueSeID

int

外键

角色ID

YuanGongZhuangTaiID

int

外键

员工状态ID

MenDianID

int

外键

门店ID

YuanGongBianHao

nchar(50)

 

员工编号

YuanGongXingMing

nchar(50)

 

员工姓名

XingBie

nchar(50)

 

性别

JiGuan

nchar(50)

 

籍贯

XueLi

nchar(50)

 

学历

ChuShengRiQi

date

 

出生日期

ShenFenZhengHao

nchar(50)

 

身份证号

RuZhiRiQi

date

 

入职日期

RuZhiDiDian

nchar(50)

 

入职地址

YiDongShouJi

nchar(50)

 

移动手机

JiaTingDianHua

nchar(50)

 

家庭电话

DiXin

nchar(50)

 

底薪

DianZiYouXiang

nchar(50)

 

电子邮箱

TongXunDiZhi

nchar(100)

 

通讯地址

BeiZhu

nchar(100)

 

备注

GengXinShiJian

datetime

 

更新时间

YouXiaoFou

bit

 

有效否

MiMa

 

 

密码

 

表3:属性明细表(sys_ShuXingMingXi)

列名

数据类型

主外键

说明

ShuXingMingXiID

int

主键

属性明细ID

LuRuYuanID

int

外键

录入员ID

ShuXingJiHeID

int

外键

 

ShuXingMingXiMingCheng

nchar(50)

 

 

GengXinShiJian

datetime

 

 

YouXiaoFou

bit

 

 

BeiZhu

nchar(50)

 

 

 

表4:工单录入表(pw_GongDianLuRu)

用于存放钟表录入的信息

列名

数据类型

主键/外键

说明

GongDanLuRuID

int

主键

工单录入ID

YuanShiDanHaoID

int

外键

原始单号ID

GongDanZhuanTaiID

int

外键

工单状态ID

JinEZhuangTaiID

int

外键

金额状态ID

GongDanLeiXingID

int

外键

工单类型ID

KeHuID

int

外键

客户ID

JianXiuLeiXingID

int

外键

检修类型ID

PinPaiID

int

外键

品牌ID

GongDanRiQi

date

 

工单日期

GongDanBianHao

nchar(50)

 

工单编号

SongXiuRiQi

data

 

送修日期

YuFanRiQi

data

 

预返日期

FenYongJinE

decimal(18, 4)

 

费用金额

ZhongBiaoLeiXing

nchar(10)

 

钟表类型

BiaoKuan

nchar(10)

 

表款

GuiGe

text

 

规格/名称

XiuPeiJiLu

text

 

修配记录

JiXinXingHao

nchar(50)

 

机芯号

BiaoXingHao

nchar(50)

 

表型号

BiaoShenHao

nchar(50)

 

表身号

BiaoDaiJieShu

nchar(50)

 

表带节数

ZhongBiaoQiTaoMiaoShu

varchar(400)

 

钟表其他描述

WaiGuan

text

 

外观

KeHuZhiShu

varchar(400)

 

客户自述

YouXiaoFou

Bit

 

有效否

 

表5:属性集合表(sys_ShuXingJiHe)

列名

数据类型

主键/外键

说明

ShuXingJiHeID

int

主键

属性集合ID

ShuXingJiHeMingCheng

nchar(50)

 

属性集合名称

 

表6:外派合作商表(sys_WaiPaiHeZuoShang)

列名

数据类型

主外键

说明

WaiPaiHeZuoShangID

int

主键

外派合作商ID

LuRuYuanID

int

外键

录入员ID

HeZuoShangMingCheng

nchar(50)

 

合作商名称

LiangXiRen

nchar(50)

 

联系人

LianXiDianHuan

nchar(50)

 

联系电话

DiZhi

nchar(100)

 

地址

QQ

nchar(50)

 

qq

WeiXin

nchar(50)

 

微信

GengXinShiJian

datetime

 

更新时间

YouXiaoFou

bit

 

有效否

 

第二步:导入信息

一、     外派合作商:

效果截图:

2.2.6 (图3)

点击2.2.6(图3)红圈的按钮弹出选择外派合作商的弹窗,单击外派合作商再点击确定按钮或双击外派合作商可以选择外派合作商。

选择外派合作商的功能实现:

外派合作商弹窗的html代码:

@*外派合作商*@
<div id="frmHeZuoShang" class="reveal-modal" style="width: 705px; height: 340px;background-color:White">
<center>
    <table>
        <tr>
            <td>关键字:<input id="txtMoHu" style="width: 200px;" class="easyui-textbox" /></td>
            <td><a class="goodButton" οnclick="ChaXunHeZuoShangPage()" style="width: 80px; height: 20px">查询</a></td>
            <td><a class="goodButton" οnclick="parent.addTab('外派合作商', '/JiChuZiLiao/WaiPaiHeZuoShang');"  style="width: 80px; height: 20px">新增</a></td>
            <td><a class="goodButton" οnclick="XuanZheHeZuoShang()" style="width: 80px; height: 20px">确定</a></td>
        </tr>
    </table>
    <table id="dgvHeZuoShang" class="easyui-datagrid" style="width: 705px; height: 308px"
        data-options="singleSelect:true,onDblClickRow:XuanZheHeZuoShang,footer:'#_PartnersPaging'">
        <thead>
            <tr>
                <th data-options="field:'WaiPaiHeZuoShangID',width:80,hidden:true">
                    外派合作商ID
                </th>
                <th data-options="field:'HeZuoShangMingCheng',width:120" align="center">
                    合作商名称
                </th>
                <th data-options="field:'LiangXiRen',width:90" align="center">
                    联系人
                </th>
                <th data-options="field:'LianXiDianHuan',width:120" align="center">
                    联系电话
                </th>
                <th data-options="field:'DiZhi',width:150" align="center">
                    地址
                </th>
                <th data-options="field:'QQ',width:110" align="center">
                    QQ
                </th>
                <th data-options="field:'WeiXin',width:110" align="center">
                    微信
                </th>
            </tr>
        </thead>
    </table>
    <div class="_Paging" id="_PartnersPaging">
    <center>
        <table class="_Layout">
            <tr>
                <td><a href="javascript:;" class="_HomePage" title="首页" οnclick="PartnersShouYe()"></a></td>
                <td><a href="javascript:;" class="_PreviousPage" title="上一页" οnclick="PartnersShangYiYe()"></a></td>
                    <td><input class="_Skip" id="txtPartnersTiaoZhuan" title="回车跳转" οnkeypress="PartnersTiaoZhuan(event)" οnkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" /></td>
                <td>/<label id="lblPartnersZongYeShu"></label></td>
                <td><a href="javascript:;" class="_NextPage" title="下一页" οnclick="PartnersXiaYiYe()"></a></td>
                <td><a href="javascript:;" class="_TrailerPage" title="尾页" οnclick="PartnersWeiYe()"></a></td>
                    <td>|</td>
                <td>
                    总记录数:<label class = "_Totals" id="lblPartnersZongJiLuShu"></label>条
                </td>
            </tr>
        </table>
    </center>
   </div>
</center>
<a class="close-reveal-modal">×</a>
</div><span style="font-size:18px;">
</span>

外派合作商jQuery代码:

// 选择合作商
    function XuanZheHeZuoShang() {
        var Row = $('#dgvHeZuoShang').datagrid("getSelected");//获取选中的外派合作商
        if (Row) {
            $('#HeZuoShangID').val(Row.WaiPaiHeZuoShangID);
            $('#txtLianXiRen').textbox('setValue', $.trim(Row.LiangXiRen));
            $('#txtLianXiDianHua').textbox('setValue', $.trim(Row.LianXiDianHuan));
            $('#txtShouJianDanWei').textbox('setValue', $.trim(Row.HeZuoShangMingCheng));
            $('#txtShouJianDiZhi').textbox('setValue', $.trim(Row.DiZhi));
            $('#frmHeZuoShang').css('visibility', 'hidden');
            $('.reveal-modal-bg').css('display', 'none');
        }
        else {
            alert("请选中您要选择的合作商");
        }
    }<span style="font-size:18px;">
</span>

二、 外派工单

界面效果图:

2.2.6 (图4)

选择外派工单与选择外派合作商的方法一样。


第三步:保存外派单据

控制器提交保存代码:

#region 提交单据外派表单
public ActionResult InsertWaiPaiDanJu(Models.pw_GongDaoWaiPai GongDanWaiPai)
{
<span style="white-space:pre">	</span>GongDanWaiPai.GenXinShiJian = DateTime.Now;//获取当前时间
        GongDanWaiPai.YouXiaoFou = true;
        myMdl.pw_GongDaoWaiPai.AddObject(GongDanWaiPai);//保存界面传过来的表单
        if (myMdl.SaveChanges() > 0)
        {
             XiuGaiGongDanZhuangTai(80, Convert.ToInt32(GongDanWaiPai.GongDanLuRuID));//调用自定义的修改工单状态方法
             return Json("提交成功", JsonRequestBehavior.AllowGet);
        }
        else
        {
             return Json("提交失败", JsonRequestBehavior.AllowGet);
        }
}
//修改工单状态
private int XiuGaiGongDanZhuangTai(int intGongDanZhuangTaiID, int GongDanID)
{
        var varGongDan = (from dtGongDan in myMdl.pw_GongDianLuRu
                          where dtGongDan.GongDanLuRuID == GongDanID
                          select dtGongDan).Single<Models.pw_GongDianLuRu>();//查询要修改状态的单据
       varGongDan.GongDanZhuanTaiID = intGongDanZhuangTaiID;//修改
       return myMdl.SaveChanges();//保存
}
#endregion<span style="font-size:18px;">
</span>

第四步:打开界面层(View)

提交表单的jQuery代码:

//提交表单
    function BaoCunWaiPaiDan() {
        if ($('#txtLianXiRen').val() == "") {
            alert("请选择联系人"); return;
        }       
            if ($('#txtKuaiDiDanHao').val() == "") {
            alert("请填写快递单号"); return;
        }
            if ($('#txtGongDan').val() == "") {
            alert("请选择工单"); return;
        }
        
        $.getJSON("/WeiXiuGuanLi/ShengChengDanHao", function (data) {
            $('#txtWaiPaiDanHao').val(data);
            if (data) {
                if ($('#txtWaiPaiDanHao').val() == "") { alert("单据号获取失败"); return; }
                    if (confirm("是否进行保存操作?")) {
                        $.ajax({
                            type: 'post',
                            url: '../WeiXiuGuanLi/InsertWaiPaiDanJu',
                            data: $('#formWaiPai').serialize(),
                            success: function (type) {
                                alert(type + ",单据号为:" + $('#txtWaiPaiDanHao').val());
                                window.location.href = "";//刷新当前页面
                            }
                        });
                    }
                }
        });
    }<span style="font-size:18px;">
</span>
提交保修后我们可以点击 按钮转到查看外单的界面

界面效果图:


2.2.6(图5)

当外派的单据返回到店里时我们可以选中回店的单据,然后点击外派返店按钮,点击后弹出一个弹窗如2.2.6(图6):

2.2.6(图6)

填写相应的信息后点击提交按钮完成返店操作。

第一步:数据库

表与关系

2.2.6(图7)

表1:工单外派(pw_GongDanWaiPai)

存外派的单据信息

列名

类型

主外键

说明

GongDaoWaiPaiID

int

主键

工单外派ID

GongDanLuRuID

int

外键

工单录入ID

CaoZhuYuanID

int

外键

录入员ID

WaiPaiQianGongDanZhuangTaiID

int

外键

外派时工单状态ID

FangDianJieShouRenID

int

外键

返店录入员ID

FangHuiKuaiID

int

外键

返店快递ID

ShouJianRenID

int

外键

收件人ID

KuaiDiID

int

外键

外派快递ID

WaiPaiDanJuHao

nchar(50)

 

外派单据号

WaiPaiShiJian

date

 

外派时间

KuaiDiDanHao

nchar(50)

 

快递单号

SunHuaiMiaoShu

text

 

损坏描述

FangDianShiJian

date

 

返店时间

FanDianKuaiDiDanHao

nchar(50)

 

返店快递单号

GenXinShiJian

datetime

 

更新时间

YouXiaoFou

bit

 

有效

 

表2:员工表(sys_YuanGong)

列名

数据类型

主外键

说明

YuanGongID

int

主键

员工ID

LuRuYuanID

int

外键

录入员ID

JueSeID

int

外键

角色ID

YuanGongZhuangTaiID

int

外键

员工状态ID

MenDianID

int

外键

门店ID

YuanGongBianHao

nchar(50)

 

员工编号

YuanGongXingMing

nchar(50)

 

员工姓名

XingBie

nchar(50)

 

性别

JiGuan

nchar(50)

 

籍贯

XueLi

nchar(50)

 

学历

ChuShengRiQi

date

 

出生日期

ShenFenZhengHao

nchar(50)

 

身份证号

RuZhiRiQi

date

 

入职日期

RuZhiDiDian

nchar(50)

 

入职地址

YiDongShouJi

nchar(50)

 

移动手机

JiaTingDianHua

nchar(50)

 

家庭电话

DiXin

nchar(50)

 

底薪

DianZiYouXiang

nchar(50)

 

电子邮箱

TongXunDiZhi

nchar(100)

 

通讯地址

BeiZhu

nchar(100)

 

备注

GengXinShiJian

datetime

 

更新时间

YouXiaoFou

bit

 

有效否

MiMa

 

 

密码

 

表3:属性明细表(sys_ShuXingMingXi)

列名

数据类型

主外键

说明

ShuXingMingXiID

int

主键

属性明细ID

LuRuYuanID

int

外键

录入员ID

ShuXingJiHeID

int

外键

 

ShuXingMingXiMingCheng

nchar(50)

 

 

GengXinShiJian

datetime

 

 

YouXiaoFou

bit

 

 

BeiZhu

nchar(50)

 

 

 

表4:工单录入表(pw_GongDianLuRu)

用于存放钟表录入的信息

列名

数据类型

主键/外键

说明

GongDanLuRuID

int

主键

工单录入ID

YuanShiDanHaoID

int

外键

原始单号ID

GongDanZhuanTaiID

int

外键

工单状态ID

JinEZhuangTaiID

int

外键

金额状态ID

GongDanLeiXingID

int

外键

工单类型ID

KeHuID

int

外键

客户ID

JianXiuLeiXingID

int

外键

检修类型ID

PinPaiID

int

外键

品牌ID

GongDanRiQi

date

 

工单日期

GongDanBianHao

nchar(50)

 

工单编号

SongXiuRiQi

data

 

送修日期

YuFanRiQi

data

 

预返日期

FenYongJinE

decimal(18, 4)

 

费用金额

ZhongBiaoLeiXing

nchar(10)

 

钟表类型

BiaoKuan

nchar(10)

 

表款

GuiGe

text

 

规格/名称

XiuPeiJiLu

text

 

修配记录

JiXinXingHao

nchar(50)

 

机芯号

BiaoXingHao

nchar(50)

 

表型号

BiaoShenHao

nchar(50)

 

表身号

BiaoDaiJieShu

nchar(50)

 

表带节数

ZhongBiaoQiTaoMiaoShu

varchar(400)

 

钟表其他描述

WaiGuan

text

 

外观

KeHuZhiShu

varchar(400)

 

客户自述

YouXiaoFou

Bit

 

有效否

 

表5:外派合作商表(sys_WaiPaiHeZuoShang)

列名

数据类型

主外键

说明

WaiPaiHeZuoShangID

int

主键

外派合作商ID

LuRuYuanID

int

外键

录入员ID

HeZuoShangMingCheng

nchar(50)

 

合作商名称

LiangXiRen

nchar(50)

 

联系人

LianXiDianHuan

nchar(50)

 

联系电话

DiZhi

nchar(100)

 

地址

QQ

nchar(50)

 

qq

WeiXin

nchar(50)

 

微信

GengXinShiJian

datetime

 

更新时间

YouXiaoFou

bit

 

有效否

 

第二步:打开控制器

提交返店信息控制器代码:

<span style="white-space:pre">	</span>#region 外派返店        
        /// <param name="dtWaiPaiDan">返店信息表单</param>
        /// <param name="intWaiPaiDanJuID">外派单据ID</param>
        /// <param name="intCaoZuoYuanID">操作员ID</param>
        /// <returns></returns>
        public ActionResult WaiPaiFanDian(Models.pw_GongDaoWaiPai dtWaiPaiDan, int intWaiPaiDanJuID, int intCaoZuoYuanID)
        {
            #region 录入返店信息
            var varWaiPai = (from dtWaiPai in myMdl.pw_GongDaoWaiPai
                             where dtWaiPai.GongDaoWaiPaiID == intWaiPaiDanJuID
                             select dtWaiPai).Single<Models.pw_GongDaoWaiPai>();
            varWaiPai.FangHuiKuaiID = dtWaiPaiDan.FangHuiKuaiID;
            varWaiPai.FangDianJieShouRenID = intCaoZuoYuanID;
            varWaiPai.FangDianShiJian = dtWaiPaiDan.FangDianShiJian;
            varWaiPai.FanDianKuaiDiDanHao = dtWaiPaiDan.FanDianKuaiDiDanHao;
            int i = myMdl.SaveChanges();
            #endregion
            if (i > 0)
            {
                #region 修改工单状态
                var varGongDan = (from dtGongDan in myMdl.pw_GongDianLuRu
                                  where dtGongDan.GongDanLuRuID == dtWaiPaiDan.GongDanLuRuID
                                  select dtGongDan).Single<Models.pw_GongDianLuRu>();
                varGongDan.GongDanZhuanTaiID = 81;
                myMdl.SaveChanges();
                #endregion
                return Json(true, JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json(false, JsonRequestBehavior.AllowGet);
            }
        }
        #endregion<span style="font-size:18px;">
</span>

第三步:打开视图层

打开弹窗jQuery代码:

//打开外派返店弹窗
    function WaiPaiFanDian() {
        $('#formFanDian').form("clear");
        var varFanDian = $('#dgvWaiPaiDan').datagrid("getSelected");
        if (varFanDian) {
            if (varFanDian.FangDianJieShouRen == "未返店") {
                $('#WaiPaiFanDian').reveal($(this).data());//打开弹窗
                $('#lblGongDanBianHao').html(varFanDian.GongDanBianHao);
                $('#lblWaiPaiDanHao').html(varFanDian.WaiPaiDanJuHao);
                $('#lblWaiPaiShiJian').html(varFanDian.WaiPaiShiJian);
                $('#GonDanID').val(varFanDian.GongDanLuRuID);
            }
            else {
                alert("当前单据已返店");
            }
        }
        else {
            alert("请选择返店的单据");
        }
    }<span style="font-size:18px;">
</span>

提交返店信息jQuery代码:

//提交返店信息
    function TiJiaoFanDian() {
        if ($('#cboKuaiDi').combobox("getValue") == "" && $('#cboKuaiDi').combobox("getText") !="员工自带") {
            alert("请选择快递"); return;
        }
        if ($('#txtKaiDiDanHao').val() == "" ) {
            alert("请填写快递单号"); return;
        }
        var maintenance_cost_Date = $("#lblWaiPaiShiJian").html(); //获取日期
        var predict_return_Date = $("#dtpFanDianShiJian").datebox("getValue");
        var d1 = new Date(maintenance_cost_Date.replace(/\-/g, "\/")); //通过正则表达转化
        var d2 = new Date(predict_return_Date.replace(/\-/g, "\/"));
        if(d1>d2)
        {
            alert("返店时间不能早于外派时间!");
            return;
        }
        $.ajax({
            type: 'post',
            url: '/WeiXiuGuanLi/WaiPaiFanDian?intWaiPaiDanJuID=' + $('#dgvWaiPaiDan').datagrid("getSelected").GongDaoWaiPaiID
           + "&" + "intCaoZuoYuanID=" + parent.ParentID,
            data: $('#formFanDian').serialize(),
            success: function (Dt) {
                if (Dt) {
                    alert("提交成功");
                    $('#WaiPaiFanDian').css('visibility', 'hidden');
                    $('.reveal-modal-bg').css('display', 'none');
                    ChaXun();
                }
                else {
                    alert("提交失败");
                }
            }
        });
    }<span style="font-size:18px;">
</span>
以上内容仅供学习,禁止用于商业用途
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值