private void UploadToERP(DataTable dba) { WMSIQCTestRequestData wmsIQCTestRequestData = new WMSIQCTestRequestData(); WMSIQCTestInputData wmsIQCTestInputData = new WMSIQCTestInputData(); List <WMSIQCTestItem> list = new List <WMSIQCTestItem>(); string sqlupdate = ""; for (int k = gridView.GetSelectedRows().Length; k > 0; k--) { DataRow db = gridView.GetDataRow(gridView.GetSelectedRows()[k - 1]); if (db["iqcTransactionid"].ToString() == "") { continue; } if (int.Parse(db["checkqty"].ToString()) <= 0) { continue; } if (int.Parse(db["qty"].ToString()) < int.Parse(db["checkqty"].ToString())) { MessageBox.Show("确认数量不能大于可用数量"); return; } WMSIQCTestItem wmsiqcTestItem = new WMSIQCTestItem(); wmsiqcTestItem.transactionId = db["iqcTransactionid"].ToString(); wmsiqcTestItem.receiptNum = db["deliveryid"].ToString(); wmsiqcTestItem.itemCode = db["materialcode"].ToString(); wmsiqcTestItem.lotNum = db["lotno"].ToString(); wmsiqcTestItem.seqNum = ""; wmsiqcTestItem.orgCode = db["org_id"].ToString(); wmsiqcTestItem.iqcResult = db["TestResult"].ToString() == "OK" ? "S" : "E"; wmsiqcTestItem.iqcQty = db["checkqty"].ToString(); wmsiqcTestItem.barcodeUser = Login.username; sqlupdate += " if not exists(select 1 from deliveryCheck where lotno='" + wmsiqcTestItem.lotNum + "' and states='" + db["TestResult"].ToString() + "')"; sqlupdate += " insert into deliveryCheck(org_id, receptid,productcode,qty, lotno, states,eventuser, eventtime)"; sqlupdate += "values('" + wmsiqcTestItem.orgCode + "','" + wmsiqcTestItem.receiptNum + "','" + wmsiqcTestItem.itemCode + "','" + wmsiqcTestItem.iqcQty + "','" + wmsiqcTestItem.lotNum + "','" + db["TestResult"].ToString() + "','" + Login.userId + "',getdate())"; sqlupdate += " else update deliveryCheck set qty=qty+" + wmsiqcTestItem.iqcQty + " where lotno='" + wmsiqcTestItem.lotNum + "' and states='" + db["TestResult"].ToString() + "'"; //List<WMSIQCTestItem> list = new List<WMSIQCTestItem>(); list.Add(wmsiqcTestItem); //WMSIQCTestInputData wmsIQCTestInputData = new WMSIQCTestInputData(); wmsIQCTestInputData.message = list; } wmsIQCTestRequestData.iqcRsult = wmsIQCTestInputData; string batchNumn = DateTime.Now.ToString("yyyyMMddHHmmssfff"); string method = "CUX_WMS_IQC_REST_R"; string requestData = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(wmsIQCTestRequestData))); string responseData = string.Empty; bool restult = barcode.WMSInterface.WMSInterfaceUtils.CallErpInterface(batchNumn, method, requestData, ref responseData); string responseoriginalDate = string.Empty; //bool restult = barcode.WMSInterface.WMSInterfaceUtils.CallWMSInterface(batchNumn, method, requestData, ref responseData, ref responseoriginalDate); string s = ""; if (restult) { s = "1"; } else { s = "0"; } if (responseData == "") { lblinfo.Text = "WMS系统没有返回值,上传失败!"; return; } WMSIQCResultHead m = JsonConvert.DeserializeObject <WMSIQCResultHead>(responseData); List <WMSIQCInputItem> Items = m.results.messages; DataTable dt = new DataTable(); dt.Columns.Add("transactionId"); dt.Columns.Add("resultCode"); dt.Columns.Add("resultMsg"); string sresult = ""; foreach (WMSIQCInputItem l in Items) { if (l.resultCode == "E") { dt.Rows.Add(l.transactionId, l.resultCode, l.resultMsg); sresult = sresult + l.transactionId + "," + l.resultMsg + ";"; } } for (int j = 0; j < dt.Rows.Count; j++) { sqlupdate += " delete deliveryCheck where lotno=(select lotno from delivery where iqcTransactionId='" + dt.Rows[j]["transactionId"].ToString() + "')"; } sqlupdate += " insert into WMSInterfaceLog(org_id, workno, batchNumn, method, requestData, result,opertype, uploaddate,originalrequest,originalresponseDate)"; sqlupdate += "values('" + dba.Rows[0]["org_id"].ToString() + "','" + dba.Rows[0]["deliveryid"].ToString() + "','" + batchNumn + "','" + method + "','" + responseData + "','" + s + "','" + "IQC" + "',getdate(),'" + requestData + "','" + responseoriginalDate + "')"; lblinfo.Text = sresult; DbAccess.ExecuteSql(sqlupdate); }
private void UploadToERP1(DataTable dba) { WMSIQCTestRequestData wmsIQCTestRequestData = new WMSIQCTestRequestData(); WMSIQCTestInputData wmsIQCTestInputData = new WMSIQCTestInputData(); List <WMSIQCTestItem> list = new List <WMSIQCTestItem>(); string sqlupdate = ""; for (int k = gridView.GetSelectedRows().Length; k > 0; k--) { DataRow db = gridView.GetDataRow(gridView.GetSelectedRows()[k - 1]); if (db["iqcTransactionid"].ToString() == "") { continue; } if (int.Parse(db["checkqty"].ToString()) <= 0) { continue; } if (int.Parse(db["qty"].ToString()) < int.Parse(db["checkqty"].ToString())) { MessageBox.Show("确认数量不能大于可用数量"); return; } if (db["TestResult"].ToString() == "") { continue; } WMSIQCTestItem wmsiqcTestItem = new WMSIQCTestItem(); wmsiqcTestItem.transactionId = db["iqcTransactionid"].ToString(); wmsiqcTestItem.comments = db["remark"].ToString(); wmsiqcTestItem.receiptNum = db["deliveryid"].ToString(); wmsiqcTestItem.itemCode = db["materialcode"].ToString(); wmsiqcTestItem.lotNum = db["lotno"].ToString(); wmsiqcTestItem.seqNum = ""; wmsiqcTestItem.orgCode = db["org_id"].ToString(); wmsiqcTestItem.iqcResult = db["TestResult"].ToString() == "OK" ? "S" : "E"; wmsiqcTestItem.iqcQty = db["checkqty"].ToString(); wmsiqcTestItem.barcodeUser = Login.username; sqlupdate += " if not exists(select 1 from deliveryCheck where lotno='" + wmsiqcTestItem.lotNum + "' and states='" + db["TestResult"].ToString() + "')"; sqlupdate += " insert into deliveryCheck(org_id, receptid,productcode,qty, lotno, states,eventuser, eventtime)"; sqlupdate += "values('" + wmsiqcTestItem.orgCode + "','" + wmsiqcTestItem.receiptNum + "','" + wmsiqcTestItem.itemCode + "','" + wmsiqcTestItem.iqcQty + "','" + wmsiqcTestItem.lotNum + "','" + db["TestResult"].ToString() + "','" + Login.userId + "',getdate())"; sqlupdate += " else update deliveryCheck set qty=qty+" + wmsiqcTestItem.iqcQty + " where lotno='" + wmsiqcTestItem.lotNum + "' and states='" + db["TestResult"].ToString() + "'"; Mouldmaterialcode = db["materialcode"].ToString(); //List<WMSIQCTestItem> list = new List<WMSIQCTestItem>(); list.Add(wmsiqcTestItem); //WMSIQCTestInputData wmsIQCTestInputData = new WMSIQCTestInputData(); wmsIQCTestInputData.message = list; /* * if (!sMaterialname.Contains("【F1")) * { * string connPANASql = "server=10.100.64.4,6815;database=PanaCIM;user id=sa;password=PANASONIC1!;"; * SqlConnection sqlconn = new SqlConnection(connPANASql); * if (sqlconn.State == ConnectionState.Closed) * sqlconn.Open(); * SqlTransaction tran = sqlconn.BeginTransaction(); * DataTable Uploaddt = GetLotList(db["lotno"].ToString().Trim()); * if (Uploaddt.Rows.Count > 0) * { * string result = WriteDataToPANASON(Uploaddt.Rows[0]["reelid"].ToString(), Uploaddt.Rows[0]["materialcode"].ToString(), Uploaddt.Rows[0]["Vendor"].ToString(), Uploaddt.Rows[0]["cuslotno"].ToString(), int.Parse(Uploaddt.Rows[0]["qty"].ToString()), Uploaddt.Rows[0]["datecode"].ToString(), sqlconn, tran); * if (result == "0") * { * tran.Commit(); * //this.lblMessage.Text = Uploaddt.Rows[0]["reelid"].ToString() + "保存成功!" + ",写入松下数据成功!"; * } * else if (result == "1") * { * // this.lblMessage.Text = "保存成功!" + ",松下系统,已经存在该数据!" + Uploaddt.Rows[0]["reelid"].ToString(); * tran.Rollback(); * } * else * { * //this.lblMessage.Text = Uploaddt.Rows[0]["reelid"].ToString() + "保存成功!" + ",写入松下数据失败!" + result + ",请重试一次"; * // this.lblMessage.ForeColor = Color.Red; * //Component.UrlEncoding.alertMess(ClientScript, lblMessage.Text); * tran.Rollback(); * * string sqlinsert = " if not exists(select 1 from OEM_ReelidDataUpload where Lotno='" + Uploaddt.Rows[0]["reelid"].ToString() + "') insert into OEM_ReelidDataUpload(Lotno, materialcode, vendor, cuslotno,qty, datecode,operdate) "; * sqlinsert += " values('" + Uploaddt.Rows[0]["reelid"].ToString() + "','" + Uploaddt.Rows[0]["materialcode"].ToString() + "','" + Uploaddt.Rows[0]["Vendor"].ToString() + "','" + Uploaddt.Rows[0]["cuslotno"].ToString() + "','" + Uploaddt.Rows[0]["qty"].ToString() + "','" + Uploaddt.Rows[0]["datecode"].ToString() + "',getdate())"; * DbAccess.ExecuteSql(sqlinsert); * } * } * } */ } wmsIQCTestRequestData.iqcRsult = wmsIQCTestInputData; string batchNumn = DateTime.Now.ToString("yyyyMMddHHmmssfff"); string method = "CUX_WMS_IQC_REST_R"; string requestData = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(wmsIQCTestRequestData))); string responseData = string.Empty; bool restult = barcode.WMSInterface.WMSInterfaceUtils.CallErpInterface(batchNumn, method, requestData, ref responseData); ////string responseoriginalDate = string.Empty; ////bool restult = barcode.WMSInterface.WMSInterfaceUtils.CallWMSInterface(batchNumn, method, requestData, ref responseData, ref responseoriginalDate); string s = ""; if (restult) { s = "1"; } else { s = "0"; } if (responseData == "") { lblinfo.Text = "WMS系统没有返回报文,入库失败!"; return; } WMSIQCResultHead m = JsonConvert.DeserializeObject <WMSIQCResultHead>(responseData); List <WMSIQCInputItem> Items = m.results.messages; DataTable dt = new DataTable(); dt.Columns.Add("transactionId"); dt.Columns.Add("resultCode"); dt.Columns.Add("resultMsg"); string sresult = ""; string responseDatasql = ""; foreach (WMSIQCInputItem l in Items) { //responseDatasql += " if not exists(select 1 from WMS_responseData where transactionId='" + l.transactionId + "')"; //responseDatasql += " insert into WMS_responseData ( transactionId ,resultCode,resultMsg,updateTime ) "; //responseDatasql += " values ('" + l.transactionId + "','" + l.resultCode + "','" + l.resultMsg + "',GETDATE ()) "; //responseDatasql += " else update WMS_responseData set resultCode='" + l.resultCode + "',resultMsg = '" + l.resultMsg + "',updateTime=GETDATE () where transactionId='" + l.transactionId + "'"; if ((l.resultCode == "E" && !(l.resultMsg.Contains("该笔数据已经同步过合格IQC结果,不允许重复。"))) || l.resultCode == "N") // 还有一种 "N" { dt.Rows.Add(l.transactionId, l.resultCode, l.resultMsg); sresult = sresult + l.transactionId + "," + l.resultMsg + ";"; } //if ((! l.resultMsg.Contains("同步成功。")) || (!l.resultMsg.Contains("该笔数据已经同步过合格IQC结果"))) //{ // dt.Rows.Add(l.transactionId, l.resultCode, l.resultMsg); // sresult = sresult + l.transactionId + "," + l.resultMsg + ";"; //} } for (int j = 0; j < dt.Rows.Count; j++) { sqlupdate += " delete deliveryCheck where lotno=(select lotno from delivery where iqcTransactionId='" + dt.Rows[j]["transactionId"].ToString() + "')"; } sqlupdate += " insert into WMSInterfaceLog(org_id, workno, batchNumn, method, requestData, result,opertype, uploaddate)"; sqlupdate += "values('" + dba.Rows[0]["org_id"].ToString() + "','" + dba.Rows[0]["deliveryid"].ToString() + "','" + batchNumn + "','" + method + "','" + responseData + "','" + s + "','" + "IQC" + "',getdate())"; ////sqlupdate += " insert into WMSInterfaceLog(org_id, workno, batchNumn, method, requestData, result,opertype, uploaddate,originalrequest,originalresponseDate)"; ////sqlupdate += "values('" + dba.Rows[0]["org_id"].ToString() + "','" + dba.Rows[0]["deliveryid"].ToString() + "','" + batchNumn + "','" + method + "','" + responseData + "','" + s + "','" + "IQC" + "',getdate(),'" + requestData + "','" + responseoriginalDate + "')"; lblinfo.Text = sresult; DbAccess.ExecuteSql(sqlupdate); //DbAccess.ExecuteSql(responseDatasql); }