|
|
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();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查找总成零件号
|
|
|
/// </summary>
|
|
|
/// <returns>数据集</returns>
|
|
|
public ActionResult GetPartNo()
|
|
|
{
|
|
|
Hashtable resault = new Hashtable();
|
|
|
List<KeyValueResult> 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;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获得不绑定条码信息
|
|
|
/// </summary>
|
|
|
/// <param name="pager"></param>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult GetSNInfo(Pager pager)
|
|
|
{
|
|
|
string wheres = GetWhereStr();
|
|
|
if (string.IsNullOrEmpty(wheres))
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
int totalCount = 0;
|
|
|
List<GSnKeyparts> dataHt = service.GetSNInfo(wheres, pager, ref totalCount);
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("rows",dataHt);
|
|
|
result.Add("pager.totalRows", totalCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获得条码当前信息
|
|
|
/// </summary>
|
|
|
/// <param name="pager"></param>
|
|
|
/// <returns></returns>
|
|
|
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<GSnStatus> dataHt = service.GetSNCurrentData(wheres, pager, ref totalCount);
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("rows",dataHt);
|
|
|
result.Add("pager.totalRows", totalCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获得历史信息
|
|
|
/// </summary>
|
|
|
/// <param name="pager"></param>
|
|
|
/// <returns></returns>
|
|
|
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<GSnTravel> dataHt = service.GetSNTravelData(wheres, pager, ref totalCount);
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("rows",dataHt);
|
|
|
result.Add("pager.totalRows", totalCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 关键数据
|
|
|
/// </summary>
|
|
|
/// <param name="pager"></param>
|
|
|
/// <returns></returns>
|
|
|
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<GSnKeydata> 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<GSnKeyparts> 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<GSnKeydata> dataHt = service.GetKeyData(wheres, pager, ref totalCount);
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("rows",dataHt);
|
|
|
result.Add("pager.totalRows", totalCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 绑定信息
|
|
|
/// </summary>
|
|
|
/// <param name="pager"></param>
|
|
|
/// <returns></returns>
|
|
|
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<GSnKeyparts> 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<GSnKeyparts> dataHt = service.GetKeyParts2(wheres, pager, ref totalCount);
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("rows",dataHt);
|
|
|
result.Add("pager.totalRows", totalCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 电功能检测
|
|
|
/// </summary>
|
|
|
/// <param name="pager"></param>
|
|
|
/// <returns></returns>
|
|
|
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<GSnStatus> 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<GSnStatus> dataHt = service.GetCheck(wheres, pager, ref totalCount);
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("rows",dataHt);
|
|
|
result.Add("pager.totalRows", totalCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 不良信息
|
|
|
/// </summary>
|
|
|
/// <param name="pager"></param>
|
|
|
/// <returns></returns>
|
|
|
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<GSnDefect> 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<GSnKeydata> 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<SysModel> GetSNModelTypeInfo = this.service.GetSNModelTypeInfo(srcSN);
|
|
|
if (GetSNModelTypeInfo.Count > 0)
|
|
|
{
|
|
|
|
|
|
result.Add("typeName", GetSNModelTypeInfo[0].TypeName);
|
|
|
result.Add("modelName", GetSNModelTypeInfo[0].ModelName);
|
|
|
}
|
|
|
List<SysPart> 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<GSnStatus> 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);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 导出当前页
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult exportData(Pager pager, Pager pager1, Pager pager2,string txtStartTime, string txtEndTime, string Pdline_search, string SN)
|
|
|
{
|
|
|
string wheres = string.Empty;
|
|
|
List<SerialNumberQuery2> KeyData = new List<SerialNumberQuery2>();
|
|
|
List<GSnKeyparts> KeyPartsdata = new List<GSnKeyparts>() ;
|
|
|
List<GSnStatus> Checkdata = new List<GSnStatus>();
|
|
|
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<GSnKeyparts> 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");
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 导出全部
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult exportDatas(Pager pager)
|
|
|
{
|
|
|
// 如果没有数据就直接返回
|
|
|
string wheres = GetWhereStr();
|
|
|
int totalCount = 0;
|
|
|
List<SerialNumberQuery2SN> 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<KeyValueResult> list = service.GetPDlineInfo();
|
|
|
resault.Add("list", list);
|
|
|
return Json(resault);
|
|
|
}
|
|
|
}
|
|
|
}
|