SaveMattressAuditingExcutor.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  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, js1_flag, js2_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.js2_flag == 1)
  106. {
  107. rslt.ErrMsg = "已清单补充审核,不能取消下单!(" + mattressInfo.mattresscode + ")";
  108. return;
  109. }
  110. if (mattressInfo.xd_flag == 0)
  111. {
  112. rslt.ErrMsg = "未进行业务下单,不能取消下单!(" + mattressInfo.mattresscode + ")";
  113. return;
  114. }
  115. //if (mattressInfo.yw_flag == 1)
  116. //{
  117. // rslt.ErrMsg = "床垫清单已业务补充审核,不能取消下单!(" + mattressInfo.mattresscode + ")";
  118. // return;
  119. //}
  120. mattressInfo.xd_flag = 0;
  121. mattressInfo.xd_auditingrep = "";
  122. mattressInfo.xd_auditingdate = null;
  123. if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
  124. {
  125. throw new LJCommonException("因网络或其它原因,【业务下单/取消】操作失败!");
  126. }
  127. //UpdateChildState(cmd, mattressInfo, "xd_flag", 0);
  128. }
  129. }
  130. }
  131. else if (request.flag != null)
  132. {
  133. // 审核
  134. var power73 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 73);
  135. if (!power73 && request.flag == 1)
  136. {
  137. throw new LJCommonException("你没有审核权限");
  138. }
  139. var power74 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 74);
  140. if (!power74 && request.flag == 0)
  141. {
  142. throw new LJCommonException("你没有取消审核权限");
  143. }
  144. var updateField = "flag, auditingrep, auditingdate";
  145. foreach (var item in mattressDic)
  146. {
  147. var mattressInfo = item.Value;
  148. if (request.flag == 1)
  149. {
  150. if (mattressInfo.flag == 1)
  151. {
  152. rslt.ErrMsg = "床报价已完成审核(" + mattressInfo.mattresscode + ")";
  153. return;
  154. }
  155. mattressInfo.flag = 1;
  156. mattressInfo.auditingrep = tokendata.username;
  157. mattressInfo.auditingdate = DateTime.Now;
  158. if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
  159. {
  160. throw new LJCommonException("因网络或其它原因,【审核消】操作失败!");
  161. }
  162. //UpdateChildState(cmd, mattressInfo, "flag", 1);
  163. }
  164. else
  165. {
  166. if (mattressInfo.flag == 0)
  167. {
  168. rslt.ErrMsg = "床报价已完成撤销审核!(" + mattressInfo.mattresscode + ")";
  169. return;
  170. }
  171. mattressInfo.flag = 0;
  172. mattressInfo.auditingrep = "";
  173. mattressInfo.auditingdate = null;
  174. if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
  175. {
  176. throw new LJCommonException("因网络或其它原因,【撤销审核】操作失败!");
  177. }
  178. //UpdateChildState(cmd, mattressInfo, "flag", 0);
  179. }
  180. }
  181. }
  182. cmd.Transaction.Commit();
  183. }
  184. catch (Exception e)
  185. {
  186. cmd.Transaction.Rollback();
  187. rslt.ErrMsg = e.ToString();
  188. }
  189. }
  190. }
  191. }
  192. public void UpdateChildState(SqlCommand cmd, u_mattress mattress, string fieldStr, int value)
  193. {
  194. var updateStr = "";
  195. var rep = "";
  196. DateTime? date = null;
  197. if (fieldStr == "xd_flag")
  198. {
  199. if (mattress.auditingdate.HasValue)
  200. {
  201. updateStr = @"
  202. xd_auditingrep = @rep,
  203. xd_auditingdate = @date
  204. ";
  205. rep = mattress.xd_auditingrep;
  206. date = mattress.xd_auditingdate;
  207. }
  208. else
  209. {
  210. updateStr = @"
  211. xd_auditingrep = @rep,
  212. xd_auditingdate = null
  213. ";
  214. rep = mattress.xd_auditingrep;
  215. }
  216. } else
  217. {
  218. if (mattress.auditingdate.HasValue)
  219. {
  220. updateStr = @"
  221. auditingrep = @rep,
  222. auditingdate = @date
  223. ";
  224. rep = mattress.auditingrep;
  225. date = mattress.auditingdate;
  226. }
  227. else
  228. {
  229. updateStr = @"
  230. auditingrep = @rep,
  231. auditingdate = null
  232. ";
  233. rep = mattress.auditingrep;
  234. }
  235. }
  236. cmd.CommandText = @"UPDATE u_mattress
  237. SET " + fieldStr + @" = @value,
  238. " + updateStr + @"
  239. FROM u_mattress
  240. WHERE u_mattress.parentid = @mattressid";
  241. cmd.Parameters.Clear();
  242. cmd.Parameters.AddWithValue("@mattressid", mattress.mattressid);
  243. cmd.Parameters.AddWithValue("@value", value);
  244. cmd.Parameters.AddWithValue("@rep", rep);
  245. if (date.HasValue)
  246. {
  247. cmd.Parameters.AddWithValue("@date", date);
  248. }
  249. cmd.ExecuteNonQuery();
  250. }
  251. }
  252. }