import BaseController from "../baseController";
|
import { Post } from "egg-shell-decorators";
|
import moment = require("moment");
|
import { ExpressSFOrder } from '../../entity/express/sf/expressSFOrder';
|
import { ExpressSFOrderRoute } from '../../entity/express/sf/expressSFOrderRoute';
|
|
export default class expressSFOrder extends BaseController {
|
//#region 北京顺丰通过宏远推送运单 pushOrderByHY
|
/// <summary>
|
///北京顺丰通过宏远推送运单 pushOrderByHY
|
/// </summary>
|
/// <returns>返回获取快递单号结果</returns>
|
///
|
@Post()
|
public async pushOrderByHY() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
try {
|
//#region 校验数据
|
|
if (!body.orderIdList) {
|
this.info.result = false;
|
this.info.msg = "至少选择一条记录!";
|
ctx.body = this.info;
|
return;
|
}
|
//#endregion
|
let orderIdList = body.orderIdList.split(",");
|
var aLLSuccess = true;
|
var msg = "返回信息:";
|
for (let orderId of orderIdList) {
|
let info = null;
|
info = await ctx.service.express.shunfengHelper.pushOrderByHY(orderId, 1);
|
if (!info.result) {
|
aLLSuccess = false;
|
}
|
msg = msg + info.msg;
|
}
|
this.info.result = aLLSuccess;
|
this.info.msg = msg;
|
ctx.body = this.info;
|
return;
|
} catch (ex) {
|
this.info.result = false;
|
this.info.msg = ex.message;
|
ctx.body = this.info;
|
return;
|
}
|
}
|
// #endregion
|
|
//#region 北京顺丰通过宏远获取路由 getRouteByHY
|
/// <summary>
|
///北京顺丰通过宏远获取路由 getRouteByHY
|
/// </summary>
|
/// <returns>返回获取快递路由信息结果</returns>
|
///
|
@Post()
|
public async getRouteByHY() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
try {
|
//#region 校验数据
|
|
if (!body.orderIdList) {
|
this.info.result = false;
|
this.info.msg = "至少选择一条记录!";
|
ctx.body = this.info;
|
return;
|
}
|
//#endregion
|
let orderIdList = body.orderIdList.split(",");
|
var aLLSuccess = true;
|
var msg = "返回信息:";
|
for (let orderId of orderIdList) {
|
let info = null;
|
let where = "sFOrder_Id=:sFOrder_Id";
|
var orderInfo = await this.dbRead
|
.createQueryBuilder(ExpressSFOrder, "t")
|
.where(where, {
|
sFOrder_Id: orderId
|
})
|
.getOne();
|
var hYOrderInfo = { ordernoOid: orderInfo.orderCode };
|
info = await ctx.service.express.hongyuanHelper.getRoute(hYOrderInfo);
|
if (info.result) {
|
|
var sfOrderInfo = await this.dbRead.findOne(ExpressSFOrderRoute, {
|
where: { sFOrder_Id: orderInfo.sFOrder_Id },
|
order: { accept_time: "DESC" }
|
});
|
if (info.data && Array.isArray(info.data)) {
|
// 顺序排
|
let dataAsc = info.data.sort((a, b) => {
|
return a.updateTime > b.updateTime ? 1 : -1;
|
});
|
|
for (var item of dataAsc) {
|
var updateTime = moment(item.updateTime);
|
|
// 已经记录的不在记录
|
if (sfOrderInfo != null) {
|
let accept_time = moment(sfOrderInfo.accept_time);
|
if (updateTime <= accept_time) {
|
continue;
|
}
|
}
|
let routeInfo = new ExpressSFOrderRoute();
|
routeInfo.mailno = orderInfo.mailno;
|
routeInfo.accept_time = item.updateTime;
|
routeInfo.accept_address = item.action;
|
routeInfo.sFOrder_Id = orderInfo.sFOrder_Id;
|
await this.dbWrite.insert(ExpressSFOrderRoute, routeInfo);
|
}
|
}
|
|
}
|
else {
|
aLLSuccess = false;
|
}
|
msg = msg + info.msg;
|
}
|
this.info.result = aLLSuccess;
|
this.info.msg = msg;
|
ctx.body = this.info;
|
return;
|
} catch (ex) {
|
this.info.result = false;
|
this.info.msg = ex.message;
|
ctx.body = this.info;
|
return;
|
}
|
}
|
// #endregion
|
|
//#region 泉州顺丰通过丰桥推送运单 pushOrderbyFQ
|
/// <summary>
|
///泉州顺丰通过丰桥推送运单 pushOrderbyFQ
|
/// </summary>
|
/// <returns>返回获取快递单号结果</returns>
|
///
|
@Post()
|
public async pushOrderbyFQ() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
try {
|
//#region 校验数据
|
|
if (!body.orderIdList) {
|
this.info.result = false;
|
this.info.msg = "至少选择一条记录!";
|
ctx.body = this.info;
|
return;
|
}
|
//#endregion
|
let orderIdList = body.orderIdList.split(",");
|
var aLLSuccess = true;
|
var msg = "返回信息:";
|
for (let orderId of orderIdList) {
|
let info = null;
|
info = await ctx.service.express.shunfengHelper.pushOrderbyFQ(orderId);
|
if (!info.result) {
|
aLLSuccess = false;
|
}
|
msg = msg + info.msg;
|
}
|
this.info.result = aLLSuccess;
|
this.info.msg = msg;
|
ctx.body = this.info;
|
return;
|
} catch (ex) {
|
this.info.result = false;
|
this.info.msg = ex.message;
|
ctx.body = this.info;
|
return;
|
}
|
}
|
// #endregion
|
|
//#region 泉州顺丰通过丰桥获取路由 getRouteByFQ
|
/// <summary>
|
///泉州顺丰通过丰桥获取路由 getRouteByFQ
|
/// </summary>
|
/// <returns>返回获取快递路由信息结果</returns>
|
///
|
@Post()
|
public async getRouteByFQ() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
try {
|
//#region 校验数据
|
|
if (!body.orderIdList) {
|
this.info.result = false;
|
this.info.msg = "至少选择一条记录!";
|
ctx.body = this.info;
|
return;
|
}
|
//#endregion
|
let orderIdList = body.orderIdList.split(",");
|
var aLLSuccess = true;
|
var msg = "返回信息:";
|
for (let orderId of orderIdList) {
|
let info = null;
|
info = await ctx.service.express.shunfengHelper.getRouteByFQ(orderId);
|
if (info.msg.indexOf("错误信息") > 0) {
|
info.result = false;
|
}
|
else {
|
info.result = true;
|
}
|
if (!info.result) {
|
aLLSuccess = false;
|
}
|
msg = msg + info.msg;
|
}
|
this.info.result = aLLSuccess;
|
this.info.msg = msg;
|
ctx.body = this.info;
|
return;
|
} catch (ex) {
|
this.info.result = false;
|
this.info.msg = ex.message;
|
ctx.body = this.info;
|
return;
|
}
|
}
|
// #endregion
|
|
|
//#region 通过丰桥轮询获取所有泉州顺丰快递单号, 用于作业调度使用 GetFQExpressCode
|
/// <summary>
|
///通过丰桥轮询获取所有泉州顺丰快递单号, 用于作业调度使用 GetFQExpressCode
|
/// </summary>
|
/// <returns>返回获取快递结果</returns>
|
///
|
@Post()
|
public async GetFQExpressCode() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
try {
|
var pageIndex = body.pageIndex
|
var infoStr = await ctx.service.tms.routerHelper.getFQExpressCodeByNode(pageIndex);
|
this.info.result = infoStr.result;
|
this.info.msg = infoStr.msg;
|
ctx.body = this.info;
|
return;
|
} catch (ex) {
|
this.info.result = false;
|
this.info.msg = ex.message;
|
ctx.body = this.info;
|
return;
|
}
|
}
|
|
}
|