提交 6b4e30a8 authored 作者: aiqingguo's avatar aiqingguo

Merge branch 'v6.4_transportation_20231110' into test

# Conflicts: # performance-api/src/main/java/com/clx/performance/feign/PerformanceFeign.java # performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # performance-web/src/main/java/com/clx/performance/dao/OrderGoodsDao.java # performance-web/src/main/java/com/clx/performance/mapper/OrderChildMapper.java
......@@ -85,10 +85,10 @@ public interface PerformanceFeign {
@GetMapping(value = {"clx-performance/feign/orderChild/selectInTransitOrderChild"})
Result<Boolean> selectInTransitOrderChild(@RequestParam("orderNo") String orderNo);
@GetMapping(value = {"clx-performance/feign/owner/accountInfo"})
Result<OwnerAccountAllVO> accountInfo(@RequestParam Long userNo);
@GetMapping(value = {"clx-performance/feign/orderGoods/updateSystemAddressId"})
Result<Boolean> updateSystemAddressId(@RequestParam("ownerAddressId") Integer ownerAddressId,@RequestParam("systemAddressId") Integer systemAddressId);
@GetMapping(value = {"clx-performance/feign/owner/accountInfo"})
Result<OwnerAccountAllVO> accountInfo(@RequestParam Long userNo);
}
package com.clx.performance.param.app.integral;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class DriverPageIntegralTruckRankParam extends PageParam {
@ApiModelProperty(value = "车牌列表", hidden = true)
List<String> truckNoList;
}
......@@ -29,7 +29,7 @@ public class PayParam {
String tradeNo;
@NotBlank(message = "交易单id不能为空")
@ApiModelProperty(value = "交易单id", example = "23", dataType = "int")
Integer tradeId;
String tradeId;
@NotBlank(message = "交易备注不能为空")
@ApiModelProperty(value = "交易备注", example = "23", dataType = "int")
String remark;
......
......@@ -15,4 +15,6 @@ public class MslPaymentConfig {
private String host;
@Value("${msl.payment.notifyhost}")
private String notifyhost;
@Value("${msl.payment.transport.walletCode}")
private Integer transportWalletCode;
}
......@@ -85,6 +85,9 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
void updateSendSystemAddress(Integer ownerAddressId, Integer systemAddressId);
void updateReceiveSystemAddress(Integer ownerAddressId, Integer systemAddressId);
List<OrderGoods> getOrderGoodsListByOrderNoAndStatus(String orderNo);
List<OrderGoodsAPPVO> getCancelOrderGoods(List<String> list);
BigDecimal getAlreadyTransportWeight(String orderNo);
......
package com.clx.performance.extranal.user;
import com.clx.user.vo.app.driver.truck.DriverTruckAppVo;
import com.msl.common.base.Optional;
import com.msl.user.param.user.external.PageProductUsersParam;
import com.msl.user.vo.company.external.ListUserCompanyVo;
......@@ -32,4 +33,6 @@ public interface UserService {
Optional<List<ListUserCompanyVo>> listUserCompany(Long userNo);
Optional<List<DriverTruckAppVo>> driverTruckList(Long userNo);
}
package com.clx.performance.extranal.user.impl;
import com.clx.performance.extranal.user.UserService;
import com.clx.user.feign.TruckFeign;
import com.clx.user.vo.app.driver.truck.DriverTruckAppVo;
import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import com.msl.user.param.user.external.PageProductUsersParam;
import com.msl.user.vo.company.external.ListUserCompanyVo;
import com.msl.user.vo.user.UserVo;
......@@ -9,6 +12,7 @@ import com.msl.user.vo.user.external.PageProductUserVo;
import com.msl.user.vo.user.external.UserDetailInfoVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
......@@ -17,6 +21,10 @@ import java.util.List;
@Slf4j
@AllArgsConstructor
public class UserServiceImpl implements UserService {
@Autowired
private TruckFeign truckFeign;
@Override
public Optional<UserVo> getUserByNo(Long userNo, boolean containDeleted) {
return null;
......@@ -41,4 +49,14 @@ public class UserServiceImpl implements UserService {
public Optional<List<ListUserCompanyVo>> listUserCompany(Long userNo) {
return null;
}
@Override
public Optional<List<DriverTruckAppVo>> driverTruckList(Long userNo){
return Optional.ofNullable(truckFeign.driverTruckList(userNo))
.filter(Result::succeed)
.map(Result::getData);
}
}
......@@ -48,9 +48,6 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
int countValidByOrderGoodsNo(String orderGoodsNo);
@UpdateProvider(type = OrderChildSqlProvider.class, method = "batchUpdateOrderChildStatus")
Integer updateOrderGoodsSetResidueWeight(@Param(value = "status") Integer status, @Param(value = "remark") String remark,
@Param(value = "cancelTime") String cancelTime, @Param(value = "finishTime") String finishTime,
@Param(value = "childNoList") List<String> childNoList);
Integer updateOrderGoodsSetResidueWeight(@Param(value = "status") Integer status, @Param(value = "ids") List<Integer> ids);
@Select("select AVG((load_net-unload_net)/load_net) from order_child " +
......@@ -71,6 +68,9 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@Param("receiveSystemAddressId") Integer receiveSystemAddressId,
@Param("beginTime") String beginTime);
Integer updateOrderGoodsSetResidueWeight(@Param(value = "status") Integer status, @Param(value = "remark") String remark,
@Param(value = "cancelTime") String cancelTime, @Param(value = "finishTime") String finishTime,
@Param(value = "childNoList") List<String> childNoList);
@SelectProvider(type = OrderChildSqlProvider.class, method = "findArtificialCancelOrder")
......
package com.clx.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.IntegralRecordDao;
import com.clx.performance.dao.IntegralStatisticsDao;
import com.clx.performance.dao.IntegralTruckDao;
import com.clx.performance.enums.integral.IntegralRecordEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.UserService;
import com.clx.performance.model.IntegralRecord;
import com.clx.performance.model.IntegralStatistics;
import com.clx.performance.model.IntegralTruck;
......@@ -16,7 +18,10 @@ import com.clx.performance.param.pc.PageIntegralTruckRankParam;
import com.clx.performance.service.*;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.IntegralTruckVO;
import com.clx.user.vo.app.driver.truck.DriverTruckAppVo;
import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -53,6 +58,9 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
@Autowired
private IntegralMqHandlerService integralMqHandlerService;
@Autowired
private UserService userService;
@Transactional(rollbackFor = Exception.class)
@Override
public void saveTruck(IntegralTruckAddParam param) {
......@@ -153,9 +161,19 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
public IPage<IntegralTruckVO> driverPageTruckRank(DriverPageIntegralTruckRankParam param) {
String time = LocalDateTimeUtils.formatTime(LocalDateTimeUtils.getStartWeek().minusDays(7));
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
// 查找司机车辆
List<DriverTruckAppVo> driverTruckList = userService.driverTruckList(userNo).orNull();
if (driverTruckList == null || driverTruckList.isEmpty()) {return new Page<>();}
List<String> truckNoList = driverTruckList.stream().map(item -> item.getTruckNo()).collect(Collectors.toList());
param.setTruckNoList(truckNoList);
IPage<IntegralTruckVO> page = integralTruckDao.driverPageTruckRank(param);
List<String> truckNoList = page.getRecords().stream().map(item -> item.getTruckNo()).collect(Collectors.toList());
truckNoList = page.getRecords().stream().map(item -> item.getTruckNo()).collect(Collectors.toList());
if (!truckNoList.isEmpty()) {
List<IntegralStatistics> statisticsList = integralStatisticsDao.selectListByStatisticsDateAndTruckNoList(time, truckNoList);
Map<String, Integer> rankMap = statisticsList.stream().collect(Collectors.toMap(item -> item.getTruckNo(), item -> item.getRank()));
......
......@@ -65,7 +65,7 @@ public class PaymentServiceImpl implements PaymentService {
public Result paymentWallet(PayParam payDTO) {
/** 构建支付单元 **/
PayUnitDTO payUnitDTO = PayUnitDTO.builder()
.id(payDTO.getTradeId().toString())
.id(payDTO.getTradeId())
.from(payDTO.getFrom())
.to(payDTO.getTo())
.figure(payDTO.getFigure())
......
......@@ -46,7 +46,7 @@ public class TempServiceImpl implements TempService {
.to(Integer.valueOf(toUser))
.figure(Integer.valueOf(figure))
.tradeNo(UUID.randomUUID().toString().replaceAll("-", ""))
.tradeId(12345)
.tradeId("12345")
.pwd("noCheckPwd")
.remark(PayRemarkEnum.toString(PayRemarkEnum.FREIGHT_TO_OWNER.getValue()))
.build();
......
......@@ -20,6 +20,7 @@ import com.clx.performance.param.mq.BreakContractOwnerRuleAddMqParam;
import com.clx.performance.service.breakcontract.BreakContractMqHandlerService;
import com.clx.performance.service.breakcontract.BreakContractSettlementLogService;
import com.clx.performance.service.impl.UniqueOrderNumService;
import com.clx.performance.service.payment.PayService;
import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.document.api.vo.ContractEvidenceRecordVo;
import lombok.extern.slf4j.Slf4j;
......@@ -29,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.Objects;
@Slf4j
@Service
......@@ -54,6 +56,9 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
@Autowired
private UniqueOrderNumService uniqueOrderNumService;
@Autowired
private PayService payService;
@Transactional(rollbackFor = Exception.class)
@Override
public void ownerRuleAdd(BreakContractOwnerRuleAddMqParam mq) {
......@@ -108,7 +113,7 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
settlement.setChildNo(detail.getChildNo());
settlement.setFigure(detail.getFigure());
settlement.setBreakContractRemark(detail.getBreakContractRemark());
settlement.setSettleStatus(BreakContractSettlementDriverEnum.SettleStatus.NO.getCode());
settlement.setSettleStatus(BreakContractSettlementDriverEnum.SettleStatus.YES.getCode());
settlement.setCreateBy(detail.getCreateBy());
settlement.setCreateName(detail.getCreateName());
settlement.setSettlePlatform(BreakContractSettlementDriverEnum.SettlePlatform.MSL.getCode());
......@@ -119,6 +124,9 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
breakContractSettlementDriverDao.saveEntity(settlement);
// 支付
pay(settlement);
//保存结算单日志----创建结算单
breakContractSettlementLogService.saveBreakSettlementLog(settlementNo,
BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getCode(),BreakContractSettlementLogEnum.Type.CREATE_SETTLEMENT.getMsg(),
......@@ -130,4 +138,21 @@ public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandler
LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), LocalDateTimeUtils.DATE_DAY));
}
/**
* 支付
*/
private void pay(BreakContractSettlementDriver settlement){
// 车主
if (Objects.equals(settlement.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.DRIVER.getCode())){
payService.driverPay(settlement.getSettlementNo(), settlement.getDriverUserNo(), settlement.getFigure().intValue());
}
// 平台
else if (Objects.equals(settlement.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.PLATFORM.getCode())) {
payService.payDriver(settlement.getSettlementNo(), settlement.getDriverUserNo(), settlement.getFigure().intValue());
}
}
}
package com.clx.performance.service.impl.payment;
import com.clx.performance.config.MslPaymentConfig;
import com.clx.performance.enums.PayRemarkEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.service.PaymentService;
import com.clx.performance.service.payment.PayService;
import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.msl.common.enums.ResultCodeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class PayServiceImpl implements PayService {
@Autowired
private DriverService driverService;
@Autowired
private PaymentService paymentService;
@Autowired
private MslPaymentConfig mslPaymentConfig;
/**
* 司机支付平台
*/
@Override
public void driverPay(String settlementNo, Long driverUserNo, Integer figure) {
DriverInfoFeignVo driverInfoFeignVo = driverService.getDriverInfo(driverUserNo).orElseThrow(ResultCodeEnum.FAIL);
pay(driverInfoFeignVo.getWalletCode(), mslPaymentConfig.getTransportWalletCode(), figure, settlementNo, PayRemarkEnum.toString(PayRemarkEnum.COMPENSATION_TO_DRIVER.getValue()));
}
/**
* 平台支付司机
*/
@Override
public void payDriver(String settlementNo, Long driverUserNo, Integer figure) {
DriverInfoFeignVo driverInfoFeignVo = driverService.getDriverInfo(driverUserNo).orElseThrow(ResultCodeEnum.FAIL);
pay(mslPaymentConfig.getTransportWalletCode(), driverInfoFeignVo.getWalletCode(), figure, settlementNo, PayRemarkEnum.toString(PayRemarkEnum.COMPENSATION_TO_DRIVER.getValue()));
}
/**
* 支付
*/
private void pay(Integer walletCodeFrom, Integer walletCodeTo, Integer figure, String tradeNo, String remark){
PayParam noCheckPwd = PayParam.builder()
.from(walletCodeFrom)
.to(walletCodeTo)
.figure(figure)
.tradeNo(tradeNo)
.tradeId(tradeNo)
.pwd("noCheckPwd")
.remark(remark)
.build();
paymentService.paymentWallet(noCheckPwd);
}
}
package com.clx.performance.service.impl.settle;
import com.clx.performance.config.MslPaymentConfig;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementDriverDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
......@@ -78,6 +79,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired
private OrderGoodsDao orderGoodsDao;
@Autowired
private MslPaymentConfig mslPaymentConfig;
@Override
......@@ -170,11 +174,11 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
private void paySettlementDriver(SettlementDriverDetail detail){
DriverInfoFeignVo driverInfoFeignVo = driverService.getDriverInfo(detail.getDriverUserNo()).orElseThrow(ResultCodeEnum.FAIL);
PayParam noCheckPwd = PayParam.builder().from(
Integer.valueOf("100012896"))
Integer.valueOf(mslPaymentConfig.getTransportWalletCode()))
.to(Integer.valueOf(driverInfoFeignVo.getWalletCode()))
.figure(detail.getSettlementFreight().intValue())
.tradeNo(UUID.randomUUID().toString().replaceAll("-", ""))
.tradeId(12345)
.tradeNo(detail.getChildNo())
.tradeId(detail.getChildNo())
.pwd("noCheckPwd")
.remark(PayRemarkEnum.toString(PayRemarkEnum.FREIGHT_TO_OWNER.getValue()))
.build();
......
package com.clx.performance.service.payment;
public interface PayService {
void driverPay(String settlementNo, Long driverUserNo, Integer figure);
void payDriver(String settlementNo, Long driverUserNo, Integer figure);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论