From c063ecbd8e498d88dd2be38ced8707baa39bf851 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期四, 29 七月 2021 14:14:43 +0800
Subject: [PATCH] 今日开发 工作建议 其他请示  处罚申诉

---
 zhengcaioa/Services/AskService.cs                                      |    1 
 zhengcaioa/DTO/AdmAskMarketingCostDTO.cs                               |    1 
 zhengcaioa/Services/WfRunProcessService.cs                             |  349 +++++++++++++++++++++
 zhengcaioa/zhengcaioa/Controllers/admin/AdmAskController.cs            |  130 +++++++
 zhengcaioa/DTO/AdmBreakPrecedentDTO.cs                                 |    1 
 zhengcaioa/IServices/IWfRunProcessService.cs                           |    2 
 zhengcaioa/zhengcaioa/Controllers/admin/AdmBreakPrecedentController.cs |   20 +
 zhengcaioa/zhengcaioa/Views/AdmAsk/AskPunishAppeal.cshtml              |  401 +++++++++++++++++++++++++
 zhengcaioa/Model/AdmAskMarketingCost.cs                                |    1 
 zhengcaioa/Model/zhengcaioaContext.cs                                  |    4 
 表修改.sql                                                                |   15 
 11 files changed, 922 insertions(+), 3 deletions(-)

diff --git a/zhengcaioa/DTO/AdmAskMarketingCostDTO.cs b/zhengcaioa/DTO/AdmAskMarketingCostDTO.cs
index 7807707..0fbc911 100644
--- a/zhengcaioa/DTO/AdmAskMarketingCostDTO.cs
+++ b/zhengcaioa/DTO/AdmAskMarketingCostDTO.cs
@@ -22,5 +22,6 @@
         public string Tongguojujue { get; set; }
         public string Step { get; set; }
         public string ToUserId { get; set; }
+        public string BreakPrecedentId { get; set; }
     }
 }
diff --git a/zhengcaioa/DTO/AdmBreakPrecedentDTO.cs b/zhengcaioa/DTO/AdmBreakPrecedentDTO.cs
index 7590214..b93d761 100644
--- a/zhengcaioa/DTO/AdmBreakPrecedentDTO.cs
+++ b/zhengcaioa/DTO/AdmBreakPrecedentDTO.cs
@@ -16,6 +16,7 @@
         public string BreakPrecedent { get; set; }
         public string BreakThing { get; set; }
         public decimal? Chufajine { get; set; }
+        public string ChufajineName { get; set; }
         public string QianfaUserId { get; set; }
         public string QianfaUserName { get; set; }
         public string RecStatus { get; set; }
diff --git a/zhengcaioa/IServices/IWfRunProcessService.cs b/zhengcaioa/IServices/IWfRunProcessService.cs
index db5441c..8dbe3e9 100644
--- a/zhengcaioa/IServices/IWfRunProcessService.cs
+++ b/zhengcaioa/IServices/IWfRunProcessService.cs
@@ -36,5 +36,7 @@
         ResultEntity WfAskSuggestion(string DanjuId, string step, string tongguojujue, string Userid, string Content, string title, string version);
 
         ResultEntity WfAskOther(string DanjuId, string step, string tongguojujue, string Userid, string Content, string title, string version);
+
+        ResultEntity WfAskPunishAppeal(string DanjuId, string step, string tongguojujue, string Userid, string Content, string title, string version);
     }
 }
diff --git a/zhengcaioa/Model/AdmAskMarketingCost.cs b/zhengcaioa/Model/AdmAskMarketingCost.cs
index f47fe4f..7b8bc7c 100644
--- a/zhengcaioa/Model/AdmAskMarketingCost.cs
+++ b/zhengcaioa/Model/AdmAskMarketingCost.cs
@@ -19,5 +19,6 @@
         public string CreaterName { get; set; }
         public string Tittle { get; set; }
         public string ToUserId { get; set; }
+        public string BreakPrecedentId { get; set; }
     }
 }
diff --git a/zhengcaioa/Model/zhengcaioaContext.cs b/zhengcaioa/Model/zhengcaioaContext.cs
index 5b551f4..39f2cf5 100644
--- a/zhengcaioa/Model/zhengcaioaContext.cs
+++ b/zhengcaioa/Model/zhengcaioaContext.cs
@@ -488,6 +488,10 @@
 
                 entity.Property(e => e.Id).HasMaxLength(50);
 
+                entity.Property(e => e.BreakPrecedentId)
+                    .HasMaxLength(50)
+                    .HasColumnName("break_precedentId");
+
                 entity.Property(e => e.Creater)
                     .IsRequired()
                     .HasMaxLength(50)
diff --git a/zhengcaioa/Services/AskService.cs b/zhengcaioa/Services/AskService.cs
index cde172e..2e45284 100644
--- a/zhengcaioa/Services/AskService.cs
+++ b/zhengcaioa/Services/AskService.cs
@@ -282,6 +282,7 @@
                     entity.Feiyong = admAsk.Feiyong;
                     entity.Remark = admAsk.Remark;
                     entity.ToUserId = admAsk.ToUserId;
+                    entity.BreakPrecedentId = admAsk.BreakPrecedentId;
 
                     entity.ShenpiStatus = admAsk.ShenpiStatus;
                     entity.CreaterName = admAsk.CreaterName;
diff --git a/zhengcaioa/Services/WfRunProcessService.cs b/zhengcaioa/Services/WfRunProcessService.cs
index c8e2598..b99eece 100644
--- a/zhengcaioa/Services/WfRunProcessService.cs
+++ b/zhengcaioa/Services/WfRunProcessService.cs
@@ -4971,5 +4971,354 @@
             return result;
         }
 
