|
|
@@ -69,6 +69,9 @@ import java.math.BigDecimal;
|
|
|
import java.math.BigInteger;
|
|
|
import java.math.MathContext;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.text.DateFormat;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -499,38 +502,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setUpdateUser(SecureUtil.getUserId());
|
|
|
baseMapper.updateById(order);
|
|
|
}
|
|
|
+ if(ObjectUtils.isNotNull(order.getCorpId())){
|
|
|
+ CorpsDesc corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc)){
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size()>0){
|
|
|
+ order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
orderItems.setAmount(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
- BigDecimal stockPrice = new BigDecimal("0.00");
|
|
|
- BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
|
|
|
- BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
|
- BigDecimal balanceAmount = new BigDecimal("0.00");
|
|
|
- //获取本商品库存
|
|
|
- R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
- if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
- if ("XS".equals(order.getBillType())) {
|
|
|
- surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
- balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
- r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
- r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getAmount()));
|
|
|
- } else {
|
|
|
- surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
- balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
- r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
- r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
|
- }
|
|
|
- r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
- r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
- r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
- stockGoodsClient.updateStock(r.getData());
|
|
|
- }
|
|
|
}
|
|
|
List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
|
|
|
order.setOrderItemsList(orderItemsList);
|
|
|
@@ -542,9 +525,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setStorageQuantity(orderItemsList.stream().map(OrderItems::getStorageInQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
baseMapper.updateById(order);
|
|
|
- /*if (order.getSettlementList().size() > 0) {
|
|
|
+ if (ObjectUtils.isNotNull(order.getCurrentAmount()) && !order.getCurrentAmount().equals(new BigDecimal(0))) {
|
|
|
+ List<Settlement> settlementList = new ArrayList<>();
|
|
|
+ Settlement settlement = new Settlement();
|
|
|
+ settlement.setDc("d");
|
|
|
+ settlement.setSettlementDate(new Date());
|
|
|
+ settlement.setAccount(order.getAccount());
|
|
|
+ settlement.setAmount(order.getCurrentAmount());
|
|
|
+ settlementList.add(settlement);
|
|
|
+ order.setSettlementList(settlementList);
|
|
|
this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
- }*/
|
|
|
+ } else {
|
|
|
+ //获取订单结算信息
|
|
|
+ /*List<Settlement> settlementList = financeClient.selectListBySrcId(order.getId());
|
|
|
+ order.setSettlementList(settlementList);*/
|
|
|
+ if (ObjectUtils.isNotNull(order.getSettlmentAmount()) && order.getSettlementList().size() > 0) {
|
|
|
+ this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
+ }
|
|
|
+ }
|
|
|
return R.data(order);
|
|
|
}
|
|
|
|
|
|
@@ -1695,7 +1693,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 发货客户统计
|
|
|
*/
|
|
|
@Override
|
|
|
- public IPage<OrderStatisticsVo> corpStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
|
|
|
+ public IPage<OrderStatisticsVo> corpStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
|
|
|
return page.setRecords(baseMapper.corpStatistics(page, statisticsVo));
|
|
|
}
|
|
|
|
|
|
@@ -1703,7 +1701,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 发货客户统计导出
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<CorpStatisticsExcel> corpStatisticsExport(OrderStatisticsVo statisticsVo){
|
|
|
+ public List<CorpStatisticsExcel> corpStatisticsExport(OrderStatisticsVo statisticsVo) {
|
|
|
return baseMapper.corpStatisticsExport(statisticsVo);
|
|
|
}
|
|
|
|
|
|
@@ -1711,7 +1709,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 发货业务员统计
|
|
|
*/
|
|
|
@Override
|
|
|
- public IPage<OrderStatisticsVo> salesmanStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
|
|
|
+ public IPage<OrderStatisticsVo> salesmanStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
|
|
|
return page.setRecords(baseMapper.salesmanStatistics(page, statisticsVo));
|
|
|
}
|
|
|
|
|
|
@@ -1719,7 +1717,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 发货业务员统计导出
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<SalesmanStatisticsExcel> salesmanStatisticsExport(OrderStatisticsVo statisticsVo){
|
|
|
+ public List<SalesmanStatisticsExcel> salesmanStatisticsExport(OrderStatisticsVo statisticsVo) {
|
|
|
return baseMapper.salesmanStatisticsExport(statisticsVo);
|
|
|
}
|
|
|
|
|
|
@@ -1727,7 +1725,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 业务员利润统计
|
|
|
*/
|
|
|
@Override
|
|
|
- public IPage<OrderStatisticsVo> salesmanProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
|
|
|
+ public IPage<OrderStatisticsVo> salesmanProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
|
|
|
return page.setRecords(baseMapper.salesmanProfit(page, statisticsVo));
|
|
|
}
|
|
|
|
|
|
@@ -1735,7 +1733,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 业务员利润导出
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<SalesmanProfitExcel> salesmanProfitExport(OrderStatisticsVo statisticsVo){
|
|
|
+ public List<SalesmanProfitExcel> salesmanProfitExport(OrderStatisticsVo statisticsVo) {
|
|
|
return baseMapper.salesmanProfitExport(statisticsVo);
|
|
|
}
|
|
|
|
|
|
@@ -1743,7 +1741,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 客户利润统计
|
|
|
*/
|
|
|
@Override
|
|
|
- public IPage<OrderStatisticsVo> customerProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
|
|
|
+ public IPage<OrderStatisticsVo> customerProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
|
|
|
return page.setRecords(baseMapper.customerProfit(page, statisticsVo));
|
|
|
}
|
|
|
|
|
|
@@ -1751,7 +1749,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 客户利润导出
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<CustomerProfitExcel> customerProfitExport(OrderStatisticsVo statisticsVo){
|
|
|
+ public List<CustomerProfitExcel> customerProfitExport(OrderStatisticsVo statisticsVo) {
|
|
|
return baseMapper.customerProfitExport(statisticsVo);
|
|
|
}
|
|
|
|
|
|
@@ -1973,6 +1971,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderMessage.setProductionPlantList(corpMessage.getData());
|
|
|
}
|
|
|
}
|
|
|
+ DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
|
|
+ try {
|
|
|
+ if (ObjectUtils.isNotNull(orderMessage.getRequiredDeliveryDate())){
|
|
|
+ String datestr = format.format(new Date());
|
|
|
+ Date date = format.parse(datestr);
|
|
|
+ orderMessage.setRequiredDeliveryDate(date);
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(orderMessage.getAdvanceCollectionDate())){
|
|
|
+ String datestr = format.format(new Date());
|
|
|
+ Date date = format.parse(datestr);
|
|
|
+ orderMessage.setAdvanceCollectionDate(date);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ System.err.println(e);
|
|
|
+ }
|
|
|
+
|
|
|
// 获取订单明细信息
|
|
|
List<OrderItems> orderItemsList = orderItemsService.getOrderItems(orderMessage);
|
|
|
if (CollectionUtils.isNotEmpty(orderItemsList)) {
|
|
|
@@ -1980,6 +1994,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
GoodsDesc goodsDesc = goodsDescClient.getGoodsDescDetail(orderItems.getItemId());
|
|
|
if (ObjectUtils.isNotNull(goodsDesc)) {
|
|
|
orderItems.setCname(goodsDesc.getCname());
|
|
|
+ orderItems.setGoodsName(goodsDesc.getCname());
|
|
|
+ orderItems.setPurchasePrice(goodsDesc.getPurchasePrice());
|
|
|
+ orderItems.setUrl(goodsDesc.getUrl());
|
|
|
}
|
|
|
}
|
|
|
BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
|
|
|
@@ -2008,6 +2025,118 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public R saveOrderconfirm(Order order) {
|
|
|
+ Order selectOrder = baseMapper.selectById(order.getId());
|
|
|
+ if (ObjectUtils.isNotNull(selectOrder)) {
|
|
|
+ LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getPid, order.getId());
|
|
|
+ List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsList) {
|
|
|
+ BigDecimal stockPrice = new BigDecimal("0.00");
|
|
|
+ BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal balanceAmount = new BigDecimal("0.00");
|
|
|
+ //获取本商品库存
|
|
|
+ R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ if ("XS".equals(order.getBillType())) {
|
|
|
+ surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
+ balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
+ balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
+ r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
+ r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getAmount()));
|
|
|
+ } else {
|
|
|
+ surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
+ balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
+ balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
+ r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
+ r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
|
+ }
|
|
|
+ r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
+ r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
+ r.getData().setBalanceAmount(balanceAmount);
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
+ stockGoodsClient.updateStock(r.getData());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ selectOrder.setConfirmStatus(1);
|
|
|
+ baseMapper.updateById(selectOrder);
|
|
|
+ return R.data(selectOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R remind(Order order) {
|
|
|
+ LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getPid, order.getId());
|
|
|
+ List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsList) {
|
|
|
+ //获取本商品库存
|
|
|
+ R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ if ("XS".equals(order.getBillType())) {
|
|
|
+ if (r.getData().getSurplusRouteQuantity().compareTo(orderItems.getStorageInQuantity()) < 0) {
|
|
|
+ return R.data("是否负库存销售?");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+// return R.data(R.fail("是否负库存销售?"));
|
|
|
+ return R.data("");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R revoke(Order order) {
|
|
|
+ Order selectOrder = baseMapper.selectById(order.getId());
|
|
|
+ if (ObjectUtils.isNotNull(selectOrder)) {
|
|
|
+ LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0)
|
|
|
+ .eq(OrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderItems::getPid, order.getId());
|
|
|
+ List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
|
|
|
+ for (OrderItems orderItems : orderItemsList) {
|
|
|
+ BigDecimal stockPrice = new BigDecimal("0.00");
|
|
|
+ BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal balanceAmount = new BigDecimal("0.00");
|
|
|
+ //获取本商品库存
|
|
|
+ R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ if ("XS".equals(order.getBillType())) {
|
|
|
+ surplusRouteQuantity = surplusRouteQuantity.subtract(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
+ balanceQuantity = balanceQuantity.subtract(surplusRouteQuantity);
|
|
|
+ balanceAmount = balanceAmount.subtract(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ stockPrice = stockPrice.subtract(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
+ r.getData().setOutQuantity(r.getData().getOutQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
+ r.getData().setOutAmount(r.getData().getOutAmount().subtract(orderItems.getAmount()));
|
|
|
+ } else {
|
|
|
+ surplusRouteQuantity = surplusRouteQuantity.subtract(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
+ balanceQuantity = balanceQuantity.subtract(surplusRouteQuantity);
|
|
|
+ balanceAmount = balanceAmount.subtract(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ stockPrice = stockPrice.subtract(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
+ r.getData().setInQuantity(r.getData().getInQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
+ r.getData().setInAmount(r.getData().getInAmount().subtract(orderItems.getAmount()));
|
|
|
+ }
|
|
|
+ r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
+ r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
+ r.getData().setBalanceAmount(balanceAmount);
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
+ stockGoodsClient.updateStock(r.getData());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ selectOrder.setConfirmStatus(0);
|
|
|
+ baseMapper.updateById(selectOrder);
|
|
|
+ return R.data(selectOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public MonthSales monthSales(OrderVO order) {
|
|
|
MonthSales monthSales = new MonthSales();
|
|
|
if (AuthUtil.getTenantId().equals("673511")) {
|
|
|
@@ -2487,113 +2616,107 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderFeesService.submitPay(order.getId());
|
|
|
}
|
|
|
} else {
|
|
|
- applyDTO.setBillType(billType);
|
|
|
- applyDTO.setTradeType(order.getTradeType());
|
|
|
- applyDTO.setBelongCompany(order.getBelongToCorpName());
|
|
|
- applyDTO.setUrl(order.getUrl());
|
|
|
- applyDTO.setPageStatus(order.getPageStatus());
|
|
|
- applyDTO.setPageLabel(order.getPageLabel());
|
|
|
- applyDTO.setCheckType(order.getCheckType());
|
|
|
- applyDTO.setAccDate(order.getBusinesDate());
|
|
|
- if (OrderTypeEnum.PURCHASE.getType().equals(billType)) {
|
|
|
- applyDTO.setDc("C");
|
|
|
- } else if (OrderTypeEnum.SALES.getType().equals(billType)) {
|
|
|
- applyDTO.setDc("D");
|
|
|
- }
|
|
|
- applyDTO.setSettlementList(order.getSettlementList());
|
|
|
-
|
|
|
- amount = amount.add(order.getBalanceAmount());
|
|
|
- quantity = quantity.add(new BigDecimal(1));
|
|
|
- price = price.add(amount);
|
|
|
-
|
|
|
- applyDTO.setSrcParentId(order.getId());
|
|
|
- applyDTO.setSrcSysno(order.getSysNo());
|
|
|
- applyDTO.setItemType(itemType);
|
|
|
- applyDTO.setCorpId(order.getCorpId());
|
|
|
- applyDTO.setSrcId(order.getId());
|
|
|
- applyDTO.setSrcFeesId(order.getId());
|
|
|
- applyDTO.setCurrency("CNY");
|
|
|
- applyDTO.setExchangeRate(order.getExchangeRate());
|
|
|
- applyDTO.setTaxRate(BigDecimal.ZERO);
|
|
|
- applyDTO.setSrcType(1);
|
|
|
- applyDTO.setTradeType(order.getTradeType());
|
|
|
- applyDTO.setChargeMember(order.getChargeMember());
|
|
|
- applyDTO.setUnit("条");
|
|
|
- applyDTO.setRemarks(order.getOrderRemark());
|
|
|
- //获取费用id
|
|
|
- R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
|
|
|
- if (fees.isSuccess() && fees.getData() != null) {
|
|
|
- applyDTO.setCostType(fees.getData().getId().toString());
|
|
|
- }
|
|
|
- applyDTO.setQuantity(new BigDecimal(1));
|
|
|
- applyDTO.setPrice(order.getDebitAmount());
|
|
|
- applyDTO.setAmount(order.getDebitAmount());
|
|
|
- applyDTO.setSrcDate(order.getBusinesDate());
|
|
|
- applyDTO.setSrcBillNo(order.getBillNo());
|
|
|
- applyDTO.setAccSysNo(order.getOrderNo());
|
|
|
- applyDTO.setSrcRefno(order.getOrderNo());
|
|
|
- applyDTO.setRetrieval(order.getAdvanceCollectionDate());
|
|
|
- applyDTO.setCorpName(order.getCorpsName());
|
|
|
-
|
|
|
- applyDTO.setAmount(amount);
|
|
|
- applyDTO.setPrice(price);
|
|
|
- applyDTO.setQuantity(quantity);
|
|
|
- applyDTO.setReceivedAmount(order.getSettlmentAmount());
|
|
|
- List<Settlement> settlementList = order.getSettlementList().stream().filter(o -> o.getAccId() != null ).collect(Collectors.toList());
|
|
|
- if (settlementList.size() > 0) {
|
|
|
- applyDTO.setId(settlementList.get(0).getAccId());
|
|
|
- }
|
|
|
- /*Items items = new Items();
|
|
|
- items.setSrcOrderno(order.getOrgOrderNo());
|
|
|
- items.setItemType(itemType);
|
|
|
- items.setCorpId(order.getCorpId());
|
|
|
- items.setSrcParentId(order.getId());
|
|
|
- items.setCurrency("CNY");
|
|
|
- items.setExchangeRate(new BigDecimal(1));
|
|
|
- items.setTaxRate(BigDecimal.ZERO);
|
|
|
- items.setSrcType(1);
|
|
|
- items.setTradeType(order.getTradeType());
|
|
|
- items.setChargeMember(order.getChargeMember());
|
|
|
-
|
|
|
- items.setAmount(amount);
|
|
|
- items.setQuantity(quantity);
|
|
|
- items.setPrice(price);
|
|
|
- items.setUnit("条");
|
|
|
- items.setRemarks(order.getOrderRemark());
|
|
|
- items.setCostType(fees.getData().getId().toString());*/
|
|
|
-
|
|
|
- //生成账单
|
|
|
- R paymentApply = financeClient.paymentApplyParts(applyDTO);
|
|
|
- if (!paymentApply.isSuccess()) {
|
|
|
- throw new RuntimeException(paymentApply.getMsg());
|
|
|
- }
|
|
|
- //给角色为财务的人发送消息
|
|
|
- R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
|
|
|
- if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
|
|
|
- R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
|
|
|
- if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
|
|
|
- for (User datum : userList.getData()) {
|
|
|
- //循环发送消息
|
|
|
- Message sendMessage = new Message();
|
|
|
- sendMessage.setParameter(String.valueOf(order.getId()));
|
|
|
- sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
- sendMessage.setUserId(AuthUtil.getUserId());
|
|
|
- sendMessage.setToUserId(datum.getId());
|
|
|
- sendMessage.setToUserName(datum.getName());
|
|
|
- sendMessage.setMessageType(1);
|
|
|
- sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
- sendMessage.setCreateUser(AuthUtil.getUserId());
|
|
|
- sendMessage.setCreateTime(new Date());
|
|
|
- sendMessage.setUrl(order.getUrl());
|
|
|
- sendMessage.setPageLabel(order.getPageLabel());
|
|
|
- sendMessage.setPageStatus(order.getPageStatus());
|
|
|
- sendMessage.setMessageBody(order.getBelongToCorpName() + " 您的客户:" + order.getCorpsName() + "的销售订单 " + order.getOrderNo() + "审核通过,请查看");
|
|
|
- R save = messageClient.save(sendMessage);
|
|
|
- if (!save.isSuccess()) {
|
|
|
- throw new SecurityException("发送消息失败");
|
|
|
+ if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0) {
|
|
|
+ applyDTO.setBillType(billType);
|
|
|
+ applyDTO.setTradeType(order.getTradeType());
|
|
|
+ applyDTO.setBelongCompany(order.getBelongToCorpName());
|
|
|
+ applyDTO.setUrl(order.getUrl());
|
|
|
+ applyDTO.setPageStatus(order.getPageStatus());
|
|
|
+ applyDTO.setPageLabel(order.getPageLabel());
|
|
|
+ applyDTO.setCheckType(order.getCheckType());
|
|
|
+ applyDTO.setAccDate(order.getBusinesDate());
|
|
|
+ if (OrderTypeEnum.PURCHASE.getType().equals(billType)) {
|
|
|
+ applyDTO.setDc("C");
|
|
|
+ } else if (OrderTypeEnum.SALES.getType().equals(billType)) {
|
|
|
+ applyDTO.setDc("D");
|
|
|
+ }
|
|
|
+ applyDTO.setSettlementList(order.getSettlementList());
|
|
|
+
|
|
|
+ amount = amount.add(order.getStorageAmount());
|
|
|
+ quantity = quantity.add(new BigDecimal(1));
|
|
|
+ price = price.add(amount);
|
|
|
+
|
|
|
+ applyDTO.setSrcParentId(order.getId());
|
|
|
+ applyDTO.setSrcSysno(order.getOrderNo());
|
|
|
+ applyDTO.setItemType(itemType);
|
|
|
+ applyDTO.setCorpId(order.getCorpId());
|
|
|
+ applyDTO.setSrcId(order.getId());
|
|
|
+ applyDTO.setSrcFeesId(order.getId());
|
|
|
+ applyDTO.setCurrency("CNY");
|
|
|
+ applyDTO.setExchangeRate(order.getExchangeRate());
|
|
|
+ applyDTO.setTaxRate(BigDecimal.ZERO);
|
|
|
+ applyDTO.setSrcType(1);
|
|
|
+ applyDTO.setTradeType(order.getTradeType());
|
|
|
+ applyDTO.setChargeMember(order.getChargeMember());
|
|
|
+ applyDTO.setUnit("条");
|
|
|
+ applyDTO.setRemarks(order.getOrderRemark());
|
|
|
+ //获取费用id
|
|
|
+ R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
|
|
|
+ if (fees.isSuccess() && fees.getData() != null) {
|
|
|
+ applyDTO.setCostType(fees.getData().getId().toString());
|
|
|
+ }
|
|
|
+ applyDTO.setQuantity(new BigDecimal(1));
|
|
|
+ applyDTO.setPrice(order.getDebitAmount());
|
|
|
+ applyDTO.setAmount(order.getDebitAmount());
|
|
|
+ applyDTO.setSrcDate(order.getBusinesDate());
|
|
|
+ applyDTO.setSrcBillNo(order.getBillNo());
|
|
|
+ applyDTO.setAccSysNo(order.getOrderNo());
|
|
|
+ applyDTO.setSrcRefno(order.getOrderNo());
|
|
|
+ applyDTO.setRetrieval(order.getAdvanceCollectionDate());
|
|
|
+ applyDTO.setCorpName(order.getCorpsName());
|
|
|
+
|
|
|
+ applyDTO.setAmount(amount);
|
|
|
+ applyDTO.setPrice(price);
|
|
|
+ applyDTO.setQuantity(quantity);
|
|
|
+ applyDTO.setReceivedAmount(order.getSettlmentAmount());
|
|
|
+ List<Settlement> settlementList = order.getSettlementList().stream().filter(o -> o.getAccId() != null).collect(Collectors.toList());
|
|
|
+ if (settlementList.size() > 0) {
|
|
|
+ applyDTO.setId(settlementList.get(0).getAccId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //生成账单
|
|
|
+ R paymentApply = financeClient.paymentApplyParts(applyDTO);
|
|
|
+ if (!paymentApply.isSuccess()) {
|
|
|
+ throw new RuntimeException(paymentApply.getMsg());
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal receivedAmount = order.getSettlementList().stream().map(Settlement::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ receivedAmount = receivedAmount.add(order.getSettlmentAmount());
|
|
|
+ amount = amount.subtract(receivedAmount);
|
|
|
+
|
|
|
+ Order order1 = new Order();
|
|
|
+ order1.setId(order.getId());
|
|
|
+ order1.setSettlmentAmount(receivedAmount);
|
|
|
+ order1.setBalanceAmount(amount);
|
|
|
+ baseMapper.updateById(order1);
|
|
|
+ //给角色为财务的人发送消息
|
|
|
+ /*R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
|
|
|
+ if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
|
|
|
+ R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
|
|
|
+ if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
|
|
|
+ for (User datum : userList.getData()) {
|
|
|
+ //循环发送消息
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(String.valueOf(order.getId()));
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(AuthUtil.getUserId());
|
|
|
+ sendMessage.setToUserId(datum.getId());
|
|
|
+ sendMessage.setToUserName(datum.getName());
|
|
|
+ sendMessage.setMessageType(1);
|
|
|
+ sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
+ sendMessage.setCreateUser(AuthUtil.getUserId());
|
|
|
+ sendMessage.setCreateTime(new Date());
|
|
|
+ sendMessage.setUrl(order.getUrl());
|
|
|
+ sendMessage.setPageLabel(order.getPageLabel());
|
|
|
+ sendMessage.setPageStatus(order.getPageStatus());
|
|
|
+ sendMessage.setMessageBody(order.getBelongToCorpName() + " 您的客户:" + order.getCorpsName() + "的销售订单 " + order.getOrderNo() + "审核通过,请查看");
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
}
|
|
|
}
|