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); } } }