+        public ResultEntity WfAskPunishAppeal(string DanjuId, string step, string tongguojujue, string Userid, string Content, string title, string version)
+        {
+
+            ResultEntity result = new ResultEntity();
+            result.Result = true;
+
+
+            WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "09").FirstOrDefault();
+            if (wfRunProcessDTO != null)
+            {
+                version = wfRunProcessDTO.Version;
+            }
+
+
+            if (version == "v1")
+            {
+                if (step == "鎻愪氦")
+                {
+                    //鏇存柊娴佺▼瀹炰緥
+                    // WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "09").FirstOrDefault();
+                    if (wfRunProcessDTO == null)
+                    {
+                        //鎻掑叆娴佺▼瀹炰緥
+                        wfRunProcessDTO = new WfRunProcessDTO();
+                        //wfRunProcessDTO.Applyno = 
+                        wfRunProcessDTO.Applytime = DateTime.Now;
+                        wfRunProcessDTO.Applytiye = "09";
+                        wfRunProcessDTO.DanjuId = DanjuId;
+                        wfRunProcessDTO.Content = title;
+                        wfRunProcessDTO.Step = "澶勭綒绛惧彂浜�";
+                        wfRunProcessDTO.ShenpiStatus = "D";
+                        wfRunProcessDTO.Version = version;
+                        wfRunProcessDTO.RecStatus = "A";
+                        wfRunProcessDTO.Creater = Userid;
+                        wfRunProcessDTO.Createtime = DateTime.Now;
+                        wfRunProcessDTO.Modifier = Userid;
+                        wfRunProcessDTO.Modifytime = DateTime.Now;
+                        wfRunProcessDTO.Deelurl = "/AdmAsk/AskPunishAppeal?id=" + DanjuId;
+                        result = this.save(wfRunProcessDTO);
+                        if (result.Result == false)
+                        {
+                            return result;
+                        }
+                        //鏌ヨ澶勭悊浜�
+                        var danju = _context.AdmAskMarketingCosts.Where(x => x.RecStatus == "A" && x.Id == DanjuId).FirstOrDefault();
+                        if (danju == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒板崟鎹�";
+                            return result;
+                        }
+                        //var pltUsers = (from a in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A")
+                        //                join b in _context.PltUserRoles.Where(x => x.RecStatus == "A" && x.RoleId == hrPositions.Id) on a.Id equals b.UserId
+                        //                select a
+                        //                ).ToList();
+                        var admBreakPrecedent = _context.AdmBreakPrecedents.Where(x => x.RecStatus == "A" && x.Id == danju.BreakPrecedentId).FirstOrDefault();
+                        if (admBreakPrecedent == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒板缃氬喅瀹�";
+                            return result;
+                        }
+                        else
+                        {
+                            //鎻掑叆寰呭姙
+                            WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO();
+                            wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id;
+                            wfNeeddeelDTO.SendUserId = Userid;
+                            wfNeeddeelDTO.DeelUserId = admBreakPrecedent.QianfaUserId;
+                            wfNeeddeelDTO.Sendtime = DateTime.Now;
+                            wfNeeddeelDTO.Resivetime = DateTime.Now;
+                            wfNeeddeelDTO.Step = "澶勭綒绛惧彂浜�";
+                            wfNeeddeelDTO.NeeddeelType = "1";
+                            wfNeeddeelDTO.ChuliStatus = "0";
+                            wfNeeddeelDTO.Deelurl = "/AdmAsk/AskPunishAppeal?id=" + DanjuId;
+                            wfNeeddeelDTO.Content = "";
+                            wfNeeddeelDTO.Sort = 1;
+                            wfNeeddeelDTO.RecStatus = "A";
+                            wfNeeddeelDTO.Creater = Userid;
+                            wfNeeddeelDTO.Createtime = DateTime.Now;
+                            wfNeeddeelDTO.Modifier = Userid;
+                            wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime;
+                            result = _wfNeeddeelService.save(wfNeeddeelDTO);
+                            if (result.Result == false)
+                            {
+                                return result;
+                            }
+                        }
+
+                        //鎻掑叆鏂扮殑宸插姙
+                        WfHistory wfHistoryDTO1 = new WfHistory();
+                        wfHistoryDTO1.Id = Guid.NewGuid().ToString();
+                        wfHistoryDTO1.RunProcessId = wfRunProcessDTO.Id;
+                        wfHistoryDTO1.SendUserId = Userid;
+                        wfHistoryDTO1.DeelUserId = wfRunProcessDTO.Creater;
+                        wfHistoryDTO1.Sendtime = DateTime.Now;
+                        wfHistoryDTO1.Resivetime = DateTime.Now;
+                        wfHistoryDTO1.Step = "鎻愪氦";
+                        wfHistoryDTO1.NeeddeelType = "1";
+                        wfHistoryDTO1.ChuliStatus = "2";
+                        wfHistoryDTO1.Deelurl = "/AdmAsk/AskPunishAppeal?id=" + DanjuId;
+                        wfHistoryDTO1.Content = "";
+                        wfHistoryDTO1.Sort = 1;
+                        wfHistoryDTO1.RecStatus = "A";
+                        wfHistoryDTO1.Creater = Userid;
+                        wfHistoryDTO1.Createtime = DateTime.Now;
+                        wfHistoryDTO1.Modifier = Userid;
+                        wfHistoryDTO1.Modifytime = wfHistoryDTO1.Createtime;
+                        _context.WfHistories.Add(wfHistoryDTO1);
+                        _context.SaveChanges();
+                    }
+                    else
+                    {
+                        wfRunProcessDTO.Step = "澶勭綒绛惧彂浜�";
+                        wfRunProcessDTO.Modifier = Userid;
+                        wfRunProcessDTO.Modifytime = DateTime.Now;
+                        result = this.save(wfRunProcessDTO);
+                        if (result.Result == false)
+                        {
+                            return result;
+                        }
+
+                        //鏇存柊寰呭姙
+                        List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "鎻愪氦");
+                        var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs);
+
+                        var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault();
+                        if (wfHistoryDTO == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒颁唬鍔�";
+                            return result;
+                        }
+                        wfHistoryDTO.Content = Content;
+                        wfHistoryDTO.ChuliStatus = "2";
+                        wfHistoryDTO.Modifier = Userid;
+                        wfHistoryDTO.Modifytime = DateTime.Now;
+                        var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs);
+                        foreach (var wfHistory in wfHistories)
+                        {
+                            _context.WfHistories.Add(wfHistory);
+                        }
+                        var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs);
+                        foreach (var wfNeeddeel in wfNeeddeels)
+                        {
+                            //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid);
+                            _context.WfNeeddeels.Remove(wfNeeddeel);
+                        }
+                        _context.SaveChanges();
+
+                        //鏌ヨ澶勭悊浜�
+                        //鏌ヨ澶勭悊浜�
+                        var danju = _context.AdmAskMarketingCosts.Where(x => x.RecStatus == "A" && x.Id == DanjuId).FirstOrDefault();
+                        if (danju == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒板崟鎹�";
+                            return result;
+                        }
+                        //var pltUsers = (from a in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A")
+                        //                join b in _context.PltUserRoles.Where(x => x.RecStatus == "A" && x.RoleId == hrPositions.Id) on a.Id equals b.UserId
+                        //                select a
+                        //                ).ToList();
+                        var admBreakPrecedent = _context.AdmBreakPrecedents.Where(x => x.RecStatus == "A" && x.Id == danju.BreakPrecedentId).FirstOrDefault();
+                        if (admBreakPrecedent == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒板缃氬喅瀹�";
+                            return result;
+                        }
+                        else
+                        {
+                            //鎻掑叆鏂扮殑寰呭姙
+                            WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO();
+                            wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id;
+                            wfNeeddeelDTO.SendUserId = Userid;
+                            wfNeeddeelDTO.DeelUserId = admBreakPrecedent.QianfaUserId;
+                            wfNeeddeelDTO.Sendtime = DateTime.Now;
+                            wfNeeddeelDTO.Resivetime = DateTime.Now;
+                            wfNeeddeelDTO.Step = "澶勭綒绛惧彂浜�";
+                            wfNeeddeelDTO.NeeddeelType = "1";
+                            wfNeeddeelDTO.ChuliStatus = "0";
+                            wfNeeddeelDTO.Deelurl = "/AdmAsk/AskPunishAppeal?id=" + DanjuId;
+                            wfNeeddeelDTO.Content = "";
+                            wfNeeddeelDTO.Sort = 2;
+                            wfNeeddeelDTO.RecStatus = "A";
+                            wfNeeddeelDTO.Creater = Userid;
+                            wfNeeddeelDTO.Createtime = DateTime.Now;
+                            wfNeeddeelDTO.Modifier = Userid;
+                            wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime;
+                            result = _wfNeeddeelService.save(wfNeeddeelDTO);
+                            if (result.Result == false)
+                            {
+                                return result;
+                            }
+                        }
+                    }
+
+
+
+
+                }
+
+
+                if (step == "澶勭綒绛惧彂浜�")
+                {
+                    //鏇存柊娴佺▼瀹炰緥
+                    //WfRunProcessDTO wfRunProcessDTO = this.GetList(DanjuId, "09").FirstOrDefault();
+                    if (wfRunProcessDTO == null)
+                    {
+                        result.Result = false;
+                        result.Message = "鏈壘鍒版祦绋嬪疄渚�";
+                        return result;
+                    }
+                    if (wfRunProcessDTO.Step != "澶勭綒绛惧彂浜�")
+                    {
+                        result.Result = false;
+                        result.Message = "褰撳墠姝ラ宸茬粡澶勭悊";
+                        return result;
+                    }
+                    if (tongguojujue == "A")
+                    {
+
+                        wfRunProcessDTO.Step = "瀹岀粨";
+                        wfRunProcessDTO.ShenpiStatus = "A";
+                        wfRunProcessDTO.Modifier = Userid;
+                        wfRunProcessDTO.Modifytime = DateTime.Now;
+                        result = this.save(wfRunProcessDTO);
+                        if (result.Result == false)
+                        {
+                            return result;
+                        }
+                        //鏇存柊鍗曟嵁
+                        var admAskMarketingCost = _context.AdmAskMarketingCosts.Find(DanjuId);
+                        if (wfRunProcessDTO == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒板崟鎹�";
+                            return result;
+                        }
+                        admAskMarketingCost.ShenpiStatus = "A";
+                        _context.SaveChanges();
+
+                        List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "澶勭綒绛惧彂浜�");
+
+                        var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs);
+
+                        var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault();
+                        if (wfHistoryDTO == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒颁唬鍔�";
+                            return result;
+                        }
+                        wfHistoryDTO.Content = Content;
+                        wfHistoryDTO.ChuliStatus = "2";
+                        wfHistoryDTO.Modifier = Userid;
+                        wfHistoryDTO.Modifytime = DateTime.Now;
+                        var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs);
+                        foreach (var wfHistory in wfHistories)
+                        {
+                            _context.WfHistories.Add(wfHistory);
+                        }
+                        var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs);
+                        foreach (var wfNeeddeel in wfNeeddeels)
+                        {
+                            // _wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid);
+                            _context.WfNeeddeels.Remove(wfNeeddeel);
+                        }
+                        _context.SaveChanges();
+                    }
+                    else
+                    {
+                        wfRunProcessDTO.Step = "鎻愪氦";
+                        wfRunProcessDTO.Modifier = Userid;
+                        wfRunProcessDTO.Modifytime = DateTime.Now;
+                        result = this.save(wfRunProcessDTO);
+                        if (result.Result == false)
+                        {
+                            return result;
+                        }
+
+                        //鏇存柊寰呭姙
+                        List<WfNeeddeelDTO> wfNeeddeelDTOs = _wfNeeddeelService.GetList(wfRunProcessDTO.Id, "澶勭綒绛惧彂浜�");
+                        var wfHistoryDTOs = _mapper.Map<List<WfHistoryDTO>>(wfNeeddeelDTOs);
+
+                        var wfHistoryDTO = wfHistoryDTOs.Where(x => x.DeelUserId == Userid).FirstOrDefault();
+                        if (wfHistoryDTO == null)
+                        {
+                            result.Result = false;
+                            result.Message = "鏈壘鍒颁唬鍔�";
+                            return result;
+                        }
+                        wfHistoryDTO.Content = Content;
+                        wfHistoryDTO.ChuliStatus = "1";
+                        wfHistoryDTO.Modifier = Userid;
+                        wfHistoryDTO.Modifytime = DateTime.Now;
+                        var wfHistories = _mapper.Map<List<WfHistory>>(wfHistoryDTOs);
+                        foreach (var wfHistory in wfHistories)
+                        {
+                            _context.WfHistories.Add(wfHistory);
+                        }
+                        var wfNeeddeels = _mapper.Map<List<WfNeeddeel>>(wfNeeddeelDTOs);
+                        foreach (var wfNeeddeel in wfNeeddeels)
+                        {
+                            //_wfNeeddeelService.ModifyStatus(wfNeeddeel.Id, Userid);
+                            _context.WfNeeddeels.Remove(wfNeeddeel);
+                        }
+                        _context.SaveChanges();
+
+
+                        //鎻掑叆鏂扮殑寰呭姙
+                        WfNeeddeelDTO wfNeeddeelDTO = new WfNeeddeelDTO();
+                        wfNeeddeelDTO.RunProcessId = wfRunProcessDTO.Id;
+                        wfNeeddeelDTO.SendUserId = Userid;
+                        wfNeeddeelDTO.DeelUserId = wfRunProcessDTO.Creater;
+                        wfNeeddeelDTO.Sendtime = DateTime.Now;
+                        wfNeeddeelDTO.Resivetime = DateTime.Now;
+                        wfNeeddeelDTO.Step = "鎻愪氦";
+                        wfNeeddeelDTO.NeeddeelType = "1";
+                        wfNeeddeelDTO.ChuliStatus = "0";
+                        wfNeeddeelDTO.Deelurl = "/AdmAsk/AskPunishAppeal?id=" + DanjuId;
+                        wfNeeddeelDTO.Content = "";
+                        wfNeeddeelDTO.Sort = 1;
+                        wfNeeddeelDTO.RecStatus = "A";
+                        wfNeeddeelDTO.Creater = Userid;
+                        wfNeeddeelDTO.Createtime = DateTime.Now;
+                        wfNeeddeelDTO.Modifier = Userid;
+                        wfNeeddeelDTO.Modifytime = wfNeeddeelDTO.Createtime;
+                        result = _wfNeeddeelService.save(wfNeeddeelDTO);
+                        if (result.Result == false)
+                        {
+                            return result;
+                        }
+
+                    }
+
+
+
+                }
+
+
+            }
+
+
+
+            return result;
+        }
+
     }
 }
