提交 0b6d3c54 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
package com.clx.performance.feign;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.msl.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
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 javax.validation.constraints.NotBlank;
......@@ -49,4 +52,9 @@ public interface PerformanceFeign {
Result<List<String>> getPrivateTruckList(@RequestParam("orderGoodsNo") @NotBlank(message = "货单编号不可为空") String orderGoodsNo,
@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo);
@PostMapping(value = {"clx-performance/feign/order/orderCancel"})
Result<Object> orderCancel(@RequestBody OrderCancelParam param);
}
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;
}
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
/**
* @ClassName OrderGoodsLogParam
* @Description
* @Author kavin
* @Date 2023/10/26 16:18
* @Version 1.0
*/
@Getter
@Setter
public class OrderGoodsLogParam extends PageParam {
@NotBlank(message = "货单编号不能为空")
@ApiModelProperty("货单编号")
private String orderGoodsNo;
}
......@@ -43,4 +43,7 @@ public class CarrierBreakContractSavePayeeParam {
@ApiModelProperty(value = "付款银行卡卡号", example = "62213545878787")
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 CarrierBreakPayeeConfirmParam {
@NotNull(message = "id不能为空")
@ApiModelProperty(value = "id", example = "100")
private Integer id;
}
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;
}
......@@ -13,6 +13,8 @@ import lombok.ToString;
@NoArgsConstructor
public class PageCarrierBreakContractSettlementOwnerParam extends PageParam {
@ApiModelProperty(value="货主编号",example = "201457878",hidden = true)
private Long ownerUserNo;
@ApiModelProperty(value="订单编号",example = "201457878")
private String orderNo;
......@@ -23,6 +25,9 @@ public class PageCarrierBreakContractSettlementOwnerParam extends PageParam {
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
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")
private String beginTime;
......
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName OrderGoodsLogVO
* @Description
* @Author kavin
* @Date 2023/10/26 16:11
* @Version 1.0
*/
@Getter
@Setter
public class OrderGoodsLogVO {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("货单编码")
private String orderGoodsNo;
@ApiModelProperty("操作人ID")
private Long createBy;
@ApiModelProperty("操作人名称")
private String createName;
@ApiModelProperty("操作类型")
private String type;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("创建时间")
private String createTime;
}
......@@ -144,4 +144,30 @@ public class RabbitBeanConfig {
public Binding orderGoodsDeadExchangeBind() {
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 {
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";
}
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();
}
}
package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.OrderGoodsLogParam;
import com.clx.performance.service.OrderGoodsLogService;
import com.clx.performance.vo.pc.OrderGoodsLogVO;
import com.msl.common.base.PageData;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName GoodsOrderController
* @Description
* @Author kavin
* @Date 2023/9/17 17:16
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping("/pc/goodsOrderLog")
@Validated
@AllArgsConstructor
@Api(tags = "PC-货单日志")
public class OrderGoodsLogController {
OrderGoodsLogService orderGoodsLogService;
@ApiOperation(value = "货单日志列表", notes = "<br>By:刘海泉")
@PostMapping("/pageOrderGoodsList")
public Result<PageData<OrderGoodsLogVO>> pageOrderGoodsLog(@RequestParam @Validated OrderGoodsLogParam param) {
IPage<OrderGoodsLogVO> page = orderGoodsLogService.pageOrderGoodsLog(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.controller.pc.breakcontract.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierBreakContractSavePayeeParam;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierCancelSettlementParam;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierUploadInvoiceImgParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.clx.performance.param.pc.breakcontract.carrier.*;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.performance.vo.pc.breakcontract.carrier.CarrierBreakContractSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO;
......@@ -70,9 +67,9 @@ public class CarrierBreakContractSettlementOwnerController {
}
@ApiOperation(value = "取消结算单",notes = "<br>By:李瑞新")
@PostMapping("/uploadCancelSettlement")
public Result uploadCancelSettlement(@RequestBody @Validated CarrierCancelSettlementParam param) {
breakContractSettlementOwnerService.uploadCancelSettlement(param);
@PostMapping("/updateCancelSettlement")
public Result updateCancelSettlement(@RequestBody @Validated CarrierCancelSettlementParam param) {
breakContractSettlementOwnerService.updateCancelSettlement(param);
return Result.ok();
}
......@@ -84,4 +81,11 @@ public class CarrierBreakContractSettlementOwnerController {
return Result.ok();
}
@ApiOperation(value = "付款确认",notes = "<br>By:李瑞新")
@PostMapping("/updateCarrierBreakContractPayeeConfirm")
public Result updateCarrierBreakContractPayeeConfirm(@RequestBody @Validated CarrierBreakPayeeConfirmParam param ) {
breakContractSettlementOwnerService.updateCarrierBreakContractPayeeConfirm(param);
return Result.ok();
}
}
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.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.result.Result;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
......@@ -29,8 +40,51 @@ public class OwnerBreakContractSettlementOwnerController {
@ApiOperation(value = "详情",notes = "<br>By:李瑞新")
@GetMapping("/getOwnerBreakContractSettlementOwnerDetail")
@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));
}
@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();
}
}
package com.clx.performance.dao;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.mapper.OrderGoodsLogMapper;
import com.clx.performance.model.OrderGoodsLog;
import com.msl.common.dao.BaseDao;
......@@ -10,4 +11,5 @@ import com.msl.common.dao.BaseDao;
* Time 11:27
*/
public interface OrderGoodsLogDao extends BaseDao<OrderGoodsLogMapper, OrderGoodsLog, Integer> {
Page<OrderGoodsLog> pageOrderGoodsLog(Page page, String orderGoodsNo);
}
......@@ -20,7 +20,8 @@ public interface BreakContractSettlementOwnerDao extends BaseDao<BreakContractSe
boolean uploadInvoiceImg(@Param("id")Integer id, @Param("invoiceImg")String invoiceImg);
boolean uploadCancelSettlement(@Param("id")Integer id);
boolean updateStatus(@Param("id")Integer id,@Param("from")Integer from,@Param("to")Integer to);
boolean saveCarrierBreakContractPayee(CarrierBreakContractSavePayeeParam param);
}
......@@ -260,7 +260,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
@Override
public List<OrderChild> selectResidueWeight(String orderNo) {
return baseMapper.selectList(lambdaQuery().eq(OrderChild::getOrderNo,orderNo)
return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderNo,orderNo)
.lt(OrderChild::getStatus, OrderChildEnum.Status.ARRIVE_SEND.getCode())
);
}
......
package com.clx.performance.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderGoodsLogDao;
import com.clx.performance.mapper.OrderGoodsLogMapper;
import com.clx.performance.model.OrderGoodsLog;
......@@ -13,4 +15,11 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public class OrderGoodsLogDaoImpl extends BaseDaoImpl<OrderGoodsLogMapper, OrderGoodsLog, Integer> implements OrderGoodsLogDao {
@Override
public Page<OrderGoodsLog> pageOrderGoodsLog(Page page, String orderGoodsNo) {
LambdaQueryWrapper<OrderGoodsLog> query = new LambdaQueryWrapper();
query.eq(OrderGoodsLog :: getOrderGoodsNo,orderGoodsNo);
query.orderByDesc(OrderGoodsLog :: getCreateTime);
return baseMapper.selectPage(page,query);
}
}
......@@ -29,6 +29,7 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra
public IPage<BreakContractSettlementOwner> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param) {
LambdaQueryWrapper<BreakContractSettlementOwner> query = new LambdaQueryWrapper<>();
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.getSettlementNo()),BreakContractSettlementOwner ::getSettlementNo ,param.getSettlementNo());
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementOwner :: getBreakContractPartyType,param.getBreakContractPartyType());
query.ge(StringUtils.isNotBlank(param.getBeginTime()), BreakContractSettlementOwner:: getCreateTime,param.getBeginTime());
......@@ -47,15 +48,6 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra
);
}
@Override
public boolean uploadCancelSettlement(Integer id) {
return update(lUdWrapper()
.eq(BreakContractSettlementOwner::getId, id)
.eq(BreakContractSettlementOwner::getStatus, BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode())
.set(BreakContractSettlementOwner::getStatus, BreakContractSettlementOwnerEnum.Status.CANCEL.getCode())
);
}
@Override
public boolean saveCarrierBreakContractPayee(CarrierBreakContractSavePayeeParam param) {
return update(lUdWrapper()
......@@ -66,6 +58,17 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra
.set(BreakContractSettlementOwner::getPaymentImg, param.getPaymentImg())
.set(BreakContractSettlementOwner::getPaymentBankCardNo, param.getPaymentBankCardNo())
.set(BreakContractSettlementOwner::getPaymentBankName, param.getPaymentBankName())
.set(BreakContractSettlementOwner::getStatus, param.getStatus())
);
}
@Override
public boolean updateStatus(Integer id, Integer from, Integer to) {
return update(lUdWrapper()
.eq(BreakContractSettlementOwner::getId, id)
.eq(BreakContractSettlementOwner::getStatus, from)
.set(BreakContractSettlementOwner::getStatus, to)
);
}
}
package com.clx.performance.listener;
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.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_GOODS_ON_DEAD_QUEUE)
public void onMessage(String message) {
log.info("处理订单取消监听器执行,订单No为{}", message);
if (StringUtils.isBlank(message)) {
return;
}
orderCancelService.ownerCancelOrder(message);
}
}
package com.clx.performance.service;
public interface OrderCancelService {
void ownerCancelOrderPre(String orderNo);
void ownerCancelOrder(String orderNo);
}
package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.OrderGoodsLogParam;
import com.clx.performance.vo.pc.OrderGoodsLogVO;
/**
* @author kavin
* Date 2023-10-26
......@@ -7,4 +11,6 @@ package com.clx.performance.service;
*/
public interface OrderGoodsLogService {
void saveLog(String orderGoodsNo,Long userNo,String userName,String type,String remark);
IPage<OrderGoodsLogVO> pageOrderGoodsLog(OrderGoodsLogParam param);
}
package com.clx.performance.service.breakcontract;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierBreakContractSavePayeeParam;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierCancelSettlementParam;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierUploadInvoiceImgParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.clx.performance.param.pc.breakcontract.carrier.*;
import com.clx.performance.vo.pc.breakcontract.carrier.CarrierBreakContractSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
......@@ -15,6 +12,7 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
* Time 16:02
*/
public interface BreakContractSettlementOwnerService {
IPage<PageCarrierBreakContractSettlementOwnerVO> pageCarrierBreakContractSettlementOwnerList(PageCarrierBreakContractSettlementOwnerParam param);
......@@ -24,7 +22,17 @@ public interface BreakContractSettlementOwnerService {
void uploadInvoiceImg(CarrierUploadInvoiceImgParam param);
void uploadCancelSettlement(CarrierCancelSettlementParam param);
void updateCancelSettlement(CarrierCancelSettlementParam param);
void saveCarrierBreakContractPayee(CarrierBreakContractSavePayeeParam param);
void updateCarrierBreakContractPayeeConfirm(CarrierBreakPayeeConfirmParam param);
void updateConfirmSettlement(OwnerConfirmSettlementParam param);
void saveOwnerBreakContractPayee(CarrierBreakContractSavePayeeParam param);
void updateOwnerBreakContractPayeeConfirm(CarrierBreakPayeeConfirmParam param);
}
......@@ -5,6 +5,7 @@ import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderChildEnum;
......@@ -16,6 +17,9 @@ import com.clx.performance.service.OrderCancelService;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -37,7 +41,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final OrderGoodsDao orderGoodsDao;
private final RabbitTemplate rabbitTemplate;
@Override
@Transactional(rollbackFor = Exception.class)
public void ownerCancelOrderPre(String orderNo) {
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
......@@ -87,11 +94,18 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
}
}
log.info("执行订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
Message message = MessageBuilder.withBody(orderNo.getBytes()).build();
rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void ownerCancelOrder(String orderNo) {
log.info("开始执行订单取消吨数回填");
FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
......
package com.clx.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderGoodsLogDao;
import com.clx.performance.model.OrderGoodsLog;
import com.clx.performance.param.pc.OrderGoodsLogParam;
import com.clx.performance.service.OrderGoodsLogService;
import com.clx.performance.vo.pc.OrderGoodsLogVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -27,4 +31,10 @@ public class OrderGoodsLogServiceImpl implements OrderGoodsLogService {
orderGoodsLogDao.saveEntity(log);
}
@Override
public IPage<OrderGoodsLogVO> pageOrderGoodsLog(OrderGoodsLogParam param) {
Page<OrderGoodsLog> page = orderGoodsLogDao.pageOrderGoodsLog(Page.of(param.getPage(), param.getPageSize()),param.getOrderGoodsNo());
return null;
}
}
......@@ -218,7 +218,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
} else {
String residueWeight = orderInfoFeign.getResidueWeight();
List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo);
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();
return childResidueWeight.add(new BigDecimal(residueWeight)).add(orderGoodsResidueWeight);
......
......@@ -5,16 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.breakcontract.BreakContractSettlementLogDao;
import com.clx.performance.dao.breakcontract.BreakContractSettlementOwnerDao;
import com.clx.performance.enums.BreakContractSettlementLogEnum;
import com.clx.performance.enums.BreakContractSettlementOwnerEnum;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.*;
import com.clx.performance.model.breakcontract.BreakContractSettlementLog;
import com.clx.performance.model.breakcontract.BreakContractSettlementOwner;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierBreakContractSavePayeeParam;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierCancelSettlementParam;
import com.clx.performance.param.pc.breakcontract.carrier.CarrierUploadInvoiceImgParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementOwnerParam;
import com.clx.performance.param.pc.breakcontract.carrier.*;
import com.clx.performance.service.breakcontract.BreakContractSettlementLogService;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.performance.struct.breakcontract.BreakContractSettlementLogStruct;
......@@ -151,13 +145,13 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
@Override
@Transactional(rollbackFor = Exception.class)
public void uploadCancelSettlement(CarrierCancelSettlementParam param) {
public void updateCancelSettlement(CarrierCancelSettlementParam param) {
BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
}
breakContractSettlementOwnerDao.uploadCancelSettlement(param.getId());
breakContractSettlementOwnerDao.updateStatus(param.getId(),BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode(),BreakContractSettlementOwnerEnum.Status.CANCEL.getCode());
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----取消结算单
......@@ -174,6 +168,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
}
param.setStatus(BreakContractSettlementOwnerEnum.Status.OWNER_CONFIRMED_PLATFORM_PAYMENT.getCode());
breakContractSettlementOwnerDao.saveCarrierBreakContractPayee(param);
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
......@@ -182,4 +177,86 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
BreakContractSettlementLogEnum.Type.PLATFORM_TO_PAYMENT.getCode(),BreakContractSettlementLogEnum.Type.PLATFORM_TO_PAYMENT.getMsg(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateCarrierBreakContractPayeeConfirm(CarrierBreakPayeeConfirmParam param) {
BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
}
breakContractSettlementOwnerDao.updateStatus(param.getId(),BreakContractSettlementOwnerEnum.Status.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode(),BreakContractSettlementOwnerEnum.Status.COMPLETED.getCode());
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----平台确认付款
breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(),
BreakContractSettlementLogEnum.Type.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode(),BreakContractSettlementLogEnum.Type.PLATFORM_CONFIRMED_OWNER_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());
}
@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.BreachContractPartyType.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());
}
}
......@@ -27,6 +27,7 @@ public interface BreakContractSettlementOwnerStruct {
List<PageCarrierBreakContractSettlementOwnerVO> covertToCarrierList(List<BreakContractSettlementOwner> list);
@Mapping(target = "breakContractPartyTypeMsg", expression = "java(BreakContractSettlementDriverEnum.BreachContractPartyType.getMsgByCode(settlementOwner.getBreakContractPartyType()))")
@Mapping(target = "statusMsg", expression = "java(BreakContractSettlementOwnerEnum.Status.getMsgByCode(settlementOwner.getStatus()))")
CarrierBreakContractSettlementOwnerDetailVO convertToDetail(BreakContractSettlementOwner settlementOwner);
......
......@@ -5,6 +5,7 @@ import com.clx.order.vo.feign.OrderOwnTruckVo;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.service.OrderCancelService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
......@@ -40,13 +41,16 @@ public class JobTest {
@Autowired
private GoodsOrderTruckRecordComponent recordComponent;
@Autowired
private OrderCancelService orderCancelService;
@Test
public void test1() {
List<String> list = new ArrayList<>();
list.add("晋A99999");
recordComponent.saveTruckRecord("123", list);
recordComponent.getPrivateTruckList("123", 1001183036834771013L);
//CX2023092600223 平台已承接的订单,没有产生货单
//CX2023101600386 truckDemand 类型是2,且有货单,有运单, 没有未到达货源地的运单
//PT2023092600207 类型都是1,且有运单
//orderCancelService.ownerCancelOrderPre("PT2023102600466");
orderCancelService.ownerCancelOrder("PT2023102600466");
System.out.println();
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论