|
@@ -316,84 +316,6 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
|
|
|
|
|
Long deliveryId = delivery.getId();
|
|
Long deliveryId = delivery.getId();
|
|
|
Delivery select = baseMapper.selectById(deliveryId);
|
|
Delivery select = baseMapper.selectById(deliveryId);
|
|
|
- //销售-发货-生成凭证, 如果销售订单号为空, 则代表是手动录入的发货单,不可以参与生成凭证
|
|
|
|
|
- if ("681169".equals(AuthUtil.getTenantId()) && "GN".equals(delivery.getTradeType())) {
|
|
|
|
|
-
|
|
|
|
|
- //=============生成凭证所需信息==============
|
|
|
|
|
- if (select == null) {
|
|
|
|
|
- throw new SecurityException("未查到相关数据,操作失败");
|
|
|
|
|
- }
|
|
|
|
|
- Long corpId = select.getCorpId();
|
|
|
|
|
- String corpName = null;
|
|
|
|
|
- String corpNumber = null;
|
|
|
|
|
- String brand = null;
|
|
|
|
|
- //销售订单号
|
|
|
|
|
- String saleOrderNo = select.getOrderNo();
|
|
|
|
|
- //采购订单号
|
|
|
|
|
- String purchaseOrderNo = null;
|
|
|
|
|
- //根据销售订单号,查询采购订单号
|
|
|
|
|
- Order order = new Order();
|
|
|
|
|
- order.setBillType("XS");
|
|
|
|
|
- order.setOrgOrderNo(saleOrderNo);
|
|
|
|
|
- order.setTenantId(AuthUtil.getTenantId());
|
|
|
|
|
- R<List<Order>> listR = orderDescClient.getByCgList(order);
|
|
|
|
|
- if (listR.isSuccess() && CollectionUtils.isNotEmpty(listR.getData())) {
|
|
|
|
|
- purchaseOrderNo = listR.getData().get(0).getOrderNo();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- String wareHouse = null;
|
|
|
|
|
-
|
|
|
|
|
- //客户信息
|
|
|
|
|
- R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
|
|
|
|
|
- if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
|
|
- corpName = corpMessage.getData().getCname();
|
|
|
|
|
- corpNumber = corpMessage.getData().getCode();
|
|
|
|
|
- }
|
|
|
|
|
- //仓库信息
|
|
|
|
|
- StorageDesc storageDesc = iStorageClient.findById(select.getStorageId());
|
|
|
|
|
- if (storageDesc != null) {
|
|
|
|
|
- wareHouse = storageDesc.getCname();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //计算明细的入库金额(明细的总采购价 和 总销售价)
|
|
|
|
|
- LambdaQueryWrapper<DeliveryItems> deliveryItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- deliveryItemsLambdaQueryWrapper
|
|
|
|
|
- .eq(DeliveryItems::getPid, deliveryId)
|
|
|
|
|
- .eq(DeliveryItems::getIsDeleted, 0);
|
|
|
|
|
- List<DeliveryItems> deliveryItems = deliveryItemsMapper.selectList(deliveryItemsLambdaQueryWrapper);
|
|
|
|
|
- BigDecimal pricetotal1 = deliveryItems.stream().map(DeliveryItems::getPurchaseTotalAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
- BigDecimal pricetotal2 = deliveryItems.stream().map(DeliveryItems::getDeliveryAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
-
|
|
|
|
|
- //获得商品品牌
|
|
|
|
|
- R<GoodsDescVO> goods = goodsDescClient.selectGoodsMessage(deliveryItems.get(0).getItemId());
|
|
|
|
|
- if (goods.isSuccess() && goods.getData() != null) {
|
|
|
|
|
- brand = goods.getData().getBrand();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //明细总采购价
|
|
|
|
|
- String purchaseTotalAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal1.toString();
|
|
|
|
|
- //明细总销售价
|
|
|
|
|
- String deliveryAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal2.toString();
|
|
|
|
|
-
|
|
|
|
|
- //=============生成凭证所需信息==============
|
|
|
|
|
- String accountName = select.getBelongCompany();
|
|
|
|
|
- if (!"青岛通用沃德轮胎有限公司".equals(accountName)) {
|
|
|
|
|
- accountName="青岛达沃特轮胎有限公司";
|
|
|
|
|
- }
|
|
|
|
|
- JdTenant jdTenant = getJdTenant(accountName);
|
|
|
|
|
- if(jdTenant != null) {
|
|
|
|
|
- try {
|
|
|
|
|
- //测试账套-收货生成凭证
|
|
|
|
|
- this.testDeliverGoodsSaveVoucher(brand, select, accountName, corpName, corpNumber, wareHouse, purchaseTotalAmount, deliveryAmount, saleOrderNo, purchaseOrderNo);
|
|
|
|
|
- baseMapper.updateById(select);
|
|
|
|
|
- } catch (Exception exception) {
|
|
|
|
|
- throw new SecurityException(exception.getMessage());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
//计算返利
|
|
//计算返利
|
|
|
/*if ("GN".equals(delivery.getTradeType())) {
|
|
/*if ("GN".equals(delivery.getTradeType())) {
|
|
@@ -521,6 +443,85 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
List<DeliveryFiles> deliveryFilesList = deliveryFilesService.saveDeliveryFilesList(delivery.getId(), delivery.getDeliveryFilesList());
|
|
List<DeliveryFiles> deliveryFilesList = deliveryFilesService.saveDeliveryFilesList(delivery.getId(), delivery.getDeliveryFilesList());
|
|
|
delivery.setDeliveryFilesList(deliveryFilesList);
|
|
delivery.setDeliveryFilesList(deliveryFilesList);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ //销售-发货-生成凭证, 如果销售订单号为空, 则代表是手动录入的发货单,不可以参与生成凭证
|
|
|
|
|
+ if ("681169".equals(AuthUtil.getTenantId()) && "GN".equals(delivery.getTradeType())) {
|
|
|
|
|
+
|
|
|
|
|
+ //=============生成凭证所需信息==============
|
|
|
|
|
+ if (select == null) {
|
|
|
|
|
+ throw new SecurityException("未查到相关数据,操作失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ Long corpId = select.getCorpId();
|
|
|
|
|
+ String corpName = null;
|
|
|
|
|
+ String corpNumber = null;
|
|
|
|
|
+ String brand = null;
|
|
|
|
|
+ //销售订单号
|
|
|
|
|
+ String saleOrderNo = select.getOrderNo();
|
|
|
|
|
+ //采购订单号
|
|
|
|
|
+ String purchaseOrderNo = null;
|
|
|
|
|
+ //根据销售订单号,查询采购订单号
|
|
|
|
|
+ Order order = new Order();
|
|
|
|
|
+ order.setBillType("XS");
|
|
|
|
|
+ order.setOrgOrderNo(saleOrderNo);
|
|
|
|
|
+ order.setTenantId(AuthUtil.getTenantId());
|
|
|
|
|
+ R<List<Order>> listR = orderDescClient.getByCgList(order);
|
|
|
|
|
+ if (listR.isSuccess() && CollectionUtils.isNotEmpty(listR.getData())) {
|
|
|
|
|
+ purchaseOrderNo = listR.getData().get(0).getOrderNo();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ String wareHouse = null;
|
|
|
|
|
+
|
|
|
|
|
+ //客户信息
|
|
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
|
|
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
|
|
+ corpName = corpMessage.getData().getCname();
|
|
|
|
|
+ corpNumber = corpMessage.getData().getCode();
|
|
|
|
|
+ }
|
|
|
|
|
+ //仓库信息
|
|
|
|
|
+ StorageDesc storageDesc = iStorageClient.findById(select.getStorageId());
|
|
|
|
|
+ if (storageDesc != null) {
|
|
|
|
|
+ wareHouse = storageDesc.getCname();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //计算明细的入库金额(明细的总采购价 和 总销售价)
|
|
|
|
|
+ LambdaQueryWrapper<DeliveryItems> deliveryItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ deliveryItemsLambdaQueryWrapper
|
|
|
|
|
+ .eq(DeliveryItems::getPid, deliveryId)
|
|
|
|
|
+ .eq(DeliveryItems::getIsDeleted, 0);
|
|
|
|
|
+ List<DeliveryItems> deliveryItems = deliveryItemsMapper.selectList(deliveryItemsLambdaQueryWrapper);
|
|
|
|
|
+ BigDecimal pricetotal1 = deliveryItems.stream().map(DeliveryItems::getPurchaseTotalAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ BigDecimal pricetotal2 = deliveryItems.stream().map(DeliveryItems::getDeliveryAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+
|
|
|
|
|
+ //获得商品品牌
|
|
|
|
|
+ R<GoodsDescVO> goods = goodsDescClient.selectGoodsMessage(deliveryItems.get(0).getItemId());
|
|
|
|
|
+ if (goods.isSuccess() && goods.getData() != null) {
|
|
|
|
|
+ brand = goods.getData().getBrand();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //明细总采购价
|
|
|
|
|
+ String purchaseTotalAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal1.toString();
|
|
|
|
|
+ //明细总销售价
|
|
|
|
|
+ String deliveryAmount = CollectionUtils.isEmpty(deliveryItems) ? "0" : pricetotal2.toString();
|
|
|
|
|
+
|
|
|
|
|
+ //=============生成凭证所需信息==============
|
|
|
|
|
+ String accountName = select.getBelongCompany();
|
|
|
|
|
+ if (!"青岛通用沃德轮胎有限公司".equals(accountName)) {
|
|
|
|
|
+ accountName="青岛达沃特轮胎有限公司";
|
|
|
|
|
+ }
|
|
|
|
|
+ JdTenant jdTenant = getJdTenant(accountName);
|
|
|
|
|
+ if(jdTenant != null) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ //测试账套-收货生成凭证
|
|
|
|
|
+ this.testDeliverGoodsSaveVoucher(brand, select, accountName, corpName, corpNumber, wareHouse, purchaseTotalAmount, deliveryAmount, saleOrderNo, purchaseOrderNo);
|
|
|
|
|
+ baseMapper.updateById(select);
|
|
|
|
|
+ } catch (Exception exception) {
|
|
|
|
|
+ throw new SecurityException(exception.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return R.data(delivery);
|
|
return R.data(delivery);
|
|
|
}
|
|
}
|
|
|
|
|
|