diff --git a/zhengcaioa/zhengcaioa/Controllers/admin/AdmAskController.cs b/zhengcaioa/zhengcaioa/Controllers/admin/AdmAskController.cs
index 419d05e..60ca79c 100644
--- a/zhengcaioa/zhengcaioa/Controllers/admin/AdmAskController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/admin/AdmAskController.cs
@@ -26,12 +26,14 @@
         private readonly IAdmGoodsManageService _admGoodsManageService;
         private readonly ILiaotianService _liaotianService;
         private readonly IUserService _userService;
+        private readonly IAdmBreakPrecedentService _aAdmBreakPrecedentService;
 
         public AdmAskController(ILogger<AdmAskController> logger, IAskService askService, IHrDeptService hrDeptService, IWfRunProcessService wfRunProcessService
             , IWfHistoryService wfHistoryService, IWfNeeddeelService wfNeeddeelService
             , IAdmGoodsManageService admGoodsManageService
             , ILiaotianService liaotianService
-            , IUserService userService)
+            , IUserService userService
+            , IAdmBreakPrecedentService aAdmBreakPrecedentService)
         {
             _logger = logger;
             _hrDeptService = hrDeptService;
@@ -42,6 +44,7 @@
             _admGoodsManageService = admGoodsManageService;
             _liaotianService = liaotianService;
             _userService = userService;
+            _aAdmBreakPrecedentService = aAdmBreakPrecedentService;
         }
 
         public IActionResult Askcost(string id = "")
