123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Threading.Tasks;
- using Common.Model;
- using CoreEntity.Entity;
- using JCSoft.WX.Framework.Api;
- using LigerRM.Common;
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Caching.Memory;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Converters;
- using Newtonsoft.Json.Serialization;
- using PublicLibrary.Json;
- using PublicLibrary.Model;
- using SupplierWeb.Codes.mvc;
- using ZcPeng.PublicLibrary;
- namespace SupplierWeb.Controllers
- {
- [Route("web/pay")]
- [ApiController]
- public class PayController : BaseController
- {
- public PayController(IMemoryCache cache, IApiClient client) : base(cache, client)
- {
- }
- [AuthPermission]
- [HttpPost]
- [Route("getapplygoods")]
- public JsonResult ApplyGoods(string[] filters, Int32 pageIndex, Int32 pageSize,
- string sortField, Int32 sortDirection, string[] sumFields, [FromBody] dynamic data)
- {
- List<QueryFilter> filterList = new List<QueryFilter>();
- if (data != null)
- {
- if (data.filters.Count > 0)
- {
- var list = JsonConvert.SerializeObject(data.filters);
- filterList = JsonConvert.DeserializeObject<List<QueryFilter>>(list);
- }
- pageIndex = data.pageIndex;
- pageSize = data.pageSize;
- sortField = data.sortField;
- sortDirection = data.sortDirection;
- sumFields = data.sumFields.ToObject<string[]>();
- }
- var isAce = sortDirection == 0;
- var direct = isAce ? " asc" : " desc";
- var queryCondition = string.Empty;
- var param = new List<SqlParameter>(0);
- var start = (pageIndex - 1) * pageSize;
- var end = (start + 1 + pageSize);
- var dt = new DataTable();
- if (filterList != null)
- {
- queryCondition = QueryFilter.getFilterSqlParam(filterList.ToArray(), out param, new APGoodsMT(), "A.");
- }
- queryCondition = queryCondition.Replace("A.StaffName", "C.StaffName");
- queryCondition = queryCondition.Replace("A.Contact", "D.Contact");
- queryCondition = queryCondition.Replace("A.K_djpjzt", "C1.K_djpjzt");
- queryCondition = queryCondition.Replace("A.IsPrepay", "B.IsPrepay");
- queryCondition = queryCondition.Replace("A.PrepayAmt", "B.PrepayAmt");
- queryCondition = queryCondition.Replace("A.BusinessName", "E.BusinessName");
- queryCondition = queryCondition.Replace("A.K_IsApplyP", "IsNull(K_IsApplyP,'N')");
- if (sortField.IndexOf(",") > 0)
- ;
- else
- sortField = "A."+sortField;
- sortField = sortField.Replace("A.StaffName", "C.StaffName");
- sortField = sortField.Replace("A.Contact", "D.Contact");
- sortField = sortField.Replace("A.K_djpjzt", "C1.K_djpjzt");
- sortField = sortField.Replace("A.IsPrepay", "B.IsPrepay");
- sortField = sortField.Replace("A.PrepayAmt", "B.PrepayAmt");
- sortField = sortField.Replace("A.BusinessName", "E.BusinessName");
- var filter = FilterTranslator.ruleSql(ref param);
- var sql0 =
- $" select * from ";
- var sql1 = $" (select A.*," +
- $"B2.K_ContactId,B.OppContId,B.PayType,B.K_BillCode,B2.Source,B.IsPrepay,B.PrepayAmt," +
- $"B31.BillNo PBillNo,B4.BillCode as PBillCode,E.BusinessName," +
- $" C1.K_djpjzt as K_djpjzt,C.StaffName,D.Contact,row_number() over (order by " + sortField + " " + direct + ") as rowNum " +
- $" from APGoodsMT A " +
- $" left join PurInMT B on A.BillNo = B.BillNo and A.entid = B.entid " +
- $" left join PurOrderMT B2 on B.K_BillCode = B2.BillCode and B.entid = B2.entid " +
- $" left join (select distinct RfBillNo,K_djpjzt,a1.EntId from K_PurFP a1 " +
- $" left join InvoiceBill b1 on a1.billno = b1.billno and a1.entid = b1.entid " +
- $" where a1.K_djpjzt='已签收')C1 on B.BillNo = C1.RfBillNo and B.entid = C1.entid " +
- $" left join(select B3.entid, B3.RfBillNo, min(b3.BillNo) as BillNo from PlanBillDT B3 " +
- $" group by B3.entid,B3.RfBillNo " +
- $") B31 on B31.RfBillNo = A.BillNo and B31.entid = A.entid " +
- $" left join PlanMT B4 on B4.BillNo = B31.BillNo and B4.entid = B31.entid " +
- //$" left join PlanBillDT B3 on B3.RfBillNo = A.BillNo and B3.entid = A.entid " +
- //$" left join PlanMT B4 on B4.BillNo = B3.BillNo and B4.entid = B3.entid " +
- $" left join StaffDoc C on A.SaleManId = C.StaffId and A.entid = C.entid " +
- $" left join ContactDoc D on D.ContactId = B2.K_ContactId and D.entid = B2.entid " +
- //$" left join ContactDoc D1 on B.OppContId = D1.ContactId and A.entid = D.entid " +
- $" left join BusinessDoc E on A.RfId = E.BusinessId and A.entid = E.entid " +
- $" where 1 = 1 {queryCondition}" +
- $"" + filter +
- $" ) R";
- var sql2 = $" where rowNum > {start} and rowNum < {end}";
- DataAccess.GetValues(sql0 + sql1 + sql2, ref dt, param.ToArray(), out var resultstr);
- IList<APGoodsMT> result = new List<APGoodsMT>();
- if (dt != null && dt.Rows.Count > 0)
- {
- result = ModelConvertHelper<APGoodsMT>.ConvertToModel(dt);
- }
-
- //var setting = new JsonSerializerSettings
- //{
- // ContractResolver = new DefaultContractResolver()
- //};
- //JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
- //{
- // //日期类型默认格式化处理
- // //setting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
- // //setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
- // //空值处理
- // //setting.NullValueHandling = NullValueHandling.Ignore;
- // //高级用法九中的Bool类型转换 设置
- // //setting.Converters.Add(new BoolConvert("是,否"));
- // IsoDateTimeConverter timejson = new IsoDateTimeConverter
- // {
- // DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
- // };
- // setting.Converters.Add(timejson);
- // return setting;
- //});
- var jsonData = JsonConvert.SerializeObject(result);
- var countSql =
- $"select count(1) from " + sql1;
- var count = DataAccess.GetRowCountDefine(countSql, param.ToArray(), out var msg);
- return Json(new
- {
- items = JsonConvert.DeserializeObject(jsonData),
- sum = new { },
- totalCount = count,
- msg
- });
- }
- [AuthPermission]
- [HttpPost]
- [Route("getapplygoodsdt")]
- public JsonResult ApplyGoodsDT(string[] filters, Int32 pageIndex, Int32 pageSize,
- string sortField, Int32 sortDirection, string[] sumFields, [FromBody] dynamic data)
- {
- List<QueryFilter> filterList = new List<QueryFilter>();
- if (data != null)
- {
- if (data.filters.Count > 0)
- {
- var list = JsonConvert.SerializeObject(data.filters);
- filterList = JsonConvert.DeserializeObject<List<QueryFilter>>(list);
- }
- pageIndex = data.pageIndex;
- pageSize = data.pageSize;
- sortField = data.sortField;
- sortDirection = data.sortDirection;
- sumFields = data.sumFields.ToObject<string[]>();
- }
- var isAce = sortDirection == 1;
- var direct = isAce ? " asc" : " desc";
- var queryCondition = string.Empty;
- var param = new List<SqlParameter>(0);
- var start = (pageIndex - 1) * pageSize;
- var end = (start + 1 + pageSize);
- var dt = new DataTable();
- if (filterList != null)
- {
- queryCondition = QueryFilter.getFilterSqlParam(filterList.ToArray(), out param, new APGoodsDT(), "A.");
- }
- queryCondition = queryCondition.Replace("A.PK", "Concat(A.BillNo,'_',A.BillSn)");
- queryCondition = queryCondition.Replace("A.GoodsName", "C.GoodsName");
- queryCondition = queryCondition.Replace("A.GoodsCode", "C.GoodsCode");
- sortField = "A." + sortField;
- sortField = sortField.Replace("A.PK", "Concat(A.BillNo,'_',A.BillSn)");
- sortField = sortField.Replace("A.GoodsName", "C.GoodsName");
- sortField = sortField.Replace("A.GoodsCode", "C.GoodsCode");
- var filter = FilterTranslator.ruleSql(ref param);
- var sql0 =
- $" select * from ";
- var sql1 = $" (select Concat(A.BillNo,'_',A.BillSn) as PK,A.*,B.Unit,C.GoodsName,C.GoodsCode," +
- $" row_number() over (order by " + sortField + " " + direct + ") as rowNum " +
- $" from APGoodsDT A " +
- $" left join PurInDT B on A.BillNo = B.BillNo and A.BillSn = B.BillSn and A.entid = B.entid " +
- $" left join PurInMT B0 on B.BillNo = B0.BillNo and B.entid = B0.entid " +
- $" left join PurOrderMT B2 on B0.K_BillCode = B2.BillCode and B0.entid = B2.entid " + filter +
- $" left join GoodsDoc C on C.GoodsId = B.GoodsId and C.entid = B.entid " +
- $" where 1 = 1 {queryCondition}" +
- $"" + filter +
- $" ) R";
- var sql2 = $" where rowNum > {start} and rowNum < {end}";
- DataAccess.GetValues(sql0 +sql1 + sql2, ref dt, param.ToArray(), out var msg);
- IList<APGoodsDT> result = new List<APGoodsDT>();
- if (dt != null && dt.Rows.Count > 0)
- {
- result = ModelConvertHelper<APGoodsDT>.ConvertToModel(dt);
- }
- //var setting = new JsonSerializerSettings
- //{
- // ContractResolver = new DefaultContractResolver()
- //};
- //JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
- //{
- // //日期类型默认格式化处理
- // //setting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
- // //setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
- // //空值处理
- // //setting.NullValueHandling = NullValueHandling.Ignore;
- // //高级用法九中的Bool类型转换 设置
- // //setting.Converters.Add(new BoolConvert("是,否"));
- // IsoDateTimeConverter timejson = new IsoDateTimeConverter
- // {
- // DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
- // };
- // setting.Converters.Add(timejson);
- // return setting;
- //});
- var jsonData = JsonConvert.SerializeObject(result);
- var countSql =
- $"select count(1) from " +
- sql1;
- var count = DataAccess.GetRowCountDefine(countSql, param.ToArray(), out var msg1);
- return Json(new
- {
- items = JsonConvert.DeserializeObject(jsonData),
- sum = new { },
- totalCount = count,
- msg
- });
- }
- }
- }
|