diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java index bcda8719..95aa6590 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java @@ -2,9 +2,11 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.R; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.factory.RemoteDeviceFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -33,4 +35,10 @@ public interface RemoteDeviceService { @PostMapping("/deviceTask/equipmentBKTask") public R equipmentBKTask(); + + @PostMapping("/deviceTask/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/deviceTask/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java index dea44c1f..99b4b6e6 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteMesService.java @@ -3,10 +3,9 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; - +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.factory.RemoteMesFallbackFactory; -import com.op.system.api.model.SapProOrder; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -41,4 +40,9 @@ public interface RemoteMesService { @PostMapping("/wcsInterface/dataBKTask") public R dataBKTask(); + + @PostMapping("/reportWork/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + @PostMapping("/reportWork/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java index e2095be2..74e0b1df 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteOpenService.java @@ -1,7 +1,9 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; +import com.op.common.core.domain.R; import com.op.common.core.web.domain.AjaxResult; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.factory.RemoteOpenFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -35,4 +37,10 @@ public interface RemoteOpenService { /**获取HR岗位信息**/ @GetMapping("/openInterface/GetHrDeptInfo") public AjaxResult GetHrDeptInfo(); + + @PostMapping("/openInterface/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/openInterface/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java index 92e89e1d..02778f6f 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java @@ -3,6 +3,7 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.factory.RemotePlanFallbackFactory; import com.op.system.api.model.SapProOrder; import org.springframework.cloud.openfeign.FeignClient; @@ -32,4 +33,9 @@ public interface RemotePlanService { @PostMapping("/order/syncSAPOrders") public R syncSAPOrders(); + @PostMapping("/order/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/order/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java index 768b7b65..f62f615f 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java @@ -2,6 +2,7 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.R; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; import com.op.system.api.domain.quality.QcCheckTaskWarehousingDTO; import com.op.system.api.factory.RemoteQualityFallbackFactory; @@ -31,4 +32,10 @@ public interface RemoteQualityService { @PostMapping("/qcIncome/createIncomeBatchTask") public R createIncomeBatchTask(); + + @PostMapping("/qcIncome/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/qcIncome/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 6a1b114b..dfd7d205 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -2,6 +2,7 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.R; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.sap.*; import com.op.system.api.factory.RemoteSapFallbackFactory; import com.op.system.api.model.SapProOrder; @@ -119,4 +120,9 @@ public interface RemoteSapService { @PostMapping("/sap/FPinventory") public R FPinventory(@RequestBody(required = false) Map<String, Object> mapList); + @PostMapping("/sap/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/sap/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteTechnologyService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteTechnologyService.java index a5743e07..3ba966b1 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteTechnologyService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteTechnologyService.java @@ -2,6 +2,7 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.R; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.factory.RemoteTechnologyFallbackFactory; import com.op.system.api.model.SapProOrder; import org.springframework.cloud.openfeign.FeignClient; @@ -22,4 +23,9 @@ public interface RemoteTechnologyService { @PostMapping("/order/sapAddOrder") public R<Boolean> sapAddOrder(@RequestBody SapProOrder sapProOrder); + @PostMapping("/pro/proroute/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/pro/proroute/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteWmsService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteWmsService.java new file mode 100644 index 00000000..12f7f808 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteWmsService.java @@ -0,0 +1,29 @@ +package com.op.system.api; + +import com.op.common.core.constant.ServiceNameConstants; +import com.op.common.core.domain.R; +import com.op.system.api.domain.DataSourcePropertyDTO; +import com.op.system.api.factory.RemoteWmsFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * 用户服务 + * + * @author OP + */ +@FeignClient(contextId = "remoteWmsService", value = ServiceNameConstants.WMS_SERVICE, fallbackFactory = RemoteWmsFallbackFactory.class) + + + +public interface RemoteWmsService { + + @PostMapping("/area/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); + + @PostMapping("/area/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dataSourceProperty); +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/DataSourcePropertyDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/DataSourcePropertyDTO.java new file mode 100644 index 00000000..17004e90 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/DataSourcePropertyDTO.java @@ -0,0 +1,80 @@ +package com.op.system.api.domain; + +/** + * @author zxl + * @date 2024年04月12日 11:57 + */ +public class DataSourcePropertyDTO { + private String poolName; + private String driverClassName; + private String url; + private String username; + private String password; + private String jndiName; + private Boolean seata = true; + private Boolean lazy; + + public String getPoolName() { + return poolName; + } + + public void setPoolName(String poolName) { + this.poolName = poolName; + } + + public String getDriverClassName() { + return driverClassName; + } + + public void setDriverClassName(String driverClassName) { + this.driverClassName = driverClassName; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getJndiName() { + return jndiName; + } + + public void setJndiName(String jndiName) { + this.jndiName = jndiName; + } + + public Boolean getSeata() { + return seata; + } + + public void setSeata(Boolean seata) { + this.seata = seata; + } + + public Boolean getLazy() { + return lazy; + } + + public void setLazy(Boolean lazy) { + this.lazy = lazy; + } +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java index 9868e0fb..866b659c 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java @@ -1,8 +1,8 @@ package com.op.system.api.factory; - import com.op.common.core.domain.R; import com.op.system.api.RemoteDeviceService; +import com.op.system.api.domain.DataSourcePropertyDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -47,6 +47,16 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory<RemoteDevice public R equipmentBKTask() { return R.fail("设备运行记录数据库备份失败"+throwable.getMessage()); } + + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("设备数据源创建失败:" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("设备数据源移除失败:" + throwable.getMessage()); + } }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java index 3390c0a0..18338955 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteMesFallbackFactory.java @@ -4,6 +4,7 @@ import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; import com.op.system.api.RemoteMesService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; @@ -55,6 +56,16 @@ public class RemoteMesFallbackFactory implements FallbackFactory<RemoteMesServic public R dataBKTask() { return R.fail("数据库备份失败:" + throwable.getMessage()); } + + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("mes数据源创建失败:" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("mes数据源删除失败:" + throwable.getMessage()); + } }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java index 40aa7c51..443f8c9e 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteOpenFallbackFactory.java @@ -1,8 +1,9 @@ package com.op.system.api.factory; - +import com.op.common.core.domain.R; import com.op.common.core.web.domain.AjaxResult; import com.op.system.api.RemoteOpenService; +import com.op.system.api.domain.DataSourcePropertyDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -44,6 +45,16 @@ public class RemoteOpenFallbackFactory implements FallbackFactory<RemoteOpenServ public AjaxResult GetHrDeptInfo() { return AjaxResult.error("获取HR部门信息失败"+throwable.getMessage()); } + + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("open数据源创建失败:" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("open数据源删除失败:" + throwable.getMessage()); + } }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java index c559d0d7..6fd4f8de 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java @@ -1,8 +1,8 @@ package com.op.system.api.factory; -import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; import com.op.system.api.RemotePlanService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,6 +33,18 @@ public class RemotePlanFallbackFactory implements FallbackFactory<RemotePlanServ public R syncSAPOrders() { return R.fail("定时任务更新订单失败:" + throwable.getMessage()); } + + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("计划数据源创建失败:" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("计划数据源删除失败:" + throwable.getMessage()); + } + + }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java index 01e7bf34..717a9f63 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java @@ -1,8 +1,8 @@ package com.op.system.api.factory; - import com.op.common.core.domain.R; import com.op.system.api.RemoteQualityService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; import com.op.system.api.domain.quality.QcCheckTaskWarehousingDTO; import org.slf4j.Logger; @@ -42,6 +42,16 @@ public class RemoteQualityFallbackFactory implements FallbackFactory<RemoteQuali public R createIncomeBatchTask() { return R.fail("来料检验批量检验任务创建失败:" + throwable.getMessage()); } + + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("质量数据源创建失败:" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("质量数据源移除失败:" + throwable.getMessage()); + } }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index e5c12f88..eebdb006 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -2,13 +2,12 @@ package com.op.system.api.factory; import com.op.common.core.domain.R; import com.op.system.api.RemoteSapService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.sap.*; import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; @@ -129,6 +128,16 @@ public class RemoteSapFallbackFactory implements FallbackFactory<RemoteSapServic return R.fail("成品备货单获取失败" + throwable.getMessage()); } + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("sap新增数据源失败" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("sap数据源删除失败" + throwable.getMessage()); + } + }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteTechnologyFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteTechnologyFallbackFactory.java index 68f2b418..0dd12e79 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteTechnologyFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteTechnologyFallbackFactory.java @@ -2,6 +2,7 @@ package com.op.system.api.factory; import com.op.common.core.domain.R; import com.op.system.api.RemoteTechnologyService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,6 +27,16 @@ public class RemoteTechnologyFallbackFactory implements FallbackFactory<RemoteTe return R.fail("新增SAP订单失败:" + throwable.getMessage()); } + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("工艺新增数据源失败:" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("工艺移除数据源失败:" + throwable.getMessage()); + } + }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteWmsFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteWmsFallbackFactory.java new file mode 100644 index 00000000..4b74eaa5 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteWmsFallbackFactory.java @@ -0,0 +1,39 @@ +package com.op.system.api.factory; + +import com.op.common.core.domain.R; +import com.op.system.api.RemoteWmsService; +import com.op.system.api.domain.DataSourcePropertyDTO; +import com.op.system.api.domain.dto.WCSDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 用户服务降级处理 + * + * @author OP + */ +@Component +public class RemoteWmsFallbackFactory implements FallbackFactory<RemoteWmsService> { + private static final Logger log = LoggerFactory.getLogger(RemoteWmsFallbackFactory.class); + + @Override + public RemoteWmsService create(Throwable throwable) { + log.error("Wms服务调用失败:{}", throwable.getMessage()); + return new RemoteWmsService() { + @Override + public R addDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("mes数据源创建失败:" + throwable.getMessage()); + } + + @Override + public R removeDatasource(DataSourcePropertyDTO dataSourceProperty) { + return R.fail("mes数据源删除失败:" + throwable.getMessage()); + } + }; + } +} + diff --git a/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 113093cf..3bff05e2 100644 --- a/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -8,3 +8,4 @@ com.op.system.api.factory.RemoteSapFallbackFactory com.op.system.api.factory.RemoteDeviceFallbackFactory com.op.system.api.factory.RemoteQualityFallbackFactory com.op.system.api.factory.RemoteOpenFallbackFactory +com.op.system.api.factory.RemoteWmsFallbackFactory diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceTaskController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceTaskController.java index 228bf576..e6ec6d70 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceTaskController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceTaskController.java @@ -1,17 +1,18 @@ package com.op.device.controller; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.op.common.core.domain.R; import com.op.common.core.web.domain.AjaxResult; -import com.op.device.domain.EquOrder; -import com.op.device.domain.EquPlan; -import com.op.device.domain.EquRepairOrder; -import com.op.device.domain.EquRepairWorkOrder; -import com.op.device.service.IDevicePDAService; +import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.device.service.IDeviceTaskService; -import com.op.device.service.IEquRepairOrderService; +import com.op.system.api.domain.DataSourcePropertyDTO; +import com.op.common.core.utils.bean.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; + /** * DeviceTaskController * @@ -24,7 +25,10 @@ public class DeviceTaskController { @Autowired private IDeviceTaskService taskService; - + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 点检计划生成 * @@ -96,4 +100,20 @@ public class DeviceTaskController { } return R.fail("设备运行记录数据库备份失败"); } + + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index 4f1c22df..92ea2b92 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -6,28 +6,30 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; +import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; + +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.op.common.core.domain.ExcelCol; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.poi.ExcelMapUtil; import com.op.common.core.utils.uuid.IdUtils; -import com.op.common.security.utils.SecurityUtils; +import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.mes.domain.*; import com.op.mes.domain.dto.LineChartDto; import com.op.mes.domain.dto.SysFactoryDto; -import com.op.system.api.RemoteSapService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.device.EquEquipmentDTO; -import com.op.system.api.domain.dto.MesPrepareDTO; import com.op.system.api.domain.dto.MesPrepareDetailDTO; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; -import com.op.system.api.domain.sap.SapMaterialPreparation; import org.apache.commons.lang.StringUtils; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -36,8 +38,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.op.common.log.annotation.Log; -import com.op.common.log.enums.BusinessType; import com.op.common.security.annotation.RequiresPermissions; import com.op.mes.service.IMesReportWorkService; import com.op.common.core.web.controller.BaseController; @@ -56,7 +56,10 @@ import com.op.common.core.utils.poi.ExcelUtilDailyReport; public class MesReportWorkController extends BaseController { @Autowired private IMesReportWorkService mesReportWorkService; - + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 查询报工报表列表 */ @@ -467,7 +470,21 @@ public class MesReportWorkController extends BaseController { List<MesReportWorkConsume> rlist = mesReportWorkService.getWarehouseList(workConsume); return rlist; } + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index f8ddb0e3..b1b8a35b 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -326,7 +326,7 @@ left join base_equipment be on pow.workorder_name = be.equipment_code and be.equipment_type_code = 'equ_type_bzx' where pow.workorder_name = #{equCode} and pow.status = 'w2' and CONVERT ( DATE, pow.product_date ) = CONVERT ( DATE, GETDATE( ) ) - and pow.parent_order = '0' + and pow.parent_order = '0' and pow.del_flag='0' </select> </mapper> diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index 060784c5..fa4910b8 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -1,19 +1,22 @@ package com.op.open.controller; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; +import com.op.common.core.domain.R; import com.op.common.core.utils.StringUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; +import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.open.service.OpenService; -import com.op.system.api.RemoteQualityService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.quality.QcCheckTaskProduceDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; - -import java.util.List; +import javax.annotation.Resource; import java.util.Map; - +import com.op.common.core.utils.bean.BeanUtils; /** * mes上位机专属 * @@ -26,8 +29,10 @@ public class OpenController extends BaseController { @Autowired private OpenService openService; - - + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 下一工序机台集合获取 * •接口描述:成型机码垛完、暂存区、WCS 请求 MES 获取目的地集合 @@ -185,4 +190,19 @@ public class OpenController extends BaseController { return openService.GetHrPostInfo(); } + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index f4e5a02a..71ec4418 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -2,13 +2,8 @@ package com.op.open.service.impl; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.op.common.core.constant.Constants; -import com.op.common.core.context.SecurityContextHolder; -import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.http.HttpUtils; @@ -17,43 +12,24 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; import com.op.open.mapper.OpenMapper; import com.op.open.service.OpenService; -import com.op.system.api.RemoteSapService; -import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.device.DeviceRepairOrder; import com.op.system.api.domain.device.EquRepairOrderDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDataDTO; -import com.op.system.api.domain.mes.MesReportWorkConsumeDTO; -import com.op.system.api.domain.mes.MesReportWorkDTO; -import com.op.system.api.domain.mes.ProOrderWorkorderDTO; import com.op.system.api.domain.mes.ProRfidProcessDetail; import com.op.system.api.domain.quality.*; -import com.op.system.api.domain.sap.SapCloseOrderQuery; -import com.op.system.api.domain.sap.SapRFW; import org.apache.commons.lang.StringUtils; -import org.apache.http.HttpResponse; +import java.time.LocalDateTime; +import java.time.Duration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; import java.math.BigDecimal; -import java.net.HttpURLConnection; -import java.net.URL; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -327,6 +303,17 @@ public class OpenServiceImpl implements OpenService { public int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce) { DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskProduce.getFactoryCode()); + + // 创建两个日期时间对象 +// LocalDateTime dateTime1 = LocalDateTime.of(2023, 1, 1, 10, 30); // 2023年1月1日 10:30 +// LocalDateTime dateTime2 = LocalDateTime.now(); // 2023年1月2日 11:45 +// // 计算分钟差 +// long minutesBetween = Duration.between(dateTime1, dateTime2).toMinutes(); +// if(minutesBetween<=1){ +// logger.info("++++++++++++检验任务1分钟内生成过,不再重复创建++++++++++++++"); +// return 0; +// } + qcCheckTaskProduce.setCreateTime(DateUtils.getNowDate()); String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java index 08a18768..2bc863f3 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java @@ -2,19 +2,20 @@ package com.op.plan.controller; import java.io.IOException; import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; + +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.op.common.core.utils.bean.BeanUtils; import java.util.List; +import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; - +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.op.common.core.domain.ExcelCol; import com.op.common.core.domain.R; -import com.op.common.core.utils.DateUtils; -import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.poi.ExcelMapUtil; -import com.op.common.security.utils.SecurityUtils; +import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.plan.domain.dto.SplitOrderDTO; +import com.op.system.api.domain.DataSourcePropertyDTO; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -47,7 +48,11 @@ import org.springframework.web.multipart.MultipartFile; public class ProOrderController extends BaseController { @Autowired private IProOrderService proOrderService; + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 通过订单Code查询级联订单信息并封装返回 * @@ -309,4 +314,19 @@ public class ProOrderController extends BaseController { return AjaxResult.error(); } } + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java index c952d900..abd919ba 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java @@ -9,26 +9,27 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; +import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.*; -import com.op.system.api.RemoteOpenService; import com.op.system.api.RemoteSapService; import com.op.system.api.RemoteUserService; -import com.op.system.api.domain.SysRole; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.SysUser; -import com.op.system.api.domain.quality.HRInfo; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; -import com.op.system.api.domain.sap.SapSupplier; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; @@ -69,6 +70,10 @@ public class QcCheckTaskIncomeController extends BaseController { @Autowired private RemoteSapService remoteSapService; + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 查询来料检验列表 */ @@ -451,4 +456,20 @@ public class QcCheckTaskIncomeController extends BaseController { List<QcCheckTaskIncome> list = qcCheckTaskIncomeService.getCkeckProjectXJList(qcCheckTaskIncome); return getDataTable(list); } + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } + } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index 6306ecab..94251f85 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -1,8 +1,12 @@ package com.op.sap.controller; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; +import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.web.controller.BaseController; +import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; import com.op.sap.domain.vo.*; @@ -10,6 +14,7 @@ import com.op.sap.mapper.SapBomMapper; import com.op.sap.service.*; import com.op.system.api.RemoteUserService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.sap.*; import com.op.system.api.domain.sap.SapCustom; @@ -20,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.util.Calendar; import java.util.Date; import java.util.List; @@ -60,6 +66,10 @@ public class SapController extends BaseController { @Autowired private SapWmsService sapWmsService; + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /**====================主数据相关===================================================================================*/ /** * 物料同步接口 @@ -521,5 +531,19 @@ public class SapController extends BaseController { public R incomingConversion(@RequestBody(required = false) Map<String, Object> mapList) { return sapItemSyncService.incomingConversion(mapList); } + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } } diff --git a/op-modules/op-system/src/main/java/com/op/system/mapper/SysDatasourceMapper.java b/op-modules/op-system/src/main/java/com/op/system/mapper/SysDatasourceMapper.java index b2ac4385..c0fe1e05 100644 --- a/op-modules/op-system/src/main/java/com/op/system/mapper/SysDatasourceMapper.java +++ b/op-modules/op-system/src/main/java/com/op/system/mapper/SysDatasourceMapper.java @@ -76,4 +76,6 @@ public interface SysDatasourceMapper { List<SysDatasource> selectDBListByDept(SysDatasource qo); void deletUserDB(String userCode); + + void deleteUserByIds(String[] ids); } diff --git a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDatasourceServiceImpl.java b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDatasourceServiceImpl.java index 4a2cfedc..429dd5fd 100644 --- a/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDatasourceServiceImpl.java +++ b/op-modules/op-system/src/main/java/com/op/system/service/impl/SysDatasourceServiceImpl.java @@ -1,10 +1,14 @@ package com.op.system.service.impl; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; +import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.datasource.creator.DynamicDatasourceCreator; +import com.op.system.api.*; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.SysUser; import com.op.system.domain.SysDatasource; import com.op.system.mapper.SysDatasourceMapper; @@ -43,6 +47,24 @@ public class SysDatasourceServiceImpl implements ISysDatasourceService { private String driver; @Resource private DynamicDatasourceCreator dynamicDatasourceCreator; + @Autowired + private RemoteQualityService remoteQualityService; + @Autowired + private RemotePlanService remotePlanService; + @Autowired + private RemoteMesService remoteMesService; + @Autowired + private RemoteWmsService remoteWmsService; + @Autowired + private RemoteDeviceService remoteDeviceService; + @Autowired + private RemoteOpenService remoteOpenService; + @Autowired + private RemoteSapService remoteSapService; + @Autowired + private RemoteTechnologyService remoteTechnologyService; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 查询工厂数据库 @@ -118,7 +140,32 @@ public class SysDatasourceServiceImpl implements ISysDatasourceService { */ @Override public int deleteSysDatasourceByIds(String[] ids) { - return sysDatasourceMapper.deleteSysDatasourceByIds(ids); + + for(String id:ids){ + SysDatasource sysDatasource = sysDatasourceMapper.selectSysDatasourceById(id); + DataSourcePropertyDTO dataSourceProperty = new DataSourcePropertyDTO(); + dataSourceProperty.setPoolName(sysDatasource.getPoolName()); + dynamicRoutingDataSource.removeDataSource(sysDatasource.getPoolName()); +// //计划删除数据源 +// remotePlanService.removeDatasource(dataSourceProperty); + //质量删除数据源 + remoteQualityService.removeDatasource(dataSourceProperty); +// //mes删除数据源 +// remoteMesService.removeDatasource(dataSourceProperty); + //wms删除数据源 + remoteWmsService.removeDatasource(dataSourceProperty); +// //device删除数据源 +// remoteDeviceService.removeDatasource(dataSourceProperty); +// //open删除数据源 +// remoteOpenService.removeDatasource(dataSourceProperty); +// //sap删除数据源 +// remoteSapService.removeDatasource(dataSourceProperty); +// //工艺删除数据源 +// remoteTechnologyService.removeDatasource(dataSourceProperty); + } + sysDatasourceMapper.deleteSysDatasourceByIds(ids); + sysDatasourceMapper.deleteUserByIds(ids); + return 1; } /** @@ -217,6 +264,25 @@ public class SysDatasourceServiceImpl implements ISysDatasourceService { dataSourceProperty.setLazy(false); dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + DataSourcePropertyDTO dto = new DataSourcePropertyDTO(); + BeanUtils.copyProperties(dataSourceProperty,dto); + //计划加入数据源 +// remotePlanService.addDatasource(dto); + //质量加入数据源 + remoteQualityService.addDatasource(dto); +// //mes加入数据源 +// remoteMesService.addDatasource(dto); + //wms加入数据源 + remoteWmsService.addDatasource(dto); +// //device加入数据源 +// remoteDeviceService.addDatasource(dto); +// //open加入数据源 +// remoteOpenService.addDatasource(dto); +// //sap加入数据源 +// remoteSapService.addDatasource(dto); +// //工艺加入数据源 +// remoteTechnologyService.addDatasource(dto); + return "数据库链接测试成功,数据库链接状态正常"; } catch (ClassNotFoundException | SQLException classNotFoundException) { return "数据库链接异常,请检查数据库基本信息。"; diff --git a/op-modules/op-system/src/main/resources/mapper/system/SysDatasourceMapper.xml b/op-modules/op-system/src/main/resources/mapper/system/SysDatasourceMapper.xml index 558b903b..f076c8d6 100644 --- a/op-modules/op-system/src/main/resources/mapper/system/SysDatasourceMapper.xml +++ b/op-modules/op-system/src/main/resources/mapper/system/SysDatasourceMapper.xml @@ -193,4 +193,10 @@ <delete id="deletUserDB"> delete from sys_user_datasource where user_id =#{userCode} </delete> + <delete id="deleteUserByIds"> + delete from sys_user_datasource where datasource_id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> </mapper> diff --git a/op-modules/op-technology/src/main/java/com/op/technology/controller/ProRouteController.java b/op-modules/op-technology/src/main/java/com/op/technology/controller/ProRouteController.java index c899cb77..c71154ba 100644 --- a/op-modules/op-technology/src/main/java/com/op/technology/controller/ProRouteController.java +++ b/op-modules/op-technology/src/main/java/com/op/technology/controller/ProRouteController.java @@ -1,18 +1,24 @@ package com.op.technology.controller; import java.util.List; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; import com.op.common.core.domain.R; +import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.poi.ExcelUtil; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.page.TableDataInfo; import com.op.common.core.web.controller.BaseController; +import com.op.common.datasource.creator.DynamicDatasourceCreator; import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; import com.op.common.security.annotation.RequiresPermissions; import com.op.system.api.RemoteSapService; +import com.op.system.api.domain.DataSourcePropertyDTO; import com.op.system.api.domain.sap.SapRouterQuery; import com.op.technology.domain.ProRoute; import com.op.technology.service.IProRouteProcessService; @@ -45,7 +51,10 @@ public class ProRouteController extends BaseController { @Autowired private RemoteSapService remoteSapService; - + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 查询工艺路线列表 */ @@ -148,4 +157,20 @@ public class ProRouteController extends BaseController { } return AjaxResult.error("手动同步失败"); } + + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseAreaController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseAreaController.java index c0011ec5..465d03ed 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseAreaController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseAreaController.java @@ -1,8 +1,15 @@ package com.op.wms.controller; import java.util.List; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; +import com.op.common.core.domain.R; +import com.op.common.core.utils.bean.BeanUtils; +import com.op.common.datasource.creator.DynamicDatasourceCreator; +import com.op.system.api.domain.DataSourcePropertyDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -33,7 +40,10 @@ import com.op.common.core.web.page.TableDataInfo; public class BaseAreaController extends BaseController { @Autowired private IBaseAreaService baseAreaService; - + @Resource + private DynamicDatasourceCreator dynamicDatasourceCreator; + @Resource + private DynamicRoutingDataSource dynamicRoutingDataSource; /** * 查询库区列表 */ @@ -101,4 +111,20 @@ public class BaseAreaController extends BaseController { public AjaxResult remove(@PathVariable String[] areaIds) { return toAjax(baseAreaService.deleteBaseAreaByAreaIds(areaIds)); } + @PostMapping("/addDatasource") + public R addDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicDatasourceCreator.createDynamicDataSource(dataSourceProperty); + return R.ok(); + } + + @PostMapping("/removeDatasource") + public R removeDatasource(@RequestBody DataSourcePropertyDTO dto){ + DataSourceProperty dataSourceProperty = new DataSourceProperty(); + BeanUtils.copyProperties(dto,dataSourceProperty); + dynamicRoutingDataSource.removeDataSource(dataSourceProperty.getPoolName()); + return R.ok(); + } + } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java index 2f4b896e..d326c2be 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java @@ -348,7 +348,7 @@ public class BaseProduct extends BaseEntity { * 报工汇率 */ @Excel(name = "报工汇率") - private Integer reportRate; + private BigDecimal reportRate; public void setCategory(String category) { this.category = category; @@ -790,12 +790,12 @@ public class BaseProduct extends BaseEntity { return mtart; } - public void setReportRate(Integer reportRate) { - this.reportRate = reportRate; + public BigDecimal getReportRate() { + return reportRate; } - public Integer getReportRate() { - return reportRate; + public void setReportRate(BigDecimal reportRate) { + this.reportRate = reportRate; } @Override