123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- using System;
- using System.Collections.Generic;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Text;
- using JLHHJSvr.BLL;
- using JLHHJSvr.Com;
- using JLHHJSvr.Com.Model;
- using JLHHJSvr.LJException;
- using JLHHJSvr.Tools;
- using LJLib.DAL.SQL;
- using LJLib.Net.SPI.Server;
- namespace JLHHJSvr.Excutor
- {
- internal sealed class SaveMattressAuditingExcutor : ExcutorBase<SaveMattressAuditingRequest, SaveMattressAuditingResponse>
- {
- protected override void ExcuteInternal(SaveMattressAuditingRequest request, object state, SaveMattressAuditingResponse rslt)
- {
- var tokendata = BllHelper.GetToken(request.token);
- if (tokendata == null)
- {
- rslt.ErrMsg = "会话已经中断,请重新登录";
- return;
- }
- using (var con = new SqlConnection(GlobalVar.ConnectionString))
- using (var cmd = con.CreateCommand())
- {
- con.Open();
- // 初始化属性
- //AutoInit.AutoInitS(cmd, request.mattress);
- using (cmd.Transaction = con.BeginTransaction())
- {
- try
- {
- // 只处理主规格
- Dictionary<int, u_mattress> mattressDic = new Dictionary<int, u_mattress>();
- foreach (int itemid in request.mattressids)
- {
- var mattressInfo = new u_mattress() { mattressid = itemid };
- if (DbSqlHelper.SelectOne(cmd, mattressInfo, "flag, xd_flag, mattresscode, parentid") != 1)
- {
- rslt.ErrMsg = "查找报价单据失败:" + itemid;
- return;
- }
- if (mattressInfo.parentid > 0)
- {
- mattressInfo = new u_mattress() { mattressid = mattressInfo.parentid.Value };
- if (DbSqlHelper.SelectOne(cmd, mattressInfo, "flag, xd_flag, parentid") != 1)
- {
- rslt.ErrMsg = "查找报价单据失败:" + itemid;
- return;
- }
- }
- if (!mattressDic.ContainsKey(mattressInfo.mattressid))
- {
- mattressDic.Add(mattressInfo.mattressid, mattressInfo);
- }
- }
- if (request.xd_flag != null)
- {
- // 业务下单/取消
- var power94 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 94);
- if (!power94 && request.xd_flag == 1)
- {
- throw new LJCommonException("你没有业务下单权限");
- }
- var power95 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 95);
- if (!power95 && request.xd_flag == 0)
- {
- throw new LJCommonException("你没有取消业务下单权限");
- }
- var updateField = "xd_flag, xd_auditingrep, xd_auditingdate";
- foreach (var item in mattressDic)
- {
- var mattressInfo = item.Value;
- if (request.xd_flag == 1)
- {
- if (mattressInfo.flag == 1)
- {
- rslt.ErrMsg = "床垫已审核,不能业务下单!(" + mattressInfo.mattresscode + ")";
- return;
- }
- if (mattressInfo.xd_flag == 1)
- {
- rslt.ErrMsg = "床垫已完成业务下单(" + mattressInfo.mattresscode + ")";
- return;
- }
- mattressInfo.xd_flag = 1;
- mattressInfo.xd_auditingrep = tokendata.username;
- mattressInfo.xd_auditingdate = DateTime.Now;
- if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
- {
- throw new LJCommonException("因网络或其它原因,【业务下单/取消】操作失败!");
- }
- UpdateChildState(cmd, mattressInfo, "xd_flag", 1);
- }
- else
- {
- if (mattressInfo.js1_flag == 1)
- {
- rslt.ErrMsg = "已产品补充审核,不能取消下单!(" + mattressInfo.mattresscode + ")";
- return;
- }
- if (mattressInfo.xd_flag == 0)
- {
- rslt.ErrMsg = "未进行业务下单,不能取消下单!(" + mattressInfo.mattresscode + ")";
- return;
- }
- mattressInfo.xd_flag = 0;
- mattressInfo.xd_auditingrep = "";
- mattressInfo.xd_auditingdate = null;
- if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
- {
- throw new LJCommonException("因网络或其它原因,【业务下单/取消】操作失败!");
- }
- UpdateChildState(cmd, mattressInfo, "xd_flag", 0);
- }
- }
- }
- else if (request.flag != null)
- {
- // 审核
- var power73 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 73);
- if (!power73 && request.flag == 1)
- {
- throw new LJCommonException("你没有审核权限");
- }
- var power74 = UserHelper.CheckFuncPower(cmd, tokendata.empid, 74);
- if (!power74 && request.flag == 0)
- {
- throw new LJCommonException("你没有取消审核权限");
- }
- var updateField = "flag, auditingrep, auditingdate";
- foreach (var item in mattressDic)
- {
- var mattressInfo = item.Value;
- if (request.flag == 1)
- {
- if (mattressInfo.flag == 1)
- {
- rslt.ErrMsg = "床报价已完成审核(" + mattressInfo.mattresscode + ")";
- return;
- }
- mattressInfo.flag = 1;
- mattressInfo.auditingrep = tokendata.username;
- mattressInfo.auditingdate = DateTime.Now;
- if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
- {
- throw new LJCommonException("因网络或其它原因,【审核消】操作失败!");
- }
- UpdateChildState(cmd, mattressInfo, "flag", 1);
- }
- else
- {
- if (mattressInfo.flag == 0)
- {
- rslt.ErrMsg = "床报价已完成撤销审核!(" + mattressInfo.mattresscode + ")";
- return;
- }
- mattressInfo.flag = 0;
- mattressInfo.auditingrep = "";
- mattressInfo.auditingdate = null;
- if (DbSqlHelper.Update(cmd, "u_mattress", null, mattressInfo, "mattressid", updateField) <= 0)
- {
- throw new LJCommonException("因网络或其它原因,【撤销审核】操作失败!");
- }
- UpdateChildState(cmd, mattressInfo, "flag", 0);
- }
- }
- }
- cmd.Transaction.Commit();
- }
- catch (Exception e)
- {
- cmd.Transaction.Rollback();
- rslt.ErrMsg = e.ToString();
- }
- }
- }
- }
- public void UpdateChildState(SqlCommand cmd, u_mattress mattress, string fieldStr, int value)
- {
- var updateStr = "";
- var rep = "";
- DateTime? date = null;
- if (fieldStr == "xd_flag")
- {
- if (mattress.auditingdate.HasValue)
- {
- updateStr = @"
- xd_auditingrep = @rep,
- xd_auditingdate = @date
- ";
- rep = mattress.xd_auditingrep;
- date = mattress.xd_auditingdate;
- }
- else
- {
- updateStr = @"
- xd_auditingrep = @rep,
- xd_auditingdate = null
- ";
- rep = mattress.xd_auditingrep;
- }
- } else
- {
- if (mattress.auditingdate.HasValue)
- {
- updateStr = @"
- auditingrep = @rep,
- auditingdate = @date
- ";
- rep = mattress.auditingrep;
- date = mattress.auditingdate;
- }
- else
- {
- updateStr = @"
- auditingrep = @rep,
- auditingdate = null
- ";
- rep = mattress.auditingrep;
- }
- }
- cmd.CommandText = @"UPDATE u_mattress
- SET " + fieldStr + @" = @value,
- " + updateStr + @"
- FROM u_mattress
- WHERE u_mattress.parentid = @mattressid";
- cmd.Parameters.Clear();
- cmd.Parameters.AddWithValue("@mattressid", mattress.mattressid);
- cmd.Parameters.AddWithValue("@value", value);
- cmd.Parameters.AddWithValue("@rep", rep);
- if (date.HasValue)
- {
- cmd.Parameters.AddWithValue("@date", date);
- }
- cmd.ExecuteNonQuery();
- }
- }
- }
|