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 SerialNumberQuery2Controller : BaseController
{
private ISerialNumberQuery2Service service;
public SerialNumberQuery2Controller(ISerialNumberQuery2Service _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.part_no 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 create_time BETWEEN '" + startPrintTime + "' AND '" + endPrintTime + "' ";
}
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 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 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)
{
string wheres = string.Empty;
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
try
{
wheres = @" AND a.keydata_result = 'P' and create_time BETWEEN '" + Request.Form["txtStartTime"].ToString().Trim() + "' AND '" + Request.Form["txtEndTime"].ToString().Trim() + "' ";
if (!string.IsNullOrEmpty(Request.Form["Pdline_search"]))
{
wheres += @" and b.pdline_id = '" + Request.Form["Pdline_search"].ToString().Trim() + "'";
}
}
catch
{
return null;
}
int totalCount = 0;
List dataHt = service.GetKeyData(wheres, pager, ref totalCount);
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;
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 '" + Request.Form["txtSN"].ToString().Trim() + "%'";
if (!string.IsNullOrEmpty(strKpsn))
{
wheres += @" OR a.serial_number = '" + strKpsn + "'";
}
int totalCount = 0;
List dataHt = service.GetKeyData(wheres, pager, ref totalCount);
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"]))
{
try
{
string wheres = @" AND create_time BETWEEN '" + Request.Form["txtStartTime"].ToString().Trim() + "' AND '" + Request.Form["txtEndTime"].ToString().Trim() + "' ";
if (!string.IsNullOrEmpty(Request.Form["Pdline_search"]))
{
wheres += @" and c.pdline_id = '" + Request.Form["Pdline_search"].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);
}
catch
{
return null;
}
}
else
{
string wheres = @"serial_number= '" + Request.Form["txtSN"].ToString().Trim() + "'";
int totalCount = 0;
List dataHt = service.GetKeyParts2(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows",dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
}
///
/// 电功能检测
///
///
///
public ActionResult GetCheck(Pager pager)
{
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
try
{
string wheres = @" and a.测试完成日期+' '+a.测试完成时间 BETWEEN '" + Request.Form["txtStartTime"].ToString().Trim() + "' AND '" + Request.Form["txtEndTime"].ToString().Trim() + "'";
if (!string.IsNullOrEmpty(Request.Form["Pdline_search"]))
{
wheres += @" and b.pdline_id = '" + Request.Form["Pdline_search"].ToString().Trim() + "'";
}
int totalCount = 0;
List dataHt = service.GetCheck(wheres, pager, ref totalCount);
Hashtable result = new Hashtable();
result.Add("rows",dataHt);
result.Add("pager.totalRows", totalCount);
return Json(result);
}
catch
{
return null;
}
}
else
{
string wheres = " and a.座椅条形码 like '%" + Request.Form["txtSN"].ToString().Trim() + "%'";
int totalCount = 0;
List dataHt = service.GetCheck(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 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);
result.Add("modelName", GetSNModelTypeInfo[0].ModelName);
}
List GetSNPartInfo = this.service.GetSNPartInfo(srcSN);
if (GetSNPartInfo.Count > 0)
{
result.Add("partNO", GetSNPartInfo[0].PartNo);
result.Add("partSpec", GetSNPartInfo[0].PartSpec);
//result.Add("custPartNO", GetSNPartInfo[0].CustPartNo);
result.Add("partLocation", GetSNPartInfo[0].EnumDesc);
}
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,string txtStartTime, string txtEndTime, string Pdline_search, string SN)
{
string wheres = string.Empty;
List KeyData = new List();
List KeyPartsdata = new List() ;
List Checkdata = new List();
int totalCount = 0;
if (string.IsNullOrEmpty(SN))
{
try
{
totalCount = 0;
wheres = @" AND create_time BETWEEN '" + txtStartTime + "' AND '" + txtEndTime + "' ";
if (!string.IsNullOrEmpty(Pdline_search))
{
wheres += @" and b.pdline_id = '" + Pdline_search + "'";
}
KeyData = service.getTableListByPage(wheres, pager, ref totalCount);
totalCount = 0;
wheres = @" AND create_time BETWEEN '" + txtStartTime + "' AND '" + txtEndTime + "' ";
if (!string.IsNullOrEmpty(Pdline_search))
{
wheres += @" and c.pdline_id = '" + Pdline_search + "'";
}
KeyPartsdata = service.GetKeyParts(wheres, pager1, ref totalCount);
totalCount = 0;
wheres = @" and a.测试完成日期+' '+a.测试完成时间 BETWEEN '" + txtStartTime + "' AND '" + txtEndTime + "'";
if (!string.IsNullOrEmpty(Pdline_search))
{
wheres += @" and b.pdline_id = '" + Pdline_search + "'";
}
Checkdata = service.GetCheck(wheres, pager2, ref totalCount);
}
catch
{
return null;
}
}
else
{
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.serial_number LIKE '" + SN + "%'";
if (!string.IsNullOrEmpty(strKpsn))
{
wheres += @" OR a.serial_number = '" + strKpsn + "'";
}
totalCount = 0;
KeyData = service.getTableListByPage(wheres, pager, ref totalCount);//关键数据
wheres = @"serial_number= '" + SN + "'";
totalCount = 0;
KeyPartsdata = service.GetKeyParts2(wheres, pager1, ref totalCount);//绑定数据
wheres = " and 座椅条形码 = '" + SN + "'";
totalCount = 0;
Checkdata = service.GetCheck(wheres, pager2, ref totalCount); //电检
}
var memoryStream = ExcelHelper.ToExcel(KeyData);
return File(memoryStream.ToArray(), "application/ms-excel", "条码查询.xls");
}
///
/// 导出全部
///
///
public ActionResult exportDatas(Pager pager)
{
// 如果没有数据就直接返回
string wheres = GetWhereStr();
int totalCount = 0;
List dataHt = service.GetSNInfoByList(wheres, pager, ref totalCount);
var memoryStream = ExcelHelper.ToExcel(dataHt);
return File(memoryStream.ToArray(), "application/ms-excel", "未绑定条码查询.xls");
}
public ActionResult GetPDlineInfo()
{
Hashtable resault = new Hashtable();
List list = service.GetPDlineInfo();
resault.Add("list", list);
return Json(resault);
}
}
}