using System; using System.Collections.Generic; using System.Web; using System.Text; using bizFacade; using System.Data; //using SystemFramework; using MesWebFun_MateriallPull.BarCodeServer_Pro; namespace MesWebFun_MateriallPull { public partial class MesWebFun_MateriallPull { private static string Init_WorkStationMaterial(string OpName) { DataTable dt; MaterialPull.getWorkStationMaterialInfo(OpName, out dt); if (dt != null) { return JsonHelper.CreateJsonParameters(dt, true, dt.Rows.Count); } else { return ""; } } #region 批次接收 /// /// 物料号获取 /// /// 1) { for (int i = 0; i < dt.Rows.Count; i++) { if (i == 0) { sb.Append("\"id\":" + i + ",\"text\":\"" + dt.Rows[0][0] + "\",\"selected\":true},{"); } if (i != dt.Rows.Count - 1 & i != 0) { sb.Append("\"id\":" + i + ",\"text\":\"" + dt.Rows[i][0] + "\"},{"); } else if (i == dt.Rows.Count - 1) { sb.Append("\"id\":" + i + ",\"text\":\"" + dt.Rows[i][0] + "\"}]"); } } } } return sb.ToString(); } /// /// 获取卡片一览信息 /// /// /// 物料拉动_库存盘点 /// /// private static string initStockCount(string OpName, string MaterialNum) { string text = ""; System.Data.DataTable dt = null; //string MaterialNum = HttpContext.Current.Request["MaterialNum"]; MaterialPull.init_StockCount(OpName, MaterialNum, out dt); if (dt.Rows.Count > 0) { text = JsonHelper.DataTableToJson(dt); } return text; } private static string Init_MaterialNum_Combobox(string OpName) { string text = ""; System.Data.DataTable dt = null; MaterialPull.Init_MaterialNumCombobox(OpName, out dt); text = JsonHelper.DataTableToJson(dt); return text; } private static string Init_Final_OrderNumber_Combobox() { string text = ""; System.Data.DataTable dt = null; MaterialPull.Init_FinalOrderNumberCombobox(out dt); text = JsonHelper.DataTableToJson(dt); return text; } private static string Consume_stockcount(string OpName, string ConsumeNum, string OrderNumber,string CardNum) { //string ConsumeNum = HttpContext.Current.Request["ConsumeNum"]; //string OrderNumber = HttpContext.Current.Request["OrderNumber"]; //string CardNum = HttpContext.Current.Request["CardNum"]; MaterialPull.Consume_StockCount(OrderNumber, ConsumeNum, OpName, CardNum); return ""; } #endregion 库存盘点 #region FTT模块 /// /// 物料拉动_FTT /// /// private static string ConvertOpname_Ftt(string Opname) { string text = ""; System.Data.DataTable dt = null; MaterialPull.OpName_Convert_Select(Opname, out dt); if (dt.Rows.Count > 0) { text = JsonHelper.DataTableToJson(dt); } return text; } private static string Insert_FTT_Confirm(string Opname, string Final_EngineNum, string DefectGroup, string DefectCode) { string text = ""; System.Data.DataTable dt = null; //string Final_EngineNum = HttpContext.Current.Request["Final_EngineNum"]; //string DefectGroup = HttpContext.Current.Request["DefectGroup"]; //string DefectCode = HttpContext.Current.Request["DefectCode"]; MaterialPull.Confirm_EngineNum(Final_EngineNum, DefectGroup, DefectCode, Opname, out dt); if (dt.Rows.Count > 0) { text = dt.Rows[0][0].ToString(); } return text; } private static string Insert_FTT_Informatinon(string Opname, string EngineNum, string DefectGroup, string DefectCode, string ProblemDate, int callCount) { string Msg = ""; //string EngineNum = HttpContext.Current.Request["Final_EngineNum"]; //string DefectGroup = HttpContext.Current.Request["DefectGroup"]; //string DefectCode = HttpContext.Current.Request["DefectCode"]; //string ProblemDate = HttpContext.Current.Request["ProblemDate"]; //int callCount = Convert.ToInt32(HttpContext.Current.Request["callCount"]); MaterialPull.Insert_FTTInformation(Opname, "2", EngineNum, DefectGroup, DefectCode, ProblemDate, callCount, out Msg); return Msg; } private static string Init_FinalList_Combobox(string Opname) { string text = ""; System.Data.DataTable dt = null; MaterialPull.Init_FinalListCombobox(Opname, out dt); if (dt.Rows.Count > 0) { text = JsonHelper.DataTableToJson(dt); } return text; } private static string Init_DefectCode_Combobox(string Opname) { string text = ""; System.Data.DataTable dt = null; MaterialPull.Init_DefectCodeCombobox(Opname, out dt); if (dt.Rows.Count > 0) { text = JsonHelper.DataTableToJson(dt); } return text; } #endregion FTT模块 #region 打卡上线模块 /// /// 物料拉动_打卡上线 /// /// private static string GetClasses() { string text = null; System.Data.DataTable dt = null; MaterialPull.Getclasses(out dt); text = JsonHelper.DataTableToJson(dt); return text; } private static string initOnline(string opName) { StringBuilder sb = new StringBuilder(); System.Data.DataTable dt = null; string classes = ""; string operatorName = ""; string loginTime = ""; string operatorCode = ""; string opname = ""; MaterialPull.Search_OnlineInfo(opName, out dt); if (dt != null) { sb.Append("["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { classes = dt.Rows[i]["班次"].ToString(); System.Data.DataTable dt_output = null; MaterialPull.ClassName_Select(classes, out dt_output); if (dt_output != null) { if (dt_output.Rows.Count > 0) { classes = dt_output.Rows[0]["班次描述"].ToString(); } } opname = dt.Rows[i]["工位号"].ToString(); operatorCode = dt.Rows[i]["操作者工号"].ToString(); operatorName = dt.Rows[i]["操作者姓名"].ToString(); loginTime = dt.Rows[i]["操作时间"].ToString(); sb.Append("{\"工位号\":\"" + opname + "\",\"操作者工号\":\"" + operatorCode + "\",\"操作者姓名\":\"" + operatorName + "\",\"班次\":\"" + classes + "\",\"操作时间\":\"" + loginTime + "\"},"); } sb.Remove(sb.Length - 1, 1); } } sb.Append("]"); return sb.ToString(); } private static string Confirmclasses() { string Confirmclass = ""; System.Data.DataTable dt_output = null; MaterialPull.ConfirmClass(out Confirmclass); string ConfirmclassName = ""; MaterialPull.ClassName_Select(Confirmclass, out dt_output); if (dt_output != null) { if (dt_output.Rows.Count > 0) { ConfirmclassName = dt_output.Rows[0]["班次描述"].ToString(); } } return ConfirmclassName; } private static string WorkingHours_OnlineInfo(string Opname, string Password, string Classes, string OperatorName) { //string Password = ""; //string Classes = ""; //string OperatorName = ""; string Msg = ""; //Password = HttpContext.Current.Request["Password"]; //Classes = HttpContext.Current.Request["Classes"]; //OperatorName = HttpContext.Current.Request["OperatorName"]; MaterialPull.Insert_WorkingHours(Opname, OperatorName, Password, Classes, out Msg); return Msg; } #endregion 打卡上线模块 #region 工时 private static string OrderNum_Query(string start_time, string end_time) { string text = ""; // string end_time = ""; // string start_time = ""; System.Data.DataTable dt = null; // start_time = HttpContext.Current.Request["Plan_start_time"]; // end_time = HttpContext.Current.Request["Plan_end_time"]; start_time = start_time + " 00:00:00"; end_time = end_time + " 23:59:59"; MaterialPull.Init_OrderNum_Query(start_time, end_time, out dt); if (dt.Rows.Count > 0) { text = JsonHelper.DataTableToJson(dt); } return text; } //工时补录初始化 private static string init_WorkTime(string Opname, string Ordernum) { StringBuilder sb = new StringBuilder(); string text = ""; int Num = 1; string classes = ""; string opname = ""; string operatorCode = ""; string operatorName = ""; string compeleteCount = ""; string OrderNum = ""; string UploadTime = ""; System.Data.DataTable dt = null; // string Ordernum = HttpContext.Current.Request["OrderNum"]; MaterialPull.Init_Worktime(Ordernum, Opname, Num, out dt); if (dt != null) { sb.Append("["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { System.Data.DataTable dt_output = null; classes = dt.Rows[i]["班次"].ToString(); MaterialPull.ClassName_Select(classes, out dt_output); if (dt_output != null) { if (dt_output.Rows.Count > 0) { classes = dt_output.Rows[0]["班次描述"].ToString(); } } OrderNum = dt.Rows[i]["订单号"].ToString(); opname = dt.Rows[i]["工位号"].ToString(); operatorCode = dt.Rows[i]["操作者工号"].ToString(); operatorName = dt.Rows[i]["员工姓名"].ToString(); compeleteCount = dt.Rows[i]["报工数量"].ToString(); UploadTime = dt.Rows[i]["报工时间"].ToString(); sb.Append("{\"订单号\":\"" + OrderNum + "\",\"工位号\":\"" + opname + "\",\"员工姓名\":\"" + operatorName + "\",\"操作者工号\":\"" + operatorCode + "\",\"报工数量\":\"" + compeleteCount + "\",\"班次\":\"" + classes + "\",\"报工时间\":\"" + UploadTime + "\"},"); } sb.Remove(sb.Length - 1, 1); } } sb.Append("]"); return sb.ToString(); } private static string Worktime_completeCount(string OrderNum) { string text = "0"; System.Data.DataTable dt = null; // string OrderNum = HttpContext.Current.Request["OrderNum"]; MaterialPull.workTime_CompleteCount(OrderNum, out dt); if (dt != null) { if (dt.Rows.Count > 0) { text = dt.Rows[0][0].ToString(); } } return text; } private static string init_Statistics(string Opname, string Ordernum) { string text = ""; System.Data.DataTable dt = null; // string Ordernum = HttpContext.Current.Request["OrderNum"]; MaterialPull.init_Statistics(Ordernum, Opname, out dt); if (dt.Rows.Count > 0) { text = JsonHelper.DataTableToJson(dt); } return text; } /// /// 校验工时补录人员 /// /// private static string Confirm_Person(string OperatorName) { string text = "0"; System.Data.DataTable dt = null; // string OperatorName = HttpContext.Current.Request["OperatorName"]; MaterialPull.Confirm_Person(OperatorName, out dt); if (dt != null) { if (dt.Rows.Count > 0) { text = dt.Rows[0][0].ToString(); } } return text; } //查询产品型号 private static string Init_OrderNum_data(string Ordernum) { string text = ""; System.Data.DataTable dt = null; // string Ordernum = HttpContext.Current.Request["OrderNum"]; MaterialPull.Init_Ordernum_data(Ordernum, out dt); if (dt.Rows.Count > 0) { text = JsonHelper.DataTableToJson(dt); } return text; } private static string ClassesCodeSelect(string ClassesName) { string ClassCode = ""; System.Data.DataTable dt_output = null; // string ClassesName = HttpContext.Current.Request["ClassesName"]; MaterialPull.ClassCode_Select(ClassesName, out dt_output); if (dt_output != null) { if (dt_output.Rows.Count > 0) { ClassCode = dt_output.Rows[0]["班次代码"].ToString(); } } return ClassCode; } //工时补录增加 private static string Insert_WorkTime(string Opname, string Ordernum, string OperatorName, string Classes, string EngineType, int Count, string UploadTime) { string text = ""; //string Ordernum = HttpContext.Current.Request["OrderNum"]; //string OperatorName = HttpContext.Current.Request["OperatorName"]; //string Classes = HttpContext.Current.Request["Classes"]; //string EngineType = HttpContext.Current.Request["EngineType"]; //int Count = Convert.ToInt32(HttpContext.Current.Request["Count"]); //string UploadTime = HttpContext.Current.Request["UploadTime"]; MaterialPull.Workinghours_Insert(Ordernum, EngineType, Opname, Count, OperatorName, Classes, UploadTime); return text; } #endregion 工时 #region 配送单接收模块 /// /// 物料拉动-配送单接收 /// /// 0) { text = "配送单号: " + distributionNum + " 已经接收!"; return text; } else { if (distributionNum == "") { text = "请扫描配送单号!"; return text; } text = MaterialPull_Document_Exec(distributionNum); } } } catch { } return text; } private static bool isExec = false;//防止多次接收 private static string MaterialPull_Document_Exec(string distributionNum) { string text = ""; if (!isExec)//为false才允许接收 { //string distributionNum = HttpContext.Current.Request["distributionNum"]; isExec = true; text = MaterialPull_Document_Select(distributionNum); } else { text = "不允许接收!"; } return text; } private static string MaterialPull_Document_Select(string distributionNum) { //string distributionNum = HttpContext.Current.Request["distributionNum"]; string process_Message; try { string wkc = ""; System.Data.DataTable dt_wkc; MaterialPull.WorkStationInfo_Select(out dt_wkc); if (dt_wkc != null) { if (dt_wkc.Rows.Count > 0) { wkc = dt_wkc.Rows[0]["工作中心"].ToString(); } } if (wkc == "") { process_Message = "工作中心为空!"; return process_Message; } string document_Num = distributionNum.ToString(); System.Data.DataTable dt_Document; //调试、先屏蔽 var BarCodeServer_Document = new BarCodeServer_Pro.BarCodeSever(); //sql版本需要用dataset承接 DataSet ds_Document; ds_Document = BarCodeServer_Document.Web_MaterialPull_DocumentNum_Select(document_Num, wkc); dt_Document = ds_Document.Tables[0]; //Orucal版本需要用dataset承接 //dt_Document = BarCodeServer_Document.Web_MaterialPull_DocumentNum_Select(document_Num, wkc); if (dt_Document != null) { if (dt_Document.Rows.Count > 0) { //将条码信息插入到"配送单"表,状态标识为0,暂时不做处理 if (MaterialPull.MaterialPull_DocumentInfo_Add(dt_Document)) { //执行接收处理 process_Message = MaterialPull_Document_Receive(document_Num, BarCodeServer_Document); } else { process_Message = "-1@失败,[" + document_Num + "]不能重复接收!"; } } else { process_Message = "-1@失败,[" + document_Num + "]无此配送单信息!"; } } else { process_Message = "-1@失败,[" + document_Num + "]无此配送单信息!"; } } catch (Exception ex) { process_Message = "-1@未知错误,联系管理员!"; } isExec = false; return process_Message; } //执行接收,传入webservice private static string MaterialPull_Document_Receive(string document_Num, BarCodeSever BarCodeServer_Document) { string process_Message = ""; try { string r_source_id = "", r_orderNum = "", r_plant_id = "", r_wkc = "", r_workNum = "", r_delivery_num = "", r_item_code = "", r_recept_flag = "", r_type = ""; string p_GroupId = ""; string documentInfo = ""; //产生接收记录,获得GROUPID,还有一个作用就是防止重复接收 MaterialPull.MaterialPull_DocumentInfo_CreateRecord(document_Num, out documentInfo); if (documentInfo.Length > 2) { //产生接收记录成功 if (documentInfo.Substring(0, 2) == "0@") { p_GroupId = documentInfo.Substring(2, documentInfo.Length - 2); if (p_GroupId == "") return "-1@失败,[" + document_Num + "]产生接收记录失败"; System.Data.DataTable dt_record; MaterialPull.MaterialPull_DocumentInfo_ReceiveRecord_Select(document_Num, p_GroupId, out dt_record); if (dt_record != null) { if (dt_record.Rows.Count > 0) { r_source_id = dt_record.Rows[0]["ID"].ToString(); r_orderNum = dt_record.Rows[0]["订单号"].ToString(); r_plant_id = dt_record.Rows[0]["工厂"].ToString(); r_wkc = dt_record.Rows[0]["工作中心"].ToString(); r_workNum = dt_record.Rows[0]["工位号"].ToString(); r_delivery_num = dt_record.Rows[0]["配送单号"].ToString(); r_item_code = dt_record.Rows[0]["物料号"].ToString(); r_recept_flag = dt_record.Rows[0]["是否接收"].ToString(); r_type = dt_record.Rows[0]["类型"].ToString(); string outResult; outResult = BarCodeServer_Document.Web_MaterialPull_DocumentNum_VerifyOK(r_source_id, r_orderNum, r_plant_id, r_wkc, r_workNum, r_delivery_num, r_item_code, r_recept_flag, r_type, p_GroupId); if (outResult.Length > 2) { //调用成功的话 返回“0@成功0@” //将调用信息更新到接收记录表中 //执行调用成功存储过程,将临时表中数据加到库存中 if (outResult.Substring(0, 2) == "0@") { System.Data.DataSet Select_AndonCallInfo_DS = BarCodeServer_Document.Select_DocumentReceptCord_Result(document_Num, p_GroupId); System.Data.DataTable Select_AndonCallInfo = Select_AndonCallInfo_DS.Tables[0]; if (Select_AndonCallInfo != null) { if (Select_AndonCallInfo.Rows.Count > 0) { string PROCESS_STATUS = Select_AndonCallInfo.Rows[0]["PROCESS_STATUS"].ToString(); if (PROCESS_STATUS != "SUCCESS") { MaterialPull.MaterialPull_DocumentInfo_NoticeOK(document_Num, p_GroupId, 0, outResult); } else { MaterialPull.MaterialPull_DocumentInfo_NoticeOK(document_Num, p_GroupId, 1, outResult); } } else { MaterialPull.MaterialPull_DocumentInfo_NoticeOK(document_Num, p_GroupId, 0, outResult); } } else { MaterialPull.MaterialPull_DocumentInfo_NoticeOK(document_Num, p_GroupId, 0, outResult); } } else { MaterialPull.MaterialPull_DocumentInfo_NoticeOK(document_Num, p_GroupId, 0, outResult); } } process_Message = outResult + "[" + document_Num + "]"; } else { process_Message = "-1@失败,[" + document_Num + "]产生接收记录失败"; } } else { process_Message = "-1@失败,[" + document_Num + "]产生接收记录失败"; } } else { process_Message = documentInfo; } } } catch { process_Message = "-1@未知错误,[" + document_Num + "]联系管理员!"; } return process_Message; } #endregion 配送单接收模块 #region 直供上线模块 /// /// 物料拉动-直供上线 /// /// private static string initDirectUpload(string OpName,string document_Num) { string text = "[{}]"; try { DataTable dt_VarifyTemp = new DataTable(); string process_Message; string wkc = DirectUpload_Ini_WKC(); // string document_Num = HttpContext.Current.Request["Barcode"]; if (document_Num == null) return text; System.Data.DataTable dt_Document; System.Data.DataSet ds_Document; var direct = new BarCodeServer_Pro.BarCodeSever(); ds_Document = direct.Web_DirectUpload_Document_Select(document_Num, wkc); dt_Document = ds_Document.Tables[0]; MaterialPull.DirectUpload_VerifyTempTable_Delete(OpName); MaterialPull.DirectUpload_VerifyTempTable_Add(OpName, dt_Document); MaterialPull.DirectUpload_VerifyTempTable_Select(OpName, document_Num, out process_Message, out dt_VarifyTemp); if (dt_VarifyTemp == null) { process_Message = "条码查询失败!请重新扫描"; return text = "{\"result\":\"1\"}"; ; } if (dt_VarifyTemp.Rows.Count == 0) { process_Message = "条码查询失败!请重新扫描"; } text = JsonHelper.DataTableToJson(dt_VarifyTemp); } catch (Exception ex) { } return text; } private static string DirectUpload_Ini_WKC() { string work_center_code = ""; System.Data.DataTable dt_wkc; dt_wkc = MaterialPull.DirectUpload_WorkCenterCode_Select(); if (dt_wkc != null) { if (dt_wkc.Rows.Count > 0) { work_center_code = dt_wkc.Rows[0]["工作中心"].ToString(); } } return work_center_code; } private static string DirectUpload_Verify(string OpName, string document_Num, string barcode) { string text = ""; try { string process_Message = ""; //string document_Num = HttpContext.Current.Request["documentNum"];//送货单行条码 //string barcode = HttpContext.Current.Request["barcode"];//卡片条码 System.Data.DataTable dt_VarifyTemp; MaterialPull.DirectUpload_VerifyTempTable_Barcode_Select(OpName, document_Num, barcode, out process_Message, out dt_VarifyTemp); text = JsonHelper.DataTableToJson(dt_VarifyTemp); } catch { } return text; } private static string DirectUpload_Barcode_Verify_OK(string OpName, string document_Num) { string text = ""; try { // string document_Num = HttpContext.Current.Request["documentNum"];//送货单行条码 if (document_Num == null) return text; string process_Message_verify = ""; string p_GroupId = ""; string r_source_id = "", r_orderNum = "", r_plant_id = "", r_wkc = "", r_workNum = "", r_delivery_num = "", r_item_code = "", r_recept_flag = ""; System.Data.DataTable dt_ReceiveRecord; MaterialPull.DirectUpload_VerifyTempTable_VerifyOK(OpName, document_Num, out process_Message_verify); if (process_Message_verify.Length > 2) { //产生接收记录成功 if (process_Message_verify.Substring(0, 2) == "0@") { p_GroupId = process_Message_verify.Substring(2, process_Message_verify.Length - 2); if (p_GroupId == "") return text; MaterialPull.DirectUpload_ReceiveRecord_Select(OpName, document_Num, p_GroupId, out dt_ReceiveRecord); if (dt_ReceiveRecord != null) { if (dt_ReceiveRecord.Rows.Count > 0) { r_source_id = dt_ReceiveRecord.Rows[0]["ID"].ToString(); r_orderNum = dt_ReceiveRecord.Rows[0]["订单号"].ToString(); r_plant_id = dt_ReceiveRecord.Rows[0]["工厂"].ToString(); r_wkc = dt_ReceiveRecord.Rows[0]["工作中心"].ToString(); r_workNum = dt_ReceiveRecord.Rows[0]["工位号"].ToString(); r_delivery_num = dt_ReceiveRecord.Rows[0]["配送单号"].ToString(); r_item_code = dt_ReceiveRecord.Rows[0]["物料号"].ToString(); r_recept_flag = dt_ReceiveRecord.Rows[0]["是否接收"].ToString(); r_workNum = DirectUpload_Ini_Opname(r_workNum);//产生接收记录工位号与SAP一致 string outResult; var direct = new BarCodeServer_Pro.BarCodeSever(); outResult = direct.Web_DirectUpload_Document_VerifyOK(r_source_id, r_orderNum, r_plant_id, r_wkc, r_workNum, r_delivery_num, r_item_code, r_recept_flag, p_GroupId); if (outResult.Length > 2) { //调用成功的话 返回“0@成功0@” //将调用信息更新到接收记录表中 //执行调用成功存储过程,将临时表中数据加到库存中 if (outResult.Substring(0, 2) == "0@") { MaterialPull.DirectUpload_VerifyTempTable_NoticeOK(OpName, document_Num, p_GroupId, 1, outResult); } else { MaterialPull.DirectUpload_VerifyTempTable_NoticeOK(OpName, document_Num, p_GroupId, 0, outResult); } text = JsonHelper.ObjectToJson(outResult); } } } } //已经接收,不允许重复接收 else { text = JsonHelper.ObjectToJson(process_Message_verify); } } } catch { } return text; } private static string DirectUpload_Ini_Opname(string opName_Ori) { string opName_Convert = ""; System.Data.DataTable dt_opName_Convert; dt_opName_Convert = MaterialPull.DirectUpload_OpName_Select(opName_Ori); if (dt_opName_Convert != null) { if (dt_opName_Convert.Rows.Count > 0) { opName_Convert = dt_opName_Convert.Rows[0]["指南工位号"].ToString(); } } return opName_Convert; } #endregion 直供上线模块 } }