|
|
@@ -4,21 +4,27 @@ 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.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
|
import com.trade.purchase.order.enums.OrderTypeEnum;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.client.entity.CorpsAttn;
|
|
|
import org.springblade.client.entity.CorpsDesc;
|
|
|
+import org.springblade.client.entity.GoodsDesc;
|
|
|
+import org.springblade.client.feign.ICorpsAttnClient;
|
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
|
-import org.springblade.client.feign.IFeesDescClient;
|
|
|
+import org.springblade.client.feign.IGoodsDescClient;
|
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
|
import org.springblade.core.mp.support.Condition;
|
|
|
import org.springblade.core.mp.support.Query;
|
|
|
+import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springblade.deliver.goods.entity.Delivery;
|
|
|
import org.springblade.deliver.goods.feign.IDeliveryClient;
|
|
|
import org.springblade.finance.feign.IFinanceClient;
|
|
|
@@ -33,6 +39,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
@@ -54,10 +61,11 @@ public class AgencyOrderController extends BladeController {
|
|
|
private final IOrderModifyService orderModifyService;
|
|
|
private final IOrderPartsService orderPartsService;
|
|
|
private final ICorpsDescClient corpsDescClient;//获取客户信息
|
|
|
+ private final ICorpsAttnClient corpsAttnClient;//获取客户信息
|
|
|
private final IUserClient userClient;//获取用户信息
|
|
|
- private final IFeesDescClient feesDescClient;
|
|
|
private final IFinanceClient iFinanceClient;
|
|
|
private final IDeliveryClient deliveryClient;
|
|
|
+ private IGoodsDescClient goodsDescClient;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -95,6 +103,10 @@ public class AgencyOrderController extends BladeController {
|
|
|
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());//发货日期结束
|
|
|
+ if (ObjectUtils.isNotNull(order.getBusinesDateList()) && !order.getBusinesDateList().isEmpty()){
|
|
|
+ lambdaQueryWrapper.ge( Order::getBusinesDate, order.getBusinesDateList().get(0));
|
|
|
+ lambdaQueryWrapper.le( Order::getBusinesDate, order.getBusinesDateList().get(1));
|
|
|
+ }
|
|
|
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());//要求到货日期开始
|
|
|
@@ -102,6 +114,7 @@ public class AgencyOrderController extends BladeController {
|
|
|
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.eq(Func.isNotEmpty(order.getStatus()), Order::getStatus, order.getStatus());//制单人
|
|
|
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());//有效日期开始
|
|
|
@@ -151,6 +164,7 @@ public class AgencyOrderController extends BladeController {
|
|
|
}
|
|
|
return R.data(page);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 修改 销售或采购订单表
|
|
|
*/
|
|
|
@@ -193,6 +207,7 @@ public class AgencyOrderController extends BladeController {
|
|
|
orderPartsService.updateByPid(order.getId());
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 新增或修改 国内销售或采购订单表
|
|
|
*/
|
|
|
@@ -200,10 +215,21 @@ public class AgencyOrderController extends BladeController {
|
|
|
@ApiOperationSupport(order = 6)
|
|
|
@ApiOperation(value = "新增或修改", notes = "传入order")
|
|
|
public R submit(@Valid @RequestBody Order order) {
|
|
|
- order.setBillType(OrderTypeEnum.SALES.getType());
|
|
|
+ order.setBillType(OrderTypeEnum.PROXY_ORDER.getType());
|
|
|
order.setTradeType(OrderTypeEnum.DOMESTIC.getType());
|
|
|
return orderService.saveOrderMessage(order);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 代理订单 请核
|
|
|
+ */
|
|
|
+ @PostMapping("/checkAgencyOrder")
|
|
|
+ @ApiOperationSupport(order = 8)
|
|
|
+ @ApiOperation(value = "Feign-审核通过", notes = "订单主表id")
|
|
|
+ public R checkAgencyOrder(@Valid @RequestBody Order order) {
|
|
|
+ return orderService.checkAgencyOrder(order);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 平台订单 审核通过
|
|
|
*/
|
|
|
@@ -214,14 +240,185 @@ public class AgencyOrderController extends BladeController {
|
|
|
orderService.approve(id);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 平台订单审核不通过
|
|
|
*/
|
|
|
@PostMapping("/reject")
|
|
|
- @ApiOperationSupport(order = 8)
|
|
|
@ApiOperation(value = "Feign-审核不通过", notes = "订单主表id")
|
|
|
public R reject(@ApiParam(value = "订单主表id", required = true) @RequestParam Long id) {
|
|
|
orderService.reject(id);
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 销售获取平台代理订单列表
|
|
|
+ */
|
|
|
+ @GetMapping("/getAgencyOrder")
|
|
|
+ public R<List<Order>> getAgencyOrder(OrderVO order) {
|
|
|
+ LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(Order::getTenantId, SecureUtil.getTenantId());//租户id
|
|
|
+ lambdaQueryWrapper.eq(Order::getIsDeleted, 0);//订单是否有效
|
|
|
+ lambdaQueryWrapper.eq(Order::getBillType, OrderTypeEnum.AGENCY_ORDER.getType());//订单类型
|
|
|
+ lambdaQueryWrapper.eq(Order::getTradeType, OrderTypeEnum.DOMESTIC.getType());//贸易类型
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
|
|
|
+// lambdaQueryWrapper.eq(Order::getOrderStatus, OrderStatusEnum.PASS.getType());//单据状态
|
|
|
+// lambdaQueryWrapper.eq(Order::getStatus, 3);//单据状态
|
|
|
+ lambdaQueryWrapper.eq(Order::getGenerate, 0);//单据状态
|
|
|
+ lambdaQueryWrapper.orderByDesc(Order::getId);
|
|
|
+ List<Order> page = orderService.list(lambdaQueryWrapper);
|
|
|
+ return R.data(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 销售获取平台代理订单明细列表
|
|
|
+ */
|
|
|
+ @GetMapping("/getAgencyOrderItem")
|
|
|
+ public R<List<OrderItems>> getAgencyOrderItem(@RequestParam Long id) {
|
|
|
+ LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(OrderItems::getTenantId, SecureUtil.getTenantId());//租户id
|
|
|
+ lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);//订单是否有效
|
|
|
+ lambdaQueryWrapper.eq(OrderItems::getBillType, OrderTypeEnum.AGENCY_ORDER.getType());//订单类型
|
|
|
+ lambdaQueryWrapper.eq(OrderItems::getPid, id);
|
|
|
+ lambdaQueryWrapper.orderByDesc(OrderItems::getId);
|
|
|
+ List<OrderItems> page = orderItemsService.list(lambdaQueryWrapper);
|
|
|
+ StringBuilder goodsIds = new StringBuilder();
|
|
|
+ for (OrderItems item : page) {
|
|
|
+ goodsIds.append(item.getItemId()).append(",");
|
|
|
+ }
|
|
|
+ List<GoodsDesc> goodsDescList = new ArrayList<>();
|
|
|
+ if (ObjectUtils.isNotNull(goodsIds.toString())){
|
|
|
+ goodsDescList = goodsDescClient.selectItemsIdGoods(goodsIds.substring(0,goodsIds.length()-1));
|
|
|
+ }
|
|
|
+ for (OrderItems item : page) {
|
|
|
+ if (!goodsDescList.isEmpty()){
|
|
|
+ GoodsDesc goodsDesc = goodsDescList.stream().filter(e-> e.getId().equals(item.getItemId())).findFirst().orElse(null);
|
|
|
+ if (goodsDesc != null){
|
|
|
+ item.setCname(goodsDesc.getCname());
|
|
|
+ item.setCode(goodsDesc.getCode());
|
|
|
+ item.setTypeno(goodsDesc.getTypeno());
|
|
|
+ item.setBrandItem(goodsDesc.getBrandItem());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.setSrcId(id);
|
|
|
+ item.setSrcItemId(item.getId());
|
|
|
+ item.setSrcOrderNo(item.getBillNo());
|
|
|
+ }
|
|
|
+ return R.data(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 自定义分页 销售或采购订单表
|
|
|
+ */
|
|
|
+ @GetMapping("/getContractList")
|
|
|
+ @ApiOperation(value = "分页", notes = "传入order")
|
|
|
+ public R<IPage<Order>> getContractList(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.DOMESTIC.getType());//贸易类型
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()), Order::getOrderNo, order.getOrderNo());//订单号
|
|
|
+ if (AuthUtil.getUserRole().contains("客户")) {
|
|
|
+ Long corpId = null;
|
|
|
+ CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId(), AuthUtil.getTenantId());
|
|
|
+ if (corpsAttn != null) {
|
|
|
+ R<CorpsDesc> res = corpsDescClient.getCorpMessage(corpsAttn.getPid());
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ corpId = res.getData().getId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.eq(Order::getCorpId, corpId);//客户id
|
|
|
+ } else {
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId());//客户id
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()), Order::getBusinesDate, order.getContractStartDate());//合同日期开始
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractEndDate()), Order::getBusinesDate, order.getContractEndDate());//合同日期结束
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()), Order::getSrcOrderNo, order.getSrcOrderNo());//订单来源
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()), Order::getArrivalAddress, order.getArrivalAddress());//到货地址
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()), Order::getSysNo, order.getSysNo());//系统编号
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getBelongToCorpId()), Order::getBelongToCorpId, order.getBelongToCorpId());//销售公司
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(order.getChargeMember()), Order::getBelongToCorpId, order.getBelongToCorpId());//业务员
|
|
|
+ if (order.getGathering() != null && order.getGathering() == 0) {
|
|
|
+ lambdaQueryWrapper.eq(Order::getBalanceAmount, BigDecimal.ZERO);
|
|
|
+ } else if (order.getGathering() != null && order.getGathering() == 1) {
|
|
|
+ lambdaQueryWrapper.gt(Order::getBalanceAmount, BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.orderByDesc(Order::getId);
|
|
|
+ IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
|
|
|
+
|
|
|
+ StringBuilder corpIds = new StringBuilder();//客户拼接ids
|
|
|
+ StringBuilder belongToCorpIds = new StringBuilder();//销售公司ids
|
|
|
+ StringBuilder productionPlantIds = new StringBuilder();//生产工厂ids
|
|
|
+ StringBuilder createUserIds = new StringBuilder();//创建人id拼接
|
|
|
+
|
|
|
+ for (Order orders : page.getRecords()) {
|
|
|
+ if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
|
|
|
+ corpIds.append(orders.getCorpId()).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
|
|
|
+ belongToCorpIds.append(orders.getBelongToCorpId()).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
|
|
|
+ productionPlantIds.append(orders.getProductionPlant()).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(orders.getCreateUser())) {
|
|
|
+ createUserIds.append(orders.getCreateUser()).append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpIds.toString());
|
|
|
+ List<CorpsDesc> belongToCorpList = corpsDescClient.selectByCorpIds(belongToCorpIds.toString());
|
|
|
+ List<CorpsDesc> productionPlantList = corpsDescClient.selectByCorpIds(productionPlantIds.toString());
|
|
|
+ //获得创建人信息
|
|
|
+ List<User> createUserList = userClient.selectUserIds(createUserIds.toString());
|
|
|
+ if (CollectionUtils.isNotEmpty(page.getRecords())) {
|
|
|
+ page.getRecords().forEach(item -> {
|
|
|
+ if (ObjectUtil.isNotEmpty(corpsDescList)) {
|
|
|
+ corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId()))
|
|
|
+ .findFirst().ifPresent(corpsDesc -> item.setCorpsName(corpsDesc.getCname()));
|
|
|
+ }
|
|
|
+ if (item.getBelongToCorpId() != null) {
|
|
|
+ if (ObjectUtil.isNotEmpty(belongToCorpList)) {
|
|
|
+ belongToCorpList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId()))
|
|
|
+ .findFirst().ifPresent(corpsDesc -> item.setBelongToCorpName(corpsDesc.getCname()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.getProductionPlant() != null) {
|
|
|
+ if (ObjectUtil.isNotEmpty(productionPlantList)) {
|
|
|
+ productionPlantList.stream().filter(e -> e.getId().equals(item.getProductionPlant()))
|
|
|
+ .findFirst().ifPresent(corpsDesc -> item.setProductionPlantName(corpsDesc.getCname()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //制单人
|
|
|
+ if (item.getCreateUser() != null) {
|
|
|
+ if (ObjectUtil.isNotEmpty(createUserList)) {
|
|
|
+ createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser()))
|
|
|
+ .findFirst().ifPresent(corpsDesc -> item.setCreateUserName(corpsDesc.getName()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return R.data(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取客户
|
|
|
+ */
|
|
|
+ @GetMapping("/getCorp")
|
|
|
+ @ApiOperation(value = "分页", notes = "传入order")
|
|
|
+ public R<CorpsDesc> getCorp() {
|
|
|
+ CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
+ CorpsAttn corpsAttn = corpsAttnClient.getUser(AuthUtil.getUserId(), AuthUtil.getTenantId());
|
|
|
+ if (corpsAttn != null) {
|
|
|
+ R<CorpsDesc> res = corpsDescClient.getCorpMessage(corpsAttn.getPid());
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ corpsDesc = res.getData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.data(corpsDesc);
|
|
|
+ }
|
|
|
+
|
|
|
}
|