Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-api-boot-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanbaoming
jiedao-api-boot-master
Commits
7689f33e
Commit
7689f33e
authored
May 15, 2024
by
lanbaoming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2024-05-15提交
parent
3746638b
Changes
18
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
566 additions
and
223 deletions
+566
-223
CustomerServiceImpl.java
...module/customer/service/customer/CustomerServiceImpl.java
+60
-59
SalesReportControl.java
.../module/delivery/controller/admin/SalesReportControl.java
+15
-75
SalesReportReq.java
.../iocoder/yudao/module/delivery/entity/SalesReportReq.java
+10
-0
SalesReportResp.java
...iocoder/yudao/module/delivery/entity/SalesReportResp.java
+8
-6
SalesReportRespShow.java
...der/yudao/module/delivery/entity/SalesReportRespShow.java
+1
-1
AllWriteOffJob.java
.../cn/iocoder/yudao/module/delivery/job/AllWriteOffJob.java
+38
-0
CalculateOrderVValueListener.java
...odule/delivery/listener/CalculateOrderVValueListener.java
+0
-5
SalesReportMapper.java
...coder/yudao/module/delivery/mapper/SalesReportMapper.java
+14
-0
SalesReportImpl.java
...r/yudao/module/delivery/service/Impl/SalesReportImpl.java
+233
-56
SalesReportService.java
...der/yudao/module/delivery/service/SalesReportService.java
+28
-3
SalesReportMapper.xml
...very-rest/src/main/resources/mapper/SalesReportMapper.xml
+54
-6
ProdCostCalculation.java
...r/yudao/module/product/component/ProdCostCalculation.java
+25
-10
CostDto.java
...ain/java/cn/iocoder/yudao/module/product/dto/CostDto.java
+1
-0
AppProdLinePriceController.java
...oduct/controller/app/prod/AppProdLinePriceController.java
+4
-2
ReceiptItemDO.java
...dule/wealth/dal/dataobject/receiptItem/ReceiptItemDO.java
+1
-0
ReceiptServiceImpl.java
...dao/module/wealth/service/receipt/ReceiptServiceImpl.java
+65
-0
ReceiptBackVO.java
...iocoder/yudao/module/wealth/vo/receipt/ReceiptBackVO.java
+8
-0
ReceiptController.java
...le/wealth/controller/admin/receipt/ReceiptController.java
+1
-0
No files found.
yudao-module-customer/yudao-module-customer-core/src/main/java/cn/iocoder/yudao/module/customer/service/customer/CustomerServiceImpl.java
View file @
7689f33e
This diff is collapsed.
Click to expand it.
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/controller/admin/SalesReportControl.java
View file @
7689f33e
...
@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
...
@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.validation.Valid
;
import
javax.validation.Valid
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -47,7 +48,7 @@ public class SalesReportControl {
...
@@ -47,7 +48,7 @@ public class SalesReportControl {
lanbm 2024-04-01
lanbm 2024-04-01
*/
*/
@PostMapping
(
"/FirstCustomerCount"
)
@PostMapping
(
"/FirstCustomerCount"
)
public
CommonResult
<
SalesReportCusTarget
>
FirstCustomerCount
(
@RequestBody
SalesReportReq
Req
)
{
public
CommonResult
<
SalesReportCusTarget
>
FirstCustomerCount
(
@RequestBody
SalesReportReq
Req
)
throws
ParseException
{
SalesReportCusTarget
nR
=
salesReportService
.
FirstCustomerCount
(
Req
);
SalesReportCusTarget
nR
=
salesReportService
.
FirstCustomerCount
(
Req
);
return
success
(
nR
);
return
success
(
nR
);
}
}
...
@@ -57,19 +58,24 @@ public class SalesReportControl {
...
@@ -57,19 +58,24 @@ public class SalesReportControl {
Get请求一定要注意参数类型
Get请求一定要注意参数类型
*/
*/
@GetMapping
(
"/CustomerTargetCount"
)
@GetMapping
(
"/CustomerTargetCount"
)
public
CommonResult
<
SalesReportCusTarget
>
CustomerTargetCount
(
@Valid
SalesReportReq
Req
)
{
public
CommonResult
<
SalesReportCusTarget
>
CustomerTargetCount
(
@Valid
SalesReportReq
Req
)
throws
ParseException
{
SalesReportCusTarget
objR
=
salesReportService
.
CustomerTargetCount
(
Req
);
SalesReportCusTarget
objR
=
salesReportService
.
CustomerTargetCount
(
Req
);
return
success
(
objR
);
return
success
(
objR
);
}
}
/*
/*
按运输方式统计重量和方数
按运输方式统计重量和方数
lanbm 2024-04-01
lanbm 2024-04-01
*/
*/
@PostMapping
(
"/SalesReportCount"
)
@PostMapping
(
"/SalesReportCount"
)
public
CommonResult
<
List
<
SalesReportRespShow
>>
SalesReportCount
(
@RequestBody
SalesReportReq
Req
)
{
public
CommonResult
<
List
<
SalesReportResp
>>
SalesReportCount
(
@RequestBody
SalesReportReq
Req
)
throws
ParseException
{
List
<
SalesReportRespShow
>
list
=
salesReportService
.
SalesReportCount
(
Req
);
List
<
SalesReportResp
>
list
=
new
ArrayList
<>();
SalesReportResp
r0
=
salesReportService
.
SalesReportCount
(
Req
);
SalesReportResp
r1
=
salesReportService
.
SalesReportCountSea
(
Req
);
SalesReportResp
r3
=
salesReportService
.
SalesReportCountAir
(
Req
);
list
.
add
(
r0
);
list
.
add
(
r1
);
list
.
add
(
r3
);
return
success
(
list
);
return
success
(
list
);
}
}
...
@@ -78,7 +84,7 @@ public class SalesReportControl {
...
@@ -78,7 +84,7 @@ public class SalesReportControl {
lanbm 2024-04-01 add
lanbm 2024-04-01 add
*/
*/
@PostMapping
(
"/SalesReportList"
)
@PostMapping
(
"/SalesReportList"
)
public
CommonResult
<
SalesReportCusTarget
>
SalesReportList
(
@RequestBody
SalesReportReq
Req
)
{
public
CommonResult
<
SalesReportCusTarget
>
SalesReportList
(
@RequestBody
SalesReportReq
Req
)
throws
ParseException
{
SalesReportCusTarget
objR
=
salesReportService
.
FirstCustomerCount
(
Req
);
SalesReportCusTarget
objR
=
salesReportService
.
FirstCustomerCount
(
Req
);
return
success
(
objR
);
return
success
(
objR
);
}
}
...
@@ -88,75 +94,9 @@ public class SalesReportControl {
...
@@ -88,75 +94,9 @@ public class SalesReportControl {
*/
*/
@GetMapping
(
"/getEChartData"
)
@GetMapping
(
"/getEChartData"
)
public
CommonResult
<
CustomerReportBar
>
public
CommonResult
<
CustomerReportBar
>
getEChartData
(
@Valid
SalesAnalysisReq
query
)
{
getEChartData
(
@Valid
SalesReportReq
query
)
throws
ParseException
{
CustomerReportBar
customerReportBar
=
new
CustomerReportBar
();
CustomerReportBar
customerReportBar
=
salesReportService
.
getCustomerReportBar
(
query
);
yAxis
y
=
new
yAxis
();
y
.
setType
(
"category"
);
y
.
setInverse
(
true
);
List
<
String
>
l
=
new
ArrayList
<>();
l
.
add
(
"1"
);
l
.
add
(
"2"
);
l
.
add
(
"3"
);
l
.
add
(
"4"
);
l
.
add
(
"5"
);
y
.
setData
(
l
);
customerReportBar
.
setObjyAxis
(
y
);
List
<
series
>
sl
=
new
ArrayList
<>();
//总V值
series
s1
=
new
series
();
s1
.
setName
(
"2024"
);
s1
.
setType
(
"bar"
);
s1
.
setBarGap
(
"60%"
);
s1
.
setBarCategoryGap
(
"60%"
);
List
<
String
>
s1L
=
new
ArrayList
<>();
s1L
.
add
(
"12"
);
s1L
.
add
(
"4"
);
s1L
.
add
(
"7"
);
s1L
.
add
(
"10"
);
s1L
.
add
(
"20"
);
s1
.
setData
(
s1L
);
sl
.
add
(
s1
);
//海运
series
s2
=
new
series
();
s2
.
setName
(
"2023"
);
s2
.
setType
(
"bar"
);
s2
.
setBarGap
(
"60%"
);
s2
.
setBarCategoryGap
(
"60%"
);
List
<
String
>
s2L
=
new
ArrayList
<>();
s2L
.
add
(
"10"
);
s2L
.
add
(
"13"
);
s2L
.
add
(
"6"
);
s2L
.
add
(
"8"
);
s2L
.
add
(
"9"
);
s2
.
setData
(
s2L
);
sl
.
add
(
s2
);
//空运
series
s3
=
new
series
();
s3
.
setName
(
"2022"
);
s3
.
setType
(
"bar"
);
s3
.
setBarGap
(
"60%"
);
s3
.
setBarCategoryGap
(
"60%"
);
List
<
String
>
s3L
=
new
ArrayList
<>();
s3L
.
add
(
"10"
);
s3L
.
add
(
"13"
);
s3L
.
add
(
"19"
);
s3L
.
add
(
"8"
);
s3L
.
add
(
"19"
);
s3
.
setData
(
s3L
);
sl
.
add
(
s3
);
customerReportBar
.
setObSseries
(
sl
);
// customerReportBar.setResultList(lis);
return
success
(
customerReportBar
);
return
success
(
customerReportBar
);
}
}
...
...
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/entity/SalesReportReq.java
View file @
7689f33e
...
@@ -6,6 +6,8 @@ import lombok.Data;
...
@@ -6,6 +6,8 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.ToString
;
import
lombok.ToString
;
import
java.util.Date
;
/*
/*
销售看板查询请求参数
销售看板查询请求参数
...
@@ -17,6 +19,11 @@ import lombok.ToString;
...
@@ -17,6 +19,11 @@ import lombok.ToString;
@ToString
(
callSuper
=
true
)
@ToString
(
callSuper
=
true
)
public
class
SalesReportReq
{
public
class
SalesReportReq
{
/*
时间区间中的月数 lanbm 2024-05-14 add
*/
private
long
sumMonth
;
/*
/*
销售经理
销售经理
*/
*/
...
@@ -43,6 +50,9 @@ public class SalesReportReq {
...
@@ -43,6 +50,9 @@ public class SalesReportReq {
private
String
sDate
;
private
String
sDate
;
private
String
sDuiBiDate
;
private
String
sDuiBiDate
;
private
Date
dS
;
private
Date
dE
;
/*
/*
结束日期
结束日期
*/
*/
...
...
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/entity/SalesReportResp.java
View file @
7689f33e
...
@@ -17,19 +17,21 @@ import java.math.BigDecimal;
...
@@ -17,19 +17,21 @@ import java.math.BigDecimal;
public
class
SalesReportResp
{
public
class
SalesReportResp
{
/*
/*
所有运输方式的总体积,换算V值结果
当前值
*/
*/
private
BigDecimal
allsumvolum
e
;
private
BigDecimal
curValu
e
;
/*
/*
海运体积
同比值
*/
*/
private
BigDecimal
sumvolume1
;
private
BigDecimal
tbValue
;
private
String
tbShow
;
/*
/*
专线空运重量
环比值
*/
*/
private
BigDecimal
sumweight3
;
private
BigDecimal
hbValue
;
private
String
hbShow
;
}
}
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/entity/SalesReportRespShow.java
View file @
7689f33e
...
@@ -12,7 +12,7 @@ public class SalesReportRespShow {
...
@@ -12,7 +12,7 @@ public class SalesReportRespShow {
/*
/*
当前数据
当前数据
*/
*/
private
BigDecimal
sum
All
;
private
BigDecimal
sum
Data
;
/*
/*
对比数据
对比数据
...
...
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/job/AllWriteOffJob.java
0 → 100644
View file @
7689f33e
package
cn
.
iocoder
.
yudao
.
module
.
delivery
.
job
;
import
cn.hutool.core.util.StrUtil
;
import
cn.iocoder.yudao.framework.quartz.core.handler.JobHandler
;
import
cn.iocoder.yudao.framework.tenant.core.job.TenantJob
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Component
;
/*
财务收款单 全部核销定时任务
lanbm 2024-05-14 add
*/
@Component
@TenantJob
@Slf4j
public
class
AllWriteOffJob
implements
JobHandler
{
@Override
public
String
execute
(
String
param
)
throws
Exception
{
int
var1
=
30
;
int
var2
=
3
;
int
var3
=
6
;
if
(
StringUtils
.
isNotBlank
(
param
)){
String
[]
vars
=
param
.
split
(
StrUtil
.
COMMA
);
if
(
vars
.
length
>
0
){
var1
=
Integer
.
parseInt
(
vars
[
0
]);
}
if
(
vars
.
length
>
1
){
var2
=
Integer
.
parseInt
(
vars
[
1
]);
}
if
(
vars
.
length
>
2
){
var3
=
Integer
.
parseInt
(
vars
[
2
]);
}
}
return
""
;
}
}
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/listener/CalculateOrderVValueListener.java
View file @
7689f33e
package
cn
.
iocoder
.
yudao
.
module
.
delivery
.
listener
;
package
cn
.
iocoder
.
yudao
.
module
.
delivery
.
listener
;
import
cn.iocoder.yudao.framework.apollo.core.event.Order.CalculateOrderVValueEvent
;
import
cn.iocoder.yudao.framework.apollo.core.event.Order.CalculateOrderVValueEvent
;
import
cn.iocoder.yudao.framework.apollo.core.event.Order.CalculateOrderYeJiTypeEvent
;
import
cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX
;
import
cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX
;
import
cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO
;
import
cn.iocoder.yudao.module.customer.service.customer.CustomerService
;
import
cn.iocoder.yudao.module.delivery.entity.EcwVz
;
import
cn.iocoder.yudao.module.delivery.entity.EcwVz
;
import
cn.iocoder.yudao.module.delivery.service.EcwVzService
;
import
cn.iocoder.yudao.module.delivery.service.EcwVzService
;
import
cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO
;
...
@@ -19,8 +16,6 @@ import java.math.BigDecimal;
...
@@ -19,8 +16,6 @@ import java.math.BigDecimal;
import
java.util.Date
;
import
java.util.Date
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
cn
.
iocoder
.
yudao
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
ErrorCodeConstants
.
ORDER_EXPRESS_NUMBER_TOO_LONG
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
ErrorCodeConstants
.
ORDER_NOT_EXISTS
;
import
static
cn
.
iocoder
.
yudao
.
module
.
order
.
enums
.
ErrorCodeConstants
.
ORDER_NOT_EXISTS
;
import
static
cn
.
iocoder
.
yudao
.
module
.
delivery
.
enums
.
ErrorCodeConstants
.
VCONFIG_NOT_EXISTS
;
import
static
cn
.
iocoder
.
yudao
.
module
.
delivery
.
enums
.
ErrorCodeConstants
.
VCONFIG_NOT_EXISTS
;
...
...
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/mapper/SalesReportMapper.java
View file @
7689f33e
...
@@ -13,8 +13,22 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -13,8 +13,22 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
@Mapper
public
interface
SalesReportMapper
{
public
interface
SalesReportMapper
{
/*
总值统计
*/
SalesReportResp
SalesReportCount
(
SalesReportReq
Req
);
SalesReportResp
SalesReportCount
(
SalesReportReq
Req
);
/*
海运统计
*/
SalesReportResp
SalesReportCountSea
(
SalesReportReq
Req
);
/*
空运统计
*/
SalesReportResp
SalesReportCountAir
(
SalesReportReq
Req
);
int
FirstCustomerCount
(
SalesReportReq
Req
);
int
FirstCustomerCount
(
SalesReportReq
Req
);
/*
/*
...
...
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/service/Impl/SalesReportImpl.java
View file @
7689f33e
This diff is collapsed.
Click to expand it.
yudao-module-delivery/yudao-module-delivery-rest/src/main/java/cn/iocoder/yudao/module/delivery/service/SalesReportService.java
View file @
7689f33e
...
@@ -4,21 +4,46 @@ import cn.iocoder.yudao.module.delivery.entity.SalesReportCusTarget;
...
@@ -4,21 +4,46 @@ import cn.iocoder.yudao.module.delivery.entity.SalesReportCusTarget;
import
cn.iocoder.yudao.module.delivery.entity.SalesReportReq
;
import
cn.iocoder.yudao.module.delivery.entity.SalesReportReq
;
import
cn.iocoder.yudao.module.delivery.entity.SalesReportResp
;
import
cn.iocoder.yudao.module.delivery.entity.SalesReportResp
;
import
cn.iocoder.yudao.module.delivery.entity.SalesReportRespShow
;
import
cn.iocoder.yudao.module.delivery.entity.SalesReportRespShow
;
import
cn.iocoder.yudao.module.delivery.entity.bar.CustomerReportBar
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.List
;
public
interface
SalesReportService
{
public
interface
SalesReportService
{
List
<
SalesReportRespShow
>
SalesReportCount
(
SalesReportReq
Req
);
/*
总值统计
*/
SalesReportResp
SalesReportCount
(
SalesReportReq
Req
)
throws
ParseException
;
/*
海运统计
*/
SalesReportResp
SalesReportCountSea
(
SalesReportReq
Req
)
throws
ParseException
;
SalesReportCusTarget
FirstCustomerCount
(
SalesReportReq
Req
);
/*
空运统计
*/
SalesReportResp
SalesReportCountAir
(
SalesReportReq
Req
)
throws
ParseException
;
SalesReportCusTarget
FirstCustomerCount
(
SalesReportReq
Req
)
throws
ParseException
;
/*
/*
统计一段时间内客户成交数目,出重客户
统计一段时间内客户成交数目,出重客户
lanbm 2024-05-09 add
lanbm 2024-05-09 add
*/
*/
SalesReportCusTarget
CustomerTargetCount
(
SalesReportReq
Req
);
SalesReportCusTarget
CustomerTargetCount
(
SalesReportReq
Req
)
throws
ParseException
;
/*
获取统计图表数据
lanbm 2024-05-14 add
*/
CustomerReportBar
getCustomerReportBar
(
SalesReportReq
Req
)
throws
ParseException
;
}
}
yudao-module-delivery/yudao-module-delivery-rest/src/main/resources/mapper/SalesReportMapper.xml
View file @
7689f33e
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.iocoder.yudao.module.delivery.mapper.SalesReportMapper"
>
<mapper
namespace=
"cn.iocoder.yudao.module.delivery.mapper.SalesReportMapper"
>
<!--总值统计-->
<select
id=
"SalesReportCount"
resultType=
"cn.iocoder.yudao.module.delivery.entity.SalesReportResp"
>
<select
id=
"SalesReportCount"
resultType=
"cn.iocoder.yudao.module.delivery.entity.SalesReportResp"
>
SELECT (
SELECT (
SELECT sum(
sum_volume
)
SELECT sum(
if(transport_id=1,sum_volume,
)
FROM ecw_order
FROM ecw_order
WHERE is_del = 0
WHERE is_del = 0
AND (transport_id = 1 OR transport_id = 3)
AND (transport_id = 1 OR transport_id = 3)
AND create_time BETWEEN '2023-01-01'
AND create_time BETWEEN '2023-01-01'
AND '2023-03-31'
AND '2023-03-31'
) AS
allsumvolum
e,
) AS
curValu
e,
(SELECT sum(sum_volume)
(SELECT sum(sum_volume)
FROM ecw_order
FROM ecw_order
WHERE is_del = 0
WHERE is_del = 0
AND
transport_id = 1
AND
(transport_id = 1 OR transport_id = 3)
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS
sumvolume1
,
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS
tbValue
,
(SELECT sum(sum_weight)
(SELECT sum(sum_weight)
FROM ecw_order
WHERE is_del = 0
AND (transport_id = 1 OR transport_id = 3)
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS hbValue
FROM DUAL
</select>
<!--海运统计-->
<select
id=
"SalesReportCountSea"
resultType=
"cn.iocoder.yudao.module.delivery.entity.SalesReportResp"
>
SELECT (
SELECT sum(sum_volume)
FROM ecw_order
WHERE is_del = 0
AND transport_id = 1
AND create_time BETWEEN '2023-01-01'
AND '2023-03-31'
) AS curValue,
(SELECT sum(sum_volume)
FROM ecw_order
WHERE is_del = 0
AND transport_id = 1
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS tbValue,
(SELECT sum(sum_volume)
FROM ecw_order
WHERE is_del = 0
AND transport_id = 1
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS hbValue
FROM DUAL
</select>
<!--空运统计-->
<select
id=
"SalesReportCountAir"
resultType=
"cn.iocoder.yudao.module.delivery.entity.SalesReportResp"
>
SELECT (
SELECT sum(sum_w)
FROM ecw_order
WHERE is_del = 0
AND transport_id = 3
AND create_time BETWEEN '2023-01-01'
AND '2023-03-31'
) AS curValue,
(SELECT sum(sum_volume)
FROM ecw_order
WHERE is_del = 0
AND transport_id = 3
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS tbValue,
(SELECT sum(sum_volume)
FROM ecw_order
FROM ecw_order
WHERE is_del = 0
WHERE is_del = 0
AND transport_id = 3
AND transport_id = 3
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS
sumweight3
AND create_time BETWEEN '2023-01-01' AND '2023-03-31') AS
hbValue
FROM DUAL
FROM DUAL
</select>
</select>
<!--2024-04-22-->
<!--2024-04-22-->
<select
id=
"FirstCustomerCount"
resultType=
"int"
>
<select
id=
"FirstCustomerCount"
resultType=
"int"
>
SELECT count(c.customer_id) as s_customer_id
SELECT count(c.customer_id) as s_customer_id
...
@@ -45,7 +93,7 @@
...
@@ -45,7 +93,7 @@
and achievement_time BETWEEN #{sDate} and #{eDate}
and achievement_time BETWEEN #{sDate} and #{eDate}
</if>
</if>
<if
test=
"salesmanid!=null and salesmanid!=''"
>
<if
test=
"salesmanid!=null and salesmanid!=''"
>
<!--客户经理查询条件-->
<!--客户经理查询条件-->
and user_id= #{salesmanid}
and user_id= #{salesmanid}
</if>
</if>
<if
test=
"deptid!=null and deptid!=''"
>
<if
test=
"deptid!=null and deptid!=''"
>
...
...
yudao-module-product/yudao-module-product-core/src/main/java/cn/iocoder/yudao/module/product/component/ProdCostCalculation.java
View file @
7689f33e
...
@@ -205,15 +205,18 @@ public class ProdCostCalculation {
...
@@ -205,15 +205,18 @@ public class ProdCostCalculation {
Long
consignorCustomerId
,
Long
consigneeCustomerId
,
Long
consignorCustomerId
,
Long
consigneeCustomerId
,
Long
consignorCustomerContactsId
,
Long
consigneeCustomerContactsId
,
Long
consignorCustomerContactsId
,
Long
consigneeCustomerContactsId
,
Integer
transportId
,
Long
lineId
,
Long
channelId
)
{
Integer
transportId
,
Long
lineId
,
Long
channelId
)
{
//
获取所有货币
//获取所有货币
List
<
CurrencyDO
>
currencyDOList
=
currencyService
.
list
();
List
<
CurrencyDO
>
currencyDOList
=
currencyService
.
list
();
if
(
CollectionUtil
.
isEmpty
(
currencyDOList
))
{
if
(
CollectionUtil
.
isEmpty
(
currencyDOList
))
{
throw
exception
(
NOT_FIND_CURRENCY
);
throw
exception
(
NOT_FIND_CURRENCY
);
}
}
// // 美元货币ID
Integer
usdCurrency
=
currencyDOList
.
stream
().
filter
(
currencyDO
->
StringUtils
.
equals
(
"$"
,
currencyDO
.
getFuhao
())).
findFirst
().
get
().
getId
();
// // 美元货币ID
Integer
usdCurrency
=
currencyDOList
.
stream
().
filter
(
currencyDO
->
StringUtils
.
equals
(
"$"
,
currencyDO
.
getFuhao
())).
findFirst
().
get
().
getId
();
// 人民币货币ID
// 人民币货币ID
Integer
rmbCurrency
=
currencyDOList
.
stream
().
filter
(
currencyDO
->
StringUtils
.
equals
(
"¥"
,
currencyDO
.
getFuhao
())).
findFirst
().
get
().
getId
();
Integer
rmbCurrency
=
currencyDOList
.
stream
().
filter
(
currencyDO
->
StringUtils
.
equals
(
"¥"
,
currencyDO
.
getFuhao
())).
findFirst
().
get
().
getId
();
if
(
CollectionUtil
.
isEmpty
(
prodConditionParamList
))
{
if
(
CollectionUtil
.
isEmpty
(
prodConditionParamList
))
{
throw
exception
(
PROD_PARAM_NOT_NULL
);
throw
exception
(
PROD_PARAM_NOT_NULL
);
...
@@ -346,22 +349,34 @@ public class ProdCostCalculation {
...
@@ -346,22 +349,34 @@ public class ProdCostCalculation {
BigDecimal
totalWeight
=
prodCostDtoList
.
stream
().
collect
(
CollectorsUtil
.
summingBigDecimal
(
ProdCostDto:
:
getWeight
));
BigDecimal
totalWeight
=
prodCostDtoList
.
stream
().
collect
(
CollectorsUtil
.
summingBigDecimal
(
ProdCostDto:
:
getWeight
));
costDto
.
setTotalWeight
(
totalWeight
);
costDto
.
setTotalWeight
(
totalWeight
);
dto
.
setProdCostDtoList
(
prodCostDtoList
);
dto
.
setProdCostDtoList
(
prodCostDtoList
);
// 计算报价费用 货值:与保价费相关:保价费 = 货值*1.1*0.002*汇率,汇率为人民币换目标货币(默认为美元)的汇率
// 计算报价费用 货值:与保价费相关:保价费 = 货值*1.1*0.002*汇率,
Long
insuranceCurrencyId
=
Objects
.
nonNull
(
usdCurrency
)
?
usdCurrency
.
longValue
()
:
null
;
// 汇率为人民币换目标货币(默认为美元)的汇率
Long
insuranceCurrencyId
=
Objects
.
nonNull
(
usdCurrency
)
?
usdCurrency
.
longValue
()
:
null
;
BigDecimal
minInsuranceFee
=
new
BigDecimal
(
"2"
);
// 2美元的最低保费
BigDecimal
minInsuranceFee
=
new
BigDecimal
(
"2"
);
// 2美元的最低保费
WarehouseLineDO
warehouseLineDO
=
warehouseLineMapper
.
selectById
(
lineId
);
WarehouseLineDO
warehouseLineDO
=
warehouseLineMapper
.
selectById
(
lineId
);
if
(
Objects
.
nonNull
(
warehouseLineDO
)
&&
Objects
.
nonNull
(
warehouseLineDO
.
getCurrencyUnit
())
&&
warehouseLineDO
.
getCurrencyUnit
()
>
0
)
{
if
(
Objects
.
nonNull
(
warehouseLineDO
)
&&
Objects
.
nonNull
(
warehouseLineDO
.
getCurrencyUnit
())
&&
warehouseLineDO
.
getCurrencyUnit
()
>
0
)
{
// 当线路服务中设置了保费货币单位时,就以服务设置的为准,否则使用默认美元
// 当线路服务中设置了保费货币单位时,就以服务设置的为准,否则使用默认美元
insuranceCurrencyId
=
warehouseLineDO
.
getCurrencyUnit
();
insuranceCurrencyId
=
warehouseLineDO
.
getCurrencyUnit
();
minInsuranceFee
=
warehouseLineDO
.
getMinPrice
();
minInsuranceFee
=
warehouseLineDO
.
getMinPrice
();
}
}
if
(
Objects
.
nonNull
(
insuranceCurrencyId
))
{
if
(
Objects
.
nonNull
(
insuranceCurrencyId
))
{
ExchangeRateRespDTO
exchangeRateRespDTO
=
currencyApi
.
getCurrencyRate
(
rmbCurrency
.
longValue
(),
insuranceCurrencyId
);
ExchangeRateRespDTO
exchangeRateRespDTO
=
currencyApi
.
getCurrencyRate
(
rmbCurrency
.
longValue
(),
insuranceCurrencyId
);
FeeDto
feeDto
=
new
FeeDto
();
FeeDto
feeDto
=
new
FeeDto
();
if
(
costDto
.
getTotalWorth
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
costDto
.
getTotalWorth
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
// 因为货值为RMB计算,保价费应换算为目标货币(默认为美元)
// 因为货值为RMB计算,保价费应换算为目标货币(默认为美元)
BigDecimal
insuranceFee
=
costDto
.
getTotalWorth
().
multiply
(
new
BigDecimal
(
"1.1"
))
BigDecimal
insuranceFee
=
costDto
.
getTotalWorth
().
.
multiply
(
new
BigDecimal
(
"0.002"
)).
multiply
(
exchangeRateRespDTO
.
getCurrencyRate
()).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
multiply
(
new
BigDecimal
(
"1.1"
)).
multiply
(
new
BigDecimal
(
"0.002"
)).
multiply
(
exchangeRateRespDTO
.
getCurrencyRate
()).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
//insuranceFee lanbm 2024-05-14 修改报价费币种BUG
costDto
.
setInsuranceFee
(
insuranceFee
);
costDto
.
setInsuranceFee
(
insuranceFee
);
feeDto
.
setAmount
(
insuranceFee
);
feeDto
.
setAmount
(
insuranceFee
);
}
else
{
}
else
{
...
...
yudao-module-product/yudao-module-product-core/src/main/java/cn/iocoder/yudao/module/product/dto/CostDto.java
View file @
7689f33e
...
@@ -81,6 +81,7 @@ public class CostDto {
...
@@ -81,6 +81,7 @@ public class CostDto {
@ApiModelProperty
(
value
=
"总体积"
)
@ApiModelProperty
(
value
=
"总体积"
)
private
BigDecimal
totalVolume
=
BigDecimal
.
ZERO
;
private
BigDecimal
totalVolume
=
BigDecimal
.
ZERO
;
//lanbm 2024-05-14 修改BUG 报价费要按配置参数中的币种来计算
@ApiModelProperty
(
value
=
"美元(USD)保价费"
)
@ApiModelProperty
(
value
=
"美元(USD)保价费"
)
private
BigDecimal
insuranceFee
=
new
BigDecimal
(
"2"
);
private
BigDecimal
insuranceFee
=
new
BigDecimal
(
"2"
);
...
...
yudao-module-product/yudao-module-product-rest/src/main/java/cn/iocoder/yudao/module/product/controller/app/prod/AppProdLinePriceController.java
View file @
7689f33e
...
@@ -49,7 +49,8 @@ public class AppProdLinePriceController {
...
@@ -49,7 +49,8 @@ public class AppProdLinePriceController {
*/
*/
@PostMapping
(
"/calculation"
)
@PostMapping
(
"/calculation"
)
@ApiOperation
(
"计算单种运输方式的商品费用(单个商品也做数组传参)"
)
@ApiOperation
(
"计算单种运输方式的商品费用(单个商品也做数组传参)"
)
public
CommonResult
<
CalculationCostResultDto
>
calculationProdCost
(
@Valid
@RequestBody
ConditionParam
param
)
{
public
CommonResult
<
CalculationCostResultDto
>
calculationProdCost
(
@Valid
@RequestBody
ConditionParam
param
)
{
if
(
CollectionUtil
.
isEmpty
(
param
.
getProdConditionParamList
())){
if
(
CollectionUtil
.
isEmpty
(
param
.
getProdConditionParamList
())){
return
error
(
ORDER_ITEM_PROD_NOT_EXISTS
);
return
error
(
ORDER_ITEM_PROD_NOT_EXISTS
);
}
}
...
@@ -57,7 +58,8 @@ public class AppProdLinePriceController {
...
@@ -57,7 +58,8 @@ public class AppProdLinePriceController {
List
<
ProdConditionParam
>
prodConditionParams
=
prodCostCalculation
.
obtainProdLineOnePrice
(
param
.
getProdConditionParamList
(),
""
,
List
<
ProdConditionParam
>
prodConditionParams
=
prodCostCalculation
.
obtainProdLineOnePrice
(
param
.
getProdConditionParamList
(),
""
,
Objects
.
nonNull
(
param
.
getCustomsType
())
?
param
.
getCustomsType
()
:
1
,
Objects
.
nonNull
(
param
.
getCustomsType
())
?
param
.
getCustomsType
()
:
1
,
null
,
param
.
getTransportId
(),
param
.
getLineId
(),
param
.
getChannelId
(),
false
);
null
,
param
.
getTransportId
(),
param
.
getLineId
(),
param
.
getChannelId
(),
false
);
CalculationCostResultDto
dto
=
prodCostCalculation
.
calculationProdCost
(
prodConditionParams
,
""
,
param
.
getOrderType
(),
CalculationCostResultDto
dto
=
prodCostCalculation
.
calculationProdCost
(
prodConditionParams
,
""
,
param
.
getOrderType
(),
Objects
.
nonNull
(
param
.
getCustomsType
())
?
param
.
getCustomsType
()
:
1
,
Objects
.
nonNull
(
param
.
getIsCargoControl
())
&&
param
.
getIsCargoControl
()
?
1
:
0
,
Objects
.
nonNull
(
param
.
getCustomsType
())
?
param
.
getCustomsType
()
:
1
,
Objects
.
nonNull
(
param
.
getIsCargoControl
())
&&
param
.
getIsCargoControl
()
?
1
:
0
,
null
,
null
,
param
.
getConsignorCustomerId
(),
param
.
getConsigneeCustomerId
(),
param
.
getConsignorCustomerContactsId
(),
null
,
null
,
param
.
getConsignorCustomerId
(),
param
.
getConsigneeCustomerId
(),
param
.
getConsignorCustomerContactsId
(),
param
.
getConsigneeCustomerContactsId
(),
param
.
getTransportId
(),
param
.
getLineId
(),
param
.
getChannelId
());
param
.
getConsigneeCustomerContactsId
(),
param
.
getTransportId
(),
param
.
getLineId
(),
param
.
getChannelId
());
...
...
yudao-module-wealth/yudao-module-wealth-core/src/main/java/cn/iocoder/yudao/module/wealth/dal/dataobject/receiptItem/ReceiptItemDO.java
View file @
7689f33e
...
@@ -86,6 +86,7 @@ public class ReceiptItemDO extends BaseDO {
...
@@ -86,6 +86,7 @@ public class ReceiptItemDO extends BaseDO {
* 核销金额
* 核销金额
*/
*/
private
java
.
math
.
BigDecimal
writeOffAmount
;
private
java
.
math
.
BigDecimal
writeOffAmount
;
/**
/**
* 流程审核状态
* 流程审核状态
*/
*/
...
...
yudao-module-wealth/yudao-module-wealth-core/src/main/java/cn/iocoder/yudao/module/wealth/service/receipt/ReceiptServiceImpl.java
View file @
7689f33e
...
@@ -88,6 +88,7 @@ public class ReceiptServiceImpl extends AbstractService<ReceiptMapper, ReceiptDO
...
@@ -88,6 +88,7 @@ public class ReceiptServiceImpl extends AbstractService<ReceiptMapper, ReceiptDO
private
static
final
String
RECEIPT_NEW_NUMBER
=
"receipt:new:number"
;
private
static
final
String
RECEIPT_NEW_NUMBER
=
"receipt:new:number"
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Long
createReceipt
(
ReceiptCreateReqVO
createReqVO
)
{
public
Long
createReceipt
(
ReceiptCreateReqVO
createReqVO
)
{
...
@@ -412,8 +413,72 @@ public class ReceiptServiceImpl extends AbstractService<ReceiptMapper, ReceiptDO
...
@@ -412,8 +413,72 @@ public class ReceiptServiceImpl extends AbstractService<ReceiptMapper, ReceiptDO
page
.
setField
(
"er.id"
);
page
.
setField
(
"er.id"
);
IPage
<
ReceiptBackVO
>
mpPage
=
MyBatisUtils
.
buildPage
(
page
);
IPage
<
ReceiptBackVO
>
mpPage
=
MyBatisUtils
.
buildPage
(
page
);
receiptMapper
.
getReceiptBackPage
(
mpPage
,
query
);
receiptMapper
.
getReceiptBackPage
(
mpPage
,
query
);
//lanbm 2024-05-14 添加明细状态计算列表
//MxStatus
//获取List指定字段的List
List
<
Long
>
idList
=
mpPage
.
getRecords
().
stream
()
.
map
(
ReceiptBackVO:
:
getId
)
.
collect
(
Collectors
.
toList
());
//根据List获取本页中所有的明细信息
LambdaQueryWrapper
<
ReceiptItemDO
>
lambdaQueryWrapper
=
new
LambdaQueryWrapper
<>();
lambdaQueryWrapper
.
in
(
ReceiptItemDO:
:
getReceiptId
,
idList
);
List
<
ReceiptItemDO
>
listItem
=
receiptItemMapper
.
selectList
(
lambdaQueryWrapper
);
for
(
ReceiptBackVO
r
:
mpPage
.
getRecords
()
)
{
String
sR
=
getReceiptMxStatus
(
listItem
,
r
.
getId
());
r
.
setMxStatus
(
sR
);
}
return
PageResult
.
of
(
mpPage
);
return
PageResult
.
of
(
mpPage
);
}
/*
lanbm 2024-05-13 计算收款单明细状态
收款单主表
SELECT * from ecw_receipt where receipt_no='SKD00006547'
收款单明细表
SELECT * from ecw_receipt_item where receipt_id=6554
*/
private
String
getReceiptMxStatus
(
List
<
ReceiptItemDO
>
listItem
,
long
ReceiptId
)
{
//未录入 收款单下无收款明细
//未提交 :收款单下有收款明细且全未提交
//部分提交
//未审核
//部分审核
//全部审核
String
sMxStatus
=
""
;
//计算明细总数
Long
iCount
=
listItem
.
stream
().
filter
(
i
->
i
.
getReceiptId
()
==
ReceiptId
).
collect
(
Collectors
.
counting
());
if
(
iCount
==
0
)
{
sMxStatus
=
"未录入"
;
return
sMxStatus
;
}
else
{
//存在记录就判断状态
//status 状态0待核销,1已核销
//2核销审核中,3反核销审核中
//bmpStatus
//PROCESS(1, "处理中"),APPROVE(2, "通过"),
//REJECT(3, "不通过"),CANCEL(4, "已取消");
long
Item0
=
listItem
.
stream
().
filter
(
i
->
i
.
getStatus
()
==
0
).
collect
(
Collectors
.
counting
());
long
Item1
=
listItem
.
stream
().
filter
(
i
->
i
.
getStatus
()
==
1
).
collect
(
Collectors
.
counting
());
long
Item2
=
listItem
.
stream
().
filter
(
i
->
i
.
getStatus
()
==
2
).
collect
(
Collectors
.
counting
());
long
Item3
=
listItem
.
stream
().
filter
(
i
->
i
.
getStatus
()
==
3
).
collect
(
Collectors
.
counting
());
}
return
sMxStatus
;
}
}
@Override
@Override
...
...
yudao-module-wealth/yudao-module-wealth-core/src/main/java/cn/iocoder/yudao/module/wealth/vo/receipt/ReceiptBackVO.java
View file @
7689f33e
...
@@ -196,6 +196,14 @@ public class ReceiptBackVO {
...
@@ -196,6 +196,14 @@ public class ReceiptBackVO {
@ApiModelProperty
(
value
=
"财务备注"
)
@ApiModelProperty
(
value
=
"财务备注"
)
private
String
financeRemark
;
private
String
financeRemark
;
/*
lanbm 2024-05-14 add
*/
@ExcelProperty
(
"明细状态"
)
@ApiModelProperty
(
value
=
"明细状态"
)
private
String
mxStatus
;
/* @ApiModelProperty(value = "应收明细列表")
/* @ApiModelProperty(value = "应收明细列表")
private List<ReceivableDetail> receivableDetailList;
private List<ReceivableDetail> receivableDetailList;
...
...
yudao-module-wealth/yudao-module-wealth-rest/src/main/java/cn/iocoder/yudao/module/wealth/controller/admin/receipt/ReceiptController.java
View file @
7689f33e
...
@@ -90,6 +90,7 @@ public class ReceiptController {
...
@@ -90,6 +90,7 @@ public class ReceiptController {
@ApiOperation
(
"获得收款单分页"
)
@ApiOperation
(
"获得收款单分页"
)
//@PreAuthorize("@ss.hasPermission('ecw:receipt:query')")
//@PreAuthorize("@ss.hasPermission('ecw:receipt:query')")
public
CommonResult
<
PageResult
<
ReceiptBackVO
>>
getReceiptPage
(
@Valid
ReceiptQueryVO
query
,
PageVO
page
)
{
public
CommonResult
<
PageResult
<
ReceiptBackVO
>>
getReceiptPage
(
@Valid
ReceiptQueryVO
query
,
PageVO
page
)
{
//lanbm 2024-05-14 添加收款单明细状态计算功能
PageResult
<
ReceiptBackVO
>
pageResult
=
receiptService
.
getReceiptPage
(
query
,
page
);
PageResult
<
ReceiptBackVO
>
pageResult
=
receiptService
.
getReceiptPage
(
query
,
page
);
return
success
(
pageResult
);
return
success
(
pageResult
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment