import BaseController from "../baseController";
|
import { Post } from "egg-shell-decorators";
|
import moment = require("moment");
|
import { ExpressSFOrderRoute } from '../../entity/express/sf/expressSFOrderRoute';
|
import { ExpressEMSOrder } from '../../entity/express/ems/expressEMSOrder';
|
import { ExpressEMSOrderRoute } from '../../entity/express/ems/expressEMSOrderRoute';
|
|
export default class expressEMSOrder extends BaseController {
|
//#region 北京EMS通过宏远推送运单 pushOrderByHY
|
/// <summary>
|
///北京EMS通过宏远推送运单 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.emsHelper.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 北京EMS通过宏远获取路由 getRouteByHY
|
/// <summary>
|
///北京EMS通过宏远获取路由 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 = "eMSOrder_Id=:eMSOrder_Id";
|
var orderInfo = await this.dbRead
|
.createQueryBuilder(ExpressEMSOrder, "t")
|
.where(where, {
|
eMSOrder_Id: orderId
|
})
|
.getOne();
|
var hYOrderInfo = { ordernoOid: orderInfo.orderCode };
|
info = await ctx.service.express.hongyuanHelper.getRoute(hYOrderInfo);
|
if (info.result) {
|
|
var emsOrderInfo = await this.dbRead.findOne(ExpressSFOrderRoute, {
|
where: { sFOrder_Id: orderInfo.eMSOrder_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 (emsOrderInfo != null) {
|
let accept_time = moment(emsOrderInfo.accept_time);
|
if (updateTime <= accept_time) {
|
continue;
|
}
|
}
|
let routeInfo = new ExpressEMSOrderRoute();
|
routeInfo.mailno = orderInfo.mailno;
|
routeInfo.accept_time = item.updateTime;
|
routeInfo.accept_address = item.action;
|
routeInfo.eMSOrder_Id = orderInfo.eMSOrder_Id;
|
await this.dbWrite.insert(ExpressEMSOrderRoute, 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
|
}
|