username@email.com
2022-08-27 6e2b929cf381e2320ba6e7dec56c0371124d2b51
zhengcaioa/zhengcaioa/Controllers/admin/AdmAskController.cs
@@ -30,6 +30,11 @@
        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;
        public AdmAskController(ILogger<AdmAskController> logger, IAskService askService, IHrDeptService hrDeptService, IWfRunProcessService wfRunProcessService
            , IWfHistoryService wfHistoryService, IWfNeeddeelService wfNeeddeelService
@@ -39,7 +44,11 @@
            , IAdmBreakPrecedentService aAdmBreakPrecedentService
            , ICooperatecustomCustomerService cooperatecustomCustomerService
            , IIntentionCustomerService intentionCustomerService
            , IHrPositionService hrPositionService)
            , IHrPositionService hrPositionService
            , IAdmGoodsRecordService admGoodsRecordService
            , IFiSubjectService ifiSubjectService
            , IFiAccountService fiAccountService
            , IFiAccountRecordService iFiAccountRecordService)
        {
            _logger = logger;
            _hrDeptService = hrDeptService;
@@ -54,6 +63,10 @@
            _cooperatecustomCustomerService = cooperatecustomCustomerService;
            _intentionCustomerService = intentionCustomerService;
            _hrPositionService = hrPositionService;
            _admGoodsRecordService = admGoodsRecordService;
            _ifiSubjectService = ifiSubjectService;
            _fiAccountService = fiAccountService;
            _iFiAccountRecordService = iFiAccountRecordService;
        }
        public IActionResult Askcost(string id = "")
@@ -277,6 +290,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);
                }
@@ -1277,6 +1303,12 @@
            //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();
        }
@@ -1311,6 +1343,39 @@
                    }
                }
                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);
                }
                //发起流程相关
@@ -1325,6 +1390,121 @@
            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();