提交 c497bbdc authored 作者: liuhaiquan's avatar liuhaiquan

Merge remote-tracking branch 'origin/v5.7_break_contract_reverse_20231020' into…

Merge remote-tracking branch 'origin/v5.7_break_contract_reverse_20231020' into v5.7_break_contract_reverse_20231020 # Conflicts: # performance-web/src/main/java/com/clx/performance/service/impl/OrderGoodsServiceImpl.java
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum BreakContractOwnerRecordEnum {
;
@Getter
@AllArgsConstructor
public enum PayStatus {
NOT(0, "未缴费"),
YES(1, "已缴费"),
;
private final Integer code;
private final String msg;
public static Optional<PayStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(PayStatus::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum CompensationStatusStatus {
NOT(0, "未赔付"),
YES(1, "已赔付"),
;
private final Integer code;
private final String msg;
public static Optional<CompensationStatusStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(CompensationStatusStatus::getMsg).orElse(null);
}
}
}
...@@ -25,7 +25,7 @@ public enum BreakContractRecordEnum { ...@@ -25,7 +25,7 @@ public enum BreakContractRecordEnum {
} }
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum BreachContractPartyType { public enum BreakContractPartyType {
PLATFORM(1, "平台"), PLATFORM(1, "平台"),
OWNER(2, "货主"), OWNER(2, "货主"),
DRIVER(3, "司机"), DRIVER(3, "司机"),
...@@ -34,7 +34,7 @@ public enum BreakContractRecordEnum { ...@@ -34,7 +34,7 @@ public enum BreakContractRecordEnum {
private final Integer code; private final Integer code;
private final String msg; private final String msg;
public static Optional<BreachContractPartyType> getByCode(int code) { public static Optional<BreakContractPartyType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst(); return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
} }
} }
......
...@@ -11,7 +11,7 @@ public enum BreakContractSettlementDriverEnum { ...@@ -11,7 +11,7 @@ public enum BreakContractSettlementDriverEnum {
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum BreachContractPartyType { public enum BreakContractPartyType {
PLATFORM(1, "平台"), PLATFORM(1, "平台"),
OWNER(2, "货主"), OWNER(2, "货主"),
DRIVER(3, "司机"), DRIVER(3, "司机"),
...@@ -20,20 +20,20 @@ public enum BreakContractSettlementDriverEnum { ...@@ -20,20 +20,20 @@ public enum BreakContractSettlementDriverEnum {
private final Integer code; private final Integer code;
private final String msg; private final String msg;
public static Optional<BreachContractPartyType> getByCode(int code) { public static Optional<BreakContractPartyType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst(); return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
} }
public static String getMsgByCode(int code) { public static String getMsgByCode(int code) {
return getByCode(code).map(BreachContractPartyType::getMsg).orElse(null); return getByCode(code).map(BreakContractPartyType::getMsg).orElse(null);
} }
} }
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum SettleStatus { public enum SettleStatus {
NO(0, "待结算"), NO(1, "待结算"),
YES(1, "已结算"), YES(2, "已结算"),
; ;
private final Integer code; private final Integer code;
......
...@@ -13,16 +13,16 @@ public enum OrderGoodsPendingVehicleUsageEnum { ...@@ -13,16 +13,16 @@ public enum OrderGoodsPendingVehicleUsageEnum {
@AllArgsConstructor @AllArgsConstructor
public enum Status { public enum Status {
PLATFORM_TRUCK("1", "平台车辆配货"), PLATFORM_TRUCK(1, "平台车辆配货"),
OWN_TRUCK("2", "自有车辆配货"), OWN_TRUCK(2, "自有车辆配货"),
; ;
private final String code; private final Integer code;
private final String name; private final String name;
public static Optional<Status> getByCode(String code) { public static Optional<Status> getByCode(String c) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst(); return Arrays.stream(values()).filter(e -> e.code.equals(c)).findFirst();
} }
} }
......
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OrderGoodsStopEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
NO(0, "未暂停"),
YES(1, "已暂停")
;
private final Integer code;
private final String name;
public static Optional<Status> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
}
package com.clx.performance.feign; package com.clx.performance.feign;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.vo.feign.OrderGoodsFeignVO; import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
...@@ -49,4 +52,18 @@ public interface PerformanceFeign { ...@@ -49,4 +52,18 @@ public interface PerformanceFeign {
Result<List<String>> getPrivateTruckList(@RequestParam("orderGoodsNo") @NotBlank(message = "货单编号不可为空") String orderGoodsNo, Result<List<String>> getPrivateTruckList(@RequestParam("orderGoodsNo") @NotBlank(message = "货单编号不可为空") String orderGoodsNo,
@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo); @RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo);
@PostMapping(value = {"clx-performance/feign/order/orderCancel"})
Result<Object> orderCancel(@RequestBody OrderCancelParam param);
/**
* 更新货单暂停标志
* @param orderNo
* @return
*/
@GetMapping(value = {"clx-performance/feign/orderGoods/updateOrderGoodsStopFlag"})
Result<Boolean> updateOrderGoodsStopFlag(@RequestParam("orderNo") String orderNo,@RequestParam("stopFlag") Integer stopFlag);
} }
package com.clx.performance.param.mq;
import lombok.Data;
@Data
public class OrderCancelMqParam {
private String orderNo;
// 1:平台 2:货主
private String type;
}
package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
@Getter
@Setter
public class OrderCancelParam {
@NotNull(message = "订单编号不能为空")
@ApiModelProperty("订单编号")
private String orderNo;
}
...@@ -24,7 +24,7 @@ public class BreakContractDriverRecordAddParam { ...@@ -24,7 +24,7 @@ public class BreakContractDriverRecordAddParam {
@ApiModelProperty("违约方类型:1平台 3司机") @ApiModelProperty("违约方类型:1平台 3司机")
@NotNull(message = "违约方类型不能为空") @NotNull(message = "违约方类型不能为空")
private Integer breachContractPartyType; private Integer breakContractPartyType;
@ApiModelProperty("违约运单") @ApiModelProperty("违约运单")
@NotBlank(message = "违约运单不能为空") @NotBlank(message = "违约运单不能为空")
......
...@@ -24,7 +24,7 @@ public class BreakContractOwnerRecordAddParam { ...@@ -24,7 +24,7 @@ public class BreakContractOwnerRecordAddParam {
@ApiModelProperty("违约方类型:1平台 2货主") @ApiModelProperty("违约方类型:1平台 2货主")
@NotNull(message = "违约方类型不能为空") @NotNull(message = "违约方类型不能为空")
private Integer breachContractPartyType; private Integer breakContractPartyType;
@ApiModelProperty("违约订单") @ApiModelProperty("违约订单")
@NotBlank(message = "违约订单不能为空") @NotBlank(message = "违约订单不能为空")
......
...@@ -43,4 +43,7 @@ public class CarrierBreakContractSavePayeeParam { ...@@ -43,4 +43,7 @@ public class CarrierBreakContractSavePayeeParam {
@ApiModelProperty(value = "付款银行卡卡号", example = "62213545878787") @ApiModelProperty(value = "付款银行卡卡号", example = "62213545878787")
private String paymentBankCardNo; private String paymentBankCardNo;
@ApiModelProperty(value = "状态", example = "1",hidden = true)
private Integer status;
} }
package com.clx.performance.param.pc.breakcontract.carrier;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class OwnerConfirmSettlementParam {
@NotNull(message = "id不能为空")
@ApiModelProperty(value = "id", example = "100")
private Integer id;
}
...@@ -16,6 +16,9 @@ public class PageBreakContractDriverRecordParam extends PageParam { ...@@ -16,6 +16,9 @@ public class PageBreakContractDriverRecordParam extends PageParam {
@ApiModelProperty(value = "运单", example = "1000000000") @ApiModelProperty(value = "运单", example = "1000000000")
private String childNo; private String childNo;
@ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType;
@ApiModelProperty(value = "开始时间", example = "") @ApiModelProperty(value = "开始时间", example = "")
private String beginTime; private String beginTime;
......
...@@ -16,6 +16,9 @@ public class PageBreakContractOwnerRecordParam extends PageParam { ...@@ -16,6 +16,9 @@ public class PageBreakContractOwnerRecordParam extends PageParam {
@ApiModelProperty(value = "订单号", example = "1000000000") @ApiModelProperty(value = "订单号", example = "1000000000")
private String orderNo; private String orderNo;
@ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType;
@ApiModelProperty(value = "开始时间", example = "") @ApiModelProperty(value = "开始时间", example = "")
private String beginTime; private String beginTime;
......
...@@ -20,6 +20,12 @@ public class PageCarrierBreakContractSettlementDriverParam extends PageParam { ...@@ -20,6 +20,12 @@ public class PageCarrierBreakContractSettlementDriverParam extends PageParam {
@ApiModelProperty(value="车主编号",example = "201457878") @ApiModelProperty(value="车主编号",example = "201457878")
private Long truckOwnUserNo; private Long truckOwnUserNo;
@ApiModelProperty("车主名称")
private String truckOwnName;
@ApiModelProperty("结算状态 1待结算;2已结算")
private Integer settleStatus;
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1") @ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
private Integer breakContractPartyType; private Integer breakContractPartyType;
......
...@@ -13,6 +13,11 @@ import lombok.ToString; ...@@ -13,6 +13,11 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
public class PageCarrierBreakContractSettlementOwnerParam extends PageParam { public class PageCarrierBreakContractSettlementOwnerParam extends PageParam {
@ApiModelProperty(value="货主编号",example = "201457878",hidden = true)
private Long ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerName;
@ApiModelProperty(value="订单编号",example = "201457878") @ApiModelProperty(value="订单编号",example = "201457878")
private String orderNo; private String orderNo;
...@@ -23,6 +28,9 @@ public class PageCarrierBreakContractSettlementOwnerParam extends PageParam { ...@@ -23,6 +28,9 @@ public class PageCarrierBreakContractSettlementOwnerParam extends PageParam {
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1") @ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
private Integer breakContractPartyType; private Integer breakContractPartyType;
@ApiModelProperty(value = "状态:10-待锁定,20-待货主确认,30-待货主付款,40-待平台确认付款,50-待平台付款,60-待货主确认付款,70-已完结,80-已取消", example = "1")
private Integer status;
@ApiModelProperty(value="开始时间",example = "2012-01-01 00:00:00") @ApiModelProperty(value="开始时间",example = "2012-01-01 00:00:00")
private String beginTime; private String beginTime;
......
package com.clx.performance.param.pc.breakcontract.owner;
public class AA {
}
package com.clx.performance.param.pc.breakcontract.owner;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageOwnerBreakContractOwnerRecordParam extends PageParam {
@ApiModelProperty(value = "货主编号", example = "1",hidden = true)
private Long ownerUserNo;
@ApiModelProperty(value = "订单号", example = "1000000000")
private String orderNo;
@NotNull(message = "违约方类型不能为空")
@ApiModelProperty(value = "违约方类型:1平台 2货主 3司机", example = "1")
private Integer breakContractPartyType;
@ApiModelProperty(value = "缴费状态:0未缴费;1已缴费/赔付状态:0未赔付;1已赔付", example = "1")
private Integer payStatus;
@ApiModelProperty(value = "开始时间", example = "2012-01-01 00:00:00")
private String beginTime;
@ApiModelProperty(value = "结束时间", example = "2012-01-01 00:00:00")
private String endTime;
}
...@@ -27,7 +27,7 @@ public class DriverBreakContractDriverRecordVO { ...@@ -27,7 +27,7 @@ public class DriverBreakContractDriverRecordVO {
private Integer triggerType; private Integer triggerType;
@ApiModelProperty("违约方类型:1平台 2货主 3司机") @ApiModelProperty("违约方类型:1平台 2货主 3司机")
private Integer breachContractPartyType; private Integer breakContractPartyType;
@ApiModelProperty("违约运单") @ApiModelProperty("违约运单")
private String childNo; private String childNo;
......
...@@ -27,7 +27,7 @@ public class BreakContractDriverRecordVO { ...@@ -27,7 +27,7 @@ public class BreakContractDriverRecordVO {
private Integer triggerType; private Integer triggerType;
@ApiModelProperty("违约方类型:1平台 2货主 3司机") @ApiModelProperty("违约方类型:1平台 2货主 3司机")
private Integer breachContractPartyType; private Integer breakContractPartyType;
@ApiModelProperty("违约运单") @ApiModelProperty("违约运单")
private String childNo; private String childNo;
......
...@@ -27,7 +27,7 @@ public class BreakContractOwnerRecordVO { ...@@ -27,7 +27,7 @@ public class BreakContractOwnerRecordVO {
private Integer triggerType; private Integer triggerType;
@ApiModelProperty("违约方类型:1平台 2货主 3司机") @ApiModelProperty("违约方类型:1平台 2货主 3司机")
private Integer breachContractPartyType; private Integer breakContractPartyType;
@ApiModelProperty("违约订单") @ApiModelProperty("违约订单")
private String orderNo; private String orderNo;
......
...@@ -27,6 +27,9 @@ public class PageCarrierBreakContractSettlementDriverVO { ...@@ -27,6 +27,9 @@ public class PageCarrierBreakContractSettlementDriverVO {
@ApiModelProperty("车主用户编号") @ApiModelProperty("车主用户编号")
private Long truckOwnUserNo; private Long truckOwnUserNo;
@ApiModelProperty("车主名称")
private String truckOwnName;
@ApiModelProperty("司机名称") @ApiModelProperty("司机名称")
private String driverName; private String driverName;
...@@ -39,10 +42,10 @@ public class PageCarrierBreakContractSettlementDriverVO { ...@@ -39,10 +42,10 @@ public class PageCarrierBreakContractSettlementDriverVO {
@ApiModelProperty("违约说明") @ApiModelProperty("违约说明")
private String breakContractRemark; private String breakContractRemark;
@ApiModelProperty("结算状态 0待结算;1已结算") @ApiModelProperty("结算状态 1待结算;2已结算")
private String settleStatusMsg; private String settleStatusMsg;
@ApiModelProperty("结算状态 0待结算;1已结算") @ApiModelProperty("结算状态 1待结算;2已结算")
private Integer settleStatus; private Integer settleStatus;
@ApiModelProperty("结算平台 0马上来") @ApiModelProperty("结算平台 0马上来")
......
package com.clx.performance.vo.pc.breakcontract.owner;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
/**
* @author liruixin
* Date 2023-10-24
* Time 16:02
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class PageOwnerBreakContractOwnerRecordVO {
@ApiModelProperty("违约订单")
private String orderNo;
@ApiModelProperty("违约金")
@MoneyOutConvert
private BigDecimal figure;
@ApiModelProperty("结算单编号")
private String settlementNo;
@ApiModelProperty("缴费状态:0未缴费;1已缴费")
private String payStatusMsg;
@ApiModelProperty("赔付状态:0未赔付;1已赔付")
private String compensationStatusMsg;
@ApiModelProperty("缴费状态:0未缴费;1已缴费 /赔付状态:0未赔付;1已赔付")
private Integer payStatus;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("违约时间")
private String createTime;
@ApiModelProperty("赔付时间")
private String payTime;
}
...@@ -144,4 +144,30 @@ public class RabbitBeanConfig { ...@@ -144,4 +144,30 @@ public class RabbitBeanConfig {
public Binding orderGoodsDeadExchangeBind() { public Binding orderGoodsDeadExchangeBind() {
return BindingBuilder.bind(orderGoodsOnDeadQueue()).to(orderGoodsOnDeadExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY); return BindingBuilder.bind(orderGoodsOnDeadQueue()).to(orderGoodsOnDeadExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY);
} }
/**
* 订单取消队列
* @return
*/
@Bean
public Queue orderCancelQueue() {
return new Queue(RabbitKeyConstants.ORDER_CANCEL_QUEUE, true, false, false);
}
/**
* 订单取消队列交换机
**/
@Bean
public DirectExchange orderCancelExchange() {
return new DirectExchange(RabbitKeyConstants.ORDER_CANCEL_EXCHANGE);
}
/**
* 订单取消队列绑定
*/
@Bean
public Binding orderCancelExchangeBind() {
return BindingBuilder.bind(orderCancelQueue()).to(orderCancelExchange()).with(RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY);
}
} }
...@@ -52,4 +52,10 @@ public class RabbitKeyConstants { ...@@ -52,4 +52,10 @@ public class RabbitKeyConstants {
public static final String ORDER_GOODS_ON_DEAD_ROUTE_KEY ="clx-order.order.goods.on.dead.route.key"; public static final String ORDER_GOODS_ON_DEAD_ROUTE_KEY ="clx-order.order.goods.on.dead.route.key";
public static final String ORDER_CANCEL_QUEUE ="clx-order.order.cancel.queue";
public static final String ORDER_CANCEL_EXCHANGE ="clx-order.order.cancel.exchange";
public static final String ORDER_CANCEL_ROUTE_KEY ="clx-order.order.cancel.route.key";
} }
...@@ -19,7 +19,10 @@ public class RedisConstants { ...@@ -19,7 +19,10 @@ public class RedisConstants {
public static final String CARRIER_ORDER_NUM_POOL_KEY = "clx-performance:order:orderNumPool:{date}"; public static final String CARRIER_ORDER_NUM_POOL_KEY = "clx-performance:order:orderNumPool:{date}";
public static final String ORDER_GOODS_STATUS_LAZY = "clx:order:goods:status:lazy:"; public static final String ORDER_GOODS_STATUS_LAZY_LAST_ORDER_TIME = "clx:order:goods:status:lazy:lastOrderTime";
public static final String ORDER_GOODS_STATUS_LAZY_LAST_ARRIVE_SEND_TIME = "clx:order:goods:status:lazy:lastOrderTime";
public static final String ORDER_GOODS_TRUCK_RECORD = "clx:order:goods:truck:record:"; public static final String ORDER_GOODS_TRUCK_RECORD = "clx:order:goods:truck:record:";
public static final String ORDER_GOODS_RECORD = "clx:order:goods:record:"; public static final String ORDER_GOODS_RECORD = "clx:order:goods:record:";
......
package com.clx.performance.controller.feign;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService;
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.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("/feign/order")
@Validated
@AllArgsConstructor
@Api(tags = "PC-订单取消")
public class OrderCancelFeignController {
private final OrderCancelService orderCancelService;
@ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆")
@PostMapping("/orderCancel")
public Result<Object> orderCancel(@RequestBody OrderCancelParam param) {
orderCancelService.ownerCancelOrderPre(param.getOrderNo());
return Result.ok();
}
}
...@@ -3,6 +3,7 @@ package com.clx.performance.controller.feign; ...@@ -3,6 +3,7 @@ package com.clx.performance.controller.feign;
import com.clx.performance.service.OrderChildService; import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderGoodsService; import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.vo.feign.OrderGoodsFeignVO; import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; 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;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
...@@ -27,4 +29,11 @@ public class OrderGoodsFeignController { ...@@ -27,4 +29,11 @@ public class OrderGoodsFeignController {
List<OrderGoodsFeignVO> getOrderGoodsListByOrderNo(@RequestParam("userNo") @NotNull(message = "订单编号不可为空") String orderNo) { List<OrderGoodsFeignVO> getOrderGoodsListByOrderNo(@RequestParam("userNo") @NotNull(message = "订单编号不可为空") String orderNo) {
return orderGoodsService.getOrderGoodsListByOrderNo(orderNo); return orderGoodsService.getOrderGoodsListByOrderNo(orderNo);
} }
@GetMapping({"/updateOrderGoodsStopFlag"})
Result<Boolean> updateOrderGoodsStopFlag(@RequestParam("orderNo") @NotBlank(message = "订单编号不可为空") String orderNo,
@RequestParam("stopFlag") @NotNull(message = "暂停标志不可为空") Integer stopFlag) {
return Result.ok(orderGoodsService.updateOrderGoodsStopFlag(orderNo,stopFlag));
}
} }
...@@ -133,9 +133,22 @@ public class GoodsOrderController { ...@@ -133,9 +133,22 @@ public class GoodsOrderController {
@ApiOperation(value = "取消订单获取弹窗样式", notes = "<br>By:胡宇帆") @ApiOperation(value = "取消订单获取弹窗样式", notes = "<br>By:胡宇帆")
@GetMapping("/orderCancel") @GetMapping("/orderCancelStyle")
public Result<String> orderCancel(@RequestParam(value = "orderNo") String orderNo) { public Result<String> orderCancelStyle(@RequestParam(value = "orderNo") String orderNo) {
return Result.ok(orderGoodsService.orderCancel(orderNo)); return Result.ok(orderGoodsService.orderCancelStyle(orderNo));
}
@ApiOperation(value = "取消货单获取弹窗样式", notes = "<br>By:胡宇帆")
@GetMapping("/orderGoodsCancelStyle")
public Result<String> orderGoodsCancelStyle(@RequestParam(value = "orderGoodsNo") String orderGoodsNo) {
return Result.ok(orderGoodsService.orderGoodsCancelStyle(orderGoodsNo));
}
@ApiOperation(value = "取消货单", notes = "<br>By:胡宇帆")
@GetMapping("/orderGoodsCancel")
public Result<Object> orderGoodsCancel(@RequestParam(value = "orderGoodsNo") String orderGoodsNo) {
orderGoodsService.orderGoodsCancel(orderGoodsNo);
return Result.ok();
} }
@ApiOperation(value = "获取当前订单可取消吨数", notes = "<br>By:胡宇帆") @ApiOperation(value = "获取当前订单可取消吨数", notes = "<br>By:胡宇帆")
......
package com.clx.performance.controller.pc.breakcontract.owner;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO;
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.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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/owner/breakContract/ownerRecord")
@Validated
@Api(tags = "货主端-违约管理")
@AllArgsConstructor
public class OwnerBreakContractOwnerRecordController {
private final BreakContractOwnerRecordService breakContractOwnerRecordService;
@ApiOperation(value = "列表",notes = "<br>By:李瑞新")
@PostMapping("/pageOwnerRecord")
@UnitCovert(param = false)
public Result<PageData<PageOwnerBreakContractOwnerRecordVO>> pageOwnerRecord(@RequestBody @Validated PageOwnerBreakContractOwnerRecordParam param) {
IPage<PageOwnerBreakContractOwnerRecordVO> page = breakContractOwnerRecordService.pageOwnerRecord(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.breakcontract.owner; package com.clx.performance.controller.pc.breakcontract.owner;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierBreakContractSavePayeeParam;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierBreakPayeeConfirmParam;
import com.clx.performance.param.pc.breakcontract.carrier.OwnerConfirmSettlementParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService; import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.performance.vo.pc.breakcontract.carrier.CarrierBreakContractSettlementOwnerDetailVO; import com.clx.performance.vo.pc.breakcontract.carrier.CarrierBreakContractSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert; import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -29,8 +40,51 @@ public class OwnerBreakContractSettlementOwnerController { ...@@ -29,8 +40,51 @@ public class OwnerBreakContractSettlementOwnerController {
@ApiOperation(value = "详情",notes = "<br>By:李瑞新") @ApiOperation(value = "详情",notes = "<br>By:李瑞新")
@GetMapping("/getOwnerBreakContractSettlementOwnerDetail") @GetMapping("/getOwnerBreakContractSettlementOwnerDetail")
@UnitCovert(param = false) @UnitCovert(param = false)
public Result<CarrierBreakContractSettlementOwnerDetailVO> getCarrierBreakContractSettlementOwnerDetail(@NotNull(message = "id不能为空") Integer id) { public Result<CarrierBreakContractSettlementOwnerDetailVO> getOwnerBreakContractSettlementOwnerDetail(@NotNull(message = "id不能为空") Integer id) {
return Result.ok(breakContractSettlementOwnerService.getCarrierBreakContractSettlementOwnerDetail(id)); return Result.ok(breakContractSettlementOwnerService.getCarrierBreakContractSettlementOwnerDetail(id));
} }
@ApiOperation(value = "列表",notes = "<br>By:李瑞新")
@PostMapping("/pageOwnerBreakContractSettlementOwnerList")
@UnitCovert(param = false)
public Result<PageData<PageCarrierBreakContractSettlementOwnerVO>> pageOwnerBreakContractSettlementOwnerList(@RequestBody PageCarrierBreakContractSettlementOwnerParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
param.setOwnerUserNo(loginUserInfo.getUserNo());
IPage<PageCarrierBreakContractSettlementOwnerVO> page = breakContractSettlementOwnerService.pageCarrierBreakContractSettlementOwnerList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "导出")
@PostMapping("/exportOwnerBreakContractSettlementOwnerList")
public Result exportOwnerBreakContractSettlementOwnerList(@RequestBody PageCarrierBreakContractSettlementOwnerParam param, HttpServletResponse response) throws Exception {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
param.setOwnerUserNo(loginUserInfo.getUserNo());
SXSSFWorkbook workbook = breakContractSettlementOwnerService.exportCarrierBreakContractSettlementOwnerList(param);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream());
return null;
}
@ApiOperation(value = "确认结算单",notes = "<br>By:李瑞新")
@PostMapping("/updateOwnerConfirmSettlement")
public Result updateOwnerConfirmSettlement(@RequestBody @Validated OwnerConfirmSettlementParam param) {
breakContractSettlementOwnerService.updateConfirmSettlement(param);
return Result.ok();
}
@ApiOperation(value = "付款",notes = "<br>By李瑞新")
@PostMapping("/saveOwnerBreakContractPayee")
public Result saveOwnerBreakContractPayee(@RequestBody @Validated CarrierBreakContractSavePayeeParam param) {
breakContractSettlementOwnerService.saveOwnerBreakContractPayee(param);
return Result.ok();
}
@ApiOperation(value = "付款确认",notes = "<br>By:李瑞新")
@PostMapping("/updateOwnerBreakContractPayeeConfirm")
public Result updateOwnerBreakContractPayeeConfirm(@RequestBody @Validated CarrierBreakPayeeConfirmParam param ) {
breakContractSettlementOwnerService.updateOwnerBreakContractPayeeConfirm(param);
return Result.ok();
}
} }
...@@ -63,6 +63,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -63,6 +63,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> getOrderChildBussInfo(String truckNo); List<OrderChild> getOrderChildBussInfo(String truckNo);
List<OrderChild> selectListByOrderGoodsNo(String orderGoodsNo);
Page<OrderChild> pageOrderChild(PageMonitorOrderChildQCParam param); Page<OrderChild> pageOrderChild(PageMonitorOrderChildQCParam param);
List<OrderChild> listOrderChild(List<Integer> status); List<OrderChild> listOrderChild(List<Integer> status);
...@@ -78,5 +80,12 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -78,5 +80,12 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
@Param("list")List<String> orderGoodsNoList @Param("list")List<String> orderGoodsNoList
); );
List<OrderChild> selectResidueWeight(String orderNo); List<OrderChild> selectResidueWeight(String orderNo,Integer status);
/**
* 查询在途运单
* @param orderGoodsNo
* @return
*/
List<OrderChild> selectInTransitOrderChild(String orderGoodsNo);
} }
...@@ -56,4 +56,10 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -56,4 +56,10 @@ 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 updateStopFlagByOrderNo(String orderNo, Integer stopFlag);
boolean updateOrderGoodsStatusAndRollbackResidueWeightByOrderGoodsNo(Integer orderGoodsId, Integer status);
Integer updateOrderGoodsSetResidueWeight(BigDecimal residueWeight, Integer id);
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.breakcontract.BreakContractOwnerRecordMapper; import com.clx.performance.mapper.breakcontract.BreakContractOwnerRecordMapper;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord; import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
...@@ -17,4 +18,6 @@ public interface BreakContractOwnerRecordDao extends BaseDao<BreakContractOwnerR ...@@ -17,4 +18,6 @@ public interface BreakContractOwnerRecordDao extends BaseDao<BreakContractOwnerR
IPage<BreakContractOwnerRecordVO> pageByParam(PageBreakContractOwnerRecordParam param); IPage<BreakContractOwnerRecordVO> pageByParam(PageBreakContractOwnerRecordParam param);
IPage<BreakContractOwnerRecord> pageOwnerBreakContractOwnerRecordList(PageOwnerBreakContractOwnerRecordParam param);
} }
package com.clx.performance.dao.impl; package com.clx.performance.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -259,9 +260,18 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -259,9 +260,18 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
} }
@Override @Override
public List<OrderChild> selectResidueWeight(String orderNo) { public List<OrderChild> selectResidueWeight(String orderNo, Integer status) {
return baseMapper.selectList(lambdaQuery().eq(OrderChild::getOrderNo,orderNo) return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderNo,orderNo)
.lt(OrderChild::getStatus, OrderChildEnum.Status.ARRIVE_SEND.getCode()) .lt(ObjectUtil.isNotEmpty(status),OrderChild::getStatus, status)
);
}
@Override
public List<OrderChild> selectInTransitOrderChild(String orderGoodsNo) {
//查询小于 100(完成)的运单都属于在途
return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderGoodsNo, orderGoodsNo)
.lt(OrderChild::getStatus, OrderChildEnum.Status.COMPLETE.getCode())
); );
} }
...@@ -289,4 +299,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -289,4 +299,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
return baseMapper.selectList(query); return baseMapper.selectList(query);
} }
@Override
public List<OrderChild> selectListByOrderGoodsNo(String orderGoodsNo) {
//查询小于 100(完成)的运单都属于在途
return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderGoodsNo, orderGoodsNo)
.notIn(OrderChild::getStatus, OrderChildEnum.Status.DRIVER_CANCEL.getCode(),OrderChildEnum.Status.PLATFORM_CANCEL.getCode(),OrderChildEnum.Status.OWNER_CANCEL.getCode())
);
}
} }
...@@ -149,4 +149,22 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -149,4 +149,22 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
public boolean updatePendingOrderFreightById(Integer id, BigDecimal pendingOrderFreight) { public boolean updatePendingOrderFreightById(Integer id, BigDecimal pendingOrderFreight) {
return update(lUdWrapper().eq(OrderGoods :: getGoodsId,id).set(OrderGoods :: getPendingOrderFreight,pendingOrderFreight)); return update(lUdWrapper().eq(OrderGoods :: getGoodsId,id).set(OrderGoods :: getPendingOrderFreight,pendingOrderFreight));
} }
@Override
public Boolean updateStopFlagByOrderNo(String orderNo, Integer stopFlag) {
return update(lUdWrapper().eq(OrderGoods :: getOrderNo,orderNo).set(OrderGoods :: getStopFlag,stopFlag));
}
@Override
public boolean updateOrderGoodsStatusAndRollbackResidueWeightByOrderGoodsNo(Integer orderGoodsId, Integer status) {
return update(lUdWrapper().eq(OrderGoods :: getGoodsId,orderGoodsId)
.set(OrderGoods :: getOrderGoodsStatus, status)
.set(OrderGoods::getResidueTransportWeight, BigDecimal.ZERO))
;
}
@Override
public Integer updateOrderGoodsSetResidueWeight(BigDecimal residueWeight, Integer id) {
return baseMapper.updateOrderGoodsSetResidueWeight(residueWeight,id);
}
} }
package com.clx.performance.dao.impl.breakcontract; package com.clx.performance.dao.impl.breakcontract;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.breakcontract.BreakContractOwnerRecordDao; import com.clx.performance.dao.breakcontract.BreakContractOwnerRecordDao;
import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.mapper.breakcontract.BreakContractOwnerRecordMapper; import com.clx.performance.mapper.breakcontract.BreakContractOwnerRecordMapper;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord; import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Objects;
/** /**
* @author liruixin * @author liruixin
* Date 2023-10-24 * Date 2023-10-24
...@@ -24,4 +30,22 @@ public class BreakContractOwnerRecordDaoImpl extends BaseDaoImpl<BreakContractOw ...@@ -24,4 +30,22 @@ public class BreakContractOwnerRecordDaoImpl extends BaseDaoImpl<BreakContractOw
Page<BreakContractOwnerRecordVO> page = Page.of(param.getPage(), param.getPageSize()); Page<BreakContractOwnerRecordVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageByParam(page,param); return baseMapper.pageByParam(page,param);
} }
@Override
public IPage<BreakContractOwnerRecord> pageOwnerBreakContractOwnerRecordList(PageOwnerBreakContractOwnerRecordParam param) {
LambdaQueryWrapper<BreakContractOwnerRecord> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractOwnerRecord :: getOrderNo,param.getOrderNo());
query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractOwnerRecord :: getOwnerUserNo,param.getOwnerUserNo());
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractOwnerRecord :: getBreakContractPartyType,param.getBreakContractPartyType());
query.eq(Objects.nonNull(param.getPayStatus()),BreakContractOwnerRecord :: getPayStatus,param.getPayStatus());
if(Objects.equals(param.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.PLATFORM.getCode())){
query.ge(StringUtils.isNotBlank(param.getBeginTime()), BreakContractOwnerRecord:: getPayTime,param.getBeginTime());
query.le(StringUtils.isNotBlank(param.getEndTime()),BreakContractOwnerRecord :: getPayTime,param.getEndTime());
}else{
query.ge(StringUtils.isNotBlank(param.getBeginTime()), BreakContractOwnerRecord:: getCreateTime,param.getBeginTime());
query.le(StringUtils.isNotBlank(param.getEndTime()),BreakContractOwnerRecord :: getCreateTime,param.getEndTime());
}
query.orderByDesc(BreakContractOwnerRecord::getId);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
} }
...@@ -23,13 +23,17 @@ import java.util.Objects; ...@@ -23,13 +23,17 @@ import java.util.Objects;
public class BreakContractSettlementDriverDaoImpl extends BaseDaoImpl<BreakContractSettlementDriverMapper, BreakContractSettlementDriver, Integer> implements BreakContractSettlementDriverDao { public class BreakContractSettlementDriverDaoImpl extends BaseDaoImpl<BreakContractSettlementDriverMapper, BreakContractSettlementDriver, Integer> implements BreakContractSettlementDriverDao {
@Override @Override
public IPage<BreakContractSettlementDriver> pageCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param) { public IPage<BreakContractSettlementDriver> pageCarrierBreakContractSettlementDriverList(PageCarrierBreakContractSettlementDriverParam param) {
LambdaQueryWrapper<BreakContractSettlementDriver> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BreakContractSettlementDriver> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getChildNo()),BreakContractSettlementDriver :: getChildNo,param.getChildNo()); query.eq(StringUtils.isNotBlank(param.getChildNo()),BreakContractSettlementDriver :: getChildNo,param.getChildNo());
query.eq(StringUtils.isNotBlank(param.getTruckOwnName()),BreakContractSettlementDriver :: getTruckOwnName,param.getTruckOwnName());
query.eq(Objects.nonNull(param.getSettleStatus()),BreakContractSettlementDriver :: getSettleStatus,param.getSettleStatus());
query.eq(Objects.nonNull(param.getTruckOwnUserNo()),BreakContractSettlementDriver :: getTruckOwnUserNo,param.getTruckOwnUserNo()); query.eq(Objects.nonNull(param.getTruckOwnUserNo()),BreakContractSettlementDriver :: getTruckOwnUserNo,param.getTruckOwnUserNo());
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementDriver :: getBreakContractPartyType,param.getBreakContractPartyType()); query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementDriver :: getBreakContractPartyType,param.getBreakContractPartyType());
query.ge(StringUtils.isNotBlank(param.getBeginTime()),BreakContractSettlementDriver :: getCreateTime,param.getBeginTime()); query.ge(StringUtils.isNotBlank(param.getBeginTime()),BreakContractSettlementDriver :: getCreateTime,param.getBeginTime());
query.le(StringUtils.isNotBlank(param.getEndTime()),BreakContractSettlementDriver :: getCreateTime,param.getEndTime()); query.le(StringUtils.isNotBlank(param.getEndTime()),BreakContractSettlementDriver :: getCreateTime,param.getEndTime());
query.orderByDesc(BreakContractSettlementDriver::getId); query.orderByDesc(BreakContractSettlementDriver::getId);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query); return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
} }
} }
...@@ -29,6 +29,8 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra ...@@ -29,6 +29,8 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra
public IPage<BreakContractSettlementOwner> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param) { public IPage<BreakContractSettlementOwner> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param) {
LambdaQueryWrapper<BreakContractSettlementOwner> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BreakContractSettlementOwner> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwner :: getOrderNo,param.getOrderNo()); query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwner :: getOrderNo,param.getOrderNo());
query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractSettlementOwner :: getOwnerUserNo,param.getOwnerUserNo());
query.eq(StringUtils.isNotBlank(param.getOwnerName()),BreakContractSettlementOwner ::getOwnerName ,param.getOwnerName());
query.eq(StringUtils.isNotBlank(param.getSettlementNo()),BreakContractSettlementOwner ::getSettlementNo ,param.getSettlementNo()); query.eq(StringUtils.isNotBlank(param.getSettlementNo()),BreakContractSettlementOwner ::getSettlementNo ,param.getSettlementNo());
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementOwner :: getBreakContractPartyType,param.getBreakContractPartyType()); query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementOwner :: getBreakContractPartyType,param.getBreakContractPartyType());
query.ge(StringUtils.isNotBlank(param.getBeginTime()), BreakContractSettlementOwner:: getCreateTime,param.getBeginTime()); query.ge(StringUtils.isNotBlank(param.getBeginTime()), BreakContractSettlementOwner:: getCreateTime,param.getBeginTime());
...@@ -57,6 +59,7 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra ...@@ -57,6 +59,7 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra
.set(BreakContractSettlementOwner::getPaymentImg, param.getPaymentImg()) .set(BreakContractSettlementOwner::getPaymentImg, param.getPaymentImg())
.set(BreakContractSettlementOwner::getPaymentBankCardNo, param.getPaymentBankCardNo()) .set(BreakContractSettlementOwner::getPaymentBankCardNo, param.getPaymentBankCardNo())
.set(BreakContractSettlementOwner::getPaymentBankName, param.getPaymentBankName()) .set(BreakContractSettlementOwner::getPaymentBankName, param.getPaymentBankName())
.set(BreakContractSettlementOwner::getStatus, param.getStatus())
); );
} }
......
package com.clx.performance.listener;
import cn.hutool.json.JSONUtil;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.mq.OrderCancelMqParam;
import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.OrderCancelService;
import com.msl.common.base.Optional;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 处理货单取消吨数回填
*/
@Slf4j
@Component
public class OrderCancelHandler {
@Autowired
private OrderCancelService orderCancelService;
@RabbitListener(queues = RabbitKeyConstants.ORDER_CANCEL_QUEUE)
public void onMessage(String message) {
log.info("处理订单取消监听器执行,订单No为{}", message);
OrderCancelMqParam param = JSONUtil.toBean(message, OrderCancelMqParam.class);
if (StringUtils.equals(param.getType(), "1")) {
orderCancelService.platformCancelOrder(param.getOrderNo());
} else {
orderCancelService.ownerCancelOrder(param.getOrderNo());
}
return;
// if (StringUtils.isBlank(message)) {
// return;
// }
// orderCancelService.ownerCancelOrder(message);
}
}
...@@ -3,6 +3,7 @@ package com.clx.performance.mapper; ...@@ -3,6 +3,7 @@ package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.param.feign.RollbackOrderWeightParam;
import com.clx.order.params.PageOrderGoodsListParam; import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.sqlProvider.OrderGoodsSqlProvider; import com.clx.performance.sqlProvider.OrderGoodsSqlProvider;
...@@ -12,6 +13,7 @@ import com.clx.performance.vo.pc.OrderGoodsVO; ...@@ -12,6 +13,7 @@ import com.clx.performance.vo.pc.OrderGoodsVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update; import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -55,4 +57,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -55,4 +57,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "saveBatchEntity") @SelectProvider(type = OrderGoodsSqlProvider.class, method = "saveBatchEntity")
void saveBatchEntity(List<OrderGoods> orderGoodsList); void saveBatchEntity(List<OrderGoods> orderGoodsList);
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoodsSetResidueWeight")
Integer updateOrderGoodsSetResidueWeight(@Param(value = "residueWeight") BigDecimal residueWeight, @Param(value = "id") Integer id);
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn; import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey; import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
...@@ -85,6 +86,8 @@ public class OrderChild implements HasKey<Integer> { ...@@ -85,6 +86,8 @@ public class OrderChild implements HasKey<Integer> {
private LocalDateTime expectSendTime; //预计到达货源地时间 private LocalDateTime expectSendTime; //预计到达货源地时间
private LocalDateTime expectReceiveTime; //预计到达目的地时间 private LocalDateTime expectReceiveTime; //预计到达目的地时间
private Integer settlementAccountPeriod; //结算账期 1拉运完成结 2月结
private LocalDateTime createTime; //创建时间 private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间 private LocalDateTime modifiedTime; //修改时间
......
...@@ -165,6 +165,15 @@ public class OrderGoods implements HasKey<Integer> { ...@@ -165,6 +165,15 @@ public class OrderGoods implements HasKey<Integer> {
@ApiModelProperty("创建人姓名") @ApiModelProperty("创建人姓名")
private String userName; private String userName;
@TableField("settlement_account_period")
@ApiModelProperty("结算账期 1拉运完成结 2月结")
private String settlementAccountPeriod;
@TableField("stop_flag")
@ApiModelProperty("是否暂停 0:否 1:是")
private Integer stopFlag;
@TableField("create_time") @TableField("create_time")
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private LocalDateTime createTime; private LocalDateTime createTime;
......
...@@ -31,9 +31,9 @@ public class BreakContractDriverRecord implements HasKey<Integer> { ...@@ -31,9 +31,9 @@ public class BreakContractDriverRecord implements HasKey<Integer> {
@ApiModelProperty("触发类型:1系统触发 2手动触发") @ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType; private Integer triggerType;
@TableField("breach_contract_party_type") @TableField("break_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3车主") @ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType; private Integer breakContractPartyType;
@TableField("break_no") @TableField("break_no")
@ApiModelProperty(value = "违约单号", example = "") @ApiModelProperty(value = "违约单号", example = "")
......
...@@ -31,9 +31,9 @@ public class BreakContractOwnerRecord implements HasKey<Integer> { ...@@ -31,9 +31,9 @@ public class BreakContractOwnerRecord implements HasKey<Integer> {
@ApiModelProperty("触发类型:1系统触发 2手动触发") @ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType; private Integer triggerType;
@TableField("breach_contract_party_type") @TableField("break_contract_party_type")
@ApiModelProperty("违约方类型:1平台 2货主 3车主") @ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breachContractPartyType; private Integer breakContractPartyType;
@TableField("break_no") @TableField("break_no")
@ApiModelProperty(value = "违约单号", example = "") @ApiModelProperty(value = "违约单号", example = "")
...@@ -59,6 +59,14 @@ public class BreakContractOwnerRecord implements HasKey<Integer> { ...@@ -59,6 +59,14 @@ public class BreakContractOwnerRecord implements HasKey<Integer> {
@ApiModelProperty("结算单编号") @ApiModelProperty("结算单编号")
private String settlementNo; private String settlementNo;
@TableField("pay_status")
@ApiModelProperty("缴费状态:0未缴费;1已缴费")
private Integer payStatus;
@TableField("pay_time")
@ApiModelProperty("支付时间")
private LocalDateTime payTime;
@TableField("remark") @TableField("remark")
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remark; private String remark;
......
...@@ -31,6 +31,10 @@ public class BreakContractSettlementDriver implements HasKey<Integer> { ...@@ -31,6 +31,10 @@ public class BreakContractSettlementDriver implements HasKey<Integer> {
@ApiModelProperty("违约方类型:1平台 2货主 3车主") @ApiModelProperty("违约方类型:1平台 2货主 3车主")
private Integer breakContractPartyType; private Integer breakContractPartyType;
@TableField("break_no")
@ApiModelProperty("违约单号")
private String breakNo;
@TableField("settlement_no") @TableField("settlement_no")
@ApiModelProperty("结算单编号") @ApiModelProperty("结算单编号")
private String settlementNo; private String settlementNo;
...@@ -64,7 +68,7 @@ public class BreakContractSettlementDriver implements HasKey<Integer> { ...@@ -64,7 +68,7 @@ public class BreakContractSettlementDriver implements HasKey<Integer> {
private String breakContractRemark; private String breakContractRemark;
@TableField("settle_status") @TableField("settle_status")
@ApiModelProperty("结算状态 0待结算;1已结算") @ApiModelProperty("结算状态 1待结算;2已结算")
private Integer settleStatus; private Integer settleStatus;
@TableField("settle_platform") @TableField("settle_platform")
......
package com.clx.performance.service; package com.clx.performance.service;
public interface OrderCancelService { public interface OrderCancelService {
void platformCancelOrderPre(String orderNo);
void platformCancelOrder(String orderNo);
void ownerCancelOrderPre(String orderNo);
void ownerCancelOrder(String orderNo);
} }
...@@ -36,11 +36,31 @@ public interface OrderGoodsService { ...@@ -36,11 +36,31 @@ public interface OrderGoodsService {
List<OrderGoods> getOrderGoodsList(String orderNo, LocalDateTime lastArriveSendTime); List<OrderGoods> getOrderGoodsList(String orderNo, LocalDateTime lastArriveSendTime);
String orderCancel(String orderNo); /**
* 获取订单取消的时候订单样式
* @param orderNo
* @return
*/
String orderCancelStyle(String orderNo);
BigDecimal orderCancelResidueWeight(String orderNo,String optionType); BigDecimal orderCancelResidueWeight(String orderNo,String optionType);
void updateEditOrderGoods(UpdateEditOrderGoodsParam param); void updateEditOrderGoods(UpdateEditOrderGoodsParam param);
void updateOrderGoodsPrice(UpdateOrderGoodsPriceParam param); void updateOrderGoodsPrice(UpdateOrderGoodsPriceParam param);
Boolean updateOrderGoodsStopFlag(String orderNo,Integer stopFlag);
/**
* 获取货单取消的时候弹窗样式
* @param orderGoodsNo
* @return
*/
String orderGoodsCancelStyle(String orderGoodsNo);
/**
* 取消货单
* @param orderGoodsNo
*/
void orderGoodsCancel(String orderGoodsNo);
} }
...@@ -3,7 +3,9 @@ package com.clx.performance.service.breakcontract; ...@@ -3,7 +3,9 @@ package com.clx.performance.service.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam; import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO;
/** /**
* @author liruixin * @author liruixin
...@@ -15,5 +17,7 @@ public interface BreakContractOwnerRecordService { ...@@ -15,5 +17,7 @@ public interface BreakContractOwnerRecordService {
IPage<BreakContractOwnerRecordVO> pageRecord(PageBreakContractOwnerRecordParam param); IPage<BreakContractOwnerRecordVO> pageRecord(PageBreakContractOwnerRecordParam param);
IPage<PageOwnerBreakContractOwnerRecordVO> pageOwnerRecord(PageOwnerBreakContractOwnerRecordParam param);
} }
...@@ -12,6 +12,7 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook; ...@@ -12,6 +12,7 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
* Time 16:02 * Time 16:02
*/ */
public interface BreakContractSettlementOwnerService { public interface BreakContractSettlementOwnerService {
IPage<PageCarrierBreakContractSettlementOwnerVO> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param); IPage<PageCarrierBreakContractSettlementOwnerVO> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param);
...@@ -26,4 +27,12 @@ public interface BreakContractSettlementOwnerService { ...@@ -26,4 +27,12 @@ public interface BreakContractSettlementOwnerService {
void saveCarrierBreakContractPayee(CarrierBreakContractSavePayeeParam param); void saveCarrierBreakContractPayee(CarrierBreakContractSavePayeeParam param);
void updateCarrierBreakContractPayeeConfirm(CarrierBreakPayeeConfirmParam param); void updateCarrierBreakContractPayeeConfirm(CarrierBreakPayeeConfirmParam param);
void updateConfirmSettlement(OwnerConfirmSettlementParam param);
void saveOwnerBreakContractPayee(CarrierBreakContractSavePayeeParam param);
void updateOwnerBreakContractPayeeConfirm(CarrierBreakPayeeConfirmParam param);
} }
...@@ -172,6 +172,12 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -172,6 +172,12 @@ public class OrderChildServiceImpl implements OrderChildService {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow( OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow(
PerformanceResultEnum.ORDER_INVALID); PerformanceResultEnum.ORDER_INVALID);
if(Objects.equals(orderGoods.getStopFlag(),OrderGoodsStopEnum.Status.YES.getCode())){
log.warn("货单已暂停");
throw new ServiceSystemException(PerformanceResultEnum.ORDER_INVALID,"当前货单无效");
}
// 状态验证 // 状态验证
if (!Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.PAYING.getCode()) && if (!Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.PAYING.getCode()) &&
!Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode())) { !Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode())) {
...@@ -1278,7 +1284,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1278,7 +1284,7 @@ public class OrderChildServiceImpl implements OrderChildService {
if (count > 1) {return;} if (count > 1) {return;}
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) <= 0){ if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) <= 0){
orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.SUCCESS.getCode()); //orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.SUCCESS.getCode());
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.EXPIRE.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.EXPIRE.getCode());
} }
......
...@@ -170,7 +170,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -170,7 +170,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
} }
@Override @Override
public String orderCancel(String orderNo) { public String orderCancelStyle(String orderNo) {
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
Integer orderStatus = orderInfoFeign.getOrderStatus(); Integer orderStatus = orderInfoFeign.getOrderStatus();
...@@ -213,12 +213,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -213,12 +213,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
public BigDecimal orderCancelResidueWeight(String orderNo, String optionType) { public BigDecimal orderCancelResidueWeight(String orderNo, String optionType) {
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
if (StringUtils.equals(optionType,"1")) { if (StringUtils.equals(optionType, "1")) {
return new BigDecimal(orderInfoFeign.getResidueWeight()); return new BigDecimal(orderInfoFeign.getResidueWeight());
} else { } else {
String residueWeight = orderInfoFeign.getResidueWeight(); String residueWeight = orderInfoFeign.getResidueWeight();
List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo); List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
BigDecimal childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal::add).get(); BigDecimal childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal orderGoodsResidueWeight = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo).stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal::add).get(); BigDecimal orderGoodsResidueWeight = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo).stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal::add).get();
return childResidueWeight.add(new BigDecimal(residueWeight)).add(orderGoodsResidueWeight); return childResidueWeight.add(new BigDecimal(residueWeight)).add(orderGoodsResidueWeight);
...@@ -235,13 +235,61 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -235,13 +235,61 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateOrderGoodsPrice(UpdateOrderGoodsPriceParam param) { public void updateOrderGoodsPrice(UpdateOrderGoodsPriceParam param) {
OrderGoods orderGoods= orderGoodsDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); OrderGoods orderGoods = orderGoodsDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
BigDecimal oldPendingOrderFreight = orderGoods.getPendingOrderFreight().divide(new BigDecimal("100")); BigDecimal oldPendingOrderFreight = orderGoods.getPendingOrderFreight().divide(new BigDecimal("100"));
orderGoodsDao.updatePendingOrderFreightById(param.getId(),param.getPendingOrderFreight()); orderGoodsDao.updatePendingOrderFreightById(param.getId(), param.getPendingOrderFreight());
BigDecimal newPendingOrderFreight = param.getPendingOrderFreight().divide(new BigDecimal("100")); BigDecimal newPendingOrderFreight = param.getPendingOrderFreight().divide(new BigDecimal("100"));
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//记录货单调价日志 //记录货单调价日志
orderGoodsLogService.saveLog(orderGoods.getOrderGoodsNo(),loginUserInfo.getUserNo(),loginUserInfo.getUserName(), orderGoodsLogService.saveLog(orderGoods.getOrderGoodsNo(),loginUserInfo.getUserNo(),loginUserInfo.getUserName(),
OrderGoodsLogsEnum.Type.ADJUST_PRICE.getName(),String.format("调价前%s元,调价后%s元",oldPendingOrderFreight,newPendingOrderFreight) ); OrderGoodsLogsEnum.Type.ADJUST_PRICE.getName(),String.format("调价前%s元,调价后%s元",oldPendingOrderFreight,newPendingOrderFreight) );
} }
@Override
public Boolean updateOrderGoodsStopFlag(String orderNo, Integer stopFlag) {
return orderGoodsDao.updateStopFlagByOrderNo(orderNo, stopFlag);
}
@Override
public String orderGoodsCancelStyle(String orderGoodsNo) {
List<OrderChild> orderChildren = orderChildDao.selectListByOrderGoodsNo(orderGoodsNo);
if (CollectionUtils.isNotEmpty(orderChildren)) {
return "selectTruck";
} else {
return "onlyRemark";
}
}
@Override
public void orderGoodsCancel(String orderGoodsNo) {
Optional<OrderGoods> optional = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo);
if (!optional.isPresent()) {
return;
}
OrderGoods orderGoods = optional.get();
List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
BigDecimal sum = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(orderChildList)) {
sum = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
BigDecimal residueWeight = orderGoods.getResidueTransportWeight().add(sum);
param.setResidueWeight(residueWeight);
param.setOrderNo(orderGoods.getOrderNo());
if (!orderGoods.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
} else {
if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.PLATFORM.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(residueWeight);
} else if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.OWN.getCode())) {
param.setOwnResidueCarryWeight(residueWeight);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
}
log.info("取消货单,参数:{}", JSONUtil.parse(param));
orderFeign.rollbackOrderWeight(param);
}
} }
...@@ -3,15 +3,22 @@ package com.clx.performance.service.impl.breakcontract; ...@@ -3,15 +3,22 @@ package com.clx.performance.service.impl.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao; import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
import com.clx.performance.dao.breakcontract.BreakContractSettlementDriverDao;
import com.clx.performance.dao.breakcontract.BreakContractSettlementDriverDetailDao;
import com.clx.performance.enums.BreakContractRecordEnum; import com.clx.performance.enums.BreakContractRecordEnum;
import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.breakcontract.BreakContractDriverRecord; import com.clx.performance.model.breakcontract.BreakContractDriverRecord;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail;
import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriverRecordParam; import com.clx.performance.param.app.breakcontract.DriverPageBreakContractDriverRecordParam;
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractDriverRecordAddParam; import com.clx.performance.param.pc.breakcontract.carrier.BreakContractDriverRecordAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractDriverRecordParam;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService; import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.service.impl.UniqueOrderNumService; import com.clx.performance.service.impl.UniqueOrderNumService;
import com.clx.performance.struct.breakcontract.BreakContractSettlementDriverDetailStruct;
import com.clx.performance.struct.breakcontract.BreakContractSettlementDriverStruct;
import com.clx.performance.vo.app.breakcontract.DriverBreakContractDriverRecordVO; import com.clx.performance.vo.app.breakcontract.DriverBreakContractDriverRecordVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractDriverRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractDriverRecordVO;
import com.msl.common.utils.LocalDateTimeUtils; import com.msl.common.utils.LocalDateTimeUtils;
...@@ -20,6 +27,7 @@ import com.msl.user.utils.TokenUtil; ...@@ -20,6 +27,7 @@ import com.msl.user.utils.TokenUtil;
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.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -40,13 +48,22 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive ...@@ -40,13 +48,22 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
private OrderChildDao orderChildDao; private OrderChildDao orderChildDao;
@Autowired @Autowired
private UniqueOrderNumService uniqueOrderNumService; private UniqueOrderNumService uniqueOrderNumService;
@Autowired
private BreakContractSettlementDriverDetailStruct breakContractSettlementDriverDetailStruct;
@Autowired
private BreakContractSettlementDriverStruct breakContractSettlementDriverStruct;
@Autowired
private BreakContractSettlementDriverDao breakContractSettlementDriverDao;
@Autowired
private BreakContractSettlementDriverDetailDao breakContractSettlementDriverDetailDao;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void saveRecord(BreakContractDriverRecordAddParam param) { public void saveRecord(BreakContractDriverRecordAddParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo(); Long userNo = loginUserInfo.getUserNo();
String breakNo = childNoGenerate(); String breakNo = "WYD"+childNoGenerate();
OrderChild orderChild = orderChildDao.getByChildNo(param.getChildNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND); OrderChild orderChild = orderChildDao.getByChildNo(param.getChildNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
LocalDateTime time = LocalDateTime.now(); LocalDateTime time = LocalDateTime.now();
...@@ -54,15 +71,15 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive ...@@ -54,15 +71,15 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
BreakContractDriverRecord record = new BreakContractDriverRecord(); BreakContractDriverRecord record = new BreakContractDriverRecord();
record.setBreakNo(breakNo); record.setBreakNo(breakNo);
record.setTriggerType(BreakContractRecordEnum.TriggerType.MANUAL.getCode()); record.setTriggerType(BreakContractRecordEnum.TriggerType.MANUAL.getCode());
if (Objects.equals(param.getBreachContractPartyType(), BreakContractRecordEnum.BreachContractPartyType.DRIVER.getCode())) { if (Objects.equals(param.getBreakContractPartyType(), BreakContractRecordEnum.BreakContractPartyType.DRIVER.getCode())) {
record.setBreachContractPartyType(BreakContractRecordEnum.BreachContractPartyType.DRIVER.getCode()); record.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.DRIVER.getCode());
if (param.getTimeLimit() != null) { if (param.getTimeLimit() != null) {
record.setTimeLimit(param.getTimeLimit()); record.setTimeLimit(param.getTimeLimit());
record.setLimitTime(time.plusSeconds(param.getTimeLimit().multiply(BigDecimal.valueOf(3600L)).intValue())); record.setLimitTime(time.plusSeconds(param.getTimeLimit().multiply(BigDecimal.valueOf(3600L)).intValue()));
} }
} }
else { else {
record.setBreachContractPartyType(BreakContractRecordEnum.BreachContractPartyType.PLATFORM.getCode()); record.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.PLATFORM.getCode());
} }
record.setChildNo(param.getChildNo()); record.setChildNo(param.getChildNo());
record.setFigure(param.getFigure()); record.setFigure(param.getFigure());
...@@ -78,7 +95,20 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive ...@@ -78,7 +95,20 @@ public class BreakContractDriverRecordServiceImpl implements BreakContractDrive
record.setCreateName(loginUserInfo.getUserName()); record.setCreateName(loginUserInfo.getUserName());
record.setCreateTime(time); record.setCreateTime(time);
//车主违约计费明细
BreakContractSettlementDriverDetail breakDriverDetail = breakContractSettlementDriverDetailStruct.convert(record);
String settlementNo = "WYJSD"+childNoGenerate();
breakDriverDetail.setSettlementNo(settlementNo);
//车主违约结算单
BreakContractSettlementDriver breakDriver = breakContractSettlementDriverStruct.convert(breakDriverDetail);
breakDriver.setSettleStatus(BreakContractSettlementDriverEnum.SettleStatus.NO.getCode());
breakDriver.setSettlePlatform(BreakContractSettlementDriverEnum.SettlePlatform.MSL.getCode());
record.setSettlementNo(settlementNo);
breakContractDriverRecordDao.saveEntity(record); breakContractDriverRecordDao.saveEntity(record);
breakContractSettlementDriverDao.saveEntity(breakDriver);
breakContractSettlementDriverDetailDao.saveEntity(breakDriverDetail);
} }
@Override @Override
......
...@@ -2,27 +2,35 @@ package com.clx.performance.service.impl.breakcontract; ...@@ -2,27 +2,35 @@ package com.clx.performance.service.impl.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.dao.breakcontract.BreakContractOwnerRecordDao; import com.clx.performance.dao.breakcontract.*;
import com.clx.performance.enums.BreakContractRecordEnum; import com.clx.performance.enums.BreakContractRecordEnum;
import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.enums.BreakContractSettlementOwnerEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.extranal.user.OrderService; import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.extranal.user.OwnerInfoService; import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord; import com.clx.performance.model.breakcontract.*;
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam; import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRecordAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRecordParam;
import com.clx.performance.param.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordParam;
import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService; import com.clx.performance.service.breakcontract.BreakContractOwnerRecordService;
import com.clx.performance.service.impl.UniqueOrderNumService; import com.clx.performance.service.impl.UniqueOrderNumService;
import com.clx.performance.struct.breakcontract.*;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRecordVO;
import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO;
import com.clx.user.vo.feign.OwnerInfoFeignVO; import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.utils.LocalDateTimeUtils; import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
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.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -32,24 +40,34 @@ import java.util.Objects; ...@@ -32,24 +40,34 @@ import java.util.Objects;
*/ */
@Slf4j @Slf4j
@Service @Service
@AllArgsConstructor
public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerRecordService { public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerRecordService {
@Autowired
private BreakContractOwnerRecordDao breakContractOwnerRecordDao;
@Autowired private final BreakContractOwnerRecordDao breakContractOwnerRecordDao;
private OrderService orderService;
@Autowired private final OrderService orderService;
private UniqueOrderNumService uniqueOrderNumService;
@Autowired private final UniqueOrderNumService uniqueOrderNumService;
private OwnerInfoService ownerInfoService;
private final OwnerInfoService ownerInfoService;
private final BreakContractOwnerRecordStruct breakContractOwnerRecordStruct;
private final BreakContractSettlementOwnerDetailStruct breakContractSettlementOwnerDetailStruct;
private final BreakContractSettlementOwnerStruct breakContractSettlementOwnerStruct;
private final BreakContractSettlementOwnerDao breakContractSettlementOwnerDao;
private final BreakContractSettlementOwnerDetailDao breakContractSettlementOwnerDetailDao;
@Override @Override
public void saveRecord(BreakContractOwnerRecordAddParam param) { public void saveRecord(BreakContractOwnerRecordAddParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo(); Long userNo = loginUserInfo.getUserNo();
String breakNo = childNoGenerate(); String breakNo = "WYD"+childNoGenerate();
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(param.getOrderNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); FeignOrderInfoVO orderInfo = orderService.getOrderInfo(param.getOrderNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OwnerInfoFeignVO ownerInfo = ownerInfoService.getOwnerInfo(orderInfo.getOwnerUserNo()); OwnerInfoFeignVO ownerInfo = ownerInfoService.getOwnerInfo(orderInfo.getOwnerUserNo());
...@@ -57,11 +75,11 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -57,11 +75,11 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
BreakContractOwnerRecord record = new BreakContractOwnerRecord(); BreakContractOwnerRecord record = new BreakContractOwnerRecord();
record.setBreakNo(breakNo); record.setBreakNo(breakNo);
record.setTriggerType(BreakContractRecordEnum.TriggerType.MANUAL.getCode()); record.setTriggerType(BreakContractRecordEnum.TriggerType.MANUAL.getCode());
if (Objects.equals(param.getBreachContractPartyType(), BreakContractRecordEnum.BreachContractPartyType.OWNER.getCode())) { if (Objects.equals(param.getBreakContractPartyType(), BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode())) {
record.setBreachContractPartyType(BreakContractRecordEnum.BreachContractPartyType.OWNER.getCode()); record.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode());
} }
else { else {
record.setBreachContractPartyType(BreakContractRecordEnum.BreachContractPartyType.PLATFORM.getCode()); record.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.PLATFORM.getCode());
} }
record.setOrderNo(param.getOrderNo()); record.setOrderNo(param.getOrderNo());
...@@ -74,7 +92,20 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -74,7 +92,20 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
record.setCreateBy(userNo); record.setCreateBy(userNo);
record.setCreateName(loginUserInfo.getUserName()); record.setCreateName(loginUserInfo.getUserName());
//货主违约计费明细
BreakContractSettlementOwnerDetail breakOwnerDetail = breakContractSettlementOwnerDetailStruct.convert(record);
String settlementNo = "WYJSD"+childNoGenerate();
breakOwnerDetail.setSettlementNo(settlementNo);
//货主违约结算单
BreakContractSettlementOwner breakOwner = breakContractSettlementOwnerStruct.convert(breakOwnerDetail);
breakOwner.setStatus(BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode());
record.setSettlementNo(settlementNo);
breakContractOwnerRecordDao.saveEntity(record); breakContractOwnerRecordDao.saveEntity(record);
breakContractSettlementOwnerDao.saveEntity(breakOwner);
breakContractSettlementOwnerDetailDao.saveEntity(breakOwnerDetail);
} }
@Override @Override
...@@ -91,4 +122,13 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -91,4 +122,13 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), LocalDateTimeUtils.DATE_DAY)); LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), LocalDateTimeUtils.DATE_DAY));
} }
@Override
public IPage<PageOwnerBreakContractOwnerRecordVO> pageOwnerRecord(PageOwnerBreakContractOwnerRecordParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
param.setOwnerUserNo(loginUserInfo.getUserNo());
IPage<BreakContractOwnerRecord> ownerRecord = breakContractOwnerRecordDao.pageOwnerBreakContractOwnerRecordList(param);
List<PageOwnerBreakContractOwnerRecordVO> ownerRecordVO = breakContractOwnerRecordStruct.covertToOwnerList(ownerRecord.getRecords());
return new Page<PageOwnerBreakContractOwnerRecordVO>().setRecords(ownerRecordVO).setTotal(ownerRecord.getTotal()).setPages(ownerRecord.getPages());
}
} }
...@@ -58,7 +58,7 @@ public class BreakContractSettlementDriverDetailServiceImpl implements BreakCon ...@@ -58,7 +58,7 @@ public class BreakContractSettlementDriverDetailServiceImpl implements BreakCon
fieldList.add(new ExcelField(3, "运单编号", "childNo", 5000)); fieldList.add(new ExcelField(3, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(4, "司机名称", "driverName", 5000)); fieldList.add(new ExcelField(4, "司机名称", "driverName", 5000));
fieldList.add(new ExcelField(5, "违约方", "breachContractPartyType", 5000)); fieldList.add(new ExcelField(5, "违约方", "breakContractPartyType", 5000));
fieldList.add(new ExcelField(6, "违约金额", "figure", 5000)); fieldList.add(new ExcelField(6, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(7, "创建人", "createName", 5000)); fieldList.add(new ExcelField(7, "创建人", "createName", 5000));
fieldList.add(new ExcelField(8, "创建时间", "createTime", 5000)); fieldList.add(new ExcelField(8, "创建时间", "createTime", 5000));
......
...@@ -57,7 +57,7 @@ public class BreakContractSettlementDriverServiceImpl implements BreakContractSe ...@@ -57,7 +57,7 @@ public class BreakContractSettlementDriverServiceImpl implements BreakContractSe
fieldList.add(new ExcelField(3, "车主编号", "truckOwnerNo", 5000)); fieldList.add(new ExcelField(3, "车主编号", "truckOwnerNo", 5000));
fieldList.add(new ExcelField(4, "司机名称", "driverName", 5000)); fieldList.add(new ExcelField(4, "司机名称", "driverName", 5000));
fieldList.add(new ExcelField(5, "违约方", "breachContractPartyType", 5000)); fieldList.add(new ExcelField(5, "违约方", "breakContractPartyType", 5000));
fieldList.add(new ExcelField(6, "违约金额", "figure", 5000)); fieldList.add(new ExcelField(6, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(7, "创建人", "createName", 5000)); fieldList.add(new ExcelField(7, "创建人", "createName", 5000));
fieldList.add(new ExcelField(8, "创建时间", "createTime", 5000)); fieldList.add(new ExcelField(8, "创建时间", "createTime", 5000));
......
...@@ -56,7 +56,7 @@ public class BreakContractSettlementOwnerDetailServiceImpl implements BreakCont ...@@ -56,7 +56,7 @@ public class BreakContractSettlementOwnerDetailServiceImpl implements BreakCont
fieldList.add(new ExcelField(2, "货主编号", "ownUserNo", 5000)); fieldList.add(new ExcelField(2, "货主编号", "ownUserNo", 5000));
fieldList.add(new ExcelField(3, "货主名称", "ownerName", 5000)); fieldList.add(new ExcelField(3, "货主名称", "ownerName", 5000));
fieldList.add(new ExcelField(4, "违约方", "breachContractPartyType", 5000)); fieldList.add(new ExcelField(4, "违约方", "breakContractPartyType", 5000));
fieldList.add(new ExcelField(5, "违约金额", "figure", 5000)); fieldList.add(new ExcelField(5, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(6, "创建人", "createName", 5000)); fieldList.add(new ExcelField(6, "创建人", "createName", 5000));
fieldList.add(new ExcelField(7, "创建时间", "createTime", 5000)); fieldList.add(new ExcelField(7, "创建时间", "createTime", 5000));
......
...@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.breakcontract.BreakContractSettlementLogDao; import com.clx.performance.dao.breakcontract.BreakContractSettlementLogDao;
import com.clx.performance.dao.breakcontract.BreakContractSettlementOwnerDao; import com.clx.performance.dao.breakcontract.BreakContractSettlementOwnerDao;
import com.clx.performance.enums.BreakContractSettlementLogEnum; import com.clx.performance.enums.*;
import com.clx.performance.enums.BreakContractSettlementOwnerEnum;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.breakcontract.BreakContractSettlementLog; import com.clx.performance.model.breakcontract.BreakContractSettlementLog;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwner; import com.clx.performance.model.breakcontract.BreakContractSettlementOwner;
import com.clx.performance.param.pc.breakcontract.carrier.*; import com.clx.performance.param.pc.breakcontract.carrier.*;
...@@ -76,7 +73,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -76,7 +73,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
fieldList.add(new ExcelField(2, "货主编号", "ownUserNo", 5000)); fieldList.add(new ExcelField(2, "货主编号", "ownUserNo", 5000));
fieldList.add(new ExcelField(3, "货主名称", "ownerName", 5000)); fieldList.add(new ExcelField(3, "货主名称", "ownerName", 5000));
fieldList.add(new ExcelField(4, "违约方", "breachContractPartyType", 5000)); fieldList.add(new ExcelField(4, "违约方", "breakContractPartyType", 5000));
fieldList.add(new ExcelField(5, "违约金额", "figure", 5000)); fieldList.add(new ExcelField(5, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(6, "状态", "statusMsg", 5000)); fieldList.add(new ExcelField(6, "状态", "statusMsg", 5000));
fieldList.add(new ExcelField(7, "结算单号", "settlementNo", 5000)); fieldList.add(new ExcelField(7, "结算单号", "settlementNo", 5000));
...@@ -171,6 +168,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -171,6 +168,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED); throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
} }
param.setStatus(BreakContractSettlementOwnerEnum.Status.OWNER_CONFIRMED_PLATFORM_PAYMENT.getCode());
breakContractSettlementOwnerDao.saveCarrierBreakContractPayee(param); breakContractSettlementOwnerDao.saveCarrierBreakContractPayee(param);
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
...@@ -192,7 +190,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -192,7 +190,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----平台付款 //保存结算单日志----平台确认付款
breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(), breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(),
BreakContractSettlementLogEnum.Type.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode(),BreakContractSettlementLogEnum.Type.PLATFORM_CONFIRMED_OWNER_PAYMENT.getMsg(), BreakContractSettlementLogEnum.Type.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode(),BreakContractSettlementLogEnum.Type.PLATFORM_CONFIRMED_OWNER_PAYMENT.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName()); OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
...@@ -202,4 +200,63 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -202,4 +200,63 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
BreakContractSettlementLogEnum.Type.COMPLETED.getCode(),BreakContractSettlementLogEnum.Type.COMPLETED.getMsg(), BreakContractSettlementLogEnum.Type.COMPLETED.getCode(),BreakContractSettlementLogEnum.Type.COMPLETED.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName()); OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
} }
@Override
public void updateConfirmSettlement(OwnerConfirmSettlementParam param) {
BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.OWNER_TO_BE_CONFIRMED.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
}
int status = BreakContractSettlementOwnerEnum.Status.SHIPPER_TO_PAYMENT.getCode();
if(Objects.equals(settlementOwner.getBreakContractPartyType(), BreakContractSettlementDriverEnum.BreakContractPartyType.PLATFORM.getCode())){
status = BreakContractSettlementOwnerEnum.Status.PLATFORM_TO_PAYMENT.getCode();
}
breakContractSettlementOwnerDao.updateStatus(param.getId(),BreakContractSettlementOwnerEnum.Status.OWNER_TO_BE_CONFIRMED.getCode(),status);
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----确认结算单
breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(),
BreakContractSettlementLogEnum.Type.OWNER_TO_BE_CONFIRMED.getCode(),BreakContractSettlementLogEnum.Type.OWNER_TO_BE_CONFIRMED.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
}
@Override
public void saveOwnerBreakContractPayee(CarrierBreakContractSavePayeeParam param) {
BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.SHIPPER_TO_PAYMENT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
}
param.setStatus(BreakContractSettlementOwnerEnum.Status.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode());
breakContractSettlementOwnerDao.saveCarrierBreakContractPayee(param);
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----货主付款
breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(),
BreakContractSettlementLogEnum.Type.SHIPPER_TO_PAYMENT.getCode(),BreakContractSettlementLogEnum.Type.SHIPPER_TO_PAYMENT.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
}
@Override
public void updateOwnerBreakContractPayeeConfirm(CarrierBreakPayeeConfirmParam param) {
BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.OWNER_CONFIRMED_PLATFORM_PAYMENT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
}
breakContractSettlementOwnerDao.updateStatus(param.getId(),BreakContractSettlementOwnerEnum.Status.OWNER_CONFIRMED_PLATFORM_PAYMENT.getCode(),BreakContractSettlementOwnerEnum.Status.COMPLETED.getCode());
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----货主确认付款
breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(),
BreakContractSettlementLogEnum.Type.OWNER_CONFIRMED_PLATFORM_PAYMENT.getCode(),BreakContractSettlementLogEnum.Type.OWNER_CONFIRMED_PLATFORM_PAYMENT.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
//保存结算单日志----已完结
breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(),
BreakContractSettlementLogEnum.Type.COMPLETED.getCode(),BreakContractSettlementLogEnum.Type.COMPLETED.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
}
} }
package com.clx.performance.sqlProvider; package com.clx.performance.sqlProvider;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.param.feign.RollbackOrderWeightParam;
import com.clx.order.params.PageOrderGoodsListParam; import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.enums.OrderGoodsStatusEnum; import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsStopEnum;
import com.clx.performance.enums.PendingOrderWayStatusEnum;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.vo.app.OrderGoodsAPPVO; import com.clx.performance.vo.app.OrderGoodsAPPVO;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL; import org.apache.ibatis.jdbc.SQL;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -91,10 +96,10 @@ public class OrderGoodsSqlProvider { ...@@ -91,10 +96,10 @@ public class OrderGoodsSqlProvider {
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight," + "a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight," +
"a.user_no,a.user_name"); "a.user_no,a.user_name");
FROM("order_goods a"); FROM("order_goods a");
WHERE("a.stop_flag = "+ OrderGoodsStopEnum.Status.NO.getCode());
WHERE("a.pending_order_way = 1"); WHERE("a.pending_order_way = " + PendingOrderWayStatusEnum.Status.GK.getCode());
WHERE("a.last_arrive_send_time >= now()"); WHERE("a.last_arrive_send_time >= now()");
WHERE("(a.order_goods_status = 20 or a.order_goods_status = 30)"); WHERE("(a.order_goods_status = "+OrderGoodsStatusEnum.Status.PAYING.getCode()+" or a.order_goods_status = "+OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode()+")");
WHERE("a.residue_transport_weight >0"); WHERE("a.residue_transport_weight >0");
ORDER_BY("a.pending_order_time desc"); ORDER_BY("a.pending_order_time desc");
}}.toString(); }}.toString();
...@@ -117,9 +122,11 @@ public class OrderGoodsSqlProvider { ...@@ -117,9 +122,11 @@ public class OrderGoodsSqlProvider {
"date_format(a.create_time, '%Y-%m-%d %H:%i:%s') as create_time," + "date_format(a.create_time, '%Y-%m-%d %H:%i:%s') as create_time," +
" date_format(a.modified_time, '%Y-%m-%d %H:%i:%s') as modified_time," + " date_format(a.modified_time, '%Y-%m-%d %H:%i:%s') as modified_time," +
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name," + "a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name," +
"a.pending_order_freight,a.user_no,a.user_name from order_goods a where a.last_arrive_send_time >= now() and (a.order_goods_status = 20 or a.order_goods_status = 30)" + "a.pending_order_freight,a.user_no,a.user_name from order_goods a " +
"where a.stop_flag = "+ OrderGoodsStopEnum.Status.NO.getCode()+" and a.last_arrive_send_time >= now() and (a.order_goods_status = "+OrderGoodsStatusEnum.Status.PAYING.getCode()+
" or a.order_goods_status = "+OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode()+")" +
"and a.residue_transport_weight > 0" + "and a.residue_transport_weight > 0" +
" and a.pending_order_way = 2 and a.order_goods_no in ("); " and a.pending_order_way = "+ PendingOrderWayStatusEnum.Status.DX.getCode() +" and a.order_goods_no in (");
if (!param.isEmpty()) { if (!param.isEmpty()) {
for (int i = 0; i < param.size(); i++) { for (int i = 0; i < param.size(); i++) {
...@@ -166,4 +173,14 @@ public class OrderGoodsSqlProvider { ...@@ -166,4 +173,14 @@ public class OrderGoodsSqlProvider {
return sqlList.toString(); return sqlList.toString();
} }
public String updateOrderGoodsSetResidueWeight(@Param(value ="residueWeight") BigDecimal residueWeight,@Param(value ="id") Integer id){
String sql = new SQL() {{
UPDATE("order_goods")
.SET("residue_weight = residue_weight + #{residueWeight}")
.WHERE("id = #{id}");
}}.toString();
return sql;
}
} }
...@@ -16,7 +16,7 @@ public class BreakContractDriverRecordSqlProvider { ...@@ -16,7 +16,7 @@ public class BreakContractDriverRecordSqlProvider {
public String pageByParam(@Param("page") Page<BreakContractDriverRecordVO> page, @Param("param") PageBreakContractDriverRecordParam param) { public String pageByParam(@Param("page") Page<BreakContractDriverRecordVO> page, @Param("param") PageBreakContractDriverRecordParam param) {
return new SQL(){{ return new SQL(){{
SELECT(" id, trigger_type, breach_contract_party_type, break_no, " + SELECT(" id, trigger_type, break_contract_party_type, break_no, " +
" child_no, truck_no, truck_own_user_no, truck_own_name, " + " child_no, truck_no, truck_own_user_no, truck_own_name, " +
" driver_user_no, driver_name, figure, time_limit, " + " driver_user_no, driver_name, figure, time_limit, " +
" date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " + " date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " +
...@@ -30,6 +30,7 @@ public class BreakContractDriverRecordSqlProvider { ...@@ -30,6 +30,7 @@ public class BreakContractDriverRecordSqlProvider {
FROM("break_contract_driver_record"); FROM("break_contract_driver_record");
if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");} if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (Objects.nonNull(param.getTriggerType())) {WHERE("trigger_type = #{param.triggerType}");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");} if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");} if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
...@@ -41,7 +42,7 @@ public class BreakContractDriverRecordSqlProvider { ...@@ -41,7 +42,7 @@ public class BreakContractDriverRecordSqlProvider {
public String driverPageByParam(@Param("page") Page<DriverBreakContractDriverRecordVO> page, @Param("param") DriverPageBreakContractDriverRecordParam param) { public String driverPageByParam(@Param("page") Page<DriverBreakContractDriverRecordVO> page, @Param("param") DriverPageBreakContractDriverRecordParam param) {
return new SQL(){{ return new SQL(){{
SELECT(" id, trigger_type, breach_contract_party_type, break_no, " + SELECT(" id, trigger_type, break_contract_party_type, break_no, " +
" child_no, truck_no, truck_own_user_no, truck_own_name, " + " child_no, truck_no, truck_own_user_no, truck_own_name, " +
" driver_user_no, driver_name, figure, time_limit, " + " driver_user_no, driver_name, figure, time_limit, " +
" date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " + " date_format(limit_time, '%Y-%m-%d %H:%i:%s') as limitTime, " +
...@@ -54,8 +55,8 @@ public class BreakContractDriverRecordSqlProvider { ...@@ -54,8 +55,8 @@ public class BreakContractDriverRecordSqlProvider {
FROM("break_contract_driver_record"); FROM("break_contract_driver_record");
WHERE("(truck_own_user_no = #{param.userNo} or driver_user_no = #{param.userNo})"); WHERE("(truck_own_user_no = #{param.userNo} or driver_user_no = #{param.userNo})");
if (Objects.equals(param.getType(), 1)) {WHERE("breach_contract_party_type = 3");} if (Objects.equals(param.getType(), 1)) {WHERE("break_contract_party_type = 3");}
if (Objects.equals(param.getType(), 2)) {WHERE("breach_contract_party_type = 1");} if (Objects.equals(param.getType(), 2)) {WHERE("break_contract_party_type = 1");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");} if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");} if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
......
...@@ -7,12 +7,14 @@ import org.apache.commons.lang3.StringUtils; ...@@ -7,12 +7,14 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL; import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class BreakContractOwnerRecordSqlProvider { public class BreakContractOwnerRecordSqlProvider {
public String pageByParam(@Param("page") Page<BreakContractOwnerRecordVO> page, @Param("param") PageBreakContractOwnerRecordParam param) { public String pageByParam(@Param("page") Page<BreakContractOwnerRecordVO> page, @Param("param") PageBreakContractOwnerRecordParam param) {
return new SQL(){{ return new SQL(){{
SELECT(" id, trigger_type, breach_contract_party_type, break_no, " + SELECT(" id, trigger_type, break_contract_party_type, break_no, " +
" order_no, owner_user_no, owner_name, figure, " + " order_no, owner_user_no, owner_name, figure, " +
" settlement_no, " + " settlement_no, " +
" remark, " + " remark, " +
...@@ -24,6 +26,7 @@ public class BreakContractOwnerRecordSqlProvider { ...@@ -24,6 +26,7 @@ public class BreakContractOwnerRecordSqlProvider {
FROM("break_contract_owner_record"); FROM("break_contract_owner_record");
if (StringUtils.isNotBlank(param.getOrderNo())) {WHERE("order_no = #{param.orderNo}");} if (StringUtils.isNotBlank(param.getOrderNo())) {WHERE("order_no = #{param.orderNo}");}
if (Objects.nonNull(param.getTriggerType())) {WHERE("trigger_type = #{param.triggerType}");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");} if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");} if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
......
package com.clx.performance.strategy; package com.clx.performance.strategy;
import com.clx.order.enums.OrderStopEnum;
import com.clx.order.enums.ResultEnum;
import com.clx.order.params.OrderGoodsParams; import com.clx.order.params.OrderGoodsParams;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.msl.common.exception.ServiceSystemException;
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.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Objects;
@Slf4j @Slf4j
public abstract class GoodsOrderStrategy { public abstract class GoodsOrderStrategy {
...@@ -26,6 +30,9 @@ public abstract class GoodsOrderStrategy { ...@@ -26,6 +30,9 @@ public abstract class GoodsOrderStrategy {
public void saveGoodsOrder(OrderGoodsParams orderGoodsParams, FeignOrderVO orderInfo, LocalDateTime now, RabbitTemplate rabbitTemplate) { public void saveGoodsOrder(OrderGoodsParams orderGoodsParams, FeignOrderVO orderInfo, LocalDateTime now, RabbitTemplate rabbitTemplate) {
String orderNo = orderGoodsParams.getOrderNo(); String orderNo = orderGoodsParams.getOrderNo();
if(Objects.equals(orderInfo.getStopFlag(), OrderStopEnum.Status.YES.getCode())){
throw new ServiceSystemException(ResultEnum.DATA_ERROR,"订单已暂停,无法进行提量");
}
//根据不同的订单类型创建不同的货单 //根据不同的订单类型创建不同的货单
LocalDateTime sendLazyTime = goodsOrderProcess(orderGoodsParams, orderInfo, now); LocalDateTime sendLazyTime = goodsOrderProcess(orderGoodsParams, orderInfo, now);
......
...@@ -158,7 +158,7 @@ public class OneGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -158,7 +158,7 @@ public class OneGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList()); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
} }
mqMap.put(orderGoodsNo, postedTime); mqMap.put(orderGoodsNo, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduceByLastOrderTime(orderGoods.getLastOrderTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
......
...@@ -172,7 +172,7 @@ public class ThreeGoodsOrderStrategy extends GoodsOrderStrategy implements Initi ...@@ -172,7 +172,7 @@ public class ThreeGoodsOrderStrategy extends GoodsOrderStrategy implements Initi
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, truckList); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, truckList);
} }
mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime); mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduceByLastOrderTime(orderGoods.getLastOrderTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
......
...@@ -166,7 +166,7 @@ public class TwoGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -166,7 +166,7 @@ public class TwoGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList()); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
} }
mqMap.put(orderGoodsNo, postedTime); mqMap.put(orderGoodsNo, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduceByLastOrderTime(orderGoods.getLastOrderTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
......
package com.clx.performance.struct.breakcontract;
import com.clx.performance.enums.BreakContractOwnerRecordEnum;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.vo.pc.breakcontract.owner.PageOwnerBreakContractOwnerRecordVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.IterableMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {BreakContractOwnerRecordEnum.class, DateUtils.class})
public interface BreakContractOwnerRecordStruct {
@Named("toBaseVo")
@Mapping(target = "payStatusMsg", expression = "java(BreakContractOwnerRecordEnum.PayStatus.getMsgByCode(detail.getPayStatus()))")
@Mapping(target = "compensationStatusMsg", expression = "java(BreakContractOwnerRecordEnum.CompensationStatusStatus.getMsgByCode(detail.getPayStatus()))")
PageOwnerBreakContractOwnerRecordVO convert(BreakContractOwnerRecord detail);
@IterableMapping(qualifiedByName = "toBaseVo")
List<PageOwnerBreakContractOwnerRecordVO> covertToOwnerList(List<BreakContractOwnerRecord> list);
}
package com.clx.performance.struct.breakcontract; package com.clx.performance.struct.breakcontract;
import com.clx.performance.enums.BreakContractSettlementDriverEnum; import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.model.breakcontract.BreakContractDriverRecord;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail; import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailVO; import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailVO;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
...@@ -17,10 +18,13 @@ public interface BreakContractSettlementDriverDetailStruct { ...@@ -17,10 +18,13 @@ public interface BreakContractSettlementDriverDetailStruct {
@Named("toBaseVo") @Named("toBaseVo")
@Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))") @Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreakContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))")
PageCarrierBreakContractSettlementDriverDetailVO convert(BreakContractSettlementDriverDetail detail); PageCarrierBreakContractSettlementDriverDetailVO convert(BreakContractSettlementDriverDetail detail);
@IterableMapping(qualifiedByName = "toBaseVo") @IterableMapping(qualifiedByName = "toBaseVo")
List<PageCarrierBreakContractSettlementDriverDetailVO> covertToCarrierList(List<BreakContractSettlementDriverDetail> list); List<PageCarrierBreakContractSettlementDriverDetailVO> covertToCarrierList(List<BreakContractSettlementDriverDetail> list);
@Mapping(target = "breakContractRemark", source = "remark")
BreakContractSettlementDriverDetail convert(BreakContractDriverRecord detail);
} }
...@@ -2,6 +2,7 @@ package com.clx.performance.struct.breakcontract; ...@@ -2,6 +2,7 @@ package com.clx.performance.struct.breakcontract;
import com.clx.performance.enums.BreakContractSettlementDriverEnum; import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver; import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO; import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
...@@ -19,10 +20,12 @@ public interface BreakContractSettlementDriverStruct { ...@@ -19,10 +20,12 @@ public interface BreakContractSettlementDriverStruct {
@Named("toBaseVo") @Named("toBaseVo")
@Mapping(target = "settleStatusMsg", expression = "java(BreakContractSettlementDriverEnum.SettleStatus.getMsgByCode(detail.getSettleStatus()))") @Mapping(target = "settleStatusMsg", expression = "java(BreakContractSettlementDriverEnum.SettleStatus.getMsgByCode(detail.getSettleStatus()))")
@Mapping(target = "settlePlatformMsg", expression = "java(BreakContractSettlementDriverEnum.SettlePlatform.getMsgByCode(detail.getSettlePlatform()))") @Mapping(target = "settlePlatformMsg", expression = "java(BreakContractSettlementDriverEnum.SettlePlatform.getMsgByCode(detail.getSettlePlatform()))")
@Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))") @Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreakContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))")
PageCarrierBreakContractSettlementDriverVO convert(BreakContractSettlementDriver detail); PageCarrierBreakContractSettlementDriverVO convert(BreakContractSettlementDriver detail);
@IterableMapping(qualifiedByName = "toBaseVo") @IterableMapping(qualifiedByName = "toBaseVo")
List<PageCarrierBreakContractSettlementDriverVO> covertToCarrierList(List<BreakContractSettlementDriver> list); List<PageCarrierBreakContractSettlementDriverVO> covertToCarrierList(List<BreakContractSettlementDriver> list);
BreakContractSettlementDriver convert(BreakContractSettlementDriverDetail detail);
} }
package com.clx.performance.struct.breakcontract; package com.clx.performance.struct.breakcontract;
import com.clx.performance.enums.BreakContractSettlementDriverEnum; import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriverDetail; import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail; import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailVO; import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerDetailVO;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
...@@ -19,10 +18,12 @@ public interface BreakContractSettlementOwnerDetailStruct { ...@@ -19,10 +18,12 @@ public interface BreakContractSettlementOwnerDetailStruct {
@Named("toBaseVo") @Named("toBaseVo")
@Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))") @Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreakContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))")
PageCarrierBreakContractSettlementOwnerDetailVO convert(BreakContractSettlementOwnerDetail detail); PageCarrierBreakContractSettlementOwnerDetailVO convert(BreakContractSettlementOwnerDetail detail);
@IterableMapping(qualifiedByName = "toBaseVo") @IterableMapping(qualifiedByName = "toBaseVo")
List<PageCarrierBreakContractSettlementOwnerDetailVO> covertToCarrierList(List<BreakContractSettlementOwnerDetail> list); List<PageCarrierBreakContractSettlementOwnerDetailVO> covertToCarrierList(List<BreakContractSettlementOwnerDetail> list);
@Mapping(target = "breakContractRemark", source = "remark")
BreakContractSettlementOwnerDetail convert(BreakContractOwnerRecord detail);
} }
...@@ -3,6 +3,7 @@ package com.clx.performance.struct.breakcontract; ...@@ -3,6 +3,7 @@ package com.clx.performance.struct.breakcontract;
import com.clx.performance.enums.BreakContractSettlementDriverEnum; import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.enums.BreakContractSettlementOwnerEnum; import com.clx.performance.enums.BreakContractSettlementOwnerEnum;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwner; import com.clx.performance.model.breakcontract.BreakContractSettlementOwner;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwnerDetail;
import com.clx.performance.vo.pc.breakcontract.carrier.CarrierBreakContractSettlementOwnerDetailVO; import com.clx.performance.vo.pc.breakcontract.carrier.CarrierBreakContractSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO; import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
...@@ -19,15 +20,18 @@ public interface BreakContractSettlementOwnerStruct { ...@@ -19,15 +20,18 @@ public interface BreakContractSettlementOwnerStruct {
@Named("toBaseVo") @Named("toBaseVo")
@Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))") @Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreakContractPartyType.getMsgByCode(detail.getBreakContractPartyType()))")
@Mapping(target = "statusMsg", expression = "java(BreakContractSettlementOwnerEnum.Status.getMsgByCode(detail.getStatus()))") @Mapping(target = "statusMsg", expression = "java(BreakContractSettlementOwnerEnum.Status.getMsgByCode(detail.getStatus()))")
PageCarrierBreakContractSettlementOwnerVO convert(BreakContractSettlementOwner detail); PageCarrierBreakContractSettlementOwnerVO convert(BreakContractSettlementOwner detail);
@IterableMapping(qualifiedByName = "toBaseVo") @IterableMapping(qualifiedByName = "toBaseVo")
List<PageCarrierBreakContractSettlementOwnerVO> covertToCarrierList(List<BreakContractSettlementOwner> list); List<PageCarrierBreakContractSettlementOwnerVO> covertToCarrierList(List<BreakContractSettlementOwner> list);
@Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(settlementOwner.getBreakContractPartyType()))") @Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreakContractPartyType.getMsgByCode(settlementOwner.getBreakContractPartyType()))")
@Mapping(target = "statusMsg", expression = "java(BreakContractSettlementOwnerEnum.Status.getMsgByCode(settlementOwner.getStatus()))")
CarrierBreakContractSettlementOwnerDetailVO convertToDetail(BreakContractSettlementOwner settlementOwner); CarrierBreakContractSettlementOwnerDetailVO convertToDetail(BreakContractSettlementOwner settlementOwner);
BreakContractSettlementOwner convert(BreakContractSettlementOwnerDetail detail);
} }
package com.clx.performance; package com.clx.performance;
import cn.hutool.json.JSONUtil;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.OrderOwnTruckVo; import com.clx.order.vo.feign.OrderOwnTruckVo;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderGoodsStatusLazyComponent; import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.param.mq.OrderCancelMqParam;
import com.clx.performance.service.OrderCancelService;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
...@@ -40,13 +46,24 @@ public class JobTest { ...@@ -40,13 +46,24 @@ public class JobTest {
@Autowired @Autowired
private GoodsOrderTruckRecordComponent recordComponent; private GoodsOrderTruckRecordComponent recordComponent;
@Autowired
private OrderCancelService orderCancelService;
@Test @Test
public void test1() { public void test1() {
List<String> list = new ArrayList<>();
list.add("晋A99999");
recordComponent.saveTruckRecord("123", list); OrderCancelMqParam mqParam = new OrderCancelMqParam();
recordComponent.getPrivateTruckList("123", 1001183036834771013L); mqParam.setType("2");
mqParam.setOrderNo("123");
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
//CX2023092600223 平台已承接的订单,没有产生货单
//CX2023101600386 truckDemand 类型是2,且有货单,有运单, 没有未到达货源地的运单
//PT2023092600207 类型都是1,且有运单
//orderCancelService.ownerCancelOrderPre("PT2023102700469");
//orderCancelService.ownerCancelOrder("PT2023102600466");
System.out.println(); System.out.println();
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论