SaveMattressAuditingExcutor.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.SqlClient;
  4. using System.Linq;
  5. using System.Text;
  6. using JLHHJSvr.BLL;
  7. using JLHHJSvr.Com;
  8. using JLHHJSvr.Com.Model;
  9. using JLHHJSvr.LJException;
  10. using JLHHJSvr.Tools;
  11. using LJLib.DAL.SQL;
  12. using LJLib.Net.SPI.Server;
  13. using LJLib.SQLEX;
  14. namespace JLHHJSvr.Excutor
  15. {
  16. internal sealed class SaveMattressAuditingExcutor : ExcutorBase<SaveMattressAuditingRequest, SaveMattressAuditingResponse>
  17. {
  18. protected override void ExcuteInternal(SaveMattressAuditingRequest request, object state, SaveMattressAuditingResponse rslt)
  19. {
  20. var tokendata = BllHelper.GetToken(request.token);
  21. if (tokendata == null)
  22. {
  23. rslt.ErrMsg = "会话已经中断,请重新登录";
  24. return;
  25. }
  26. using (var con = GlobalVar.ConnectionString.NewSqlConnection())
  27. using (var cmd = con.CreateCommand())
  28. {
  29. con.Open();
  30. // 初始化属性
  31. //AutoInit.AutoInitS(cmd, request.mattress);
  32. using (cmd.Transaction = con.BeginTransaction())
  33. {
  34. try
  35. {
  36. // 只处理主规格
  37. Dictionary<int, u_mattress> mattressDic = new Dictionary<int, u_mattress>();
  38. foreach (int itemid in request.mattressids)
  39. {
  40. var mattressInfo = new u_mattress() { mattressid = itemid };
  41. if (DbSqlHelper.SelectOne(cmd, mattressInfo, "flag, xd_flag, yw_flag, mattresscode, parentid") != 1)
  42. {
  43. rslt.ErrMsg = "查找报价单据失败:" + itemid;
  44. return;
  45. }
  46. //if (mattressInfo.parentid > 0)
  47. //{
  48. // mattressInfo = new u_mattress() { mattressid = mattressInfo.parentid.Value };
  49. // if (DbSqlHelper.SelectOne(cmd, mattressInfo, "flag, xd_flag, parentid") != 1)
  50. // {
  51. // rslt.ErrMsg = "查找报价单据失败:" + itemid;
  52. // return;
  53. // }
  54. //}
  55. if (!mattressDic.ContainsKey(mattressInfo.mattressid))
  56. {
  57. mattressDic.Add(mattressInfo.mattressid, mattressInfo);
  58. }
  59. }
  60. if (request.xd_flag != null)
  61. {
  62. // 业务下单/取消
  63. var power94 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 94);
  64. if (!power94 && request.xd_flag == 1)
  65. {
  66. throw new LJCommonException("你没有业务下单权限");
  67. }
  68. var power95 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 95);
  69. if (!power95 && request.xd_flag == 0)
  70. {
  71. throw new LJCommonException("你没有取消业务下单权限");
  72. }
  73. var updateField = "xd_flag, xd_auditingrep, xd_auditingdate";
  74. foreach (var item in mattressDic)
  75. {
  76. var mattressInfo = item.Value;
  77. if (request.xd_flag == 1)
  78. {
  79. if (mattressInfo.flag == 1)
  80. {
  81. rslt.ErrMsg = "床垫已审核,不能业务下单!(" + mattressInfo.mattresscode + ")";
  82. return;
  83. }
  84. if (mattressInfo.xd_flag == 1)
  85. {
  86. rslt.ErrMsg = "床垫已完成业务下单(" + mattressInfo.mattresscode + ")";
  87. return;
  88. }
  89. mattressInfo.xd_flag = 1;
  90. mattressInfo.xd_auditingrep = tokendata.username;
  91. mattressInfo.xd_auditingdate = DateTime.Now;
  92. if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
  93. {
  94. throw new LJCommonException("因网络或其它原因,【业务下单/取消】操作失败!");
  95. }
  96. //UpdateChildState(cmd, mattressInfo, "xd_flag", 1);
  97. }
  98. else
  99. {
  100. if (mattressInfo.js1_flag == 1)
  101. {
  102. rslt.ErrMsg = "已产品补充审核,不能取消下单!(" + mattressInfo.mattresscode + ")";
  103. return;
  104. }
  105. if (mattressInfo.xd_flag == 0)
  106. {
  107. rslt.ErrMsg = "未进行业务下单,不能取消下单!(" + mattressInfo.mattresscode + ")";
  108. return;
  109. }
  110. if (mattressInfo.yw_flag == 1)
  111. {
  112. rslt.ErrMsg = "床垫清单已业务补充审核,不能取消下单!(" + mattressInfo.mattresscode + ")";
  113. return;
  114. }
  115. mattressInfo.xd_flag = 0;
  116. mattressInfo.xd_auditingrep = "";
  117. mattressInfo.xd_auditingdate = null;
  118. if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
  119. {
  120. throw new LJCommonException("因网络或其它原因,【业务下单/取消】操作失败!");
  121. }
  122. //UpdateChildState(cmd, mattressInfo, "xd_flag", 0);
  123. }
  124. }
  125. }
  126. else if (request.flag != null)
  127. {
  128. // 审核
  129. var power73 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 73);
  130. if (!power73 && request.flag == 1)
  131. {
  132. throw new LJCommonException("你没有审核权限");
  133. }
  134. var power74 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 74);
  135. if (!power74 && request.flag == 0)
  136. {
  137. throw new LJCommonException("你没有取消审核权限");
  138. }
  139. var updateField = "flag, auditingrep, auditingdate";
  140. foreach (var item in mattressDic)
  141. {
  142. var mattressInfo = item.Value;
  143. if (request.flag == 1)
  144. {
  145. if (mattressInfo.flag == 1)
  146. {
  147. rslt.ErrMsg = "床报价已完成审核(" + mattressInfo.mattresscode + ")";
  148. return;
  149. }
  150. mattressInfo.flag = 1;
  151. mattressInfo.auditingrep = tokendata.username;
  152. mattressInfo.auditingdate = DateTime.Now;
  153. if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
  154. {
  155. throw new LJCommonException("因网络或其它原因,【审核消】操作失败!");
  156. }
  157. //UpdateChildState(cmd, mattressInfo, "flag", 1);
  158. }
  159. else
  160. {
  161. if (mattressInfo.flag == 0)
  162. {
  163. rslt.ErrMsg = "床报价已完成撤销审核!(" + mattressInfo.mattresscode + ")";
  164. return;
  165. }
  166. mattressInfo.flag = 0;
  167. mattressInfo.auditingrep = "";
  168. mattressInfo.auditingdate = null;
  169. if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
  170. {
  171. throw new LJCommonException("因网络或其它原因,【撤销审核】操作失败!");
  172. }
  173. //UpdateChildState(cmd, mattressInfo, "flag", 0);
  174. }
  175. }
  176. }
  177. cmd.Transaction.Commit();
  178. }
  179. catch (Exception e)
  180. {
  181. cmd.Transaction.Rollback();
  182. rslt.ErrMsg = e.ToString();
  183. }
  184. }
  185. }
  186. }
  187. public void UpdateChildState(SqlCommand cmd, u_mattress mattress, string fieldStr, int value)
  188. {
  189. var updateStr = "";
  190. var rep = "";
  191. DateTime? date = null;
  192. if (fieldStr == "xd_flag")
  193. {
  194. if (mattress.auditingdate.HasValue)
  195. {
  196. updateStr = @"
  197. xd_auditingrep = @rep,
  198. xd_auditingdate = @date
  199. ";
  200. rep = mattress.xd_auditingrep;
  201. date = mattress.xd_auditingdate;
  202. }
  203. else
  204. {
  205. updateStr = @"
  206. xd_auditingrep = @rep,
  207. xd_auditingdate = null
  208. ";
  209. rep = mattress.xd_auditingrep;
  210. }
  211. } else
  212. {
  213. if (mattress.auditingdate.HasValue)
  214. {
  215. updateStr = @"
  216. auditingrep = @rep,
  217. auditingdate = @date
  218. ";
  219. rep = mattress.auditingrep;
  220. date = mattress.auditingdate;
  221. }
  222. else
  223. {
  224. updateStr = @"
  225. auditingrep = @rep,
  226. auditingdate = null
  227. ";
  228. rep = mattress.auditingrep;
  229. }
  230. }
  231. cmd.CommandText = @"UPDATE u_mattress
  232. SET " + fieldStr + @" = @value,
  233. " + updateStr + @"
  234. FROM u_mattress
  235. WHERE u_mattress.parentid = @mattressid";
  236. cmd.Parameters.Clear();
  237. cmd.Parameters.AddWithValue("@mattressid", mattress.mattressid);
  238. cmd.Parameters.AddWithValue("@value", value);
  239. cmd.Parameters.AddWithValue("@rep", rep);
  240. if (date.HasValue)
  241. {
  242. cmd.Parameters.AddWithValue("@date", date);
  243. }
  244. cmd.ExecuteNonQuery();
  245. }
  246. }
  247. }