TaxManagement/OpenAuth.App/ServiceApp/CompanyManage/TaxCompanyApp.cs

460 lines
19 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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<TaxCompany, SugarDbContext>
{
private ISqlSugarClient client;
#region 构造函数
public TaxCompanyApp(
ISugarUnitOfWork<SugarDbContext> unitWork,
ISimpleClient<TaxCompany> repository,
IAuth auth,
ISqlSugarClient sqlSugarClient
) : base(unitWork, repository, auth)
{
this.client = sqlSugarClient;
}
#endregion
#region 获取分页数据列表
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<dynamic>>>> LoadCompanyPageList(TaxCompanyReq req)
{
RefAsync<int> totalCount = 0;
var query = client.Queryable<TaxCompany>()
.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<dynamic>(r => new
{
RowNumber = SqlFunc.RowNumber(r.Id),
r.Id,
r.shxydm,
r.syrmc,
r.hy,
r.djqmc,
r.djzqmc,
//syrlx= SqlFunc.Subqueryable<TaxZongdi>().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<PageInfo<List<dynamic>>>
{
Code = 200,
Message = "success",
Result = new PageInfo<List<dynamic>>
{
Items = result,
Total = totalCount
}
};
}
/// <summary>
/// 根据id获取单个企业信息
/// </summary>
/// <param name="id">企业id</param>
/// <returns></returns>
public async Task<TaxCompany> GetConpanyInfoById(string id)
{
var list = await client.Queryable<TaxCompany>().Where(r=>r.Id==id).FirstAsync();
return list;
}
/// <summary>
/// 根据社会信用代码获取单个企业信息
/// </summary>
/// <param name="shxydm">企业社会信用代码</param>
/// <returns></returns>
public async Task<TaxCompany> GetConpanyInfoByshxydm(string shxydm)
{
var list = await client.Queryable<TaxCompany>().Where(r => r.shxydm == shxydm).FirstAsync();
return list;
}
/// <summary>
/// 获取导出数据信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<Response<System.Data.DataTable>> LoadCompanyPageExport(TaxCompanyReq req)
{
var query = client.Queryable<TaxCompany>()
.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<dynamic>(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<System.Data.DataTable>
{
Code = 200,
Message = "success",
Result = result
};
}
#endregion
#region 编辑企业信息
/// <summary>
/// 添加企业信息
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<Response<bool>> 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<bool>
{
Result = flag && insert,
Message = (flag && insert) == true ? "success" : "error"
};
}
}
/// <summary>
/// 修改企业信息
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<Response<bool>> 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<bool>
{
Result = flag && update,
Message = (flag && update) == true ? "success" : "error"
};
}
}
/// <summary>
/// 删除企业
/// </summary>
/// <param name="ids"></param>
public async Task<Response<bool>> 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<bool>
{
Result = flag&& delete,
Message = flag && delete == true ? "success" : "error"
};
}
}
#endregion
#region 查询乡镇
/// <summary>
/// 查询乡镇
/// </summary>
/// <returns></returns>
public async Task<List<dynamic>> GetStreetInfo()
{
var list = await client.Queryable<TaxXzqh>()
.OrderBy(r=>r.djqdm)
.GroupBy(r => new {r.djqdm,r.djqmc})
.Select<dynamic>(r => new
{
r.djqdm,
r.djqmc,
}).ToListAsync();
return list;
}
public async Task<List<dynamic>> GetCommunityInfo(string djqdm)
{
var list = await client.Queryable<TaxXzqh>()
.Where(r=>r.djqdm== djqdm)
.OrderBy(r=>r.xzqdm)
.Select<dynamic>(r => new
{
r.xzqdm,
r.xzqmc,
}).ToListAsync();
return list;
}
#endregion
#region 上传企业信息
/// <summary>
/// 上传企业信息
/// </summary>
/// <param name="formFiles"></param>
/// <returns></returns>
public Response<bool> 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<bool>
{
Result = flag,
Message = flag == true ? "导入成功" + res : "导入失败"
};
}
}
else
{
return new Response<bool>
{
Result = false,
Message = "上传文件类型错误请上传Excel文件"
};
}
}
else
{
return new Response<bool>
{
Result = false,
Message = "文件为空"
};
}
}
#endregion
}
}