Commit a5068173 authored by Smile's avatar Smile

bug312 APP/WEB控货订单下载提单添加限制条件

parent 1f1a0781
package cn.iocoder.yudao.module.order.service.order; package cn.iocoder.yudao.module.order.service.order;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO; import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
...@@ -407,8 +408,8 @@ public interface OrderQueryService { ...@@ -407,8 +408,8 @@ public interface OrderQueryService {
OrderDetailSummaryDto orderDetailSummaryByOrderId(Long orderId); OrderDetailSummaryDto orderDetailSummaryByOrderId(Long orderId);
List<OrderDO> getAirRefreshOrderPrice(List<Integer> transportIdList); List<OrderDO> getAirRefreshOrderPrice(List<Integer> transportIdList);
//是否能下载提单
CommonResult<Boolean> getOrderShowLadingStateStatus(Long orderId);
/** /**
* 是否拆单子订单 * 是否拆单子订单
* *
......
...@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; ...@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.apollo.core.event.Order.OrderApprovalTypeCheckEvent; import cn.iocoder.yudao.framework.apollo.core.event.Order.OrderApprovalTypeCheckEvent;
import cn.iocoder.yudao.framework.common.exception.ServiceException; import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.spring.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.util.spring.enums.UserTypeEnum;
...@@ -17,6 +18,7 @@ import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO; ...@@ -17,6 +18,7 @@ import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO; import cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO;
import cn.iocoder.yudao.module.customer.dal.dataobject.customerContacts.CustomerContactsDO;
import cn.iocoder.yudao.module.customer.service.customer.CustomerService; import cn.iocoder.yudao.module.customer.service.customer.CustomerService;
import cn.iocoder.yudao.module.customer.service.customerContacts.CustomerContactsService; import cn.iocoder.yudao.module.customer.service.customerContacts.CustomerContactsService;
import cn.iocoder.yudao.module.customer.service.zhongPao.ZhongPaoService; import cn.iocoder.yudao.module.customer.service.zhongPao.ZhongPaoService;
...@@ -49,6 +51,7 @@ import cn.iocoder.yudao.module.order.dal.dataobject.approval.OrderApprovalDO; ...@@ -49,6 +51,7 @@ import cn.iocoder.yudao.module.order.dal.dataobject.approval.OrderApprovalDO;
import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO; import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignee.OrderConsigneeDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignee.OrderConsigneeDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignor.OrderConsignorDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderConsignor.OrderConsignorDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderControlLog.OrderControlLogDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderDeparture.OrderDepartureDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderDeparture.OrderDepartureDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderException.OrderExceptionDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderException.OrderExceptionDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderItem.OrderItemDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderItem.OrderItemDO;
...@@ -67,6 +70,7 @@ import cn.iocoder.yudao.module.order.enums.OrderApprovalTypeEnum; ...@@ -67,6 +70,7 @@ import cn.iocoder.yudao.module.order.enums.OrderApprovalTypeEnum;
import cn.iocoder.yudao.module.order.enums.OrderExceptionEnum; import cn.iocoder.yudao.module.order.enums.OrderExceptionEnum;
import cn.iocoder.yudao.module.order.enums.TransportTypeShortEnum; import cn.iocoder.yudao.module.order.enums.TransportTypeShortEnum;
import cn.iocoder.yudao.module.order.service.order.*; import cn.iocoder.yudao.module.order.service.order.*;
import cn.iocoder.yudao.module.order.service.orderControlLog.OrderControlLogService;
import cn.iocoder.yudao.module.order.service.orderException.OrderExceptionService; import cn.iocoder.yudao.module.order.service.orderException.OrderExceptionService;
import cn.iocoder.yudao.module.order.service.orderWarehouseIn.OrderWarehouseInService; import cn.iocoder.yudao.module.order.service.orderWarehouseIn.OrderWarehouseInService;
import cn.iocoder.yudao.module.order.service.orderWarehousePicture.OrderWarehousePictureService; import cn.iocoder.yudao.module.order.service.orderWarehousePicture.OrderWarehousePictureService;
...@@ -121,6 +125,7 @@ import java.util.function.Function; ...@@ -121,6 +125,7 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.excel.constant.ExportConstant.*; import static cn.iocoder.yudao.framework.excel.constant.ExportConstant.*;
import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.*; import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.module.order.enums.OrderApprovalTypeEnum.ORDER_UPDATE; import static cn.iocoder.yudao.module.order.enums.OrderApprovalTypeEnum.ORDER_UPDATE;
...@@ -138,6 +143,7 @@ import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.NOT_FIND_ ...@@ -138,6 +143,7 @@ import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.NOT_FIND_
public class OrderQueryServiceImpl implements OrderQueryService { public class OrderQueryServiceImpl implements OrderQueryService {
private final OrderMapper orderMapper; private final OrderMapper orderMapper;
private final OrderControlLogService orderControlLogService;
private final OrderItemMapper orderItemMapper; private final OrderItemMapper orderItemMapper;
private final OrderTimeMapper orderTimeMapper; private final OrderTimeMapper orderTimeMapper;
private final OrderDepartureService orderDepartureService; private final OrderDepartureService orderDepartureService;
...@@ -3842,6 +3848,47 @@ public class OrderQueryServiceImpl implements OrderQueryService { ...@@ -3842,6 +3848,47 @@ public class OrderQueryServiceImpl implements OrderQueryService {
return orderMapper.getAirRefreshOrderPrice(transportIdList); return orderMapper.getAirRefreshOrderPrice(transportIdList);
} }
@Override
public CommonResult<Boolean> getOrderShowLadingStateStatus(Long orderId) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
UserRespDTO user = memberUserApi.getUser(loginUser.getId());
assert user != null;
Long userId = user.getId();
OrderBackInfoDto dto = this.info(orderId);
if (Objects.isNull(dto)){
return success(false);
}
// 判断发货人是否是当前登录人
Long customerId = dto.getConsignorVO().getCustomerId();
List<CustomerContactsDO> consigneeCustomerList = customerContactsService.getCustomerContactsListByCustomerId(customerId);
CustomerContactsDO customerContactsDO = consigneeCustomerList.stream().filter(val -> Objects.equals(val.getIsDefault(), 1)).findFirst().orElse(null);
if (Objects.equals(customerContactsDO.getPhoneNew(),user.getMobile())){
return success(true);
}
Long customerId1 = dto.getConsigneeVO().getCustomerId();
List<CustomerContactsDO> consignorCustomerList1 = customerContactsService.getCustomerContactsListByCustomerId(customerId1);
CustomerContactsDO customerContactsDO1 = consignorCustomerList1.stream().filter(val -> Objects.equals(val.getIsDefault(), 1)).findFirst().orElse(null);
List<OrderControlLogDO> orderControlLogListByOrderIdList = orderControlLogService.getOrderControlLogListByOrderId(orderId, null);
boolean isFirstAllAllow = false;
int count = 0; // 新增计数器
String msg="";
for (int i = 0; i < orderControlLogListByOrderIdList.size(); i++) {
if (orderControlLogListByOrderIdList.get(i).getTypeKey() == 4) {
msg=orderControlLogListByOrderIdList.get(i).getMsg();
count++;
// 如果发现超过1个,提前终止循环优化性能
if (count > 1) {
break;
}
}
}
isFirstAllAllow = (count == 1); // 最终判断是否严格等于1
if (dto.getSumNum()==dto.getReleaseNum()&&dto.getCargoControlStatus()==1&&isFirstAllAllow&& msg.contains(String.valueOf(customerContactsDO1.getPhoneNew())) && customerContactsDO1.getPhoneNew().equals(user.getMobile())){
return success(true);
}
return success(false);
}
@Override @Override
public boolean isSplitOrderChildren(OrderDO orderDO) { public boolean isSplitOrderChildren(OrderDO orderDO) {
boolean isSplitSeparateOrder = orderDO.getSplitSeparateOrder(); boolean isSplitSeparateOrder = orderDO.getSplitSeparateOrder();
......
...@@ -4,13 +4,13 @@ import cn.hutool.core.collection.CollectionUtil; ...@@ -4,13 +4,13 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.file.FileNameUtil; import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.util.spring.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.exception.ErrorCode; import cn.iocoder.yudao.framework.common.exception.ErrorCode;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.code.CodeUtils; import cn.iocoder.yudao.framework.common.util.code.CodeUtils;
import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import cn.iocoder.yudao.framework.common.util.object.JavaBeanUtils; import cn.iocoder.yudao.framework.common.util.object.JavaBeanUtils;
import cn.iocoder.yudao.framework.common.util.spring.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO; import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;
import cn.iocoder.yudao.framework.excel.util.ExcelUtils; import cn.iocoder.yudao.framework.excel.util.ExcelUtils;
import cn.iocoder.yudao.framework.i18n.core.I18nMessage; import cn.iocoder.yudao.framework.i18n.core.I18nMessage;
...@@ -507,6 +507,13 @@ public class MyOrderController { ...@@ -507,6 +507,13 @@ public class MyOrderController {
} }
return success(pageResult); return success(pageResult);
} }
//是否能下载提单
@GetMapping("/getOrderShowLadingStateStatus/{orderId}")
@PreAuthenticated
@ApiOperation("是否能下载提单")
public CommonResult<Boolean> getOrderShowLadingStateStatus(@PathVariable("orderId") Long orderId) {
return orderQueryService.getOrderShowLadingStateStatus(orderId);
}
@GetMapping("/cargo/control/page") @GetMapping("/cargo/control/page")
@ApiOperation("获得我控货的订单分页") @ApiOperation("获得我控货的订单分页")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment