提交 d7d10ea5 authored 作者: liruixin's avatar liruixin

Merge branch 'v6.4_transportation_20231110' into test

# Conflicts: # performance-web/src/main/java/com/clx/performance/service/impl/breakcontract/BreakContractSettlementOwnerServiceImpl.java
......@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotBlank;
import java.net.URLEncoder;
@Slf4j
......@@ -50,7 +51,6 @@ public class OwnerBreakContractSettlementOwnerController {
public Result<PageData<PageCarrierBreakContractSettlementOwnerVO>> pageOwnerBreakContractSettlementOwnerList(@RequestBody PageCarrierBreakContractSettlementOwnerParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
param.setOwnerUserNo(loginUserInfo.getUserNo());
System.out.println(param);
IPage<PageCarrierBreakContractSettlementOwnerVO> page = breakContractSettlementOwnerService.pageCarrierBreakContractSettlementOwnerList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
......@@ -62,6 +62,8 @@ public class OwnerBreakContractSettlementOwnerController {
param.setOwnerUserNo(loginUserInfo.getUserNo());
SXSSFWorkbook workbook = breakContractSettlementOwnerService.exportCarrierBreakContractSettlementOwnerList(param);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
String fileName = URLEncoder.encode("货主违约结算单", "UTF-8");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"");
workbook.write(response.getOutputStream());
return null;
}
......
......@@ -329,12 +329,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
BreakContractOwnerRuleVO.OrderAmountReduceRule reduceRule = autoRule.getOrderAmountReduceRule();//订单吨数减少规则
//运单状态(不包括取消)
List<Integer> statusList = Arrays.asList(
new Integer[]{OrderChildEnum.Status.CREATED.getCode(), OrderChildEnum.Status.PAY.getCode(),
OrderChildEnum.Status.GO_TO_SEND.getCode(), OrderChildEnum.Status.ARRIVE_SEND.getCode(),
OrderChildEnum.Status.LOAD.getCode(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode(),
OrderChildEnum.Status.ARRIVE_RECEIVE.getCode(), OrderChildEnum.Status.UNLOAD.getCode(),
OrderChildEnum.Status.UNSETTLE.getCode()});
List<Integer> breakStatusList = getBreakStatusList();
BigDecimal figure ;//总费用
......@@ -347,7 +342,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
.divide(param.getTransportWeight(),2, BigDecimal.ROUND_HALF_UP);
}else{
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(param.getOrderNo(), statusList);
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(param.getOrderNo(), breakStatusList);
if(CollectionUtils.isEmpty(orderChilds)){
BigDecimal totalFreight = param.getTransportWeight().multiply(param.getValidFreightPrice());
......@@ -408,6 +403,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
@Override
public void saveSettlementOwnerForCancelOrder(BigDecimal transportWeight,BigDecimal validFreightPrice,String orderNo,Integer cancelType) {
//获取订单配置的违约金方案
OwnerQuotationDetailVO quotationDetailVO = quotationService.getQuotationByOrderNo(orderNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(Objects.isNull(quotationDetailVO.getLiquidatedDamagesPlanId())){
......@@ -425,32 +421,24 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
BreakContractOwnerRuleVO.AutoRule autoRule = JSONObject.parseObject(autoRuleJson, BreakContractOwnerRuleVO.AutoRule.class);
BreakContractOwnerRuleVO.OrderCancelRule orderCancelRule = autoRule.getOrderCancelRule();//订单取消规则
//运单状态
List<Integer> statusList = new ArrayList<>();
statusList.add(OrderChildEnum.Status.CREATED.getCode());
statusList.add(OrderChildEnum.Status.PAY.getCode());
statusList.add(OrderChildEnum.Status.GO_TO_SEND.getCode());
statusList.add(OrderChildEnum.Status.ARRIVE_SEND.getCode());
statusList.add(OrderChildEnum.Status.LOAD.getCode());
statusList.add(OrderChildEnum.Status.GO_TO_RECEIVE.getCode());
statusList.add(OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
statusList.add(OrderChildEnum.Status.UNLOAD.getCode());
statusList.add(OrderChildEnum.Status.UNSETTLE.getCode());
statusList.add(OrderChildEnum.Status.COMPLETE.getCode());
List<Integer> breakStatusList = getBreakStatusList();
//由于已经更新了订单状态为货主取消了
if(Objects.equals(cancelType,CancelOrderEnum.Type.NOT_ARRIVE.getCode())){
statusList.add(OrderChildEnum.Status.OWNER_CANCEL.getCode());
breakStatusList.add(OrderChildEnum.Status.OWNER_CANCEL.getCode());
}
BigDecimal figure ;//总费用
//订单号查询货单
List<OrderGoods> orderGoods = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if(CollectionUtils.isEmpty(orderGoods)){
figure = transportWeight.multiply(validFreightPrice).multiply(orderCancelRule.getBeforeRatio());
}else{
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(orderNo, statusList);
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(orderNo, breakStatusList);
//没有司机拉运
if(CollectionUtils.isEmpty(orderChilds)){
figure = transportWeight.multiply(validFreightPrice).multiply(orderCancelRule.getAfterRatio());
......@@ -513,4 +501,26 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
ownerRecordAddParam.setRemark("订单取消产生违约");
breakContractOwnerRecordService.autoSaveRecord(ownerRecordAddParam);
}
/**
* 违约订单状态
* @return
*/
private List<Integer> getBreakStatusList(){
//运单状态
List<Integer> statusList = new ArrayList<>();
statusList.add(OrderChildEnum.Status.CREATED.getCode());
statusList.add(OrderChildEnum.Status.PAY.getCode());
statusList.add(OrderChildEnum.Status.GO_TO_SEND.getCode());
statusList.add(OrderChildEnum.Status.ARRIVE_SEND.getCode());
statusList.add(OrderChildEnum.Status.LOAD.getCode());
statusList.add(OrderChildEnum.Status.GO_TO_RECEIVE.getCode());
statusList.add(OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
statusList.add(OrderChildEnum.Status.UNLOAD.getCode());
statusList.add(OrderChildEnum.Status.UNSETTLE.getCode());
statusList.add(OrderChildEnum.Status.COMPLETE.getCode());
return statusList;
}
}
......@@ -283,6 +283,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
fieldList.add(new ExcelField(1, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(2, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(3, "货主编码", "ownerUserNo", 5000));
fieldList.add(new ExcelField(3, "结算方式", "settlementWay", 5000));
fieldList.add(new ExcelField(4, "订单编号", "orderNo", 15000));
fieldList.add(new ExcelField(5, "实际净重", "weight", 5000));
fieldList.add(new ExcelField(6, "实际运费金额", "freight", 5000));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论