using Estsh.Core.Controllers;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Services.IServices;
using Estsh.Core.Util;
using Microsoft.AspNetCore.Mvc;
using System.Collections;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:条码查询
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Web.Controllers
{
public class SerialNumberQueryController : BaseController
{
private ISerialNumberQueryService service;
public SerialNumberQueryController(ISerialNumberQueryService _service)
{
service = _service;
}
public ActionResult Index()
{
return View();
}
///
/// 查找总成零件号
///
/// 数据集
public ActionResult GetPartNo()
{
Hashtable resault = new Hashtable();
List list = service.GetPartNo();
resault.Add("list", list);
return Json(resault);
}
public string GetWhereStr()
{
string wheres = "";
if (!string.IsNullOrEmpty(Request.Form["history"]))
{
wheres += " AND prod_type NOT IN ('C') ";
}
if (!string.IsNullOrEmpty(Request.Form["txtSN"]))
{
wheres += " AND ( a.kpsn LIKE '" + Request.Form["txtSN"].ToString() + "'or a.serial_number LIKE '" + Request.Form["txtSN"].ToString() + "') ";
}
if (!string.IsNullOrEmpty(Request.Form["cmbPartNo"]))
{
wheres += " AND b.partNo LIKE '" + Request.Form["cmbPartNo"].ToString() + "' ";
}
if (!string.IsNullOrEmpty(Request.Form["txtStartTime"]) &&
!string.IsNullOrEmpty(Request.Form["txtEndTime"]))
{
DateTime startPrintTime = Convert.ToDateTime(Request.Form["txtStartTime"]);
DateTime endPrintTime = Convert.ToDateTime(Request.Form["txtEndTime"]);
wheres += " AND ( CONVERT(DATETIME, a.createYmd + ' ' + a.createHms) >= '" + startPrintTime.ToString("yyyy-MM-dd HH:mm:ss")
+ "' AND CONVERT(DATETIME, a.createYmd + ' ' + a.createHms) <= '" + endPrintTime.ToString("yyyy-MM-dd HH:mm:ss") + "') ";
}
return wheres;
}
///
/// 获得不绑定条码信息
///
///
///
public ActionResult GetSNInfo(Pager pager)
{
string wheres = GetWhereStr();
if (string.IsNullOrEmpty(wheres))
{
return null;
}
int totalCount = 0;
List dataHt = service.GetSNInfo(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
///
/// 获得条码当前信息
///
///
///
public ActionResult GetSNCurrentData(Pager pager)
{
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
return null;
}
string sn = service.kpsnGetSN(Request.Form["txtSN"].ToString().Trim().Replace("|", "#"));
if (!string.IsNullOrEmpty(sn))
{
string wheres = @" and a.serial_number in ( SELECT serial_number FROM dbo.g_sn_keyparts(NOLOCK) WHERE kpsn ='" + Request.Form["txtSN"].ToString().Trim().Replace("|", "#") + "')";
int totalCount = 0;
List dataHt = service.GetSNCurrentData(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
else
{
string wheres = @" and a.serial_number = '" + Request.Form["txtSN"].ToString().Trim() + "'";
int totalCount = 0;
List dataHt = service.GetSNCurrentData(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
}
///
/// 获得历史信息
///
///
///
public ActionResult GetSNTravelData(Pager pager)
{
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
return null;
}
string sn = service.kpsnGetSN(Request.Form["txtSN"].ToString().Trim().Replace("|", "#"));
if (!string.IsNullOrEmpty(sn))
{
string wheres = @" and a.serial_number in ( SELECT serial_number FROM dbo.g_sn_keyparts(NOLOCK) WHERE kpsn ='" + Request.Form["txtSN"].ToString().Trim().Replace("|", "#") + "') ";
int totalCount = 0;
List dataHt = service.GetSNTravelData(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
else
{
string wheres = @" and a.serial_number = '" + Request.Form["txtSN"].ToString().Trim() + "'";
int totalCount = 0;
List dataHt = service.GetSNTravelData(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
}
///
/// 关键数据
///
///
///
public ActionResult GetKeyData(Pager pager)
{
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
return null;
}
string sn = service.kpsnGetSN(Request.Form["txtSN"].ToString().Trim().Replace("|", "#"));
if (!string.IsNullOrEmpty(sn))
{
List dtKPSN = service.GetKPSN(sn);
string strKpsn = string.Empty;
string wheres = @" AND a.keydata_result = 'P' and a.serial_number LIKE '" + sn + "%' ";
foreach (GSnKeyparts dr in dtKPSN)
{
strKpsn = dr.Kpsn.ToString();
if (service.valiDationKPSN(strKpsn).Count > 0)
{
if (!string.IsNullOrEmpty(strKpsn))
{
wheres += @" OR a.serial_number = '" + strKpsn + "'";
}
}
}
int totalCount = 0;
List dataHt = service.GetKeyData(wheres, pager, ref totalCount, sn);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
else
{
List dtKPSN = service.GetKPSN(Request.Form["txtSN"].ToString().Trim());
string strKpsn = string.Empty;
string wheres = @" AND a.keydata_result = 'P' and a.serial_number LIKE '" + Request.Form["txtSN"].ToString().Trim() + "%' ";
foreach (GSnKeyparts dr in dtKPSN)
{
strKpsn = dr.Kpsn.ToString();
if (service.valiDationKPSN(strKpsn).Count > 0)
{
if (!string.IsNullOrEmpty(strKpsn))
{
wheres += @" OR a.serial_number = '" + strKpsn + "'";
}}}
int totalCount = 0;
List dataHt = service.GetKeyData(wheres, pager, ref totalCount, Request.Form["txtSN"].ToString().Trim());
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
}
///
/// 绑定信息
///
///
///
public ActionResult GetKeyParts(Pager pager)
{
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
return null;
}
string sn = service.kpsnGetSN(Request.Form["txtSN"].ToString().Trim().Replace("|", "#"));
if (!string.IsNullOrEmpty(sn))
{
string wheres = @"serial_number in ( SELECT serial_number FROM dbo.g_sn_keyparts(NOLOCK) WHERE kpsn ='" + Request.Form["txtSN"].ToString().Trim().Replace("|", "#") + "') ";
int totalCount = 0;
List dataHt = service.GetKeyParts(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
else
{
string wheres = @"serial_number= '" + Request.Form["txtSN"].ToString().Trim() + "'";
int totalCount = 0;
List dataHt = service.GetKeyParts(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
}
///
/// 不良信息
///
///
///
public ActionResult GetRepairDetials(Pager pager)
{
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
return null;
}
string sn = service.kpsnGetSN(Request.Form["txtSN"].ToString().Trim().Replace("|", "#"));
if (!string.IsNullOrEmpty(sn))
{
string wheres = @" and a.serial_number in ( SELECT serial_number FROM dbo.g_sn_keyparts(NOLOCK) WHERE kpsn ='" + Request.Form["txtSN"].ToString().Trim().Replace("|", "#") + "')";
int totalCount = 0;
List dataHt = service.GetRepairDetials(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
else
{
string wheres = @" and a.serial_number='" + Request.Form["txtSN"].ToString().Trim() + "'";
int totalCount = 0;
List dataHt = service.GetRepairDetials(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows", dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
}
public List valiDationKPSN(string strKPSN)
{
return service.valiDationKPSN(strKPSN);
}
public string GetPSN(string srcSN)
{
return service.GetPSN(srcSN);
}
public ActionResult GetInfo(string srcSN)
{
if (1 == 1)
{
return Json(null);
}
Hashtable result = new Hashtable();
List GetSNModelTypeInfo = this.service.GetSNModelTypeInfo(srcSN);
if (GetSNModelTypeInfo.Count > 0)
{
result.Add("typeName", GetSNModelTypeInfo[0].TypeName);//htSNModelTypeInfo
result.Add("modelName", GetSNModelTypeInfo[0].ModelName);//htSNModelTypeInfo
}
List GetSNPartInfo = this.service.GetSNPartInfo(srcSN);
if (GetSNPartInfo.Count > 0)
{
result.Add("partNO", GetSNPartInfo[0].PartNo);//htSNPartInfo
result.Add("partSpec", GetSNPartInfo[0].PartSpec);//htSNPartInfo
//result.Add("custPartNO", GetSNPartInfo[0].CustPartNo);//htSNPartInfo
result.Add("partLocation", GetSNPartInfo[0].PartLocation);//htSNPartInfo
}
List GetSNBasicInfo = this.service.GetSNBasicInfo(srcSN);
if (GetSNBasicInfo.Count > 0)
{
result.Add("pdLineName", GetSNBasicInfo[0].PdlineName);
result.Add("createTime", GetSNBasicInfo[0].Ctime);
result.Add("prodType", GetSNBasicInfo[0].Stype);
result.Add("sn", srcSN);
result.Add("inPDLineTime", GetSNBasicInfo[0].InPdlineTime);
result.Add("currType", GetSNBasicInfo[0].ProdType);
result.Add("qaSerialNumber", srcSN);
result.Add("outPDLineTime", GetSNBasicInfo[0].OutPdlineTime);
int nWorkFlag = -99;
string workFlag = "";
int.TryParse(GetSNBasicInfo[0].WorkFlag.ToString(), out nWorkFlag);
if (nWorkFlag == -1)
workFlag = "待上线";
else if (nWorkFlag == 0)
workFlag = "已上线";
else if (nWorkFlag == 1)
workFlag = "已下线";
else if (nWorkFlag == 2)
workFlag = "已发运";
else if (nWorkFlag == 3)
workFlag = "已领用";
else if (nWorkFlag == 4)
workFlag = "";
else
workFlag = nWorkFlag.ToString();
result.Add("workFlag", workFlag);
result.Add("snRemark", GetSNBasicInfo[0].Remark);
result.Add("carNO", GetSNBasicInfo[0].CarNo);
result.Add("shippingTime", GetSNBasicInfo[0].ShippingTime);
int nCurrStatus = -99;
string currStatus = "";
int.TryParse(GetSNBasicInfo[0].CurrentStatus.ToString(), out nCurrStatus);
if (nCurrStatus == -1)
currStatus = "已报废";
else if (nCurrStatus == 1)
currStatus = "不良品";
else if (nCurrStatus == 0)
currStatus = "良品";
result.Add("currStatus", currStatus);
result.Add("shpCarNO", GetSNBasicInfo[0].ShpCarNO);
result.Add("slotNO", GetSNBasicInfo[0].SlotNo);
result.Add("orderNO", GetSNBasicInfo[0].Workorder);
}
return Json(result);
}
///
/// 导出全部
///
///
public ActionResult exportData(Pager pager, Pager pager1, Pager pager2, Pager pager3, Pager pager4, Pager pager5, string SN)
{
// 如果没有数据就直接返回
//string wheres = GetWhereStr();
int totalCount = 0;
if (string.IsNullOrEmpty(SN))
{
return null;
}
SN = SN.Replace("|", "#");
string wheres = @" and a.serial_number = '" + SN + "'";
List SNCurrentData = service.getTableListByPage(wheres, pager, ref totalCount); //当前
wheres = @" and a.serial_number = '" + SN + "'";
totalCount = 0;
List SNTravelData = service.GetSNTravelData(wheres, pager1, ref totalCount); //历史
List dtKPSN = service.GetKPSN(SN);
string strKpsn = string.Empty;
foreach (GSnKeyparts dr in dtKPSN)
{
strKpsn = dr.Kpsn.ToString();
if (service.valiDationKPSN(strKpsn).Count > 0)
{ break; }
}
wheres = @" AND a.keydata_result = 'P' and a.serial_number LIKE '" + SN + "%' ";
if (!string.IsNullOrEmpty(strKpsn))
{
wheres += @" OR a.serial_number = '" + strKpsn + "'";
}
totalCount = 0;
List KeyData = service.GetKeyData(wheres, pager2, ref totalCount, SN);//关键数据
wheres = @"serial_number= '" + SN + "'";
totalCount = 0;
List KeyPartsdata = service.GetKeyParts(wheres, pager3, ref totalCount);//绑定数据
//wheres = " and 座椅条码 = '" + SN + "'";
//totalCount = 0;
//DataTable Checkdata = service.GetCheck(wheres, pager4, ref totalCount); //电检
wheres = @" and a.serial_number='" + SN + "'";
totalCount = 0;
List RepairDetials = service.GetRepairDetials(wheres, pager5, ref totalCount);//不良信息
var memoryStream = ExcelHelper.ToExcel(SNCurrentData);
return File(memoryStream.ToArray(), "application/ms-excel", "生产指令调整.xls");
}
}
}