Browse Source

喷涂调整优化

master
ruoxing.wang 3 days ago
parent
commit
048ef193e8
  1. 2
      MESClassLibrary/DAL/Check/InspectResultDAL.cs
  2. 10
      MESWebSite/Manage/AnalysisApi.aspx.cs
  3. 120
      PaintingPC/FrmQuality.cs
  4. 28
      PaintingPC/Function.cs
  5. 121
      PaintingScreen/Handler/Function.cs
  6. 286
      WebService/Function.cs
  7. 1
      WebService/Model/WMS03Model.cs
  8. 4
      WebService/WMSWebService.asmx.cs

2
MESClassLibrary/DAL/Check/InspectResultDAL.cs

@ -191,7 +191,7 @@ namespace MESClassLibrary.DAL.Check
{
string sql = "select * FROM[dbo].[tb_InspectResult] ";
sql += " where barcode is not null and productInfo!='' and productInfo is not null and createTime>='" + StartTime + "' and createTime<='" + EndTime + "' and inspectResult in ('[合格]','[抛光]','[报废]') and substring(productInfo,1,1) != ',' ";
sql += " where barcode is not null and productInfo!='' and productInfo is not null and createTime>='" + StartTime + "' and createTime<='" + EndTime + "' and inspectResult in ('合格','抛光','报废') and substring(productInfo,1,1) != ',' ";
if (!string.IsNullOrEmpty(side))
{
if ("A侧".Equals(side))

10
MESWebSite/Manage/AnalysisApi.aspx.cs

@ -115,7 +115,7 @@ namespace MESWebSite.Manage
if (t != null && t.Count > 0)
{
double r = (double)t.Where(p => p.inspectResult.Equals("[合格]")).Count() / (double)t.Count;
double r = (double)t.Where(p => p.inspectResult.Equals("合格")).Count() / (double)t.Count;
data.Add(Math.Round(r * 100, 2).ToString());
}
else
@ -136,7 +136,7 @@ namespace MESWebSite.Manage
if (t != null && t.Count > 0)
{
double r = (double)t.Where(p => p.inspectResult.Equals("[合格]")).Count() / (double)t.Count;
double r = (double)t.Where(p => p.inspectResult.Equals("合格")).Count() / (double)t.Count;
data.Add(Math.Round(r * 100, 2).ToString());
}
else
@ -158,7 +158,7 @@ namespace MESWebSite.Manage
if (t != null && t.Count > 0)
{
double r = (double)t.Where(p => p.inspectResult.Equals("[合格]")).Count() / (double)t.Count;
double r = (double)t.Where(p => p.inspectResult.Equals("合格")).Count() / (double)t.Count;
data.Add(Math.Round(r * 100, 2).ToString());
}
else
@ -261,7 +261,7 @@ namespace MESWebSite.Manage
colorList.Add(pinfo, 0);
}
if ("[合格]".Equals(item.inspectResult))
if ("合格".Equals(item.inspectResult))
{
colorList[pinfo] = colorList[pinfo] + 1;
}
@ -308,7 +308,7 @@ namespace MESWebSite.Manage
if (info.Count() > 0)
{
cnum = info.Count();
num = info.Where(p => p.inspectResult.Equals("[合格]")).Count();
num = info.Where(p => p.inspectResult.Equals("合格")).Count();
r = num / cnum;
listModel.Add(Math.Round(r * 100, 2).ToString() + "%");
}

120
PaintingPC/FrmQuality.cs

@ -290,14 +290,14 @@ namespace PaintingPC
ClearControlColor(SetControlGroup());
btnAbt.BackColor = Color.Red;
string lastRst = GetLastInspectRst(txtBarCode.Text.Trim());
if (lastRst.Contains("合格"))
{
MessageBox.Show("条码已判定为合格,无需重复判定");
Clear();
return;
}
SaveRst("合格", colorName, partName);
//string lastRst = GetLastInspectRst(txtBarCode.Text.Trim());
//if (lastRst.Contains("合格"))
//{
// MessageBox.Show("条码已判定为合格,无需重复判定");
// Clear();
// return;
//}
SaveRst("合格", colorName, partName,1);
}
void Clear()
@ -331,14 +331,16 @@ namespace PaintingPC
string partName = string.Empty;
if (CheckColor(ref colorName, ref partName) == false) return;
#endregion
string lastRst = GetLastInspectRst(txtBarCode.Text.Trim());
if (lastRst.Contains("其它"))
int cs = Function.OtherTimes(txtBarCode.Text.Trim());
if (cs > 0)
{
MessageBox.Show("条码已判定为其它,无需重复判定");
MessageBox.Show("条码"+ txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次.");
ShowHint("条码" + txtBarCode.Text.Trim() + "已存在判定为其它的记录,只允许判定1次.");
Clear();
return;
}
SaveRst("其它", colorName, partName);
SaveRst("其它", colorName, partName,8);
}
/// <summary>
@ -358,10 +360,11 @@ namespace PaintingPC
if (MessageBox.Show($"确认对[{txtBarCode.Text}]进行返喷操作?", "操作确认", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return;
ShowHint("");
string barcode = Function.UniteBarCodeToOne(txtBarCode.Text.Trim());
int cs = Function.YiDaMoCiShu(barcode);
if (cs > 1)
cs = 1;
int keHuiPen = Function.keHuiPen(barcode);
int cs = Function.YiDaMoCiShu(barcode); //记录中已返喷次数
int keHuiPen = Function.keHuiPen(barcode); //基础数据中,可返喷次数
if (keHuiPen > 1)
keHuiPen = 1;
if (keHuiPen > 0 && cs < keHuiPen)
{
@ -381,24 +384,24 @@ namespace PaintingPC
ClearControlColor(SetControlGroup());
btnRepair.BackColor = Color.Yellow;
string lastRst = GetLastInspectRst(txtBarCode.Text.Trim());
if (lastRst.Contains("打磨"))
{
ShowHint("条码已判定为返喷,无需重复判定");
MessageBox.Show("条码已判定为返喷,无需重复判定");
Clear();
return;
}
//string lastRst = GetLastInspectRst(txtBarCode.Text.Trim());
//if (lastRst.Contains("打磨"))
//{
// ShowHint("条码已判定为返喷,无需重复判定");
// MessageBox.Show("条码已判定为返喷,无需重复判定");
// Clear();
// return;
//}
string s = _isWmsQuality == false ? "打磨" : "WMS打磨";
string s = _isWmsQuality == false ? "打磨" : "打磨WMS";
SaveRst(s, colorName, partName);
SaveRst(s, colorName, partName,9);
}
else
{
ShowHint("根据该零件可回喷次数设置,不能判定为打磨或已超过打磨次数!");
MessageBox.Show("根据该零件可回喷次数设置,不能判定为打磨或已超过打磨次数!");
ShowHint("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!");
MessageBox.Show("根据该零件可回喷次数设置,不能判定为返喷或已超过返喷次数!");
Clear();
return;
}
@ -441,30 +444,37 @@ namespace PaintingPC
if (CheckColor(ref colorName, ref partName) == false) return;
#endregion
string lastRst = GetLastInspectRst(txtBarCode.Text.Trim());
if (lastRst.Contains("合格"))
{
MessageBox.Show("条码已判定为合格,无法重新判定为报废");
Clear();
return;
}
if (lastRst.Contains("报废"))
{
MessageBox.Show("条码已判定为报废,无需重复报废");
Clear();
return;
}
//string lastRst = GetLastInspectRst(txtBarCode.Text.Trim());
//if (lastRst.Contains("合格"))
//{
// MessageBox.Show("条码已判定为合格,无法重新判定为报废");
// Clear();
// return;
//}
//if (lastRst.Contains("报废"))
//{
// MessageBox.Show("条码已判定为报废,无需重复报废");
// Clear();
// return;
//}
ClearControlColor(SetControlGroup());
btnAbt.BackColor = Color.Red;
SaveRst("报废", colorName, partName);
SaveRst("报废", colorName, partName,0);
}
});
}
void SaveRst(string state, string colorName, string partName)
/// <summary>
///
/// </summary>
/// <param name="state"></param>
/// <param name="colorName"></param>
/// <param name="partName"></param>
/// <param name="isOK">0-不合格;1-合格;9-返喷 8-其他 </param>
void SaveRst(string state, string colorName, string partName,int isOK)
{
//保存
@ -474,14 +484,14 @@ namespace PaintingPC
{
if (!string.IsNullOrEmpty(id))
{
bool rst = SendToWms(txtBarCode.Text.Trim(), 1);
bool rst = SendToWms(txtBarCode.Text.Trim(), isOK);
if (rst == false)
{
DeleteRepectRst(id);
}
else
{
ShowHint("操作成功",true);
ShowHint(txtBarCode.Text.Trim()+"操作成功",true);
Clear();
}
}
@ -641,7 +651,7 @@ namespace PaintingPC
model1.position = labProPosition.Text;
model1.stationNo = labStation.Text;
model1.workClass = labWorkClass.Text;
model1.inspectResult = "[" + inspectResult + "]";
model1.inspectResult =inspectResult;
model1.damnPosition = position;
model1.reason = reason;
model1.remark3 = paintId;
@ -947,14 +957,28 @@ namespace PaintingPC
if (dtInspect != null && dtInspect.Rows.Count > 0)
{
List<DataRow> list = dtInspect.AsEnumerable().Where(p => p.Field<string>("inspectResult").Contains("打磨")).ToList();
string state = string.Empty;
if (list.Count > 0)
{
lableFP.Text = "存在返喷状态";
state = "返喷";
}
List<DataRow> list2 = dtInspect.AsEnumerable().Where(p => p.Field<string>("inspectResult").Contains("其它")).ToList();
if (list2.Count > 0)
{
lableFP.Text = "存在其它状态";
if(list2.Where(p=> p.Field<string>("inspectResult")=="其它WMS").Count() > 0)
{
state = state + ",其它WMS";
}
if (list2.Where(p => p.Field<string>("inspectResult") == "其它").Count() > 0)
{
state = state + ",其它";
}
}
if (!string.IsNullOrEmpty(state))
{
lableFP.Text = "存在[" + state + "]状态";
}
_carType = dtInspect.Rows[0]["CarType"].ToString().Trim();

28
PaintingPC/Function.cs

@ -1177,7 +1177,31 @@ namespace PaintingPC
select count(0)
from tb_InspectResult
where barcode = '" + barcode + @"'
and inspectResult like '%%'
and inspectResult like '%'
";
object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
if (aa != null)
{
res = Convert.ToInt32(aa.ToString());
}
}
catch (Exception ex)
{
LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
}
return res;
}
public static int OtherTimes(string barcode)
{
int res = 0;
try
{
string sql = @"
select count(0)
from tb_InspectResult
where barcode = '" + barcode + @"'
and inspectResult = ''
";
object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
@ -1379,7 +1403,7 @@ namespace PaintingPC
if (aa != null)
{
string result = aa.ToString();
if (aa == "[合格]")
if (aa.ToString() == "合格")
{
res = true;
}

121
PaintingScreen/Handler/Function.cs

@ -57,7 +57,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #a
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -65,7 +65,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #b
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -73,7 +73,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #c
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('[]','[]','') AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('','','') AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -111,55 +111,14 @@ namespace PaintingScreen.Handler
string res = "";
try
{
#region 2019-08-06 注销:客户要求改变总合格率算法,使用总数-报废数,而不是实时合格数计算
// string sql = @"
// -- 一次合格数
// SELECT COUNT(DISTINCT barcode) num, productInfo
// INTO #a
// FROM [BBMPT].[dbo].[tb_InspectResult]
// WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[合格]' AND SUBSTRING(productInfo,1,1) != ','
// GROUP BY productInfo
// ORDER BY productInfo DESC
//
// -- 总合格数
// SELECT COUNT(DISTINCT barcode) num, productInfo
// INTO #b
// FROM [BBMPT].[dbo].[tb_InspectResult]
// WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[合格]' AND SUBSTRING(productInfo,1,1) != ','
// GROUP BY productInfo
// ORDER BY productInfo DESC
//
// --总下线数
// SELECT COUNT(DISTINCT barcode) num, productInfo
// INTO #c
// FROM [BBMPT].[dbo].[tb_InspectResult]
// WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('[合格]','[抛光]','报废') AND SUBSTRING(productInfo,1,1) != ','
// GROUP BY productInfo
// ORDER BY productInfo DESC
//
// --合并临时表
// SELECT SUM(ISNULL(c.num,0)) sumNum, SUM(ISNULL(a.num,0)) oncePassNum
// ,CONVERT(VARCHAR(20),ROUND(100*(SUM(ISNULL(a.num,0))/CONVERT(float,SUM(ISNULL(c.num,0)))),2))+'%' oncePassRate
// ,SUM(ISNULL(b.num,0)) sumPassNum
// ,CONVERT(VARCHAR(20),ROUND(100*(SUM(ISNULL(b.num,0))/CONVERT(float,SUM(ISNULL(c.num,0)))),2))+'%' sumPassRate
// FROM #c c
// LEFT JOIN #a a
// ON c.productInfo = a.productInfo
// LEFT JOIN #b b
// ON c.productInfo = b.productInfo
//
// DROP TABLE #a;
// DROP TABLE #b;
// DROP TABLE #c;
// ";
#endregion
string sql = @"
--
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #a
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -167,7 +126,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #b
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -177,14 +136,14 @@ namespace PaintingScreen.Handler
SELECT num, productInfo FROM
(SELECT COUNT(DISTINCT barcode) num, productInfo
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]'
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = ''
AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo) a
UNION
SELECT * FROM (SELECT COUNT(DISTINCT barcode) num, productInfo
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != ''
AND stationNo = 'S10' AND inspectResult <> '[]'
AND stationNo = 'S10' AND inspectResult <> ''
AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo) b
) aa
@ -194,7 +153,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #c
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('[]','[]','') AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('','','') AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -308,7 +267,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #a
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC;
@ -316,7 +275,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #b
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC;
@ -324,7 +283,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #c
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('[]','[]','[]') AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('','','') AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC;
@ -466,7 +425,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #a
FROM [tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC;
@ -474,7 +433,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #b
FROM [tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('[]','[]','[]') AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('','','') AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC;
@ -572,48 +531,6 @@ namespace PaintingScreen.Handler
string res = "";
try
{
#region 2019-08-06 注销:客户要求改变总合格率算法,使用总数-报废数,而不是实时合格数计算
// string sql = @"
// -- 一次合格数
// SELECT COUNT(DISTINCT barcode) num, productInfo
// INTO #a
// FROM [BBMPT].[dbo].[tb_InspectResult]
// WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[合格]' AND SUBSTRING(productInfo,1,1) != ','
// GROUP BY productInfo
// ORDER BY productInfo DESC
//
// -- 总合格数
// SELECT COUNT(DISTINCT barcode) num, productInfo
// INTO #b
// FROM [BBMPT].[dbo].[tb_InspectResult]
// WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[合格]' AND SUBSTRING(productInfo,1,1) != ','
// GROUP BY productInfo
// ORDER BY productInfo DESC
//
// --总下线数
// SELECT COUNT(DISTINCT barcode) num, productInfo
// INTO #c
// FROM [BBMPT].[dbo].[tb_InspectResult]
// WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('[合格]','[抛光]','报废') AND SUBSTRING(productInfo,1,1) != ','
// GROUP BY productInfo
// ORDER BY productInfo DESC
//
// --合并临时表
// SELECT SUM(ISNULL(c.num,0)) sumNum, SUM(ISNULL(a.num,0)) oncePassNum
// ,CONVERT(VARCHAR(20),ROUND(100*(SUM(ISNULL(a.num,0))/CONVERT(float,SUM(ISNULL(c.num,0)))),2))+'%' oncePassRate
// ,SUM(ISNULL(b.num,0)) sumPassNum
// ,CONVERT(VARCHAR(20),ROUND(100*(SUM(ISNULL(b.num,0))/CONVERT(float,SUM(ISNULL(c.num,0)))),2))+'%' sumPassRate
// FROM #c c
// LEFT JOIN #a a
// ON c.productInfo = a.productInfo
// LEFT JOIN #b b
// ON c.productInfo = b.productInfo
//
// DROP TABLE #a;
// DROP TABLE #b;
// DROP TABLE #c;
// ";
#endregion
string sql = @"
@ -621,7 +538,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #a
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE InspectTimes = '1' AND " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -629,7 +546,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #b
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]' AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '' AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC
@ -639,14 +556,14 @@ namespace PaintingScreen.Handler
SELECT num, productInfo FROM
(SELECT COUNT(DISTINCT barcode) num, productInfo
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = '[]'
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult = ''
AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo) a
UNION
SELECT * FROM (SELECT COUNT(DISTINCT barcode) num, productInfo
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != ''
AND stationNo = 'S10' AND inspectResult <> '[]'
AND stationNo = 'S10' AND inspectResult <> ''
AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo) b
) aa
@ -656,7 +573,7 @@ namespace PaintingScreen.Handler
SELECT COUNT(DISTINCT barcode) num, productInfo
INTO #c
FROM [BBMPT].[dbo].[tb_InspectResult]
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('[]','[]','') AND SUBSTRING(productInfo,1,1) != ','
WHERE " + GetQueryTime() + @" AND productInfo != '' AND inspectResult in ('','','') AND SUBSTRING(productInfo,1,1) != ','
GROUP BY productInfo
ORDER BY productInfo DESC

286
WebService/Function.cs

@ -975,6 +975,7 @@ namespace Webservice
wmsM.ReadTime = null;
wmsM.Remark = "";
wmsM.Repaint = repaint.ToString();
wmsM.ColorName = colorName;
#region 产线及工厂ID
LogHelper.WriteSysLogBase("【添加产线ID】barcode:" + barcode, MethodBase.GetCurrentMethod().Name);
@ -1023,9 +1024,7 @@ namespace Webservice
string res = string.Empty;
try
{
WebService.WebReference.JsonService webService = new WebService.WebReference.JsonService();
webService.Url = ConfigurationManager.AppSettings["WMSWebServiceURL"].ToString();
webService.Timeout = 1200000;
WebService.WebReference.JsonService webService = GetWebService();
string jsonParam = " [{\"ServiceType\":\"AddMesData\",\"OperName\":\"ADMIN\"}]";
string strJson = "[25," + JSONTools.ScriptSerialize<List<WMS03Model>>(list) + "]";
@ -1103,17 +1102,32 @@ namespace Webservice
}
}
/// <summary>
/// WMS是否移库,true:未移库允许报废转合格 false:已经移库,无法操作报废转合格
/// </summary>
/// <param name="sjBarCode"></param>
/// <returns></returns>
static bool GetWmsCompleteState(string sjBarCode)
{
string jsonParam = " [{\"ServiceType\":\"GetMesData\",\"BarCode\":\""+sjBarCode+"\"}]";
WebService.WebReference.JsonService webService = GetWebService();
string rst = webService.GetData(jsonParam);
return true;
}
/// <summary>
/// 是否允许发送给wms 是否质检等判断
/// </summary>
/// <param name="oneBarCode"></param>
/// <param name="state">0-不合格;1-合格 9-返喷</param>
/// <param name="state">0-不合格;1-合格 9-返喷 8-其它</param>
/// pRepaint 只存在返喷 Repaint =1 只存在其它 Repaint =3 既存在返喷又存在其它 Repaint =4
/// <returns></returns>
static bool AllowSendToWms(string oneBarCode, int state,
ref int pRepaint,ref string errorMssg ,ref string paintColor, ref string colorName, ref string productName,ref string carType)
{
if (string.IsNullOrEmpty(oneBarCode)) return false;
DataTable inspectTable = GetInspectResultTable($"{oneBarCode}",ref paintColor);
DataTable inspectTable = GetInspectResultTable($"{oneBarCode}");
if (inspectTable.Rows.Count == 0)
{
errorMssg = "没有进行质量判定,不能入库";
@ -1122,103 +1136,250 @@ namespace Webservice
colorName = inspectTable.Rows[0]["remark1"].ToString();
productName = inspectTable.Rows[0]["remark2"].ToString();
carType = inspectTable.Rows[0]["CarType"].ToString();
paintColor = GetPaintLU(oneBarCode.Substring(0, 10), inspectTable.Rows[0]["remark1"].ToString());
paintColor = inspectTable.Rows[0]["remark1"].ToString();
//返喷状态
int rePaint = GetRepainState(inspectTable);
pRepaint = rePaint;
//不合格0 有报工记录不能重发
if (state == 0)
string lastState = string.Empty;
if (inspectTable.Rows.Count > 1)
{
//if (inspectTable.Rows[0]["inspectResult"].ToString().Contains("报废") == false) //当前状态不是报废
//{
// errorMssg = $"条码[{oneBarCode}]质检记录是[{inspectTable.Rows[0]["inspectResult"].ToString()}]状态,无法报废报工.";
// return false;
//}
//else
if (rePaint == 0)
lastState = inspectTable.Rows[1]["inspectResult"].ToString();
}
//返喷状态
pRepaint = GetRapaintState(inspectTable);
//合格 1 最近一条是报废记录,可以重发. 否则不可以.
if (state == 1)
{
if (IsStockInAll(oneBarCode))
//第一次合格
if (string.IsNullOrEmpty(lastState))
{
errorMssg = $"条码[{oneBarCode}]已报工,不能重新报工.";
return false;
}
return true;
}
if (inspectTable.Rows.Count > 1)
else
{
if (inspectTable.Rows[1]["inspectResult"].ToString().Contains("报废"))//只要上一次为报废,就不能进行任何一项其他判定
//上一次是合格
if (lastState.Contains("合格"))
{
errorMssg = $"条码[{oneBarCode}]已报废,不能重新报工.";
errorMssg = $"条码[{oneBarCode}]已判定[合格],不需要重复判定为[合格].";
return false;
}
else if (inspectTable.Rows[0]["inspectResult"].ToString().Contains("其它") && inspectTable.Rows[1]["inspectResult"].ToString().Contains("其它"))
else if (lastState.Contains("报废"))
{
errorMssg = $"条码[{oneBarCode}]已经存在其它状态,不能重新判定为其它状态.";
errorMssg = $"条码[{oneBarCode}]已判定[报废],不能重新判定[合格].";
return false;
}
else if (inspectTable.Rows[0]["inspectResult"].ToString().Contains("打磨") && inspectTable.Rows[1]["inspectResult"].ToString().Contains("打磨"))
else
{
errorMssg = $"条码[{oneBarCode}]已经存在返喷状态,不能重新判定为返喷状态.";
return false;
return true;
}
}
#region 原来的
//if (inspectTable.Rows.Count > 1) //有多条记录,判定前一条记录状态. 若只有一条记录,就是允许的
//{
// if (rePaint == 0) //没返喷的合格,
// {
// if (IsStockInAll(oneBarCode))
// {
// string lastRst = inspectTable.Rows[1]["inspectResult"].ToString();
// if (lastRst.Contains("报废")) //允许报废转合格
// {
// errorMssg = $"条码[{oneBarCode}]已报废,不能重新报工.";
// return false;
// }
// errorMssg = $"条码[{oneBarCode}]已报工,不能重新报工.";
// return false;
// }
// }
// else //存在返喷的合格
// {
// if (IsStockInAll(oneBarCode, true))
// {
// string lastRst = inspectTable.Rows[1]["inspectResult"].ToString();
// if (lastRst.Contains("报废")) //允许报废转合格
// {
// return true;
// }
// if (lastRst.Contains("打磨")) //允许返喷二次判定为合格
// {
// return true;
// }
// if (lastRst.Contains("其它")) //允许其他转合格
// {
// return true;
// }
// errorMssg = $"条码[{oneBarCode}]存在返喷报工,不能重新报工." + inspectTable.Rows.Count + "[" + inspectTable.Rows[0]["ID"].ToString();
// return false;
// }
// }
//}
#endregion
}
//合格 1 最近一条是报废记录,可以重发. 否则不可以.
else if (state == 1)
//不合格报废0 有报工记录不能重发
else if (state == 0)
{
//第一次操作
if (string.IsNullOrEmpty(lastState))
{
return true;
}
//上次合格,这次转报废,需要wms给true
if (lastState.Contains("合格"))
{
bool wmsAllow = GetWmsCompleteState(oneBarCode);
if(wmsAllow == false)
{
//if(inspectTable.Rows[0]["inspectResult"].ToString().Contains("合格") ==false)
errorMssg = $"条码[{oneBarCode}]在Wms已移库,不允许重新判定为[报废].";
return false;
}
else
{
return true;
}
}
if (lastState.Contains("报废"))
{
errorMssg = $"条码[{oneBarCode}]已报废,不需要重复判定为[报废].";
return false;
}
return true;
//if (rePaint == 0)
//{
// if (IsStockInAll(oneBarCode))
// {
// errorMssg = $"条码[{oneBarCode}]质检记录是[{inspectTable.Rows[0]["inspectResult"].ToString()}]状态,无法合格报工.";
// errorMssg = $"条码[{oneBarCode}]已报工,不能重新报工.";
// return false;
// }
if(inspectTable.Rows.Count > 1) //有多条记录,判定前一条记录状态. 若只有一条记录,就是允许的
//}
//if (inspectTable.Rows.Count > 1)
//{
// if (inspectTable.Rows[1]["inspectResult"].ToString().Contains("报废"))//只要上一次为报废,就不能进行任何一项其他判定
// {
// errorMssg = $"条码[{oneBarCode}]已报废,不能重新报工.";
// return false;
// }
// else if (inspectTable.Rows[0]["inspectResult"].ToString().Contains("其它") && inspectTable.Rows[1]["inspectResult"].ToString().Contains("其它"))
// {
// errorMssg = $"条码[{oneBarCode}]已经存在其它状态,不能重新判定为其它状态.";
// return false;
// }
// else if (inspectTable.Rows[0]["inspectResult"].ToString().Contains("打磨") && inspectTable.Rows[1]["inspectResult"].ToString().Contains("打磨"))
// {
// errorMssg = $"条码[{oneBarCode}]已经存在返喷状态,不能重新判定为返喷状态.";
// return false;
// }
//}
}
//其它状态
else if(state == 8)
{
if (rePaint == 0) //没返喷的合格,
//第一次合格
if (string.IsNullOrEmpty(lastState))
{
if (IsStockInAll(oneBarCode))
return true;
}
//上次合格,这次转其它,需要wms给true
if (lastState.Contains("合格"))
{
string lastRst = inspectTable.Rows[1]["inspectResult"].ToString();
if (lastRst.Contains("报废")) //允许报废转合格
bool wmsAllow = GetWmsCompleteState(oneBarCode);
if (wmsAllow == false)
{
errorMssg = $"条码[{oneBarCode}]已报废,不能重新报工.";
errorMssg = $"条码[{oneBarCode}]在Wms已移库,不允许重新判定为[其它].";
return false;
}
errorMssg = $"条码[{oneBarCode}]已报工,不能重新报工.";
return false;
else
{
return true;
}
}
else //存在返喷的合格
else if (lastState.Contains("报废"))
{
if (IsStockInAll(oneBarCode, true))
errorMssg = $"条码[{oneBarCode}]已判定[报废],不能重新判定[其它].";
return false;
}
if (lastState.Contains("其它"))
{
string lastRst = inspectTable.Rows[1]["inspectResult"].ToString();
if (lastRst.Contains("报废")) //允许报废转合格
errorMssg = $"条码[{oneBarCode}]已判定为[其它],不需要重复判定为[其它].";
return false;
}
}
else if(state == 9)
{
//第一次合格
if (string.IsNullOrEmpty(lastState))
{
return true;
}
if (lastRst.Contains("打磨")) //允许返喷二次判定为合格
//上次合格,这次转报废,需要wms给true
if (lastState.Contains("合格"))
{
return true;
bool wmsAllow = GetWmsCompleteState(oneBarCode);
if (wmsAllow == false)
{
errorMssg = $"条码[{oneBarCode}]在Wms已移库,不允许重新判定为[返喷].";
return false;
}
if (lastRst.Contains("其它")) //允许其他转合格
else
{
return true;
}
errorMssg = $"条码[{oneBarCode}]存在返喷报工,不能重新报工." + inspectTable.Rows.Count + "[" + inspectTable.Rows[0]["ID"].ToString();
return false;
}
else if (lastState.Contains("报废"))
{
errorMssg = $"条码[{oneBarCode}]已判定[报废],不能重新判定[返喷].";
return false;
}
if (lastState.Contains("打磨") )
{
errorMssg = $"条码[{oneBarCode}]已判定为[返喷],不需要重复判定为[返喷].";
return false;
}
}
return true;
}
/// <summary>
/// 返喷状态 只存在返喷 Repaint =1 只存在其它 Repaint =3 既存在返喷又存在其它 Repaint =4
/// </summary>
/// <param name="inspectTable"></param>
/// <returns></returns>
static int GetRapaintState(DataTable inspectTable)
{
int rePaintCount = inspectTable.AsEnumerable().Count(p => p.Field<string>("inspectResult").Contains("返喷"));
int reOtherCount = inspectTable.AsEnumerable().Count(p => p.Field<string>("inspectResult").Contains("其它"));
if(rePaintCount>0 && reOtherCount > 0)
{
return 4;
}
else if (rePaintCount > 0)
{
return 1;
}
else if (reOtherCount > 0)
{
return 3;
}
else
{
return 0;
}
}
/// <summary>
/// 计算返喷状态 线边返喷=1,库房判定返喷=2 其它状态=9 正常=0
/// </summary>
@ -1230,7 +1391,7 @@ namespace Webservice
List<DataRow> paintRows = inspectTable.AsEnumerable().Where(p => p.Field<string>("inspectResult").Contains("打磨")).ToList();
if (paintRows.Count > 0)
{
List<DataRow> wmsPaintRows = paintRows.Where(p => p.Field<string>("inspectResult").Contains("WMS打磨")).ToList();
List<DataRow> wmsPaintRows = paintRows.Where(p => p.Field<string>("inspectResult").Contains("打磨WMS")).ToList();
if (wmsPaintRows.Count > 0)
{
rePaint = 2;
@ -1375,7 +1536,7 @@ namespace Webservice
if (dt != null && dt.Rows.Count > 0)
{
string inspectResult = dt.Rows[0]["inspectResult"].ToString().Trim();
if ("[合格]" == inspectResult) //合格报工
if ("合格" == inspectResult) //合格报工
{
return true;
}
@ -1440,7 +1601,7 @@ namespace Webservice
/// </summary>
/// <param name="oneBarCode"></param>
/// <returns></returns>
static DataTable GetInspectResultTable(string oneBarCode, ref string paintCode )
static DataTable GetInspectResultTable(string oneBarCode )
{
string sql = "";
if (oneBarCode.Contains("."))
@ -2327,9 +2488,7 @@ namespace Webservice
#region 调用WMS Web Service
WebService.WebReference.JsonService webService = new WebService.WebReference.JsonService();
webService.Url = ConfigurationManager.AppSettings["WMSWebServiceURL"].ToString();
webService.Timeout = 1200000;
WebService.WebReference.JsonService webService = GetWebService();
string jsonParam = " [{\"ServiceType\":\"AddMesData\",\"OperName\":\"ADMIN\"}]";
//string strJson = "[55," + JSONTools.ScriptSerialize<List<WMS03Model>>(list) + "]";
@ -2576,5 +2735,14 @@ namespace Webservice
}
#endregion
static WebService.WebReference.JsonService GetWebService()
{
WebService.WebReference.JsonService webService = new WebService.WebReference.JsonService();
webService.Url = ConfigurationManager.AppSettings["WMSWebServiceURL"].ToString();
webService.Timeout = 1200000;
return webService;
}
}
}

1
WebService/Model/WMS03Model.cs

@ -76,5 +76,6 @@ namespace WebService.Model
/// 返喷状态 0:未返喷 1:喷涂线边返喷 2:物流仓库返喷
/// </summary>
public string Repaint { get; set; }
public string ColorName { get; set; }
}
}

4
WebService/WMSWebService.asmx.cs

@ -94,7 +94,7 @@ namespace Webservice
/// 喷涂报废接口
/// </summary>
/// <param name="barcode">条码号:A2048856739-P.190605.0008(二维码)</param>
/// <param name="isOK">0-不合格;1-合格; </param>
/// <param name="isOK">0-不合格;1-合格;9-返喷 8-其他 </param>
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public bool WMSSprayingForCS(string barcode, int isOK, out string errorReason)
@ -351,7 +351,7 @@ namespace Webservice
InModel.position = "手持设备";
InModel.stationNo = "S20";
InModel.workClass = Function.GetWorkClass();
InModel.inspectResult = "[合格]";
InModel.inspectResult = "合格";
InModel.productInfo = Function.GetProductInfo(barcode);
InModel.InspectTimes = InspectTimes;
InModel.productOption = "";

Loading…
Cancel
Save