using OpenAuth.App.BaseApp.Base; using OpenAuth.Repository.Domain; using OpenAuth.Repository; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OpenAuth.App.Interface; using SqlSugar; using Infrastructure; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.App.ServiceApp.CompanyManage.Request; using Infrastructure.Extensions; using Infrastructure.Helpers; using Infrastructure.Utilities; using Microsoft.AspNetCore.Http; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using Yitter.IdGenerator; using OpenAuth.App.ServiceApp.TaxZongdiManage.Request; namespace OpenAuth.App.ServiceApp.CompanyManage { public class TaxCompanyApp : SqlSugarBaseApp { private ISqlSugarClient client; #region 构造函数 public TaxCompanyApp( ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth, ISqlSugarClient sqlSugarClient ) : base(unitWork, repository, auth) { this.client = sqlSugarClient; } #endregion #region 获取分页数据列表 /// /// 获取分页列表 /// /// /// public async Task>>> LoadCompanyPageList(TaxCompanyReq req) { RefAsync totalCount = 0; var query = client.Queryable() .WhereIF(!string.IsNullOrEmpty(req.shxydm),r=>r.shxydm==req.shxydm) .WhereIF(!string.IsNullOrEmpty(req.syrmc),r=>r.syrmc.Contains(req.syrmc)) .WhereIF(!string.IsNullOrEmpty(req.djqdm),r=>r.djqdm==req.djqdm) .WhereIF(!string.IsNullOrEmpty(req.djzqdm),r=>r.djzqdm == req.djzqdm) .WhereIF(!string.IsNullOrEmpty(req.frdb),r=>r.frdb == req.frdb) .WhereIF(!string.IsNullOrEmpty(req.hy),r=>r.hy == req.hy) .WhereIF(!string.IsNullOrEmpty(req.jyzt),r=>r.jyzt == req.jyzt) .WhereIF(req.xmgxccmax!=null, r=>r.xmgxcc< req.xmgxccmax) .WhereIF(req.xmgxccmin!=null, r=>r.xmgxcc> req.xmgxccmin) .WhereIF(req.gdzcmax != null, r=>r.gdzc< req.gdzcmax) .WhereIF(req.gdzcmin != null, r=>r.gdzc> req.gdzcmin) .WhereIF(req.cscymax != null, r=>r.cscy < req.cscymax) .WhereIF(req.cscymin != null, r=>r.cscy > req.cscymin) .Select(r => new { RowNumber = SqlFunc.RowNumber(r.Id), r.Id, r.shxydm, r.syrmc, r.hy, r.djqmc, r.djzqmc, //syrlx= SqlFunc.Subqueryable().Where(a => a.shxydm == r.shxydm).Select(a => a.syrlx).FirstOrDefault(), r.frdb, r.lxfs, r.xmgxcc, r.cscy }); var result = await query.ToPageListAsync(req.page, req.limit, totalCount); return new Response>> { Code = 200, Message = "success", Result = new PageInfo> { Items = result, Total = totalCount } }; } /// /// 根据id获取单个企业信息 /// /// 企业id /// public async Task GetConpanyInfoById(string id) { var list = await client.Queryable().Where(r=>r.Id==id).FirstAsync(); return list; } /// /// 根据社会信用代码获取单个企业信息 /// /// 企业社会信用代码 /// public async Task GetConpanyInfoByshxydm(string shxydm) { var list = await client.Queryable().Where(r => r.shxydm == shxydm).FirstAsync(); return list; } /// /// 获取导出数据信息 /// /// /// public async Task> LoadCompanyPageExport(TaxCompanyReq req) { var query = client.Queryable() .WhereIF(!string.IsNullOrEmpty(req.shxydm), r => r.shxydm == req.shxydm) .WhereIF(!string.IsNullOrEmpty(req.syrmc), r => r.syrmc.Contains(req.syrmc)) .WhereIF(!string.IsNullOrEmpty(req.djqdm), r => r.djqdm == req.djqdm) .WhereIF(!string.IsNullOrEmpty(req.djzqdm), r => r.djzqdm == req.djzqdm) .WhereIF(!string.IsNullOrEmpty(req.frdb), r => r.frdb == req.frdb) .WhereIF(!string.IsNullOrEmpty(req.hy), r => r.hy == req.hy) .WhereIF(!string.IsNullOrEmpty(req.jyzt), r => r.jyzt == req.jyzt) .WhereIF(req.xmgxccmax != null, r => r.xmgxcc < req.xmgxccmax) .WhereIF(req.xmgxccmin != null, r => r.xmgxcc > req.xmgxccmin) .WhereIF(req.gdzcmax != null, r => r.gdzc < req.gdzcmax) .WhereIF(req.gdzcmin != null, r => r.gdzc > req.gdzcmin) .WhereIF(req.cscymax != null, r => r.cscy < req.cscymax) .WhereIF(req.cscymin != null, r => r.cscy > req.cscymin) .Select(r => new { RowNumber = SqlFunc.RowNumber(r.Id), r.Id, r.shxydm, r.syrmc, r.hy, r.djqmc, r.djzqmc, r.frdb, r.lxfs, r.xmgxcc, r.cscy }); var result = await query.ToDataTableAsync(); return new Response { Code = 200, Message = "success", Result = result }; } #endregion #region 编辑企业信息 /// /// 添加企业信息 /// /// /// /// public async Task> AddCompany(TaxCompany req) { using (var uow = base.UnitWork.CreateContext()) { if (uow.TaxCompany.IsAny(u => u.shxydm == req.shxydm)) { throw new Exception("社会信用代码已存在"); } req.Id = Guid.NewGuid().ToString(); bool insert=await uow.TaxCompany.InsertAsync(req); bool flag = uow.Commit(); return new Response { Result = flag && insert, Message = (flag && insert) == true ? "success" : "error" }; } } /// /// 修改企业信息 /// /// /// /// public async Task> UpdateCompany(TaxCompany req) { using (var uow = base.UnitWork.CreateContext()) { if (uow.TaxCompany.AsQueryable().Where(u => u.shxydm == req.shxydm&&u.Id==req.Id).Count()>1) { throw new Exception("社会信用代码已存在"); } bool update =await uow.TaxCompany.UpdateAsync(req); bool flag = uow.Commit(); return new Response { Result = flag && update, Message = (flag && update) == true ? "success" : "error" }; } } /// /// 删除企业 /// /// public async Task> DeleteCompany(string[] ids) { using (var uow = base.UnitWork.CreateContext()) { var delete=await uow.TaxCompany.DeleteAsync(a => ids.Contains(a.Id)); var flag = uow.Commit(); return new Response { Result = flag&& delete, Message = flag && delete == true ? "success" : "error" }; } } #endregion #region 查询乡镇 /// /// 查询乡镇 /// /// public async Task> GetStreetInfo() { var list = await client.Queryable() .OrderBy(r=>r.djqdm) .GroupBy(r => new {r.djqdm,r.djqmc}) .Select(r => new { r.djqdm, r.djqmc, }).ToListAsync(); return list; } public async Task> GetCommunityInfo(string djqdm) { var list = await client.Queryable() .Where(r=>r.djqdm== djqdm) .OrderBy(r=>r.xzqdm) .Select(r => new { r.xzqdm, r.xzqmc, }).ToListAsync(); return list; } #endregion #region 上传企业信息 /// /// 上传企业信息 /// /// /// public Response ImportCompanyInfo(IFormFileCollection formFiles) { IFormFile file = formFiles[0]; //存储文件到服务器 if (file != null) { if (file.FileName.IndexOf(".xls") > 0 || file.FileName.IndexOf(".xlsx") > 0) { //数据库导入 IWorkbook workbook = null; if (file.FileName.IndexOf(".xlsx") > 0) { using (var stream = file.OpenReadStream()) { workbook = new XSSFWorkbook(stream);//excel的版本2007 } } else if (file.FileName.IndexOf(".xls") > 0) { using (var stream = file.OpenReadStream()) { workbook = new HSSFWorkbook(stream);//excel的版本2003 } } //数据处理 using (var uow = base.UnitWork.CreateContext()) { //获取sheet ISheet sheet; sheet = workbook.GetSheetAt(0); //处理sheet数据 string res = ""; if (sheet != null) { IRow firstRow = sheet.GetRow(0); if(firstRow.GetCell(32)?.ToString() != "djzqmc") { throw new Exception("非标准模板文档,请重新整理。"); } //获取有效数据行数 int lastRow = sheet.LastRowNum; //int rowCount = 0; //具体excel数据解析 for (int i = 1; i <= lastRow; ++i) { IRow row = sheet.GetRow(i); if (row == null || string.IsNullOrEmpty(row.GetCell(0).ToString())) continue; TaxCompany cy = new TaxCompany(); cy.Id = Guid.NewGuid().ToString(); cy.shxydm =row.GetCell(0)?.ToString(); cy.frdb =row.GetCell(1)?.ToString(); cy.frsfzh =row.GetCell(2)?.ToString(); cy.lxfs=row.GetCell(3)?.ToString(); cy.hy=row.GetCell(4)?.ToString(); cy.jyzt =row.GetCell(5)?.ToString(); cy.ydhm =row.GetCell(6)?.ToString(); cy.ydhh =row.GetCell(7)?.ToString(); cy.dgyf =row.GetCell(8)?.ToString(); cy.yrhm =row.GetCell(9)?.ToString(); cy.yrhh=row.GetCell(10)?.ToString(); cy.rgyf =row.GetCell(11)?.ToString(); cy.yqhm =row.GetCell(12)?.ToString(); cy.yqhh=row.GetCell(13)?.ToString(); cy.qgyf =row.GetCell(14)?.ToString(); cy.yshm =row.GetCell(15)?.ToString(); cy.yshh =row.GetCell(16)?.ToString(); cy.sgyf =row.GetCell(17)?.ToString(); cy.dcr=row.GetCell(18)?.ToString(); if (string.IsNullOrEmpty(row.GetCell(19)?.ToString())) { cy.dcrq = null; } else { cy.dcrq = Convert.ToDateTime(row.GetCell(19)?.DateCellValue); } //cy.dcrq=Convert.ToDateTime(row.GetCell(19).ToString()); cy.clr=row.GetCell(20)?.ToString(); if (string.IsNullOrEmpty(row.GetCell(21)?.ToString())) { cy.clrq = null; } else { cy.clrq = Convert.ToDateTime(row.GetCell(21)?.DateCellValue); } //cy.clrq=Convert.ToDateTime(row.GetCell(21).ToString()); cy.bz=row.GetCell(22)?.ToString(); if (string.IsNullOrEmpty(row.GetCell(23)?.ToString())) { cy.gdzc=null; } else { cy.gdzc=Convert.ToDecimal(row.GetCell(23)?.ToString()); } if (string.IsNullOrEmpty(row.GetCell(24)?.ToString())) { cy.xmgxcc = null; } else { cy.xmgxcc = Convert.ToDecimal(row.GetCell(24)?.ToString()); } if (string.IsNullOrEmpty(row.GetCell(25)?.ToString())) { cy.cscy = null; } else { cy.cscy = Convert.ToDecimal(row.GetCell(25)?.ToString()); } if (string.IsNullOrEmpty(row.GetCell(26)?.ToString())) { cy.gdtzze = null; } else { cy.gdtzze = Convert.ToDecimal(row.GetCell(26)?.ToString()); } var sfgs = row.GetCell(27)?.ToString(); if (string.IsNullOrEmpty(row.GetCell(27)?.ToString())) { cy.sfgsqy = null; } else { if (sfgs == "t") { cy.sfgsqy = true; } else { cy.sfgsqy = false; } //cy.sfgsqy = Convert.ToBoolean(row.GetCell(27).BooleanCellValue); } cy.syrmc=row.GetCell(28)?.ToString(); cy.djqdm=row.GetCell(29)?.ToString(); cy.djqmc=row.GetCell(30)?.ToString(); cy.djzqdm=row.GetCell(31)?.ToString(); cy.djzqmc=row.GetCell(32)?.ToString(); if (uow.TaxCompany.IsAny(u => u.shxydm == cy.shxydm)) { res += "社会信用代码" + cy.shxydm + "已存在,"; } else { uow.TaxCompany.Insert(cy); } } } var flag = uow.Commit(); return new Response { Result = flag, Message = flag == true ? "导入成功" + res : "导入失败" }; } } else { return new Response { Result = false, Message = "上传文件类型错误,请上传Excel文件" }; } } else { return new Response { Result = false, Message = "文件为空" }; } } #endregion } }