历史订单导出,表格中明细一栏把内容分开,便于统计, 如下图,明细分成:类别、处置费和中转运营费三列,其中中转运营费仅为数字,便于统计
parent
ff2c600ae7
commit
14ae1d0e39
|
|
@ -15,6 +15,7 @@ public enum ExpenseItemCategory implements DictStr {
|
|||
ChanPin("ChanPin", "产品"),
|
||||
QingYunFuWuFei("QingYunFuWuFei", "清运服务费"),
|
||||
YunFei("YunFei", "运费"),
|
||||
ZhongZhuanYunYingFei("ZhongZhuanYunYingFei", "中转运营费"),
|
||||
;
|
||||
private final String val;
|
||||
private final String txt;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public class ExpenseItemsConfigService extends ServiceImpl<ExpenseItemsConfigMap
|
|||
* 新增
|
||||
*/
|
||||
public void add(ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||
expenseItemsConfigEntity.setExpenseItemCategory(ExpenseItemCategory.QingYunFuWuFei.getVal());
|
||||
// expenseItemsConfigEntity.setExpenseItemCategory(ExpenseItemCategory.QingYunFuWuFei.getVal());
|
||||
this.save(expenseItemsConfigEntity);
|
||||
}
|
||||
|
||||
|
|
@ -55,7 +55,8 @@ public class ExpenseItemsConfigService extends ServiceImpl<ExpenseItemsConfigMap
|
|||
* 分页查询
|
||||
*/
|
||||
public PageResult<ExpenseItemsConfigEntity> paging(PageParam pageParam, ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<ExpenseItemsConfigEntity>query(expenseItemsConfigEntity)));
|
||||
expenseItemsConfigEntity.setDeleted(Boolean.FALSE);
|
||||
return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(expenseItemsConfigEntity)));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,11 @@ public class OrderExportDetailResult {
|
|||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 付费项类型
|
||||
*/
|
||||
private String expenseItemCategory;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -95,4 +95,9 @@ public class OrderExportResult {
|
|||
*/
|
||||
private String checkerMemo;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String goodsName;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ import com.njzscloud.supervisory.order.utils.FileUtil;
|
|||
import com.njzscloud.supervisory.station.pojo.entity.StationManageEntity;
|
||||
import com.njzscloud.supervisory.station.service.StationManageService;
|
||||
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||
import com.njzscloud.supervisory.sys.dict.pojo.DictItemEntity;
|
||||
import com.njzscloud.supervisory.sys.dict.service.DictItemService;
|
||||
import com.njzscloud.supervisory.sys.role.pojo.entity.RoleEntity;
|
||||
import com.njzscloud.supervisory.sys.role.service.RoleService;
|
||||
import com.njzscloud.supervisory.sys.stationletter.constant.WarnCategory;
|
||||
|
|
@ -117,6 +119,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||
private final BizTruckService bizTruckService;
|
||||
private final DiscountManageService discountManageService;
|
||||
private final HsoaService hsoaService;
|
||||
private final DictItemService dictItemService;
|
||||
private final AtomicBoolean test_thread_running = new AtomicBoolean(false);
|
||||
Thread test_thread = null;
|
||||
@Value("${app.check-gps:false}")
|
||||
|
|
@ -1362,7 +1365,8 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||
*/
|
||||
private BigDecimal calculateItemTotalMoney(OrderExpenseItemsEntity item) {
|
||||
// 判断是否为清运服务费的弹性计费
|
||||
if (ExpenseItemCategory.QingYunFuWuFei.getVal().equals(item.getExpenseItemCategory())
|
||||
if ((ExpenseItemCategory.QingYunFuWuFei.getVal().equals(item.getExpenseItemCategory())
|
||||
|| ExpenseItemCategory.ZhongZhuanYunYingFei.getVal().equals(item.getExpenseItemCategory()))
|
||||
&& MoneyStrategy.Dun.getVal().equals(item.getMoneyStrategy())
|
||||
&& BillingType.ELASTICITY.getVal().equals(item.getBillingType())) {
|
||||
// 弹性计费逻辑
|
||||
|
|
@ -1416,7 +1420,8 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||
return discountMoney;
|
||||
}
|
||||
goodsId = entity.getOriginGoodsId();
|
||||
} else if (ExpenseItemCategory.QingYunFuWuFei.getVal().equals(item.getExpenseItemCategory())) {
|
||||
} else if (ExpenseItemCategory.QingYunFuWuFei.getVal().equals(item.getExpenseItemCategory())
|
||||
|| ExpenseItemCategory.ZhongZhuanYunYingFei.getVal().equals(item.getExpenseItemCategory())) {
|
||||
itemId = item.getOriginExpenseItemId();
|
||||
}
|
||||
List<DiscountManageEntity> discountList = discountManageService.list(Wrappers.lambdaQuery(DiscountManageEntity.class)
|
||||
|
|
@ -1766,6 +1771,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||
List<OrderExportResult> list = baseMapper.exportList(ew);
|
||||
List<OrderExportDetailResult> detailResults = baseMapper.exportDetailList(ew);
|
||||
List<Map<String, Object>> downList = new ArrayList<>();
|
||||
List<DictItemEntity> dictItems = dictItemService.list(Wrappers.<DictItemEntity>lambdaQuery()
|
||||
.eq(DictItemEntity::getDictKey, "expense_item_category")
|
||||
.eq(DictItemEntity::getDeleted, Boolean.FALSE)
|
||||
.orderByAsc(DictItemEntity::getSort));
|
||||
int i = 1;
|
||||
for (OrderExportResult result : list) {
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
|
|
@ -1784,19 +1793,29 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||
map.put("皮重(吨)", result.getTareWeight());
|
||||
map.put("净重(吨)", result.getSettleWeight());
|
||||
map.put("驾驶员", result.getDriverName());
|
||||
if (null != detailResults && detailResults.size() > 0) {
|
||||
List<OrderExportDetailResult> details = detailResults.stream().filter(t -> t.getOrderId()
|
||||
.equals(result.getId())).collect(Collectors.toList());
|
||||
List<String> detailList = new ArrayList<>();
|
||||
if (details.size() > 0) {
|
||||
for (OrderExportDetailResult detailResult : details) {
|
||||
detailList.add(detailResult.getExpenseItemName() + detailResult.getSettleMoney() + "元");
|
||||
}
|
||||
map.put("明细", JSONObject.toJSONString(detailList));
|
||||
} else {
|
||||
map.put("明细", "");
|
||||
map.put("产品", result.getGoodsName());
|
||||
List<OrderExportDetailResult> details = detailResults.stream()
|
||||
.filter(t -> t.getOrderId().equals(result.getId()))
|
||||
.collect(Collectors.toList());
|
||||
// 根据dictItems动态添加费用列
|
||||
if (null != dictItems && !dictItems.isEmpty()) {
|
||||
for (DictItemEntity dictItem : dictItems) {
|
||||
String headerName = "ChanPin".equals(dictItem.getVal()) ? "处置费" : dictItem.getTxt();
|
||||
BigDecimal amount = BigDecimal.ZERO;
|
||||
|
||||
if (!details.isEmpty()) {
|
||||
Optional<OrderExportDetailResult> matchedDetail = details.stream()
|
||||
.filter(detail -> dictItem.getVal().equals(detail.getExpenseItemCategory()))
|
||||
.findFirst();
|
||||
if (matchedDetail.isPresent()) {
|
||||
amount = matchedDetail.get().getSettleMoney();
|
||||
}
|
||||
}
|
||||
|
||||
map.put(headerName, amount);
|
||||
}
|
||||
}
|
||||
|
||||
map.put("备注", result.getCheckerMemo());
|
||||
downList.add(map);
|
||||
i++;
|
||||
|
|
|
|||
|
|
@ -228,10 +228,12 @@
|
|||
<result property="settleWeight" column="settle_weight"/>
|
||||
<result property="driverName" column="driver_name"/>
|
||||
<result property="checkerMemo" column="checker_memo"/>
|
||||
<result property="goodsName" column="goods_name"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="OrderExportDetailResultMap" type="com.njzscloud.supervisory.order.pojo.result.OrderExportDetailResult">
|
||||
<result property="orderId" column="order_id"/>
|
||||
<result property="expenseItemCategory" column="expense_item_category"/>
|
||||
<result property="expenseItemName" column="expense_item_name"/>
|
||||
<result property="settleMoney" column="settle_money"/>
|
||||
</resultMap>
|
||||
|
|
@ -261,7 +263,8 @@
|
|||
ROUND( ocio.tare_weight / 1000, 2 ) AS tare_weight,
|
||||
ROUND( ocio.settle_weight / 1000, 2 ) AS settle_weight,
|
||||
f.driver_name,
|
||||
a.checker_memo
|
||||
a.checker_memo,
|
||||
og.goods_name
|
||||
FROM
|
||||
order_info a
|
||||
LEFT JOIN biz_company b ON b.id = a.station_id
|
||||
|
|
@ -273,6 +276,7 @@
|
|||
LEFT JOIN sys_user su ON a.user_id = su.id
|
||||
LEFT JOIN order_cargo_place h ON h.id = a.cargo_place_id
|
||||
LEFT JOIN biz_driver f ON f.id = a.driver_id
|
||||
LEFT JOIN order_goods og ON og.id = a.goods_id
|
||||
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
|
||||
${ew.customSqlSegment}
|
||||
</if>
|
||||
|
|
@ -283,6 +287,7 @@
|
|||
<select id="exportDetailList" resultMap="OrderExportDetailResultMap">
|
||||
SELECT
|
||||
oei.order_id,
|
||||
oei.expense_item_category,
|
||||
oei.expense_item_name,
|
||||
oei.settle_money
|
||||
FROM
|
||||
|
|
|
|||
Loading…
Reference in New Issue