import { default as BaseController } from "../baseController";
|
import { Post } from "egg-shell-decorators";
|
import { BaseStorage } from "../../entity/basicInfo/base/baseStorage";
|
import { PurchaseOrder } from "../../entity/inbound/purchase/purchaseOrder";
|
import { PurchaseOrderList } from "../../entity/inbound/purchase/purchaseOrderList";
|
import { siemensApi } from "../../public/webServiceHelper";
|
// import { siemensApi } from "../../public/webServiceHelper";
|
|
/**
|
* 入库 - 扫描操作
|
*/
|
export default class InScanController extends BaseController {
|
// #region getDate 获取按拍入库的数据
|
@Post()
|
public async getPlateCodeDate() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let plateCode = body.plateCode;
|
let storage_Id = body.storage_Id;
|
ctx.service.inbound.inScanService.isOnShelve = body.isOnShelve;
|
this.info = await ctx.service.inbound.inScanService.getPurchaseInfoByPlateCode(plateCode, storage_Id);
|
|
ctx.body = this.info;
|
}
|
|
// #endregion
|
|
// #region enterPaiSave 按拍入库保存数据
|
@Post()
|
public async enterPaiSave() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let data = body;
|
if (!data.positionName) {
|
this.info.result = false;
|
this.info.msg = "货位不能为空!";
|
ctx.body = this.info;
|
}
|
if (!data.list) {
|
this.info.result = false;
|
this.info.msg = "预到货明细不能为空!";
|
ctx.body = this.info;
|
}
|
let sql = `Select top 1 orderCode from Purchase_Order O Inner Join Purchase_OrderList L on O.Order_Id=L.Order_Id
|
Where PlateCode=@0 AND L.Quantity>ISNULL(L.EnterQuantity,0)`;
|
let objOrderCode = await this.dbRead.query(sql, [data.plateCode]);
|
if (objOrderCode) {
|
data.orderCode = objOrderCode[0].orderCode;
|
}
|
this.info = await ctx.service.inbound.inScanService.paisaveAndShelve(data.positionName, data.orderCode, data.list, data.user_Id);
|
|
ctx.body = this.info;
|
}
|
|
// #endregion
|
|
// #region shelvePaiSave 按拍上架保存数据
|
@Post()
|
public async shelvePaiSave() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let data = body;
|
if (!data.positionName) {
|
this.info.result = false;
|
this.info.msg = "货位不能为空!";
|
ctx.body = this.info;
|
}
|
if (!data.list) {
|
this.info.result = false;
|
this.info.msg = "预到货明细不能为空!";
|
ctx.body = this.info;
|
}
|
this.info = await ctx.service.inbound.inScanService.shelvepaiSave(data.storage_Id, data.list, data.user_Id);
|
|
ctx.body = this.info;
|
}
|
|
// #endregion
|
|
// #region getDate 获取按拍上架的数据
|
@Post()
|
public async getShelvePlateData() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let plateCode = body.plateCode;
|
ctx.service.inbound.inScanService.isOnShelve = body.isOnShelve;
|
this.info = await ctx.service.inbound.inScanService.getPurchaseShelveCodeData(plateCode);
|
|
ctx.body = this.info;
|
}
|
|
// #endregion
|
|
//#region getData
|
/**
|
* 回车获取数据
|
*/
|
@Post()
|
public async getData() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
var poCode = body.poCode;
|
var itemNumber = body.itemNumber;
|
|
ctx.service.inbound.inScanService.isOnShelve = body.isOnShelve;
|
this.info = await ctx.service.inbound.inScanService.getPurchaseOrderData(poCode, itemNumber);
|
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region GetStorage
|
/**
|
* 获得仓库货位
|
*/
|
@Post()
|
public async getPosition() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let storage_Id = body.storage_Id;
|
let userInfo = await ctx.helper.userInfo();
|
|
let storageInfo = await this.dbRead.findOne(BaseStorage, storage_Id, {
|
select: ["storage_Id", "storageName"]
|
});
|
this.info.data = storageInfo;
|
|
let table = await ctx.service.inbound.inScanService.getPosition(storage_Id, userInfo.user_Id);
|
if (table == null) {
|
this.info.result = false;
|
this.info.msg = "收货位不存在";
|
ctx.body = this.info;
|
} else {
|
this.info.result = true;
|
this.info.dynamic = table;
|
ctx.body = this.info;
|
}
|
}
|
//#endregion
|
|
//#region saveCheck
|
/**
|
* 说明:校验采购单:入库时保质期如果超过一定时长(可设定)需要预警提示是否入库
|
* 时间:2019-01-15
|
*/
|
@Post()
|
public async saveCheck() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
|
let orderCode = body.orderCode;
|
let dataList = body.dataList;
|
|
this.info = await ctx.service.inbound.inScanService.saveCheck(orderCode, dataList);
|
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region save 保存采购入库
|
/**
|
* 说明:采购入库保存
|
* 时间:2019-01-15
|
*/
|
@Post()
|
public async save() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
|
let positionName = body.positionName;
|
let poCode = body.poCode;
|
let trackingNumber = body.trackingNumber;
|
let saleCode = body.saleCode;
|
let totalWeight = body.totalWeight;
|
let dataList = body.dataList;
|
let detailList = body.detailList;
|
let moveType = body.moveType;
|
let isChecked = body.isChecked;
|
let printQty = body.printQty;
|
let orderListDetail = body.orderListDetail;
|
|
siemensApi.domainUrl = this.app.config.domainUrl;
|
const detailListResult: any = await siemensApi.scanOrderData({
|
detailList: detailList
|
});
|
let res = JSON.parse(detailListResult);
|
if (!res.result) {
|
this.info.result = false;
|
this.info.msg = res.msg;
|
ctx.body = this.info;
|
return this.info;
|
}
|
|
this.info = await ctx.service.inbound.inScanService.purchaseEnterSave(
|
positionName,
|
poCode,
|
trackingNumber,
|
saleCode,
|
totalWeight,
|
dataList,
|
userInfo.user_Id,
|
moveType,
|
orderListDetail,
|
isChecked,
|
printQty
|
);
|
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region saveAndShelve 确认入库并自动生成上架单
|
/**
|
* 说明:确认入库并自动生成上架单
|
* 时间:2019-01-15
|
*/
|
@Post()
|
public async saveAndShelve() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
|
let positionName = body.positionName;
|
let orderCode = body.orderCode;
|
let dataList = body.dataList;
|
let partStatus = body.partStatus;
|
this.info = await ctx.service.inbound.inScanService.saveAndShelve(positionName, orderCode, dataList, userInfo.user_Id, partStatus);
|
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region purchaseEnterNoBillSave 无单扫描保存(自由选择货主供应商)
|
/**
|
* 无单扫描保存(自由选择货主供应商)
|
* 时间:2019-10-16
|
*/
|
@Post()
|
public async purchaseEnterNoBillSave() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
let dataList = body.dataList;
|
let isChecked = body.isChecked;
|
let printQty = body.printQty;
|
siemensApi.domainUrl = this.app.config.domainUrl;
|
if (body.moveType != 0) {
|
const detailListResult: any = await siemensApi.scanOrderData({
|
detailList: body.detailList
|
});
|
let res = JSON.parse(detailListResult);
|
if (!res.result) {
|
this.info.result = false;
|
this.info.msg = res.msg;
|
ctx.body = this.info;
|
return this.info;
|
}
|
}
|
|
this.info = await ctx.service.inbound.inScanService.noBillEnterSaveByConsignor(dataList, userInfo.user_Id, isChecked, printQty);
|
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region 返修合格回车器具编号获取信息
|
@Post()
|
public async getRepairdate() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
try {
|
let posionName = await this.dbRead.findOne(PurchaseOrder, {
|
plateCode: body.plateCode,
|
platUser_Id: userInfo.platUser_Id
|
});
|
let sql = `SELECT B.productCode FROM Base_ProductInfo B LEFT JOIN Base_Plate P ON B.plateType = P.plateType WHERE P.plateCode =@0`;
|
let productCodes = await this.dbRead.query(sql, [body.plateCode]);
|
this.info.data = posionName;
|
this.info.data2 = productCodes;
|
} catch (error) {
|
this.info.result = false;
|
this.info.msg = "错误:" + error.message;
|
}
|
this.info.result = true;
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region getlist 选择物料编号获取数据
|
@Post()
|
public async getlist() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
try {
|
let sql = `
|
SELECT productName, productCode, '' AS quantity, ''AS studate, ''AS studate FROM Base_ProductInfo where productCode =@0 and platUser_Id =@1`;
|
let datalist = await this.dbRead.query(sql, [body.productCode, userInfo.platUser_Id]);
|
this.info.data = datalist;
|
} catch (error) {
|
this.info.result = false;
|
this.info.msg = "错误:" + error.message;
|
}
|
this.info.result = true;
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region savedate 保存数据
|
@Post()
|
public async savedate() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let purchase = new PurchaseOrder();
|
// let userInfo = await ctx.helper.userInfo();
|
try {
|
let orderCode = await ctx.service.common.getCodeRegular(102);
|
let orderDate = body.zhubdate;
|
purchase.orderCode = orderCode;
|
purchase.plateCode = orderDate.plateCode;
|
purchase.orderType = body.orderType;
|
purchase.storageName = orderDate.storageName;
|
purchase.statusText = "新建";
|
await this.setAccountInfo(purchase);
|
await this.dbWrite.save(purchase);
|
let ordermoel = new PurchaseOrderList();
|
let orderlist = body.datalist;
|
// let orderlist = JSON.parse(body.datalist);
|
let orderInfo = await this.dbRead.findOne(PurchaseOrder, {
|
orderCode: orderCode
|
});
|
for (let item of orderlist) {
|
ordermoel.order_Id = orderInfo.order_Id;
|
ordermoel.productCode = item.productCode;
|
ordermoel.productName = item.productName;
|
ordermoel.quantity = item.quantity;
|
ordermoel.produceDate = item.produceDate;
|
ordermoel.batchNumber = item.batchNumber;
|
await this.dbWrite.save(ordermoel);
|
}
|
} catch (error) {
|
this.info.result = false;
|
this.info.msg = "错误:" + error.message;
|
}
|
this.info.result = true;
|
ctx.body = this.info;
|
}
|
//#endregion
|
}
|