using Ewide.NbzsZheliban.Entity; using Ewide.NbzsZheliban.Entity.Extends; using Ewide.NbzsZheliban.Tools; using Furion.JsonSerialization; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json.Linq; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ewide.NbzsZheliban.Service { [ApiDescriptionSettings(Name = "数据接口")] public class DataService : BaseService { private readonly ISqlSugarRepository repository; private readonly SqlSugarClient db; private readonly IJsonSerializerProvider _jsonSerializer; public DataService(ISqlSugarRepository sqlSugarRepository, IJsonSerializerProvider jsonSerializer) { repository = sqlSugarRepository; db = repository.Context; _jsonSerializer = jsonSerializer; } /// /// 被征收人关联的项目列表 /// /// /// [HttpGet("/project/list")] [Microsoft.AspNetCore.Authorization.AllowAnonymous] public async Task PrjList([FromBody] JObject args) { var cardno = args.GetJsonValue("cardno", isThrowExp: true); //住宅调查表 var list_zz_dcb = await db.Ado.SqlQueryAsync("select ID dcbId,ProjectId PrjId from InvestigateTable b where b.ExpropriatedCardNo=@ExpropriatedCardNo", new List { new SugarParameter("ExpropriatedCardNo", cardno, System.Data.DbType.String) }.ToArray()); //非住宅调查表 var list_fzz_dcb = await db.Ado.SqlQueryAsync("select ID dcbId,ProjectId PrjId from NonResidentialInvestigateTable b where b.PropertyRightCardNo=@ExpropriatedCardNo", new List { new SugarParameter("ExpropriatedCardNo", cardno, System.Data.DbType.String) }.ToArray()); //调查表集合 var list_dcbs = list_zz_dcb.Concat(list_fzz_dcb); //项目列表 var list_projects = await db.Ado.SqlQueryAsync("select a.ID Prjid,a.area,a.HouseAcquisitionDepartment as zsbm,a.CollectDecisionNo1 as year,(isnull(a.CollectDecisionNoHeadName,'')+'['+cast(a.CollectDecisionNo1 as varchar)+']'+ isnull(cast(a.CollectDecisionNo2 as varchar),'')+'号') zsjdh,dbo.get_current_state(a.ID) CurrentState from Projects a where ID in ('" + string.Join("','", list_dcbs.Select(p => p.PrjId)) + "') "); //分户评估 var InvestigateTableID_param = "'" + string.Join("','", list_dcbs.Select(p => p.dcbId)) + "'"; var list_fhpgs = await db.Ado.SqlQueryAsync("select e.ProjectId as PrjId ,d.AssessmentNo,e.HouseAddress,d.countValue from InvestigateTable_Assessment d inner join InvestigateTable e on d.InvestigateTableId=e.ID where d.InvestigateTableID in ( " + InvestigateTableID_param + " ) union all select e.ProjectId as PrjId ,AssessmentNo, e.HouseAddress, d.countValue from NonInvestigateTable_Assessment d inner join NonResidentialInvestigateTable e on d.NonInvestigateTableID = e.ID where d.NonInvestigateTableID in ( " + InvestigateTableID_param + " ) ;"); //补偿协议 var list_bcxys = await db.Ado.SqlQueryAsync("select isnull(d.CollectDecisionNoHeadName,'')+isnull(d.No1,'')+'-'+isnull(d.No2,'')+(case when (d.No3 is null or d.No3 = '') then '' else ('-'+d.No3) end ) XyNo,d.SwitchProductionWay,e.HouseAddress,d.SummationShouldCompensateMoney,e.ProjectId as PrjId from ResidentialAgreement d inner join InvestigateTable e on d.InvestigateTableId=e.ID where d.InvestigateTableID in ( " + InvestigateTableID_param + " ) union all select isnull(d.CollectDecisionNoHeadName, '') + isnull(d.No2, '') + '-' + isnull(d.No3, '') XyNo , d.SwitchProductionWay, e.HouseAddress, d.SummationShouldCompensateMoney, e.ProjectId as PrjId from NonResidentialAgreement d inner join NonResidentialInvestigateTable e on d.NonInvestigateTableID = e.ID where d.NonInvestigateTableID in ( " + InvestigateTableID_param + " ); "); list_projects.ForEach(p => { p.FhpgList = list_fhpgs.Where(a => a.PrjId == p.PrjId); p.BcxyList = list_bcxys.Where(a => a.PrjId == p.PrjId); }); H5IndexModel h5IndexModel = new() { PrjList = list_projects }; return h5IndexModel; } } }