TmpSavePermitExcutor.cs 6.3 KB

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