You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

434 lines
18 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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();
}
/// <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.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;
}
/// <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 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<GSnStatus> 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<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 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<GSnTravel> 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<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)
{
if (string.IsNullOrEmpty(Request.Form["txtSN"]))
{
return null;
}
string sn = service.kpsnGetSN(Request.Form["txtSN"].ToString().Trim().Replace("|", "#"));
if (!string.IsNullOrEmpty(sn))
{
List<GSnKeyparts> 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<GSnKeydata> 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<GSnKeyparts> 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<GSnKeydata> 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);
}
}
/// <summary>
/// 绑定信息
/// </summary>
/// <param name="pager"></param>
/// <returns></returns>
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<GSnKeyparts> 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<GSnKeyparts> dataHt = service.GetKeyParts(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 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<GSnDefect> 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<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<GSnKeyparts> 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);//htSNModelTypeInfo
result.Add("modelName", GetSNModelTypeInfo[0].ModelName);//htSNModelTypeInfo
}
List<SysPart> 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<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, 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<SerialNumberQuery> SNCurrentData = service.getTableListByPage(wheres, pager, ref totalCount); //当前
wheres = @" and a.serial_number = '" + SN + "'";
totalCount = 0;
List<GSnTravel> SNTravelData = service.GetSNTravelData(wheres, pager1, ref totalCount); //历史
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.keydata_result = 'P' and a.serial_number LIKE '" + SN + "%' ";
if (!string.IsNullOrEmpty(strKpsn))
{
wheres += @" OR a.serial_number = '" + strKpsn + "'";
}
totalCount = 0;
List<GSnKeydata> KeyData = service.GetKeyData(wheres, pager2, ref totalCount, SN);//关键数据
wheres = @"serial_number= '" + SN + "'";
totalCount = 0;
List<GSnKeyparts> 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<GSnDefect> RepairDetials = service.GetRepairDetials(wheres, pager5, ref totalCount);//不良信息
var memoryStream = ExcelHelper.ToExcel(SNCurrentData);
return File(memoryStream.ToArray(), "application/ms-excel", "生产指令调整.xls");
}
}
}