You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

343 lines
11 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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();
}
/// <summary>
/// 获取库存插单列表
/// </summary>
/// <returns></returns>
public ActionResult GetCustPDLine()
{
Hashtable result = new Hashtable();
List<KeyValueResult> list = this.service.GetCustPDLine();
result.Add("list", list);
return Json(result);
}
/// <summary>
/// 获取产线列表
/// </summary>
/// <returns></returns>
public ActionResult GetPDLine()
{
Hashtable result = new Hashtable();
List<KeyValueResult> list = this.service.GetPdline();
result.Add("list", list);
return Json(result);
}
/// <summary>
/// 根据客户产线查询车型
/// </summary>
/// <returns></returns>
public ActionResult GetMode_type(string CustPDLine)
{
Hashtable result = new Hashtable();
List<KeyValueResult> list = this.service.GetMode_type(CustPDLine);
result.Add("list", list);
return Json(result);
}
/// <summary>
/// 根据车型编号查询座椅配置
/// </summary>
/// <returns></returns>
public ActionResult GetModelList(int ModelType)
{
Hashtable result = new Hashtable();
List<KeyValueResult> list = this.service.GetModelList(ModelType);
result.Add("list", list);
return Json(result);
}
///// <summary>
///// 获取配置名称
///// </summary>
///// <returns></returns>
//public ActionResult GetModelName()
//{
// Hashtable result = new Hashtable();
// ArrayList list = this.service.GetModelName();
// result.Add("list", list);
// return Json(result);
//}
/// <summary>
/// 获取班次
/// </summary>
/// <returns></returns>
public ActionResult Getshift()
{
Hashtable result = new Hashtable();
List<KeyValueResult> list = this.service.Getshift();
result.Add("list", list);
return Json(result);
}
/// <summary>
/// 获取生产类型
/// </summary>
/// <returns></returns>
public ActionResult GetProdType()
{
Hashtable result = new Hashtable();
List<KeyValueResult> list = this.service.GetProdType();
result.Add("list", list);
return Json(result);
}
/// <summary>
/// 根据配置编号获取总成清单
/// </summary>
/// <param name="modelID">配置编号</param>
/// <returns>总成清单</returns>
public ActionResult GetBomDetail(int cbModel)//,string isLoad)
{
Hashtable result = new Hashtable();
List<SysBom> 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<SysBom> 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;
}
}
///<summary>
/// 调用存储过程 dbo.sys_release_stock_order 释放生产指令
/// </summary>
/// <returns></returns>
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;
}
///<summary>
/// 调用存储过程 dbo.sys_assign_stock_order 分配虚拟料架
/// </summary>
/// <returns></returns>
public string AssignStockOrder(string custPDLine)
{
return service.AssignStockOrder(custPDLine);
}
// /// <summary>
///// 初始化全局的静态变量
///// </summary>
///// <param name="proxy"></param>
//public string TrayPagePrintCount(string param)
//{
// return service.TrayPagePrintCount(param);
//}
/// <summary>
/// 获取要打印的条码数据(前排)
/// </summary>
/// <returns></returns>
public ActionResult GetSN(string orderNo)
{
Hashtable result = new Hashtable();
List<GHtWorkorderSn> list = this.service.GetSN(orderNo);
result.Add("rows", list);
return Json(result);
}
/// <summary>
/// 更新条码的打印状态
/// </summary>
/// <param name="serialNumber">条码</param>
/// <returns>是否成功</returns>
//public bool UpdateSNPrintStatus(string serialNumber)
//{
// return service.UpdateSNPrintStatus(serialNumber);
//}
/// <summary>
/// 获取要打印的条码数据(前排)
/// </summary>
/// <returns></returns>
public ActionResult GetBackSN(string orderNo)
{
Hashtable result = new Hashtable();
List<GWorkorderSn> list = this.service.GetBackSN(orderNo);
result.Add("rows", list);
return Json(result);
}
//条码补打
/// <summary>
/// 获取补打信息
/// </summary>
/// <param name="serialNumber">过程条码 OR 合格证条码</param>
/// <returns></returns>
public ActionResult GetReprintDataBySN(string type, string serialNumber, int count, bool isOrderByInLineTime)
{
Hashtable result = new Hashtable();
List<GWorkorderSn> list = this.service.GetReprintDataBySN(type, serialNumber, count, isOrderByInLineTime);
result.Add("rows", list);
return Json(result);
}
/// <summary>
/// 获取要 打印过程条码 信息
/// </summary>
/// <param name="serialNumber"></param>
//public void PrintSerialNumber(string serialNumber)
public ActionResult PrintSerialNumber(string serialNumber)
{
Hashtable result = new Hashtable();
List<GWorkorderSn> list = this.service.PrintSerialNumber(serialNumber);
result.Add("rows", list);
return Json(result);
}
/// <summary>
/// 根据配置编号获取过程条码打印的张数
/// </summary>
public int GetModelBarcodeCount(string serialNumber)
{
return service.GetModelBarcodeCount(serialNumber);
}
/// <summary>
/// 更新条码的补打状态
/// </summary>
/// <param name="sn">条码</param>
/// <returns>是否更新成功</returns>
public bool UpdateSNReprintStatus(string serialNumber)
{
return service.UpdateSNReprintStatus(serialNumber);
}
// 打印合格证
/// <summary>
/// 根据配置编号获取合格证条码打印的张数
/// </summary>
public int GetModelQACount(string serialNumber)
{
return service.GetModelQACount(serialNumber);
}
//打印后排的的合格证条码
/// <summary>
/// 根据条码获取对应后排条码的打印信息
/// </summary>
/// <param name="serialNumber">条码</param>
/// <returns>后排条码的打印信息</returns>
public ActionResult GetBackSNs(string serialNumber)
{
Hashtable result = new Hashtable();
List<GWorkorderSn> list = this.service.GetBackSNs(serialNumber);
result.Add("rows", list);
return Json(result);
}
}
}