Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
78cafb60
提交
78cafb60
authored
10月 21, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增挂单运费页面接口
上级
b58df0d0
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
316 行增加
和
0 行删除
+316
-0
PendingFreightController.java
...x/performance/controller/pc/PendingFreightController.java
+64
-0
PendingFreightDao.java
.../main/java/com/clx/performance/dao/PendingFreightDao.java
+4
-0
PendingFreightDaoImpl.java
...a/com/clx/performance/dao/impl/PendingFreightDaoImpl.java
+11
-0
PendingFreightService.java
...va/com/clx/performance/service/PendingFreightService.java
+8
-0
PendingFreightServiceImpl.java
...x/performance/service/impl/PendingFreightServiceImpl.java
+78
-0
PendingFreightStruct.java
...java/com/clx/performance/struct/PendingFreightStruct.java
+14
-0
PagePendingFreightParam.java
...com/clx/performance/param/pc/PagePendingFreightParam.java
+13
-0
PagePendingFreightVO.java
.../java/com/clx/performance/vo/pc/PagePendingFreightVO.java
+124
-0
没有找到文件。
clx-performance-web/src/main/java/com/clx/performance/controller/pc/PendingFreightController.java
0 → 100644
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
controller
.
pc
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.PagePendingFreightParam
;
import
com.clx.performance.service.PendingFreightService
;
import
com.clx.performance.vo.pc.PagePendingFreightVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.result.Result
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
jakarta.servlet.http.HttpServletResponse
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @ClassName PendingFreightController
* @Description
* @Author kavin
* @Date 2024/10/21 9:47
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/pc/pendingFreight"
)
@Validated
@Tag
(
name
=
"挂单运费"
)
@AllArgsConstructor
public
class
PendingFreightController
{
private
final
PendingFreightService
pendingFreightService
;
@Operation
(
summary
=
"查看挂单运费分页列表"
,
description
=
"<br>By:刘海泉"
)
@PostMapping
(
"/pagePendingFreight"
)
@UnitCovert
(
param
=
false
)
public
Result
<
PageData
<
PagePendingFreightVO
>>
pagePendingFreight
(
@RequestBody
@Validated
PagePendingFreightParam
param
)
{
IPage
<
PagePendingFreightVO
>
page
=
pendingFreightService
.
pagePendingFreight
(
param
);
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
@Operation
(
summary
=
"导出挂单运费"
,
description
=
"<br>By:刘海泉"
)
@PostMapping
(
"/exportPendingFreight"
)
@UnitCovert
(
param
=
false
)
public
void
exportPendingFreight
(
@RequestBody
@Validated
PagePendingFreightParam
param
,
HttpServletResponse
response
)
throws
Exception
{
SXSSFWorkbook
workbook
=
pendingFreightService
.
exportPendingFreight
(
param
);
response
.
setHeader
(
HttpHeaders
.
CONTENT_TYPE
,
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
workbook
.
write
(
response
.
getOutputStream
());
}
}
clx-performance-web/src/main/java/com/clx/performance/dao/PendingFreightDao.java
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
dao
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.PagePendingFreightParam
;
import
com.msl.common.dao.BaseDao
;
import
com.clx.performance.mapper.PendingFreightMapper
;
import
com.clx.performance.model.PendingFreight
;
...
...
@@ -15,4 +17,6 @@ public interface PendingFreightDao extends BaseDao<PendingFreightMapper, Pending
long
updateInternalReportData
(
String
orderNo
,
String
name
,
BigDecimal
logisticsFreight
);
void
updateOrderedAndLoadTruckRate
(
String
orderNo
,
BigDecimal
orderedRate
,
BigDecimal
loadTruckRate
);
IPage
<
PendingFreight
>
pagePendingFreight
(
PagePendingFreightParam
param
);
}
clx-performance-web/src/main/java/com/clx/performance/dao/impl/PendingFreightDaoImpl.java
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
dao
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.PendingFreightDao
;
import
com.clx.performance.mapper.PendingFreightMapper
;
import
com.clx.performance.model.PendingFreight
;
import
com.clx.performance.param.pc.PagePendingFreightParam
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -35,4 +39,11 @@ public class PendingFreightDaoImpl extends BaseDaoImpl<PendingFreightMapper, Pen
update
.
eq
(
PendingFreight
::
getOrderNo
,
orderNo
);
baseMapper
.
update
(
update
);
}
@Override
public
IPage
<
PendingFreight
>
pagePendingFreight
(
PagePendingFreightParam
param
)
{
LambdaQueryWrapper
<
PendingFreight
>
query
=
new
LambdaQueryWrapper
<>();
query
.
orderByDesc
(
PendingFreight
::
getId
);
return
baseMapper
.
selectPage
(
Page
.
of
(
param
.
getPage
(),
param
.
getPageSize
()),
query
);
}
}
clx-performance-web/src/main/java/com/clx/performance/service/PendingFreightService.java
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.order.param.mq.SyncPendingFreightInternalReportParam
;
import
com.clx.performance.param.pc.PagePendingFreightParam
;
import
com.clx.performance.vo.pc.PagePendingFreightVO
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
/**
* @author kavin
...
...
@@ -17,4 +21,8 @@ public interface PendingFreightService {
void
dealPendingFreight4OrderGoods
(
String
orderNo
);
void
dealPendingFreight4OrderChild
(
String
orderNo
);
IPage
<
PagePendingFreightVO
>
pagePendingFreight
(
PagePendingFreightParam
param
);
SXSSFWorkbook
exportPendingFreight
(
PagePendingFreightParam
param
);
}
clx-performance-web/src/main/java/com/clx/performance/service/impl/PendingFreightServiceImpl.java
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.order.param.mq.SyncPendingFreightInternalReportParam
;
import
com.clx.order.vo.feign.FeignAddressVO
;
...
...
@@ -8,25 +10,37 @@ import com.clx.performance.dao.OrderGoodsDao;
import
com.clx.performance.dao.PendingFreightDao
;
import
com.clx.performance.dto.OrderedAndLoadTruckRateDTO
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.extranal.user.AddressService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.PendingFreight
;
import
com.clx.performance.param.pc.PageOrderGoodsListParam
;
import
com.clx.performance.param.pc.PagePendingFreightParam
;
import
com.clx.performance.service.PendingFreightService
;
import
com.clx.performance.service.PerformanceProgressService
;
import
com.clx.performance.struct.PendingFreightStruct
;
import
com.clx.performance.utils.excel.ExcelData
;
import
com.clx.performance.utils.excel.ExcelField
;
import
com.clx.performance.utils.excel.ExcelSheet
;
import
com.clx.performance.utils.excel.ExcelUtil
;
import
com.clx.performance.utils.gd.GdService
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.PagePendingFreightVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -47,6 +61,7 @@ public class PendingFreightServiceImpl implements PendingFreightService {
private
final
PerformanceProgressService
performanceProgressService
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderChildDao
orderChildDao
;
private
final
PendingFreightStruct
pendingFreightStruct
;
//处理挂单运费订单部分
...
...
@@ -196,4 +211,67 @@ public class PendingFreightServiceImpl implements PendingFreightService {
return
distance
;
}
@Override
public
IPage
<
PagePendingFreightVO
>
pagePendingFreight
(
PagePendingFreightParam
param
)
{
IPage
<
PendingFreight
>
page
=
pendingFreightDao
.
pagePendingFreight
(
param
);
List
<
PagePendingFreightVO
>
list
=
pendingFreightStruct
.
convertList
(
page
.
getRecords
());
return
new
Page
<
PagePendingFreightVO
>().
setRecords
(
list
).
setTotal
(
page
.
getTotal
()).
setPages
(
page
.
getPages
());
}
@Override
public
SXSSFWorkbook
exportPendingFreight
(
PagePendingFreightParam
param
)
{
param
.
setPage
(
1
);
param
.
setPageSize
(
1000000
);
IPage
<
PagePendingFreightVO
>
page
=
pagePendingFreight
(
param
);
List
<
PagePendingFreightVO
>
list
=
page
.
getRecords
();
// 组装表头
List
<
ExcelField
>
fieldList
=
new
ArrayList
<>();
fieldList
.
add
(
new
ExcelField
(
0
,
"货单编号"
,
"orderGoodsNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
1
,
"订单编号"
,
"orderNo"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
2
,
"订单来源"
,
"orderSourceMsg"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
3
,
"发货地址"
,
"sendAddressShorter"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
4
,
"收货地址"
,
"receiveAddressShorter"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
5
,
"货物名称"
,
"goodsName"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
6
,
"提取吨数"
,
"extractWeight"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
7
,
"已抢单吨数"
,
"alreadyTransportWeight"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
8
,
"未抢单吨数"
,
"residueTransportWeight"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
9
,
"已装车吨数"
,
"alreadyLoadWeight"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
10
,
"创建时间"
,
"createTime"
,
5000
));
fieldList
.
add
(
new
ExcelField
(
11
,
"货单状态"
,
"orderGoodsStatus"
,
5000
));
// 组装数据
List
<
List
<
ExcelData
>>
dataList
=
new
ArrayList
<>();
/* for (PagePendingFreightVO vo : list) {
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(vo.getOrderGoodsNo()));
rowData.add(new ExcelData(vo.getOrderNo()));
rowData.add(new ExcelData(vo.getOrderSourceMsg(), "-"));
rowData.add(new ExcelData(vo.getSendAddressShorter()));
rowData.add(new ExcelData(vo.getReceiveAddressShorter()));
rowData.add(new ExcelData(vo.getGoodsName()));
rowData.add(new ExcelData(vo.getExtractWeight()));
rowData.add(new ExcelData(vo.getAlreadyTransportWeight()));
rowData.add(new ExcelData(vo.getResidueTransportWeight()));
rowData.add(new ExcelData(vo.getAlreadyLoadWeight()));
rowData.add(new ExcelData(vo.getCreateTime()));
rowData.add(new ExcelData(OrderGoodsStatusEnum.Status.getMsgByCode(vo.getOrderGoodsStatus())));
dataList.add(rowData);
}
*/
ExcelSheet
excelSheet
=
new
ExcelSheet
(
"货单明细"
,
"货单明细"
,
fieldList
,
dataList
);
//创建excel
return
ExcelUtil
.
create
(
excelSheet
);
}
}
clx-performance-web/src/main/java/com/clx/performance/struct/PendingFreightStruct.java
0 → 100644
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
struct
;
import
com.clx.performance.model.PendingFreight
;
import
com.clx.performance.vo.pc.PagePendingFreightVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
import
java.util.List
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
DateStructUtil
.
class
,
imports
=
{
DateUtils
.
class
})
public
interface
PendingFreightStruct
{
List
<
PagePendingFreightVO
>
convertList
(
List
<
PendingFreight
>
records
);
}
performance-api/src/main/java/com/clx/performance/param/pc/PagePendingFreightParam.java
0 → 100644
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
param
.
pc
;
import
com.msl.common.base.PageParam
;
/**
* @ClassName PagePendingFreightParam
* @Description
* @Author kavin
* @Date 2024/10/21 9:50
* @Version 1.0
*/
public
class
PagePendingFreightParam
extends
PageParam
{
}
performance-api/src/main/java/com/clx/performance/vo/pc/PagePendingFreightVO.java
0 → 100644
浏览文件 @
78cafb60
package
com
.
clx
.
performance
.
vo
.
pc
;
import
com.clx.performance.enums.OrderEnum
;
import
com.msl.common.convertor.type.MoneyOutConvert
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
/**
* @ClassName PagePendingFreightVO
* @Description
* @Author kavin
* @Date 2024/10/21 9:51
* @Version 1.0
*/
@Getter
@Setter
public
class
PagePendingFreightVO
{
private
Integer
id
;
@Schema
(
description
=
"订单编号"
)
private
String
orderNo
;
@Schema
(
description
=
"订单状态"
)
private
Integer
orderStatus
;
@Schema
(
description
=
"货源地"
)
private
String
sendAddressShorter
;
@Schema
(
description
=
"煤源位置"
)
private
String
sendAddress
;
@Schema
(
description
=
"物流经理"
)
private
String
seniorLogisticsManagerName
;
@Schema
(
description
=
"货物名称id"
)
private
Integer
goodsNameId
;
@Schema
(
description
=
"货物名称"
)
private
String
goodsName
;
@Schema
(
description
=
"热值编码"
)
private
String
goodsTypeCode
;
@Schema
(
description
=
"热值名称"
)
private
String
goodsTypeName
;
@Schema
(
description
=
"是否C类煤源 0 否 1 是"
)
private
Integer
sendOverStandard
;
public
String
sendOverStandardMsg
;
public
String
getSendOverStandardMsg
(){
return
OrderEnum
.
OverWeight
.
getNameByCode
(
sendOverStandard
);
}
@Schema
(
description
=
"任务吨数"
)
private
BigDecimal
taskWeight
;
@Schema
(
description
=
"接单率"
)
private
BigDecimal
orderedRate
;
@Schema
(
description
=
"装车率"
)
private
BigDecimal
loadTruckRate
;
@Schema
(
description
=
"重车运距(公里)"
)
private
BigDecimal
orderDistance
;
@Schema
(
description
=
"煤源地开支"
)
private
String
sendAddressExpenses
;
@Schema
(
description
=
"历史运费"
)
@MoneyOutConvert
private
BigDecimal
historyFreight
;
@Schema
(
description
=
"历史平均运费"
)
@MoneyOutConvert
private
BigDecimal
historyAvgFreight
;
@Schema
(
description
=
"测算运费"
)
@MoneyOutConvert
private
BigDecimal
predictionFreightPrice
;
@Schema
(
description
=
"物流运费"
)
@MoneyOutConvert
private
BigDecimal
logisticsFreight
;
@Schema
(
description
=
"创建时间"
)
private
String
createTime
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论