From a18026e5bccdef029afa1d3dc4c01f07865856e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9C=B1=E6=96=8C?= <1324361213@qq.com>
Date: Thu, 31 Jul 2025 17:39:21 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=9A=E6=97=B6=E5=B1=9E?=
=?UTF-8?q?=E6=80=A7=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E7=B4=AF=E8=AE=A1?=
=?UTF-8?q?=E6=A0=B8=E9=94=80=E9=87=91=E9=A2=9D=E5=AD=97=E6=AE=B5=EF=BC=8C?=
=?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E5=8F=91=E7=A5=A8=E5=8F=8D=E5=AE=A1?=
=?UTF-8?q?=E6=A0=B8=E6=97=B6=E6=B2=A1=E6=9C=89=E5=88=B7=E6=96=B0=E7=B4=AF?=
=?UTF-8?q?=E8=AE=A1=E5=BC=80=E7=A5=A8=E9=87=91=E9=A2=9D=E5=AD=97=E6=AE=B5?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=20=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E7=B4=AF=E8=AE=A1=E5=BC=80=E7=A5=A8=E9=87=91=E9=A2=9D=E5=8F=96?=
=?UTF-8?q?=E6=95=B0=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
TODO:销售发票提交校验逻辑修改
---
GZ_LTHPilot_ORDER.csproj | 3 +-
ScheduleService/SaleOrderReceiveAmount.cs | 60 ++++++++++++++++---
.../SaleOrderSumSicsAmountRefresh.cs | 2 -
Services/SaleSicsService.cs | 26 +++++---
T_IV_SALESIC/ServicePlugIn/UnAudit.cs | 3 +-
5 files changed, 74 insertions(+), 20 deletions(-)
diff --git a/GZ_LTHPilot_ORDER.csproj b/GZ_LTHPilot_ORDER.csproj
index 59ccb0c..17f42e3 100644
--- a/GZ_LTHPilot_ORDER.csproj
+++ b/GZ_LTHPilot_ORDER.csproj
@@ -440,6 +440,7 @@
- copy $(TargetPath) "D:\kingdee\K3Cloud\WebSite\Bin\$(TargetFileName)"
+
+
\ No newline at end of file
diff --git a/ScheduleService/SaleOrderReceiveAmount.cs b/ScheduleService/SaleOrderReceiveAmount.cs
index 36d1864..ed00e78 100644
--- a/ScheduleService/SaleOrderReceiveAmount.cs
+++ b/ScheduleService/SaleOrderReceiveAmount.cs
@@ -29,20 +29,61 @@ namespace GZ_LTHPilot_ORDER.ScheduleService
var orgList = orgService.GetOrgList();
var tableName = tempTableService.CreateTempTable();
CreateTempTable(ctx, tableName);
+ var advanceAays = GetAdvanceAays(schedule);
+ var planStartDate = DateTime.Now;
foreach (var item in orgList)
{
- var advanceAays = GetAdvanceAays(schedule);
+ // 获取组织Id
var orgId = item["FORGID"].ToString();
- // 提前天的日期
- var startDate = DateTime.Now.Date.AddDays(-advanceAays - 1);
- var endDate = DateTime.Now;
- var receiveAmountList = saleOrderService.GetSaleOrderReceiveAmountByDate(orgId, startDate, endDate);
- InsertDataToTempTable(ctx, tableName, orgId, receiveAmountList);
+
+ // 循环查询销售订单执行明细表,每次查询一个月的数据, 将数据插入自定义临时表中
+ var startDate = planStartDate.AddDays(-advanceAays);
+ var endDate = startDate.AddMonths(1);
+ // 如果开始时间大于计划开始时间,说明结束了
+ while (startDate > planStartDate)
+ {
+ var receiveAmountList = saleOrderService.GetSaleOrderReceiveAmountByDate(orgId, startDate, endDate);
+ InsertDataToTempTable(ctx, tableName, orgId, receiveAmountList);
+ startDate = startDate.AddMonths(1);
+ endDate = startDate.AddMonths(1);
+ }
}
+ UpdateSaleOrderReceiveAmount(ctx, tableName);
+ tempTableService.DropTempTable(tableName);
+
+ }
+
+ ///
+ /// 更新销售订单累计核销金额
+ ///
+ ///
+ ///
+ ///
+ private int UpdateSaleOrderReceiveAmount(Context ctx, string tableName)
+ {
+ var sql = $@"
+UPDATE t1
+SET
+ t1.F_AMOUNT = FAMOUNT
+FROM
+ T_SAL_ORDER t1
+ INNER JOIN {tableName} t2 ON t1.FSALEORGID = t2.FORGID
+ AND t1.FBILLNO = t2.FBILLNO
+";
+
+
+ return DBServiceHelper.Execute(ctx, sql);
}
-
+ ///
+ /// 将查询的数据插入临时表
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
private int InsertDataToTempTable(Context ctx, string tableName, string orgId, List saleExecuteOuts)
{
var values = saleExecuteOuts.Select(n => $"({orgId},'{n.FSALEORGNAME}','{n.FBILLNO}',{n.FALLMATCHAMOUNT},'{n.FDate}')");
@@ -56,6 +97,11 @@ VALUES
return DBServiceHelper.Execute(ctx, sqlTemp);
}
+ ///
+ /// 创建临时表
+ ///
+ ///
+ ///
private void CreateTempTable(Context ctx, string tableName)
{
var sql = $@"
diff --git a/ScheduleService/SaleOrderSumSicsAmountRefresh.cs b/ScheduleService/SaleOrderSumSicsAmountRefresh.cs
index a4bff27..acb7338 100644
--- a/ScheduleService/SaleOrderSumSicsAmountRefresh.cs
+++ b/ScheduleService/SaleOrderSumSicsAmountRefresh.cs
@@ -30,8 +30,6 @@ namespace GZ_LTHPilot_ORDER.ScheduleService
var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(saleOrgId, contractNo);
if (saleOrderList.Count == 0)
{
- //var errInfo = string.Format("纸质合同号:{0},没有找到对应的销售订单,请检查销售订单是否已审核,或者被作废", contractNo);
- //throw new Exception(errInfo);
continue;
}
var saleOrder = saleOrderList[0];
diff --git a/Services/SaleSicsService.cs b/Services/SaleSicsService.cs
index eab3968..0f27f8d 100644
--- a/Services/SaleSicsService.cs
+++ b/Services/SaleSicsService.cs
@@ -37,38 +37,48 @@ namespace GZ_LTHPilot_ORDER.Service
var saleOrgId = saleOrder["FSALEORGID"].ToString();
var sqlTemp = @"/*dialect*/UPDATE t1
SET
- t1.F_INVOICEAMOUNT = TEMP1.FAFTERTOTALTAX
+ t1.F_INVOICEAMOUNT = ISNULL (TEMP1.FAFTERTOTALTAXFOR, 0) + ROUND(
+ (
+ ISNULL (TEMP1.FAFTERTOTALTAX, 0) / ISNULL (t1fin.FEXCHANGERATE, 0)
+ ),
+ 2
+ )
FROM
T_SAL_ORDER t1
- INNER JOIN (
+ INNER JOIN T_SAL_ORDERFIN t1fin ON t1.FID = t1fin.FID
+ LEFT JOIN (
SELECT
FSALEORGID,
F_PaperNumber,
- SUM(FAFTERTOTALTAX) FAFTERTOTALTAX
+ SUM(FAFTERTOTALTAX) FAFTERTOTALTAX, -- 价税合计本币
+ SUM(FAFTERTOTALTAXFOR) FAFTERTOTALTAXFOR -- 价税合计原币
FROM
(
SELECT
FSALEORGID, -- 销售组织
F_PaperNumber, -- 纸质合同号
- ISNULL (FAFTERTOTALTAX, 0) FAFTERTOTALTAX -- 价税合计本币
+ 0 FAFTERTOTALTAX,
+ ISNULL (FAFTERTOTALTAXFOR, 0) FAFTERTOTALTAXFOR -- 价税合计
FROM
T_IV_SALESIC
WHERE
1 = 1
AND FDOCUMENTSTATUS = 'C'
AND FCANCELSTATUS = 'A'
+ AND FDATE >= '2025-01-01'
AND FSALEORGID = '{0}'
AND F_PaperNumber = '{1}'
- AND FDATE >= '2025-01-01'
UNION ALL
SELECT
'100302' FSALEORGID, -- 销售组织
合同号 F_PaperNumber, -- 纸质合同号
- SUM(ISNULL (专票金额, 0) + ISNULL (普票金额, 0)) FAFTERTOTALTAX -- 价税合计本币
- FROm
- dbo.oldk3seorder0701
+ SUM(ISNULL (专票金额, 0) + ISNULL (普票金额, 0)) FAFTERTOTALTAX, -- 价税合计本币
+ 0 -- 价税合计
+ FROM
+ oldk3seorder0701
WHERE
1 = 1
+ AND 日期 < '2025-01-01'
AND 合同号 = '{1}'
GROUP BY
合同号
diff --git a/T_IV_SALESIC/ServicePlugIn/UnAudit.cs b/T_IV_SALESIC/ServicePlugIn/UnAudit.cs
index 525d7bf..2b5a1ba 100644
--- a/T_IV_SALESIC/ServicePlugIn/UnAudit.cs
+++ b/T_IV_SALESIC/ServicePlugIn/UnAudit.cs
@@ -39,8 +39,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn
var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(orgId, contractNo);
if (saleOrderList.Count == 0)
{
- //var errInfo = string.Format("纸质合同号:{0},没有找到对应的销售订单,请检查销售订单是否已审核,或者被作废", contractNo);
- //throw new Exception(errInfo);
+
continue;
}
if (saleOrderList.Count > 1)