提交 eb53f86e authored 作者: huyufan's avatar huyufan

逆向

上级 5fadc460
package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.util.List;
@Getter
@Setter
public class OrderGoodsCancelParam {
@NotNull(message = "货单编号不能为空")
@ApiModelProperty("货单编号")
private String orderGoodsNo;
@ApiModelProperty("货单取消类型 1:弹窗1 2:取消未接单及未到达货源地的车辆 3:取消未接单及未装车的车辆")
private Integer cancelOperateType;
@ApiModelProperty("取消的车辆列表")
private List<String> truckList;
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.feign.OrderFeign;
import com.clx.order.params.OrderGoodsParams;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.param.pc.OrderGoodsCancelParam;
import com.clx.performance.param.pc.UpdateEditOrderGoodsParam;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.component.GoodsOrderStrategyContext;
......@@ -146,8 +147,8 @@ public class GoodsOrderController {
@ApiOperation(value = "取消货单", notes = "<br>By:胡宇帆")
@GetMapping("/orderGoodsCancel")
public Result<Object> orderGoodsCancel(@RequestParam(value = "orderGoodsNo") String orderGoodsNo) {
orderGoodsService.orderGoodsCancel(orderGoodsNo);
public Result<Object> orderGoodsCancel(@RequestBody OrderGoodsCancelParam param) {
orderGoodsService.orderGoodsCancel(param);
return Result.ok();
}
......
......@@ -82,10 +82,15 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> selectResidueWeight(String orderNo,Integer status);
List<OrderChild> selectResidueWeight(String orderNo,Integer status,List<String> truckList);
/**
* 查询在途运单
* @param orderGoodsNo
* @return
*/
List<OrderChild> selectInTransitOrderChild(String orderGoodsNo);
void batchUpdateOrderChildStatus(Integer status, List<Integer> ids);
}
......@@ -62,4 +62,5 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
boolean updateOrderGoodsStatusAndRollbackResidueWeightByOrderGoodsNo(Integer orderGoodsId, Integer status);
Integer updateOrderGoodsSetResidueWeight(BigDecimal residueWeight, Integer id);
}
......@@ -30,6 +30,9 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code);
void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, List<String> truckList);
List<OrderGoodsTruckBind> selectListByOrderGoodsNo(String orderGoodsNo);
void updateOrderGoodsBindStatusExpire(String orderGoodsNo);
......
......@@ -266,6 +266,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public List<OrderChild> selectResidueWeight(String orderNo, Integer status, List<String> truckList) {
return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderNo,orderNo)
.lt(ObjectUtil.isNotEmpty(status),OrderChild::getStatus, status)
.in(OrderChild::getTruckNo, truckList)
);
}
@Override
public List<OrderChild> selectInTransitOrderChild(String orderGoodsNo) {
......@@ -275,6 +283,11 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public void batchUpdateOrderChildStatus(Integer status, List<Integer> ids) {
baseMapper.updateOrderGoodsSetResidueWeight(status, ids);
}
@Override
public List<OrderChild> getOrderChildByOrderNo(String orderNo) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper();
......
......@@ -167,4 +167,6 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
public Integer updateOrderGoodsSetResidueWeight(BigDecimal residueWeight, Integer id) {
return baseMapper.updateOrderGoodsSetResidueWeight(residueWeight,id);
}
}
......@@ -84,6 +84,18 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
);
}
@Override
public void updateOrderGoodsBindStatus(String orderGoodsNo, Integer code, List<String> truckList) {
update(lUdWrapper()
.set(OrderGoodsTruckBind::getStatus, code)
.eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo)
.in(OrderGoodsTruckBind::getTruckNo, truckList)
.or()
.eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo)
.eq(OrderGoodsTruckBind::getStatus, OrderGoodsTruckBindEnum.Status.SUCCESS.getCode())
);
}
@Override
public List<OrderGoodsTruckBind> selectListByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.selectList(lQrWrapper().eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo)
......
......@@ -10,13 +10,11 @@ import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.sqlProvider.OrderChildSqlProvider;
import com.clx.performance.sqlProvider.OrderGoodsSqlProvider;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.*;
import java.util.List;
......@@ -48,4 +46,6 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@Select("select count(1) from order_child where order_goods_no = #{orderGoodsNo} and status < 110")
int countValidByOrderGoodsNo(String orderGoodsNo);
@UpdateProvider(type = OrderChildSqlProvider.class, method = "batchUpdateOrderChildStatus")
Integer updateOrderGoodsSetResidueWeight(@Param(value = "status") Integer status, @Param(value = "ids") List<Integer> ids);
}
\ No newline at end of file
......@@ -59,4 +59,5 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoodsSetResidueWeight")
Integer updateOrderGoodsSetResidueWeight(@Param(value = "residueWeight") BigDecimal residueWeight, @Param(value = "id") Integer id);
}
......@@ -3,6 +3,7 @@ package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.param.pc.OrderGoodsCancelParam;
import com.clx.performance.param.pc.UpdateEditOrderGoodsParam;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.app.OrderGoodsListPageParam;
......@@ -60,7 +61,7 @@ public interface OrderGoodsService {
/**
* 取消货单
* @param orderGoodsNo
* @param OrderGoodsCancelParam
*/
void orderGoodsCancel(String orderGoodsNo);
void orderGoodsCancel(OrderGoodsCancelParam orderGoodsNo);
}
......@@ -13,15 +13,13 @@ import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsDriverTruckDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderGoodsLogsEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.enums.*;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OrderGoodsDriverTruck;
import com.clx.performance.model.OrderGoodsTruckBind;
import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.param.pc.OrderGoodsCancelParam;
import com.clx.performance.param.pc.UpdateEditOrderGoodsParam;
import com.clx.performance.param.pc.UpdateOrderGoodsPriceParam;
import com.clx.performance.service.OrderGoodsLogService;
......@@ -33,6 +31,7 @@ import com.clx.performance.vo.pc.OrderGoodsVO;
import com.clx.user.feign.UserClxFeign;
import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
......@@ -246,8 +245,8 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
BigDecimal newPendingOrderFreight = param.getPendingOrderFreight().divide(new BigDecimal("100"));
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//记录货单调价日志
orderGoodsLogService.saveLog(orderGoods.getOrderGoodsNo(),loginUserInfo.getUserNo(),loginUserInfo.getUserName(),
OrderGoodsLogsEnum.Type.ADJUST_PRICE.getName(),String.format("调价前%s元,调价后%s元",oldPendingOrderFreight,newPendingOrderFreight) );
orderGoodsLogService.saveLog(orderGoods.getOrderGoodsNo(), loginUserInfo.getUserNo(), loginUserInfo.getUserName(),
OrderGoodsLogsEnum.Type.ADJUST_PRICE.getName(), String.format("调价前%s元,调价后%s元", oldPendingOrderFreight, newPendingOrderFreight));
}
@Override
......@@ -266,20 +265,76 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
}
@Override
public void orderGoodsCancel(String orderGoodsNo) {
public void orderGoodsCancel(OrderGoodsCancelParam goodsCancelParam) {
String orderGoodsNo = goodsCancelParam.getOrderGoodsNo();
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());
List<OrderChild> orderChildList = null;
BigDecimal residueWeight = null;
BigDecimal sum = BigDecimal.ZERO;
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
Integer cancelOperateType = goodsCancelParam.getCancelOperateType();
switch (cancelOperateType){
case 1:
orderChildList = orderChildDao.selectResidueWeight(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
if (CollectionUtils.isNotEmpty(orderChildList)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单已产生运单");
}
residueWeight = orderGoods.getResidueTransportWeight();
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);
}
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
log.info("取消货单,参数:{}", JSONUtil.parse(param));
orderFeign.rollbackOrderWeight(param);
return;
case 2:
orderChildList = orderChildDao.selectResidueWeight(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
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);
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);
}
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), orderChildList.stream().map(OrderChild::getId).collect(Collectors.toList()));
log.info("取消货单,参数:{}", JSONUtil.parse(param));
orderFeign.rollbackOrderWeight(param);
return;
case 3:
orderChildList = orderChildDao.selectResidueWeight(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.LOAD.getCode(), goodsCancelParam.getTruckList());
if (CollectionUtils.isNotEmpty(orderChildList)) {
sum = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
residueWeight = orderGoods.getResidueTransportWeight().add(sum);
param.setResidueWeight(residueWeight);
param.setOrderNo(orderGoods.getOrderNo());
if (!orderGoods.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
......@@ -294,7 +349,17 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), orderChildList.stream().map(OrderChild::getId).collect(Collectors.toList()));
log.info("取消货单,参数:{}", JSONUtil.parse(param));
orderFeign.rollbackOrderWeight(param);
return;
default:
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数类型有误");
}
}
}
......@@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.List;
import java.util.Objects;
public class OrderChildSqlProvider {
......@@ -125,4 +126,20 @@ public class OrderChildSqlProvider {
}
public String batchUpdateOrderChildStatus(@Param(value ="status") Integer status, @Param(value = "ids") List<Integer> ids ){
StringBuffer sqlList = new StringBuffer();
sqlList.append("update order_child set status = " + status + "where id in (");
for (int i = 0; i < ids.size(); i++) {
Integer id = ids.get(i);
sqlList.append("'").append(id).append("'");
if (i < ids.size() - 1) {
sqlList.append(",");
}
}
sqlList.append(")");
return sqlList.toString();
}
}
......@@ -183,4 +183,5 @@ public class OrderGoodsSqlProvider {
return sql;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论