using System; using System.Collections.Generic; using System.Linq; using System.Text; using SysDataLibs.TableClass; using SysBaseLibs; using System.Threading; using System.Web; using SysDataLibs; using DataTransfersLibs.sDataInfraceSoap; namespace CheckDataTransfersLibs { public class ytCheckDataUpload { //private static string _Token = ""; public void saveQuickCheckItemInfo(object poObj) { string lcRetval = ""; if (SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceOnOrOff") != "Y") { ThreadLog.LogInfo("error:系统已禁用次接口调用!"); return;// "error:系统已禁用次接口调用!"; } string lcMarketID = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketID"); //_Token = string.IsNullOrEmpty(_Token) ? getToken() : _Token; CheckData_info poCheckData = (CheckData_info)poObj; if (poCheckData == null) { ThreadLog.LogInfo("error:没有上传的数据!"); return;// "error:没有上传的数据!"; } if (poCheckData.MarketID != lcMarketID) { ThreadLog.LogInfo("error:上传的机构不正确!非 苏州工业园区现代农业投资有限公司弘德隆果品市场分公司"); return;// "error:上传的机构不正确!非 苏州工业园区现代农业投资有限公司弘德隆果品市场分公司"; } string lcSubItemCode = SysDataLibs.AppEnv.YtDataMappingObj.GetSpecialsMappingCode(poCheckData.SampleName, SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLittleID"), "szLittleKindCode"); if (string.IsNullOrEmpty(lcSubItemCode)) { ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的商品映射!"); return;// "error:上传检测数据不符合上传要求,未获得对应的商品映射!"; } CheckProjectTypeMapping_info loCheckMapping = SysDataLibs.AppEnv.YtDataMappingObj.GetCheckTypeMapping(poCheckData.CheckProjectTypeID); if (loCheckMapping == null || string.IsNullOrEmpty(loCheckMapping.szCheckItemTypeLittleCode)) { ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的检测项目映射!"); return;// "error:上传检测数据不符合上传要求,未获得对应的检测项目映射!"; } if (string.IsNullOrEmpty(poCheckData.CorpName)) { ThreadLog.LogInfo("error:被捡对象不能为空!"); return; } ViewMarketSellers_Interface_info loStallInfo = GetViewMarketSellers(lcMarketID, poCheckData.CorpName); _ViewMarketSellersSave.Clear(); try { string lcToken = getToken(); if (string.IsNullOrEmpty(lcToken)) { ThreadLog.LogInfo("error:获取令牌失败"); return;// "error:获取令牌失败"; } QuickCheckItemJC loQuickCheckItemJC = new QuickCheckItemJC(); loQuickCheckItemJC.JCCode = Guid.NewGuid().ToString().Replace("-", ""); //检测编号 loQuickCheckItemJC.DABH = loStallInfo.IdCard;//"320502194701151534"; //经营户身份证号码 loQuickCheckItemJC.PositionNo = poCheckData.CorpName;// poCheckData.CorpName; //摊位编号 loQuickCheckItemJC.Name = loStallInfo.MarketSellerName;//"韩国金"; //经营户姓名 Y loQuickCheckItemJC.SubItemCode = lcSubItemCode; //抽检的品种编码 Y loQuickCheckItemJC.SubItemName = poCheckData.SampleName; //抽检的品种名称 Y loQuickCheckItemJC.QuickCheckDate = poCheckData.UploadTime; //检测时间 Y loQuickCheckItemJC.QuickCheckItemCode = loCheckMapping.szCheckItemTypeGreatCode; //检测项目分类编号 Y loQuickCheckItemJC.QuickCheckSubItemCode = loCheckMapping.szCheckItemTypeLittleCode; //检测项目小类编号 Y loQuickCheckItemJC.QuickCheckResult = poCheckData.CheckResult == "合格" ? "-" : "+"; //检测项目结果(定性值) Y (+ / -) loQuickCheckItemJC.QuickCheckResultValue = poCheckData.CheckValue; //检测项目结果值 loQuickCheckItemJC.QuickCheckResultValueUnit = ""; //实际值单位 loQuickCheckItemJC.QuickCheckResultValueCKarea = poCheckData.CheckLimit; //检测项目结果值参考范围 loQuickCheckItemJC.QuickCheckResultDependOn = ""; //检测依据 loQuickCheckItemJC.QuickCheckRemarks = ""; //检测备注 loQuickCheckItemJC.QuickChecker = poCheckData.CheckUser; //检测人姓名 Y loQuickCheckItemJC.QuickReChecker = poCheckData.CheckUser; //复核人员姓名 Y loQuickCheckItemJC.JCManufactor = poCheckData.MachineMaker; //检测设备厂家名 loQuickCheckItemJC.JCModel = poCheckData.MachineID; //检测设备型号 loQuickCheckItemJC.JCSN = ""; //检测设备唯一序列号 head lTbHead = new head(); lTbHead.marketCode = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketCode");//"91320594717474625W"; lTbHead.marketName = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketName");//"苏州工业园区现代农业投资有限公司弘德隆果品市场分公司"; lTbHead.tokenNo = lcToken; request ltRequest = new request(); List loQuickCheckItemJCs = new List(); loQuickCheckItemJCs.Add(loQuickCheckItemJC); ltRequest.dataList = loQuickCheckItemJCs; webService loAll = new webService(); loAll.head = lTbHead; loAll.request = ltRequest; string RequstInfo = SerializerHelper.SerializerToString(loAll); ThreadLog.LogInfo(RequstInfo); sDataInfraceSoapClient loYTInterface = new sDataInfraceSoapClient(); lcRetval = loYTInterface.saveQuickCheckItemInfo(RequstInfo); //DynamicWebService loInterface = new DynamicWebService(); //loInterface.Address = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceAddress"); //object[] loObj = new object[1]; //loObj[0] = RequstInfo; //lcRetval = loInterface.GetWebServiceData(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceClass"), "saveQuickCheckItemInfo", loObj).ToString(); ThreadLog.LogInfo(lcRetval); } catch (Exception err) { //if (System.Web.HttpContext.Current.Application["YTErrorList"] != null) //{ // YTErrorList loYE = (YTErrorList)System.Web.HttpContext.Current.Application["YTErrorList"]; // loYE.ErrorTimes.Add(DateTime.Now); // if (loYE.IsCanStop) // { // SysDataLibs.AppEnv.SysSetObj.SetString("YTInterfaceOnOrOff", "N"); // } //} ThreadLog.LogException(err); } //return lcRetval; } public void saveQuickCheckItemInfos(Object poObj) { string lcRetval = ""; if (SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceOnOrOff") != "Y") { ThreadLog.LogInfo("error:系统已禁用次接口调用!"); return;// "error:系统已禁用次接口调用!"; } string lcMarketID = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketID"); List poCheckDatas = (List)poObj; if (poCheckDatas == null || poCheckDatas.Count <= 0) { ThreadLog.LogInfo("error:没有上传的数据!"); return;// "error:没有上传的数据!"; } try { string lcToken = getToken(); if (string.IsNullOrEmpty(lcToken)) { ThreadLog.LogInfo("error:获取令牌失败"); return;// "error:获取令牌失败"; } List loQuickCheckItemJCs = new List(); foreach (CheckData_info poCheckData in poCheckDatas) { if (poCheckData.MarketID != lcMarketID) { ThreadLog.LogInfo("error:上传的机构不正确!非 苏州工业园区现代农业投资有限公司弘德隆果品市场分公司"); continue; } string lcSubItemCode = SysDataLibs.AppEnv.YtDataMappingObj.GetSpecialsMappingCode(poCheckData.SampleName, SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLittleID"), "szLittleKindCode"); if (string.IsNullOrEmpty(lcSubItemCode)) { ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的商品映射!"); continue; } CheckProjectTypeMapping_info loCheckMapping = SysDataLibs.AppEnv.YtDataMappingObj.GetCheckTypeMapping(poCheckData.CheckProjectTypeID); if (loCheckMapping == null || string.IsNullOrEmpty(loCheckMapping.szCheckItemTypeLittleCode)) { ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的检测项目映射!"); continue; } if (string.IsNullOrEmpty(poCheckData.CorpName)) { ThreadLog.LogInfo("error:被捡对象不能为空!"); continue; } ViewMarketSellers_Interface_info loStallInfo = GetViewMarketSellers(lcMarketID, poCheckData.CorpName); QuickCheckItemJC loQuickCheckItemJC = new QuickCheckItemJC(); loQuickCheckItemJC.JCCode = Guid.NewGuid().ToString().Replace("-", ""); //检测编号 loQuickCheckItemJC.DABH = loStallInfo.IdCard;//"320502194701151534"; //经营户身份证号码 loQuickCheckItemJC.PositionNo = poCheckData.CorpName;// poCheckData.CorpName;// poCheckData.CorpName; //摊位编号 loQuickCheckItemJC.Name = loStallInfo.MarketSellerName;//"韩国金"; //经营户姓名 Y loQuickCheckItemJC.SubItemCode = lcSubItemCode; //抽检的品种编码 Y loQuickCheckItemJC.SubItemName = poCheckData.SampleName; //抽检的品种名称 Y loQuickCheckItemJC.QuickCheckDate = poCheckData.UploadTime; //检测时间 Y loQuickCheckItemJC.QuickCheckItemCode = loCheckMapping.szCheckItemTypeGreatCode; //检测项目分类编号 Y loQuickCheckItemJC.QuickCheckSubItemCode = loCheckMapping.szCheckItemTypeLittleCode; //检测项目小类编号 Y loQuickCheckItemJC.QuickCheckResult = poCheckData.CheckResult == "合格" ? "-" : "+"; //检测项目结果(定性值) Y (+ / -) loQuickCheckItemJC.QuickCheckResultValue = poCheckData.CheckValue; //检测项目结果值 loQuickCheckItemJC.QuickCheckResultValueUnit = ""; //实际值单位 loQuickCheckItemJC.QuickCheckResultValueCKarea = poCheckData.CheckLimit; //检测项目结果值参考范围 loQuickCheckItemJC.QuickCheckResultDependOn = ""; //检测依据 loQuickCheckItemJC.QuickCheckRemarks = ""; //检测备注 loQuickCheckItemJC.QuickChecker = poCheckData.CheckUser; //检测人姓名 Y loQuickCheckItemJC.QuickReChecker = poCheckData.CheckUser; //复核人员姓名 Y loQuickCheckItemJC.JCManufactor = poCheckData.MachineMaker; //检测设备厂家名 loQuickCheckItemJC.JCModel = poCheckData.MachineID; //检测设备型号 loQuickCheckItemJC.JCSN = ""; loQuickCheckItemJCs.Add(loQuickCheckItemJC); } _ViewMarketSellersSave.Clear(); head lTbHead = new head(); lTbHead.marketCode = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketCode");//"91320594717474625W"; lTbHead.marketName = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketName");//"苏州工业园区现代农业投资有限公司弘德隆果品市场分公司"; lTbHead.tokenNo = lcToken; request ltRequest = new request(); //dataList ltDt = new dataList(); //ltDt.QuickCheckItemJC = loQuickCheckItemJCs; ltRequest.dataList = loQuickCheckItemJCs; webService loAll = new webService(); loAll.head = lTbHead; loAll.request = ltRequest; string RequstInfo = SerializerHelper.SerializerToString(loAll); ThreadLog.LogInfo(RequstInfo); //DynamicWebService loInterface = new DynamicWebService(); //loInterface.Address = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceAddress"); //object[] loObj = new object[1]; //loObj[0] = RequstInfo; //lcRetval = loInterface.GetWebServiceData(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceClass"), "saveQuickCheckItemInfo", loObj).ToString(); sDataInfraceSoapClient loYTInterface = new sDataInfraceSoapClient(); lcRetval = loYTInterface.saveQuickCheckItemInfo(RequstInfo); ThreadLog.LogInfo("上传结果:" + lcRetval); } catch (Exception err) { //YTErrorList loYE = (YTErrorList)SysDataLibs.AppEnv.YTErrorList; //loYE.ErrorTimes.Add(DateTime.Now); //if (loYE.IsCanStop) //{ // SysDataLibs.AppEnv.SysSetObj.SetString("YTInterfaceOnOrOff", "N"); //} ThreadLog.LogException(err); } // return lcRetval; } public Dictionary _ViewMarketSellersSave = new Dictionary(); //获取摊位信息 public ViewMarketSellers_Interface_info GetViewMarketSellers(string poMarkketID, string poStallNo) { string lcKey = UtilStr.UAndT(poMarkketID + "@@" + poStallNo); ViewMarketSellers_Interface_info loReturn = null; if (_ViewMarketSellersSave.ContainsKey(lcKey)) { loReturn = _ViewMarketSellersSave[lcKey]; } else { //OpenLockKeys_info loOpenLockKey = new OpenLockKeys_info(pcDbConn, pcIndexNo, pcRoomId); loReturn = getSellersInfo(poMarkketID, poStallNo); _ViewMarketSellersSave.Add(lcKey, loReturn); } return loReturn; } private string getToken() { string lcToken = ""; sDataInfraceSoapClient loYTInterface = new sDataInfraceSoapClient(); string lcTokenInfo = loYTInterface.checkIn(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLoginInfo")); //DynamicWebService loInterface = new DynamicWebService(); //loInterface.Address = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceAddress"); //object[] loObj = new object[1]; //loObj[0] = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLoginInfo"); //string lcTokenInfo = loInterface.GetWebServiceData(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceClass"), "checkIn", loObj).ToString(); rsXmlNode loMainNode = rsXmlNode.ParseGenericXml(lcTokenInfo); if (loMainNode != null) { rsXmlNode loResponseNode = loMainNode.GetChildNode("response"); if (loResponseNode != null) lcToken = loResponseNode.GetChildValue("tokenNo"); } return lcToken; } private ViewMarketSellers_Interface_info getSellersInfo(string poMarkketID, string poStallNo) { ViewMarketSellers_Interface_info loStall = new ViewMarketSellers_Interface_info(); string lcSearchSeller = " select IdCard,MarketSellerName,StallName,StallNo from " + Tn.ViewMarketSellers_Interface + " where MarketID='" + poMarkketID + "' and " + ViewMarketSellers_Interface_info.cStallNo + "='" + poStallNo + "'"; DBConnSql loDBConn = new DBConnSql(); try { if (loDBConn.Open()) { rsQuery loQuery = loDBConn.OpenQuery(lcSearchSeller); if (loQuery != null && loQuery.IsOpened && loQuery.RecCount > 0) { loStall.IdCard = loQuery.GetString(ViewMarketSellers_Interface_info.cIdCard); loStall.MarketSellerName = loQuery.GetString(ViewMarketSellers_Interface_info.cMarketSellerName); loStall.StallNo = loQuery.GetString(ViewMarketSellers_Interface_info.cStallNo); loStall.StallName = loQuery.GetString(ViewMarketSellers_Interface_info.cStallName); } } } catch (Exception err) { ThreadLog.LogException(err); } finally { if (loDBConn != null) { loDBConn.Close(); loDBConn = null; } } return loStall; } public void ExcuteUploadYTThread(CheckData_info poCheckData) { Thread loThread = new Thread(new ParameterizedThreadStart(saveQuickCheckItemInfo)); loThread.Start(poCheckData); } public void ExcuteBatchUploadYTThread(List poCheckDatas) { Thread loThread = new Thread(new ParameterizedThreadStart(saveQuickCheckItemInfos)); loThread.Start(poCheckDatas); } } }