提交 4f9b0aa3 authored 作者: 刘海泉's avatar 刘海泉

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts: # performance-web/src/main/java/com/clx/performance/controller/temp/TempTraceController.java # performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # performance-web/src/main/java/com/clx/performance/mapper/OrderChildMapper.java
...@@ -37,7 +37,7 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -37,7 +37,7 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_WEIGHT_LACK(1201, "剩余吨数不足,请联系客服"), ORDER_WEIGHT_LACK(1201, "剩余吨数不足,请联系客服"),
ORDER_INVALID(1202, "无效的货单"), ORDER_INVALID(1202, "无效的货单"),
ORDER_INVALID1(1203, "当前运单的货源已完成或取消,请查看其他货源"), ORDER_INVALID1(1203, "当前运单的货源已完成或取消,请查看其他货源"),
ORDER_DRIVER_LIMIT(1204, "该货单不支持车主抢单"),
ORDER_CHILD_NO_FOUND(1301, "运单不存在"), ORDER_CHILD_NO_FOUND(1301, "运单不存在"),
ORDER_CHILD_STATUS_CHANGED(1302, "运单状态已变更,请重新刷新页面"), ORDER_CHILD_STATUS_CHANGED(1302, "运单状态已变更,请重新刷新页面"),
...@@ -97,6 +97,10 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -97,6 +97,10 @@ public enum PerformanceResultEnum implements ResultEnum {
INTEGRAL_RULE_NAME_EXIST(1703, "层级名称已存在"), INTEGRAL_RULE_NAME_EXIST(1703, "层级名称已存在"),
APP_POP_UP_ERROR(-1000, "app弹窗提示"), APP_POP_UP_ERROR(-1000, "app弹窗提示"),
/**司机提示语 **/
APP_POP_UP_DRIVER_RESIDUE_ERROR(-500, "app弹窗提示"),
/**车主提示语 **/
APP_POP_UP_OWNER_RESIDUE_ERROR(-499, "app弹窗提示"),
WALLET_CODE_IS_NULL(1704, "用户钱包不存在"), WALLET_CODE_IS_NULL(1704, "用户钱包不存在"),
ORDER_GOODS_SAVE_FAIL(1801, "保存货单失败,请稍后再试"), ORDER_GOODS_SAVE_FAIL(1801, "保存货单失败,请稍后再试"),
......
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
/**
* @author yangqifa
*/
@Getter
@AllArgsConstructor
public enum PlatformServiceFeeConfigEnum {
/**
* 未税
*/
TAX_EXCLUDED(0, "未税"),
/**
* 含税
*/
TAX_INCLUDED(1, "含税");
private final Integer code;
private final String msg;
public static Optional<PlatformServiceFeeConfigEnum> getByCode(int code) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.getCode(), code)).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(PlatformServiceFeeConfigEnum::getMsg).orElse(null);
}
}
package com.clx.performance.enums.payment;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
public enum PayOperationStatusEnum {
FREEZE(1, "冻结"),
ADJUSTMENT(2, "调整"),
UNFREEZE(3, "解冻"),
PART_UNFREEZE(4, "部分解冻"),
PART_PAY(5, "部分支付"),
PAY(6, "支付"),
COMPLETE(7, "完成")
;
private static Map<Integer, String> map = new ConcurrentHashMap<>();
static {
for(PayOperationStatusEnum payOperationStatusEnum : PayOperationStatusEnum.values()){
map.put(payOperationStatusEnum.getValue(), payOperationStatusEnum.getDisplayValue());
}
}
private int value;
private String displayValue;
public void setValue(int value) {
this.value = value;
}
public String getDisplayValue() {
return displayValue;
}
public void setDisplayValue(String displayValue) {
this.displayValue = displayValue;
}
private PayOperationStatusEnum(int value, String displayValue){
this.value = value;
this.displayValue = displayValue;
}
public int getValue(){
return value;
}
public static String toString(int value){
return map.get(value);
}
}
package com.clx.performance.enums.payment;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum PaymentActionEnum {
;
/** 操作类型 1撤销 2完成 3修改*/
@Getter
@AllArgsConstructor
public enum Type {
CANCEL(1, "撤销"),
COMPLETE(2, "完成"),
ADJUST(3, "修改"),
;
private final Integer code;
private final String msg;
public static Optional<Type> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Type::getMsg).orElse(null);
}
}
}
package com.clx.performance.enums.payment;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
* 支付状态
*/
public enum PaymentStatusEnum {
CREATE(0, "发起"),
SUCCESS(1, "成功"),
FAIL(2, "失败")
;
private static Map<Integer, String> map = new ConcurrentHashMap<>();
static {
for(PaymentStatusEnum paymentStatusEnum : PaymentStatusEnum.values()){
map.put(paymentStatusEnum.getValue(), paymentStatusEnum.getDisplayValue());
}
}
private int value;
private String displayValue;
public void setValue(int value) {
this.value = value;
}
public String getDisplayValue() {
return displayValue;
}
public void setDisplayValue(String displayValue) {
this.displayValue = displayValue;
}
private PaymentStatusEnum(int value, String displayValue){
this.value = value;
this.displayValue = displayValue;
}
public int getValue(){
return value;
}
public static String toString(int value){
return map.get(value);
}
}
...@@ -49,6 +49,22 @@ public enum SettlementOwnerDetailEnum { ...@@ -49,6 +49,22 @@ public enum SettlementOwnerDetailEnum {
return getByCode(code).map(FinalPaymentStatus::getMsg).orElse(null); return getByCode(code).map(FinalPaymentStatus::getMsg).orElse(null);
} }
} }
@Getter
@AllArgsConstructor
public enum InvoiceChannel {
BROKER(1, "无车承运"),
;
private final Integer code;
private final String msg;
public static Optional<InvoiceChannel> getByCode(int code) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.getCode(), code)).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(InvoiceChannel::getMsg).orElse(null);
}
}
} }
...@@ -100,6 +100,7 @@ public enum SettlementOwnerEnum { ...@@ -100,6 +100,7 @@ public enum SettlementOwnerEnum {
IMMEDIATE(1, "拉运完成结算"), IMMEDIATE(1, "拉运完成结算"),
MONTH(2, "月结"), MONTH(2, "月结"),
DAILY(3, "日结"),
; ;
......
...@@ -13,7 +13,9 @@ public enum SettlementWayEnum { ...@@ -13,7 +13,9 @@ public enum SettlementWayEnum {
@AllArgsConstructor @AllArgsConstructor
public enum WayType { public enum WayType {
LOAD(1, "装车净重"), LOAD(1, "装车净重"),
UNLOAD(2, "卸车净重"); UNLOAD(2, "卸车净重"),
UNLOAD_LOSS(3, "卸车净重(减货损)"),
;
private final Integer code; private final Integer code;
private final String msg; private final String msg;
......
package com.clx.performance.feign;
import com.clx.performance.vo.pc.broker.TransportParam;
import com.clx.performance.vo.pc.broker.TransportVO;
import com.msl.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@FeignClient(name = "broker-service",configuration = PerformanceClientConfiguration.class,url = "${settlement.brokerHost}")
public interface BrokerFeign {
/**
* 运单同步
*/
@RequestMapping(method = RequestMethod.POST, value = "/broker-service/open/transport/saveTransport")
Result<Object> saveTransport(@RequestBody TransportParam param);
@RequestMapping(value = "/broker-service/open/transport/getTransportByChildNo", method = RequestMethod.GET)
Result<TransportVO> getTransportByChildNo(@RequestParam @NotBlank(message = "运单编号不能为空") String childNo,
@RequestParam @NotNull(message = "userCode不能为空") String userCode);
}
...@@ -12,6 +12,7 @@ import com.clx.performance.param.pc.owner.UpdateStatusParam; ...@@ -12,6 +12,7 @@ import com.clx.performance.param.pc.owner.UpdateStatusParam;
import com.clx.performance.vo.app.collect.AppCollectTruckVO; import com.clx.performance.vo.app.collect.AppCollectTruckVO;
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;
import com.clx.performance.vo.feign.PlatformServiceFeeConfigFeignVO;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerAccountArrearsVO; import com.clx.performance.vo.pc.OwnerAccountArrearsVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO; import com.clx.performance.vo.pc.OwnerLoanAccountVO;
...@@ -133,6 +134,17 @@ public interface PerformanceFeign { ...@@ -133,6 +134,17 @@ public interface PerformanceFeign {
@PostMapping(value = {"clx-performance/feign/orderGoods/saveBindTruck"}) @PostMapping(value = {"clx-performance/feign/orderGoods/saveBindTruck"})
Result<Object> saveBindTruck(@RequestBody @Validated DistributionTruckParam param); Result<Object> saveBindTruck(@RequestBody @Validated DistributionTruckParam param);
/**
* 更新挂单运费
*/
@PostMapping(value = {"clx-performance/feign/orderGoods/updatePendingOrderFright"})
Result<Void> updatePendingOrderFright(@RequestParam("orderGoodsNo") String orderGoodsNo,@RequestParam("pendingOrderFreight") BigDecimal pendingOrderFreight);
/**
* 获取平台服务费配置
*/
@GetMapping(value = {"clx-performance/feign/platformServiceFee/getPlatformServiceFeeConfig"})
Result<PlatformServiceFeeConfigFeignVO> getPlatformServiceFeeConfig();
/** /**
* 取消货单 * 取消货单
* @param param * @param param
......
...@@ -25,4 +25,7 @@ public class OrderChildSaveParam extends PositionParam { ...@@ -25,4 +25,7 @@ public class OrderChildSaveParam extends PositionParam {
@NotNull(message = "司机用户编号空") @NotNull(message = "司机用户编号空")
private Long driverUserNo; private Long driverUserNo;
@ApiModelProperty(value = "支付方密码", example = "2356", dataType = "String")
private String pwd;
} }
...@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; ...@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.DecimalMax;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -24,6 +25,7 @@ public class OpenOwnerTopUpParam { ...@@ -24,6 +25,7 @@ public class OpenOwnerTopUpParam {
@ApiModelProperty(value = "充值金额(元)", example = "1.23") @ApiModelProperty(value = "充值金额(元)", example = "1.23")
@MoneyInConvert @MoneyInConvert
@DecimalMax(value = "9999999999.99",message = "金额不得大于9999999999.99元")
private BigDecimal topUpBalance; private BigDecimal topUpBalance;
@ApiModelProperty(value = "账户类型: 1:保证金 2:预付运费", example = "1") @ApiModelProperty(value = "账户类型: 1:保证金 2:预付运费", example = "1")
......
package com.clx.performance.param.pc.carrier;
import com.msl.common.convertor.type.MoneyInConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @author yangqifa
*/
@Getter
@Setter
public class SavePlatformServiceFeeConfigParam {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "订单报价方式,0:未税,1:含税")
private Integer orderQuotationType;
@ApiModelProperty(value = "接单保证金")
@MoneyInConvert
private BigDecimal deposit;
@ApiModelProperty(value = "平台服务费费率")
private BigDecimal serviceFeeRate;
}
...@@ -28,10 +28,16 @@ public class PageCarrierSettlementOwnerParam extends PageParam { ...@@ -28,10 +28,16 @@ public class PageCarrierSettlementOwnerParam extends PageParam {
@ApiModelProperty(value="货主姓名",example = "张三") @ApiModelProperty(value="货主姓名",example = "张三")
private String ownerUserName; private String ownerUserName;
@ApiModelProperty("结算方式 1装车净重 2卸车净重") @ApiModelProperty("结算方式 1装车净重 2卸车净重 3卸车净重(减货损)")
private Integer settlementWay; private Integer settlementWay;
@ApiModelProperty("订单编号") @ApiModelProperty("订单编号")
private String orderNo; private String orderNo;
@ApiModelProperty(value = "开始时间")
private String beginTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
} }
package com.clx.performance.param.pc.owner;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName PageCarrierSettlementOwnerParam
* @Description
* @Author
* @Date 2023/10/17 13:25
* @Version 1.0
*/
@Getter
@Setter
public class PageCarrierSettlementPlatformServiceFeeParam extends PageParam {
@ApiModelProperty(value = "运单编号", example = "JS415")
private String childNo;
@ApiModelProperty(value="车主编码",example = "201457878")
private Long driverUserNo;
@ApiModelProperty(value="车主姓名",example = "张三")
private String driverUserName;
@ApiModelProperty(value="车主手机",example = "13000000000")
private String driverMobile;
@ApiModelProperty(value = "开始时间")
private String beginTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
}
package com.clx.performance.param.pc.payment;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
*
* @author xujianke
* @date 2017年4月22日
* @description
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class CallServiceDTO {
/** 业务系统编码 参考<SystemCodeEnum> */
Integer system;
/** 支付结果通知回调地址 */
String notifyUrl;
/** 操作唯一标识 UUID */
String uuid;
/** 关联单号 */
String orderNo;
}
package com.clx.performance.param.pc.payment;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
/**
*
* @author xujianke
* @date 2017年5月31日
* @description 批量处理冻结
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class FreezeBatchDTO extends CallServiceDTO{
/** 处理冻结 */
private List<FreezeUnitDTO> FreezeUnitList;
/** 增加支付单元的处理,为了在解冻的时候额外增加赔偿 add by cuiwanzhe 20200430 */
private PayBatchDTO payBatchDTO;
}
package com.clx.performance.param.pc.payment;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
/**
*
* @author xujianke
* @date 2017年4月18日
* @description 同一个订单的批量支付操作类 不能跨订单支付
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class PayBatchDTO extends CallServiceDTO{
/**支付操作*/
private List<PayUnitDTO> payUnitList;
/**主钱包*/
private Integer walletCode;
/**子钱包*/
private Integer walletSubCode;
/**主钱包的交易密码*/
private String pwd;
}
package com.clx.performance.param.pc.payment;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors(chain = true)
public class PayPlatformFeeParam {
@ApiModelProperty(value = "支付来源", example = "2234", dataType = "int")
Integer from;
@ApiModelProperty(value = "支付方密码", example = "2356", dataType = "String")
String pwd;
@ApiModelProperty(value = "金额", example = "2356", dataType = "int")
Integer figure;
@NotBlank(message = "交易单号不能为空")
@ApiModelProperty(value = "交易单号", example = "2356", dataType = "String")
String tradeNo;
}
package com.clx.performance.param.pc.payment;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(description = "钱包查询")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class WalletParam {
/**
* 用户编号从10000001开始
*/
@ApiModelProperty(value = "主钱包账号", dataType = "int", example = "1")
private Integer userCode;
}
package com.clx.performance.param.pc.payment;
import com.fasterxml.jackson.annotation.JsonGetter;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
public class WalletResidueDTO {
//余额
@ApiModelProperty(value = "余额", dataType = "double", example = "11.10")
private Long residue;
//冻结的资金
@ApiModelProperty(value = "冻结的资金", dataType = "double", example = "11.10")
private Long frozen;
//保证金
@ApiModelProperty(value = "保证金", dataType = "double", example = "11.10")
private Double deposit;
//状态0锁定1正常2异常
@ApiModelProperty(value = "状态0锁定1正常2异常", dataType = "int", example = "1")
private Integer status;
//是否设置交易密码0没有1有
@ApiModelProperty(value = "是否设置交易密码0没有1有", dataType = "String", example = "1")
private String pwd;
public Long getResidue() {
return residue;
}
public void setResidue(Long residue) {
this.residue = residue;
}
public Long getFrozen() {
return frozen;
}
public void setFrozen(Long frozen) {
this.frozen = frozen;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@JsonGetter(value="frozen")
public BigDecimal frozenFormat() {
return new BigDecimal(new Double(this.frozen)/100);
}
@JsonGetter(value="residue")
public Double residueFormat() {
return new Double(this.residue)/100;
}
@JsonGetter(value="deposit")
public Double depositFormat() {
return new Double(this.deposit)/100;
}
public Double getDeposit() {
return deposit;
}
public void setDeposit(Double deposit) {
this.deposit = deposit;
}
@Override
public String toString() {
return "WalletDTO [residue=" + residue + ", frozen=" + frozen
+ ", status=" + status + "]";
}
}
...@@ -181,6 +181,14 @@ public class OrderChildVO { ...@@ -181,6 +181,14 @@ public class OrderChildVO {
@ApiModelProperty("最晚装货时间") @ApiModelProperty("最晚装货时间")
private String lastLoadTime; private String lastLoadTime;
@MoneyOutConvert
@ApiModelProperty("平台服务费")
private BigDecimal platformServiceFee;
@ApiModelProperty("平台服务费费率%")
private BigDecimal platformServiceFeeRate;
@MoneyOutConvert
@ApiModelProperty("接单保证金(元/车)")
private BigDecimal deposit;
//结算信息 //结算信息
@ApiModelProperty(value = "实际运费", example = "1.23") @ApiModelProperty(value = "实际运费", example = "1.23")
...@@ -219,5 +227,7 @@ public class OrderChildVO { ...@@ -219,5 +227,7 @@ public class OrderChildVO {
@ApiModelProperty(value = "车辆未开启中交兴路的提示信息") @ApiModelProperty(value = "车辆未开启中交兴路的提示信息")
private String notOpenZJXLMsg; private String notOpenZJXLMsg;
@ApiModelProperty("接单保证金 平台服务费费率 弹窗和文案显示 0 不显示 1 显示")
private Integer goodsOrderDetailShow = 0;
} }
\ No newline at end of file
package com.clx.performance.vo.feign;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class PlatformServiceFeeConfigFeignVO {
@ApiModelProperty(value = "订单报价方式,1:未税,2:含税")
private Integer orderQuotationType;
@ApiModelProperty(value = "结算方式")
private Integer settlementType;
@ApiModelProperty(value = "接单保证金")
private BigDecimal deposit;
@ApiModelProperty(value = "平台服务费费率")
private BigDecimal serviceFeeRate;
}
package com.clx.performance.vo.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Description: 结算
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class SettlementInvoiceStatusSyncMqParam {
private String childNo; //运单编号
}
package com.clx.performance.vo.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Description: 结算
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class SettlementInvoiceTypeSyncMqParam {
private String childNo; //运单编号
}
package com.clx.performance.vo.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Description: 结算
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class SettlementPayStatusSyncMqParam {
private String childNo; //运单编号
}
package com.clx.performance.vo.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Description: 结算
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class SettlementSettleMqParam {
private String childNo; //运单编号
private Integer InvoiceType; //开票类型
}
...@@ -7,7 +7,7 @@ import lombok.ToString; ...@@ -7,7 +7,7 @@ import lombok.ToString;
/** /**
* @Author: aiqingguo * @Author: aiqingguo
* @Description: 开票标识同步 * @Description: 结算统计
* @Date: 2023-10-19 15:45:25 * @Date: 2023-10-19 15:45:25
* @Version: 1.0 * @Version: 1.0
*/ */
...@@ -15,7 +15,7 @@ import lombok.ToString; ...@@ -15,7 +15,7 @@ import lombok.ToString;
@Getter @Getter
@ToString @ToString
@NoArgsConstructor @NoArgsConstructor
public class SettlementDetailInvoiceTypeSyncMqParam { public class SettlementStatisticsMqParam {
private String childNo; //运单编号 private String childNo; //运单编号
private Integer InvoiceType; //司机计费明细id private Integer InvoiceType; //司机计费明细id
......
...@@ -146,4 +146,20 @@ public class OrderGoodsVO { ...@@ -146,4 +146,20 @@ public class OrderGoodsVO {
@ApiModelProperty("已派单数") @ApiModelProperty("已派单数")
private Integer dispatchedOrders; private Integer dispatchedOrders;
@ApiModelProperty("平台运费报价税类型:0未税 1含税")
private Integer platformFreightQuotationTaxType;
@ApiModelProperty("平台服务费费率%")
private BigDecimal platformServiceFeeRate;
@MoneyOutConvert
@ApiModelProperty("接单保证金(分/车)")
private BigDecimal deposit;
@ApiModelProperty("结算方式 1装车净重 2卸车净重")
private Integer settlementWay;
@ApiModelProperty("接单保证金 平台服务费费率 弹窗和文案显示 0 不显示 1 显示")
private Integer goodsOrderDetailShow = 0;
} }
\ No newline at end of file
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOrderChildDTO {
private String sourceChildNo;
@ApiModelProperty(value = "源货单编号", example = "1234", required = true, dataType = "String")
private String sourceGoodsNo;
@ApiModelProperty(value = "源订单编号", example = "1234", required = true, dataType = "String")
private String sourceOrderNo;
@ApiModelProperty(value = "源结算单编号", example = "1234", required = true, dataType = "String")
private String sourceSettlementNo;
@ApiModelProperty(value = "运费单价(分/吨)", example = "162", required = true, dataType = "Integer")
private Integer freightPrice;
@ApiModelProperty(value = "运费(分)", example = "162", required = true, dataType = "Integer")
private Integer freight;
@ApiModelProperty(value = "司机运费(分)", example = "123", dataType = "Integer")
private Integer driverFreight;
@ApiModelProperty(value = "司机运费单价(分/吨)", example = "123", dataType = "Integer")
private Integer driverFreightPrice;
@ApiModelProperty(value = "开票金额(分)", example = "162", required = true, dataType = "Integer")
private Integer invoiceFreight;
@ApiModelProperty(value = "亏吨扣款(分)", example = "123", dataType = "Integer")
private Integer lossFee;
@ApiModelProperty(value = "货损单价(分/吨)", example = "123", dataType = "Integer")
private Integer lossFeePrice;
@ApiModelProperty(value = "发货皮重(吨)")
private BigDecimal sendTare;
@ApiModelProperty(value = "发货毛重(吨)")
private BigDecimal sendRough;
@ApiModelProperty(value = "发货净重(吨)")
private BigDecimal sendNet;
@ApiModelProperty(value = "接单时间")
private String payTime;
@ApiModelProperty(value = "装车时间")
private String loadTime;
@ApiModelProperty(value = "卸车时间")
private String unloadTime;
@ApiModelProperty(value = "运单完成时间", example = "2020-02-02 10:10:10", required = true, dataType = "String")
private String payFinishedTime;
@ApiModelProperty(value = "收货皮重(吨)")
private BigDecimal receiveTare;
@ApiModelProperty(value = "收货毛重(吨)")
private BigDecimal receiveRough;
@ApiModelProperty(value = "收货净重(吨)")
private BigDecimal receiveNet;
@ApiModelProperty(value = "备注", example = "", required = true, dataType = "String")
private String remark;
}
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOrderChildDriverDTO {
@ApiModelProperty(value = "手机号", dataType="String")
private String mobile;
@ApiModelProperty(value = "姓名", dataType="String")
private String name;
@ApiModelProperty(value = "性别1男2女", dataType="Integer")
private Integer sex;
@ApiModelProperty(value = "头像相对地址", dataType="String")
private String headImg;
@ApiModelProperty(value = "身份证号", dataType="String")
private String cardNo;
@ApiModelProperty(value = "身份证住址")
private String idCardAddress;
@ApiModelProperty(value = "身份证有效期起始时间", dataType="String")
private String cardStartTime;
@ApiModelProperty(value = "身份证有效期终止时间", dataType="String")
private String cardEndTime;
@ApiModelProperty(value = "是否是长期 0-非长期 1-长期", dataType="Integer")
private Integer cardLongTerm;
@ApiModelProperty(value = "身份证正面图片地址", dataType="String")
private String cardFrontImg;
@ApiModelProperty(value = "身份证背面图片地址", dataType="String")
private String cardBackImg;
@ApiModelProperty(value = "手持身份证照片地址", dataType="String")
private String faceCardImg;
@ApiModelProperty(value = "驾驶证号码", dataType="String")
private String licenceNo;
@ApiModelProperty(value = "驾驶证发证机关")
private String licenceIssueOrganization;
@ApiModelProperty(value = "初次领证日期", dataType="String")
private String licenseTime;
@ApiModelProperty(value = "驾照类型", dataType="String")
private String licenceClass;
@ApiModelProperty(value = "驾驶证正面图片", dataType="String")
private String licenceImg;
@ApiModelProperty(value = "驾驶证背面图片", dataType="String")
private String licenceBackImg;
@ApiModelProperty(value = "驾驶证有效期起始时间", dataType="String")
private String licenceStartTime;
@ApiModelProperty(value = "驾驶证有效期终止时间", dataType="String")
private String licenceEndTime;
@ApiModelProperty(value = "道路运输许可证图片地址", dataType="String")
private String transportLicenceImg;
@ApiModelProperty(value = "道路运输从业资格证号", dataType="String")
private String occupationalLicenceNo;
@ApiModelProperty(value = "道路运输从业资格证图片地址", dataType="String")
private String occupationalLicenceImg;
@ApiModelProperty(value = "从业资格证有效期起始时间", dataType="String")
private String occupationalStartTime;
@ApiModelProperty(value = "从业资格证有效期终止时间", dataType="String")
private String occupationalEndTime;
@ApiModelProperty(value = "银行卡卡号", example = "", required = true, dataType = "String")
private String bankCardNo;
@ApiModelProperty(value = "银行预留手机号", example = "", required = true, dataType = "String")
private String bankMobile;
@ApiModelProperty(value = "银行名称", example = "", required = true, dataType = "String")
private String bankName;
}
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOrderChildImageDTO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "图片类型", example = "2: 装车磅单照片 21:收货过磅单", required = true, dataType = "Integer")
private Integer type;
@ApiModelProperty(value = "图片相对地址", example = "", required = true, dataType = "String")
private String image;
public OpenOrderChildImageDTO(Integer type, String image) {
this.type = type;
this.image = image;
}
}
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOrderChildTruckDTO {
@ApiModelProperty(value = "车牌号", dataType="String")
private String truckNo;
@ApiModelProperty(value = "车头车牌颜色代码", dataType="Integer")
private Integer truckNoColorCode;
@ApiModelProperty(value = "车头车牌颜色", dataType="String")
private String truckNoColor;
@ApiModelProperty(value = "型号", dataType="String")
private String model;
@ApiModelProperty(value = "载重单位吨", dataType="Integer")
private Integer load;
@ApiModelProperty(value = "吨位 单位吨", dataType="Integer")
private Integer grossMass;
@ApiModelProperty(value = "车辆识别代码")
private String identifyCode;
@ApiModelProperty(value = "使用性质")
private String useNature;
@ApiModelProperty(value = "注册日期")
private String registerDate;
@ApiModelProperty(value = "行驶证发证机关")
private String licenceIssueOrganization;
@ApiModelProperty(value = "行驶证发证日期")
private String licenceIssueDate;
@ApiModelProperty(value = "业户名称")
private String businessName;
@ApiModelProperty(value = "道路运输经营许可证号")
private String roadTransportPermitNumber;
@ApiModelProperty(value = "挂车第二个车牌号")
private String truckNo2;
@ApiModelProperty(value = "车头道路运输许可证编号", dataType="String")
private String roadTransportCertificateNo;
@ApiModelProperty(value = "行驶证主页照片", dataType="String")
private String licenceImgMain;
@ApiModelProperty(value = "行驶证副业正面照片", dataType="String")
private String licenceImgSecond;
@ApiModelProperty(value = "行驶证副业背面照片", dataType="String")
private String licenceImgSecondBack;
@ApiModelProperty(value = "道路运输许可证图片地址", dataType="String")
private String transportLicenceImg;
@ApiModelProperty(value = "车辆燃料类型 1:柴油 2 天然气 3其他 4新能源/电", dataType="Integer")
private Integer powerType;
}
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOrderChildTruckOwnerDTO {
@ApiModelProperty(value = "手机号", dataType="String")
private String mobile;
@ApiModelProperty(value = "姓名", dataType="String")
private String name;
@ApiModelProperty(value = "性别1男2女", dataType="Integer")
private Integer sex;
@ApiModelProperty(value = "头像相对地址", dataType="String")
private String headImg;
@ApiModelProperty(value = "身份证号", dataType="String")
private String cardNo;
@ApiModelProperty(value = "身份证住址")
private String idCardAddress;
@ApiModelProperty(value = "身份证有效期起始时间", dataType="String")
private String cardStartTime;
@ApiModelProperty(value = "身份证有效期终止时间", dataType="String")
private String cardEndTime;
@ApiModelProperty(value = "是否是长期 0-非长期 1-长期", dataType="Integer")
private Integer cardLongTerm;
@ApiModelProperty(value = "身份证正面图片地址", dataType="String")
private String cardFrontImg;
@ApiModelProperty(value = "身份证背面图片地址", dataType="String")
private String cardBackImg;
@ApiModelProperty(value = "手持身份证照片地址", dataType="String")
private String faceCardImg;
@ApiModelProperty(value = "银行卡卡号", example = "", required = true, dataType = "String")
private String bankCardNo;
@ApiModelProperty(value = "银行预留手机号", example = "", required = true, dataType = "String")
private String bankMobile;
@ApiModelProperty(value = "银行名称", example = "", required = true, dataType = "String")
private String bankName;
}
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOrderDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "货单编号", example = "12020083116861267", required = true, dataType = "String")
private String sourceOrderNo;
@ApiModelProperty(value = "发布货源时间", example = "2023-01-01 00:00:00", required = true, dataType = "String")
private String publishTime;
@ApiModelProperty(value = "最晚装货时间", example = "2023-01-01 00:00:00", required = true, dataType = "String")
private String extractTime;
@ApiModelProperty(value = "司机最晚到达时间", example = "2023-01-01 00:00:00", required = true, dataType = "String")
private String arriveTime;
@ApiModelProperty(value = "总货物数量", example = "32.12", required = true, dataType = "String")
private BigDecimal goodsAmount;
@ApiModelProperty(value = "货物名称", example = "原煤", required = true, dataType = "String")
private String goodsName;
@ApiModelProperty(value = "货物运费单价(分)", example = "3212", required = true, dataType = "Integer")
private Integer transPrice;
@ApiModelProperty(value = "货物价值(分)", example = "3212", required = true, dataType = "Integer")
private Integer goodsPrice;
@ApiModelProperty(value = "发货单位", example = "发货单位", required = true, dataType = "String")
private String sendCompany;
@ApiModelProperty(value = "货源所在详细地址", example = "货源所在详细地址", required = true, dataType = "String")
private String sendAddress;
@ApiModelProperty(value = "发货人姓名", example = "张三", required = true, dataType = "String")
private String sendName;
@ApiModelProperty(value = "收货人所在详细地址", example = "收货人所在详细地址", required = true, dataType = "String")
private String receiveAddress;
@ApiModelProperty(value = "收货单位", example = "收货单位", required = true, dataType = "String")
private String receiveCompany;
@ApiModelProperty(value = "收货人姓名", example = "张三", required = true, dataType = "String")
private String receiveName;
@ApiModelProperty(value = "发货所在省份", required = true)
private String sendProvince;
@ApiModelProperty(value = "发货所在城市", required = true)
private String sendCity;
@ApiModelProperty(value = "发货所在区县", required = true)
private String sendCounty;
@ApiModelProperty(value = "发货所在乡镇", required = true)
private String sendTown;
@ApiModelProperty(value = "发货联系人手机号", required = true)
private String sendMobile;
@ApiModelProperty(value = "发货地址经度", required = true)
private String loadLongitude;
@ApiModelProperty(value = "发货地址纬度", required = true)
private String loadLatitude;
@ApiModelProperty(value = "收货人所在省", required = true)
private String receiveProvince;
@ApiModelProperty(value = "收货人所在城市", required = true)
private String receiveCity;
@ApiModelProperty(value = "收货人所在区县", required = true)
private String receiveCounty;
@ApiModelProperty(value = "收货人所在乡镇", required = true)
private String receiveTown;
@ApiModelProperty(value = "收货联系人手机号", required = true)
private String receiveMobile;
@ApiModelProperty(value = "收货地址经度", required = true)
private String unloadLongitude;
@ApiModelProperty(value = "收货地址纬度", required = true)
private String unloadLatitude;
}
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class TransportParam {
@ApiModelProperty(value = "用户编号", required = true)
@NotNull(message = "用户编号不能为空")
private String userCode;
@ApiModelProperty(value = "网络货运平台编码", example = "123", required = true, dataType = "String")
@NotBlank(message = "网络货运平台编码不能为空")
private String transportPlatformCode;
@ApiModelProperty(value = "货主手机号(货主账号)", example = "", required = true, dataType = "String")
@NotBlank(message = "货主手机号(货主账号)不能为空")
private String ownerMobile;
@ApiModelProperty(value = "运单编号", required = true)
@NotBlank(message = "运单编号不能为空")
private String orderCode;
@ApiModelProperty(value = "货单", required = true)
@NotNull(message = "货单不能为空")
private OpenOrderDTO orderInfo;
@ApiModelProperty(value = "图片", required = true)
@NotEmpty(message = "运单图片不能为空")
private List<OpenOrderChildImageDTO> imageList;
@ApiModelProperty(value = "司机", required = true)
@NotNull(message = "司机不能为空")
private OpenOrderChildDriverDTO driverInfo;
@ApiModelProperty(value = "车主", required = true)
@NotNull(message = "车主不能为空")
private OpenOrderChildTruckOwnerDTO ownerInfo;
@ApiModelProperty(value = "车辆", required = true)
@NotNull(message = "车辆不能为空")
private OpenOrderChildTruckDTO truckInfo;
@ApiModelProperty(value = "运单", required = true)
@NotNull(message = "运单不能为空")
private OpenOrderChildDTO orderChildInfo;
}
package com.clx.performance.vo.pc.broker;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class TransportVO {
@ApiModelProperty(value = "源运单编号", example = "1234", required = true, dataType = "String")
private String sourceChildNo;
@ApiModelProperty(value = "运单编号", example = "1234", required = true, dataType = "String")
private String childNo;
@ApiModelProperty(value = "风控状态 0-正常,1-单项异常,2-多项异常", example = "1", dataType = "Integer")
private Integer riskStatus;
@ApiModelProperty(value = "风控异常原因", example = "1", dataType = "String")
private String riskReason;
@ApiModelProperty(value = "同步状态 0-未同步,1-已同步,2-同步失败", example = "1", dataType = "Integer")
private Integer syncStatus;
@ApiModelProperty(value = "同步失败原因", example = "1", dataType = "String")
private String syncMsg;
@ApiModelProperty(value = "结算状态 0 未结算 1 已结算 2结算中 ", example = "1234124", dataType = "String")
private Integer settleStatus;
@ApiModelProperty(value = "结算方", example = "1", dataType = "String")
private Integer settleOrg;
@ApiModelProperty(value = "结算失败原因", example = "1", dataType = "String")
private String settleMsg;
@ApiModelProperty(value = "开票状态 0 未开票 1 已开票 ", example = "1234124", dataType = "String")
private Integer invoiceStatus;
}
package com.clx.performance.vo.pc.carrier.settle;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
/**
* @author yangqifa
*/
@Getter
@Setter
@ToString
public class CarrierPagePlatformServiceFeeConfigVO {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "订单报价方式,0:未税,1:含税")
private Integer orderQuotationType;
@ApiModelProperty(value = "订单报价方式")
private String orderQuotationTypeMsg;
@ApiModelProperty(value = "接单保证金")
@MoneyOutConvert
private BigDecimal deposit;
@ApiModelProperty(value = "平台服务费费率")
private BigDecimal serviceFeeRate;
}
...@@ -73,6 +73,17 @@ public class CarrierPageSettlementDriverDetailVO { ...@@ -73,6 +73,17 @@ public class CarrierPageSettlementDriverDetailVO {
@MoneyOutConvert @MoneyOutConvert
@ApiModelProperty(value = "开票金额") @ApiModelProperty(value = "开票金额")
private BigDecimal invoiceFreight; private BigDecimal invoiceFreight;
@ApiModelProperty(value = "开票公司id")
private Integer invoicingCompanyId;
@ApiModelProperty(value = "开票公司简称")
private String invoicingCompanyShorterName;
@MoneyOutConvert
@ApiModelProperty(value = "平台服务费")
private BigDecimal platformServiceFee;
@ApiModelProperty(value = "平台服务费费率%")
private BigDecimal platformServiceFeeRate;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private String createTime; private String createTime;
......
...@@ -66,6 +66,16 @@ public class CarrierPageSettlementDriverVO { ...@@ -66,6 +66,16 @@ public class CarrierPageSettlementDriverVO {
@ApiModelProperty(value = "借款标示 0:未借款 1:已借款 2:已还款") @ApiModelProperty(value = "借款标示 0:未借款 1:已借款 2:已还款")
private String loanFlagMsg; private String loanFlagMsg;
@ApiModelProperty(value = "开票公司id")
private Integer invoicingCompanyId;
@ApiModelProperty(value = "开票公司简称")
private Integer invoicingCompanyShorterName;
@MoneyOutConvert
@ApiModelProperty(value = "平台服务费")
private BigDecimal platformServiceFee;
@ApiModelProperty(value = "平台服务费费率%")
private BigDecimal platformServiceFeeRate;
@MoneyOutConvert @MoneyOutConvert
@ApiModelProperty(value = "结算金额") @ApiModelProperty(value = "结算金额")
private BigDecimal settlementFreight; private BigDecimal settlementFreight;
......
...@@ -74,6 +74,10 @@ public class CarrierPageSettlementOwnerDetailVO { ...@@ -74,6 +74,10 @@ public class CarrierPageSettlementOwnerDetailVO {
private BigDecimal loanFreight; private BigDecimal loanFreight;
@ApiModelProperty("结算方式 1装车净重 2卸车净重") @ApiModelProperty("结算方式 1装车净重 2卸车净重")
private Integer settlementWay; private Integer settlementWay;
@ApiModelProperty("开票公司id")
private Integer invoicingCompanyId;
@ApiModelProperty("开票公司简称")
private String invoicingCompanyShorterName;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private String createTime; private String createTime;
......
...@@ -51,6 +51,10 @@ public class CarrierPageSettlementOwnerVO { ...@@ -51,6 +51,10 @@ public class CarrierPageSettlementOwnerVO {
@MoneyOutConvert @MoneyOutConvert
@ApiModelProperty(value = "开票金额") @ApiModelProperty(value = "开票金额")
private BigDecimal invoiceFreight; private BigDecimal invoiceFreight;
@MoneyOutConvert
@ApiModelProperty(value = "开票服务费")
private BigDecimal invoiceServiceFee;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private String createTime; private String createTime;
@ApiModelProperty(value = "状态 10:待锁定 20:待对账 30:待货主确认 40:待货主付款 50:待平台确认付款 60:待平台付款 70:待货主确认付款 80:待邮寄发票 90:已完结") @ApiModelProperty(value = "状态 10:待锁定 20:待对账 30:待货主确认 40:待货主付款 50:待平台确认付款 60:待平台付款 70:待货主确认付款 80:待邮寄发票 90:已完结")
......
package com.clx.performance.vo.pc.carrier.settle;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 平台服务费
* @Date: 2024/06/18 15:10:40
* @Version: 1.0
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class SettlementPlatformServiceFeeVO {
@ApiModelProperty(value = "id", example = "")
private Integer id;
@ApiModelProperty(value = "运单编号", example = "")
private String childNo;
@ApiModelProperty(value = "车主用户编号", example = "")
private Long driverUserNo;
@ApiModelProperty(value = "车主名称", example = "")
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "")
private String driverMobile;
@ApiModelProperty(value = "发货地址id", example = "")
private Integer sendAddressId;
@ApiModelProperty(value = "发货地址", example = "")
private String sendAddress;
@ApiModelProperty(value = "收货地址id", example = "")
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "")
private String receiveAddress;
@ApiModelProperty(value = "车牌号", example = "")
private String truckNo;
@ApiModelProperty(value = "结算金额(分)", example = "")
private BigDecimal settlementFreight;
@ApiModelProperty(value = "开票服务费(分)", example = "")
private BigDecimal invoiceServiceFee;
@ApiModelProperty(value = "开票服务率%", example = "")
private BigDecimal invoiceServiceFeeRate;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
}
\ No newline at end of file
...@@ -80,13 +80,19 @@ public class PageOwnerSettlementOwnerDetailVO { ...@@ -80,13 +80,19 @@ public class PageOwnerSettlementOwnerDetailVO {
@ApiModelProperty(value="开票标识:1网运单 2普通单",example = "普通单") @ApiModelProperty(value="开票标识:1网运单 2普通单",example = "普通单")
private String invoiceTypeMsg; private String invoiceTypeMsg;
@MoneyOutConvert
@ApiModelProperty(value="开票服务费",example = "2.1")
private BigDecimal invoiceServiceFee;
@ApiModelProperty(value="开票费率%",example = "12.34")
private BigDecimal invoiceServiceFeeRate;
@ApiModelProperty(value="尾款状态 0-否,1-是,2-无需支付",example = "无需支付") @ApiModelProperty(value="尾款状态 0-否,1-是,2-无需支付",example = "无需支付")
private String finalPaymentStatusMsg; private String finalPaymentStatusMsg;
@ApiModelProperty(value="开票状态 0-否,1-是",example = "是") @ApiModelProperty(value="开票状态 0-否,1-是",example = "是")
private String invoiceStatusMsg; private String invoiceStatusMsg;
@ApiModelProperty(value="结算方式 1装车净重 2卸车净重",example = "1") @ApiModelProperty(value="结算方式 1装车净重 2卸车净重 3卸车净重(减货损)",example = "1")
private Integer settlementWay; private Integer settlementWay;
......
...@@ -25,20 +25,21 @@ public class NetworkSyncComponent { ...@@ -25,20 +25,21 @@ public class NetworkSyncComponent {
public void ownerSettlementSync(SettlementOwner settlementOwner, List<SettlementOwnerDetail> settlementOwnerDetailList){ public void ownerSettlementSync(SettlementOwner settlementOwner, List<SettlementOwnerDetail> settlementOwnerDetailList){
//TODO 通知网络货运做货主计费开票标识通知 //TODO 通知网络货运做货主计费开票标识通知
OwnerSettlementSyncParam param = new OwnerSettlementSyncParam(); // 禁用网络货运同步
String mobile = ownerFeign.getOwnerInfo(settlementOwner.getOwnerUserNo()).getData().getMobile(); // OwnerSettlementSyncParam param = new OwnerSettlementSyncParam();
param.setOwnerMobile(mobile); // String mobile = ownerFeign.getOwnerInfo(settlementOwner.getOwnerUserNo()).getData().getMobile();
List<OwnerSettlementSyncParam.SettlementItem> settlementList = new LinkedList<>(); // param.setOwnerMobile(mobile);
for (SettlementOwnerDetail settlementOwnerDetail : settlementOwnerDetailList) { // List<OwnerSettlementSyncParam.SettlementItem> settlementList = new LinkedList<>();
String childNo = settlementOwnerDetail.getChildNo(); // for (SettlementOwnerDetail settlementOwnerDetail : settlementOwnerDetailList) {
OwnerSettlementSyncParam.SettlementItem item = new OwnerSettlementSyncParam.SettlementItem(); // String childNo = settlementOwnerDetail.getChildNo();
item.setChildNo(childNo); // OwnerSettlementSyncParam.SettlementItem item = new OwnerSettlementSyncParam.SettlementItem();
item.setSettlementNo(settlementOwnerDetail.getSettlementNo()); // item.setChildNo(childNo);
settlementList.add(item); // item.setSettlementNo(settlementOwnerDetail.getSettlementNo());
} // settlementList.add(item);
param.setSettlementList(settlementList); // }
HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param); // param.setSettlementList(settlementList);
String decrypt = ThirdComponent.decrypt(httpDTO.getData()); // HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param);
log.info("通知网络货运做货主计费开票标识通知请求解密后:{}", decrypt); // String decrypt = ThirdComponent.decrypt(httpDTO.getData());
// log.info("通知网络货运做货主计费开票标识通知请求解密后:{}", decrypt);
} }
} }
...@@ -3,6 +3,7 @@ package com.clx.performance.component; ...@@ -3,6 +3,7 @@ package com.clx.performance.component;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.clx.order.enums.StatusEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO; import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
...@@ -25,6 +26,7 @@ import com.clx.performance.enums.settle.SettlementOwnerEnum; ...@@ -25,6 +26,7 @@ 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.event.OwnerLoanThawEvent; import com.clx.performance.event.OwnerLoanThawEvent;
import com.clx.performance.event.OwnerRepaymentUpdateEvent; import com.clx.performance.event.OwnerRepaymentUpdateEvent;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OwnerRunningWaterRecord; import com.clx.performance.model.OwnerRunningWaterRecord;
...@@ -34,6 +36,8 @@ import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord; ...@@ -34,6 +36,8 @@ import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.model.loan.OwnerRepayment; import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
import com.clx.performance.service.PaymentService;
import com.clx.performance.service.loan.OwnerLoanRecordService; import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService; import com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService;
import com.clx.user.vo.feign.OwnerInfoFeignVO; import com.clx.user.vo.feign.OwnerInfoFeignVO;
...@@ -42,6 +46,7 @@ import lombok.AllArgsConstructor; ...@@ -42,6 +46,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -84,7 +89,9 @@ public class OrderChildLoanComponent { ...@@ -84,7 +89,9 @@ public class OrderChildLoanComponent {
private final NetworkDriverRunningWaterRecordService networkDriverRunningWaterRecordService; private final NetworkDriverRunningWaterRecordService networkDriverRunningWaterRecordService;
private final PaymentService paymentService;
private final OrderService orderService;
/** /**
* 接单校验判断 * 接单校验判断
...@@ -198,6 +205,7 @@ public class OrderChildLoanComponent { ...@@ -198,6 +205,7 @@ public class OrderChildLoanComponent {
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void childLoanConfirmAfterProcess(SettlementDriverDetail settlementDriverDetail, SettlementOwnerDetail settlementOwnerDetail, OrderChild orderChild) { public void childLoanConfirmAfterProcess(SettlementDriverDetail settlementDriverDetail, SettlementOwnerDetail settlementOwnerDetail, OrderChild orderChild) {
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(settlementDriverDetail.getOrderNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
log.info("1.运单确认收货后借款相关处理执行"); log.info("1.运单确认收货后借款相关处理执行");
//临时结算金额,借款抵扣后需要重新赋值结算金额为0,如果不需要借款相关逻辑,正常设置结算金额 //临时结算金额,借款抵扣后需要重新赋值结算金额为0,如果不需要借款相关逻辑,正常设置结算金额
...@@ -221,6 +229,12 @@ public class OrderChildLoanComponent { ...@@ -221,6 +229,12 @@ public class OrderChildLoanComponent {
log.info("3.当前是网运单,但预付运费不为0,说明已经处理"); log.info("3.当前是网运单,但预付运费不为0,说明已经处理");
return; return;
} }
if (!Objects.equals(orderInfo.getSupportLoan(), StatusEnum.YES.getCode())){
log.info("3.2当前运单不支持货主借款");
return;
}
Integer loanTypeFlag = null; Integer loanTypeFlag = null;
String childNo = settlementDriverDetail.getChildNo(); String childNo = settlementDriverDetail.getChildNo();
...@@ -338,6 +352,45 @@ public class OrderChildLoanComponent { ...@@ -338,6 +352,45 @@ public class OrderChildLoanComponent {
networkDriverRunningWaterRecordService.generateNetworkCaseOutRecord(settlementDriverDetail); networkDriverRunningWaterRecordService.generateNetworkCaseOutRecord(settlementDriverDetail);
} }
@Transactional(rollbackFor = Exception.class)
public void orderChildCancelAfter(String childNo){
//运单取消
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(
PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
BigDecimal platformServiceFee = orderChild.getPlatformServiceFee(); //平台服务费
List<OwnerLoanAccountRunningWaterRecord> runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByChildNoAndRunningWaterType(childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode());
if (CollectionUtil.isEmpty(runningWaterRecordList)) {
if( Objects.nonNull(platformServiceFee) && platformServiceFee.compareTo(BigDecimal.ZERO) != 0){
PayPlatformFeeParam payPlatformFeeParam = new PayPlatformFeeParam();
payPlatformFeeParam.setTradeNo(childNo);
payPlatformFeeParam.setFigure(platformServiceFee.intValue());
paymentService.paymentCancelPlatformFee(payPlatformFeeParam);
}
return;
}
Long ownerUserNo = runningWaterRecordList.get(0).getOwnerUserNo();
log.info("当前解冻货主:{},流水记录长度{},流水记录{}", ownerUserNo, runningWaterRecordList.size(), JSONUtil.parse(runningWaterRecordList));
for (OwnerLoanAccountRunningWaterRecord record : runningWaterRecordList) {
Long loanNo = record.getLoanNo();
Integer loanType = record.getLoanType();
String ownerUserName = record.getOwnerUserName();
BigDecimal balance = record.getAlterationBalance();
//解冻借款
thawOwnerLoanAccount(loanNo, loanType, ownerUserNo, ownerUserName, record.getMobile(), childNo, balance);
}
if( Objects.nonNull(platformServiceFee) && platformServiceFee.compareTo(BigDecimal.ZERO) != 0){
PayPlatformFeeParam payPlatformFeeParam = new PayPlatformFeeParam();
payPlatformFeeParam.setTradeNo(childNo);
payPlatformFeeParam.setFigure(platformServiceFee.intValue());
paymentService.paymentCancelPlatformFee(payPlatformFeeParam);
}
}
//归还借款单的剩余金额+解冻流水 //归还借款单的剩余金额+解冻流水
public void thawOwnerLoanAccount(Long loanNo, Integer loanType, Long userNo, String userName, String mobile, String childNo, BigDecimal balance) { public void thawOwnerLoanAccount(Long loanNo, Integer loanType, Long userNo, String userName, String mobile, String childNo, BigDecimal balance) {
log.info("归还借款单的剩余金额+解冻流水,loanNo:{},loanType:{},userNo:{},childNo:{}, balance:{}", loanNo, loanType, userNo, childNo, balance); log.info("归还借款单的剩余金额+解冻流水,loanNo:{},loanType:{},userNo:{},childNo:{}, balance:{}", loanNo, loanType, userNo, childNo, balance);
......
...@@ -17,4 +17,6 @@ public class MslPaymentConfig { ...@@ -17,4 +17,6 @@ public class MslPaymentConfig {
private String notifyhost; private String notifyhost;
@Value("${msl.payment.transport.walletCode}") @Value("${msl.payment.transport.walletCode}")
private Integer transportWalletCode; private Integer transportWalletCode;
@Value("${msl.payment.system.walletCode}")
private Integer systemWalletCode;
} }
...@@ -73,5 +73,55 @@ public class RabbitSettlementConfig { ...@@ -73,5 +73,55 @@ public class RabbitSettlementConfig {
return BindingBuilder.bind(settlementDetailInvoiceTypeSyncQueue()).to(settlementDefaultExchange()).with(RabbitKeySettlementConstants.SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_ROUTING_KEY); return BindingBuilder.bind(settlementDetailInvoiceTypeSyncQueue()).to(settlementDefaultExchange()).with(RabbitKeySettlementConstants.SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_ROUTING_KEY);
} }
/**
* 开票方式同步
*/
@Bean
public Queue settlementInvoiceTypeSyncQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_TYPE_SYNC_QUEUE);
}
@Bean
public Binding settlementInvoiceTypeSyncQueueBinding() {
return BindingBuilder.bind(settlementInvoiceTypeSyncQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_TYPE_SYNC_ROUTING_KEY);
}
/**
* 结算
*/
@Bean
public Queue settlementSettleQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_SETTLE_QUEUE);
}
@Bean
public Binding settlementSettleQueueBinding() {
return BindingBuilder.bind(settlementSettleQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_SETTLE_ROUTING_KEY);
}
/**
* 支付状态
*/
@Bean
public Queue settlementPayStatusSyncQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_PAY_STATUS_SYNC_QUEUE);
}
@Bean
public Binding settlementPayStatusSyncQueueBinding() {
return BindingBuilder.bind(settlementPayStatusSyncQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_PAY_STATUS_SYNC_ROUTING_KEY);
}
/**
* 开票状态
*/
@Bean
public Queue settlementInvoiceSyncQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_STATUS_SYNC_QUEUE);
}
@Bean
public Binding settlementInvoiceSyncQueueBinding() {
return BindingBuilder.bind(settlementInvoiceSyncQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_STATUS_SYNC_ROUTING_KEY);
}
} }
package com.clx.performance.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "settlement")
@Data
@Component
public class SettlementConfig {
// broker host
private String brokerHost;
// broker用户编号
private String brokerUserCode;
// 普通单开票公司编号
private String ordinaryInvoiceCompanyGroupCode;
}
...@@ -40,9 +40,32 @@ public class RabbitKeySettlementConstants { ...@@ -40,9 +40,32 @@ public class RabbitKeySettlementConstants {
public static final String SETTLEMENT_DETAIL_ADD_ROUTING_KEY = PREFIX +"settlementDetail.add"+QUEUE_ROUTING_KEY; public static final String SETTLEMENT_DETAIL_ADD_ROUTING_KEY = PREFIX +"settlementDetail.add"+QUEUE_ROUTING_KEY;
/** /**
* 同步开票标识 * 计费统计
*/ */
public static final String SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_QUEUE = PREFIX +"settlementDetailInvoiceType.sync"+QUEUE; public static final String SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_QUEUE = PREFIX +"settlementDetailInvoiceType.sync"+QUEUE;
public static final String SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_ROUTING_KEY = PREFIX +"settlementDetailInvoiceType.sync"+QUEUE_ROUTING_KEY; public static final String SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_ROUTING_KEY = PREFIX +"settlementDetailInvoiceType.sync"+QUEUE_ROUTING_KEY;
/**
* 同步开票标识
*/
public static final String SETTLEMENT_INVOICE_TYPE_SYNC_QUEUE = PREFIX +"settlementInvoiceType.sync"+QUEUE;
public static final String SETTLEMENT_INVOICE_TYPE_SYNC_ROUTING_KEY = PREFIX +"settlementInvoiceType.sync"+QUEUE_ROUTING_KEY;
/**
* 结算
*/
public static final String SETTLEMENT_SETTLE_QUEUE = PREFIX +"settlement.settle"+QUEUE;
public static final String SETTLEMENT_SETTLE_ROUTING_KEY = PREFIX +"settlement.settle"+QUEUE_ROUTING_KEY;
/**
* 开票状态同步
*/
public static final String SETTLEMENT_INVOICE_STATUS_SYNC_QUEUE = PREFIX +"settlementInvoiceStatus.sync"+QUEUE;
public static final String SETTLEMENT_INVOICE_STATUS_SYNC_ROUTING_KEY = PREFIX +"settlementInvoiceStatus.sync"+QUEUE_ROUTING_KEY;
/**
* 支付状态同步
*/
public static final String SETTLEMENT_PAY_STATUS_SYNC_QUEUE = PREFIX +"settlementPayStatus.sync"+QUEUE;
public static final String SETTLEMENT_PAY_STATUS_SYNC_ROUTING_KEY = PREFIX +"settlementPayStatus.sync"+QUEUE_ROUTING_KEY;
} }
...@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
@RestController @RestController
...@@ -64,4 +65,13 @@ public class OrderGoodsFeignController { ...@@ -64,4 +65,13 @@ public class OrderGoodsFeignController {
} }
@ApiOperation(value = "更新挂单运费", notes = "<br>By:艾庆国")
@PostMapping(value = {"/updatePendingOrderFright"})
Result<Void> updatePendingOrderFright(@RequestParam("orderGoodsNo") String orderGoodsNo,
@RequestParam("pendingOrderFreight") BigDecimal pendingOrderFreight){
orderGoodsService.updateFrightPrice(orderGoodsNo, pendingOrderFreight);
return Result.ok();
}
} }
package com.clx.performance.controller.feign;
import com.clx.performance.service.PlatformServiceFeeConfigService;
import com.clx.performance.vo.feign.PlatformServiceFeeConfigFeignVO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/feign/platformServiceFee")
@Validated
@Api(tags = "平台服务费Feign")
public class PlatformServiceFeeFeignController {
@Autowired
private PlatformServiceFeeConfigService platformServiceFeeConfigService;
@GetMapping(value = {"/getPlatformServiceFeeConfig"})
Result<PlatformServiceFeeConfigFeignVO> getPlatformServiceFeeConfig(){
return Result.ok(platformServiceFeeConfigService.getConfig());
}
}
...@@ -44,7 +44,7 @@ public class OpenOwnerAccountController { ...@@ -44,7 +44,7 @@ public class OpenOwnerAccountController {
@ApiOperation(value = "账户充值", notes = "<br>By:胡宇帆") @ApiOperation(value = "账户充值", notes = "<br>By:胡宇帆")
@PostMapping("/accountTopUp") @PostMapping("/accountTopUp")
@UnitCovert(param = false) @UnitCovert(param = false)
public Result<Long> openAccountTopUp(@RequestBody OpenOwnerTopUpParam param) { public Result<Long> openAccountTopUp(@RequestBody @Validated OpenOwnerTopUpParam param) {
Long id = ownerAccountService.openAccountTopUp(param); Long id = ownerAccountService.openAccountTopUp(param);
return Result.ok(id); return Result.ok(id);
} }
......
package com.clx.performance.controller.payment; package com.clx.performance.controller.payment;
import com.clx.performance.enums.PayUnitTypeEnum;
import com.clx.performance.enums.payment.PayOperationStatusEnum;
import com.clx.performance.enums.payment.PaymentStatusEnum;
import com.clx.performance.model.payment.OrderPayment;
import com.clx.performance.param.pay.NotifyString; import com.clx.performance.param.pay.NotifyString;
import com.clx.performance.service.PaymentService;
import com.clx.performance.service.breakcontract.BreakContractMqHandlerService; import com.clx.performance.service.breakcontract.BreakContractMqHandlerService;
import com.clx.performance.service.settle.SettlementMqHandlerService; import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -27,6 +32,12 @@ public class PayNotifyController { ...@@ -27,6 +32,12 @@ public class PayNotifyController {
@Autowired @Autowired
private BreakContractMqHandlerService breakContractMqHandlerService; private BreakContractMqHandlerService breakContractMqHandlerService;
@Autowired
private PaymentService paymentService;
@ApiOperation(value = "用户支付完成回调接口", notes = " <br>By:胡宁宁") @ApiOperation(value = "用户支付完成回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayNotify", method = RequestMethod.POST) @RequestMapping(value = "/userPayNotify", method = RequestMethod.POST)
public Result<Object> userPayNotify(@RequestBody NotifyString notify) { public Result<Object> userPayNotify(@RequestBody NotifyString notify) {
...@@ -70,4 +81,137 @@ public class PayNotifyController { ...@@ -70,4 +81,137 @@ public class PayNotifyController {
Result<Object> ret = new Result<>(); Result<Object> ret = new Result<>();
return ret; return ret;
} }
@ApiOperation(value = "司机冻结保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("司机冻结保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.FREEZE.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
analysisSuccess(notify.getData().toString(), operation, paymentItem);
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
@ApiOperation(value = "司机调整保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayAdjustDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayAdjustDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("司机调整保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.ADJUSTMENT.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
@ApiOperation(value = "司机取消运单退还保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayCancelDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayCancelDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("司机取消运单退还保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.UNFREEZE.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
@ApiOperation(value = "运单完成 保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayCompleteDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayCompleteDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("运单完成 保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.UNFREEZE.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
private void analysisSuccess(String result,Integer operation, String paymentItem){
if(result.contains(",")){
String[] stringFlag = result.split(",");
if(stringFlag.length>0){
//最多四笔,直接循环修改
for(int i=0;i<stringFlag.length;i++){
String [] ress = stringFlag[i].split("=");
if(ress.length==2){//例如 id=serialNo
paymentService.updateOrderPaymentSerialNoSuccess(ress[0],ress[1],operation,paymentItem);
}
}
}
}else{
String[] ress = result.split("=");
if(ress.length==2){//例如 id=serialNo
paymentService.updateOrderPaymentSerialNoSuccess(ress[0],ress[1],operation,paymentItem);
}
}
}
} }
package com.clx.performance.controller.pc.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.clx.performance.service.settle.SettlementPlatformServiceFeeExportService;
import com.clx.performance.service.settle.SettlementPlatformServiceFeeService;
import com.clx.performance.vo.pc.carrier.settle.SettlementPlatformServiceFeeVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/settlement/platformServiceFee")
@Validated
@Api(tags = "承运端-平台服务费统计-平台服务费")
public class CarrierSettlementPlatformServiceFeeController {
@Autowired
private SettlementPlatformServiceFeeService settlementPlatformServiceFeeService;
@Autowired
private SettlementPlatformServiceFeeExportService settlementPlatformServiceFeeExportService;
@ApiOperation(value = "平台服务费统计",notes = "<br>By:艾庆国")
@PostMapping("/pagePlatformServiceFee")
@UnitCovert(param = false)
public Result<PageData<SettlementPlatformServiceFeeVO>> pagePlatformServiceFee(
@RequestBody @Validated PageCarrierSettlementPlatformServiceFeeParam param) {
IPage<SettlementPlatformServiceFeeVO> page = settlementPlatformServiceFeeService
.pagePlatformServiceFee(param);
return Result.page(page.getRecords(),page.getTotal(),page.getPages());
}
@ApiOperation(value = "导出平台服务费统计",notes = "<br>By:艾庆国")
@PostMapping("/exportPlatformServiceFee")
public void exportPlatformServiceFee(@RequestBody @Validated PageCarrierSettlementPlatformServiceFeeParam param) {
settlementPlatformServiceFeeExportService.exportPlatformServiceFee(param);
}
}
package com.clx.performance.controller.pc.carrier;
import com.clx.performance.param.pc.carrier.SavePlatformServiceFeeConfigParam;
import com.clx.performance.service.PlatformServiceFeeConfigService;
import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformServiceFeeConfigVO;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* @author yangqifa
*/
@Slf4j
@RestController
@RequestMapping(value = "/pc/carrier/platformServiceFeeConfig")
@Validated
@Api(tags = "承运端-平台费率配置")
@AllArgsConstructor
public class PlatformServiceFeeConfigController {
private final PlatformServiceFeeConfigService platformServiceFeeConfigService;
@ApiOperation(value = "平台费率配置列表", notes = "<br>By:杨启发")
@GetMapping("/listPlatformServiceFeeConfig")
@UnitCovert(param = false)
public Result<CarrierPagePlatformServiceFeeConfigVO> listPlatformServiceFeeConfig() {
return Result.ok(platformServiceFeeConfigService.listPlatformServiceFeeConfig());
}
@ApiOperation(value = "平台费率配置详情", notes = "<br>By:杨启发")
@GetMapping("/getPlatformServiceFeeConfigDetail")
@UnitCovert(param = false)
public Result<CarrierPagePlatformServiceFeeConfigVO> getPlatformServiceFeeConfigDetail(@NotNull(message = "id不能为空") Integer id) {
return Result.ok(platformServiceFeeConfigService.getPlatformServiceFeeConfigDetail(id));
}
@ApiOperation(value = "编辑平台费率配置", notes = "<br>By:杨启发")
@PostMapping("/updatePlatformServiceFeeConfig")
public Result updatePlatformServiceFeeConfig(@RequestBody @Validated SavePlatformServiceFeeConfigParam param) {
platformServiceFeeConfigService.updatePlatformServiceFeeConfig(param);
return Result.ok();
}
}
...@@ -13,8 +13,11 @@ import lombok.extern.slf4j.Slf4j; ...@@ -13,8 +13,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
/** /**
* @Author: aiqingguo * @Author: aiqingguo
...@@ -51,6 +54,18 @@ public class TempController { ...@@ -51,6 +54,18 @@ public class TempController {
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "测试支付划账 (临时接口)", notes = "<br>By:胡宁宁")
@RequestMapping(value = "/paymentTest", method = RequestMethod.GET)
public Result<Void> paymentTest(@RequestParam("fromUser") @NotBlank(message = "扣款方") String fromUser,
@RequestParam("pwd") @NotBlank(message = "收款方") String pwd,
@RequestParam("tradeNo") @NotBlank(message = "金额") String tradeNo,
@RequestParam("type") @NotBlank(message = "类型") int type) {
tempService.paymentTest(fromUser,pwd,tradeNo,type);
return Result.ok();
}
// @ApiOperation(value = "更新网运标识", notes = "<br>By:艾庆国") // @ApiOperation(value = "更新网运标识", notes = "<br>By:艾庆国")
// @RequestMapping(value = "/updateInvoiceType", method = RequestMethod.POST) // @RequestMapping(value = "/updateInvoiceType", method = RequestMethod.POST)
// public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) { // public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) {
......
package com.clx.performance.controller.temp;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.listener.OrderChildSyncTransportListener;
import com.clx.performance.model.OrderChild;
import com.clx.performance.service.settle.SettlementMqService;
import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: aiqingguo
* @Description: 临时接口
* @Date: 2023-8-21 12:10:16
* @Version: 1.0
*/
@Slf4j
@RestController
@RequestMapping(value="/temp/settlement")
public class TempSettlementController {
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private SettlementMqService settlementMqService;
@Autowired
private OrderChildSyncTransportListener orderChildSyncTransportListener;
@ApiOperation(value = "运单同步broker", notes = "<br>By:艾庆国")
@RequestMapping(value = "/orderChildSync", method = RequestMethod.GET)
public Result orderChildSync(String childNo) {
OrderChild orderChild = orderChildDao.getByChildNo(childNo).get();
// 同步broker
orderChildSyncTransportListener.transportOrderChildProcess(orderChild);
return Result.ok();
}
@ApiOperation(value = "开票类型同步", notes = "<br>By:艾庆国")
@RequestMapping(value = "/invoiceTypeSync", method = RequestMethod.GET)
public Result invoiceTypeSync(String childNo) {
settlementMqService.invoiceTypeSync(childNo);
return Result.ok();
}
@ApiOperation(value = "开票状态同步", notes = "<br>By:艾庆国")
@RequestMapping(value = "/invoiceStatusSync", method = RequestMethod.GET)
public Result invoiceStatusSync(String childNo) {
settlementMqService.invoiceStatusSync(childNo);
return Result.ok();
}
@ApiOperation(value = "支付状态同步", notes = "<br>By:艾庆国")
@RequestMapping(value = "/payStatusSync", method = RequestMethod.GET)
public Result payStatusSync(String childNo) {
settlementMqService.payStatusSync(childNo);
return Result.ok();
}
}
...@@ -42,6 +42,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -42,6 +42,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
boolean updateSettlement(OrderChild item); boolean updateSettlement(OrderChild item);
boolean updateCancel(OrderChild item); boolean updateCancel(OrderChild item);
boolean updatePlatformServiceFee(OrderChild item);
Optional<OrderChild> getByChildNo(String childNo); Optional<OrderChild> getByChildNo(String childNo);
...@@ -181,7 +182,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -181,7 +182,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> listByChildNoList(List<String> childNoList); List<OrderChild> listByChildNoList(List<String> childNoList);
MonthInComeAndOrderedVO statisticsTruckMonth(LocalDateTime startTime, LocalDateTime endTime, String truckNo);
List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList); List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList);
...@@ -195,4 +195,5 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -195,4 +195,5 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<LineWarnOrderChildStatisticsDTO>sumArriveRecieveNumByOrderGoodsNoList(List<String> orderGoodsNoList); List<LineWarnOrderChildStatisticsDTO>sumArriveRecieveNumByOrderGoodsNoList(List<String> orderGoodsNoList);
List<LineWarnOrderChildStatisticsDTO>sumUnloadNumByOrderGoodsNoList(List<String> orderGoodsNoList); List<LineWarnOrderChildStatisticsDTO>sumUnloadNumByOrderGoodsNoList(List<String> orderGoodsNoList);
} }
...@@ -61,6 +61,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -61,6 +61,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
List<OrderGoods> listIntegralOrderGoodsSync(); List<OrderGoods> listIntegralOrderGoodsSync();
boolean updatePendingOrderFreightById(Integer id, BigDecimal pendingOrderFreight); boolean updatePendingOrderFreightById(Integer id, BigDecimal pendingOrderFreight);
boolean updatePendingOrderFreightByIdList(BigDecimal pendingOrderFreight, List<Integer>idList);
Boolean updateStopFlagByOrderNo(String orderNo, Integer stopFlag); Boolean updateStopFlagByOrderNo(String orderNo, Integer stopFlag);
......
package com.clx.performance.dao;
import com.clx.performance.mapper.PlatformServiceFeeConfigMapper;
import com.clx.performance.model.PlatformServiceFeeConfig;
import com.msl.common.dao.BaseDao;
/**
* @author yangqifa
*/
public interface PlatformServiceFeeConfigDao extends BaseDao<PlatformServiceFeeConfigMapper, PlatformServiceFeeConfig, Integer> {
PlatformServiceFeeConfig listPlatformServiceFeeConfig();
boolean updatePlatformServiceFeeConfig(PlatformServiceFeeConfig config);
}
...@@ -68,6 +68,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -68,6 +68,8 @@ 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::getStatus, item.getStatus()) .set(OrderChild::getStatus, item.getStatus())
.set(OrderChild::getDeposit, item.getDeposit())
.set(OrderChild::getPlatformServiceFee, item.getPlatformServiceFee())
); );
} }
...@@ -85,6 +87,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -85,6 +87,8 @@ 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::getStatus, item.getStatus()) .set(OrderChild::getStatus, item.getStatus())
.set(OrderChild::getDeposit, item.getDeposit())
.set(OrderChild::getPlatformServiceFee, item.getPlatformServiceFee())
); );
} }
...@@ -105,6 +109,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -105,6 +109,8 @@ 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::getPoundStatus, item.getPoundStatus()) .set(OrderChild::getPoundStatus, item.getPoundStatus())
.set(OrderChild::getDeposit, item.getDeposit())
.set(OrderChild::getPlatformServiceFee, item.getPlatformServiceFee())
); );
} }
...@@ -156,6 +162,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -156,6 +162,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
); );
} }
@Override
public boolean updatePlatformServiceFee(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getId, item.getId())
.set(OrderChild::getPlatformServiceFee, item.getPlatformServiceFee())
);
}
@Override @Override
public Optional<OrderChild> getByChildNo(String childNo) { public Optional<OrderChild> getByChildNo(String childNo) {
...@@ -568,10 +582,6 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -568,10 +582,6 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
return list(lQrWrapper().in(OrderChild :: getChildNo,childNoList)); return list(lQrWrapper().in(OrderChild :: getChildNo,childNoList));
} }
@Override
public MonthInComeAndOrderedVO statisticsTruckMonth(LocalDateTime startTime, LocalDateTime endTime, String truckNo) {
return baseMapper.statisticsTruckMonth(startTime,endTime,truckNo);
}
@Override @Override
public List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList) { public List<OrderChild> listByOrderGoodsNoAndStatus(String orderGoodsNo, List<Integer> statusList) {
...@@ -621,4 +631,6 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -621,4 +631,6 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public List<LineWarnOrderChildStatisticsDTO> sumUnloadNumByOrderGoodsNoList(List<String> orderGoodsNoList) { public List<LineWarnOrderChildStatisticsDTO> sumUnloadNumByOrderGoodsNoList(List<String> orderGoodsNoList) {
return baseMapper.sumUnloadNumByOrderGoodsNoList(orderGoodsNoList); return baseMapper.sumUnloadNumByOrderGoodsNoList(orderGoodsNoList);
} }
} }
package com.clx.performance.dao.impl; package com.clx.performance.dao.impl;
import com.clx.performance.enums.TransportSyncTypeEnum;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao; import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao;
import com.clx.performance.mapper.OrderChildSyncTransportInvoiceRecordMapper; import com.clx.performance.mapper.OrderChildSyncTransportInvoiceRecordMapper;
import com.clx.performance.model.OrderChildSyncTransportInvoiceRecord; import com.clx.performance.model.OrderChildSyncTransportInvoiceRecord;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -19,6 +19,8 @@ public class OrderChildSyncTransportInvoiceRecordDaoImpl extends BaseDaoImpl<Ord ...@@ -19,6 +19,8 @@ public class OrderChildSyncTransportInvoiceRecordDaoImpl extends BaseDaoImpl<Ord
@Override @Override
public List<OrderChildSyncTransportInvoiceRecord> selectListForJob() { public List<OrderChildSyncTransportInvoiceRecord> selectListForJob() {
return baseMapper.selectList(null); return list(lUdWrapper()
.le(OrderChildSyncTransportInvoiceRecord::getCreateTime, LocalDateTime.now().minusMinutes(10))
);
} }
} }
...@@ -158,6 +158,15 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -158,6 +158,15 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
return update(lUdWrapper().eq(OrderGoods :: getId,id).set(OrderGoods :: getPendingOrderFreight,pendingOrderFreight)); return update(lUdWrapper().eq(OrderGoods :: getId,id).set(OrderGoods :: getPendingOrderFreight,pendingOrderFreight));
} }
@Override
public boolean updatePendingOrderFreightByIdList(BigDecimal pendingOrderFreight, List<Integer> idList) {
return update(lUdWrapper()
.in(OrderGoods::getId,idList)
.set(OrderGoods::getPendingOrderFreight,pendingOrderFreight)
);
}
@Override @Override
public Boolean updateStopFlagByOrderNo(String orderNo, Integer stopFlag) { public Boolean updateStopFlagByOrderNo(String orderNo, Integer stopFlag) {
return update(lUdWrapper().eq(OrderGoods :: getOrderNo,orderNo).set(OrderGoods :: getStopFlag,stopFlag)); return update(lUdWrapper().eq(OrderGoods :: getOrderNo,orderNo).set(OrderGoods :: getStopFlag,stopFlag));
......
package com.clx.performance.dao.impl;
import com.clx.performance.dao.PlatformServiceFeeConfigDao;
import com.clx.performance.mapper.PlatformServiceFeeConfigMapper;
import com.clx.performance.model.PlatformServiceFeeConfig;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author yangqifa
*/
@Repository
public class PlatformServiceFeeConfigImpl extends BaseDaoImpl<PlatformServiceFeeConfigMapper, PlatformServiceFeeConfig, Integer> implements PlatformServiceFeeConfigDao {
@Override
public PlatformServiceFeeConfig listPlatformServiceFeeConfig() {
return list().get(0);
}
@Override
public boolean updatePlatformServiceFeeConfig(PlatformServiceFeeConfig config) {
return update(lUdWrapper()
.eq(PlatformServiceFeeConfig::getId, config.getId())
.set(PlatformServiceFeeConfig::getOrderQuotationType, config.getOrderQuotationType())
.set(PlatformServiceFeeConfig::getDeposit, config.getDeposit())
.set(PlatformServiceFeeConfig::getServiceFeeRate, config.getServiceFeeRate())
);
}
}
package com.clx.performance.dao.impl.payment;
import com.clx.performance.dao.payment.OrderPaymentDao;
import com.clx.performance.mapper.payment.OrderPaymentMapper;
import com.clx.performance.model.payment.OrderPayment;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
@Repository
public class OrderPaymentDaoImpl extends BaseDaoImpl<OrderPaymentMapper, OrderPayment, Integer> implements OrderPaymentDao {
@Override
public Optional<OrderPayment> selectByOrderNoAndItemId(String orderNo, String paymentItem) {
return Optional.of(orderNo)
.map(item -> lQrWrapper()
.eq(OrderPayment::getOrderNo, item)
.eq(OrderPayment::getPaymentItem, paymentItem)
)
.map(super::getOne);
}
@Override
public Optional<OrderPayment> selectByRelationNo(String relationNo, Integer operation, String paymentItem) {
return Optional.of(relationNo)
.map(item -> lQrWrapper()
.eq(OrderPayment::getRelationNo, item)
.eq(OrderPayment::getOperation, operation)
.eq(OrderPayment::getPaymentItem, paymentItem)
)
.map(super::getOne);
}
@Override
public Optional<OrderPayment> selectByOrderNoAndItemIdAndOperation(String orderNo, String paymentItem,
Integer operation) {
return Optional.of(orderNo)
.map(item -> lQrWrapper()
.eq(OrderPayment::getOrderNo, item)
.eq(OrderPayment::getPaymentItem, paymentItem)
.eq(OrderPayment::getOperation, operation)
)
.map(super::getOne);
}
@Override
public List<OrderPayment> listByOrderNo(String orderNo, String paymentItem) {
return list(lQrWrapper()
.eq(OrderPayment::getOrderNo, orderNo)
.eq(OrderPayment::getPaymentItem, paymentItem)
);
}
}
...@@ -4,9 +4,11 @@ package com.clx.performance.dao.impl.settle; ...@@ -4,9 +4,11 @@ package com.clx.performance.dao.impl.settle;
import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao; import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao;
import com.clx.performance.mapper.settle.OrderChildSyncTransportRecordMapper; import com.clx.performance.mapper.settle.OrderChildSyncTransportRecordMapper;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord; import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -19,7 +21,10 @@ public class OrderChildSyncTransportRecordDaoImpl extends BaseDaoImpl<OrderChild ...@@ -19,7 +21,10 @@ public class OrderChildSyncTransportRecordDaoImpl extends BaseDaoImpl<OrderChild
@Override @Override
public List<OrderChildSyncTransportRecord> selectListForJob() { public List<OrderChildSyncTransportRecord> selectListForJob() {
return baseMapper.selectList(lQrWrapper().eq(OrderChildSyncTransportRecord::getStatus, 0)); return baseMapper.selectList(lQrWrapper()
.gt(OrderChildSyncTransportRecord::getCreateTime, LocalDateTime.now().minusMonths(3))
.eq(OrderChildSyncTransportRecord::getStatus, 0)
);
} }
@Override @Override
......
...@@ -18,7 +18,6 @@ import org.springframework.stereotype.Repository; ...@@ -18,7 +18,6 @@ import org.springframework.stereotype.Repository;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
...@@ -37,6 +36,10 @@ public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverD ...@@ -37,6 +36,10 @@ public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverD
.set(SettlementDriverDetail::getPrepayFreightFlag, item.getPrepayFreightFlag()) .set(SettlementDriverDetail::getPrepayFreightFlag, item.getPrepayFreightFlag())
.set(SettlementDriverDetail::getLoanFlag, item.getLoanFlag()) .set(SettlementDriverDetail::getLoanFlag, item.getLoanFlag())
.set(SettlementDriverDetail::getLoanTypeFlag, item.getLoanTypeFlag()) .set(SettlementDriverDetail::getLoanTypeFlag, item.getLoanTypeFlag())
.set(SettlementDriverDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementDriverDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementDriverDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
); );
} }
......
...@@ -40,6 +40,7 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S ...@@ -40,6 +40,7 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
.set(SettlementOwner::getInvoiceFreight, item.getInvoiceFreight()) .set(SettlementOwner::getInvoiceFreight, item.getInvoiceFreight())
.set(SettlementOwner::getLoanFreight, item.getLoanFreight()) .set(SettlementOwner::getLoanFreight, item.getLoanFreight())
.set(SettlementOwner::getPrepayFreight, item.getPrepayFreight()) .set(SettlementOwner::getPrepayFreight, item.getPrepayFreight())
.set(SettlementOwner::getInvoiceServiceFee, item.getInvoiceServiceFee())
); );
} }
...@@ -118,6 +119,13 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S ...@@ -118,6 +119,13 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
if(StringUtils.isNotBlank(param.getOrderNo())){ if(StringUtils.isNotBlank(param.getOrderNo())){
query.eq(SettlementOwner :: getOrderNo,param.getOrderNo()); query.eq(SettlementOwner :: getOrderNo,param.getOrderNo());
} }
if(StringUtils.isNotBlank(param.getBeginTime())){
query.ge(SettlementOwner :: getCreateTime,param.getBeginTime());
}
if(StringUtils.isNotBlank(param.getEndTime())){
query.le(SettlementOwner :: getCreateTime,param.getEndTime());
}
query.orderByDesc(SettlementOwner :: getCreateTime); query.orderByDesc(SettlementOwner :: getCreateTime);
return baseMapper.selectPage(Page.of(param.getPage(),param.getPageSize()),query); return baseMapper.selectPage(Page.of(param.getPage(),param.getPageSize()),query);
...@@ -165,10 +173,29 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S ...@@ -165,10 +173,29 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
} }
@Override @Override
public Optional<SettlementOwner> selectUnlockOfSettlementPeriodMonth(String orderNo, LocalDateTime settlementPeriodTime, Integer invoiceType) { public Optional<SettlementOwner> selectUnlockOfSettlementPeriodMonth(String orderNo, Integer invoicingCompanyId,
LocalDateTime settlementPeriodTime, Integer invoiceType) {
return Optional.of(lQrWrapper() return Optional.of(lQrWrapper()
.eq(SettlementOwner::getOrderNo, orderNo) .eq(SettlementOwner::getOrderNo, orderNo)
.eq(SettlementOwner::getSettlementPeriodType, SettlementOwnerEnum.SettlementPeriodType.MONTH.getCode()) .eq(SettlementOwner::getInvoicingCompanyId, invoicingCompanyId)
.eq(SettlementOwner::getSettlementPeriodType,
SettlementOwnerEnum.SettlementPeriodType.MONTH.getCode())
.eq(SettlementOwner::getSettlementPeriodTime, settlementPeriodTime)
.eq(SettlementOwner::getInvoiceType, invoiceType)
.eq(SettlementOwner::getStatus, SettlementOwnerEnum.Status.TO_BE_LOCKED.getCode())
)
.map(super::getOne);
}
@Override
public Optional<SettlementOwner> selectUnlockOfSettlementPeriodDaily(String orderNo,
Integer invoicingCompanyId,
LocalDateTime settlementPeriodTime,
Integer invoiceType) {
return Optional.of(lQrWrapper()
.eq(SettlementOwner::getOrderNo, orderNo)
.eq(SettlementOwner::getInvoicingCompanyId, invoicingCompanyId)
.eq(SettlementOwner::getSettlementPeriodType,
SettlementOwnerEnum.SettlementPeriodType.DAILY.getCode())
.eq(SettlementOwner::getSettlementPeriodTime, settlementPeriodTime) .eq(SettlementOwner::getSettlementPeriodTime, settlementPeriodTime)
.eq(SettlementOwner::getInvoiceType, invoiceType) .eq(SettlementOwner::getInvoiceType, invoiceType)
.eq(SettlementOwner::getStatus, SettlementOwnerEnum.Status.TO_BE_LOCKED.getCode()) .eq(SettlementOwner::getStatus, SettlementOwnerEnum.Status.TO_BE_LOCKED.getCode())
...@@ -177,9 +204,12 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S ...@@ -177,9 +204,12 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
} }
@Override @Override
public Optional<SettlementOwner> selectUnlockOfSettlementPeriodImmediate(String orderNo, Integer invoiceType) { public Optional<SettlementOwner> selectUnlockOfSettlementPeriodImmediate(String orderNo,
Integer invoicingCompanyId,
Integer invoiceType) {
return Optional.of(lQrWrapper() return Optional.of(lQrWrapper()
.eq(SettlementOwner::getOrderNo, orderNo) .eq(SettlementOwner::getOrderNo, orderNo)
.eq(SettlementOwner::getInvoicingCompanyId, invoicingCompanyId)
.eq(SettlementOwner::getSettlementPeriodType, SettlementOwnerEnum.SettlementPeriodType.IMMEDIATE.getCode()) .eq(SettlementOwner::getSettlementPeriodType, SettlementOwnerEnum.SettlementPeriodType.IMMEDIATE.getCode())
.eq(SettlementOwner::getInvoiceType, invoiceType) .eq(SettlementOwner::getInvoiceType, invoiceType)
.eq(SettlementOwner::getStatus, SettlementOwnerEnum.Status.TO_BE_LOCKED.getCode()) .eq(SettlementOwner::getStatus, SettlementOwnerEnum.Status.TO_BE_LOCKED.getCode())
...@@ -243,6 +273,15 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S ...@@ -243,6 +273,15 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
.set(SettlementOwner::getStatus, toStatus) .set(SettlementOwner::getStatus, toStatus)
); );
} }
@Override
public boolean updateDailyLock(Integer settlementPeriodType, LocalDateTime settlementPeriodTime, Integer fromStatus,Integer toStatus){
return update(lUdWrapper()
.eq(SettlementOwner::getSettlementPeriodType, settlementPeriodType)
.eq(SettlementOwner::getSettlementPeriodTime, settlementPeriodTime)
.eq(SettlementOwner::getStatus, fromStatus)
.set(SettlementOwner::getStatus, toStatus)
);
}
@Override @Override
public void updateSettlementMerge(@Param("settlementNo")String settlementNo, public void updateSettlementMerge(@Param("settlementNo")String settlementNo,
......
...@@ -15,6 +15,7 @@ import com.msl.common.dao.impl.BaseDaoImpl; ...@@ -15,6 +15,7 @@ import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -37,6 +38,12 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet ...@@ -37,6 +38,12 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.set(SettlementOwnerDetail::getFinalPaymentStatus, item.getFinalPaymentStatus()) .set(SettlementOwnerDetail::getFinalPaymentStatus, item.getFinalPaymentStatus())
.set(SettlementOwnerDetail::getPrepayFreight, item.getPrepayFreight()) .set(SettlementOwnerDetail::getPrepayFreight, item.getPrepayFreight())
.set(SettlementOwnerDetail::getLoanFreight, item.getLoanFreight()) .set(SettlementOwnerDetail::getLoanFreight, item.getLoanFreight())
.set(SettlementOwnerDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
.set(SettlementOwnerDetail::getInvoiceServiceFeeRate, item.getInvoiceServiceFeeRate())
.set(SettlementOwnerDetail::getInvoiceServiceFee, item.getInvoiceServiceFee())
); );
} }
...@@ -155,4 +162,14 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet ...@@ -155,4 +162,14 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
); );
} }
@Override
public List<SettlementOwnerDetail> listInvoiceStatusSync() {
return list(lUdWrapper()
.gt(SettlementOwnerDetail::getCreateTime, LocalDateTime.now().minusMonths(3))
.eq(SettlementOwnerDetail::getInvoiceChannel, SettlementOwnerDetailEnum.InvoiceChannel.BROKER.getCode())
.eq(SettlementOwnerDetail::getInvoiceStatus, SettlementOwnerDetailEnum.InvoiceStatus.NO.getCode())
.eq(SettlementOwnerDetail::getInvoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode())
);
}
} }
package com.clx.performance.dao.impl.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.settle.SettlementPlatformServiceFeeDao;
import com.clx.performance.mapper.settle.SettlementPlatformServiceFeeMapper;
import com.clx.performance.model.settle.SettlementPlatformServiceFee;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @Author: aiqinguo
* @Description:
* @Date: 2023-10-11 18:04:09
* @Version: 1.0
*/
@Repository
public class SettlementPlatformServiceFeeDaoImpl extends BaseDaoImpl<SettlementPlatformServiceFeeMapper,
SettlementPlatformServiceFee, Integer> implements SettlementPlatformServiceFeeDao {
@Override
public IPage<SettlementPlatformServiceFee> pageByParam(PageCarrierSettlementPlatformServiceFeeParam param) {
Page<SettlementPlatformServiceFee> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param);
}
}
package com.clx.performance.dao.payment;
import com.clx.performance.mapper.payment.OrderPaymentMapper;
import com.clx.performance.model.payment.OrderPayment;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
public interface OrderPaymentDao extends BaseDao<OrderPaymentMapper, OrderPayment, Integer> {
Optional<OrderPayment> selectByOrderNoAndItemId(@Param("orderNo")String orderNo,
@Param("paymentItem")String paymentItem);
Optional<OrderPayment> selectByRelationNo(@Param("relationNo")String relationNo,
@Param("operation")Integer operation,
@Param("paymentItem")String paymentItem);
Optional<OrderPayment> selectByOrderNoAndItemIdAndOperation(@Param("orderNo")String orderNo,
@Param("paymentItem")String paymentItem,
@Param("operation")Integer operation);
List<OrderPayment> listByOrderNo(@Param("orderNo")String orderNo, @Param("paymentItem")String paymentItem);
}
...@@ -36,9 +36,17 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl ...@@ -36,9 +36,17 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl
IPage<SettlementOwner> pageSettlementOwner(Long userNo,PageOwnerSettlementParam param); IPage<SettlementOwner> pageSettlementOwner(Long userNo,PageOwnerSettlementParam param);
Optional<SettlementOwner> selectUnlockOfSettlementPeriodMonth(@Param("orderNo")String orderNo, Optional<SettlementOwner> selectUnlockOfSettlementPeriodMonth(@Param("orderNo")String orderNo,
@Param("invoicingCompanyId") Integer invoicingCompanyId,
@Param("settlementPeriodTime") LocalDateTime settlementPeriodTime, @Param("settlementPeriodTime") LocalDateTime settlementPeriodTime,
@Param("invoiceType")Integer invoiceType); @Param("invoiceType")Integer invoiceType);
Optional<SettlementOwner> selectUnlockOfSettlementPeriodDaily(String orderNo,
Integer invoicingCompanyId,
LocalDateTime settlementPeriodTime,
Integer invoiceType);
Optional<SettlementOwner> selectUnlockOfSettlementPeriodImmediate(@Param("orderNo")String orderNo, Optional<SettlementOwner> selectUnlockOfSettlementPeriodImmediate(@Param("orderNo")String orderNo,
@Param("invoicingCompanyId") Integer invoicingCompanyId,
@Param("invoiceType")Integer invoiceType); @Param("invoiceType")Integer invoiceType);
List<SettlementOwner> listToBeLockOfSettlementPeriodMonth(@Param("settlementPeriodTime") LocalDateTime settlementPeriodTime); List<SettlementOwner> listToBeLockOfSettlementPeriodMonth(@Param("settlementPeriodTime") LocalDateTime settlementPeriodTime);
...@@ -61,6 +69,9 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl ...@@ -61,6 +69,9 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl
@Param("fromStatus")Integer fromStatus, @Param("fromStatus")Integer fromStatus,
@Param("toStatus")Integer toStatus); @Param("toStatus")Integer toStatus);
boolean updateDailyLock(Integer settlementPeriodType, LocalDateTime settlementPeriodTime,
Integer fromStatus, Integer toStatus);
void updateSettlementMerge(@Param("settlementNo")String settlementNo, void updateSettlementMerge(@Param("settlementNo")String settlementNo,
@Param("settlementNos")List<String> settlementNos, @Param("settlementNos")List<String> settlementNos,
@Param("mergedBy") String mergedBy, @Param("mergedBy") String mergedBy,
......
...@@ -48,4 +48,5 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM ...@@ -48,4 +48,5 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM
void updateSettlementMerge(String settlementNo, List<String> settlementNos); void updateSettlementMerge(String settlementNo, List<String> settlementNos);
List<SettlementOwnerDetail>listInvoiceStatusSync();
} }
package com.clx.performance.dao.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.settle.SettlementPlatformServiceFeeMapper;
import com.clx.performance.model.settle.SettlementPlatformServiceFee;
import com.clx.performance.param.pc.owner.PageCarrierSettlementPlatformServiceFeeParam;
import com.msl.common.dao.BaseDao;
/**
* @Author: aiqinguo
* @Description:
* @Date: 2023-10-11 18:00:53
* @Version: 1.0
*/
public interface SettlementPlatformServiceFeeDao extends BaseDao<SettlementPlatformServiceFeeMapper,
SettlementPlatformServiceFee, Integer> {
IPage<SettlementPlatformServiceFee> pageByParam(PageCarrierSettlementPlatformServiceFeeParam param);
}
package com.clx.performance.dto.payment;
import com.fasterxml.jackson.annotation.JsonGetter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import java.math.BigDecimal;
/**
*
* @author 胡宁宁
* @date 2024年06
* @description
*/
@Data
@Builder
public class PaymentDTO {
/** 本次调整金额 **/
BigDecimal changeDeposit ;
/** 最新的保证金**/
BigDecimal platformServiceFeeNew;
}
...@@ -9,7 +9,7 @@ import java.math.BigDecimal; ...@@ -9,7 +9,7 @@ import java.math.BigDecimal;
/** /**
* *
* @author 胡宁宁 * @author 胡宁宁
* @date 2023年11月12日 * @date 2024年06
* @description * @description
*/ */
public class WalletResidueCardDTO extends WalletResidueDTO{ public class WalletResidueCardDTO extends WalletResidueDTO{
......
...@@ -7,12 +7,11 @@ import java.math.BigDecimal; ...@@ -7,12 +7,11 @@ import java.math.BigDecimal;
/** /**
* *
* @author 胡宁宁 * @author 胡宁宁
* @date 2023年11月12日 * @date 2024年06
* @description * @description
*/ */
public class WalletResidueDTO { public class WalletResidueDTO {
@ApiModelProperty(value = "余额", dataType = "double", example = "11.10") @ApiModelProperty(value = "余额", dataType = "double", example = "11.10")
......
...@@ -7,7 +7,17 @@ import lombok.Getter; ...@@ -7,7 +7,17 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum HttpEnum { public enum HttpEnum {
PERFORMANCE_PAY_CLX_PAYMENT(10000, "履约服务向老马上来发起钱包转账","/payment-service/performance/payUserWalletTransfer"), PERFORMANCE_PAY_CLX_PAYMENT(10000, "履约服务向老马上来发起钱包转账",
"/payment-service/performance/payUserWalletTransfer"),
PERFORMANCE_PAY_CLX_DRIVER_FREEZE(10001, "履约服务向老马上来发起司机押金冻结",
"/payment-service/performance/freezeUserMQ"),
PERFORMANCE_PAY_CLX_ADJUST_DRIVER_FREEZE(10002, "履约服务向老马上来发起司机押金冻结调整",
"/payment-service/performance/completeFreezeBatchMQ"),
PERFORMANCE_PAY_CLX_WALLET(10003, "履约服务向老马上来发起司机余额查询",
"/payment-service/performance/getWalletAndCard"),
; ;
private final int code; private final int code;
......
...@@ -26,6 +26,7 @@ public enum PayRemarkEnum { ...@@ -26,6 +26,7 @@ public enum PayRemarkEnum {
//v78 解冻保险 //v78 解冻保险
OWNER_PAY_DRIVER_INSURANCE(15, "货主取消订单赔偿金"), OWNER_PAY_DRIVER_INSURANCE(15, "货主取消订单赔偿金"),
DRIVER_PAY_OWNER_DRIVER_INSURANCE(16, "司机取消订单赔偿金"), DRIVER_PAY_OWNER_DRIVER_INSURANCE(16, "司机取消订单赔偿金"),
UPDATE_DRIVER_FREEZE(17, "修正司机押金"),
; ;
......
...@@ -8,21 +8,17 @@ import com.clx.performance.constant.RabbitKeyConstants; ...@@ -8,21 +8,17 @@ import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.constant.RedissonConstants; import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao; import com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao;
import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao; import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao;
import com.clx.performance.dao.loan.OwnerLoanRecordDao;
import com.clx.performance.dao.loan.OwnerRepaymentDao; import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.dao.settle.SettlementDriverDao; import com.clx.performance.dao.settle.SettlementDriverDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.LoanBalanceDTO;
import com.clx.performance.dto.OwnerLoanMqDTO; import com.clx.performance.dto.OwnerLoanMqDTO;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum; import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.loan.OrderChildLoanRetryRecord; import com.clx.performance.model.loan.OrderChildLoanRetryRecord;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord; import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.model.loan.OwnerLoanRecord;
import com.clx.performance.model.loan.OwnerRepayment; import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
...@@ -43,7 +39,6 @@ import org.springframework.stereotype.Component; ...@@ -43,7 +39,6 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.event.TransactionPhase; import org.springframework.transaction.event.TransactionPhase;
import org.springframework.transaction.event.TransactionalEventListener; import org.springframework.transaction.event.TransactionalEventListener;
import java.math.BigDecimal;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -140,11 +135,12 @@ public class EventListenerComponent { ...@@ -140,11 +135,12 @@ public class EventListenerComponent {
throw e; throw e;
} }
log.info("处理货主借款监听器执行成功"); log.info("处理货主借款监听器执行成功");
settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail); settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail);
settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail); settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail);
// 发送mq 通过开票标识 // 发送mq 结算统计
settlementMqService.invoiceTypeSync(settlementDriverDetail.getChildNo(), settlementDriverDetail.getInvoiceType()); settlementMqService.settlementStatistics(settlementDriverDetail.getChildNo(), settlementDriverDetail.getInvoiceType());
} catch (Exception e) { } catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD, e.getMessage()); throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD, e.getMessage());
} finally { } finally {
...@@ -210,24 +206,7 @@ public class EventListenerComponent { ...@@ -210,24 +206,7 @@ public class EventListenerComponent {
String childNo = event.getChildNo(); String childNo = event.getChildNo();
log.info("需要解冻借款的的运单号:{}", childNo); log.info("需要解冻借款的的运单号:{}", childNo);
List<OwnerLoanAccountRunningWaterRecord> runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByChildNoAndRunningWaterType(childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode()); orderChildLoanComponent.orderChildCancelAfter(childNo);
if (CollectionUtil.isEmpty(runningWaterRecordList)) {
return;
}
Long ownerUserNo = runningWaterRecordList.get(0).getOwnerUserNo();
log.info("当前解冻货主:{},流水记录长度{},流水记录{}", ownerUserNo, runningWaterRecordList.size(), JSONUtil.parse(runningWaterRecordList));
for (OwnerLoanAccountRunningWaterRecord record : runningWaterRecordList) {
Long loanNo = record.getLoanNo();
Integer loanType = record.getLoanType();
String ownerUserName = record.getOwnerUserName();
BigDecimal balance = record.getAlterationBalance();
//解冻借款
orderChildLoanComponent.thawOwnerLoanAccount(loanNo, loanType, ownerUserNo, ownerUserName, record.getMobile(), childNo, balance);
}
} }
@EventListener(classes = {OwnerLoanThawEvent.class}) @EventListener(classes = {OwnerLoanThawEvent.class})
......
package com.clx.performance.extranal.broker;
import com.clx.performance.vo.pc.broker.TransportParam;
import com.clx.performance.vo.pc.broker.TransportVO;
public interface BrokerService {
void orderChildSync(TransportParam param);
TransportVO getOrderChildStatus(String childNo);
}
package com.clx.performance.extranal.broker.impl;
import com.clx.performance.config.SettlementConfig;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.extranal.broker.BrokerService;
import com.clx.performance.feign.BrokerFeign;
import com.clx.performance.vo.pc.broker.TransportParam;
import com.clx.performance.vo.pc.broker.TransportVO;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class BrokerServiceImpl implements BrokerService {
@Autowired
public BrokerFeign brokerFeign;
@Autowired
private SettlementConfig settlementConfig;
@Override
public void orderChildSync(TransportParam param) {
param.setUserCode(settlementConfig.getBrokerUserCode());
Result<Object> result = brokerFeign.saveTransport(param);
if (result.getCode() != 0) {
log.info("运单同步网络货运失败, msg:{}", result.getMsg());
throw new ServiceSystemException(ResultEnum.FEIGN_ERROR, result.getMsg());
}
}
@Override
public TransportVO getOrderChildStatus(String childNo) {
Result<TransportVO> result = brokerFeign.getTransportByChildNo(childNo, settlementConfig.getBrokerUserCode());
if (result.getCode() != 0) {
log.info("运单同步网络货运失败, msg:{}", result.getMsg());
}
return result.getData();
}
}
package com.clx.performance.extranal.order;
import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
import com.msl.common.base.Optional;
public interface InvoicingCompanyService {
Optional<InvoicingCompanyVO> getInvoicingCompany(int id);
InvoicingCompanyVO getInvoicingCompanyByGroupCode(String companyGroupCode);
}
package com.clx.performance.extranal.order.impl;
import com.clx.order.feign.InvoicingCompanyFeign;
import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
import com.clx.performance.extranal.order.InvoicingCompanyService;
import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class InvoicingCompanyServiceImpl implements InvoicingCompanyService {
@Autowired
private InvoicingCompanyFeign invoicingCompanyFeign;
@Override
public Optional<InvoicingCompanyVO> getInvoicingCompany(int id) {
return Optional.ofNullable(invoicingCompanyFeign.getInvoicingCompany(id))
.filter(Result::succeed)
.map(Result::getData);
}
@Override
public InvoicingCompanyVO getInvoicingCompanyByGroupCode(String companyGroupCode) {
return Optional.of(invoicingCompanyFeign.getInvoicingCompanyByGroupCode(companyGroupCode))
.filter(Result::succeed)
.map(Result::getData)
.orNull();
}
}
...@@ -3,7 +3,7 @@ package com.clx.performance.extranal.user; ...@@ -3,7 +3,7 @@ package com.clx.performance.extranal.user;
import com.clx.user.vo.feign.TruckInfoFeignVo; import com.clx.user.vo.feign.TruckInfoFeignVo;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
public interface TruckService { public interface TruckUserService {
Optional<TruckInfoFeignVo> getTruckInfo(Integer truckId); Optional<TruckInfoFeignVo> getTruckInfo(Integer truckId);
......
package com.clx.performance.extranal.user.impl; package com.clx.performance.extranal.user.impl;
import com.clx.performance.extranal.user.TruckService; import com.clx.performance.extranal.user.TruckUserService;
import com.clx.user.feign.TruckFeign; import com.clx.user.feign.TruckFeign;
import com.clx.user.vo.feign.TruckInfoFeignVo; import com.clx.user.vo.feign.TruckInfoFeignVo;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
...@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; ...@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
@Service @Service
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
public class TruckServiceImpl implements TruckService { public class TruckUserServiceImpl implements TruckUserService {
private final TruckFeign truckFeign; private final TruckFeign truckFeign;
@Override @Override
......
...@@ -6,27 +6,17 @@ import com.clx.performance.component.ThirdComponent; ...@@ -6,27 +6,17 @@ import com.clx.performance.component.ThirdComponent;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao; import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dto.OrderChildSyncDTO; import com.clx.performance.dto.OrderChildSyncDTO;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.feign.TransportFeignService; import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord; import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.feign.transport.OrderChildPaySyncParam; import com.clx.performance.param.feign.transport.OrderChildPaySyncParam;
import com.clx.performance.service.settle.SettlementDriverDetailService; import com.clx.performance.service.settle.SettlementDriverDetailService;
import com.clx.performance.service.settle.SettlementMqHandlerService; import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.service.settle.SettlementMqService; import com.clx.performance.service.settle.SettlementMqService;
import com.clx.performance.service.settle.SettlementOwnerDetailService; import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.utils.LocalDateTimeUtils; import com.clx.performance.vo.mq.SettlementStatisticsMqParam;
import com.clx.performance.vo.mq.SettlementDetailInvoiceTypeSyncMqParam;
import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.dto.HttpDTO; import com.msl.common.dto.HttpDTO;
import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
...@@ -34,10 +24,7 @@ import lombok.AllArgsConstructor; ...@@ -34,10 +24,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Slf4j @Slf4j
...@@ -62,9 +49,9 @@ public class OrderChildPaySyncTransportJob { ...@@ -62,9 +49,9 @@ public class OrderChildPaySyncTransportJob {
private final OrderGoodsDao orderGoodsDao; private final OrderGoodsDao orderGoodsDao;
/** /**
* 同步网络货运 * 同步网络货运运单支付(禁用网络货运同步)
*/ */
@XxlJob("orderChildPaySyncTransportJob") // @XxlJob("orderChildPaySyncTransportJob")
public void orderChildPaySyncTransportJob() { public void orderChildPaySyncTransportJob() {
List<OrderChildSyncTransportRecord> recordList = orderChildSyncTransportRecordDao.selectListForJob(); List<OrderChildSyncTransportRecord> recordList = orderChildSyncTransportRecordDao.selectListForJob();
if (CollectionUtil.isEmpty(recordList)) { if (CollectionUtil.isEmpty(recordList)) {
...@@ -96,9 +83,9 @@ public class OrderChildPaySyncTransportJob { ...@@ -96,9 +83,9 @@ public class OrderChildPaySyncTransportJob {
public void settlementDetailInvoiceTypeSyncJob() { public void settlementDetailInvoiceTypeSyncJob() {
String jobParam = XxlJobHelper.getJobParam(); String jobParam = XxlJobHelper.getJobParam();
log.info("XxlJobHelper jobParam:{}", jobParam); log.info("XxlJobHelper jobParam:{}", jobParam);
SettlementDetailInvoiceTypeSyncMqParam mqParam = new SettlementDetailInvoiceTypeSyncMqParam(); SettlementStatisticsMqParam mqParam = new SettlementStatisticsMqParam();
mqParam.setChildNo(jobParam); mqParam.setChildNo(jobParam);
settlementMqHandlerService.settlementDetailInvoiceTypeSync(mqParam); settlementMqHandlerService.settlementStatistics(mqParam);
} }
......
...@@ -49,9 +49,9 @@ public class OrderChildSyncTransportInvoiceExceptionJob { ...@@ -49,9 +49,9 @@ public class OrderChildSyncTransportInvoiceExceptionJob {
private final SettlementDriverDetailDao settlementDriverDetailDao; private final SettlementDriverDetailDao settlementDriverDetailDao;
/** /**
* 同步网络货运 * 同步网络货运(禁用网络货运同步)
*/ */
@XxlJob("orderChildSyncTransportInvoiceExceptionJob") // @XxlJob("orderChildSyncTransportInvoiceExceptionJob")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void orderChildSyncTransportInvoiceExceptionJob() { public void orderChildSyncTransportInvoiceExceptionJob() {
//只查询同步异常的网络货运任务 //只查询同步异常的网络货运任务
......
package com.clx.performance.job; package com.clx.performance.job.settlement;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
......
package com.clx.performance.job.settlement;
import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao;
import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.model.OrderChildSyncTransportInvoiceRecord;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.settle.SettlementMqService;
import com.msl.common.job.JobLog;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
@AllArgsConstructor
public class SettlementJob {
private final OrderChildSyncTransportInvoiceRecordDao orderChildSyncTransportInvoiceRecordDao;
private final SettlementMqService settlementMqService;
private final SettlementOwnerDetailDao settlementOwnerDetailDao;
private final OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao;
/**
* 同步无车承运运单开票类型
*/
@XxlJob("settlementInvoiceTypeSync")
public void settlementInvoiceTypeSync() {
List<OrderChildSyncTransportInvoiceRecord> recordList = orderChildSyncTransportInvoiceRecordDao
.selectListForJob();
log.info("待同步无车承运运单状态,size:{}", recordList.size());
if (recordList.isEmpty()) {return;}
for (OrderChildSyncTransportInvoiceRecord item : recordList) {
settlementMqService.invoiceTypeSync(item.getChildNo());
}
orderChildSyncTransportInvoiceRecordDao.deleteByKeys(
recordList.stream().map(item->item.getId()).collect(Collectors.toList()));
}
/**
* 同步无车承运运单开票状态
*/
@XxlJob("settlementInvoiceStatusSync")
public void settlementInvoiceStatusSync() {
try {
List<SettlementOwnerDetail> list = settlementOwnerDetailDao.listInvoiceStatusSync();
log.info("待同步无车承运运单开票状态, size:{}", list.size());
if (list.isEmpty()) {return;}
for (SettlementOwnerDetail item : list) {
settlementMqService.invoiceStatusSync(item.getChildNo());
}
} catch (Exception e) {
log.warn("同步无车承运运单开票状态失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
JobLog.error("同步无车承运运单开票状态失败,异常原因=====================", e);
}
}
/**
* 同步无车承运运单支付状态
*/
@XxlJob("settlementPayStatusSync")
public void settlementPayStatusSync() {
try {
List<OrderChildSyncTransportRecord> list = orderChildSyncTransportRecordDao.selectListForJob();
log.info("待同步无车承运运单支付状态, size:{}", list.size());
if (list.isEmpty()) {return;}
for (OrderChildSyncTransportRecord item : list) {
settlementMqService.payStatusSync(item.getChildNo());
}
} catch (Exception e) {
log.warn("同步无车承运运单支付状态失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
JobLog.error("同步无车承运运单支付状态失败,异常原因=====================", e);
}
}
}
package com.clx.performance.job; package com.clx.performance.job.settlement;
import com.clx.performance.dao.settle.SettlementOwnerDao;
import com.clx.performance.enums.settle.SettlementOwnerEnum; import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.service.settle.SettlementOwnerService; import com.clx.performance.service.settle.SettlementOwnerService;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.msl.common.job.JobLog; import com.msl.common.job.JobLog;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Slf4j @Slf4j
@Component @Component
public class SettlementOwnerMontnJob { public class SettlementOwnerMontnJob {
@Autowired @Autowired
SettlementOwnerService settlementOwnerService; SettlementOwnerService settlementOwnerService;
@Autowired
private SettlementOwnerDao settlementOwnerDao;
/** /**
* 月结货主结算单状态变更为锁定 * 月结货主结算单状态变更为锁定
...@@ -32,7 +38,25 @@ public class SettlementOwnerMontnJob { ...@@ -32,7 +38,25 @@ public class SettlementOwnerMontnJob {
} }
} }
/**
* 日结货主结算单状态变更为锁定
*/
@XxlJob("settlementOwnerDailyInit")
public void settlementOwnerDailyInit() {
try {
// 锁定前一天数据
LocalDateTime settlementPeriodTime = LocalDateTimeUtils.getDayStart().minusDays(1);
//所有日结的待锁定的货主结算单修改状态为锁定
settlementOwnerDao.updateDailyLock(
SettlementOwnerEnum.SettlementPeriodType.DAILY.getCode(),
settlementPeriodTime,
SettlementOwnerEnum.Status.TO_BE_LOCKED.getCode(),
SettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode());
} catch (Exception e) {
log.warn("日结货主结算单状态变更为锁定,异常原因:{}",e);
JobLog.error("日结货主结算单状态变更为锁定,异常原因=====================", e);
}
}
} }
...@@ -13,18 +13,14 @@ import com.clx.order.feign.OrderFeign; ...@@ -13,18 +13,14 @@ import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.config.ThirdAppConfig; import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dto.dts.DataTransportDTO; import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum; import com.clx.performance.enums.DtsOperationTypeEnum;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.event.OrderChildCancelEvent; import com.clx.performance.event.OrderChildCancelEvent;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.TruckService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildImage;
import com.clx.performance.service.LastTruckService; import com.clx.performance.service.LastTruckService;
import com.clx.user.vo.feign.FeignDriverTruckModelVo; import com.clx.user.vo.feign.FeignDriverTruckModelVo;
import com.clx.user.vo.feign.TruckInfoFeignVo;
import com.msl.common.enums.ResultCodeEnum; import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.common.utils.DtsMapConvertUtil; import com.msl.common.utils.DtsMapConvertUtil;
...@@ -36,11 +32,8 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; ...@@ -36,11 +32,8 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Component @Component
...@@ -51,8 +44,7 @@ public class OrderChildDtsListener { ...@@ -51,8 +44,7 @@ public class OrderChildDtsListener {
private final DriverService driverService; private final DriverService driverService;
private final ApplicationEventPublisher applicationEventPublisher; private final ApplicationEventPublisher applicationEventPublisher;
private final ThirdAppConfig thirdAppConfig; private final ThirdAppConfig thirdAppConfig;
private final TruckService truckService;
private final OrderChildImageDao orderChildImageDao;
@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE) @RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE)
...@@ -104,7 +96,6 @@ public class OrderChildDtsListener { ...@@ -104,7 +96,6 @@ public class OrderChildDtsListener {
if (orderInfoFeign == null) { if (orderInfoFeign == null) {
return; return;
} }
String childNo = after.getChildNo();
//同步交易平台的运单 //同步交易平台的运单
if(Objects.equals(orderInfoFeign.getOrderSource(), SyncPlatformEnum.Source.TRADE_PLATFORM.getCode())){ if(Objects.equals(orderInfoFeign.getOrderSource(), SyncPlatformEnum.Source.TRADE_PLATFORM.getCode())){
...@@ -113,30 +104,6 @@ public class OrderChildDtsListener { ...@@ -113,30 +104,6 @@ public class OrderChildDtsListener {
FeignDriverTruckModelVo dumpType = driverService.getDumpType(truckModel).orElseThrow(ResultCodeEnum.FAIL); FeignDriverTruckModelVo dumpType = driverService.getDumpType(truckModel).orElseThrow(ResultCodeEnum.FAIL);
after.setDumpType(dumpType.getDumpType()); after.setDumpType(dumpType.getDumpType());
} }
//获取挂车车牌号
if(Objects.nonNull(after.getTruckId()) && after.getTruckId() >0 ){
com.msl.common.base.Optional<TruckInfoFeignVo> truckInfo = truckService.getTruckInfo(orderInfoFeign.getTruckDemand());
if(Objects.nonNull(truckInfo)){
after.setTruckNo2(truckInfo.get().getTruckNo2());
}
}
//获取磅单图片
List<OrderChildImage> imageList = orderChildImageDao.listLoadAndUnload(childNo).orElse(new ArrayList<>());
after.setLoadImageList(imageList.stream().filter(
item -> Objects.equals(item.getType(), OrderChildImage.Type.LOAD.getCode())).map(
item -> item.getImage()).collect(Collectors.toList()));
after.setUnloadImageList(imageList.stream().filter(
item -> Objects.equals(item.getType(), OrderChildImage.Type.UNLOAD.getCode())).map(
item -> item.getImage()).collect(Collectors.toList()));
/** 因为给的都预计到达时间,为了减少误差,所以限定状态后才同步预计到达时间*/
//非当前状态,预计到达发货地时间为空
if(OrderChildEnum.SYNC_ARRIVE_lIST.contains(after.getStatus())){
after.setExpectArriveTime(null);
}
//非当前状态 ,预计到达收货地时间为空
if(OrderChildEnum.SYNC_RECEIVE_lIST.contains(after.getStatus())){
after.setExpectReceiveTime(null);
}
//同步after数据 //同步after数据
Optional<OrderChildEnum.Status> option = OrderChildEnum.Status.getByCode(after.getStatus()); Optional<OrderChildEnum.Status> option = OrderChildEnum.Status.getByCode(after.getStatus());
String statusName = option.isPresent()?option.get().getName():"未知状态"; String statusName = option.isPresent()?option.get().getName():"未知状态";
......
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.SettlementInvoiceStatusSyncMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 开票标识同步 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementInvoiceStatusSyncListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_INVOICE_STATUS_SYNC_QUEUE)
public void process(Message message) {
try{
log.info("结算-开票状态同步, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementInvoiceStatusSyncMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-开票状态同步 失败",e);
}
}
private void process(SettlementInvoiceStatusSyncMqParam mq){
settlementMqHandlerService.invoiceStatusSync(mq);
}
}
...@@ -5,7 +5,7 @@ import com.alibaba.fastjson.TypeReference; ...@@ -5,7 +5,7 @@ import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper; import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants; import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService; import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.SettlementDetailInvoiceTypeSyncMqParam; import com.clx.performance.vo.mq.SettlementInvoiceTypeSyncMqParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
...@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; ...@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
/** /**
* @Author: 艾庆国 * @Author: 艾庆国
* @Description: 开票标识同步 mq * @Description: 开票类型同步 mq
* @Date: 2023-10-20 11:45:08 * @Date: 2023-10-20 11:45:08
* @Version: 1.0 * @Version: 1.0
*/ */
...@@ -25,19 +25,19 @@ public class SettlementInvoiceTypeSyncListener { ...@@ -25,19 +25,19 @@ public class SettlementInvoiceTypeSyncListener {
@Autowired @Autowired
private SettlementMqHandlerService settlementMqHandlerService; private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_QUEUE) @RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_INVOICE_TYPE_SYNC_QUEUE)
public void process(Message message) { public void process(Message message) {
try{ try{
log.info("结算-开票标识同步, message:{}", new String(message.getBody())); log.info("结算-开票类型同步, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementDetailInvoiceTypeSyncMqParam>>(){}).getData()); process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementInvoiceTypeSyncMqParam>>(){}).getData());
}catch (Exception e){ }catch (Exception e){
log.info("结算-开票标识同步 失败",e); log.info("结算-开票类型同步 失败",e);
} }
} }
private void process(SettlementDetailInvoiceTypeSyncMqParam mq){ private void process(SettlementInvoiceTypeSyncMqParam mq){
settlementMqHandlerService.settlementDetailInvoiceTypeSync(mq); settlementMqHandlerService.invoiceTypeSync(mq);
} }
} }
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.SettlementPayStatusSyncMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 开票标识同步 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementPayStatusSyncListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_PAY_STATUS_SYNC_QUEUE)
public void process(Message message) {
try{
log.info("结算-支付状态同步, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementPayStatusSyncMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-支付状态同步 失败",e);
}
}
private void process(SettlementPayStatusSyncMqParam mq){
settlementMqHandlerService.payStatusSync(mq);
}
}
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.SettlementSettleMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 结算 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementSettleListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_SETTLE_QUEUE)
public void process(Message message) {
try{
log.info("结算-结算, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementSettleMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-结算 失败",e);
}
}
private void process(SettlementSettleMqParam mq){
settlementMqHandlerService.settle(mq);
}
}
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.SettlementStatisticsMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 统计 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementStatisticsListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_QUEUE)
public void process(Message message) {
try{
log.info("结算-统计, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementStatisticsMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-统计 失败",e);
}
}
private void process(SettlementStatisticsMqParam mq){
settlementMqHandlerService.settlementStatistics(mq);
}
}
...@@ -125,8 +125,6 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> { ...@@ -125,8 +125,6 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@Select("select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(10,20,30,40,50,60,70,80,90,100)") @Select("select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(10,20,30,40,50,60,70,80,90,100)")
BigDecimal sumTakeWeightByOrderGoodsNo(String orderGoodsNo); BigDecimal sumTakeWeightByOrderGoodsNo(String orderGoodsNo);
@SelectProvider(type = OrderChildSqlProvider.class, method = "statisticsTruckMonth")
MonthInComeAndOrderedVO statisticsTruckMonth(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime, @Param("truckNo")String truckNo);
@Select("select sum(if (status>=50, load_net, #{defaultWeight})) from order_child " + @Select("select sum(if (status>=50, load_net, #{defaultWeight})) from order_child " +
...@@ -174,4 +172,5 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> { ...@@ -174,4 +172,5 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
"</script>") "</script>")
List<LineWarnOrderChildStatisticsDTO>sumUnloadNumByOrderGoodsNoList(List<String> orderGoodsNoList); List<LineWarnOrderChildStatisticsDTO>sumUnloadNumByOrderGoodsNoList(List<String> orderGoodsNoList);
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论