refactor(buildpackage): 为关键方法添加同步锁和异常处理- 在 ConsignmachiningIn、ConsignmachiningInReturn、ProxyPurchaseReturn、ProxyPurchaseWarehousOrder、ProxyPurchaseWarehousWarehouse 和 SoSaleReturnPluginInitializerToB 类中,为 getSet、getSetStock 和 getSetTrade 方法添加了 ReentrantLock 同步锁
- 在上述方法中添加了 try-catch 块,用于捕获和记录异常 -这些修改旨在提高系统的稳定性和可靠性,防止并发问题,并确保异常情况得到妥善处理
This commit is contained in:
parent
e568ae8549
commit
3533460e6f
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue