ytCheckDataUpload.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using SysDataLibs.TableClass;
  6. using SysBaseLibs;
  7. using System.Threading;
  8. using System.Web;
  9. using SysDataLibs;
  10. using DataTransfersLibs.sDataInfraceSoap;
  11. namespace CheckDataTransfersLibs
  12. {
  13. public class ytCheckDataUpload
  14. {
  15. //private static string _Token = "";
  16. public void saveQuickCheckItemInfo(object poObj)
  17. {
  18. string lcRetval = "";
  19. if (SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceOnOrOff") != "Y")
  20. {
  21. ThreadLog.LogInfo("error:系统已禁用次接口调用!");
  22. return;// "error:系统已禁用次接口调用!";
  23. }
  24. string lcMarketID = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketID");
  25. //_Token = string.IsNullOrEmpty(_Token) ? getToken() : _Token;
  26. CheckData_info poCheckData = (CheckData_info)poObj;
  27. if (poCheckData == null)
  28. {
  29. ThreadLog.LogInfo("error:没有上传的数据!");
  30. return;// "error:没有上传的数据!";
  31. }
  32. if (poCheckData.MarketID != lcMarketID)
  33. {
  34. ThreadLog.LogInfo("error:上传的机构不正确!非 苏州工业园区现代农业投资有限公司弘德隆果品市场分公司");
  35. return;// "error:上传的机构不正确!非 苏州工业园区现代农业投资有限公司弘德隆果品市场分公司";
  36. }
  37. string lcSubItemCode = SysDataLibs.AppEnv.YtDataMappingObj.GetSpecialsMappingCode(poCheckData.SampleName, SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLittleID"), "szLittleKindCode");
  38. if (string.IsNullOrEmpty(lcSubItemCode))
  39. {
  40. ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的商品映射!");
  41. return;// "error:上传检测数据不符合上传要求,未获得对应的商品映射!";
  42. }
  43. CheckProjectTypeMapping_info loCheckMapping = SysDataLibs.AppEnv.YtDataMappingObj.GetCheckTypeMapping(poCheckData.CheckProjectTypeID);
  44. if (loCheckMapping == null || string.IsNullOrEmpty(loCheckMapping.szCheckItemTypeLittleCode))
  45. {
  46. ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的检测项目映射!");
  47. return;// "error:上传检测数据不符合上传要求,未获得对应的检测项目映射!";
  48. }
  49. if (string.IsNullOrEmpty(poCheckData.CorpName))
  50. {
  51. ThreadLog.LogInfo("error:被捡对象不能为空!");
  52. return;
  53. }
  54. ViewMarketSellers_Interface_info loStallInfo = GetViewMarketSellers(lcMarketID, poCheckData.CorpName);
  55. _ViewMarketSellersSave.Clear();
  56. try
  57. {
  58. string lcToken = getToken();
  59. if (string.IsNullOrEmpty(lcToken))
  60. {
  61. ThreadLog.LogInfo("error:获取令牌失败");
  62. return;// "error:获取令牌失败";
  63. }
  64. QuickCheckItemJC loQuickCheckItemJC = new QuickCheckItemJC();
  65. loQuickCheckItemJC.JCCode = Guid.NewGuid().ToString().Replace("-", ""); //检测编号
  66. loQuickCheckItemJC.DABH = loStallInfo.IdCard;//"320502194701151534"; //经营户身份证号码
  67. loQuickCheckItemJC.PositionNo = poCheckData.CorpName;// poCheckData.CorpName; //摊位编号
  68. loQuickCheckItemJC.Name = loStallInfo.MarketSellerName;//"韩国金"; //经营户姓名 Y
  69. loQuickCheckItemJC.SubItemCode = lcSubItemCode; //抽检的品种编码 Y
  70. loQuickCheckItemJC.SubItemName = poCheckData.SampleName; //抽检的品种名称 Y
  71. loQuickCheckItemJC.QuickCheckDate = poCheckData.UploadTime; //检测时间 Y
  72. loQuickCheckItemJC.QuickCheckItemCode = loCheckMapping.szCheckItemTypeGreatCode; //检测项目分类编号 Y
  73. loQuickCheckItemJC.QuickCheckSubItemCode = loCheckMapping.szCheckItemTypeLittleCode; //检测项目小类编号 Y
  74. loQuickCheckItemJC.QuickCheckResult = poCheckData.CheckResult == "合格" ? "-" : "+"; //检测项目结果(定性值) Y (+ / -)
  75. loQuickCheckItemJC.QuickCheckResultValue = poCheckData.CheckValue; //检测项目结果值
  76. loQuickCheckItemJC.QuickCheckResultValueUnit = ""; //实际值单位
  77. loQuickCheckItemJC.QuickCheckResultValueCKarea = poCheckData.CheckLimit; //检测项目结果值参考范围
  78. loQuickCheckItemJC.QuickCheckResultDependOn = ""; //检测依据
  79. loQuickCheckItemJC.QuickCheckRemarks = ""; //检测备注
  80. loQuickCheckItemJC.QuickChecker = poCheckData.CheckUser; //检测人姓名 Y
  81. loQuickCheckItemJC.QuickReChecker = poCheckData.CheckUser; //复核人员姓名 Y
  82. loQuickCheckItemJC.JCManufactor = poCheckData.MachineMaker; //检测设备厂家名
  83. loQuickCheckItemJC.JCModel = poCheckData.MachineID; //检测设备型号
  84. loQuickCheckItemJC.JCSN = ""; //检测设备唯一序列号
  85. head lTbHead = new head();
  86. lTbHead.marketCode = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketCode");//"91320594717474625W";
  87. lTbHead.marketName = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketName");//"苏州工业园区现代农业投资有限公司弘德隆果品市场分公司";
  88. lTbHead.tokenNo = lcToken;
  89. request ltRequest = new request();
  90. List<QuickCheckItemJC> loQuickCheckItemJCs = new List<QuickCheckItemJC>();
  91. loQuickCheckItemJCs.Add(loQuickCheckItemJC);
  92. ltRequest.dataList = loQuickCheckItemJCs;
  93. webService loAll = new webService();
  94. loAll.head = lTbHead;
  95. loAll.request = ltRequest;
  96. string RequstInfo = SerializerHelper.SerializerToString(loAll);
  97. ThreadLog.LogInfo(RequstInfo);
  98. sDataInfraceSoapClient loYTInterface = new sDataInfraceSoapClient();
  99. lcRetval = loYTInterface.saveQuickCheckItemInfo(RequstInfo);
  100. //DynamicWebService loInterface = new DynamicWebService();
  101. //loInterface.Address = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceAddress");
  102. //object[] loObj = new object[1];
  103. //loObj[0] = RequstInfo;
  104. //lcRetval = loInterface.GetWebServiceData(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceClass"), "saveQuickCheckItemInfo", loObj).ToString();
  105. ThreadLog.LogInfo(lcRetval);
  106. }
  107. catch (Exception err)
  108. {
  109. //if (System.Web.HttpContext.Current.Application["YTErrorList"] != null)
  110. //{
  111. // YTErrorList loYE = (YTErrorList)System.Web.HttpContext.Current.Application["YTErrorList"];
  112. // loYE.ErrorTimes.Add(DateTime.Now);
  113. // if (loYE.IsCanStop)
  114. // {
  115. // SysDataLibs.AppEnv.SysSetObj.SetString("YTInterfaceOnOrOff", "N");
  116. // }
  117. //}
  118. ThreadLog.LogException(err);
  119. }
  120. //return lcRetval;
  121. }
  122. public void saveQuickCheckItemInfos(Object poObj)
  123. {
  124. string lcRetval = "";
  125. if (SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceOnOrOff") != "Y")
  126. {
  127. ThreadLog.LogInfo("error:系统已禁用次接口调用!");
  128. return;// "error:系统已禁用次接口调用!";
  129. }
  130. string lcMarketID = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketID");
  131. List<CheckData_info> poCheckDatas = (List<CheckData_info>)poObj;
  132. if (poCheckDatas == null || poCheckDatas.Count <= 0)
  133. {
  134. ThreadLog.LogInfo("error:没有上传的数据!");
  135. return;// "error:没有上传的数据!";
  136. }
  137. try
  138. {
  139. string lcToken = getToken();
  140. if (string.IsNullOrEmpty(lcToken))
  141. {
  142. ThreadLog.LogInfo("error:获取令牌失败");
  143. return;// "error:获取令牌失败";
  144. }
  145. List<QuickCheckItemJC> loQuickCheckItemJCs = new List<QuickCheckItemJC>();
  146. foreach (CheckData_info poCheckData in poCheckDatas)
  147. {
  148. if (poCheckData.MarketID != lcMarketID)
  149. {
  150. ThreadLog.LogInfo("error:上传的机构不正确!非 苏州工业园区现代农业投资有限公司弘德隆果品市场分公司");
  151. continue;
  152. }
  153. string lcSubItemCode = SysDataLibs.AppEnv.YtDataMappingObj.GetSpecialsMappingCode(poCheckData.SampleName, SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLittleID"), "szLittleKindCode");
  154. if (string.IsNullOrEmpty(lcSubItemCode))
  155. {
  156. ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的商品映射!");
  157. continue;
  158. }
  159. CheckProjectTypeMapping_info loCheckMapping = SysDataLibs.AppEnv.YtDataMappingObj.GetCheckTypeMapping(poCheckData.CheckProjectTypeID);
  160. if (loCheckMapping == null || string.IsNullOrEmpty(loCheckMapping.szCheckItemTypeLittleCode))
  161. {
  162. ThreadLog.LogInfo("error:上传检测数据不符合上传要求,未获得对应的检测项目映射!");
  163. continue;
  164. }
  165. if (string.IsNullOrEmpty(poCheckData.CorpName))
  166. {
  167. ThreadLog.LogInfo("error:被捡对象不能为空!");
  168. continue;
  169. }
  170. ViewMarketSellers_Interface_info loStallInfo = GetViewMarketSellers(lcMarketID, poCheckData.CorpName);
  171. QuickCheckItemJC loQuickCheckItemJC = new QuickCheckItemJC();
  172. loQuickCheckItemJC.JCCode = Guid.NewGuid().ToString().Replace("-", ""); //检测编号
  173. loQuickCheckItemJC.DABH = loStallInfo.IdCard;//"320502194701151534"; //经营户身份证号码
  174. loQuickCheckItemJC.PositionNo = poCheckData.CorpName;// poCheckData.CorpName;// poCheckData.CorpName; //摊位编号
  175. loQuickCheckItemJC.Name = loStallInfo.MarketSellerName;//"韩国金"; //经营户姓名 Y
  176. loQuickCheckItemJC.SubItemCode = lcSubItemCode; //抽检的品种编码 Y
  177. loQuickCheckItemJC.SubItemName = poCheckData.SampleName; //抽检的品种名称 Y
  178. loQuickCheckItemJC.QuickCheckDate = poCheckData.UploadTime; //检测时间 Y
  179. loQuickCheckItemJC.QuickCheckItemCode = loCheckMapping.szCheckItemTypeGreatCode; //检测项目分类编号 Y
  180. loQuickCheckItemJC.QuickCheckSubItemCode = loCheckMapping.szCheckItemTypeLittleCode; //检测项目小类编号 Y
  181. loQuickCheckItemJC.QuickCheckResult = poCheckData.CheckResult == "合格" ? "-" : "+"; //检测项目结果(定性值) Y (+ / -)
  182. loQuickCheckItemJC.QuickCheckResultValue = poCheckData.CheckValue; //检测项目结果值
  183. loQuickCheckItemJC.QuickCheckResultValueUnit = ""; //实际值单位
  184. loQuickCheckItemJC.QuickCheckResultValueCKarea = poCheckData.CheckLimit; //检测项目结果值参考范围
  185. loQuickCheckItemJC.QuickCheckResultDependOn = ""; //检测依据
  186. loQuickCheckItemJC.QuickCheckRemarks = ""; //检测备注
  187. loQuickCheckItemJC.QuickChecker = poCheckData.CheckUser; //检测人姓名 Y
  188. loQuickCheckItemJC.QuickReChecker = poCheckData.CheckUser; //复核人员姓名 Y
  189. loQuickCheckItemJC.JCManufactor = poCheckData.MachineMaker; //检测设备厂家名
  190. loQuickCheckItemJC.JCModel = poCheckData.MachineID; //检测设备型号
  191. loQuickCheckItemJC.JCSN = "";
  192. loQuickCheckItemJCs.Add(loQuickCheckItemJC);
  193. }
  194. _ViewMarketSellersSave.Clear();
  195. head lTbHead = new head();
  196. lTbHead.marketCode = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketCode");//"91320594717474625W";
  197. lTbHead.marketName = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceMarkketName");//"苏州工业园区现代农业投资有限公司弘德隆果品市场分公司";
  198. lTbHead.tokenNo = lcToken;
  199. request ltRequest = new request();
  200. //dataList ltDt = new dataList();
  201. //ltDt.QuickCheckItemJC = loQuickCheckItemJCs;
  202. ltRequest.dataList = loQuickCheckItemJCs;
  203. webService loAll = new webService();
  204. loAll.head = lTbHead;
  205. loAll.request = ltRequest;
  206. string RequstInfo = SerializerHelper.SerializerToString(loAll);
  207. ThreadLog.LogInfo(RequstInfo);
  208. //DynamicWebService loInterface = new DynamicWebService();
  209. //loInterface.Address = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceAddress");
  210. //object[] loObj = new object[1];
  211. //loObj[0] = RequstInfo;
  212. //lcRetval = loInterface.GetWebServiceData(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceClass"), "saveQuickCheckItemInfo", loObj).ToString();
  213. sDataInfraceSoapClient loYTInterface = new sDataInfraceSoapClient();
  214. lcRetval = loYTInterface.saveQuickCheckItemInfo(RequstInfo);
  215. ThreadLog.LogInfo("上传结果:" + lcRetval);
  216. }
  217. catch (Exception err)
  218. {
  219. //YTErrorList loYE = (YTErrorList)SysDataLibs.AppEnv.YTErrorList;
  220. //loYE.ErrorTimes.Add(DateTime.Now);
  221. //if (loYE.IsCanStop)
  222. //{
  223. // SysDataLibs.AppEnv.SysSetObj.SetString("YTInterfaceOnOrOff", "N");
  224. //}
  225. ThreadLog.LogException(err);
  226. }
  227. // return lcRetval;
  228. }
  229. public Dictionary<string, ViewMarketSellers_Interface_info> _ViewMarketSellersSave = new Dictionary<string, ViewMarketSellers_Interface_info>();
  230. //获取摊位信息
  231. public ViewMarketSellers_Interface_info GetViewMarketSellers(string poMarkketID, string poStallNo)
  232. {
  233. string lcKey = UtilStr.UAndT(poMarkketID + "@@" + poStallNo);
  234. ViewMarketSellers_Interface_info loReturn = null;
  235. if (_ViewMarketSellersSave.ContainsKey(lcKey))
  236. {
  237. loReturn = _ViewMarketSellersSave[lcKey];
  238. }
  239. else
  240. {
  241. //OpenLockKeys_info loOpenLockKey = new OpenLockKeys_info(pcDbConn, pcIndexNo, pcRoomId);
  242. loReturn = getSellersInfo(poMarkketID, poStallNo);
  243. _ViewMarketSellersSave.Add(lcKey, loReturn);
  244. }
  245. return loReturn;
  246. }
  247. private string getToken()
  248. {
  249. string lcToken = "";
  250. sDataInfraceSoapClient loYTInterface = new sDataInfraceSoapClient();
  251. string lcTokenInfo = loYTInterface.checkIn(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLoginInfo"));
  252. //DynamicWebService loInterface = new DynamicWebService();
  253. //loInterface.Address = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceAddress");
  254. //object[] loObj = new object[1];
  255. //loObj[0] = SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceLoginInfo");
  256. //string lcTokenInfo = loInterface.GetWebServiceData(SysDataLibs.AppEnv.SysSetObj.GetString("YTInterfaceClass"), "checkIn", loObj).ToString();
  257. rsXmlNode loMainNode = rsXmlNode.ParseGenericXml(lcTokenInfo);
  258. if (loMainNode != null)
  259. {
  260. rsXmlNode loResponseNode = loMainNode.GetChildNode("response");
  261. if (loResponseNode != null)
  262. lcToken = loResponseNode.GetChildValue("tokenNo");
  263. }
  264. return lcToken;
  265. }
  266. private ViewMarketSellers_Interface_info getSellersInfo(string poMarkketID, string poStallNo)
  267. {
  268. ViewMarketSellers_Interface_info loStall = new ViewMarketSellers_Interface_info();
  269. string lcSearchSeller = " select IdCard,MarketSellerName,StallName,StallNo from " + Tn.ViewMarketSellers_Interface + " where MarketID='" + poMarkketID +
  270. "' and " + ViewMarketSellers_Interface_info.cStallNo + "='" + poStallNo + "'";
  271. DBConnSql loDBConn = new DBConnSql();
  272. try
  273. {
  274. if (loDBConn.Open())
  275. {
  276. rsQuery loQuery = loDBConn.OpenQuery(lcSearchSeller);
  277. if (loQuery != null && loQuery.IsOpened && loQuery.RecCount > 0)
  278. {
  279. loStall.IdCard = loQuery.GetString(ViewMarketSellers_Interface_info.cIdCard);
  280. loStall.MarketSellerName = loQuery.GetString(ViewMarketSellers_Interface_info.cMarketSellerName);
  281. loStall.StallNo = loQuery.GetString(ViewMarketSellers_Interface_info.cStallNo);
  282. loStall.StallName = loQuery.GetString(ViewMarketSellers_Interface_info.cStallName);
  283. }
  284. }
  285. }
  286. catch (Exception err)
  287. {
  288. ThreadLog.LogException(err);
  289. }
  290. finally
  291. {
  292. if (loDBConn != null)
  293. {
  294. loDBConn.Close();
  295. loDBConn = null;
  296. }
  297. }
  298. return loStall;
  299. }
  300. public void ExcuteUploadYTThread(CheckData_info poCheckData)
  301. {
  302. Thread loThread = new Thread(new ParameterizedThreadStart(saveQuickCheckItemInfo));
  303. loThread.Start(poCheckData);
  304. }
  305. public void ExcuteBatchUploadYTThread(List<CheckData_info> poCheckDatas)
  306. {
  307. Thread loThread = new Thread(new ParameterizedThreadStart(saveQuickCheckItemInfos));
  308. loThread.Start(poCheckDatas);
  309. }
  310. }
  311. }