username@email.com
2023-02-28 67a0042c5f29e4bb0e0b82f6190f2bc51480b45c
zhengcaioa/zhengcaioa/Controllers/admin/AdmAskController.cs
@@ -2,11 +2,15 @@
using IServices;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.Transactions;
using zhengcaioa.IService;
@@ -27,13 +31,31 @@
        private readonly ILiaotianService _liaotianService;
        private readonly IUserService _userService;
        private readonly IAdmBreakPrecedentService _aAdmBreakPrecedentService;
        private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
        private readonly IIntentionCustomerService _intentionCustomerService;
        private readonly IHrPositionService _hrPositionService;
        private readonly IAdmGoodsRecordService _admGoodsRecordService;
        private readonly IFiSubjectService _ifiSubjectService;
        private readonly IFiAccountService _fiAccountService;
        private readonly IFiAccountRecordService _iFiAccountRecordService;
        private readonly IConfiguration _configuration;
        public AdmAskController(ILogger<AdmAskController> logger, IAskService askService, IHrDeptService hrDeptService, IWfRunProcessService wfRunProcessService
            , IWfHistoryService wfHistoryService, IWfNeeddeelService wfNeeddeelService
            , IAdmGoodsManageService admGoodsManageService
            , ILiaotianService liaotianService
            , IUserService userService
            , IAdmBreakPrecedentService aAdmBreakPrecedentService)
            , IAdmBreakPrecedentService aAdmBreakPrecedentService
            , ICooperatecustomCustomerService cooperatecustomCustomerService
            , IIntentionCustomerService intentionCustomerService
            , IHrPositionService hrPositionService
            , IAdmGoodsRecordService admGoodsRecordService
            , IFiSubjectService ifiSubjectService
            , IFiAccountService fiAccountService
            , IFiAccountRecordService iFiAccountRecordService
             , IConfiguration configuration
            )
        {
            _logger = logger;
            _hrDeptService = hrDeptService;
@@ -45,6 +67,14 @@
            _liaotianService = liaotianService;
            _userService = userService;
            _aAdmBreakPrecedentService = aAdmBreakPrecedentService;
            _cooperatecustomCustomerService = cooperatecustomCustomerService;
            _intentionCustomerService = intentionCustomerService;
            _hrPositionService = hrPositionService;
            _admGoodsRecordService = admGoodsRecordService;
            _ifiSubjectService = ifiSubjectService;
            _fiAccountService = fiAccountService;
            _iFiAccountRecordService = iFiAccountRecordService;
            _configuration = configuration;
        }
        public IActionResult Askcost(string id = "")
@@ -268,6 +298,19 @@
                        resultEntity.Message = "物品剩余数量不足";
                        return new JsonResult(resultEntity);
                    }
                    AdmGoodsRecordDTO dto = new AdmGoodsRecordDTO();
                    dto.GoodsId = admGoodsManageDTO.Id;
                    dto.GoodsNum = admAskGoodDTO.Shuliang.Value;
                    dto.GoodsLeft = admGoodsManageDTO.GoodsLeft;
                    dto.RecordTypeId = "02";
                    dto.RecStatus = "A";
                    dto.Creater = curentuser.Id;
                    dto.Createtime = DateTime.Now;
                    dto.Modifier = curentuser.Id;
                    dto.Modifytime = DateTime.Now;
                    dto.OperationalMatters = admAskGoodDTO.Tittle;
                    resultEntity = _admGoodsRecordService.save(dto);
                }
