From 6e2b929cf381e2320ba6e7dec56c0371124d2b51 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期六, 27 八月 2022 15:03:00 +0800 Subject: [PATCH] 提交 --- zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs | 407 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 378 insertions(+), 29 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs b/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs index 08ec057..2fa29d2 100644 --- a/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs +++ b/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs @@ -18,6 +18,9 @@ using CommonToolsCore; using Services; using System.Transactions; +using System.Net.Http.Headers; +using Newtonsoft.Json.Linq; +using Microsoft.Extensions.Configuration; namespace zhengcaioa.Controllers.Finance { @@ -32,9 +35,27 @@ private readonly IFiAccountService _fiAccountService; private readonly IFiAccountRecordService _iFiAccountRecordService; private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService; + private readonly IProjectService _projectService; + private readonly IUserService _userService; + private readonly IFiCustomerrecievemoneyService _fiCustomerrecievemoneyService; + private readonly IConfiguration _configuration; + private readonly IHttpClientFactory _clientFactory; + private readonly IFiMemberService _iMemberService; + private readonly IPltPageService _pltPageService; + private readonly IFiBookService _fiBookService; + private readonly IFiMemberService _fiMemberService; public FiOrderrecievemoneyController(ILogger<FiOrderrecievemoneyController> logger, ILiaotianService liaotianService, IFiOrderrecievemoneyService fiOrderrecievemoneyService, ICooperOrderService cooperOrderService, IFiSubjectService ifiSubjectService - , IFiAccountService fiAccountService, IFiAccountRecordService iFiAccountRecordService, ICooperatecustomCustomerService cooperatecustomCustomerService) + , IFiAccountService fiAccountService, IFiAccountRecordService iFiAccountRecordService, ICooperatecustomCustomerService cooperatecustomCustomerService + , IProjectService projectService + , IUserService userService + , IFiCustomerrecievemoneyService fiCustomerrecievemoneyService + , IConfiguration configuration + , IHttpClientFactory clientFactory + , IFiMemberService iMemberService + , IPltPageService pltPageService + , IFiBookService fiBookService + , IFiMemberService fiMemberService) { _logger = logger; _liaotianService = liaotianService; @@ -44,8 +65,15 @@ _fiAccountService = fiAccountService; _iFiAccountRecordService = iFiAccountRecordService; _cooperatecustomCustomerService = cooperatecustomCustomerService; - - + _projectService = projectService; + _userService = userService; + _fiCustomerrecievemoneyService = fiCustomerrecievemoneyService; + _configuration = configuration; + _clientFactory = clientFactory; + _iMemberService = iMemberService; + _pltPageService = pltPageService; + _fiBookService = fiBookService; + _fiMemberService = fiMemberService; } public IActionResult Index() @@ -62,7 +90,9 @@ actionlist.Add(actionEntity); ViewData["ActionInfo"] = actionlist; - + var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/FiOrderrecievemoney/Index/"); + var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList(); + ViewData["ActionInfo2"] = pageEntities2; ViewBag.OrderType = _liaotianService.GetSYScode("CooperVisit", "jtype").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); @@ -105,7 +135,7 @@ CooperOrderDTO cooperOrderDTO = _cooperOrderService.Get(OrderId); List<FiOrderrecievemoneyDTO> fiOrderrecievemoneyDTOs = _fiOrderrecievemoneyService.GetList(OrderId); - dto.Money = cooperOrderDTO.Money.Value - (cooperOrderDTO.Youhui??0); + dto.Money = cooperOrderDTO.Money.Value; if(fiOrderrecievemoneyDTOs!=null&& fiOrderrecievemoneyDTOs.Count > 0) { dto.YishouMoney = fiOrderrecievemoneyDTOs.Sum(x => x.Recievemoney).Value; @@ -124,9 +154,7 @@ ViewBag.accounttype = _liaotianService.GetSYScode("fi_account", "accounttype"); ViewBag.FiSubject = _ifiSubjectService.GetList().Where(x => x.Subjecttype == "01").ToList(); - - - + ViewBag.cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(cooperOrderDTO.Khdw); ViewData.Model = dto; return View(); @@ -145,7 +173,13 @@ ResultEntity resultEntity = new ResultEntity(); var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; - using (TransactionScope scope = new TransactionScope()) + using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, + new TransactionOptions + { + IsolationLevel = IsolationLevel.ReadCommitted, + Timeout = TransactionManager.MaximumTimeout + } + )) { data.RecStatus = "A"; if (String.IsNullOrEmpty(data.Id)) @@ -155,37 +189,146 @@ } data.Modifier = curentuser.Id; data.Modifytime = DateTime.Now; - - resultEntity = _fiOrderrecievemoneyService.save(data); CooperOrderDTO cooperOrderDTO = _cooperOrderService.Get(data.OrderId); CooperatecustomCustomerDTO cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(cooperOrderDTO.Khdw); - FiAccountRecordDTO data1 = new FiAccountRecordDTO(); - data1.RecStatus = "A"; - data1.Creater = curentuser.Id; - data1.Createtime = DateTime.Now; - data1.Modifier = curentuser.Id; - data1.Modifytime = DateTime.Now; - data1.SubjectId = data.SubjectId; + if (data.PayType == "03") + { + if(data.Recievemoney>((cooperatecustomCustomerDTO.Yufukuan ?? 0)+ (cooperatecustomCustomerDTO.Shouxinedu ?? 0) - (cooperatecustomCustomerDTO.Shenyushouxin ?? 0))) + { + resultEntity.Result = false; + resultEntity.Message = "鍓╀綑棰勪粯娆惧拰鍓╀綑鎺堜俊涓嶈冻锛�"; + return new JsonResult(resultEntity); + } + else + { + if (data.Recievemoney > (cooperatecustomCustomerDTO.Yufukuan??0)) + { + cooperatecustomCustomerDTO.Shenyushouxin = data.Recievemoney - (cooperatecustomCustomerDTO.Yufukuan??0); + if (cooperatecustomCustomerDTO.Shenyushouxin> (cooperatecustomCustomerDTO.Shouxinedu??0)) + { + resultEntity.Result = false; + resultEntity.Message = "鍓╀綑鎺堜俊涓嶈冻锛�"; + return new JsonResult(resultEntity); + } + cooperatecustomCustomerDTO.Yufukuan = 0; + + } + else + { + cooperatecustomCustomerDTO.Yufukuan = cooperatecustomCustomerDTO.Yufukuan - data.Recievemoney; + } + resultEntity = _cooperatecustomCustomerService.saveyufukuan(cooperatecustomCustomerDTO); + } + } + - data1.AccountId = data.AccountId; - data1.Money = data.Recievemoney; - data1.PaymentUnit = cooperatecustomCustomerDTO.Name; - data1.OperationalMatters = "璁㈠崟鏀舵"+ cooperOrderDTO.OrderNo; + resultEntity = _fiOrderrecievemoneyService.save(data); + + if (data.WeishouMoney <= data.Recievemoney && cooperOrderDTO.OrderType == "05" ) + { + //寮�閫氫細鍛� + var fiMemberDTO = _iMemberService.Get(cooperOrderDTO.OrderType1); + //寮�閫氫細鍛� + string huiyuanurl = _configuration.GetSection("huiyuanurl").Value; + string OAWriteChangeAsync = _configuration.GetSection("OAWriteChangeAsync").Value; + + Uri postUrl2 = new Uri(huiyuanurl + OAWriteChangeAsync); + JObject questions2 = new JObject(); + questions2.Add("UserID", cooperatecustomCustomerDTO.HuiyuanId); + questions2.Add("PhoneNumber", cooperatecustomCustomerDTO.Tel); + questions2.Add("VIPName", fiMemberDTO.MemberType); + questions2.Add("UserName", cooperatecustomCustomerDTO.Name); + questions2.Add("FromName", "OA"); - FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId); + string requestJson2 = questions2.ToString(); + string result2 = string.Empty; + + using (HttpContent httpContent = new StringContent(requestJson2)) + { + httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); - data1.RecordTypeId = "1";//鏀跺叆 - data1.Department = ""; + using (HttpClient httpClient = new HttpClient()) + { + httpClient.Timeout = new TimeSpan(0, 0, 10); + HttpResponseMessage responseMessage = httpClient.PostAsync(postUrl2, httpContent).Result; + result2 = responseMessage.Content.ReadAsStringAsync().Result; + } + } - resultEntity = _iFiAccountRecordService.save(data1); + _logger.LogInformation("result2:" + result2); + JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2); - firmAccount.AllIncome = (firmAccount.AllIncome ?? 0) + data1.Money; - firmAccount.Balance = (firmAccount.Balance ?? 0) + data1.Money; + 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); + } - resultEntity = _fiAccountService.save(firmAccount); + + + } + if (data.PayType != "03") + { + var sysCodeDtls = _liaotianService.GetSYScode("CooperVisit", "jtype"); + var book = _fiBookService.Get(cooperOrderDTO.OrderType1); + var member = _fiMemberService.Get(cooperOrderDTO.OrderType1); + FiAccountRecordDTO data1 = new FiAccountRecordDTO(); + data1.RecStatus = "A"; + data1.Creater = curentuser.Id; + data1.Createtime = DateTime.Now; + data1.Modifier = curentuser.Id; + data1.Modifytime = DateTime.Now; + data1.SubjectId = data.SubjectId; + + data1.AccountId = data.AccountId; + data1.Money = data.Recievemoney; + data1.PaymentUnit = cooperatecustomCustomerDTO.Name; + var ssss = sysCodeDtls.Where(x => x.CodeSn == cooperOrderDTO.OrderType).FirstOrDefault(); + if (ssss != null) + { + cooperOrderDTO.OrderTypeName = ssss.Comments; + } + if (book != null) + { + cooperOrderDTO.OrderType1 = book.BookName; + } + if (member != null) + { + cooperOrderDTO.OrderType1 = member.MemberType; + } + + //data1.OperationalMatters = "璁㈠崟鏀舵" + cooperOrderDTO.OrderNo; + + data1.OperationalMatters = cooperOrderDTO.OrderTypeName + cooperOrderDTO.OrderType1 + cooperOrderDTO.OrderType2 + " 璁㈠崟鏀舵"; + data1.Remark = cooperOrderDTO.OrderNo; + + FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId); + + + data1.RecordTypeId = "1";//鏀跺叆 + data1.Department = ""; + + + + firmAccount.AllIncome = (firmAccount.AllIncome ?? 0) + data1.Money; + firmAccount.Balance = (firmAccount.Balance ?? 0) + data1.Money; + + data1.AccountMoney = firmAccount.Balance; + resultEntity = _iFiAccountRecordService.save(data1); + resultEntity = _fiAccountService.save(firmAccount); + } + + scope.Complete(); } @@ -205,5 +348,211 @@ ViewData["curentuser"] = curentuser; return new JsonResult(_fiOrderrecievemoneyService.ModifyStatus(Id, curentuser.Id)); } + + + public IActionResult IndexCustomer() + { + var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); + ViewData["curentuser"] = curentuser; + List<ActionEntity> actionlist = new List<ActionEntity>(); + ActionEntity actionEntity = new ActionEntity(); + actionEntity.OpenType = 0; + actionEntity.ActionUrl = ""; + actionEntity.ActionFun = "Search"; + actionEntity.PageIco = "fa fa-search"; + actionEntity.ActionName = "鏌ヨ"; + actionlist.Add(actionEntity); + var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/FiOrderrecievemoney/IndexCustomer/"); + var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList(); + ViewData["ActionInfo2"] = pageEntities2; + + ViewData["ActionInfo"] = actionlist; + + + ViewBag.khlx = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); + ViewBag.khly = _liaotianService.GetSYScode("CooperatecustomCustomer", "khly").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); + ViewBag.hyfl = _liaotianService.GetSYScode("CooperatecustomCustomer", "hyfl").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); + ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); + ViewBag.users = _userService.GetList().Where(x => x.IsYwjl == "A").Select(x => new { code = x.Id, label = x.UserName }).ToList(); + + var areaDTOs = _projectService.Getsheng().ToList(); + foreach (var areaDTO in areaDTOs) + { + if (areaDTO.CodeId == "510000") + { + areaDTOs.Remove(areaDTO); + break; + } + } + var areaDTOsic = new Area(); + areaDTOsic.CodeId = "510000"; + areaDTOsic.Name = "鍥涘窛鐪�"; + areaDTOsic.ParentId = "0 "; + areaDTOs.Insert(1, areaDTOsic); + ViewBag.ShengDropDown = areaDTOs.Select(x => new { code = x.CodeId, label = x.Name }).ToList(); + + return View(); + + } + + + public IActionResult EditCustomer(string id = null, string CustomerId = null) + { + var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); + ViewData["curentuser"] = curentuser; + + FiCustomerrecievemoneyDTO dto = new FiCustomerrecievemoneyDTO(); + if (!String.IsNullOrEmpty(id)) + { + dto = _fiCustomerrecievemoneyService.Get(id); + } + else + { + dto.PayTime = DateTime.Now; + dto.CustomerId = CustomerId; + } + + var cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(CustomerId); + + dto.CustomerName = cooperatecustomCustomerDTO.Name; + dto.Yufukuan = cooperatecustomCustomerDTO.Yufukuan??0; + + + + ViewBag.PayType = _liaotianService.GetSYScode("fi_account", "accounttype"); + ViewBag.accounttype = _liaotianService.GetSYScode("fi_account", "accounttype"); + ViewBag.FiSubject = _ifiSubjectService.GetList().Where(x => x.Subjecttype == "01").ToList(); + + + + + + ViewData.Model = dto; + return View(); + } + + + /// <summary> + /// 淇濆瓨 + /// </summary> + /// <param name="data">宀椾綅瀹炰綋绫诲璞�</param> + /// <returns></returns> + /// + [HttpPost] + public IActionResult SaveCustomer(FiCustomerrecievemoneyDTO data) + { + ResultEntity resultEntity = new ResultEntity(); + var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); + ViewData["curentuser"] = curentuser; + using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, + new TransactionOptions + { + IsolationLevel = IsolationLevel.ReadCommitted, + Timeout = TransactionManager.MaximumTimeout + } + )) + { + data.RecStatus = "A"; + if (String.IsNullOrEmpty(data.Id)) + { + data.Creater = curentuser.Id; + data.Createtime = DateTime.Now; + } + data.Modifier = curentuser.Id; + data.Modifytime = DateTime.Now; + + resultEntity = _fiCustomerrecievemoneyService.save(data); + CooperatecustomCustomerDTO cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(data.CustomerId); + if (cooperatecustomCustomerDTO.Shenyushouxin.HasValue) + { + if(data.Recievemoney.Value> cooperatecustomCustomerDTO.Shenyushouxin.Value) + { + data.Recievemoney = data.Recievemoney.Value - cooperatecustomCustomerDTO.Shenyushouxin.Value; + cooperatecustomCustomerDTO.Shenyushouxin = 0; + } + else + { + cooperatecustomCustomerDTO.Shenyushouxin = cooperatecustomCustomerDTO.Shenyushouxin.Value - data.Recievemoney.Value; + data.Recievemoney = 0; + } + } + + if(cooperatecustomCustomerDTO.Yufukuan.HasValue) + cooperatecustomCustomerDTO.Yufukuan = cooperatecustomCustomerDTO.Yufukuan.Value + data.Recievemoney.Value; + else + cooperatecustomCustomerDTO.Yufukuan = data.Recievemoney.Value; + resultEntity = _cooperatecustomCustomerService.saveyufukuan(cooperatecustomCustomerDTO); + FiAccountRecordDTO data1 = new FiAccountRecordDTO(); + data1.RecStatus = "A"; + data1.Creater = curentuser.Id; + data1.Createtime = DateTime.Now; + data1.Modifier = curentuser.Id; + data1.Modifytime = DateTime.Now; + data1.SubjectId = data.SubjectId; + + data1.AccountId = data.AccountId; + data1.Money = data.Recievemoney; + data1.PaymentUnit = cooperatecustomCustomerDTO.Name; + data1.OperationalMatters ="瀹㈡埛棰勪粯娆撅細" + data.Remark; + + + + FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId); + + + data1.RecordTypeId = "1";//鏀跺叆 + data1.Department = ""; + + + + firmAccount.AllIncome = (firmAccount.AllIncome ?? 0) + data1.Money; + firmAccount.Balance = (firmAccount.Balance ?? 0) + data1.Money; + + data1.AccountMoney = firmAccount.Balance; + resultEntity = _iFiAccountRecordService.save(data1); + resultEntity = _fiAccountService.save(firmAccount); + scope.Complete(); + } + + return new JsonResult(resultEntity); + } + + + + public IActionResult IndexCustomerdtl(string CustomerId) + { + var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); + ViewData["curentuser"] = curentuser; + List<ActionEntity> actionlist = new List<ActionEntity>(); + ActionEntity actionEntity = new ActionEntity(); + actionEntity.OpenType = 0; + actionEntity.ActionUrl = ""; + actionEntity.ActionFun = "Search"; + actionEntity.PageIco = "fa fa-search"; + actionEntity.ActionName = "鏌ヨ"; + actionlist.Add(actionEntity); + ViewData["ActionInfo"] = actionlist; + + ViewBag.CustomerId = CustomerId; + + + + + + return View(); + + } + + + + + public IActionResult GetListCustomerdel(FiCustomerrecievemoneyDTOSearch search) + { + var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); + ViewData["curentuser"] = curentuser; + //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); + return new JsonResult(_fiCustomerrecievemoneyService.SearchByPaging(search)); + } + } } -- Gitblit v1.9.1