From d9666ecd3599c458ddd714dafe96f28bfba93cac Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期二, 04 十一月 2025 08:45:40 +0800
Subject: [PATCH] 绩效查询 未完结的客户数量有问题,查找问题
---
CY_ECommercePlatform/CY.SQLDAL/EC/EC_OrderDAL.cs | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 150 insertions(+), 18 deletions(-)
diff --git a/CY_ECommercePlatform/CY.SQLDAL/EC/EC_OrderDAL.cs b/CY_ECommercePlatform/CY.SQLDAL/EC/EC_OrderDAL.cs
index 624a1f1..7ddd3d8 100644
--- a/CY_ECommercePlatform/CY.SQLDAL/EC/EC_OrderDAL.cs
+++ b/CY_ECommercePlatform/CY.SQLDAL/EC/EC_OrderDAL.cs
@@ -157,6 +157,112 @@
}
+
+ /// <summary>
+ /// 鏂板缓璁㈠崟(鍏紝鍚鏉�)
+ /// </summary>
+ /// <param name="orderBasic">璁㈠崟鍩虹淇℃伅</param>
+ /// <param name="orderExtend">璁㈠崟鎵╁睍淇℃伅</param>
+ /// <param name="tradingSingle">浜ゆ槗鍗�</param>
+ /// <param name="acceptWayByOrder">璁㈠崟鏀惰揣鏂瑰紡</param>
+ /// <param name="payRequest">鏀粯璇锋眰(鍙┖)</param>
+ /// <param name="commission">璁㈠崟鍙楃悊浣i噾(浼犲叆鍊煎ぇ浜�0鏃朵細璋冪敤鍙楃悊璁㈠崟杩涜鍙楃悊)</param>
+ /// <param name="seckillId">绉掓潃涓氬姟缂栧彿(浼犲叆鍊煎ぇ浜�0鏃朵細鍑忓皯绉掓潃鏁伴噺1)</param>
+ /// <param name="orderPrintParameter">鍗板埛鍙傛暟瀵硅薄(绉掓潃璁㈠崟涓嶄紶鍏�)</param>
+ /// <returns></returns>
+ public bool NewOrdersheji(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, Pay_Request payRequest = null, double commission = 0, int seckillId = 0, EC_OrderPrintParameter orderPrintParameter = null)
+ {
+ try
+ {
+ _eC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase);
+ _pay_TradingSingleDAL = new Pay_TradingSingleDAL(_dataBase);
+ _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase);
+ _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
+ _eC_MemberBasicDAL = new EC_MemberBasicDAL(_dataBase);
+ _oA_CorporateClientsDAL = new OA_CorporateClientsDAL(_dataBase);
+ using (System.Transactions.TransactionScope tran = new System.Transactions.TransactionScope())
+ {
+ bool isWin = false;
+ isWin = _eC_OrderBasicDAL.InserModelsheji(orderBasic);
+ if (!isWin)
+ {
+ return false;
+ }
+ acceptWayByOrder.TargetId = tradingSingle.OrderId = orderExtend.Keyid = orderBasic.Keyid;//鑾峰彇杩斿洖鐨勮鍗曞敮涓�缂栧彿
+ isWin = _eC_OrderExtendDAL.InserModel(orderExtend);
+ if (!isWin)
+ {
+ return false;
+ }
+
+ isWin = _eC_AcceptWayByOrderDAL.InserModel(acceptWayByOrder);
+ if (!isWin)
+ {
+ return false;
+ }
+ isWin = _pay_TradingSingleDAL.InserModel(tradingSingle);
+ if (!isWin)
+ {
+ return false;
+ }
+
+ //澧炲姞涓嬪崟鎿嶄綔璁板綍
+ isWin = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate()
+ {
+ OperateType = 1,
+ Operator = orderBasic.Operator,
+ OrderId = orderBasic.Keyid,
+ Remark = string.Empty
+ });
+ if (!isWin)
+ {
+ return false;
+ }
+
+ if (null != payRequest)//鏈夋敮浠樿姹傚垯璋冪敤鏀粯璁㈠崟鏂规硶
+ {
+ //浼犲叆鐨刾ayRequest.Subject蹇呴』涓烘牸寮忓寲鍣� 鏍煎紡渚嬪:{0},{1},{2}
+ //0:Keyid,1:SellerOrderId,2:DocumentName
+ payRequest.Subject = string.Format(payRequest.Subject, orderBasic.Keyid, orderBasic.SellerOrderId, orderBasic.DocumentName);
+ isWin = _eC_OrderBasicDAL.PayOrder(orderBasic.Keyid.Value, payRequest, commission, 0);
+ }
+
+ if (0 < seckillId)
+ {
+ _eC_SeckillBusinessDAL = new EC_SeckillBusinessDAL(_dataBase);
+ //鑻ユ湁绉掓潃涓氬姟缂栧彿鍒欐墸闄ゅ叾绉掓潃鏁伴噺1
+ isWin = _eC_SeckillBusinessDAL.DecreaseSeckillNum(seckillId, 1, orderBasic.BuyerId);
+ }
+ if (!isWin)
+ {
+ return false;
+ }
+ if (null != orderPrintParameter)
+ {
+ _eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase);
+ orderPrintParameter.OrderId = orderBasic.Keyid.Value;
+ isWin = _eC_OrderPrintParameterDAL.InserModel(orderPrintParameter);
+ }
+
+ if (!isWin)
+ {
+ return false;
+ }
+ else
+ tran.Complete();
+ }
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ return true;
+ }
+
+
+
+
/// <summary>
/// 鏂板缓璁㈠崟(鍏紝鍚鏉�)鎵归噺
/// </summary>
@@ -1570,7 +1676,7 @@
fromSouce += @"
select occ.City+occ.County as quyu ,oc.CompanyName as BuyerName,os.Name as BusinessManager,oc.CreateTime,contracttype.Name as ContracttypeName,oc.Contractmoney
-,expiretype.Name as ExpiretypeName,oc.ExpireTime,ob.SumPrice, ob.PayedMoney,oc.CustomerId
+,expiretype.Name as ExpiretypeName,oc.ExpireTime,ob.SumPrice, ob.PayedMoney,oc.CustomerId,ob.OrAllUnPayedMoney
from [OA_CorporateClients] oc
@@ -1578,16 +1684,32 @@
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
left join [Sys_Dictionary] contracttype on contracttype.DicType='鍚堝悓閲戦' and contracttype.MeanValue = oc.Contracttype
left join [Sys_Dictionary] expiretype on expiretype.DicType='鍒版湡鏃堕棿' and expiretype.MeanValue = oc.Expiretype
-left join ( select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang
- from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
- left join EC_AwbInfo ea on ob.Keyid = ea.Keyid Inner Join OA_CorporateClients occ on ob.BuyerId = occ.Keyid where (occ.WanjieTime IS NULL OR DATEDIFF(DAY,occ.WanjieTime,ob.CreateTime)>=0)
-
- group by ob.BuyerId ) ob on oc.Keyid = ob.BuyerId
+left join ( select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang,SUM( Case When ( (ob.SumPrice-ts.PayedMoney) <=0 or ob.PayState =-1) then 0 else (ob.SumPrice-ts.PayedMoney) end) OrAllUnPayedMoney "
+ + " from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId and ob.OrderState != 0 and ob.SellerId = '" + FirmId + "' ) "
+ // + "left join EC_AwbInfo ea on ob.Keyid = ea.Keyid Inner Join OA_CorporateClients occ on ob.BuyerId = occ.Keyid "
+ + " and (ob.OrderState <> 0 or (ob.OrderState = 0 and ts.PayedMoney > 0))"
+ + "group by ob.BuyerId ) ob on oc.Keyid = ob.BuyerId " + where;
- " + where;
+
fromSouce += " )as t ";
+
+
+
+
+
+ var ssss = _dataBase.SelectModel<Model.OA_DeliverPlan>(" sum(t.Contractmoney) as Contractmoney,sum(t.SumPrice) as SumPrice,sum(t.PayedMoney) as PayedMoney,sum(t.OrAllUnPayedMoney) OrAllUnPayedMoney ", fromSouce);
+ if (ssss.Count > 0)
+ {
+ var aaaaa = ssss.First();
+ pagination.heji1 = aaaaa.Contractmoney ?? 0;
+ pagination.heji2 = aaaaa.SumPrice ?? 0;
+ pagination.heji3 = aaaaa.UnorderMoney ?? 0;
+ pagination.heji4 = aaaaa.PayedMoney ?? 0;
+ pagination.heji5 = aaaaa.OrAllUnPayedMoney;
+ }
+
var result = _dataBase.SelectModelPage<Model.OA_DeliverPlan>(pagination, selectTarget, fromSouce, " CreateTime DESC ");//鎵ц鏌ヨ
return null == result ? null : result;//杩斿洖缁撴灉
@@ -1612,26 +1734,26 @@
string fromSouce = "( ";
- fromSouce += " select os.DepartmentId,os.[Name] as BusinessManager ,os.[Keyid] as BusinessManagerId, os.FirmId,gendan.gendanshuliang,xinzeng.xinzengshuliang,wanjie.wanjieshuliang,xiadan.xiadanshuliang,ob.shuliang,ob.SumPrice,ob.PayedMoney,eob.kaipiaojine,huifang.huifangshuliang ,'"+ chaxuntime + "' as chaxuntime ";
+ fromSouce += " select os.DepartmentId,os.[Name] as BusinessManager ,os.[Keyid] as BusinessManagerId, os.FirmId,gendan.gendanshuliang,xinzeng.xinzengshuliang,wanjie.wanjieshuliang,xiadan.xiadanshuliang,ob.shuliang,ob.SumPrice,ob.PayedMoney,eob.kaipiaojine,huifang.huifangshuliang ,'"+ chaxuntime + "' as chaxuntime,ob.OrAllUnPayedMoney ";
fromSouce += " from [OA_Staff] os ";
fromSouce += " left join ( select COUNT(*) gendanshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where ( oc.Shifouwanjie is null or oc.Shifouwanjie=2 ) and DATEDIFF(MONTH,oc.CreateTime,'" + chaxuntime + "') >=0 group by oc.BusinessManagerId ) gendan on gendan.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) xinzengshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where DATEDIFF(MONTH,oc.CreateTime,'"+ chaxuntime + "') =0 group by oc.BusinessManagerId ) xinzeng on xinzeng.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) wanjieshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where oc.Shifouwanjie=1 and DATEDIFF(MONTH,oc.[LastUpdateTime],'" + chaxuntime + "') =0 group by oc.BusinessManagerId ) wanjie on wanjie.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT( distinct oc.Keyid) xiadanshuliang ,oc.BusinessManagerId from OA_CorporateClients oc Inner Join EC_OrderBasic ob On oc.Keyid=ob.[BuyerId] where DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "') =0 group by oc.BusinessManagerId ) xiadan on xiadan.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) huifangshuliang,occ.Creater as BusinessManagerId from OA_CorporateClientsVisit occ where DATEDIFF(MONTH,occ.[VisitTime],'" + chaxuntime + "') =0 group by occ.Creater ) huifang on huifang.BusinessManagerId = os.MemberId ";
- fromSouce += " left join ( select oc.BusinessManagerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang ";
+ fromSouce += " left join ( select oc.BusinessManagerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang ,SUM( Case When ( (ob.SumPrice-ts.PayedMoney) <=0 or ob.PayState =-1) then 0 else (ob.SumPrice-ts.PayedMoney) end) OrAllUnPayedMoney ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
- fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid where DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "') =0 ";
+ fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid where DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "') =0 and ob.OrderState !=0 and ob.OrderState !=-2 and ob.[SumPrice] >0 ";
fromSouce += " group by oc.BusinessManagerId ) ob on os.Keyid = ob.BusinessManagerId ";
fromSouce += " left join ( select oc.BusinessManagerId,sum(ob.SumPrice) kaipiaojine ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid ";
- fromSouce += " left join OA_Kaipiaoshenqing ks on ks.Keyid = oe.KaipiaoshenqingId ";
+ fromSouce += " left join OA_Kaipiaoshenqing ks on ks.Keyid = oe.KaipiaoshenqingId and ob.OrderState !=0 and ob.OrderState !=-2 ";
fromSouce += " where ks.Kaipiaoshenqing = 3 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "') =0 ";
fromSouce += " group by oc.BusinessManagerId ) eob on os.Keyid = eob.BusinessManagerId ";
fromSouce += " where os.Status='鍦ㄨ亴' And IsBusinessManager='true' " + where;
@@ -1648,27 +1770,28 @@
from.Append(" ( ");
from.Append(" select ob.* from OA_Staff os inner join [OA_CorporateClients] oc on oc.BusinessManagerId = os.Keyid and os.Keyid="+ oA_DeliverPlan.BusinessManagerId + " and oc.Paytime =1 ");
from.Append(" inner join EC_OrderBasic ob on ob.BuyerId =oc.Keyid and ob.OrderState !=0 and ob.OrderState !=-2 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "')=0 and DATEDIFF(MONTH,ob.CreateTime,'"+ datetimenow + "') > 0 ");
- from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and oe.KaipiaoshenqingId is null ");
+ from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and ob.PayState !=-1 and ob.[SellerId] = '" + FirmId + "' and ob.[SumPrice] >0 "
+ ); //oe.KaipiaoshenqingId is null
from.Append(" UNION ");
from.Append(" select ob.* from OA_Staff os inner join [OA_CorporateClients] oc on oc.BusinessManagerId = os.Keyid and os.Keyid="+ oA_DeliverPlan.BusinessManagerId + " and oc.Paytime =2 ");
from.Append(" inner join EC_OrderBasic ob on ob.BuyerId =oc.Keyid and ob.OrderState !=0 and ob.OrderState !=-2 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "')=0 and DATENAME(year, ob.CreateTime) +'绗�'+DATENAME(quarter, ob.CreateTime) <DATENAME(year, '"+ datetimenow + "') +'绗�'+DATENAME(quarter, '"+ datetimenow + "') ");
- from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and oe.KaipiaoshenqingId is null ");
+ from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and ob.PayState !=-1 and ob.[SellerId] = '" + FirmId + "' and ob.[SumPrice] >0 ");
from.Append(" UNION ");
from.Append(" select ob.* from OA_Staff os inner join [OA_CorporateClients] oc on oc.BusinessManagerId = os.Keyid and os.Keyid="+ oA_DeliverPlan.BusinessManagerId + " and oc.Paytime =3 ");
from.Append(" inner join EC_OrderBasic ob on ob.BuyerId =oc.Keyid and ob.OrderState !=0 and ob.OrderState !=-2 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "')=0 and DATENAME(year, ob.CreateTime) +'绗�'+CONVERT(varchar,(month(ob.CreateTime)+5)/6)+'鍗婂勾'<DATENAME(year,'"+ datetimenow + "') +'绗�'+CONVERT(varchar,(month('"+ datetimenow + "')+5)/6)+'鍗婂勾' ");
- from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and oe.KaipiaoshenqingId is null ");
+ from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and ob.PayState !=-1 and ob.[SellerId] = '" + FirmId + "' and ob.[SumPrice] >0 ");
from.Append(" UNION ");
from.Append(" select ob.* from OA_Staff os inner join [OA_CorporateClients] oc on oc.BusinessManagerId = os.Keyid and os.Keyid="+ oA_DeliverPlan.BusinessManagerId + " and oc.Paytime =4 ");
from.Append(" inner join EC_OrderBasic ob on ob.BuyerId =oc.Keyid and ob.OrderState !=0 and ob.OrderState !=-2 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "')=0 and DATENAME(year, ob.CreateTime)+'骞�' <DATENAME(year, '"+ datetimenow + "')+'骞�' ");
- from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and oe.KaipiaoshenqingId is null ");
+ from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and ob.PayState !=-1 and ob.[SellerId] = '" + FirmId + "' and ob.[SumPrice] >0 ");
from.Append(" UNION ");
from.Append(" select ob.* from OA_Staff os inner join [OA_CorporateClients] oc on oc.BusinessManagerId = os.Keyid and os.Keyid="+ oA_DeliverPlan.BusinessManagerId + " and oc.Paytime =6 and oc.Shifouwanjie=1 ");
from.Append(" inner join EC_OrderBasic ob on ob.BuyerId =oc.Keyid and ob.OrderState !=0 and ob.OrderState !=-2 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "')=0 ");
- from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and oe.KaipiaoshenqingId is null ");
+ from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and ob.PayState !=-1 and ob.[SellerId] = '" + FirmId + "' and ob.[SumPrice] >0 ");
from.Append(" UNION ");
from.Append(" select ob.* from OA_Staff os inner join [OA_CorporateClients] oc on oc.BusinessManagerId = os.Keyid and os.Keyid="+ oA_DeliverPlan.BusinessManagerId + " and oc.Paytime =7 ");
from.Append(" inner join EC_OrderBasic ob on ob.BuyerId =oc.Keyid and ob.OrderState !=0 and ob.OrderState !=-2 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "')=0 and DATEDIFF(day,ob.CreateTime,GETDATE()) > oc.Paydays ");
- from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and oe.KaipiaoshenqingId is null ");
+ from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and ob.PayState !=-1 and ob.[SellerId] = '" + FirmId + "' and ob.[SumPrice] >0 ");
from.Append(" UNION ");
from.Append(" select ob.* from OA_Staff os inner join [OA_CorporateClients] oc on oc.BusinessManagerId = os.Keyid and os.Keyid="+ oA_DeliverPlan.BusinessManagerId + " and oc.Paytime =5 ");
from.Append(" inner join EC_OrderBasic ob on ob.BuyerId =oc.Keyid and ob.OrderState !=0 and ob.OrderState !=-2 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "')=0 and ");
@@ -1678,7 +1801,7 @@
from.Append(" case when DATEDIFF(day,'"+ datetimenow + "',DATENAME(year, '"+ datetimenow + "')+'-03-01')>0 then CONVERT(varchar,YEAR('"+ datetimenow + "')-1)+'鑷�'+CONVERT(varchar,YEAR('"+ datetimenow + "'))+ '1瀛︽湡' ");
from.Append(" when DATEDIFF(day,'"+ datetimenow + "',DATENAME(year, '"+ datetimenow + "')+'-09-01')<=0 then CONVERT(varchar,YEAR('"+ datetimenow + "'))+'鑷�'+CONVERT(varchar,YEAR('"+ datetimenow + "')+1)+ '1瀛︽湡' ");
from.Append(" else CONVERT(varchar,YEAR('"+ datetimenow + "')-1)+'鑷�'+CONVERT(varchar,YEAR('"+ datetimenow + "'))+'2瀛︽湡' end ");
- from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and oe.KaipiaoshenqingId is null ");
+ from.Append(" inner join EC_OrderExtend oe on ob.Keyid=oe.Keyid and ob.PayState !=-1 and ob.[SellerId] = '" + FirmId + "' and ob.[SumPrice] >0 ");
from.Append(" ) as t ");
@@ -1686,6 +1809,15 @@
var eC_OrderBasics = _dataBase.SelectModel<Model.EC_OrderBasic>(" t.* ", from.ToString());
oA_DeliverPlan.fapiaoshuliang = eC_OrderBasics.Count;
+ foreach(var eC_OrderBasic in eC_OrderBasics)
+ {
+ oA_DeliverPlan.fapiaoshuliangName += eC_OrderBasic.Keyid + ",";
+ }
+ if (!string.IsNullOrEmpty(oA_DeliverPlan.fapiaoshuliangName))
+ {
+ oA_DeliverPlan.fapiaoshuliangName = oA_DeliverPlan.fapiaoshuliangName.Trim(',');
+ }
+
}
return null == result ? null : result;//杩斿洖缁撴灉
--
Gitblit v1.9.1