Compare commits
2 Commits
1cfcf47080
...
46517c7c28
Author | SHA1 | Date | |
---|---|---|---|
![]() |
46517c7c28 | ||
![]() |
489cafbe43 |
@ -2,6 +2,7 @@ package com.aircraft.modules.order.biz;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.NumberChineseFormatter;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@ -17,14 +18,12 @@ import com.aircraft.modules.order.domain.dto.AddOrderTaskDTO;
|
||||
import com.aircraft.modules.order.domain.dto.OrderMainPageQueryDTO;
|
||||
import com.aircraft.modules.order.domain.dto.UpdateOrderDTO;
|
||||
import com.aircraft.modules.order.domain.enums.*;
|
||||
import com.aircraft.modules.order.domain.vo.GenerateSettlementOrderConfirmVO;
|
||||
import com.aircraft.modules.order.domain.vo.OrderAllDetailVO;
|
||||
import com.aircraft.modules.order.domain.vo.OrderMainPageQueryVO;
|
||||
import com.aircraft.modules.order.domain.vo.OrderTaskDetailVO;
|
||||
import com.aircraft.modules.order.domain.vo.*;
|
||||
import com.aircraft.modules.order.service.*;
|
||||
import com.aircraft.modules.route.domain.CpRoute;
|
||||
import com.aircraft.modules.route.service.CpRouteService;
|
||||
import com.aircraft.modules.system.domain.AttachmentMaterial;
|
||||
import com.aircraft.modules.system.domain.CnCustomer;
|
||||
import com.aircraft.modules.system.domain.EmEmployees;
|
||||
import com.aircraft.modules.system.domain.EmScenic;
|
||||
import com.aircraft.modules.system.domain.dto.LocalAttachmentMaterialDTO;
|
||||
@ -736,10 +735,58 @@ public class OrderBiz {
|
||||
* 打印结算单数据
|
||||
*
|
||||
* @param settlementOrderId 结算订单ID
|
||||
* @return Boolean
|
||||
* @return {@link PrintSettlementOrderDataVO}
|
||||
*/
|
||||
public Boolean printSettlementOrder(Long settlementOrderId) {
|
||||
return true;
|
||||
public PrintSettlementOrderDataVO printSettlementOrder(Long settlementOrderId) {
|
||||
// 查询结算订单是否存在
|
||||
SettlementMain settlementMain = settlementMainService.obtainSettlementMainById(settlementOrderId);
|
||||
if (ObjectUtil.isNull(settlementMain)) {
|
||||
throw new BadRequestException("结算订单不存在");
|
||||
}
|
||||
// 获取结算订单明细
|
||||
List<SettlementDetail> settlementDetailList = settlementDetailService.obtainDetailBySettlementOrderId(settlementOrderId);
|
||||
if (CollectionUtil.isEmpty(settlementDetailList)) {
|
||||
throw new BadRequestException("结算订单明细不存在");
|
||||
}
|
||||
// 获取所有客户
|
||||
List<CnCustomer> cnCustomerList = cnCustomerService.list();
|
||||
// 根据ID 转换成map
|
||||
Map<Long, CnCustomer> customerMap = cnCustomerList.stream().collect(Collectors.toMap(CnCustomer::getId, v -> v));
|
||||
|
||||
// 构建数据
|
||||
PrintSettlementOrderDataVO printSettlement = new PrintSettlementOrderDataVO();
|
||||
printSettlement.setSettlementTimeScope(settlementMain.getSettlementTimeScope());
|
||||
// 获取景区
|
||||
EmScenic scenic = emScenicService.obtainScenicById(settlementMain.getAttractionId());
|
||||
if (ObjectUtil.isNotNull(scenic)) {
|
||||
printSettlement.setClientName(scenic.getName());
|
||||
}
|
||||
// 获取重量
|
||||
printSettlement.setCargoWeight(settlementDetailList.stream().map(SettlementDetail::getCargoWeight).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
BigDecimal totalAmount = settlementDetailList.stream().map(SettlementDetail::getTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
// 保留小数点2位
|
||||
totalAmount = totalAmount.setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
// 金额转换成中文
|
||||
printSettlement.setTotalAmountUpper(NumberChineseFormatter.format(totalAmount, true, true));
|
||||
printSettlement.setTotalAmount(totalAmount);
|
||||
|
||||
// 构建List
|
||||
List<SettlementDetailVO> settlementDetailVOList = new ArrayList<>();
|
||||
for (SettlementDetail settlementDetail : settlementDetailList) {
|
||||
SettlementDetailVO settlementDetailVO = new SettlementDetailVO();
|
||||
settlementDetailVO.setOrderNo(settlementDetail.getOrderNo());
|
||||
settlementDetailVO.setOrderCreateTime(settlementDetail.getOrderCreateTime());
|
||||
settlementDetailVO.setCargoWeight(settlementDetail.getCargoWeight());
|
||||
settlementDetailVO.setTotalAmount(settlementDetail.getTotalAmount());
|
||||
// 客户ID
|
||||
CnCustomer cnCustomer = customerMap.get(settlementDetail.getCustomerId());
|
||||
if (ObjectUtil.isNotNull(cnCustomer)) {
|
||||
settlementDetailVO.setConfirmPerson(cnCustomer.getName());
|
||||
}
|
||||
settlementDetailVOList.add(settlementDetailVO);
|
||||
}
|
||||
printSettlement.setSettlementDetailList(settlementDetailVOList);
|
||||
return printSettlement;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5,6 +5,7 @@ import com.aircraft.modules.order.biz.OrderBiz;
|
||||
import com.aircraft.modules.order.domain.SettlementDetail;
|
||||
import com.aircraft.modules.order.domain.SettlementMain;
|
||||
import com.aircraft.modules.order.domain.vo.GenerateSettlementOrderConfirmVO;
|
||||
import com.aircraft.modules.order.domain.vo.PrintSettlementOrderDataVO;
|
||||
import com.aircraft.modules.order.service.ISettlementMainService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -63,8 +64,8 @@ public class SettlementMainController {
|
||||
|
||||
@ApiOperation("打印结算单数据-返回对应的数据集,前端进行打印PDF")
|
||||
@GetMapping("/printSettlementOrder/{settlementOrderId}")
|
||||
public ResponseEntity<Boolean> printSettlementOrder(
|
||||
@ApiParam(value = "结算订单ID", required = true, example = "1946509536383438850")
|
||||
public ResponseEntity<PrintSettlementOrderDataVO> printSettlementOrder(
|
||||
@ApiParam(value = "结算订单ID", required = true, example = "1948997367110451201")
|
||||
@PathVariable("settlementOrderId") Long settlementOrderId) {
|
||||
return new ResponseEntity<>(orderBiz.printSettlementOrder(settlementOrderId),HttpStatus.OK);
|
||||
}
|
||||
|
@ -61,6 +61,12 @@ public class SettlementDetail extends BaseEntity {
|
||||
@ApiModelProperty(value = "订单发起人ID")
|
||||
private Long orderInitiatorId;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
@ApiModelProperty(value = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 客户电话
|
||||
*/
|
||||
@ -123,5 +129,11 @@ public class SettlementDetail extends BaseEntity {
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date orderFinishTime;
|
||||
|
||||
/**
|
||||
* 重量
|
||||
*/
|
||||
@ApiModelProperty(value = "重量")
|
||||
private BigDecimal cargoWeight;
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,59 @@
|
||||
package com.aircraft.modules.order.domain.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* 打印订单数据
|
||||
*
|
||||
* @author chenxiky
|
||||
* @version 1.0.0
|
||||
* @since 2025/7/26
|
||||
*/
|
||||
@Data
|
||||
public class PrintSettlementOrderDataVO {
|
||||
|
||||
/**
|
||||
* 结算单号
|
||||
*/
|
||||
@ApiModelProperty(value = "结算单号")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 结算时间
|
||||
*/
|
||||
@ApiModelProperty(value = "结算时间")
|
||||
private String settlementTimeScope;
|
||||
|
||||
/**
|
||||
* 委托方
|
||||
*/
|
||||
@ApiModelProperty(value = "委托方")
|
||||
private String clientName;
|
||||
|
||||
/**
|
||||
* 重量
|
||||
*/
|
||||
@ApiModelProperty(value = "重量")
|
||||
private BigDecimal cargoWeight;
|
||||
|
||||
/**
|
||||
* 金额(RMB)
|
||||
*/
|
||||
@ApiModelProperty(value = "金额(RMB)")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 金额大写
|
||||
*/
|
||||
@ApiModelProperty(value = "金额大写")
|
||||
private String totalAmountUpper;
|
||||
|
||||
@ApiModelProperty(value = "结算明细")
|
||||
private List<SettlementDetailVO> settlementDetailList;
|
||||
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package com.aircraft.modules.order.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
*
|
||||
* 结算单明细 VO
|
||||
*
|
||||
* @author chenxiky
|
||||
* @version 1.0.0
|
||||
* @since 2025/7/26
|
||||
*/
|
||||
@Data
|
||||
public class SettlementDetailVO {
|
||||
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
@ApiModelProperty(value = "订单号")
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 订单创建时间
|
||||
*/
|
||||
@ApiModelProperty(value = "订单创建时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date orderCreateTime;
|
||||
|
||||
/**
|
||||
* 重量
|
||||
*/
|
||||
@ApiModelProperty(value = "重量")
|
||||
private BigDecimal cargoWeight;
|
||||
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
@ApiModelProperty(value = "金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 确认人
|
||||
*/
|
||||
@ApiModelProperty(value = "确认人")
|
||||
private String confirmPerson;
|
||||
|
||||
}
|
@ -34,4 +34,11 @@ public interface ISettlementMainService extends IService<SettlementMain> {
|
||||
*/
|
||||
List<SettlementMain> batchInsert(List<SettlementMain> settlementMainList);
|
||||
|
||||
/**
|
||||
* 根据ID获取数据
|
||||
*
|
||||
* @param settlementOrderId 结算单ID
|
||||
* @return {@link SettlementMain}
|
||||
*/
|
||||
SettlementMain obtainSettlementMainById(Long settlementOrderId);
|
||||
}
|
||||
|
@ -33,4 +33,9 @@ public class SettlementMainServiceImpl extends ServiceImpl<SettlementMainMapper,
|
||||
this.saveBatch(settlementMainList);
|
||||
return settlementMainList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettlementMain obtainSettlementMainById(Long settlementOrderId) {
|
||||
return this.getById(settlementOrderId);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user