Commit c040e20c authored by Smile's avatar Smile Committed by wux

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

parent 21f8bcac
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.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
......@@ -409,8 +410,8 @@ public interface OrderQueryService {
OrderDetailSummaryDto orderDetailSummaryByOrderId(Long orderId);
List<OrderDO> getAirRefreshOrderPrice(List<Integer> transportIdList);
//是否能下载提单
CommonResult<Boolean> getOrderShowLadingStateStatus(Long orderId);
/**
* 是否拆单子订单
*
......
......@@ -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.common.exception.ServiceException;
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.PageResult;
import cn.iocoder.yudao.framework.common.util.spring.enums.UserTypeEnum;
......@@ -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.util.SecurityFrameworkUtils;
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.customerContacts.CustomerContactsService;
import cn.iocoder.yudao.module.customer.service.zhongPao.ZhongPaoService;
......@@ -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.orderConsignee.OrderConsigneeDO;
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.orderException.OrderExceptionDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderItem.OrderItemDO;
......@@ -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.TransportTypeShortEnum;
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.orderWarehouseIn.OrderWarehouseInService;
import cn.iocoder.yudao.module.order.service.orderWarehousePicture.OrderWarehousePictureService;
......@@ -121,6 +125,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
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.module.order.enums.ErrorCodeConstants.*;
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_
public class OrderQueryServiceImpl implements OrderQueryService {
private final OrderMapper orderMapper;
private final OrderControlLogService orderControlLogService;
private final OrderItemMapper orderItemMapper;
private final OrderTimeMapper orderTimeMapper;
private final OrderDepartureService orderDepartureService;
......@@ -3871,6 +3877,47 @@ public class OrderQueryServiceImpl implements OrderQueryService {
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
public boolean isSplitOrderChildren(OrderDO orderDO) {
boolean isSplitSeparateOrder = orderDO.getSplitSeparateOrder();
......
......@@ -4,13 +4,13 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.util.IdUtil;
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.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
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.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.excel.util.ExcelUtils;
import cn.iocoder.yudao.framework.i18n.core.I18nMessage;
......@@ -507,6 +507,13 @@ public class MyOrderController {
}
return success(pageResult);
}
//是否能下载提单
@GetMapping("/getOrderShowLadingStateStatus/{orderId}")
@PreAuthenticated
@ApiOperation("是否能下载提单")
public CommonResult<Boolean> getOrderShowLadingStateStatus(@PathVariable("orderId") Long orderId) {
return orderQueryService.getOrderShowLadingStateStatus(orderId);
}
@GetMapping("/cargo/control/page")
@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