diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java index 30dfcdcab..d338620d7 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java @@ -27,10 +27,8 @@ import com.glxp.api.service.basic.BasicCollectUserService; import com.glxp.api.service.basic.SysWorkplaceDocumentService; import com.glxp.api.service.collect.*; import com.glxp.api.util.IntUtil; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.dao.CannotAcquireLockException; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; @@ -167,6 +165,7 @@ public class IoCollectOriginController extends BaseController { * @return */ @PostMapping("/udiwms/basic/collect/origin/order/errorHandle") + @ExceptionHandler(CannotAcquireLockException.class) public BaseResponse errorHandle(@RequestBody CollectOrderRequest collectOrderRequest) { return collectOriginService.errorHandle(collectOrderRequest); } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java index 82a69e502..fd726b2be 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOriginService.java @@ -32,11 +32,17 @@ import com.glxp.api.res.basic.BasicSkPrescribeResponse; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; import com.glxp.api.service.basic.*; import com.glxp.api.util.BeanCopyUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; +import org.springframework.dao.CannotAcquireLockException; +import org.springframework.dao.DeadlockLoserDataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.ExceptionHandler; import javax.annotation.Resource; +import java.sql.SQLException; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; @@ -46,6 +52,7 @@ import java.util.List; * 原始单据下载 */ @Service +@Slf4j public class IoCollectOriginService { @Resource private ErpBasicClient erpBasicClient; @@ -75,6 +82,7 @@ public class IoCollectOriginService { @Resource private BasicProductsDao basicProductsDao; + @Transactional(isolation = Isolation.READ_COMMITTED) public BaseResponse downloadOrderV2(CollectOrderRequest collectOrderRequest) { //条件 String busType = collectOrderRequest.getBusType(); @@ -107,7 +115,8 @@ public class IoCollectOriginService { * * @param collectOrderRequest */ -// @Transactional(rollbackFor = Exception.class) + @Transactional(isolation = Isolation.READ_COMMITTED) + @ExceptionHandler(CannotAcquireLockException.class) public BaseResponse errorHandle(CollectOrderRequest collectOrderRequest) { if (StrUtil.isBlank(collectOrderRequest.getBillNo())) { throw new JsonException(500, "单据号不能为空"); diff --git a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java index dfb23f581..c7e4c68d7 100644 --- a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java +++ b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java @@ -21,6 +21,8 @@ import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.collect.IoCollectOrderService; import com.glxp.api.util.IntUtil; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; @@ -86,6 +88,7 @@ public class ThrOrderDownload implements IDownload { * @param thrOrderEntities * @param collectOrderRequest */ + @Transactional(isolation = Isolation.READ_COMMITTED) public BaseResponse importThrOrder(List thrOrderEntities, CollectOrderRequest collectOrderRequest) { List ioCollectOrderList = new ArrayList<>(); if (CollUtil.isNotEmpty(thrOrderEntities)) { diff --git a/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java b/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java index f894c8b8e..52ef199b4 100644 --- a/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java +++ b/src/main/java/com/glxp/api/service/collect/down/YPCF002Download.java @@ -11,6 +11,8 @@ import com.glxp.api.service.collect.IoCollectOrderService; import com.glxp.api.util.IntUtil; import org.jfree.util.Log; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; @@ -25,6 +27,7 @@ public class YPCF002Download implements IDownload { ThrOrderDownload thrOrderDownload; @Override + @Transactional(isolation = Isolation.READ_COMMITTED) public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) { int page = 1; diff --git a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderReprocessTask.java b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderReprocessTask.java index 1a6dae334..478d034df 100644 --- a/src/main/java/com/glxp/api/task/AsyncIoCollectOrderReprocessTask.java +++ b/src/main/java/com/glxp/api/task/AsyncIoCollectOrderReprocessTask.java @@ -31,6 +31,7 @@ import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.sql.SQLException; import java.util.Date; import java.util.List; @@ -63,6 +64,7 @@ public class AsyncIoCollectOrderReprocessTask implements SchedulingConfigurer { }); } + private void process() { ThreadUtil.execAsync(() -> { //获取异常单据 @@ -79,7 +81,7 @@ public class AsyncIoCollectOrderReprocessTask implements SchedulingConfigurer { collectOrderRequest.setBusType(ioCollectOrderOrigin.getBusType()); //获取当前时间 collectOriginService.errorHandle(collectOrderRequest); - }catch (Exception e){ + } catch (Exception e){ logger.error(e.getMessage()); } }