using Estsh.Core.Controllers;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Services.IServices;
using Microsoft.AspNetCore.Mvc;
using System.Collections;
using System.Data;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:库存插单
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Web.Controllers
{
public class ProductionOrderReleaseController : BaseController
{
private IProductionOrderReleaseService service;
public ProductionOrderReleaseController(IProductionOrderReleaseService _service)
{
service = _service;
}
public ActionResult Index()
{
return View();
}
///
/// 获取库存插单列表
///
///
public ActionResult GetCustPDLine()
{
Hashtable result = new Hashtable();
List list = this.service.GetCustPDLine();
result.Add("list", list);
return Json(result);
}
///
/// 获取产线列表
///
///
public ActionResult GetPDLine()
{
Hashtable result = new Hashtable();
List list = this.service.GetPdline();
result.Add("list", list);
return Json(result);
}
///
/// 根据客户产线查询车型
///
///
public ActionResult GetMode_type(string CustPDLine)
{
Hashtable result = new Hashtable();
List list = this.service.GetMode_type(CustPDLine);
result.Add("list", list);
return Json(result);
}
///
/// 根据车型编号查询座椅配置
///
///
public ActionResult GetModelList(int ModelType)
{
Hashtable result = new Hashtable();
List list = this.service.GetModelList(ModelType);
result.Add("list", list);
return Json(result);
}
/////
///// 获取配置名称
/////
/////
//public ActionResult GetModelName()
//{
// Hashtable result = new Hashtable();
// ArrayList list = this.service.GetModelName();
// result.Add("list", list);
// return Json(result);
//}
///
/// 获取班次
///
///
public ActionResult Getshift()
{
Hashtable result = new Hashtable();
List list = this.service.Getshift();
result.Add("list", list);
return Json(result);
}
///
/// 获取生产类型
///
///
public ActionResult GetProdType()
{
Hashtable result = new Hashtable();
List list = this.service.GetProdType();
result.Add("list", list);
return Json(result);
}
///
/// 根据配置编号获取总成清单
///
/// 配置编号
/// 总成清单
public ActionResult GetBomDetail(int cbModel)//,string isLoad)
{
Hashtable result = new Hashtable();
List list = this.service.GetBomDetail(cbModel);
result.Add("rows", list);
return Json(result);
}
//库存插单保存按钮
public bool isExist(string orderNo)
{
return service.isExist(orderNo);
}
//加载单据编号
public string GetOrderNo()
{
return service.GetOrderNo("StockOrder", "A");
}
//库存插单保存按钮
public bool Insert_g_stock_order(int modelTypeId, int modelId, string orderNo, string custPdline, int shiftId, int qty, string type, string documentData, int PdlineId)
{
GStockOrder model = new GStockOrder();
model.ModelTypeId = modelTypeId;
model.ModelId = modelId;
model.OrderNo = orderNo;
model.CustPdline = custPdline;
model.ShiftId = shiftId;
model.Qty = qty;
model.Type = type;
model.DocumentData = documentData;
model.AppointPdline = PdlineId;
return service.Insert_g_stock_order(model);
}
public bool Insert_g_stock_order_detail(string orderNo, string modelId, string partNoList)
{
try
{
Hashtable result = new Hashtable();
if (string.IsNullOrEmpty(partNoList) && string.IsNullOrEmpty(modelId.ToString()))
{
return false;
}
//判断配置对应总成是否匹配
List dt = service.GetBomDetailTable(Convert.ToInt32(modelId));
partNoList = partNoList.Remove(partNoList.Length - 1, 1);
string[] strList = partNoList.Split(',');
bool ifExist = false;
for (int j = 0; j < strList.Length; j++)
{
object dr = dt.Select(a=>a.PartNo==strList[j]);
if (dr==null)
{
ifExist = false;
return ifExist;
}
}
for (int i = 0; i < strList.Length; i++)
{
string partId = service.getPartId(strList[i]).ToString();
GStockOrderDetail model = new GStockOrderDetail();
model.OrderNo = orderNo;
model.PartId =Convert.ToInt32( partId);
ifExist = service.Insert_g_stock_order_detail(model);
}
return true;
}
catch (Exception ex)
{
return false;
}
}
///
/// 调用存储过程 dbo.sys_release_stock_order 释放生产指令
///
///
public string ReleaseStockOrder(string orderNo)
{
string mes = "";
orderNo = orderNo.Substring(0, orderNo.Length - 1);
string[] str = orderNo.Split(',');
for (int i = 0; i < str.Length; i++)
{
mes = service.ReleaseStockOrder(str[i].ToString());
}
return mes;
}
///
/// 调用存储过程 dbo.sys_assign_stock_order 分配虚拟料架
///
///
public string AssignStockOrder(string custPDLine)
{
return service.AssignStockOrder(custPDLine);
}
// ///
///// 初始化全局的静态变量
/////
/////
//public string TrayPagePrintCount(string param)
//{
// return service.TrayPagePrintCount(param);
//}
///
/// 获取要打印的条码数据(前排)
///
///
public ActionResult GetSN(string orderNo)
{
Hashtable result = new Hashtable();
List list = this.service.GetSN(orderNo);
result.Add("rows", list);
return Json(result);
}
///
/// 更新条码的打印状态
///
/// 条码
/// 是否成功
//public bool UpdateSNPrintStatus(string serialNumber)
//{
// return service.UpdateSNPrintStatus(serialNumber);
//}
///
/// 获取要打印的条码数据(前排)
///
///
public ActionResult GetBackSN(string orderNo)
{
Hashtable result = new Hashtable();
List list = this.service.GetBackSN(orderNo);
result.Add("rows", list);
return Json(result);
}
//条码补打
///
/// 获取补打信息
///
/// 过程条码 OR 合格证条码
///
public ActionResult GetReprintDataBySN(string type, string serialNumber, int count, bool isOrderByInLineTime)
{
Hashtable result = new Hashtable();
List list = this.service.GetReprintDataBySN(type, serialNumber, count, isOrderByInLineTime);
result.Add("rows", list);
return Json(result);
}
///
/// 获取要 打印过程条码 信息
///
///
//public void PrintSerialNumber(string serialNumber)
public ActionResult PrintSerialNumber(string serialNumber)
{
Hashtable result = new Hashtable();
List list = this.service.PrintSerialNumber(serialNumber);
result.Add("rows", list);
return Json(result);
}
///
/// 根据配置编号获取过程条码打印的张数
///
public int GetModelBarcodeCount(string serialNumber)
{
return service.GetModelBarcodeCount(serialNumber);
}
///
/// 更新条码的补打状态
///
/// 条码
/// 是否更新成功
public bool UpdateSNReprintStatus(string serialNumber)
{
return service.UpdateSNReprintStatus(serialNumber);
}
// 打印合格证
///
/// 根据配置编号获取合格证条码打印的张数
///
public int GetModelQACount(string serialNumber)
{
return service.GetModelQACount(serialNumber);
}
//打印后排的的合格证条码
///
/// 根据条码获取对应后排条码的打印信息
///
/// 条码
/// 后排条码的打印信息
public ActionResult GetBackSNs(string serialNumber)
{
Hashtable result = new Hashtable();
List list = this.service.GetBackSNs(serialNumber);
result.Add("rows", list);
return Json(result);
}
}
}