// import * as sql from "mssql";
|
import { Post } from "egg-shell-decorators";
|
import BaseController from "../../baseController";
|
import { vPurchaseEnterList } from "../../../entity/inbound/stat/vPurchaseEnterList";
|
import { vPurchaseOrderList } from "../../../entity/inbound/stat/vPurchaseOrderList";
|
import { vPurchaseShelveList } from "../../../entity/inbound/stat/vPurchaseShelveList";
|
// import { vPurchaseOrderList } from "../../../entity/inbound/stat/vPurchaseOrderList";
|
// import { vPurchaseShelveList } from "../../../entity/inbound/stat/vPurchaseShelveList";
|
// import { vPurchaseEnterListProduct } from "../../../entity/inbound/stat/vPurchaseEnterListProduct";
|
/**
|
* 收货统计-到货明细统计
|
*/
|
export default class VpurchaseOrderController extends BaseController {
|
// #region 获取进货量前十名货主柱状图信息
|
@Post()
|
public async getProductInfo() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let type = body.type;
|
let storage_Id = body.storage_Id;
|
let consignor_Id = body.consignor_Id;
|
let beginTime = body.beginTime;
|
let endTime = body.endTime;
|
let userProduct_Id = body.userProduct_Id;
|
let provider_Id = body.provider_Id;
|
let where: any = {};
|
where.userProduct_Id = userProduct_Id;
|
if (storage_Id) {
|
where.storage_Id = storage_Id;
|
}
|
if (provider_Id) {
|
where.provider_Id = provider_Id;
|
}
|
if (consignor_Id) {
|
where.consignor_Id = consignor_Id;
|
}
|
try {
|
// let sql = "";
|
let productList;
|
let datalist;
|
if (type === "物料统计") {
|
// sql = "select top 5 quantity,productName from vPurchase_EnterList where " + where + " order by quantity desc";
|
if (beginTime && endTime) {
|
productList = await this.dbRead
|
.createQueryBuilder(vPurchaseEnterList, "t")
|
.select(["quantity", "productName"])
|
.where(where)
|
.andWhere("applyDate>=:beginTime and applyDate<=:endTime", {
|
beginTime: beginTime,
|
endTime: endTime
|
})
|
.getRawMany();
|
} else {
|
productList = await this.dbRead.createQueryBuilder(vPurchaseEnterList, "t").select(["quantity", "productName"]).where(where).getRawMany();
|
}
|
datalist = productList.slice(0, 5);
|
} else {
|
// sql =
|
// "select top 5 quantity,providerShortName from vPurchase_EnterList where " + where + " order by quantity desc";
|
if (beginTime && endTime) {
|
productList = await this.dbRead
|
.createQueryBuilder(vPurchaseEnterList, "t")
|
.select(["quantity", "providerShortName"])
|
.where(where)
|
.andWhere("applyDate>=:beginTime and applyDate<=:endTime", {
|
beginTime: beginTime,
|
endTime: endTime
|
})
|
.getRawMany();
|
} else {
|
productList = await this.dbRead
|
.createQueryBuilder(vPurchaseEnterList, "t")
|
.select(["quantity", "providerShortName"])
|
.where(where)
|
.getRawMany();
|
}
|
datalist = productList.slice(0, 10);
|
}
|
|
let datainfo: any = {};
|
let category = [];
|
let seriesList: any = [];
|
if (type === "物料统计") {
|
for (let item of datalist) {
|
category.push(item.productName);
|
seriesList.push(item.quantity);
|
}
|
let series = [
|
{
|
name: "入库量",
|
type: "bar",
|
data: seriesList
|
}
|
];
|
datainfo = {
|
category: category,
|
series: series
|
};
|
} else {
|
for (let item of datalist) {
|
let series = {
|
name: item.providerShortName,
|
value: item.quantity
|
};
|
seriesList.push(series);
|
}
|
datainfo = {
|
seriesList: seriesList
|
};
|
}
|
this.info.result = true;
|
this.info.msg = "获取图标成功";
|
this.info.data = datainfo;
|
ctx.body = this.info;
|
return;
|
} catch (error) {
|
this.info.result = false;
|
this.info.msg = error.message;
|
ctx.body = this.info;
|
return;
|
}
|
}
|
|
// #endregion
|
|
// #region 获取预到货数量信息
|
/**
|
/ 获取预到货数量信息
|
*/
|
@Post()
|
public async getOrderStatistics() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
// let userInfo = await ctx.helper.userInfo();
|
let storage_Id = body.storage_Id;
|
let consignor_Id = body.consignor_Id;
|
let beginTime = body.beginTime;
|
let endTime = body.endTime;
|
let userProduct_Id = body.userProduct_Id;
|
let provider_Id = body.provider_Id;
|
let where: any = {};
|
where.userProduct_Id = userProduct_Id;
|
if (storage_Id) {
|
where.storage_Id = storage_Id;
|
}
|
if (provider_Id) {
|
where.provider_Id = provider_Id;
|
}
|
if (consignor_Id) {
|
where.consignor_Id = consignor_Id;
|
}
|
try {
|
let quantityInfo;
|
let enterQuantityInfo;
|
let inQuantityInfo;
|
let shelvedQuantityInfo;
|
// 预到货单数量合计
|
// let sql = "select sum(Quantity) as sum from vPurchase_OrderList where " + where + " ";
|
// quantityInfo = await this.dbRead.query(sql);
|
if (beginTime && endTime) {
|
quantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseOrderList, "t")
|
.select("sum(quantity)", "sum")
|
.where(where)
|
.andWhere("AuditDate>=:beginTime and AuditDate<=:endTime", {
|
beginTime: beginTime,
|
endTime: endTime
|
})
|
.getRawOne();
|
} else {
|
quantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseOrderList, "t")
|
.select("sum(quantity)", "sum")
|
.where(where)
|
|
.getRawOne();
|
}
|
|
// 收货入库数量合计
|
// sql = "select sum(EnterQuantity) as sum from vPurchase_OrderList where " + where + " ";
|
// let enterQuantityInfo = await this.dbRead.query(sql);
|
|
if (beginTime && endTime) {
|
enterQuantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseOrderList, "t")
|
.select("sum(enterQuantity)", "sum")
|
.where(where)
|
.andWhere("AuditDate>=:beginTime and AuditDate<=:endTime", {
|
beginTime: beginTime,
|
endTime: endTime
|
})
|
.getRawOne();
|
} else {
|
enterQuantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseOrderList, "t")
|
.select("sum(enterQuantity)", "sum")
|
.where(where)
|
.getRawOne();
|
}
|
|
// 当前在途数量合计
|
// sql =
|
// "select sum(ISNULL(Quantity,0) -ISNULL(EnterQuantity,0)) as sum from vPurchase_OrderList where " + where + " ";
|
// let inQuantityInfo = await this.dbRead.query(sql);
|
|
if (beginTime && endTime) {
|
inQuantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseOrderList, "t")
|
.select("sum(ISNULL(Quantity,0) -ISNULL(EnterQuantity,0))", "sum")
|
.where(where)
|
.andWhere("AuditDate>=:beginTime and AuditDate<=:endTime", {
|
beginTime: beginTime,
|
endTime: endTime
|
})
|
.getRawOne();
|
} else {
|
inQuantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseOrderList, "t")
|
.select("sum(ISNULL(Quantity,0) -ISNULL(EnterQuantity,0))", "sum")
|
.where(where)
|
.getRawOne();
|
}
|
|
// 已上架数量合计
|
// sql = "select sum(ShelvedQuantity) as sum from vPurchase_ShelveList where " + where + " ";
|
// let shelvedQuantityInfo = await this.dbRead.query(sql);
|
|
if (beginTime && endTime) {
|
shelvedQuantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseShelveList, "t")
|
.select("sum(shelvedQuantity)", "sum")
|
.where(where)
|
.andWhere("AuditDate>=:beginTime and AuditDate<=:endTime", {
|
beginTime: beginTime,
|
endTime: endTime
|
})
|
.getRawOne();
|
} else {
|
shelvedQuantityInfo = await this.dbRead
|
.createQueryBuilder(vPurchaseShelveList, "t")
|
.select("sum(shelvedQuantity)", "sum")
|
.where(where)
|
.getRawOne();
|
}
|
|
this.info.result = true;
|
this.info.msg = "获取成功";
|
quantityInfo = quantityInfo.sum;
|
enterQuantityInfo = enterQuantityInfo.sum;
|
inQuantityInfo = inQuantityInfo.sum;
|
shelvedQuantityInfo = shelvedQuantityInfo.sum;
|
this.info.data = {
|
quantityCount: quantityInfo,
|
enterQuantityCount: enterQuantityInfo,
|
inQuantityCount: inQuantityInfo,
|
shelvedQuantityCount: shelvedQuantityInfo
|
};
|
} catch (ex) {
|
this.info.result = false;
|
this.info.msg = "获取数据时出错:" + ex.message;
|
}
|
ctx.body = this.info;
|
}
|
// #endregion
|
}
|