您的位置:首页 > 其它

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

2015-05-30 14:40 369 查看
工单外派模块

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

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

界面效果图:




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" onclick="ChaXunHeZuoShangPage()" style="width: 80px; height: 20px">查询</a></td>
<td><a class="goodButton" onclick="parent.addTab('外派合作商', '/JiChuZiLiao/WaiPaiHeZuoShang');"  style="width: 80px; height: 20px">新增</a></td>
<td><a class="goodButton" onclick="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="首页" onclick="PartnersShouYe()"></a></td>
<td><a href="javascript:;" class="_PreviousPage" title="上一页" onclick="PartnersShangYiYe()"></a></td>
<td><input class="_Skip" id="txtPartnersTiaoZhuan" title="回车跳转" onkeypress="PartnersTiaoZhuan(event)" onkeyup="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="下一页" onclick="PartnersXiaYiYe()"></a></td>
<td><a href="javascript:;" class="_TrailerPage" title="尾页" onclick="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>


以上内容仅供学习,禁止用于商业用途
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: