MVC北京络捷斯特第三方物流系统技术解析(七)签收录入
当客户收到货物后,客服人员对客户已签收的货物做签收录入。点击签收录入。列表中自动列出的是所有要做签收录入的运单,也可输入运单号,查出某一票运单,进行签收录入。录入签收人和签收时间,点击“签收”,进行确认。
2.7.1.2.(图1)
第一步:数据库
1、 表和表关系
2.7.1.1(图3)
表1:运输订单表(PWOrderForTransportationList)
用于存放运输订单的信息
PrimaryKey(s): OrderForTransportationID
列名 | 数据类型 | 主键/外键 | 说明 |
OrderForTransportationID | int | 主键 | 订单运输信息ID |
OrderForGoodsNumber | nchar (50) |
| 订单号 |
VocationalTypeID | int | 外键 | 业务类型ID |
HeadstreamID | int | 外键 | 始发地ID |
DestinationID | int | 外键 | 目的地ID |
TakeDeliveryTime | datetime |
| 取货时间 |
ArriveTime | datetime |
| 到货时间 |
TakeDeliveryID | int | 外键 | 取货ID |
DeliverGoodsID | int | 外键 | 签单ID |
WrittenPermissionID | int | 外键 | 返回ID |
ClientContractsConsignID | int | 外键 | 合同托运客户ID |
ShipperName | nchar (50) |
| 托运人姓名 |
ShipperPhoneNumber | nchar (50) |
| 托运人电话 |
ShipperUnitsID | int | 外键 | 托运人单位ID |
ShipperLocation | nchar (50) |
| 托运人地址 |
ShipperAccount | nchar (50) |
| 托运帐号 |
ShipperPostcode | nchar (50) |
| 托运人邮编 |
ClientManager | nchar (50) |
| 客户经理 |
StorePickupPersonID | int | 外键 | 取货人ID |
StorePickupPersonName | nchar (50) |
| 取货联系人 |
StorePickupPersonPhoneNumber | nchar (50) |
| 取货联系人电话 |
StorePickupPersonAddress | nchar (50) |
| 取货地址 |
ProjectID | int | 外键 | 项目ID |
ConsigneeName | nchar (10) |
| 收货人姓名 |
ConsigneePhoneNumber | nchar (50) |
| 收货人电话 |
ConsigneeUnit | nchar (50) |
| 收货人单位 |
ConsigneeAddress | nchar (50) |
| 收货人地址 |
ConsigneeAccount | nchar (50) |
| 收货人帐号 |
ConsigneePostcode | nchar (50) |
| 收货人邮编 |
ConsigneeID | int | 外键 | 收货人ID |
CarriageFare | decimal (18, 2) |
| 运费 |
IncidentalExpenses | decimal (18, 2) |
| 杂费 |
CostSumUp | decimal (18, 2) |
| 费用小计 |
WhetherOrNotInsureDeclare | bit |
| 保声明否 |
SettleAccountsWayID | int | 外键 | 保险费 |
AdvanceReceipts | decimal (18, 2) |
| 结算方式ID |
InsureExpenses | decimal (18, 2) |
| 预收款 |
PayNumber | nchar (50) |
| 付费帐号 |
Remarks | nchar (100) |
| 备注 |
FabricationOrderFormID | int | 外键 | 制单人ID |
AcceptanceTime | datetime |
| 受理时间 |
AcceptanceUnitID | int | 外键 | 受理单位ID |
Receiver | nchar (10) |
| 签收人 |
SignForTime | datetime |
| 签收时间 |
WhetherOrNotSignFor | bit |
| 签收否 |
RepeatOrderStateID | int | 外键 | 返单状态ID |
RepeatOrderPeopleID | int | 外键 | 返单人ID |
RepeatOrderTime | datetime |
| 返单时间 |
RepeatOrderReceive | bit |
| 返单时间 |
BeforeOneTime | nchar (100) |
| 当前地点 |
CheckEmploy | bit |
| 复核否 |
ClientID | int | 外键 | 客户ID |
ClientAgreementInformationID | int | 外键 | 客户合同ID |
TongZhiCiShu | int | 外键 |
|
QuHuoFou | bit |
|
|
ShengChenJiHuaDan | nchar (30) |
| 生成计划单号 |
ShengChenFou | bit |
| 生成否 |
DingDanZhuangTai | bit |
| 订单状态 |
ZongTiJi | decimal (18, 3) |
| 总体积 |
ZongShuLiang | decimal (18, 3) |
| 总数量 |
ZongZhongLiang | decimal (18, 3) |
| 总重量 |
RouteID | int | 外键 | 路由ID |
ZhanCunFou | bit |
| 暂存否 |
HuoWeiID | int | 外键 | 货位ID |
HuoWeiHao | nchar (50) |
| 货位号 |
YiQuHuo | bit |
| 已取否 |
YiPaiHuo | bit |
| 已派否 |
QuPaiLeiXingFou | bit |
| 取派类型否 |
LunLiID | int | 外键 | 运力ID |
ShuaiHuoFou | bit |
| 甩货否 |
YouYongFou | bit |
| 有否否 |
ShengChengZhanDanFou | bit |
| 生成账单否 |
表2:属性明细表(SYSAttributeDetailList)
用于存放集合信息
列名 | 数据类型 | 主键/外键 | 说明 |
AttributeDetailID | int | 主键 | 属性明细ID |
AttributeGatherID | int | 外键 | 属性集合ID |
AttributeDetailName | nchar (10) |
| 属性明细名称 |
YouYongFou | bit |
| 有效否 |
表3:站点信息表(SYSSiteInformationList)
用于存放站点信息
列名 | 数据类型 | 主键/外键 | 说明 |
SiteInformationID | int | 主键 | 站点信息ID |
SiteTypeID | int | 外键 | 站点类型ID |
SiteNumber | nchar (50) |
| 站点编号 |
SiteDesignation | nchar (50) |
| 站点名称 |
SiteAddress | nchar (50) |
| 站点详细地址 |
SiteTelephone | nchar (50) |
| 站点电话 |
SitePortraiture | nchar (50) |
| 站点传真 |
ZipCode | nchar (50) |
| 邮编 |
FenJianQu | nchar (50) |
| 分拣区 |
ChuCunQu | nchar (50) |
| 储存区 |
Contacts | nchar (10) |
| Contacts |
Remarks | nchar (100) |
| 备注 |
PlaceArea | decimal (18) |
| 场地面积 |
CarparkArea | decimal (18) |
| 停车场面积 |
Quantity | decimal (18) |
| 车位数量 |
YouYongFou | bit |
| 有效否 |
表4:所属单位表(SYSSubsidiaryUnitList)
用于存放单位信息
列名 | 数据类型 | 主键/外键 | 说明 |
SubsidiaryUnitID | int | 主键 | 所属单位ID |
InstitutionID | int | 外键 | 机构ID |
SubsidiaryUnitDesignation | nchar (50) |
| 所属单位名称 |
YouYongFou | bit |
| 有效否 |
表5:项目表(SYSProjectList)
用于存放项目信息
列名 | 数据类型 | 主键/外键 | 说明 |
ProjectID | int | 主键 | 项目ID |
WhetherProjectSpecialtype | bit |
| 项目特殊类型否 |
ProjectNumber | nchar (100) |
| 项目代码 |
ProjectDesignation | nchar (100) |
| 项目名称 |
ProjectDescribe | nchar (100) |
| 项目描述 |
YouYongFou | bit |
| 有效否 |
表6:员工表(SYSPersonnelList)
用于存放员工信息
列名 | 数据类型 | 主键/外键 | 说明 |
PersonnelID | int | 主键 | 员工ID |
DepartmentID | int | 外键 | 部门ID |
UseOrganization | int | 外键 | 使用机构ID |
OrganizationID | int | 外键 | 所属机构ID |
GenreID | int | 外键 | 所属类型ID |
SubsidiaryUnitID | int | 外键 | 所属单位ID |
SexID | int | 外键 | 性别ID |
CredentialsGenreID | int | 外键 | 证件类型ID |
StateID | int | 外键 | 状态ID |
Birthday | date |
| 人员编码 |
WorkDate | date |
| 区别码 |
PersonnelCode | nchar (50) |
| 姓名 |
DifferenceCode | nchar (50) |
| 出生日期 |
Name | nchar (10) |
| 工作日期 |
Duties | nchar (50) |
| 职务 |
CredentialsNumber | nchar (50) |
| 证件号码 |
Address | nchar (50) |
| 住址 |
PhoneNumber | nchar (50) |
| 电话 |
MobilePhone | nchar (50) |
| 手机 |
| nchar (50) |
| |
Remarks | nchar (50) |
| 备注 |
YouYongFou | bit |
| 有效否 |
表6:客户表(SYSClientList)
用于存放客户信息
列名 | 数据类型 | 主键/外键 | 说明 |
ClientID | int | 主键 | 客户ID |
ClientNumber | nchar (50) |
| 客户帐号 |
ClientEncoded | nchar (50) |
| 客户码 |
ClientUnitDesignation | nchar (50) |
| 客户单位名称 |
ClientAbbreviation1 | nchar (50) |
| 客户简称1 |
ClientAbbreviation2 | nchar (50) |
| 客户简称2 |
ClientManager | nchar (50) |
| 客户经理 |
ClientManagerBelephoneLdentification | nchar (50) |
| 客户经理电话 |
Contacts | nchar (50) |
| 联系人 |
ContactsTelephone | nchar (50) |
| 联系人电话 |
ContactsEmail | nchar (50) |
| 联系人Email |
ContactsVIP | nchar (50) |
| 联系人VIP |
ContactsJAI | nchar (50) |
| 联系人JAI |
ContactsRankID | int | 外键 | 客户级别ID |
ContactsZipCode | nchar (50) |
| 客户邮编 |
ProjectID | int | 外键 | 项目ID |
ContactsFacsimile | nchar (50) |
| 客户传真 |
EnglishAbbreviation | nchar (50) |
| 英文缩写 |
EnglishDesignation | nchar (50) |
| 英文名称 |
ContactsAddress | nchar (50) |
| 客户地址 |
ClientCompanyID | int | 外键 | 客户公司ID |
IndustryAttributeID | int | 外键 | 行业属性ID |
EnterpriseScaleID | int | 外键 | 企业规模ID |
MemberDeputy | nchar (50) |
| 会员代表 |
AgreementGrandfatherAddress | nchar (50) |
| 合同存档地 |
BankOfDeposit | nchar (30) |
| 开户行 |
ClientAgreementID | int | 外键 | 客户合同ID |
BankofdepositAccountNumber | nchar (50) |
| 开户行帐号 |
DutyParagraph | nchar (50) |
| 税号 |
YouYongFou | bit |
| 有效否 |
TongBuFou | bit |
| 同步否 |
表7:客户合同表(SYSClientList)
用于存放客户合同信息
列名 | 数据类型 | 主键/外键 | 说明 |
ClientAgreementInformationID | int | 主键 | 客户合同信息ID |
AgreementNumber | nchar (30) |
| 合同编号 |
AgreementDesignation | nchar (30) |
| 合同名称 |
Agreement数据类型ID | int |
| 合同类型ID |
ClientID | int |
| 客户ID |
ProjectID | int |
| 项目ID |
VocationalPersonDeputy | nchar (30) |
| 业务代表人 |
VocationalPersonDeputyFashion | nchar (30) |
| 业务代表联系方式 |
EndDate | datetime |
| 截止日期 |
CarriageFareValue | decimal (18, 2) |
| 运费单价 |
InsuranceCompanyID | int |
| 保险公司ID |
SettleAccountsWayID | int |
| 结算方式ID |
AgreementGrandfatherAddress | nchar (30) |
| 合同存档地 |
Oursignatory | nchar (30) |
| 我方签署人 |
TheguestsSigntory | nchar (30) |
| 客方签署人 |
Remarks | nchar (100) |
| 备注 |
WhetherCheck | bit |
| 复核否 |
YouYongFou | bit |
| 有用否 |
InsuranceRate | decimal (18, 3) |
| 保险费率 |
表8:保险公司表(SYSInsuranceCompanyList)
用于存放保险公司信息
列名 | 数据类型 | 主键/外键 | 说明 |
InsuranceCompanyID | int | 主键 | 保险公司ID |
InsuranceCompanyDesignation | nchar (50) |
| 保险公司名称 |
InsuranceDesignationNumber | nchar (50) |
| 保险公司编号 |
InsuranceRate | nchar (50) |
| 保险费率 |
AmountInsured | nchar (50) |
| 投保金额 |
YouYongFou | bit |
| 有用否 |
第二步:控制器
2.7.1.2.(图2)
确定签收数据处理:
#region 签收录入
public int QueDingReceiver(int OrderForTransportationID, string Receiver, DateTime SignForTime)
{
Models.PWOrderForTransportationList Transportation = (from tb in YS.PWOrderForTransportationList
//tb 是 YS.PWOrderForTransportationList(实体类数据库的一张表)的一个别名
where tb.OrderForTransportationID == OrderForTransportationID
//tb.OrderForTransportationID(是表的主键ID)
//OrderForTransportationID(是界面穿个来的ID)
select tb).Single<Models.PWOrderForTransportationList>();
Transportation.Receiver = Receiver;//签收人
Transportation.SignForTime = SignForTime;//签收时间
Transportation.WhetherOrNotSignFor = true;//签收否
//保存表的改变
int i = YS.SaveChanges();
if (i > 0)
{
return i;
}
else
{
return 0;
}
}
#endregion
第三步:界面
2.7.1.2.(图3)
Html代码:
<table id="tbReceiver" class="easyui-datagrid" style=" width:auto; height:500px;" data-options="url:'/DingDanGuanL/YunShuGuanLi',
onClickRow:onClickRowDingDan,rownumbers:true,singleSelect:true,rowStyler:function(index,row){
if (index%2==0){
}
}">
<thead>
<tr>
<th data-options="field:'ok',align:'center',checkbox:true"></th>
<th data-options="field:'Updata',width:80,align:'center',formatter:myformatter2">修改</th>
<th data-options="field:'OrderForTransportationID',width:130,align:'center',hidden:true">订单号ID</th>
<th data-options="field:'OrderForGoodsNumber',width:130,align:'center'">订单号</th>
<th data-options="field:'ShipperName',width:130,align:'center'">托运人姓名</th>
<th data-options="field:'ShipperPhoneNumber',width:130,align:'center',hidden:true"> 托运人电话</th>
<th data-options="field:'ConsigneeName',width:130,align:'center',hidden:true"> 收货人姓名</th>
<th data-options="field:'ConsigneePhoneNumber',width:130,align:'center',hidden:true"> 收货人电话</th>
<th data-options="field:'ArriveTime2',width:130,align:'center'">要求到货时间</th>
<th data-options="field:'Receiver',width:130,align:'center',editor:'text'">签收人</th>
<th data-options="field:'SignForTime2',width:130,align:'center',editor:'datebox'">签收时间</th>
<th data-options="field:'WhetherOrnotSignFor',width:80,align:'center',hidden:true">签收否</th>
<th data-options="field:'Receiv',width:80,align:'center',formatter:myformatter3">签收</th>
</tr>
</thead>
</table>
JavaScript代码:
1. 编辑器
//编辑器
var editIndex = undefined;
//undefined(是不发生改变的信息)
function onClickRowDingDan(index) {
if (editIndex != index) {
//editIndex(编辑的索引)index(对应行的索引)
//beginEdit 开始编辑
//endEdit 技术编辑
$('#tbReceiver').datagrid('beginEdit', index);
$('#tbReceiver').datagrid('endEdit', editIndex);
//editIndex(编辑的索引) 等于 index(对应行的索引)
editIndex = index;
}
}
2. 模糊查询签收录入运单列表
//模糊查询信息
function SelectOrderForGoodsNumber() {
//DingDanGuanL/MoHuYunShuGuanLi(DingDanGuanL(控制器的名))MoHuYunShuGuanLi(方法名)
//OrderForGoodsNumber(参数)模糊等同于自己要输入的值
$.getJSON("/DingDanGuanL/MoHuYunShuGuanLi?OrderForGoodsNumber=" + $("#DingDanHaoChaXun").val(),
function (data) {
//datagrid加载这个方法的数据
$("#tbReceiver").datagrid('loadData', data);
});
}
3. 保存签收信息
var rowsCount = 0;
function Receiv() {
var ROW = $("#tbReceiver").datagrid('getSelected');
if (ROW.WhetherOrnotSignFor == true) {
//如果已经签收了,就不用再签收
alert("单号" + ROW.OrderForGoodsNumber + "已签收不能再签收");
}
else {
//否则就执行签收的方法
var OrderForTransportationID = ROW.OrderForTransportationID;
//ROW.OrderForTransportationID 要签收的那张运单
if (confirm("是否确定签收")) {
$('#tbReceiver').datagrid('endEdit', editIndex);
//OrderForTransportationID 运单ID
$.getJSON("/YunShuGuanLi/QueDingReceiver?OrderForTransportationID=" + OrderForTransportationID + "&"
// 签收人
+ "Receiver=" + ROW.Receiver + "&"
//签收时间
+ "SignForTime=" + ROW.SignForTime2,
function (data) {
if (data > 0) {
alert("确定签收成功");
$("#tbReceiver").datagrid('reload');
$("#tbReceiver").datagrid('loadData', data);
$("#tbReceiver").datagrid('reload');
} else {
alert("确定签收失败");
}
}
);
}
}
}
4. 如果签收人录入错了,可以进行修改签收信息
function Updata() {
var ROW = $("#tbReceiver").datagrid('getSelected');
//ROW.OrderForTransportationID 要修改签收的那张运单的信息
var OrderForTransportationID = ROW.OrderForTransportationID;
if (confirm("是否确定修改")) {
$('#tbReceiver').datagrid('endEdit', editIndex);
//将datagrid结束编辑
$.getJSON("/YunShuGuanLi/QueDingReceiver?OrderForTransportationID=" + OrderForTransportationID + "&"
+ "Receiver=" + ROW.Receiver + "&"//签收人
+ "SignForTime=" + ROW.SignForTime2,//签收时间
function (data) {
if (data > 0) {
alert("确定修改成功");
//刷新datagrid
$("#tbReceiver").datagrid('reload');
$("#tbReceiver").datagrid('loadData', data);
$("#tbReceiver").datagrid('reload');
} else {
alert("确定修改失败");
}
}
);
}
}
5. 导航
<script type="text/javascript" >
function addTab(title) {
if (!$('#tabsZaai').tabs('exists', title)) {
//复选框的ID值
$('#tabsZaai').tabs('add', {
//title (标题)
title: title,
//
content: "<iframe id=" + title + " style='width:100%;height:850px' scrolling=yes></iframe >",
//closable:true,当加载的标题是相同的,不会重复,而是覆盖的
closable: true
});
}
else {
$('#tabsZaai').tabs('select', title);
}
}
仅供学习,禁止用于商业用途