refactor(buildpackage): 为关键方法添加同步锁和异常处理- 在 ConsignmachiningIn、ConsignmachiningInReturn、ProxyPurchaseReturn、ProxyPurchaseWarehousOrder、ProxyPurchaseWarehousWarehouse 和 SoSaleReturnPluginInitializerToB 类中,为 getSet、getSetStock 和 getSetTrade 方法添加了 ReentrantLock 同步锁

- 在上述方法中添加了 try-catch 块,用于捕获和记录异常
-这些修改旨在提高系统的稳定性和可靠性,防止并发问题,并确保异常情况得到妥善处理
This commit is contained in:
liuy 2025-01-06 11:41:15 +08:00
parent e568ae8549
commit 3533460e6f
6 changed files with 102 additions and 33 deletions

View File

@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -47,6 +48,8 @@ import java.util.stream.Collectors;
*/ */
public class ConsignmachiningIn extends PluginBaseEntity { public class ConsignmachiningIn extends PluginBaseEntity {
private static final ReentrantLock LOCK1 = new ReentrantLock(true);
Logger logger = LoggerFactory.getLogger(ConsignmachiningIn.class); Logger logger = LoggerFactory.getLogger(ConsignmachiningIn.class);
@Autowired @Autowired
@ -326,10 +329,17 @@ public class ConsignmachiningIn extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private void getSet(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception { private void getSet(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
//过滤成功的数据 LOCK1.lock();
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList); try {
//执行推送主逻辑 //过滤成功的数据
implement(stockinOrderList); List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implement(stockinOrderList);
} catch (Exception e) {
logger.error("getSet方法抛出异常", e);
} finally {
LOCK1.unlock();
}
} }
/** /**

View File

@ -37,6 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -51,6 +52,8 @@ import java.util.stream.Collectors;
*/ */
public class ConsignmachiningInReturn extends PluginBaseEntity { public class ConsignmachiningInReturn extends PluginBaseEntity {
private static final ReentrantLock LOCK1 = new ReentrantLock(true);
Logger logger = LoggerFactory.getLogger(ConsignmachiningInReturn.class); Logger logger = LoggerFactory.getLogger(ConsignmachiningInReturn.class);
@Autowired @Autowired
@ -303,10 +306,17 @@ public class ConsignmachiningInReturn extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private void getSet(List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList) throws Exception { private void getSet(List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
//过滤成功的数据 LOCK1.lock();
List<HeaderDetailsDto> headerDetailsDtos = filterData(returnGoodHeaderDetailsDataDtoArrayList); try {
//执行推送主逻辑 //过滤成功的数据
implement(headerDetailsDtos); List<HeaderDetailsDto> headerDetailsDtos = filterData(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implement(headerDetailsDtos);
} catch (Exception e) {
logger.error("getSet方法抛出异常", e);
} finally {
LOCK1.unlock();
}
} }
/** /**

View File

@ -39,6 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -54,6 +55,8 @@ import java.util.stream.Collectors;
*/ */
public class ProxyPurchaseReturn extends PluginBaseEntity { public class ProxyPurchaseReturn extends PluginBaseEntity {
private static final ReentrantLock LOCK1 = new ReentrantLock(true);
Logger logger = LoggerFactory.getLogger(ProxyPurchaseReturn.class); Logger logger = LoggerFactory.getLogger(ProxyPurchaseReturn.class);
@Autowired @Autowired
@ -355,10 +358,17 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private void getSet(List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList) throws Exception { private void getSet(List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
//过滤成功的数据 LOCK1.lock();
List<HeaderDetailsDto> headerDetailsDtos = filterData(returnGoodHeaderDetailsDataDtoArrayList); try {
//执行推送主逻辑 //过滤成功的数据
implement(headerDetailsDtos); List<HeaderDetailsDto> headerDetailsDtos = filterData(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implement(headerDetailsDtos);
} catch (Exception e) {
logger.error("getSet抛出异常", e);
} finally {
LOCK1.unlock();
}
} }
/** /**

View File

@ -35,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -51,6 +52,8 @@ import java.util.stream.Collectors;
*/ */
public class ProxyPurchaseWarehousOrder extends PluginBaseEntity { public class ProxyPurchaseWarehousOrder extends PluginBaseEntity {
private static final ReentrantLock LOCK1 = new ReentrantLock(true);
Logger logger = LoggerFactory.getLogger(ProxyPurchaseWarehousOrder.class); Logger logger = LoggerFactory.getLogger(ProxyPurchaseWarehousOrder.class);
@Autowired @Autowired
@ -355,10 +358,17 @@ public class ProxyPurchaseWarehousOrder extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private void getSet(List<OfsPoOrderData> allOfsPoOrderList) throws Exception { private void getSet(List<OfsPoOrderData> allOfsPoOrderList) throws Exception {
//过滤成功的数据 LOCK1.lock();
List<OfsPoOrderData> ofsPoOrderDataList = filterData(allOfsPoOrderList); try {
//执行推送主逻辑 //过滤成功的数据
implement(ofsPoOrderDataList); List<OfsPoOrderData> ofsPoOrderDataList = filterData(allOfsPoOrderList);
//执行推送主逻辑
implement(ofsPoOrderDataList);
} catch (Exception e) {
logger.error("getSet不能为空", e);
} finally {
LOCK1.unlock();
}
} }
/** /**

View File

@ -31,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -46,6 +47,8 @@ import java.util.stream.Collectors;
*/ */
public class ProxyPurchaseWarehousWarehouse extends PluginBaseEntity { public class ProxyPurchaseWarehousWarehouse extends PluginBaseEntity {
private static final ReentrantLock LOCK1 = new ReentrantLock(true);
Logger logger = LoggerFactory.getLogger(ProxyPurchaseWarehousWarehouse.class); Logger logger = LoggerFactory.getLogger(ProxyPurchaseWarehousWarehouse.class);
@Autowired @Autowired
@ -353,10 +356,17 @@ public class ProxyPurchaseWarehousWarehouse extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private void getSet(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception { private void getSet(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
//过滤成功的数据 LOCK1.lock();
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList); try {
//执行推送主逻辑 //过滤成功的数据
implement(stockinOrderList); List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implement(stockinOrderList);
} catch (Exception e) {
logger.error("getSet抛出异常", e);
} finally {
LOCK1.unlock();
}
} }
/** /**

View File

@ -46,6 +46,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -60,6 +61,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
Logger logger = LoggerFactory.getLogger(SoSaleReturnPluginInitializerToB.class); Logger logger = LoggerFactory.getLogger(SoSaleReturnPluginInitializerToB.class);
private static final ReentrantLock LOCK1 = new ReentrantLock(true);
private static final ReentrantLock LOCK2 = new ReentrantLock(true);
@Autowired @Autowired
private IBdCorpDao iBdCorpDao; private IBdCorpDao iBdCorpDao;
@ -429,12 +434,19 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private void getSetStock(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception { private void getSetStock(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
//保存到mysql LOCK1.lock();
batchInsert(returnGoodHeaderDetailsDataDtoArrayList); try {
//过滤成功的数据 //保存到mysql
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList); batchInsert(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑 //过滤成功的数据
implementStock(stockinOrderList); List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implementStock(stockinOrderList);
} catch (Exception e) {
logger.error("getSetStock方法抛出异常", e);
} finally {
LOCK1.unlock();
}
} }
/** /**
@ -443,12 +455,19 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private void getSetTrade(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception { private void getSetTrade(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
//保存到mysql LOCK2.lock();
batchInsert(returnGoodHeaderDetailsDataDtoArrayList); try {
//过滤成功的数据 //保存到mysql
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterDataTran(returnGoodHeaderDetailsDataDtoArrayList); batchInsert(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑 //过滤成功的数据
implementSuccessfulTrade(stockinOrderList); List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterDataTran(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implementSuccessfulTrade(stockinOrderList);
} catch (Exception e) {
logger.error("getSetTrade方法抛出异常", e);
} finally {
LOCK2.unlock();
}
} }
/** /**