|
|
@@ -1,6 +1,7 @@
|
|
|
package org.springblade.purchase.sales.export;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
|
@@ -9,6 +10,8 @@ import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.client.entity.CorpsDesc;
|
|
|
+import org.springblade.client.feign.ICorpsDescClient;
|
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
|
import org.springblade.core.mp.support.Condition;
|
|
|
import org.springblade.core.mp.support.Query;
|
|
|
@@ -16,13 +19,17 @@ import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.purchase.sales.entity.Order;
|
|
|
+import org.springblade.purchase.sales.entity.OrderItems;
|
|
|
import org.springblade.purchase.sales.service.IOrderItemsService;
|
|
|
import org.springblade.purchase.sales.service.IOrderService;
|
|
|
import org.springblade.purchase.sales.vo.OrderItemsVO;
|
|
|
import org.springblade.purchase.sales.vo.OrderVO;
|
|
|
+import org.springblade.system.user.entity.User;
|
|
|
+import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
@@ -36,7 +43,8 @@ public class ExportOrderController extends BladeController {
|
|
|
|
|
|
private final IOrderService orderService;
|
|
|
private final IOrderItemsService orderItemsService;
|
|
|
-
|
|
|
+ private final ICorpsDescClient corpsDescClient;//获取客户信息
|
|
|
+ private final IUserClient userClient;//获取用户信息
|
|
|
/**
|
|
|
* 详情
|
|
|
*/
|
|
|
@@ -69,13 +77,67 @@ public class ExportOrderController extends BladeController {
|
|
|
@GetMapping("/page")
|
|
|
@ApiOperationSupport(order = 3)
|
|
|
@ApiOperation(value = "分页", notes = "传入order")
|
|
|
- public R<IPage<OrderVO>> page(OrderVO order, Query query) {
|
|
|
- order.setIsDeleted(0);
|
|
|
- order.setTenantId(SecureUtil.getTenantId());
|
|
|
- order.setBillType(OrderTypeEnum.SALES.getType());
|
|
|
- order.setTradeType(OrderTypeEnum.EXPORT.getType());
|
|
|
- IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
|
|
|
- return R.data(pages);
|
|
|
+ public R<IPage<Order>> page(OrderVO order, Query query) {
|
|
|
+ LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());//租户id
|
|
|
+ lambdaQueryWrapper.eq(Order::getIsDeleted,0);//订单是否有效
|
|
|
+ lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());//订单类型
|
|
|
+ lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.EXPORT.getType());//贸易类型
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户id
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期结束
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()),Order::getSrcOrderNo,order.getSrcOrderNo());//订单来源
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()),Order::getShippingAddress,order.getShippingAddress());//发货地址
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()),Order::getArrivalAddress,order.getArrivalAddress());//到货地址
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()),Order::getActualDeliveryDate,order.getActualDeliveryDateStart());//发货日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()),Order::getActualDeliveryDate,order.getActualDeliveryDateEnd());//发货日期结束
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()),Order::getRequiredDeliveryDate,order.getDeliveryStartDate());//要求发货日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()),Order::getRequiredDeliveryDate,order.getDeliveryEndDate());//要求发货日期结束
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()),Order::getRequiredArrivalDate,order.getArrivalDateStart());//要求到货日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()),Order::getRequiredArrivalDate,order.getArrivalDateEnd());//要求到货日期结束
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()),Order::getOrderStatus,order.getOrderStatus());//单据状态
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()),Order::getSysNo,order.getSysNo());//系统编号
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()),Order::getCreateUser,order.getCreateUser());//制单人
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()),Order::getCreateTime,order.getCreateTimeStart());//制单日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()),Order::getCreateTime,order.getCreateTimeEnd());//制单日期结束
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()),Order::getDateValidity,order.getDateValidityStart());//有效日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()),Order::getDateValidity,order.getDateValidityEnd());//有效日期结束
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getBusinesDate,order.getOrderStartDate());//订单日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,order.getOrderEndDate());//订单日期结束
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
|
|
|
+ IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(page.getRecords())){
|
|
|
+ page.getRecords().stream().forEach(item ->{
|
|
|
+ if (item.getCorpId() != null){
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null){
|
|
|
+ item.setCorpsName(corpMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.getBelongToCorpId() != null){
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null){
|
|
|
+ item.setBelongToCorpName(corpMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
|
|
|
+ if (user.isSuccess() && user.getData() != null){
|
|
|
+ item.setCreateUserName(user.getData().getName());
|
|
|
+ }
|
|
|
+ //获取订单明细
|
|
|
+ List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ item.setOrderQuantity(list.stream().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
|
|
|
+ item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
|
|
|
+ item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
|
|
|
+ item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return R.data(page);
|
|
|
}
|
|
|
/**
|
|
|
* 新增 出口销售或采购订单表
|
|
|
@@ -103,6 +165,7 @@ public class ExportOrderController extends BladeController {
|
|
|
lambdaQueryWrapper.eq(Order::getSysNo,orderMessage.getSysNo());
|
|
|
lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.EXPORT.getType());
|
|
|
lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.PURCHASE.getType());
|
|
|
+ lambdaQueryWrapper.eq(Order::getIsDeleted,0);
|
|
|
List<Order> orderList = orderService.list(lambdaQueryWrapper);
|
|
|
if (CollectionUtils.isNotEmpty(orderList)){
|
|
|
throw new SecurityException("销售单已生成采购单不能删除");
|
|
|
@@ -112,6 +175,7 @@ public class ExportOrderController extends BladeController {
|
|
|
lambdaQuery.eq(Order::getSysNo,orderMessage.getSysNo());
|
|
|
lambdaQuery.eq(Order::getTradeType,OrderTypeEnum.DOMESTIC.getType());
|
|
|
lambdaQuery.eq(Order::getBillType,OrderTypeEnum.SHIP.getType());
|
|
|
+ lambdaQuery.eq(Order::getIsDeleted,0);
|
|
|
List<Order> list = orderService.list(lambdaQuery);
|
|
|
if (CollectionUtils.isNotEmpty(list)){
|
|
|
throw new SecurityException("销售单已生成发货单不能删除");
|