|
|
@@ -12,6 +12,7 @@ import org.springblade.client.feign.IFeesDescClient;
|
|
|
import org.springblade.client.feign.IGoodsDescClient;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.finance.dto.ApplyDTO;
|
|
|
import org.springblade.finance.feign.IFinanceClient;
|
|
|
import org.springblade.finance.vojo.Settlement;
|
|
|
@@ -45,6 +46,8 @@ import java.math.BigDecimal;
|
|
|
import java.math.MathContext;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
|
|
|
/**
|
|
|
* 标书代理信息表 服务实现类
|
|
|
@@ -231,12 +234,30 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
TreeMap<String, String> params = NotifyServlet.getParams(request);
|
|
|
|
|
|
String trxstatus = AnalysisMapUtils.getString("trxstatus", params);
|
|
|
- logicMethod(request, response);
|
|
|
+ // 创建线程池
|
|
|
+ ExecutorService executor = Executors.newSingleThreadExecutor();
|
|
|
+ // 启动任务并提交给线程池
|
|
|
+ executor.submit(() -> {
|
|
|
+ try {
|
|
|
+ logicMethod(request, response);
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("支付成功,业务处理异常,时间:" + new Date());
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ } finally {
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
if (Objects.equals(trxstatus, "0000")) {
|
|
|
returnMethod(response, AnalysisMapUtils.setXML("SUCCESS", "OK"));
|
|
|
} else {
|
|
|
returnMethod(response, AnalysisMapUtils.setXML("error", "OK"));
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -254,7 +275,24 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
TreeMap<String, String> params = NotifyServlet.getParams(request);
|
|
|
|
|
|
String trxstatus = AnalysisMapUtils.getString("trxstatus", params);
|
|
|
- logicMethodNew(request, response);
|
|
|
+ // 创建线程池
|
|
|
+ ExecutorService executor = Executors.newSingleThreadExecutor();
|
|
|
+ // 启动任务并提交给线程池
|
|
|
+ executor.submit(() -> {
|
|
|
+ try {
|
|
|
+ logicMethodNew(request, response);
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("支付成功,业务处理异常,时间:" + new Date());
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ } finally {
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 关闭线程池
|
|
|
+ executor.shutdown();
|
|
|
if (Objects.equals(trxstatus, "0000")) {
|
|
|
returnMethod(response, AnalysisMapUtils.setXML("SUCCESS", "OK"));
|
|
|
} else {
|
|
|
@@ -435,6 +473,8 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
R<List<OrderItems>> res = orderItemsClient.selectListYCP(selectOrder.getId(), order.getTenantId());
|
|
|
if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
System.out.println("第三步明细" + res.getData());
|
|
|
+ List<StockGoodsVO> list = new ArrayList<>();
|
|
|
+ List<StockGoods> stockGoodsList = new ArrayList<>();
|
|
|
for (OrderItems orderItems : res.getData()) {
|
|
|
System.out.println("第三步明细数据" + orderItems.toString());
|
|
|
if ("XS".equals(selectOrder.getBillType())) {
|
|
|
@@ -459,23 +499,9 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
if (new BigDecimal("0.00").compareTo(balanceQuantity) <= 0) {
|
|
|
balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPurchaseCost(), MathContext.DECIMAL32));
|
|
|
System.out.println("第三步新库存金额-01" + balanceAmount);
|
|
|
- /*if (!new BigDecimal("0.00").equals(balanceAmount) && !new BigDecimal("0.00").equals(balanceQuantity)) {
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(orderItems.getStorageInQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- System.out.println("第三步新库存价-01" + stockPrice + "数量:" + orderItems.getStorageInQuantity());
|
|
|
- } else {
|
|
|
- stockPrice = stockPrice.add(balanceAmount);
|
|
|
- System.out.println("第三步新库存价-02" + stockPrice);
|
|
|
- }*/
|
|
|
} else {
|
|
|
balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchaseCost(), MathContext.DECIMAL32));
|
|
|
System.out.println("第三步新库存金额-02" + balanceAmount);
|
|
|
- /*if (!new BigDecimal("0.00").equals(balanceAmount) && !new BigDecimal("0.00").equals(balanceQuantity)) {
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
- System.out.println("第三步新库存价-01" + stockPrice + "数量:" + balanceQuantity);
|
|
|
- } else {
|
|
|
- stockPrice = stockPrice.add(balanceAmount);
|
|
|
- System.out.println("第三步新库存价-02" + stockPrice);
|
|
|
- }*/
|
|
|
}
|
|
|
System.out.println("第三步新库存价" + stockPrice);
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
@@ -494,8 +520,9 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
r.getData().setStockPrice(stockPrice);
|
|
|
r.getData().setTenantId(order.getTenantId());
|
|
|
- boolean a = stockGoodsClient.updateStockYCP(r.getData());
|
|
|
- System.out.println("第三步库存" + a);
|
|
|
+ list.add(r.getData());
|
|
|
+ /*boolean a = stockGoodsClient.updateStockYCP(r.getData());
|
|
|
+ System.out.println("第三步库存" + a);*/
|
|
|
} else {
|
|
|
StockGoods stockGoods = new StockGoods();
|
|
|
if ("CG".equals(selectOrder.getBillType())) {
|
|
|
@@ -507,7 +534,7 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
stockGoods.setBalanceAmount(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice()));
|
|
|
stockGoods.setSurplusRouteQuantity(orderItems.getStorageInQuantity());
|
|
|
stockGoods.setTenantId(order.getTenantId());
|
|
|
- stockGoodsClient.saveStockYCP(stockGoods);
|
|
|
+// stockGoodsClient.saveStockYCP(stockGoods);
|
|
|
} else {
|
|
|
stockGoods.setGoodsId(orderItems.getItemId());
|
|
|
stockGoods.setStorageId(orderItems.getStorageId());
|
|
|
@@ -517,10 +544,17 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
stockGoods.setBalanceAmount(new BigDecimal("0.00").subtract(stockGoods.getBalanceQuantity().multiply(orderItems.getPrice())));
|
|
|
stockGoods.setSurplusRouteQuantity(new BigDecimal("0.00").subtract(orderItems.getStorageInQuantity()));
|
|
|
stockGoods.setTenantId(order.getTenantId());
|
|
|
- stockGoodsClient.saveStockYCP(stockGoods);
|
|
|
+// stockGoodsClient.saveStockYCP(stockGoods);
|
|
|
}
|
|
|
+ stockGoodsList.add(stockGoods);
|
|
|
}
|
|
|
}
|
|
|
+ if (list.size() > 0) {
|
|
|
+ stockGoodsClient.updateStockListYCP(BeanUtil.copy(list, StockGoods.class));
|
|
|
+ }
|
|
|
+ if (stockGoodsList.size() > 0) {
|
|
|
+ stockGoodsClient.saveStockListYCP(stockGoodsList);
|
|
|
+ }
|
|
|
} else {
|
|
|
wechatMark.setCause(AnalysisMapUtils.getString("cusorderid", params) + "单号支付成功,库存加减失败!原因:未查到单据明细信息");
|
|
|
wechatMark.setStatus(2);
|
|
|
@@ -541,9 +575,12 @@ public class PaymentServiceImpl implements IPaymentService {
|
|
|
selectOrder.setCorpsName(corpMessage.getData().getCname());
|
|
|
}
|
|
|
}
|
|
|
- BigDecimal amount = BigDecimal.ZERO;//对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
- BigDecimal quantity = BigDecimal.ZERO;//对账数量 数量为 就是轮胎条数的和
|
|
|
- BigDecimal price = BigDecimal.ZERO;//对账单价
|
|
|
+ //对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
+ BigDecimal amount = BigDecimal.ZERO;
|
|
|
+ //对账数量 数量为 就是轮胎条数的和
|
|
|
+ BigDecimal quantity = BigDecimal.ZERO;
|
|
|
+ //对账单价
|
|
|
+ BigDecimal price = BigDecimal.ZERO;
|
|
|
ApplyDTO applyDTO = new ApplyDTO();
|
|
|
applyDTO.setCompanyid(selectOrder.getBelongToCorpId());
|
|
|
applyDTO.setTradeType(selectOrder.getTradeType());
|