//#region
|
import BaseController from "../baseController";
|
import { Post } from "egg-shell-decorators";
|
import { StorageReplenishment } from "../../entity/storage/replenishment/storageReplenishment";
|
import { StorageReplenishmentSortingRule } from "../../entity/storage/replenishment/storageReplenishmentSortingRule";
|
import * as sql from "mssql";
|
//#endregion
|
|
export default class ReplenishmentController extends BaseController {
|
//#region 库存下限创建补货单
|
/// <summary>
|
/// 库存下限创建补货单
|
/// </summary>
|
/// <param name="body"></param>
|
/// <returns></returns>
|
@Post()
|
public async storageToReplenishment() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userinfo = await ctx.helper.userInfo();
|
try {
|
var excelDT = new sql.Table();
|
excelDT.columns.add("storage_Id", sql.Int);
|
excelDT.columns.add("consignor_Id", sql.Int);
|
excelDT.columns.add("product_Id", sql.BigInt);
|
excelDT.columns.add("quantity", sql.NVarChar(50));
|
excelDT.columns.add("billID", sql.NVarChar(50));
|
excelDT.columns.add("billType", sql.NVarChar(50));
|
excelDT.columns.add("positionName", sql.NVarChar(50));
|
excelDT.columns.add("iD", sql.Int);
|
let i = 0;
|
for (var dataItem of body.productModelList) {
|
excelDT.rows.add(
|
dataItem.storage_Id,
|
dataItem.consignor_Id,
|
dataItem.product_Id,
|
dataItem.quantity,
|
dataItem.billID,
|
dataItem.billType,
|
dataItem.positionName,
|
i++
|
);
|
}
|
const connection: any = await this.dbWrite.connection;
|
let request = new sql.Request(connection.driver.master);
|
request.input("user_Id", userinfo.user_Id);
|
request.input("execelDT", excelDT);
|
request.output("outMsg", sql.NVarChar(2000));
|
let result = await request.execute("sp_Storage_Replenishment");
|
let outMsg = result.output.outMsg;
|
if (outMsg) {
|
this.info.msg = outMsg;
|
this.info.result = false;
|
} else {
|
this.info.msg = "补货单创建成功";
|
this.info.result = true;
|
}
|
ctx.body = this.info;
|
} catch (ex) {
|
this.info.msg = "校验失败," + ex.message;
|
this.info.result = false;
|
ctx.body = this.info;
|
}
|
}
|
//#endregion
|
|
//#region 补货单审核
|
/// <summary>
|
/// 补货单审核
|
/// </summary>
|
/// <param name="body"></param>
|
/// <returns></returns>
|
@Post()
|
public async confirm() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userinfo = await ctx.helper.userInfo();
|
|
let auditing = body.auditing;
|
let remark = body.remark;
|
if (auditing == 2) {
|
let val = await this.dbWrite.update(StorageReplenishment, body.replenishment_Id, {
|
auditing: 2,
|
auditDate: new Date(),
|
auditor: userinfo.userTrueName,
|
remark: remark,
|
billStatus: "审核成功"
|
});
|
|
if (val) {
|
this.info.msg = "提交成功";
|
this.info.result = true;
|
ctx.body = this.info;
|
} else {
|
this.info.msg = "提交失败";
|
this.info.result = true;
|
ctx.body = this.info;
|
}
|
} else {
|
let val = await this.dbWrite.update(StorageReplenishment, body.replenishment_Id, {
|
auditing: 1,
|
auditDate: new Date(),
|
auditor: userinfo.userTrueName,
|
remark: remark,
|
billStatus: "拒绝审核"
|
});
|
|
if (val) {
|
this.info.msg = "提交成功";
|
this.info.result = true;
|
ctx.body = this.info;
|
} else {
|
this.info.msg = "提交失败";
|
this.info.result = true;
|
ctx.body = this.info;
|
}
|
}
|
}
|
//#endregion
|
|
//#region 补货单分拣
|
/// <summary>
|
/// 补货单分拣
|
/// </summary>
|
/// <param name="body"></param>
|
/// <returns></returns>
|
@Post()
|
public async startSorting() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userinfo = await ctx.helper.userInfo();
|
try {
|
const connection: any = await this.dbWrite.connection;
|
let request = new sql.Request(connection.driver.master);
|
request.input("user_Id", userinfo.user_Id);
|
request.input("replenishment_Id", body.replenishment_Id);
|
request.output("outMsg", sql.NVarChar(2000));
|
let result = await request.execute("sp_Storage_Replenishment_Sorting");
|
let outMsg = result.output.outMsg;
|
if (outMsg) {
|
this.info.msg = outMsg;
|
this.info.result = false;
|
} else {
|
this.info.msg = "分拣成功";
|
this.info.result = true;
|
}
|
ctx.body = this.info;
|
} catch (ex) {
|
this.info.msg = "校验失败," + ex.message;
|
this.info.result = false;
|
ctx.body = this.info;
|
}
|
}
|
//#endregion
|
|
//#region 补货单获得分拣规则
|
@Post()
|
public async replenishmentGetSortingRule() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
var replenishmentList_Ids = body.replenishmentList_Id;
|
try {
|
var dataList = await this.dbRead.find(StorageReplenishmentSortingRule, {
|
replenishmentList_Id: replenishmentList_Ids
|
});
|
if (dataList) {
|
this.info.data = dataList;
|
this.info.result = true;
|
} else {
|
this.info.msg = "未找到分拣规则";
|
this.info.result = false;
|
}
|
} catch (error) {
|
this.info.msg = "未找到分拣规则," + error.message;
|
this.info.result = false;
|
}
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region 补货单设置分拣规则
|
@Post()
|
public async sortingRule() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
try {
|
var ruleInfo = new StorageReplenishmentSortingRule();
|
ruleInfo.batchNumber = body.batchNumber;
|
ruleInfo.consignor_Id = body.consignor_Id;
|
ruleInfo.consignorCode = body.consignorCode;
|
ruleInfo.consignorName = body.consignorName;
|
ruleInfo.createDate = new Date();
|
ruleInfo.createID = userInfo.user_Id;
|
ruleInfo.creator = userInfo.userTrueName;
|
ruleInfo.enable = 1;
|
|
ruleInfo.replenishment_Id = body.replenishment_Id;
|
ruleInfo.replenishmentCode = body.replenishmentCode;
|
ruleInfo.replenishmentList_Id = body.replenishmentList_Id;
|
ruleInfo.plateCode = body.plateCode;
|
ruleInfo.positionName = body.positionName;
|
ruleInfo.produceDate = body.produceDate;
|
ruleInfo.product_Id = body.product_Id;
|
ruleInfo.productCode = body.productCode;
|
ruleInfo.singleSignCode = body.singleSignCode;
|
ruleInfo.storage_Id = body.storage_Id;
|
ruleInfo.storageName = body.storageName;
|
ruleInfo.userProduct_Id = userInfo.userProduct_Id;
|
ruleInfo.platUserCode = userInfo.platUserCode;
|
ruleInfo.platUserName = userInfo.platUserName;
|
ruleInfo.platUser_Id = userInfo.platUser_Id;
|
ruleInfo.userProductAlias = userInfo.userProductAlias;
|
ruleInfo.userProductCode = userInfo.userProductCode;
|
ruleInfo.platCorpName = userInfo.platCorpName;
|
|
let reVal = await this.dbWrite.insert(StorageReplenishmentSortingRule, ruleInfo);
|
if (reVal) {
|
this.info.data = reVal;
|
this.info.result = true;
|
this.info.msg = "添加成功!";
|
} else {
|
this.info.data = reVal;
|
this.info.result = false;
|
this.info.msg = "添加失败!";
|
}
|
} catch (e) {
|
this.info.msg = "执行错误:," + e.message;
|
this.info.result = false;
|
}
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region 补货单关闭分拣规则
|
@Post()
|
public async deleteSortingRule() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
|
try {
|
await this.dbWrite.delete(StorageReplenishmentSortingRule, {
|
rule_Id: body.rule_Id
|
});
|
this.info.result = true;
|
this.info.msg = "关闭成功!";
|
} catch (error) {
|
this.info.result = false;
|
this.info.msg = "关闭失败!" + error.message;
|
}
|
|
ctx.body = this.info;
|
}
|
//#endregion
|
|
//#region 补货单审核分拣
|
/// <summary>
|
/// 补货单审核分拣
|
/// </summary>
|
/// <param name="reqInfo"></param>
|
/// <returns></returns>
|
@Post()
|
public async confirmSorting() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
try {
|
let storage_ReplenishmentList = await this.dbRead.find(StorageReplenishment, {
|
replenishment_Id: body.selectIDs
|
});
|
for (let item of storage_ReplenishmentList) {
|
//审核
|
await this.dbWrite.update(StorageReplenishment, item.replenishment_Id, {
|
auditing: 2,
|
auditDate: new Date(),
|
auditor: userInfo.userTrueName,
|
remark: body.remark,
|
billStatus: "审核成功"
|
});
|
//分拣
|
const connection: any = await this.dbWrite.connection;
|
let request = new sql.Request(connection.driver.master);
|
request.input("user_Id", userInfo.user_Id);
|
request.input("replenishment_Id", item.replenishment_Id);
|
request.output("outMsg", sql.NVarChar(2000));
|
let result = await request.execute("sp_Storage_Replenishment_Sorting");
|
let outMsg = result.output.outMsg;
|
if (outMsg) {
|
this.info.msg = item.replenishmentCode + outMsg;
|
this.info.result = false;
|
} else {
|
this.info.msg = item.replenishmentCode + "分拣成功";
|
this.info.result = true;
|
}
|
}
|
ctx.body = this.info;
|
} catch (e) {
|
this.info.msg = "执行错误:," + e.message;
|
this.info.result = false;
|
ctx.body = this.info;
|
}
|
}
|
//#endregion
|
|
//#region 补货单扫描-获取数据
|
@Post()
|
public async replenishmentGetData() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
this.info = await ctx.service.storage.replenishment.getReplenishmentGroupData(body.replenishmentCode);
|
if (!this.info.result) {
|
this.info.result = false;
|
this.info.msg = this.info.msg;
|
ctx.body = this.info;
|
} else {
|
this.info.result = true;
|
this.info.dynamic = this.info.data;
|
ctx.body = this.info;
|
}
|
}
|
//#endregion
|
|
//#region 补货单扫描-确认出库
|
/// <summary>
|
/// 确认出库
|
/// </summary>
|
/// <returns></returns>
|
@Post()
|
public async replenishmentSave() {
|
let { ctx } = this;
|
let body = ctx.request.body;
|
let userInfo = await ctx.helper.userInfo();
|
let productModelList = body.productModelList;
|
let replenishmentCode = body.replenishmentCode;
|
this.info = await ctx.service.storage.replenishment.storageReplenishmentSave(replenishmentCode, productModelList, userInfo.user_Id);
|
if (!this.info.result) {
|
this.info.result = false;
|
this.info.msg = this.info.msg;
|
ctx.body = this.info;
|
} else {
|
this.info.result = true;
|
this.info.msg = this.info.msg;
|
ctx.body = this.info;
|
}
|
}
|
//#endregion
|
}
|