提交 d5a037bf authored 作者: 杨启发's avatar 杨启发

结算单优化

上级 acc86185
...@@ -7,6 +7,7 @@ import com.clx.performance.component.GoodsOrderStrategyContext; ...@@ -7,6 +7,7 @@ import com.clx.performance.component.GoodsOrderStrategyContext;
import com.clx.performance.constant.RedisConstants; import com.clx.performance.constant.RedisConstants;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.param.pc.*; import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.carrier.PageSettlementOrderChildRiskParam;
import com.clx.performance.service.OrderChildService; import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderGoodsAdjustmentPriceService; import com.clx.performance.service.OrderGoodsAdjustmentPriceService;
import com.clx.performance.service.OrderGoodsService; import com.clx.performance.service.OrderGoodsService;
...@@ -19,13 +20,17 @@ import com.msl.common.result.Result; ...@@ -19,13 +20,17 @@ import com.msl.common.result.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -130,6 +135,15 @@ public class GoodsOrderController { ...@@ -130,6 +135,15 @@ public class GoodsOrderController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "导出货单列表",notes = "<br>By:杨启发")
@PostMapping("/exportOrderGoods")
public void exportOrderGoods(@RequestBody PageOrderGoodsListParam param, HttpServletResponse response) throws Exception {
try (SXSSFWorkbook workbook = orderGoodsService.exportOrderGoods(param)) {
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream());
}
}
@ApiOperation(value = "货单编辑查询", notes = "<br>By:胡宇帆") @ApiOperation(value = "货单编辑查询", notes = "<br>By:胡宇帆")
@GetMapping("/findOrderGoodsByBatchNumber") @GetMapping("/findOrderGoodsByBatchNumber")
@UnitCovert @UnitCovert
......
...@@ -127,6 +127,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -127,6 +127,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.set(OrderChild::getWeight, item.getWeight()) .set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getFreight, item.getFreight()) .set(OrderChild::getFreight, item.getFreight())
.set(OrderChild::getPlatformServiceFee, item.getPlatformServiceFee()) .set(OrderChild::getPlatformServiceFee, item.getPlatformServiceFee())
.set(OrderChild::getPoundAuditTime,item.getPoundAuditTime())
); );
} }
......
...@@ -104,6 +104,7 @@ public class OrderChild implements HasKey<Integer> { ...@@ -104,6 +104,7 @@ public class OrderChild implements HasKey<Integer> {
private BigDecimal platformServiceFee; //平台服务费(分) private BigDecimal platformServiceFee; //平台服务费(分)
private BigDecimal platformServiceFeeRate; //平台服务费费率% private BigDecimal platformServiceFeeRate; //平台服务费费率%
private BigDecimal deposit; //接单保证金(分/车) private BigDecimal deposit; //接单保证金(分/车)
private LocalDateTime poundAuditTime; //磅单审核通过时间
private LocalDateTime createTime; //创建时间 private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间 private LocalDateTime modifiedTime; //修改时间
......
...@@ -8,6 +8,7 @@ import com.clx.performance.param.app.OrderGoodsListPageParam; ...@@ -8,6 +8,7 @@ import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.param.feign.CancelOrderGoodsParam; import com.clx.performance.param.feign.CancelOrderGoodsParam;
import com.clx.performance.param.feign.DistributionTruckParam; import com.clx.performance.param.feign.DistributionTruckParam;
import com.clx.performance.param.pc.*; import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.carrier.PageSettlementOrderChildRiskParam;
import com.clx.performance.vo.app.OrderGoodsAPPVO; import com.clx.performance.vo.app.OrderGoodsAPPVO;
import com.clx.performance.vo.feign.FreightEstimateVO; import com.clx.performance.vo.feign.FreightEstimateVO;
import com.clx.performance.vo.feign.OrderGoodsFeignVO; import com.clx.performance.vo.feign.OrderGoodsFeignVO;
...@@ -15,6 +16,7 @@ import com.clx.performance.vo.pc.DriverFreightPriceVO; ...@@ -15,6 +16,7 @@ import com.clx.performance.vo.pc.DriverFreightPriceVO;
import com.clx.performance.vo.pc.OrderGoodsEditVO; import com.clx.performance.vo.pc.OrderGoodsEditVO;
import com.clx.performance.vo.pc.OrderGoodsPendingVO; import com.clx.performance.vo.pc.OrderGoodsPendingVO;
import com.clx.performance.vo.pc.OrderGoodsVO; import com.clx.performance.vo.pc.OrderGoodsVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -32,6 +34,8 @@ public interface OrderGoodsService { ...@@ -32,6 +34,8 @@ public interface OrderGoodsService {
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param); IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
SXSSFWorkbook exportOrderGoods(PageOrderGoodsListParam param);
void updateOrderGoodsReduceWeightAndStatusAmountLoad(OrderGoods orderGoods, BigDecimal orderChildWeight, Integer orderGoodsStatus); void updateOrderGoodsReduceWeightAndStatusAmountLoad(OrderGoods orderGoods, BigDecimal orderChildWeight, Integer orderGoodsStatus);
void borrowWeight(OrderGoods orderGoods,String orderChildNo,BigDecimal subOrderGoodsResidue, BigDecimal addAlready,BigDecimal borrowOrderWeight, void borrowWeight(OrderGoods orderGoods,String orderChildNo,BigDecimal subOrderGoodsResidue, BigDecimal addAlready,BigDecimal borrowOrderWeight,
......
package com.clx.performance.service.impl; package com.clx.performance.service.impl;
import com.alibaba.druid.sql.visitor.functions.If;
import com.clx.order.enums.QuotationEnum; import com.clx.order.enums.QuotationEnum;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
import com.clx.performance.dto.payment.PaymentDTO; import com.clx.performance.dto.payment.PaymentDTO;
...@@ -22,11 +23,13 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -22,11 +23,13 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.clx.performance.enums.OrderChildPoundAuditEnum.Status.APPROVED;
import static com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToDefaultString; import static com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToDefaultString;
/** /**
...@@ -169,6 +172,10 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -169,6 +172,10 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
//更新运单数据 //更新运单数据
orderChild.setPoundStatus(param.getStatus()); orderChild.setPoundStatus(param.getStatus());
//磅单审核通过时间
if (APPROVED.getCode().equals(param.getStatus())){
orderChild.setPoundAuditTime(LocalDateTime.now());
}
orderChildDao.updatePoundAuditStatus(orderChild); orderChildDao.updatePoundAuditStatus(orderChild);
//保存磅单审核数据 //保存磅单审核数据
......
...@@ -2294,7 +2294,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2294,7 +2294,7 @@ public class OrderChildServiceImpl implements OrderChildService {
dataList.add(rowData); dataList.add(rowData);
} }
ExcelSheet excelSheet = new ExcelSheet("运单列表", "运单列表", fieldList, dataList); ExcelSheet excelSheet = new ExcelSheet("运单明细", "运单明细", fieldList, dataList);
//创建excel //创建excel
return ExcelUtil.create(excelSheet); return ExcelUtil.create(excelSheet);
......
...@@ -21,6 +21,8 @@ import com.clx.performance.dao.*; ...@@ -21,6 +21,8 @@ import com.clx.performance.dao.*;
import com.clx.performance.dto.OrderGoodsBindTruckNumDTO; import com.clx.performance.dto.OrderGoodsBindTruckNumDTO;
import com.clx.performance.dto.OrderGoodsCancelDTO; import com.clx.performance.dto.OrderGoodsCancelDTO;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum; import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.extranal.order.QuotationService; import com.clx.performance.extranal.order.QuotationService;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
...@@ -36,6 +38,10 @@ import com.clx.performance.service.OrderGoodsLogService; ...@@ -36,6 +38,10 @@ import com.clx.performance.service.OrderGoodsLogService;
import com.clx.performance.service.OrderGoodsService; import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.service.child.OrderChildPostService; import com.clx.performance.service.child.OrderChildPostService;
import com.clx.performance.struct.OrderGoodsStruct; import com.clx.performance.struct.OrderGoodsStruct;
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.vo.app.OrderGoodsAPPVO; import com.clx.performance.vo.app.OrderGoodsAPPVO;
import com.clx.performance.vo.feign.FreightEstimateVO; import com.clx.performance.vo.feign.FreightEstimateVO;
import com.clx.performance.vo.feign.OrderGoodsFeignVO; import com.clx.performance.vo.feign.OrderGoodsFeignVO;
...@@ -44,6 +50,7 @@ import com.clx.performance.vo.pc.DriverFreightPriceVO; ...@@ -44,6 +50,7 @@ import com.clx.performance.vo.pc.DriverFreightPriceVO;
import com.clx.performance.vo.pc.OrderGoodsEditVO; import com.clx.performance.vo.pc.OrderGoodsEditVO;
import com.clx.performance.vo.pc.OrderGoodsPendingVO; import com.clx.performance.vo.pc.OrderGoodsPendingVO;
import com.clx.performance.vo.pc.OrderGoodsVO; import com.clx.performance.vo.pc.OrderGoodsVO;
import com.clx.performance.vo.pc.carrier.settle.SettlementOrderChildRiskVO;
import com.clx.user.enums.driver.DriverInfoEnum; import com.clx.user.enums.driver.DriverInfoEnum;
import com.clx.user.feign.UserClxFeign; import com.clx.user.feign.UserClxFeign;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
...@@ -56,6 +63,7 @@ import com.msl.user.utils.TokenUtil; ...@@ -56,6 +63,7 @@ import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
...@@ -200,6 +208,56 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -200,6 +208,56 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
return page; return page;
} }
@Override
public SXSSFWorkbook exportOrderGoods(PageOrderGoodsListParam param) {
param.setPage(1);
param.setPageSize(1000000);
IPage<OrderGoodsVO> orderGoodsPage = pageOrderGoodsList(param);
List<OrderGoodsVO> list = orderGoodsPage.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, "发货地址", "sendAddressShorter", 5000));
fieldList.add(new ExcelField(3, "收货地址", "receiveAddressShorter", 5000));
fieldList.add(new ExcelField(4, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(5, "提取吨数", "extractWeight", 5000));
fieldList.add(new ExcelField(6, "已派单", "dispatchedOrders", 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 (OrderGoodsVO vo : list) {
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(vo.getOrderGoodsNo()));
rowData.add(new ExcelData(vo.getOrderNo()));
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.getDispatchedOrders()));
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);
}
@Override @Override
public void updateOrderGoodsReduceWeightAndStatusAmountLoad(OrderGoods orderGoods, BigDecimal orderChildWeight, Integer orderGoodsStatus) { public void updateOrderGoodsReduceWeightAndStatusAmountLoad(OrderGoods orderGoods, BigDecimal orderChildWeight, Integer orderGoodsStatus) {
if (orderGoods.getOrderGoodsStatus().equals(OrderGoodsStatusEnum.Status.CANCEL.getCode()) if (orderGoods.getOrderGoodsStatus().equals(OrderGoodsStatusEnum.Status.CANCEL.getCode())
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论