You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

425 lines
17 KiB

  1. using Newtonsoft.Json;
  2. using QZWebApi.Bus;
  3. using QZWebApi.Models;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Collections.Specialized;
  7. using System.Configuration;
  8. using System.Data;
  9. using System.IO;
  10. using System.Linq;
  11. using System.Net;
  12. using System.Net.Http;
  13. using System.Text;
  14. using System.Web.Hosting;
  15. using System.Web.Http;
  16. using System.Web.Http.Results;
  17. namespace QZWebApi.Controllers
  18. {
  19. public class ValuesController : ApiController
  20. {
  21. [HttpGet]
  22. public string GetPlanChange(string HospitalId, string year, string AesKey)
  23. {
  24. //获得请求的时间秒数
  25. long timeStamp = TjSignUtil.Get_Timestamp();
  26. //获得请求参数签名
  27. string signature = TjSignUtil.GetSignatureBytoken(AesKey, timeStamp.ToString(), HospitalId + DateTime.Now.Year.ToString());
  28. //定义远程接口参数
  29. NameValueCollection c = new NameValueCollection();
  30. c.Add("hospitalId", HospitalId);
  31. c.Add("year", year);
  32. c.Add("timestamp", timeStamp.ToString());
  33. c.Add("signature", signature);
  34. //获取远程接口返回数据
  35. var url = @"http://qzjk.qztlgs.com/qzjk/planUser/getPlanChange?";
  36. var result = HttpHelper.CreateGetHttpRequest(url, c, "", 10000);
  37. return result;
  38. //PlanChangeModel m = new PlanChangeModel();
  39. //m.status = true;
  40. //m.message = "OK";
  41. //m.size = 3;
  42. //m.ids = new int[] { 123, 1234, 124 };
  43. //string json = JsonConvert.SerializeObject(m);
  44. //return new HttpResponseMessage()
  45. //{
  46. // Content = new StringContent(json, Encoding.UTF8, "application/json"),
  47. //};
  48. //返回给红豚
  49. //return json;
  50. }
  51. [HttpGet]
  52. public PlanModel GetPlan(string HospitalId, string year, string AesKey)
  53. {
  54. //获取远程接口数据返回
  55. //PlanModel m = new PlanModel();
  56. //m.status = true;
  57. //m.message = "OK";
  58. //m.size = 50;
  59. //m.plans = new List<JkPlanUserBean>()
  60. //{
  61. // new JkPlanUserBean()
  62. // {
  63. // id=12345678,year=2019,typeName="全员体检",phase="岗间体检",personName="张小明",cardId="630102197408192921",sex="男",age=24,wedding=2,orgId=146,orgName="西宁工务段-平安车间",workType="干部",tjTab1=0,tjTab2=0,grade="2",mobile="13897066306",ifMain=0,ifGy=1,ifJk=0,ifWh=0,ifCw=0,ifGt=0,ifCy=0,ifFj=0,remarks="需要做心脏彩超"
  64. // },
  65. // new JkPlanUserBean()
  66. // {
  67. // id=12312312,year=2019,typeName="全员体检",phase="岗间体检",personName="刘小花",cardId="630102197408192921",sex="男",age=24,wedding=2,orgId=146,orgName="西宁工务段-平安车间",workType="干部",tjTab1=0,tjTab2=0,grade="2",mobile="13897066306",ifMain=0,ifGy=1,ifJk=0,ifWh=0,ifCw=0,ifGt=0,ifCy=0,ifFj=0,remarks="需要做心脏彩超"
  68. // }
  69. //};
  70. //return m;
  71. //获得请求的时间秒数
  72. long timeStamp = TjSignUtil.Get_Timestamp();
  73. //获得请求参数签名
  74. string signature = TjSignUtil.GetSignatureBytoken(AesKey, timeStamp.ToString(), HospitalId + year);
  75. //定义远程接口参数
  76. NameValueCollection c = new NameValueCollection();
  77. c.Add("hospitalId", HospitalId);
  78. c.Add("year", year);
  79. c.Add("timestamp", timeStamp.ToString());
  80. c.Add("signature", signature);
  81. //获取远程接口返回数据
  82. var url = @"http://qzjk.qztlgs.com/qzjk/planUser/getPlan?";
  83. var model = new PlanModel();
  84. try
  85. {
  86. var result = HttpHelper.CreateGetHttpRequest(url, c, "", 10000);
  87. model = JsonConvert.DeserializeObject<PlanModel>(result);
  88. var plansStr = TjSignUtil.Decrypt(model.plans, ConfigurationManager.AppSettings["AESJavaToNetKey"].ToString());
  89. model.plans = plansStr;
  90. }
  91. catch
  92. {
  93. }
  94. return model;
  95. }
  96. [HttpGet]
  97. public string SetPlanOK(string HospitalId, string AesKey, string ids, string delids)
  98. {
  99. //获得请求的时间秒数
  100. long timeStamp = TjSignUtil.Get_Timestamp();
  101. //获得请求参数签名
  102. string signature = TjSignUtil.GetSignatureBytoken(AesKey, timeStamp.ToString(), HospitalId + ids + delids);
  103. //定义远程接口参数
  104. NameValueCollection c = new NameValueCollection();
  105. c.Add("hospitalId", HospitalId);
  106. c.Add("ids", ids);
  107. c.Add("delids", delids);
  108. c.Add("timestamp", timeStamp.ToString());
  109. c.Add("signature", signature);
  110. //获取远程接口返回数据
  111. var url = @"http://qzjk.qztlgs.com/qzjk/planUser/setPlanOk?";
  112. var result = "";
  113. try
  114. {
  115. result = HttpHelper.CreateGetHttpRequest(url, c, "", 10000);
  116. }
  117. catch
  118. {
  119. }
  120. return result;
  121. }
  122. //[HttpGet]
  123. //public GetTjxxModel getTjxx(string AesKey, string deptId, int planUserId, string timestamp, string signature)
  124. //{
  125. // //获得请求的时间秒数
  126. // long timeStamp = TjSignUtil.Get_Timestamp();
  127. // GetTjxxModel m = new GetTjxxModel();
  128. // //{status:true,message:"OK"
  129. // if (!AesKey.Equals(ConfigurationManager.AppSettings["AESKey"].ToString()))
  130. // {
  131. // m.status = false;
  132. // m.message = "身份密匙错误";
  133. // //return m;
  134. // }
  135. // //else if ((timeStamp - long.Parse(timestamp)) > 10L)
  136. // //{
  137. // // m.status = false;
  138. // // m.message = "时间校验失败";
  139. // // //return m;
  140. // //}
  141. // //else if (!TjSignUtil.GetSignatureBytoken(ConfigurationManager.AppSettings["AESKey"].ToString(), timestamp, deptId + planUserId).Equals(signature))
  142. // //{
  143. // // m.status = false;
  144. // // m.message = "请求参数签名错误";
  145. // // //return m;
  146. // //}
  147. // else
  148. // {
  149. // //获取对应计划的数据
  150. // DataTable data = new DataTable();
  151. // DataBase db = new DataBase();
  152. // try
  153. // {
  154. // data = db.QyeryTJXX(deptId, planUserId);
  155. // if (data.Rows.Count == 0)
  156. // {
  157. // m.status = false;
  158. // m.message = "该体检计划对应的体检项目未全部完成";
  159. // }
  160. // else
  161. // {
  162. // List<JkTjxxBean> items = new List<JkTjxxBean>();
  163. // foreach (DataRow dr in data.Rows)
  164. // {
  165. // items.Add(new JkTjxxBean()
  166. // {
  167. // id = long.Parse(dr["item_id"].ToString()),
  168. // tjxmMc = dr["item_name"].ToString(),
  169. // ysValue = dr["result"].ToString(),
  170. // remark = dr["report_prompt"].ToString(),
  171. // tjUnit = dr["unit"].ToString(),
  172. // price = dr["price"] == DBNull.Value ? 0 : double.Parse(dr["unit"].ToString())
  173. // });
  174. // }
  175. // string itemsStr = JsonConvert.SerializeObject(items);
  176. // m.items = TjSignUtil.AESEncode(itemsStr, ConfigurationManager.AppSettings["AESJavaToNetKey"].ToString());
  177. // m.tjDate = DateTime.Parse(data.Rows[0]["summary_date"].ToString()).ToString("yyyy-MM-dd");
  178. // m.status = true;
  179. // m.message = "OK";
  180. // m.planUserId = Convert.ToInt32(planUserId);
  181. // m.size = data.Rows.Count;
  182. // }
  183. // //string jsonStr = JsonConvert.SerializeObject(m);
  184. // }
  185. // catch (Exception ex)
  186. // {
  187. // m.message = ex.Message;
  188. // m.status = false;
  189. // }
  190. // }
  191. // return m;
  192. //}
  193. ///// <summary>
  194. ///// 获取体检信息
  195. ///// </summary>
  196. ///// <param name="deptId"></param>
  197. ///// <param name="planUserId"></param>
  198. ///// <param name="timestamp"></param>
  199. ///// <param name="signature"></param>
  200. ///// <returns></returns>
  201. //[HttpGet]
  202. //public GetTjjlModel getTjxx(string deptId, int planUserId, string timestamp, string signature)
  203. //{
  204. // GetTjjlModel m = new GetTjjlModel();
  205. // try
  206. // {
  207. // //获得请求的时间秒数
  208. // long timeStamp = TjSignUtil.Get_Timestamp();
  209. // //获取对应计划的数据
  210. // DataTable data1 = new DataTable();
  211. // DataTable data2 = new DataTable();
  212. // DataTable data3 = new DataTable();
  213. // DataBase db = new DataBase();
  214. // data1 = db.QyeryJL1(deptId, planUserId);
  215. // if (data1.Rows.Count == 0)
  216. // {
  217. // m.status = 1;
  218. // m.errorMsg = "该体检计划对应的体检项目未全部完成";
  219. // }
  220. // else
  221. // {
  222. // data2 = db.QyeryJL2(planUserId);
  223. // data3 = db.QyeryJL3(planUserId);
  224. // m.status = 0;
  225. // m.errorMsg = "OK";
  226. // m.planUserId = Convert.ToInt32(planUserId);
  227. // m.date = DateTime.Parse(data1.Rows[0]["summary_date"].ToString()).ToString("yyyy-MM-dd");
  228. // TjjlDetails d = new TjjlDetails();
  229. // d.summary = data1.Rows[0]["summary"] == DBNull.Value ? "" : data1.Rows[0]["summary"].ToString();
  230. // d.suggestion = data1.Rows[0]["suggestion"] == DBNull.Value ? "" : data1.Rows[0]["suggestion"].ToString();
  231. // d.cardId = data1.Rows[0]["id_card_no"] == DBNull.Value ? "" : data1.Rows[0]["id_card_no"].ToString();
  232. // d.packages = new List<TjjlPackages>();
  233. // foreach (DataRow dr in data2.Rows)
  234. // {
  235. // TjjlPackages p = new TjjlPackages();
  236. // p.packageName = dr["asbitem_name"] == DBNull.Value ? "" : dr["asbitem_name"].ToString();
  237. // p.fee = dr["price"] == DBNull.Value ? 0d : double.Parse(dr["price"].ToString());
  238. // p.summary = dr["summary"] == DBNull.Value ? "" : dr["summary"].ToString();
  239. // p.items = new List<JkTjxxBean>();
  240. // foreach (DataRow dr1 in data3.Rows)
  241. // {
  242. // JkTjxxBean j = new JkTjxxBean();
  243. // if (dr1["asbitem_id"].ToString().Equals(dr["asbitem_id"].ToString()))
  244. // {
  245. // //j.id=dr1["id"]
  246. // j.price = dr1["price"] == DBNull.Value ? 0d : double.Parse(dr1["price"].ToString());
  247. // j.tjxmMc = dr1["item_name"] == DBNull.Value ? "" : dr1["item_name"].ToString();
  248. // j.reference = dr1["reference"] == DBNull.Value ? "" : dr1["reference"].ToString();
  249. // j.remark = dr1["remark"] == DBNull.Value ? "" : dr1["remark"].ToString();
  250. // j.tjUnit = dr1["unit"] == DBNull.Value ? "" : dr1["unit"].ToString();
  251. // j.ysValue = dr1["result"] == DBNull.Value ? "" : dr1["result"].ToString();
  252. // p.items.Add(j);
  253. // }
  254. // }
  255. // d.packages.Add(p);
  256. // }
  257. // string itemsStr = JsonConvert.SerializeObject(d);
  258. // m.data = TjSignUtil.AESEncode(itemsStr, ConfigurationManager.AppSettings["AESJavaToNetKey"].ToString());
  259. // }
  260. // return m;
  261. // }
  262. // catch(Exception ex)
  263. // {
  264. // m.errorMsg = ex.ToString();
  265. // return m;
  266. // }
  267. //}
  268. /// <summary>
  269. /// 获取体检信息
  270. /// </summary>
  271. /// <param name="deptId"></param>
  272. /// <param name="planUserId"></param>
  273. /// <param name="timestamp"></param>
  274. /// <param name="signature"></param>
  275. /// <returns></returns>
  276. [HttpGet]
  277. public GetTjjlModel getTjxx(string deptId, int planUserId, string timestamp, string signature)
  278. {
  279. GetTjjlModel m = new GetTjjlModel();
  280. try
  281. {
  282. //获得请求的时间秒数
  283. long timeStamp = TjSignUtil.Get_Timestamp();
  284. //获取对应计划的数据
  285. DataTable data_peis = new DataTable();
  286. DataTable data2 = new DataTable();
  287. DataTable data3 = new DataTable();
  288. SqlSugarHelper db = new SqlSugarHelper();
  289. data_peis = db.GetPeisInfo(planUserId.ToString());
  290. if (data_peis.Rows.Count == 0)
  291. {
  292. m.status = 1;
  293. m.errorMsg = "该体检计划对应的体检项目未全部完成";
  294. }
  295. else
  296. {
  297. //data2 = db.QyeryJL2(planUserId);
  298. //data3 = db.QyeryJL3(planUserId);
  299. m.status = 0;
  300. m.errorMsg = "OK";
  301. m.planUserId = Convert.ToInt32(planUserId);
  302. m.date = DateTime.Parse(data_peis.Rows[0]["summary_date"].ToString()).ToString("yyyy-MM-dd");
  303. TjjlDetails d = new TjjlDetails();
  304. d.summary = db.GetSumSummary(planUserId.ToString());
  305. d.suggestion = db.GetSumSuggestion(planUserId.ToString());
  306. d.cardId = string.IsNullOrWhiteSpace(data_peis.Rows[0]["id_no"].ToString()) ? "" : data_peis.Rows[0]["id_no"].ToString();
  307. d.packages = db.GetRegisterCheck(planUserId.ToString());
  308. string itemsStr = JsonConvert.SerializeObject(d);
  309. m.data = TjSignUtil.AESEncode(itemsStr, ConfigurationManager.AppSettings["AESJavaToNetKey"].ToString());
  310. }
  311. return m;
  312. }
  313. catch (Exception ex)
  314. {
  315. m.errorMsg = ex.ToString();
  316. return m;
  317. }
  318. }
  319. /// <summary>
  320. /// 获取体检报告
  321. /// </summary>
  322. /// <param name="deptId"></param>
  323. /// <param name="planUserId"></param>
  324. /// <param name="timestamp"></param>
  325. /// <param name="signature"></param>
  326. /// <returns></returns>
  327. [HttpGet]
  328. public TiwdModel getReport(string deptId, int planUserId, string timestamp, string signature)
  329. {
  330. //获得请求的时间秒数
  331. long timeStamp = TjSignUtil.Get_Timestamp();
  332. TiwdModel m = new TiwdModel();
  333. //{
  334. //获取对应计划的数据
  335. DataTable data = new DataTable();
  336. SqlSugarHelper db = new SqlSugarHelper();
  337. data = db.GetPeisReport(planUserId.ToString());
  338. if (data.Rows.Count == 0)
  339. {
  340. m.status = 1;
  341. m.errorMsg = "没有对应的体检报告";
  342. return m;
  343. }
  344. else
  345. {
  346. m.errorMsg = "";
  347. m.IsSec = 0;
  348. m.planUserId = planUserId.ToString();
  349. var str = db.GetImageBase64StringAsync(ConfigurationManager.AppSettings["WebApiUrl"].ToString() + data.Rows[0]["report_file"].ToString());
  350. m.file = str;
  351. m.type = "pdf";
  352. m.status = 0;
  353. return m;
  354. }
  355. }
  356. // GET api/values
  357. public IEnumerable<string> Get()
  358. {
  359. return new string[] { "value1", "value2" };
  360. }
  361. // GET api/values/5
  362. public string Get(int id)
  363. {
  364. return "value";
  365. }
  366. // POST api/values
  367. public void Post([FromBody] string value)
  368. {
  369. }
  370. // PUT api/values/5
  371. public void Put(int id, [FromBody] string value)
  372. {
  373. }
  374. // DELETE api/values/5
  375. public void Delete(int id)
  376. {
  377. }
  378. }
  379. }