| | |
| | | bool flag = false; |
| | | string HResult = list.Rows[i]["HResult"].ToString(); |
| | | string HBadCodeSN = list.Rows[i]["HBarCode"].ToString(); |
| | | string HCreateTime = list.Rows[i]["HCreateTime"].ToString(); |
| | | //开始事务 |
| | | oCN.BeginTran(); |
| | | |
| | |
| | | } |
| | | |
| | | if (flag) { |
| | | oCN.RunProc("update Sb_EquipMentCollection_SN set HFlag=1 where HBarCode='" + HBadCodeSN + "'"); |
| | | oCN.RunProc("update Sb_EquipMentCollection_SN set HFlag=1 where HBarCode='" + HBadCodeSN + "' and HCreateTime='"+ HCreateTime + "'"); |
| | | //结束事务 |
| | | oCN.Commit(); |
| | | } |
| | |
| | | else if (num == 1) |
| | | { |
| | | //判断这个条码之前的状态是否为NG |
| | | DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN WITH(NOLOCK) where HBarCode='" + HBadCodeSN + "' and HCreateTime<'" + dic["HCreateTime"].ToString() + "' and HResult='NG' and HProcNumber='" + dic["HProcNumber"].ToString() + "'", "Sb_EquipMentCollection_SN"); |
| | | DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN WITH(NOLOCK) where HBarCode='" + HBadCodeSN + "' and HCreateTime<'" + dic["HCreateTime"].ToString() + "' and HResult='NG'", "Sb_EquipMentCollection_SN"); |
| | | |
| | | //查询出站单是否包含条码 |
| | | DataSet ds1 = oCN.RunProcReturn(@"select a.HSourceID,a.HProcID,* from Sc_StationOutBillMain a WITH(NOLOCK) |
| | | inner join Sc_StationOutBillSub_SN sn WITH(NOLOCK) on a.HInterID=sn.HInterID |
| | | left join Gy_Source s WITH(NOLOCK) on a.HSourceID=s.HItemID |
| | |
| | | //查询职员 |
| | | ds = oCN.RunProcReturn("select * from Gy_Employee WITH(NOLOCK) where HNumber='" + dic["HEmpCode"].ToString() + "' ", "Gy_Employee"); |
| | | long HEmpIDs = 0; |
| | | string HEmpName = ""; |
| | | if (ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | HEmpIDs = long.Parse(ds.Tables[0].Rows[0]["HItemID"].ToString());//职员ID |
| | | HEmpName = ds.Tables[0].Rows[0]["HName"].ToString(); |
| | | } |
| | | |
| | | long HDeptID = 0; |
| | |
| | | string HBillSubType = "3791"; |
| | | |
| | | int HBillStatus = 1; |
| | | string HMaker = "";//制单人 |
| | | string HMaker = HEmpName;//制单人 |
| | | string HMouldNum = "";//模穴号 |
| | | int HYear = DateTime.Now.Year; |
| | | double HPeriod = DateTime.Now.Month; |
| | |
| | | long HInterID = 0; |
| | | string HBillNo = ""; |
| | | |
| | | ds = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBadCodeSN + "'," + HProcID, "h_v_Gy_QualifiedRecordsList"); |
| | | if (ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("条码:" + HBadCodeSN + "工序:" + HProcID + ",工序控制查无数据!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return false; |
| | | } |
| | | else if (ds.Tables[0].Rows[0]["HBack"].ToString() == "2") |
| | | { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("条码:" + HBadCodeSN + "工序:" + HProcID + "," + ds.Tables[0].Rows[0]["HBackRemark"].ToString() + "!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | //判断当前流转卡的出站单 是否有数据 |
| | | ds = oCN.RunProcReturn(@"select * from Sc_StationOutBillMain a WITH(NOLOCK) |
| | |
| | | oCN.RunProc($@"insert into Sc_StationOutBillSub_SN(HInterID,HBillNo_bak,HEntryID,HBarCode,HBarCodeQty,HMakeTime,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney) |
| | | values({ HInterID}, '{ HBillNo}', {(ds.Tables[0].Rows.Count == 0 ? 1 : int.Parse(ds.Tables[0].Rows[0]["HEntryID"].ToString()) + 1)}, '{HBadCodeSN}', 1, '"+ HMakeTime + "', '', " + HProcExchInterID + "," + HProcExchEntryID + ", '" + HProcExchBillNo + "', '', 0, 0)"); |
| | | |
| | | CustomWriteLog("条码:" + HBadCodeSN + "工序:" + HProcNumber + ",出站时间:" + HMakeTime, "TM" + DateTime.Now.ToString("yyyy-MM-dd")); |
| | | //反写工序出站单的合格数量 |
| | | oCN.RunProc("update Sc_StationOutBillMain set HQty+=1 where HInterID='" + HInterID + "'"); |
| | | } |
| | | else if (HResult == "NG") |
| | | { |
| | | //反写工序出站单的不良数量 |
| | | oCN.RunProc("update Sc_StationOutBillMain set HBadCount+=1 where HInterID='" + HInterID + "'"); |
| | | ds = oCN.RunProcReturn("select * from Sc_QualityReportBillSub WITH(NOLOCK) where HBarCode='" + HBadCodeSN + "' order by HMakeDate desc", "Sc_QualityReportBillSub"); |
| | | |
| | | if (ds.Tables[0].Rows.Count > 0) { |
| | | string HBadDate = ds.Tables[0].Rows[0]["HMakeDate"].ToString(); |
| | | |
| | | ds = oCN.RunProcReturn("select * from Sc_SourceLineRepairBillMain WITH(NOLOCK) where HBarCode='" + HBadCodeSN + "' order by HMakeDate desc", "Sc_SourceLineRepairBillMain"); |
| | | |
| | | if (ds.Tables[0].Rows.Count > 0) { |
| | | string HRepairDate = ds.Tables[0].Rows[0]["HMakeDate"].ToString(); |
| | | |
| | | if (DateTime.Parse(HBadDate) < DateTime.Parse(HRepairDate)) { |
| | | //反写工序出站单的不良数量 |
| | | oCN.RunProc("update Sc_StationOutBillMain set HBadCount+=1 where HInterID='" + HInterID + "'"); |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | //反写工序出站单的不良数量 |
| | | oCN.RunProc("update Sc_StationOutBillMain set HBadCount+=1 where HInterID='" + HInterID + "'"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("结果不为OK或NG!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return false; |
| | | } |
| | | |
| | | //查询出站数量是否超过流转卡数量 |
| | | ds = oCN.RunProcReturn($@"select (b.HQty -sum(isnull(ou.HQty,0))-sum(isnull(ou.HBadCount,0))) HQty from Sc_ProcessExchangeBillSub b WITH(NOLOCK) |
| | | left join Sc_StationOutBillMain ou WITH(NOLOCK) on b.HInterID=ou.HProcExchInterID and b.HEntryID=ou.HProcExchEntryID |
| | | where b.HInterID={HProcExchInterID} and b.HEntryID={HProcExchEntryID} |
| | | group by b.HInterID,b.HEntryID,b.HQty", "Sc_ProcessExchangeBill_Out"); |
| | | |
| | | if (double.Parse(ds.Tables[0].Rows[0][0].ToString()) < 0) |
| | | { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("流转卡:"+ HProcExchBillNo + ",出站数量超过流转卡数量!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return false; |
| | | } |
| | | |
| | |
| | | { |
| | | double SYHQty = double.Parse(dataSet.Tables[0].Rows[i]["配件数量"].ToString()); |
| | | string HMaterNamePJ = dataSet.Tables[0].Rows[i]["配件代码"].ToString(); |
| | | string HMaterBarCode = dataSet.Tables[0].Rows[i]["HBarCode"].ToString(); |
| | | if (SYHQty == 0) { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("配件代码:" + HMaterNamePJ + ",数量为0!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | CustomWriteLog("配件条码:"+ HMaterBarCode + ",配件代码:" + HMaterNamePJ + ",数量为0!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | long HInterID = 0; |
| | | string HBillNo = ""; |
| | | |
| | | ds = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBadCodeSN + "'," + HProcID, "h_v_Gy_QualifiedRecordsList"); |
| | | if (ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("条码:" + HBadCodeSN + "工序:" + HProcID + ",工序控制查无数据!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return false; |
| | | } |
| | | else if (ds.Tables[0].Rows[0]["HBack"].ToString() == "2") |
| | | { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("条码:" + HBadCodeSN + "工序:" + HProcID + "," + ds.Tables[0].Rows[0]["HBackRemark"].ToString() + "!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return false; |
| | | } |
| | | |
| | | ds = oCN.RunProcReturn("select * from Sc_AssemblyBillMain WITH(NOLOCK) where HMainSourceInterID=" + HProcExchInterID + " and HMainSourceEntryID=" + HProcExchEntryID, "Sc_AssemblyBillMain"); |
| | | DateTime HDate=DateTime.Now; |
| | | //当产品没有配件的时候 查询 不良记录 |
| | |
| | | oCN.RunProc($@"insert into Sc_StationOutBillSub_SN(HInterID,HBillNo_bak,HEntryID,HBarCode,HBarCodeQty,HMakeTime,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney) |
| | | values({ HInterID}, '{ HBillNo}', {(ds.Tables[0].Rows.Count == 0 ? 1 : int.Parse(ds.Tables[0].Rows[0]["HEntryID"].ToString()) + 1)}, '{HBadCodeSN}', 1, '" + HMakeTime + "', '', " + HProcExchInterID + "," + HProcExchEntryID + ", '" + HProcExchBillNo + "', '', 0, 0)"); |
| | | |
| | | CustomWriteLog("条码:" + HBadCodeSN + "工序:"+ HProcNumber + ",出站时间:" + HMakeTime, "TM" + DateTime.Now.ToString("yyyy-MM-dd")); |
| | | |
| | | //反写工序出站单的合格数量 |
| | | oCN.RunProc("update Sc_StationOutBillMain set HQty+=1,HBadCount-=1 where HInterID='" + HInterID + "'"); |
| | | //oCN.RunProc("update Sc_StationOutBillMain set HQty+=1,HBadCount-=1 where HInterID='" + HInterID + "'"); |
| | | oCN.RunProc("update Sc_StationOutBillMain set HQty+=1 where HInterID='" + HInterID + "'"); |
| | | //反写条码状态 |
| | | oCN.RunProc("update Gy_BarCodeBill set HStatus='' where HBarCode='" + HBadCodeSN + "'"); |
| | | } |
| | |
| | | { |
| | | |
| | | |
| | | DataSet ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain WITH(NOLOCK) where HInterID=" + HInterID + " and HBillNo='" + HBillNo + "'", "Sc_StationOutBillMain"); |
| | | DataSet ds = oCN.RunProcReturn(@"select a.HProcExchInterID,a.HProcExchEntryID,a.HProcExchBillNo,a.HProcID,p.HNumber from Sc_StationOutBillMain a WITH(NOLOCK) |
| | | left join Gy_Process p WITH(NOLOCK) on a.HProcID=p.HItemID where HInterID=" + HInterID + " and HBillNo='" + HBillNo + "'", "Sc_StationOutBillMain"); |
| | | string HProcExchInterID = ds.Tables[0].Rows[0]["HProcExchInterID"].ToString(); |
| | | string HProcExchEntryID = ds.Tables[0].Rows[0]["HProcExchEntryID"].ToString(); |
| | | string HProcExchBillNo = ds.Tables[0].Rows[0]["HProcExchBillNo"].ToString(); |
| | | |
| | | ds = oCN.RunProcReturn(@"select s.HItemID HMouldID,t.HItemID HTechParamID,HCount,HCreateTime from Sb_EquipMentCollectionTechParam_SN a WITH(NOLOCK) |
| | | string HProcID = ds.Tables[0].Rows[0]["HProcID"].ToString(); |
| | | string HProcNum = ds.Tables[0].Rows[0]["HNumber"].ToString(); |
| | | //注:因为 组装 拍照 时间间隔比较短 所以目前只明确组装工序才可以保存工艺参数 之后如果有其他工序的话 需要增加工序字段 |
| | | if (HProcID == "88"|| HProcNum=="005") { |
| | | ds = oCN.RunProcReturn(@"select s.HItemID HMouldID,t.HItemID HTechParamID,HCount,HCreateTime,a.HResult from Sb_EquipMentCollectionTechParam_SN a WITH(NOLOCK) |
| | | inner join Gy_Source s WITH(NOLOCK) on a.HSourceCode=s.HNumber |
| | | inner join Gy_TechnologyParameter t WITH(NOLOCK) on a.HType=t.HName |
| | | where a.HFlag=0 and a.HBarCode='" + HBadCodeSN + "'", "Sb_EquipMentCollectionTechParam_SN"); |
| | | //注:当前只有一道工序有参数 如果有多道工序的话 需要增加 工序的过滤 |
| | | //注:当前只有一道工序有参数 如果有多道工序的话 需要增加 工序的过滤 |
| | | |
| | | if (ds.Tables[0].Rows.Count != 0) { |
| | | |
| | | for (int i = 0; i < ds.Tables[0].Rows.Count; i++) |
| | | if (ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | string HMouldID = ds.Tables[0].Rows[i]["HMouldID"].ToString(); |
| | | string HTechParamID = ds.Tables[0].Rows[i]["HTechParamID"].ToString(); |
| | | string HCount = ds.Tables[0].Rows[i]["HCount"].ToString(); |
| | | string HGetTime = ds.Tables[0].Rows[i]["HCreateTime"].ToString(); |
| | | |
| | | DataSet dataSet = oCN.RunProcReturn("select * from Sc_StationOutBillSub_TechParam WITH(NOLOCK) where HInterID=" + HInterID + " and HBillNo_bak='" + HBillNo + "'", "Sc_StationOutBillSub_TechParam"); |
| | | for (int i = 0; i < ds.Tables[0].Rows.Count; i++) |
| | | { |
| | | string HMouldID = ds.Tables[0].Rows[i]["HMouldID"].ToString(); |
| | | string HTechParamID = ds.Tables[0].Rows[i]["HTechParamID"].ToString(); |
| | | string HCount = ds.Tables[0].Rows[i]["HCount"].ToString(); |
| | | string HGetTime = ds.Tables[0].Rows[i]["HCreateTime"].ToString(); |
| | | string HResult = ds.Tables[0].Rows[i]["HResult"].ToString(); |
| | | |
| | | sql = "insert into Sc_StationOutBillSub_TechParam(HInterID,HBillNo_bak,HEntryID ,HSourceInterID,HSourceEntryID,HSourceBillNo,HTechParamID,HRelValue,HGetTime,HBarCode,HMouldID)" + |
| | | $"values({HInterID},'{HBillNo}',{(dataSet.Tables[0].Rows.Count + 1)},{HProcExchInterID},{HProcExchEntryID},'{HProcExchBillNo}',{HTechParamID},{HCount},'{HGetTime}','{HBadCodeSN}',{HMouldID})"; |
| | | DataSet dataSet = oCN.RunProcReturn("select * from Sc_StationOutBillSub_TechParam WITH(NOLOCK) where HInterID=" + HInterID + " and HBillNo_bak='" + HBillNo + "'", "Sc_StationOutBillSub_TechParam"); |
| | | |
| | | oCN.RunProc(sql); |
| | | sql = "insert into Sc_StationOutBillSub_TechParam(HInterID,HBillNo_bak,HEntryID ,HSourceInterID,HSourceEntryID,HSourceBillNo,HTechParamID,HRelValue,HGetTime,HBarCode,HMouldID,HRemark)" + |
| | | $"values({HInterID},'{HBillNo}',{(dataSet.Tables[0].Rows.Count + 1)},{HProcExchInterID},{HProcExchEntryID},'{HProcExchBillNo}',{HTechParamID},{HCount},'{HGetTime}','{HBadCodeSN}',{HMouldID},'{HResult}')"; |
| | | |
| | | oCN.RunProc(sql); |
| | | } |
| | | oCN.RunProc("update Sb_EquipMentCollectionTechParam_SN set HFlag=1 where HBarCode='" + HBadCodeSN + "'"); |
| | | } |
| | | oCN.RunProc("update Sb_EquipMentCollectionTechParam_SN set HFlag=1 where HBarCode='" + HBadCodeSN + "'"); |
| | | } |
| | | |
| | | return true; |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | DataSet ds = oCN.RunProcReturn(@"select * from Gy_BarCodeBill where HBarCode='" + HBadCodeSN + "'", "Gy_BarCodeBill"); |
| | | //判断条码是否存在条码档案 |
| | | if (ds.Tables[0].Rows.Count > 0) |
| | | { |
| | | string HSourceBillNo = ds.Tables[0].Rows[0]["HSourceBillNo"].ToString(); |
| | | DataSet dataTable = oCN.RunProcReturn(@"select * from Sc_ProcessExchangeBillMain where HBillNo='" + HSourceBillNo + "'", "Sc_ProcessExchangeBillMain"); |
| | | //判断条码的源单 流转卡是否被删除 |
| | | if (dataTable.Tables[0].Rows.Count == 0) |
| | | { |
| | | //如果源单已经删除 则条码也删除重新生成 |
| | | oCN.RunProc("delete from Gy_BarCodeBill where HBarCode='" + HBadCodeSN + "'"); |
| | | |
| | | //重新查询条码档案 进入新增方法 |
| | | ds = oCN.RunProcReturn(@"select * from Gy_BarCodeBill where HBarCode='" + HBadCodeSN + "'", "Gy_BarCodeBill"); |
| | | } |
| | | } |
| | | |
| | | //判断条码是否在数据库里 |
| | | if (ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | //判断长度是否为29位 |
| | | //判断长度是否为29位 无尘车间 |
| | | if (HBadCodeSN.Length == 29) |
| | | { |
| | | string str1 = HBadCodeSN.Substring(23, 3); |
| | | string str1 = HBadCodeSN.Substring(18, 8); |
| | | ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%'", "Sc_ProcessExchangeBillMain"); |
| | | //判断是否能找到对应的流转卡 |
| | | if (ds.Tables[0].Rows.Count > 0) |
| | | { |
| | | string HProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); |
| | | get_HBardBillSave(HBadCodeSN, HProcExchBillNo); |
| | | } |
| | | else |
| | | { |
| | | str1 = HBadCodeSN.Substring(23, 3); |
| | | ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%'", "Sc_ProcessExchangeBillMain"); |
| | | //判断是否能找到对应的流转卡 |
| | | if (ds.Tables[0].Rows.Count > 0) |
| | | { |
| | | string HProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); |
| | | get_HBardBillSave(HBadCodeSN, HProcExchBillNo); |
| | | } |
| | | else |
| | | { |
| | | oCN.RollBack(); |
| | | CustomWriteLog("条码:" + HBadCodeSN + ",流转卡不存在!", DateTime.Now.ToString("yyyy-MM-dd")); |
| | | return 2; |
| | | } |
| | | } |
| | | } |
| | | //判断长度是否为50位 15车间 |
| | | else if (HBadCodeSN.Length == 50) |
| | | { |
| | | string str1 = HBadCodeSN.Substring(42, 8); |
| | | ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%'", "Sc_ProcessExchangeBillMain"); |
| | | //判断是否能找到对应的流转卡 |
| | | if (ds.Tables[0].Rows.Count > 0) |
| | |
| | | //定时读取数据 |
| | | private void timer1_Tick(object sender, EventArgs e) |
| | | { |
| | | DataTable list = oCN.RunProcReturn("select * from Sb_EquipMentCollection_SN WITH(NOLOCK) where HFlag=0 order by HCreateTime", "Sb_EquipMentCollection_SN").Tables[0]; |
| | | DataTable list = oCN.RunProcReturn("select top 100 * from Sb_EquipMentCollection_SN WITH(NOLOCK) where HFlag=0 order by HCreateTime asc", "Sb_EquipMentCollection_SN").Tables[0]; |
| | | |
| | | //循环集合 |
| | | for (int i = 0; i < list.Rows.Count; i++) |
| | |
| | | bool flag = false; |
| | | string HResult = list.Rows[i]["HResult"].ToString(); |
| | | string HBadCodeSN = list.Rows[i]["HBarCode"].ToString(); |
| | | string HCreateTime = list.Rows[i]["HCreateTime"].ToString(); |
| | | |
| | | //HBadCodeSN = "P1099081-00-E:SDU324292189300"; |
| | | //HResult = "OK"; |
| | | //开始事务 |
| | | oCN.BeginTran(); |
| | | |
| | | if (HResult == "OK") |
| | | if (HResult == "OK") |
| | | { |
| | | flag = HResultOK(list.Rows[i]); |
| | | } |
| | |
| | | |
| | | if (flag) |
| | | { |
| | | oCN.RunProc("update Sb_EquipMentCollection_SN set HFlag=1 where HBarCode='" + HBadCodeSN + "'"); |
| | | oCN.RunProc("update Sb_EquipMentCollection_SN set HFlag=1 where HBarCode='" + HBadCodeSN + "' and HCreateTime='" + HCreateTime + "'"); |
| | | //结束事务 |
| | | oCN.Commit(); |
| | | } |
| | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | private void Form1_FormClosing(object sender, FormClosingEventArgs e) |
| | | { |
| | | if (MessageBox.Show("确定要关闭吗?", "确认", MessageBoxButtons.YesNo) == DialogResult.No) |
| | | { |
| | | e.Cancel = true; |
| | | } |
| | | } |
| | | } |
| | | } |