From 6c4ddb00a50100cc02ffe32dd7b277b4f8e997c5 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Tue, 24 Sep 2024 14:41:40 +0800 Subject: [PATCH] =?UTF-8?q?refactor(lets-plugin):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=98=8E=E7=BB=86=E4=BF=A1=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在查询IntegrationTaskLivingDetailsEntity时,引入同步锁以保证线程安全。重构相关代码,提升可读性与性能。 另外,修正了一些可能的NullPointerException问题。 --- .../lets/plugin/outsourc/ConsignmachiningIn.java | 7 +++++++ .../plugin/outsourc/ConsignmachiningInReturn.java | 7 +++++++ .../lets/plugin/purchase/ProxyPurchaseReturn.java | 7 +++++++ .../purchase/ProxyPurchaseWarehousOrder.java | 7 +++++++ .../purchase/ProxyPurchaseWarehousWarehouse.java | 7 +++++++ .../sales/SoSaleOutPluginInitializerToB.java | 4 ++++ .../lets/util/SaveOrUpdateBusinessLogUtil.java | 14 +++++++++----- 7 files changed, 48 insertions(+), 5 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningIn.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningIn.java index 21404bbe..08785334 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningIn.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningIn.java @@ -153,6 +153,13 @@ public class ConsignmachiningIn extends PluginBaseEntity { if (craeteDateStr != null && !"".equals(craeteDateStr)) { splitDateAndPush(craeteDateStr); } + } else if (ProfilesActiveConstant.TYPE_DETAIL_ERROR.equals(requestJson.get("type"))) { + String integration_task_living_details_id = String.valueOf(requestJson.get("integration_task_living_details_id")); + Assert.notNull(integration_task_living_details_id, "明细行主键不能为空!"); + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = saveOrUpdateBusinessLogUtil.queryIntegrationTaskLivingDetailsEntity(integration_task_living_details_id); + if (integrationTaskLivingDetailsEntity != null && integrationTaskLivingDetailsEntity.getRootAppBill() != null) { + startImplement(integrationTaskLivingDetailsEntity.getRootAppBill()); + } } else { if (ProfilesActiveConstant.LETS_PROFILES_ACTIVE.equals(PROD_FILED)) { //默认被定时器执行,实时执行,计算时间偏移量 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java index d069dfda..93f2a8dc 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/outsourc/ConsignmachiningInReturn.java @@ -155,6 +155,13 @@ public class ConsignmachiningInReturn extends PluginBaseEntity { if (craeteDateStr != null && !"".equals(craeteDateStr)) { splitDateAndPush(craeteDateStr); } + } else if (ProfilesActiveConstant.TYPE_DETAIL_ERROR.equals(requestJson.get("type"))) { + String integration_task_living_details_id = String.valueOf(requestJson.get("integration_task_living_details_id")); + Assert.notNull(integration_task_living_details_id, "明细行主键不能为空!"); + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = saveOrUpdateBusinessLogUtil.queryIntegrationTaskLivingDetailsEntity(integration_task_living_details_id); + if (integrationTaskLivingDetailsEntity != null && integrationTaskLivingDetailsEntity.getRootAppBill() != null) { + startImplement(integrationTaskLivingDetailsEntity.getRootAppBill()); + } } else { if (ProfilesActiveConstant.LETS_PROFILES_ACTIVE.equals(PROD_FILED)) { //默认被定时器执行,实时执行,计算时间偏移量 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseReturn.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseReturn.java index 77d94cef..c788eae6 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseReturn.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseReturn.java @@ -152,6 +152,13 @@ public class ProxyPurchaseReturn extends PluginBaseEntity { if (craeteDateStr != null && !"".equals(craeteDateStr)) { splitDateAndPush(craeteDateStr); } + } else if (ProfilesActiveConstant.TYPE_DETAIL_ERROR.equals(requestJson.get("type"))) { + String integration_task_living_details_id = String.valueOf(requestJson.get("integration_task_living_details_id")); + Assert.notNull(integration_task_living_details_id, "明细行主键不能为空!"); + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = saveOrUpdateBusinessLogUtil.queryIntegrationTaskLivingDetailsEntity(integration_task_living_details_id); + if (integrationTaskLivingDetailsEntity != null && integrationTaskLivingDetailsEntity.getRootAppBill() != null) { + startImplement(integrationTaskLivingDetailsEntity.getRootAppBill()); + } } else { if (ProfilesActiveConstant.LETS_PROFILES_ACTIVE.equals(PROD_FILED)) { //默认被定时器执行,实时执行,计算时间偏移量 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousOrder.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousOrder.java index 9083bce0..7ccbb49b 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousOrder.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousOrder.java @@ -146,6 +146,13 @@ public class ProxyPurchaseWarehousOrder extends PluginBaseEntity { if (craeteDateStr != null && !"".equals(craeteDateStr)) { splitDateAndPush(craeteDateStr); } + } else if (ProfilesActiveConstant.TYPE_DETAIL_ERROR.equals(requestJson.get("type"))) { + String integration_task_living_details_id = String.valueOf(requestJson.get("integration_task_living_details_id")); + Assert.notNull(integration_task_living_details_id, "明细行主键不能为空!"); + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = saveOrUpdateBusinessLogUtil.queryIntegrationTaskLivingDetailsEntity(integration_task_living_details_id); + if (integrationTaskLivingDetailsEntity != null && integrationTaskLivingDetailsEntity.getRootAppBill() != null) { + startImplementByCode(integrationTaskLivingDetailsEntity.getRootAppBill()); + } } else { if (ProfilesActiveConstant.LETS_PROFILES_ACTIVE.equals(PROD_FILED)) { //默认被定时器执行,实时执行,计算时间偏移量 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousWarehouse.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousWarehouse.java index 1e3d8655..6225de4f 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousWarehouse.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehousWarehouse.java @@ -149,6 +149,13 @@ public class ProxyPurchaseWarehousWarehouse extends PluginBaseEntity { if (craeteDateStr != null && !"".equals(craeteDateStr)) { splitDateAndPush(craeteDateStr); } + } else if (ProfilesActiveConstant.TYPE_DETAIL_ERROR.equals(requestJson.get("type"))) { + String integration_task_living_details_id = String.valueOf(requestJson.get("integration_task_living_details_id")); + Assert.notNull(integration_task_living_details_id, "明细行主键不能为空!"); + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = saveOrUpdateBusinessLogUtil.queryIntegrationTaskLivingDetailsEntity(integration_task_living_details_id); + if (integrationTaskLivingDetailsEntity != null && integrationTaskLivingDetailsEntity.getRootAppBill() != null) { + startImplementByCode(integrationTaskLivingDetailsEntity.getRootAppBill()); + } } else { if (ProfilesActiveConstant.LETS_PROFILES_ACTIVE.equals(PROD_FILED)) { //默认被定时器执行,实时执行,计算时间偏移量 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java index f2a4d270..26bfdab6 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java @@ -23,6 +23,7 @@ import com.hzya.frame.plugin.lets.queryvo.StartAndEndVo; import com.hzya.frame.plugin.lets.u8cdto.*; import com.hzya.frame.plugin.lets.util.*; import com.hzya.frame.split.SplitListByCountUtil; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.DetailsDto; import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto; import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto; @@ -63,6 +64,9 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { @Autowired private ISoSaleorderBDao iSoSaleorderBDao; + @Autowired + private SaveOrUpdateBusinessLogUtil saveOrUpdateBusinessLogUtil; + @Autowired private OffsetTimeTime offsetTimeTime; diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/SaveOrUpdateBusinessLogUtil.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/SaveOrUpdateBusinessLogUtil.java index 11b8334e..ff630756 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/SaveOrUpdateBusinessLogUtil.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/SaveOrUpdateBusinessLogUtil.java @@ -171,17 +171,21 @@ public class SaveOrUpdateBusinessLogUtil { // } // } + private static final Object queryIntegrationTaskLivingDetailsEntityLock = new Object(); + /** * 根据明细id查询明细信息 * * @author liuyang */ public IntegrationTaskLivingDetailsEntity queryIntegrationTaskLivingDetailsEntity(String integration_task_living_details_id) { - IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); - integrationTaskLivingDetailsEntity.setId(integration_task_living_details_id); - IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity1 = iIntegrationTaskLivingDetailsDao.queryEntityById(integrationTaskLivingDetailsEntity); - Assert.notNull(integrationTaskLivingDetailsEntity, "根据主键id没有查询到明细信息"); - return integrationTaskLivingDetailsEntity1; + synchronized (queryIntegrationTaskLivingDetailsEntityLock) { + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); + integrationTaskLivingDetailsEntity.setId(integration_task_living_details_id); + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity1 = iIntegrationTaskLivingDetailsDao.queryEntityById(integrationTaskLivingDetailsEntity); + Assert.notNull(integrationTaskLivingDetailsEntity, "根据主键id没有查询到明细信息"); + return integrationTaskLivingDetailsEntity1; + } } /**