@@ -966,5 +1009,1247 @@
            }
            return new JsonResult(resultEntity);
        }
        public IActionResult AskYouHui(string id = "")
        {
            AdmAskYouHuiDTO dto = new AdmAskYouHuiDTO();
            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.GetAskYouHui(id);
                dto.YouHuiName = dto.YouHui.Value.ToString("F2");
                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "12").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;
            ViewBag.jtype = _liaotianService.GetSYScode("CooperVisit", "jtype");
            ViewBag.standard = _liaotianService.GetSYScode("fi_piecerate", "standard");
            ViewBag.CooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList();
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// 保存销售费用申请
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveYouHui(AdmAskYouHuiDTO 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.SaveAskYouHui(data);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                //发起流程相关
                resultEntity = _wfRunProcessService.WfAskYouHui(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);
        }
        public IActionResult AskBaiFang(string id = "")
        {
            AdmAskBaiFangDTO dto = new AdmAskBaiFangDTO();
            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.GetAskBaiFang(id);
                dto.BaiFangtimeName = dto.BaiFangtime.Value.ToString("yyyy-MM-dd");
                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "13").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;
            ViewBag.jtype = _liaotianService.GetSYScode("CooperVisit", "jtype");
            ViewBag.visType = _liaotianService.GetSYScode("CooperVisit", "visType");
            //var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList();
            //var intentionCustomerDTOs = _intentionCustomerService.GetList();
            //ViewBag.CooperatecustomCustomerDTOs =
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// 保存拜访申请
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveBaiFang(AdmAskBaiFangDTO 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.SaveAskBaiFang(data);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                //发起流程相关
                resultEntity = _wfRunProcessService.WfAskBaiFang(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);
        }
        public IActionResult CustomerWithdrawal(string id = "")
        {
            AdmCustomerWithdrawalDTO dto = new AdmCustomerWithdrawalDTO();
            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.GetCustomerWithdrawal(id);
                dto.ShenqingtimeName = dto.Shenqingtime.ToString("yyyy-MM-dd");
                dto.JineName = dto.Jine.Value.ToString("F2");
                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "20").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;
            //ViewBag.jtype = _liaotianService.GetSYScode("CooperVisit", "jtype");
            //ViewBag.visType = _liaotianService.GetSYScode("CooperVisit", "visType");
            //var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList();
            //var intentionCustomerDTOs = _intentionCustomerService.GetList();
            //ViewBag.CooperatecustomCustomerDTOs =
            if (dangqianbuzhou == "财务审批")
            {
                ViewBag.accounttype = _liaotianService.GetSYScode("fi_account", "accounttype");
                ViewBag.FiSubject = _ifiSubjectService.GetList().Where(x => x.Subjecttype == "02").ToList();
            }
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// 会员提现申请
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveCustomerWithdrawal(AdmCustomerWithdrawalDTO 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.SaveCustomerWithdrawal(data);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                if(data.Step == "财务审批" && data.Tongguojujue == "A")
                {
                    WfRunProcessDTO wfRunProcessDTO = _wfRunProcessService.GetList(data.Id, "20").FirstOrDefault();
                    FiAccountRecordDTO datafi = new FiAccountRecordDTO();
                    datafi.Creater = curentuser.Id;
                    datafi.Createtime = DateTime.Now;
                    datafi.Modifier = curentuser.Id;
                    datafi.Modifytime = DateTime.Now;
                    datafi.AccountId = data.AccountId;
                    datafi.Accounttype = data.Accounttype;
                    datafi.SubjectId = data.SubjectId;
                    datafi.Money = data.Jine;
                    if(wfRunProcessDTO!=null)
                        datafi.OperationalMatters = data.Tittle + wfRunProcessDTO.Applyno;
                    datafi.PaymentUnit = data.Username;
                    FiAccountDTO firmAccount = _fiAccountService.Get(data.AccountId);
                    datafi.RecordTypeId = "2";//支出
                                            //data.Department = "";
                    //resultEntity = _iFiAccountRecordService.save(data);
                    firmAccount.AllExpenses = (firmAccount.AllExpenses ?? 0) + datafi.Money;
                    firmAccount.Balance = (firmAccount.Balance ?? 0) - datafi.Money;
                    datafi.AccountMoney = firmAccount.Balance;
                    resultEntity = _iFiAccountRecordService.save(datafi);
                    resultEntity = _fiAccountService.save(firmAccount);
                }
                //发起流程相关
                resultEntity = _wfRunProcessService.WfCustomerWithdrawal(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);
        }
        public IActionResult CustomerRefund(string id = "")
        {
            AdmCustomerWithdrawalDTO dto = new AdmCustomerWithdrawalDTO();
            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.GetCustomerWithdrawal(id);
                dto.ShenqingtimeName = dto.Shenqingtime.ToString("yyyy-MM-dd");
                dto.JineName = dto.Jine.Value.ToString("F2");
                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "23").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;
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// 会员提现申请
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveCustomerRefund(AdmCustomerWithdrawalDTO 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.SaveCustomerWithdrawal(data);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                //发起流程相关
                resultEntity = _wfRunProcessService.WfCustomerRefund(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);
        }
        public IActionResult AskCiZhi(string id = "")
        {
            AdmAskCiZhiDTO dto = new AdmAskCiZhiDTO();
            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 + ")";
                dto.RuzhitimeName = curentuser.Indate.HasValue? curentuser.Indate.Value.ToString("yyyy-MM-dd"):"";
                dto.CreatetimeName = DateTime.Now.ToString("yyyy-MM-dd");
                var deptDTO = _hrDeptService.Get(curentuser.DeptId);
                if (deptDTO != null)
                {
                    dto.DeptName = deptDTO.DeptName;
                }
               var positionDTO =  _hrPositionService.Get(curentuser.HrPosition);
                if (positionDTO != null)
                {
                    dto.PostName = positionDTO.PostName;
                }
            }
            else if (dto != null)
            {
                dto = _askService.GetAskCiZhi(id);
                dto.OuttimeName = dto.Outtime.HasValue ? dto.Outtime.Value.ToString("yyyy-MM-dd"):"";
                //dto.JineName = dto.Jine.Value.ToString("F2");
                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "21").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;
            var userDTOs = _userService.GetList();
            ViewData["UserIds"] = userDTOs;
            string[] Userids = null;
            if (!string.IsNullOrEmpty(dto.JiaojieUser) )
            {
                Userids = dto.JiaojieUser.Split(','); ;
            }
            else
            {
                Userids = new string[0];
            }
            ViewBag.Userid = Userids;
            var userDTOsList  = userDTOs.Where(x => Userids.Contains(x.Id)).ToList();
           if(userDTOsList!=null && userDTOsList.Count > 0)
            {
                dto.JiaojieUserName = "";
                foreach (var userDTO in userDTOsList)
                {
                    dto.JiaojieUserName += userDTO.UserName + ",";
                }
            }
            //ViewBag.jtype = _liaotianService.GetSYScode("CooperVisit", "jtype");
            //ViewBag.visType = _liaotianService.GetSYScode("CooperVisit", "visType");
            //var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList();
            //var intentionCustomerDTOs = _intentionCustomerService.GetList();
            //ViewBag.CooperatecustomCustomerDTOs =
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// 辞职申请
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveAskCiZhi(AdmAskCiZhiDTO 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.SaveAskCiZhi(data);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                else
                {
                   var askCiZhiDTO  = _askService.GetAskCiZhi(data.Id);
                    askCiZhiDTO.Outtime = data.Outtime;
                    askCiZhiDTO.JiaojieUser = data.JiaojieUser;
                    askCiZhiDTO.Modifier = curentuser.Id;
                    askCiZhiDTO.Modifytime = DateTime.Now;
                    resultEntity = _askService.SaveAskCiZhi(askCiZhiDTO);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                if (data.Step == "总经理审批")
                {
                    //总经理审批同意之后,插入工作交接
                    var askCiZhiDTO = _askService.GetAskCiZhi(resultEntity.ReturnID);
                    var pltUserDTO = _userService.GetPltUserEntity(askCiZhiDTO.Creater);
                    AdmAskJiaojieDTO admAskJiaojieDTO = new AdmAskJiaojieDTO();
                    admAskJiaojieDTO.CiZhiId = resultEntity.ReturnID;
                    admAskJiaojieDTO.Remark = "";
                    admAskJiaojieDTO.ShenpiStatus = "D";
                    admAskJiaojieDTO.RecStatus = "A";
                    admAskJiaojieDTO.Creater = askCiZhiDTO.Creater;
                    admAskJiaojieDTO.Createtime = DateTime.Now;
                    admAskJiaojieDTO.Modifier = askCiZhiDTO.Creater;
                    admAskJiaojieDTO.Modifytime = admAskJiaojieDTO.Createtime;
                    admAskJiaojieDTO.CreaterName = pltUserDTO.UserName;
                    admAskJiaojieDTO.Tittle = "工作交接(" + pltUserDTO.UserName + ")";
                    resultEntity = _askService.SaveAskJiaojie(admAskJiaojieDTO);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                    //查询合作客户
                    CooperatecustomCustomerDTOSearch searchEntity = new CooperatecustomCustomerDTOSearch();
                    searchEntity.page = 1;
                    searchEntity.rows = 10000;
                    searchEntity.Ywjl = admAskJiaojieDTO.Creater;
                   var resultDataEntity =  _cooperatecustomCustomerService.SearchByPaging(searchEntity);
                    var cooperatecustomCustomerDTOs  = resultDataEntity.DataList;
                    foreach (var cooperatecustomCustomerDTO in cooperatecustomCustomerDTOs)
                    {
                        AdmAskJiaojieDtlDTO admAskJiaojieDtl = new AdmAskJiaojieDtlDTO();
                        admAskJiaojieDtl.JiaojieId = admAskJiaojieDTO.Id;
                        admAskJiaojieDtl.Jiaojietime = DateTime.Now;
                        admAskJiaojieDtl.JiaojieType = "01";
                        admAskJiaojieDtl.Kehudanwei = cooperatecustomCustomerDTO.Name;
                        admAskJiaojieDtl.JiaojieStatus = "D";
                        admAskJiaojieDtl.RecStatus = "A";
                        admAskJiaojieDtl.Creater = admAskJiaojieDTO.Creater;
                        admAskJiaojieDtl.Createtime = admAskJiaojieDTO.Createtime;
                        admAskJiaojieDtl.Modifier = admAskJiaojieDTO.Creater;
                        admAskJiaojieDtl.Modifytime = admAskJiaojieDTO.Createtime;
                        resultEntity = _askService.SaveAskJiaojieDtl(admAskJiaojieDtl);
                        if (!resultEntity.Result)
                        {
                            return new JsonResult(resultEntity);
                        }
                    }
                    //查询意向客户
                    IntentionCustomerDTOSearch searchEntityin = new IntentionCustomerDTOSearch();
                    searchEntityin.page = 1;
                    searchEntityin.rows = 10000;
                    searchEntityin.YwjlYx = admAskJiaojieDTO.Creater;
                    searchEntityin.Ywjl = admAskJiaojieDTO.Creater;
                    searchEntityin.Yixiang = "05";
                    var resultDataEntity1  = _intentionCustomerService.SearchByPaging(searchEntityin);
                    var intentionCustomerDTOs = resultDataEntity1.DataList;
                    foreach (var intentionCustomerDTO in intentionCustomerDTOs)
                    {
                        AdmAskJiaojieDtlDTO admAskJiaojieDtl = new AdmAskJiaojieDtlDTO();
                        admAskJiaojieDtl.JiaojieId = admAskJiaojieDTO.Id;
                        admAskJiaojieDtl.Jiaojietime = DateTime.Now;
                        admAskJiaojieDtl.JiaojieType = "02";
                        admAskJiaojieDtl.Kehudanwei = intentionCustomerDTO.Name;
                        admAskJiaojieDtl.JiaojieStatus = "D";
                        admAskJiaojieDtl.RecStatus = "A";
                        admAskJiaojieDtl.Creater = admAskJiaojieDTO.Creater;
                        admAskJiaojieDtl.Createtime = admAskJiaojieDTO.Createtime;
                        admAskJiaojieDtl.Modifier = admAskJiaojieDTO.Creater;
                        admAskJiaojieDtl.Modifytime = admAskJiaojieDTO.Createtime;
                        resultEntity = _askService.SaveAskJiaojieDtl(admAskJiaojieDtl);
                        if (!resultEntity.Result)
                        {
                            return new JsonResult(resultEntity);
                        }
                    }
                    //插入交接明细
                    resultEntity = _wfRunProcessService.WfAskJiaojie(admAskJiaojieDTO.Id, "保存", "A", admAskJiaojieDTO.Creater, "", admAskJiaojieDTO.Tittle, "v1");
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                //发起流程相关
                resultEntity = _wfRunProcessService.WfAskCiZhi(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);
        }
        public IActionResult AskJiaojie(AdmAskJiaojieDTO data)
        {
            AdmAskJiaojieDTO dto = new AdmAskJiaojieDTO();
            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(data.id))
            {
                dto.CreaterName = curentuser.UserName;
                dto.Tittle = "工作交接(" + curentuser.UserName + ")";
                dto.admAskJiaojieDtlDTOs = new List<AdmAskJiaojieDtlDTO>();
            }
            else if (dto != null)
            {
                dto = _askService.GetAskJiaojie(data.id);
                dto.JiaojietimeStart = data.JiaojietimeStart;
                dto.JiaojietimeEnd = data.JiaojietimeEnd;
                dto.JiaojieStatus = data.JiaojieStatus;
                dto.JiaojietimeStartName = dto.JiaojietimeStart.HasValue? dto.JiaojietimeStart.Value.ToString("yyyy-MM-dd"):"";
                dto.JiaojietimeEndName = dto.JiaojietimeEnd.HasValue ? dto.JiaojietimeEnd.Value.ToString("yyyy-MM-dd") : "";
                //dto.JineName = dto.Jine.Value.ToString("F2");
                var admAskJiaojieDtlDTOs = _askService.GetAskJiaojieDtls(data.id);
                if (!string.IsNullOrEmpty(data.JiaojieStatus))
                {
                    admAskJiaojieDtlDTOs = admAskJiaojieDtlDTOs.Where(x => x.JiaojieStatus == data.JiaojieStatus).ToList();
                }
                if (data.JiaojietimeStart.HasValue)
                {
                    admAskJiaojieDtlDTOs = admAskJiaojieDtlDTOs.Where(x => x.Jiaojietime >= data.JiaojietimeStart).ToList();
                }
                if (data.JiaojietimeEnd.HasValue)
                {
                    admAskJiaojieDtlDTOs = admAskJiaojieDtlDTOs.Where(x => x.Jiaojietime <= data.JiaojietimeEnd.Value.AddDays(1)).ToList();
                }
                dto.admAskJiaojieDtlDTOs = admAskJiaojieDtlDTOs;
                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "22").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;
            ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou");
            //ViewBag.visType = _liaotianService.GetSYScode("CooperVisit", "visType");
            //var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList();
            //var intentionCustomerDTOs = _intentionCustomerService.GetList();
            //ViewBag.CooperatecustomCustomerDTOs =
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// 工作交接
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveAskJiaojie(AdmAskJiaojieDTO 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.SaveAskJiaojie(data);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                    //发起流程相关
                    resultEntity = _wfRunProcessService.WfAskJiaojie(data.Id, data.Step, data.Tongguojujue, curentuser.Id, data.Content, data.Tittle, "v1");
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                else if (data.Step == "工作交接")
                {
                  var ids  =  data.JiaojieDtlId.Split(',');
                    foreach(var  id in ids)
                    {
                        if (string.IsNullOrEmpty(id))
                        {
                            continue;
                        }
                        var admAskJiaojieDtl = _askService.GetAskJiaojieDtl(id);
                        if (admAskJiaojieDtl.JiaojieStatus == "A")
                        {
                            continue;
                        }
                        else
                        {
                            admAskJiaojieDtl.JiaojieStatus = "A";
                            admAskJiaojieDtl.JiaojieUserId = curentuser.Id;
                            admAskJiaojieDtl.Jiaojietime = DateTime.Now;
                            admAskJiaojieDtl.JieShoutime = admAskJiaojieDtl.Jiaojietime;
                            admAskJiaojieDtl.Modifier = curentuser.Id; ;
                            admAskJiaojieDtl.Modifytime = admAskJiaojieDtl.Jiaojietime.Value;
                            resultEntity = _askService.SaveAskJiaojieDtl(admAskJiaojieDtl);
                            if (!resultEntity.Result)
                            {
                                return new JsonResult(resultEntity);
                            }
                        }
                    }
                    var admAskJiaojieDtls = _askService.GetAskJiaojieDtls(data.Id).Where(x => x.JiaojieStatus == "D").ToList();
                    if(admAskJiaojieDtls ==null || admAskJiaojieDtls.Count == 0)
                    {
                        //发起流程相关
                        resultEntity = _wfRunProcessService.WfAskJiaojie(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);
        }
        public IActionResult EditAskJiaojie(string id)
        {
            ViewBag.id = id;
            ViewBag.JiaojieType = _liaotianService.GetSYScode("ADM_AskJiaojieDtl", "JiaojieType");
            ViewData.Model = new AdmAskJiaojieDtlDTO();
            return View();
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="data">岗位实体类对象</param>
        /// <returns></returns>
        [HttpPost]
        public string SaveAskJiaojieDtl(AdmAskJiaojieDtlDTO data)
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            data.RecStatus = "A";
            data.JiaojieStatus = "D";
            if (String.IsNullOrEmpty(data.Id))
            {
                data.Creater = curentuser.Id;
                data.Createtime = DateTime.Now;
            }
            data.Modifier = curentuser.Id;
            data.Modifytime = DateTime.Now;
            ResultEntity resultEntity = _askService.SaveAskJiaojieDtl(data);
            return JsonConvert.SerializeObject(resultEntity);
        }
        //获取招标信息网试用审批
        public IActionResult AskZBXXW(string id = "")
        {
            AdmAskzczbwsyDTO dto = new AdmAskzczbwsyDTO();
            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.GetAskZBXXW(id);
                var wfRunProcessDTO = _wfRunProcessService.GetList(dto.Id, "24").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;
            ViewBag.shiyongstandard = _liaotianService.GetSYScode("ADM_Askzczbwsy", "shiyongstandard");
            //ViewBag.CooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList();
            ViewData.Model = dto;
            return View();
        }
        /// <summary>
        /// 保存销售费用申请
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SaveZBXXW(AdmAskzczbwsyDTO 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.SaveAskZBXXW(data);
                    if (!resultEntity.Result)
                    {
                        return new JsonResult(resultEntity);
                    }
                }
                if (data.Step == "招标信息网试用审批" && data.Tongguojujue == "A")
                {
                    //调用接口开启用户试用权限
                  var admAskzczbwsyDTO =  _askService.GetAskZBXXW(data.Id);
                   var  userDTO   = _userService.GetPltUserEntity(admAskzczbwsyDTO.Creater);
                    string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
                    string SetCaseOrder = _configuration.GetSection("OASetOtherBusiness").Value;
                    Uri postUrl2 = new Uri(huiyuanurl + SetCaseOrder);
                    if (data.CustomerId != null && data.CustomerId.Length > 0)
                    {
                       for(int i=0;i< data.CustomerId.Length; i++)
                        {
                            if (data.Customertype[i] == "合作客户")
                            {
                              var cooperatecustomCustomerDTO =  _cooperatecustomCustomerService.Get(data.CustomerId[i]);
                                JObject questions2 = new JObject();
                                questions2.Add("UserID", cooperatecustomCustomerDTO.HuiyuanId);
                                questions2.Add("UserName", cooperatecustomCustomerDTO.Name);
                                questions2.Add("PhoneNumber", cooperatecustomCustomerDTO.Tel);
                                questions2.Add("BusinessKey", "CGGG");
                                if (admAskzczbwsyDTO.Shiyongstandard == "01")
                                {
                                    questions2.Add("EndTime", DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss"));
                                }
                                else if (admAskzczbwsyDTO.Shiyongstandard == "02")
                                {
                                    questions2.Add("EndTime", DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss"));
                                }
                                else if(admAskzczbwsyDTO.Shiyongstandard == "03")
                                {
                                    questions2.Add("EndTime", DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss"));
                                }
                                questions2.Add("FromName",  userDTO.UserName +" " +userDTO.Phone);
                                questions2.Add("Describe", "OA");
                                string requestJson2 = questions2.ToString();
                                string result2 = string.Empty;
                                using (HttpContent httpContent = new StringContent(requestJson2))
                                {
                                    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                                    using (HttpClient httpClient = new HttpClient())
                                    {
                                        httpClient.Timeout = new TimeSpan(0, 0, 10);
                                        HttpResponseMessage responseMessage = httpClient.PostAsync(postUrl2, httpContent).Result;
                                        result2 = responseMessage.Content.ReadAsStringAsync().Result;
                                    }
                                }
                                _logger.LogInformation("result2:" + result2);
                                JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2);
                                if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
                                {
                                    cooperatecustomCustomerDTO.HuiyuanId = jobjectresult["UserID"].ToString();
                                    _cooperatecustomCustomerService.save(cooperatecustomCustomerDTO);
                                    resultEntity.Result = true;
                                }
                                else
                                {
                                    resultEntity.Result = false;
                                    resultEntity.Message = "开通招标信息网试用权限失败";
                                    return new JsonResult(resultEntity);
                                }
                            }
                            else
                            {
                              var cooperatecustomCustomerDTO = _intentionCustomerService.Get(data.CustomerId[i]);
                                JObject questions2 = new JObject();
                                questions2.Add("UserID", cooperatecustomCustomerDTO.HuiyuanId);
                                questions2.Add("UserName", cooperatecustomCustomerDTO.Name);
                                questions2.Add("PhoneNumber", cooperatecustomCustomerDTO.Tel);
                                questions2.Add("BusinessKey", "CGGG");
                                if (admAskzczbwsyDTO.Shiyongstandard == "01")
                                {
                                    questions2.Add("EndTime", DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss"));
                                }
                                else if (admAskzczbwsyDTO.Shiyongstandard == "02")
                                {
                                    questions2.Add("EndTime", DateTime.Now.AddMonths(2).ToString("yyyy-MM-dd HH:mm:ss"));
                                }
                                else if (admAskzczbwsyDTO.Shiyongstandard == "03")
                                {
                                    questions2.Add("EndTime", DateTime.Now.AddMonths(3).ToString("yyyy-MM-dd HH:mm:ss"));
                                }
                                questions2.Add("FromName", userDTO.UserName + " " + userDTO.Phone);
                                questions2.Add("Describe", "OA");
                                string requestJson2 = questions2.ToString();
                                string result2 = string.Empty;
                                using (HttpContent httpContent = new StringContent(requestJson2))
                                {
                                    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                                    using (HttpClient httpClient = new HttpClient())
                                    {
                                        httpClient.Timeout = new TimeSpan(0, 0, 10);
                                        HttpResponseMessage responseMessage = httpClient.PostAsync(postUrl2, httpContent).Result;
                                        result2 = responseMessage.Content.ReadAsStringAsync().Result;
                                    }
                                }
                                _logger.LogInformation("result2:" + result2);
                                JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2);
                                if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
                                {
                                    cooperatecustomCustomerDTO.HuiyuanId = jobjectresult["UserID"].ToString();
                                    _intentionCustomerService.save(cooperatecustomCustomerDTO);
                                    resultEntity.Result = true;
                                }
                                else
                                {
                                    resultEntity.Result = false;
                                    resultEntity.Message = "开通招标信息网试用权限失败";
                                    return new JsonResult(resultEntity);
                                }
                            }
                        }
                    }
                }
                    //发起流程相关
                resultEntity = _wfRunProcessService.WfAskZBXXW(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);
        }
    }
}