@@ -689,7 +692,7 @@
 
 
         /// <summary>
-        /// 淇濆瓨鐢ㄨ溅鐢宠
+        /// 淇濆瓨宸ヤ綔寤鸿
         /// </summary>
         /// <param name="data"></param>
         /// <returns></returns>
@@ -801,7 +804,7 @@
 
 
         /// <summary>
-        /// 淇濆瓨閿�鍞垂鐢ㄧ敵璇�
+        /// 淇濆瓨鍏朵粬璇风ず
         /// </summary>
         /// <param name="data"></param>
         /// <returns></returns>
@@ -842,5 +845,126 @@
             }
             return new JsonResult(resultEntity);
         }
+
+
+        public IActionResult AskPunishAppeal(string id = "")
+        {
+            AdmAskMarketingCostDTO dto = new AdmAskMarketingCostDTO();
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+
+
+            //娴佺▼鐩稿叧
+            string shifoubiaoji = "A";
+            string sifoudangqian = "A";
+            string dangqianbuzhou = "鎻愪氦";
+            var lishiyijian = new List<WfHistoryDTO>();
+
+            if (string.IsNullOrEmpty(id))
+            {
+                dto.CreaterName = curentuser.UserName;
+                dto.Tittle = "澶勭綒鐢宠瘔锛�" + curentuser.UserName + "锛�";
+            }
+            else if (dto != null)
+            {
+                dto = _askService.GetAskMarketingCost(id);
+                //dto.FeiyongName = dto.Feiyong.Value.ToString("F2");
+
+                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "09").FirstOrDefault();
+                if (wfRunProcessDTO == null)
+                {
+                    shifoubiaoji = "D";
+                    sifoudangqian = "D";
+                }
+                else
+                {
+                    dangqianbuzhou = wfRunProcessDTO.Step;
+                    //鏌ヨ瀹℃壒杩涘害
+                    lishiyijian = _wfHistoryService.GetListshenpi(wfRunProcessDTO.Id);
+                    if (wfRunProcessDTO.Step != "鎻愪氦")
+                    {
+                        shifoubiaoji = "D";
+                    }
+
+                    //鏌ヨ寰呭姙
+                    var chaxundaiban = _wfNeeddeelService.GetListTracking(wfRunProcessDTO.Id, wfRunProcessDTO.Step).Where(x => x.DeelUserId == curentuser.Id).ToList();
+                    if (chaxundaiban != null && chaxundaiban.Count > 0)
+                    {
+                        sifoudangqian = "A";
+                    }
+                    else
+                    {
+                        sifoudangqian = "D";
+                    }
+
+                }
+
+
+
+
+            }
+
+            ViewBag.shifoubiaoji = shifoubiaoji;
+            ViewBag.sifoudangqian = sifoudangqian;
+            ViewBag.lishiyijian = lishiyijian;
+            ViewBag.dangqianbuzhou = dangqianbuzhou;
+            if (string.IsNullOrEmpty(id))
+            {
+                ViewBag.AdmBreakPrecedentDTOs = _aAdmBreakPrecedentService.GetList(curentuser.Id, DateTime.Now.Date.AddYears(-20), DateTime.Now.Date.AddDays(1)).ToList();
+            }
+            else
+            {
+                ViewBag.AdmBreakPrecedentDTOs = _aAdmBreakPrecedentService.GetList(dto.Creater, DateTime.Now.Date.AddYears(-20), DateTime.Now.Date.AddDays(1)).ToList();
+            }
+               
+            
+
+
+            ViewData.Model = dto;
+            return View();
+        }
+
+
+        /// <summary>
+        /// 淇濆瓨澶勭綒鐢宠瘔
+        /// </summary>
+        /// <param name="data"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult SaveAskPunishAppeal(AdmAskMarketingCostDTO data)
+        {
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+            ResultEntity resultEntity = new ResultEntity();
+            using (TransactionScope scope = new TransactionScope())
+            {
+                if (data.Step == "鎻愪氦")
+                {
+
+                    data.ShenpiStatus = "D";
+                    data.RecStatus = "A";
+                    data.Creater = curentuser.Id;
+                    data.Createtime = DateTime.Now;
+                    data.Modifier = data.Creater;
+                    data.Modifytime = data.Createtime;
+
+                    resultEntity = _askService.SaveAskMarketingCost(data);
+                    if (!resultEntity.Result)
+                    {
+                        return new JsonResult(resultEntity);
+                    }
+                }
+
+
+
+                //鍙戣捣娴佺▼鐩稿叧
+
+                resultEntity = _wfRunProcessService.WfAskPunishAppeal(data.Id, data.Step, data.Tongguojujue, curentuser.Id, data.Content, data.Tittle, "v1");
+                if (!resultEntity.Result)
+                {
+                    return new JsonResult(resultEntity);
+                }
+                scope.Complete();
+            }
+            return new JsonResult(resultEntity);
+        }
     }
 }
