TmpSavePermitExcutor.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.SqlClient;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Web.UI;
  7. using JLHHJSvr.BLL;
  8. using JLHHJSvr.Com.APP;
  9. using JLHHJSvr.DBA.DBModle;
  10. using LJLib.DAL.SQL;
  11. using LJLib.Net.SPI.Server;
  12. namespace JLHHJSvr.Excutor.APP
  13. {
  14. internal sealed class TmpSavePermitExcutor : ExcutorBase<TmpSavePermitRequest, TmpSavePermitResponse>
  15. {
  16. protected override void ExcuteInternal(TmpSavePermitRequest request, object state, TmpSavePermitResponse rslt)
  17. {
  18. if (request.roadid == 0)
  19. {
  20. rslt.ErrMsg = "未选择路段";
  21. return;
  22. }
  23. if (string.IsNullOrEmpty(request.carnum))
  24. {
  25. rslt.ErrMsg = "未填写车牌号码";
  26. return;
  27. }
  28. request.carnum = request.carnum.ToUpper();
  29. if (request.dscrp == null)
  30. {
  31. rslt.ErrMsg = "备注信息异常";
  32. return;
  33. }
  34. if (string.IsNullOrEmpty(request.owner))
  35. {
  36. rslt.ErrMsg = "未填写车主姓名";
  37. return;
  38. }
  39. if (string.IsNullOrEmpty(request.owner_tel))
  40. {
  41. rslt.ErrMsg = "未填写车主电话";
  42. return;
  43. }
  44. using (var con = new SqlConnection(GlobalVar.ConnectionString))
  45. using (var cmd = con.CreateCommand())
  46. {
  47. con.Open();
  48. var opendate = DateTime.Parse(new st_option().GetValue(cmd, 7));
  49. var closedate = DateTime.Parse(new st_option().GetValue(cmd, 5));
  50. if (!opendate.Equals(closedate))
  51. {
  52. if (closedate <= opendate)
  53. {
  54. if (DateTime.Now < opendate)
  55. {
  56. opendate = opendate.AddDays(-1);
  57. }
  58. else
  59. {
  60. closedate = closedate.AddDays(1);
  61. }
  62. }
  63. if (DateTime.Now < opendate || DateTime.Now > closedate)
  64. {
  65. rslt.ErrMsg = "当前不在报备开放的时间段,报备失败!";
  66. return;
  67. }
  68. }
  69. var stOption = new st_option {optionid = 3};
  70. var maxRecordCnt = Convert.ToInt32(stOption.GetValue(cmd));
  71. var dtNow = DateTime.Now;
  72. var thismonth = new DateTime(dtNow.Year, dtNow.Month, 1);
  73. cmd.CommandText = @"
  74. SELECT COUNT(pid)
  75. FROM st_permit
  76. WHERE carnum = @carnum
  77. AND iftmp = 1
  78. AND inuse = 1
  79. AND opdate > @thismonth";
  80. cmd.Parameters.Clear();
  81. cmd.Parameters.AddWithValue("@carnum", request.carnum);
  82. cmd.Parameters.AddWithValue("thismonth", thismonth);
  83. var thisMonthCnt = Convert.ToInt32(cmd.ExecuteScalar());
  84. if (thisMonthCnt >= maxRecordCnt)
  85. {
  86. rslt.ErrMsg = string.Format("本月已经备案{0}次,不能再申请", maxRecordCnt);
  87. return;
  88. }
  89. cmd.CommandText = @"
  90. SELECT pid
  91. FROM st_permit
  92. WHERE carnum = @carnum
  93. AND begindate < GETDATE()
  94. AND enddate > GETDATE()
  95. AND iftmp = 1
  96. AND inuse = 1";
  97. using (var reader = cmd.ExecuteReader())
  98. {
  99. if (reader.Read())
  100. {
  101. rslt.ErrMsg = "今天已经备案,无需重复备案";
  102. return;
  103. }
  104. }
  105. var begindate = DateTime.Now;
  106. DateTime tomorrow = DateTime.Parse(new st_option().GetValue(cmd, 5));
  107. if ((begindate.Hour + begindate.Minute/60) >= (tomorrow.Hour + tomorrow.Minute/60))
  108. {
  109. tomorrow = tomorrow.AddDays(1);
  110. }
  111. // var enddate = new DateTime(tomorrow.Year, tomorrow.Month, tomorrow.Day, 8, 0, 0);
  112. var enddate = tomorrow;
  113. using (cmd.Transaction = con.BeginTransaction())
  114. {
  115. try
  116. {
  117. var stPermit = new st_permit
  118. {
  119. pid = BllHelper.GetID(cmd, "st_permit"),
  120. carnum = request.carnum,
  121. owner = request.owner,
  122. owner_tel = request.owner_tel,
  123. begindate = begindate,
  124. enddate = enddate,
  125. iftmp = 1,
  126. inuse = 1,
  127. roadid = request.roadid,
  128. dscrp = request.dscrp,
  129. opemp = "自助备案",
  130. opdate = DateTime.Now
  131. };
  132. DbSqlHelper.Insert(cmd, stPermit,
  133. "pid,carnum,owner,owner_tel,begindate,enddate,iftmp,inuse,roadid,dscrp,opemp,opdate");
  134. var stCar = new st_car()
  135. {
  136. carnum = request.carnum
  137. };
  138. if (DbSqlHelper.SelectOne(cmd, stCar, "carnum") != 1)
  139. {
  140. stCar.owner = request.owner;
  141. stCar.owner_tel = request.owner_tel;
  142. stCar.opemp = "自助备案";
  143. stCar.opdate = DateTime.Now;
  144. DbSqlHelper.Insert(cmd, stCar, "carnum,owner,owner_tel,opemp,opdate");
  145. }
  146. cmd.Transaction.Commit();
  147. }
  148. catch (Exception e)
  149. {
  150. cmd.Transaction.Rollback();
  151. rslt.ErrMsg = e.ToString();
  152. }
  153. }
  154. }
  155. }
  156. }
  157. }