You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
4.7 KiB
105 lines
4.7 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using ICSSoft.Frame.Data.Entity;
|
|
using ICSSoft.Frame.Data.DAL;
|
|
using System.Data;
|
|
|
|
|
|
namespace ICSSoft.Frame.Data.BLL
|
|
{
|
|
public class ICSLOTONWIPInspectionBLL
|
|
{
|
|
/// <summary>
|
|
/// 保存送检记录,返回生成的送检单号
|
|
/// </summary>
|
|
/// <param name="info"></param>
|
|
/// <param name="dsconn"></param>
|
|
/// <returns></returns>
|
|
public static string Add(ICSLOTONWIPInspection info, string dsconn)
|
|
{
|
|
return ICSLOTONWIPInspectionDAL.Add(info, dsconn);
|
|
}
|
|
|
|
public static void AddList(List<ICSLOTONWIPInspection> info, string dsconn)
|
|
{
|
|
ICSLOTONWIPInspectionDAL.AddList(info, dsconn);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询送检/巡检检验结果,包含多次(ICSLOTONWIPCheck.Enable=0),不计算(ICSLOTONWIPInspection.IsCalc=0)
|
|
/// </summary>
|
|
/// <param name="LOTNO">如果为null,查所有</param>
|
|
/// <param name="conn"></param>
|
|
/// <returns></returns>
|
|
public static DataTable QueryInspectionInfo(string LOTNO, string conn)
|
|
{
|
|
return ICSLOTONWIPInspectionDAL.QueryInspectionInfo(LOTNO, conn);
|
|
}
|
|
|
|
public static DataTable QueryXunjian(string WIPDetail_ID, string WorkPoint, string dsconn)
|
|
{
|
|
|
|
DataTable dt = ICSLOTONWIPInspectionDAL.QueryXunjian(WIPDetail_ID, WorkPoint, dsconn);
|
|
|
|
DataTable dtRes = dt.Clone();
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
try
|
|
{
|
|
string DetailID = dr["DetailID"].ToString();
|
|
string MOCODE = dr["MOCODE"].ToString();
|
|
string MOSEQ = dr["MOSEQ"].ToString();
|
|
string LOTNO = dr["LOTNO"].ToString();
|
|
string ROUTECODE = dr["ROUTECODE"].ToString();
|
|
string OPCODE = dr["OPCODE"].ToString();
|
|
string EQPCODE = dr["EQPCODE"].ToString();
|
|
//1.Remove
|
|
string TransNO = dr["TransNO"].ToString();
|
|
string endtime = dr["EndDateTime"].ToString();
|
|
if (!string.IsNullOrEmpty(TransNO) && string.IsNullOrEmpty(endtime))
|
|
{
|
|
throw new Exception("上次巡检结果未出 , 请先处理! 巡检单 : " + TransNO);
|
|
}
|
|
DataTable dtSJ_Lot = ICSWorkReportBLL.Shoujian("跟踪单", LOTNO, null, ROUTECODE, OPCODE, EQPCODE, WorkPoint);
|
|
int noCheck = dtSJ_Lot.Select("Status='开始' or Status=''").Count();
|
|
if (noCheck > 0)
|
|
{
|
|
throw new Exception("remove:首件 检验结果未出 ,不可巡检, 请先处理 首件送检");
|
|
}
|
|
DataTable dtSJ_MO = ICSWorkReportBLL.Shoujian("工单", MOCODE, MOSEQ, ROUTECODE, OPCODE, EQPCODE, WorkPoint);
|
|
DataRow[] drsShoujian = dtSJ_MO.Select("CheckMode='量产首件' OR CheckMode='样品首件'");
|
|
if (drsShoujian.Count() == 0)
|
|
{
|
|
throw new Exception("remove:没有[量产首件/样品首件]送检记录, 请通知操作员送检 量产首件/样品首件 ,不可巡检");
|
|
}
|
|
else
|
|
{
|
|
if (drsShoujian.Where(a => a.Field<string>("Status") == "开始" || a.Field<string>("Status") == "").Count() > 0)
|
|
{
|
|
throw new Exception("remove:量产首件/样品首件 检验结果未出 ,不可巡检");
|
|
}
|
|
//送检时间排序最新一个 单子, 此单有任意一行不合格就算不合格
|
|
string lastTransNo = drsShoujian[0]["TransNO"].ToString();
|
|
var drs_lastTransNo = drsShoujian.Where(a => a.Field<string>("TransNO") == lastTransNo);
|
|
foreach (DataRow item in drs_lastTransNo)
|
|
{
|
|
string lastResSj = drsShoujian[0]["Status"].ToString();
|
|
if (lastResSj != "正常" && lastResSj != "放行")
|
|
{
|
|
throw new Exception("remove:最后一次 [量产首件/样品首件] " + lastTransNo + ", 不合格, 不可巡检");
|
|
}
|
|
}
|
|
}
|
|
dtRes.Rows.Add(dr.ItemArray);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
return dtRes;
|
|
}
|
|
}
|
|
}
|