diff --git a/zhengcaioa/zhengcaioa/Controllers/admin/AdmBreakPrecedentController.cs b/zhengcaioa/zhengcaioa/Controllers/admin/AdmBreakPrecedentController.cs
index a9d96c0..c67cb86 100644
--- a/zhengcaioa/zhengcaioa/Controllers/admin/AdmBreakPrecedentController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/admin/AdmBreakPrecedentController.cs
@@ -153,5 +153,25 @@
             ViewData["curentuser"] = curentuser;
             return new JsonResult(_admBreakPrecedentService.ModifyStatus(Id, curentuser.Id));
         }
+
+
+
+        public IActionResult GetBreakPrecedent(string id)
+        {
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+            ViewData["curentuser"] = curentuser;
+            ResultEntity<AdmBreakPrecedentDTO> resultEntity = new ResultEntity<AdmBreakPrecedentDTO>();
+            resultEntity.Result = false;
+
+            AdmBreakPrecedentDTO dto  = _admBreakPrecedentService.Get(id);
+            dto.UserName = _userService.GetPltUserEntity(dto.UserId).UserName;
+            dto.QianfaUserName = _userService.GetPltUserEntity(dto.QianfaUserId).UserName;
+            dto.BreakTimeName = dto.BreakTime.ToString("yyyy-MM-dd");
+            dto.ChufajineName = dto.Chufajine.HasValue ? dto.Chufajine.Value.ToString("F2") : "";
+            resultEntity.Result = true;
+            resultEntity.DataInfo = dto;
+
+            return new JsonResult(resultEntity);
+        }
     }
 }
