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