diff --git a/zhengcaioa/zhengcaioa/Views/AdmAsk/AskPunishAppeal.cshtml b/zhengcaioa/zhengcaioa/Views/AdmAsk/AskPunishAppeal.cshtml
new file mode 100644
index 0000000..25110f0
--- /dev/null
+++ b/zhengcaioa/zhengcaioa/Views/AdmAsk/AskPunishAppeal.cshtml
@@ -0,0 +1,401 @@
+锘緻model AdmAskMarketingCostDTO;
+@using DTO;
+@using zhengcaioa.Models;
+@{
+    Layout = null;
+
+    //娴佺▼鐩稿叧
+    string shifoubiaoji = ViewBag.shifoubiaoji as string;
+    string sifoudangqian = ViewBag.sifoudangqian as string;
+    string dangqianbuzhou = ViewBag.dangqianbuzhou as string;
+
+    List<WfHistoryDTO> lishiyijian = ViewData["lishiyijian"] as List<WfHistoryDTO>; //瀹℃壒杩涘害
+
+    List<AdmBreakPrecedentDTO> AdmBreakPrecedentDTOs = ViewData["AdmBreakPrecedentDTOs"] as List<AdmBreakPrecedentDTO>;
+}
+
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="ThemeBucket">
+    <link href="~/css/bootstrap.min.css" rel="stylesheet">
+    <link href="~/css/font-awesome.min.css" rel="stylesheet">
+    <link href="~/css/animate.min.css" rel="stylesheet">
+    <link href="~/css/style.min.css" rel="stylesheet">
+    <link href="~/css/plugins/chosen/chosen.css" rel="stylesheet">
+    <link href="~/js/plugins/layer/skin/layer.css" rel="stylesheet">
+    <link href="~/css/style.min.css" rel="stylesheet">
+    <link href="~/css/plugins/toastr/toastr.min.css" rel="stylesheet" />
+
+    <!-- jqgrid-->
+    <script language="javascript" src="~/js/jquery.min.js" type="text/javascript"></script>
+    <script src="~/js/bootstrap.min.js"></script>
+
+    <!--瀹瑰櫒-->
+    <script language="javascript" src="~/js/plugins/chosen/chosen.jquery.js" type="text/javascript"></script>
+    <script language="javascript" src="~/js/plugins/layer/layer.js" type="text/javascript"></script>
+    <script src="~/js/plugins/toastr/toastr.min.js" type="text/javascript"></script>
+    <script language="javascript" src="~/js/common-layout.js" type="text/javascript"></script>
+    <script src="~/js/plugins/layer/laydate/laydate.js" type="text/javascript"></script>
+    <script src="~/js/TUJS.js"></script>
+
+    <style type="text/css">
+
+        div.clearfix > label {
+            padding-top: 8px;
+        }
+
+        .col-md-1.control-label {
+            padding-right: 0px;
+            font-weight: 400;
+        }
+    </style>
+
+
+</head>
+
+<body class="gray-bg" style="overflow:auto">
+    <form id="fm" method="post">
+        <div class="wrapper wrapper-content" id="ibox-content" style="padding:15px;">
+            <div class="row">
+                <div class="col-sm-12">
+                    <div class="ibox float-e-margins">
+                        <div id="div_content" class="ibox-content" style="background-color:white;">
+                            <div class="row">
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">鍗曟嵁鍚嶇О<i class="red">*</i></label>
+                                    <div class="col-sm-2 col-md-2">
+                                        <input type="text" class="form-control" value="@Model.Tittle" name="tittle" id="tittle" validate="RequiredField" autocomplete="off" readonly="readonly">
+
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">鐢宠浜�<i class="red">*</i></label>
+                                    <div class="col-sm-2 col-md-2">
+                                        <input type="text" class="form-control" value="@Model.CreaterName" name="createrName" id="createrName" validate="RequiredField" autocomplete="off" readonly="readonly">
+
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">杩濈邯淇℃伅<i class="red">*</i></label>
+                                    <div class="col-sm-2 col-md-2">
+                                        <select id="BreakPrecedentId" class="form-control" name="BreakPrecedentId" data-placeholder="閫夋嫨 搴忓垪 ...">
+                                            <option value="" hassubinfo="true">璇烽�夋嫨</option>
+                                            @foreach (var item in AdmBreakPrecedentDTOs)
+                                            {
+                                                @if (!item.Id.Equals(Model.BreakPrecedentId))
+                                                {
+                                                    <option value="@item.Id" hassubinfo="true">
+                                                        @item.BreakThing
+                                                    </option>
+                                                }
+                                                else
+                                                {
+                                                    <option value="@item.Id" hassubinfo="true" selected="selected">
+                                                        @item.BreakThing
+                                                    </option>
+                                                }
+
+                                            }
+
+
+                                        </select>
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">澶勭綒鏃堕棿</label>
+                                    <div class="col-sm-2 col-md-2" id="BreakTimeName">
+                                      
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">鍛樺伐</label>
+                                    <div class="col-sm-2 col-md-2" id="UserName">
+                                       
+                                    </div>
+                                </div>
+
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">杩濆弽鍒跺害</label>
+                                    <div class="col-sm-6 col-md-6"  id="BreakPrecedent">
+                                        
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">杩濈邯浜嬬敱</label>
+                                    <div class="col-sm-6 col-md-6" id="BreakThing">
+                                        
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">澶勭綒閲戦(鍏�)</label>
+                                    <div class="col-sm-2 col-md-2" id="ChufajineName">
+                                       
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">澶勭綒绛惧彂</label>
+                                    <div class="col-sm-2 col-md-2" id="QianfaUserName">
+                                       
+                                    </div>
+                                </div>
+
+
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">鐢宠瘔鐞嗙敱<i class="red">*</i></label>
+                                    <div class="col-sm-6 col-md-6">
+                                        <textarea class="form-control bt" id="Remark" name="Remark" maxlength="500" length="long" style="resize:none;overflow-y:hidden; height:80px;">@Model.Remark</textarea>
+                                    </div>
+                                </div>
+
+
+
+
+
+
+                                <div class="clearfix layer-area" style="padding-bottom:15px;" id="shenpiyijian">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">瀹℃壒鎰忚</label>
+                                    <div class="col-sm-6 col-md-6">
+                                        <textarea class="form-control data" id="Content" name="Content" style="resize:none;overflow-y:hidden; height:80px;" maxlength="500"></textarea>
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                    <label class="text-right col-sm-1 col-md-1 control-label">瀹℃壒杩涘害</label>
+                                    <div class="col-sm-6 col-md-6">
+                                        <table>
+                                            @if (lishiyijian.Count > 0)
+                                            {
+                                                <tr>
+                                                    <td style="border:1px solid #ccc;width:150px;">姝ラ </td>
+                                                    <td style="border:1px solid #ccc;width:150px;"> 鎵瑰鐘舵��</td>
+                                                    <td style="border:1px solid #ccc;width:150px;">鎵瑰鏃堕棿</td>
+                                                    <td style="border:1px solid #ccc;width:300px;"> 瀹℃壒鎰忚</td>
+                                                    <td style="border:1px solid #ccc;width:100px;"> 鎵瑰浜�</td>
+                                                </tr>
+                                            }
+
+                                            @foreach (var wfHistory in lishiyijian)
+                                            {
+                                                <tr>
+                                                    <td style="border:1px solid #ccc;width:150px;">@wfHistory.Step</td>
+                                                    <td style="border:1px solid #ccc;width:150px;">@wfHistory.ChuliStatusName</td>
+                                                    <td style="border:1px solid #ccc;width:150px;">@wfHistory.ModifytimeName</td>
+                                                    <td style="border:1px solid #ccc;width:300px;">@wfHistory.Content</td>
+                                                    <td style="border:1px solid #ccc;width:100px;">@wfHistory.DeelUserIdName</td>
+                                                </tr>
+                                            }
+                                        </table>
+                                    </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:60px;">
+
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="ibox-content" id="top" style="z-index:100; position:fixed; height:50px; width:100%;bottom:0; text-align: right; padding-top:8px ">
+            <div class="" style="float:right;" data-bootstro-width="500px">
+                <a class="btn btn-success" href="javascript:void(0)" onclick="_pageAutoClose();" style="margin-left:4px; border-radius:4px;">
+                    <i class="glyphicon glyphicon-remove"></i>&nbsp;&nbsp;<span class="bold">鍙栨秷</span>
+                </a>
+                <a class="btn btn-success" id="tijiao" href="javascript:void(0)" onclick="saveSimCost('');" style="margin-left:4px; border-radius:4px;">
+                    <i class="glyphicon glyphicon-ok"></i>&nbsp;&nbsp;<span class="bold">鎻愪氦</span>
+                </a>
+
+                <a class="btn btn-success" id="tongyi" href="javascript:void(0)" onclick="saveSimCost('A');" style="margin-left:4px; border-radius:4px;">
+                    <span class="bold">鍚屾剰</span>
+                </a>
+
+                <a class="btn btn-success" id="jujue" href="javascript:void(0)" onclick="saveSimCost('D');" style="margin-left:4px; border-radius:4px;">
+                    <span class="bold">鎷掔粷</span>
+                </a>
+                <input type="hidden" id="id" name="id" value="@Model.Id" />
+                <input type="hidden" id="Tongguojujue" name="Tongguojujue" value="" />
+                <input type="hidden" id="Step" name="Step" value="@dangqianbuzhou" />
+            </div>
+        </div>
+
+    </form>
+
+    <script type="text/javascript">
+
+        var hh = document.body.clientHeight -  $("#top").height() * 2 - 50;
+        $("#div_content").height(hh);
+
+        toastr.options = {
+            "closeButton": true,
+            "debug": false,
+            "progressBar": true,
+            "positionClass": "toast-bottom-right",
+            "onclick": null,
+            "showDuration": "300",
+            "hideDuration": "600",
+            "timeOut": "4500",
+            "extendedTimeOut": "600",
+            "showEasing": "swing",
+            "hideEasing": "linear",
+            "showMethod": "fadeIn",
+            "hideMethod": "fadeOut"
+        };
+
+
+        $(function () {
+
+             if ("@shifoubiaoji" != "A") {
+                $("input").attr('readonly', true);
+                $("textarea").attr('readonly', true);
+                $(':radio').attr('disabled', true);
+                $(':checkbox').attr('disabled', true);
+                $(':button').attr('disabled', true);
+                //$('a').removeAttr('onclick');
+                 $('select').attr('disabled', true);
+                 $("#fileUp").attr('disabled', true);
+
+                 $('.fujianshanchu').removeAttr('onclick');
+
+
+                 if ("@sifoudangqian" == "A") {
+                     $("#Content").attr('readonly', false);
+                      $('#tijiao').hide();
+                 } else {
+                     $('#tongyi').hide();
+                      $('#jujue').hide();
+                     $('#tijiao').hide();
+                     $('#shenpiyijian').hide();
+                 }
+
+            } else {
+
+
+                  //瀹℃壒鐩稿叧
+                 $('#shenpiyijian').hide();
+                 if ("@sifoudangqian" == "A") {
+                     $('#tongyi').hide();
+                     $('#jujue').hide();
+                     $('#BreakPrecedentId').chosen();
+                 } else {
+                     $('#tongyi').hide();
+                      $('#jujue').hide();
+                      $('#tijiao').hide();
+                 }
+
+
+            }
+
+        })
+
+
+        // 淇濆瓨
+        function saveSimCost(tongyi) {
+
+
+            if ($.trim($("#BreakPrecedentId").val()) == '') {
+                toastr.warning("杩濈邯淇℃伅涓嶈兘涓虹┖");
+                return;
+            }
+            if ($.trim($("#Remark").val()) == '') {
+                toastr.warning("鐢宠瘔鐞嗙敱涓嶈兘涓虹┖");
+                return;
+            }
+
+            $("#Tongguojujue").val(tongyi);
+
+            $.ajax({
+                type: "POST",
+                url: "/AdmAsk/SaveAskPunishAppeal",
+                dataType: "json",
+                global: false,
+                data: $('#fm').serialize(),
+                success: function (data) {
+
+                        if (data.Result) {
+                            parent.layer.msg('鎻愪氦鎴愬姛', { icon: 6 });
+                            try {
+                                _pageAutoClose();//鑷姩鍏抽棴椤甸潰鏂规硶
+                            }
+                            catch (err) {
+                                var pathname = window.location.pathname;
+                                var search = window.location.search;
+                                parent._CloseTab1(pathname + search);
+                            }
+                        }
+                        else {
+                            parent.layer.msg(data.Message, { icon: 5 });
+                        }
+
+                },
+                error: function () {
+                    parent.layer.msg('澶辫触', { icon: 5 });
+                }
+            });
+        }
+
+
+
+
+        $("#BreakPrecedentId").change(function () {
+
+            var BreakPrecedentId = $("#BreakPrecedentId").val();
+            if (BreakPrecedentId != "") {
+                $.ajax({
+                    type: "GET",
+                    url: "/AdmBreakPrecedent/GetBreakPrecedent?id=" + BreakPrecedentId,
+                    dataType: "json",
+                    global: false,
+                    data: "",
+                    success: function (data) {
+                        if (data.Result) {
+                            var DataInfo = data.DataInfo;
+
+
+                            $("#BreakTimeName").html(DataInfo.BreakTimeName);
+                            $("#UserName").html(DataInfo.UserName);
+                            $("#BreakPrecedent").html(DataInfo.BreakPrecedent);
+                            $("#BreakThing").html(DataInfo.BreakThing);
+                            $("#ChufajineName").html(DataInfo.ChufajineName);
+                            $("#QianfaUserName").html(DataInfo.QianfaUserName);
+
+                        } else {
+                            parent.layer.msg('澶辫触', { icon: 5 });
+                        }
+
+
+                    },
+                    error: function () {
+
+
+                        parent.layer.msg('澶辫触', { icon: 5 });
+                    }
+                });
+            } else {
+                $("#BreakTimeName").html("");
+                $("#UserName").html("");
+                $("#BreakPrecedent").html("");
+                $("#BreakThing").html("");
+                $("#ChufajineName").html("");
+                $("#QianfaUserName").html("");
+            }
+           
+        });
+
+        $("#BreakPrecedentId").trigger("change");
+
+
+
+        function _pageAutoClose() {
+            parent.window._reloadPageData();
+            var index = parent.layer.getFrameIndex(window.name);
+            parent.layer.isRefresh = true;
+            parent.layer.closeAll('loading');
+            parent.layer.close(index);
+            return false;
+        }
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git "a/\350\241\250\344\277\256\346\224\271.sql" "b/\350\241\250\344\277\256\346\224\271.sql"
index 625f86c..82e0866 100644
--- "a/\350\241\250\344\277\256\346\224\271.sql"
+++ "b/\350\241\250\344\277\256\346\224\271.sql"
@@ -3,6 +3,21 @@
 GO
 
 
+ALTER TABLE [dbo].[ADM_AskMarketingCost] ADD  [break_precedentId] [nvarchar](50)  NULL;
+GO
+
+
+
+
+
+
+
+
+
+USE [zhengcaioa]
+GO
+
+
 ALTER TABLE [dbo].[ADM_AskMarketingCost] ADD  [ToUserId] [nvarchar](50)  NULL;
 GO
 

--
Gitblit v1.9.1