diff --git a/common/src/main/java/com/sdm/common/service/BaseService.java b/common/src/main/java/com/sdm/common/service/BaseService.java index 654a9c04..7f2083b8 100644 --- a/common/src/main/java/com/sdm/common/service/BaseService.java +++ b/common/src/main/java/com/sdm/common/service/BaseService.java @@ -4,7 +4,7 @@ import java.util.UUID; public class BaseService { - private static String generateUuid(String prefix) + public static String generateUuid(String prefix) { String millis = String.valueOf(System.currentTimeMillis()); return prefix+UUID.randomUUID()+millis.substring(8); diff --git a/system/src/main/java/com/sdm/system/controller/SimulationAppCenterController.java b/system/src/main/java/com/sdm/system/controller/SimulationAppCenterController.java new file mode 100644 index 00000000..878ff6b3 --- /dev/null +++ b/system/src/main/java/com/sdm/system/controller/SimulationAppCenterController.java @@ -0,0 +1,91 @@ +package com.sdm.system.controller; + +import com.sdm.common.common.SdmResponse; +import com.sdm.system.model.bo.DataDictionary; +import com.sdm.system.model.bo.DictionaryClass; +import com.sdm.system.model.bo.FormConfigure; +import com.sdm.system.model.entity.AppCenterItemBean; +import com.sdm.system.model.entity.AppConfigureBean; +import com.sdm.system.service.ISimulatinoAppCenterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping(value = "/appCenter") +public class SimulationAppCenterController { + + @Autowired + private ISimulatinoAppCenterService service; + + @PostMapping(value = "/addApplication") + @ResponseBody + SdmResponse addSimulationApplication(@RequestBody AppCenterItemBean appBean) + { + return service.addSimulationApp(appBean); + } + + @PostMapping(value = "/updateApplication") + @ResponseBody + SdmResponse updateSimulationApplication(@RequestBody AppCenterItemBean appBean) + { + return service.updateSimulationApp(appBean); + } + + @GetMapping(value = "/deleteApplication") + @ResponseBody + SdmResponse deleteSimulationApplication(@RequestParam("appId") String appId) + { + return service.deleteSimulationApp(appId); + } + + @GetMapping(value = "/queryAllApplication") + @ResponseBody + SdmResponse queryAllSimulationApplication() + { + return service.querySimulationAllApp(); + } + + @GetMapping(value = "/queryApplicationByType") + @ResponseBody + SdmResponse querySimulationApplicationByType(@RequestParam("appType") int appType,@RequestParam(required = false,name = "machineCode")String machineCode,@RequestParam(required = false,name = "user")String user) + { + return service.querySimulationByType(appType,machineCode,user); + } + + @PostMapping(value = "/addApplicationConfig") + @ResponseBody + SdmResponse addSimulationAppConfig(@RequestBody AppConfigureBean configureBean) + { + return service.addSimulationAppConfig(configureBean); + } + + @PostMapping(value = "/updateApplicationConfig") + @ResponseBody + SdmResponse updateSimulationAppConfig(@RequestBody AppConfigureBean configureBean) + { + return service.updateSimulationAppConfig(configureBean); + } + + @GetMapping(value = "/deleteApplicationConfig") + @ResponseBody + SdmResponse deleteSimulationAppConfig(@RequestParam("configId") int configId) + { + return service.deleteSimulationAppConfig(configId); + } + + @GetMapping(value = "/deleteApplicationAllConfig") + @ResponseBody + SdmResponse deleteSimulationAppAllConfig(@RequestParam("appId") String appId) + { + return service.deleteSimulationAppAllConfig(appId); + } + + @GetMapping(value = "/queryApplicationConfig") + @ResponseBody + SdmResponse querySimulationAppConfig(@RequestParam("appId") String appId) + { + return service.querySimulationAppConfig(appId); + } + +} + diff --git a/system/src/main/java/com/sdm/system/controller/SimulationAdminController.java b/system/src/main/java/com/sdm/system/controller/SimulationSystemConfigController.java similarity index 95% rename from system/src/main/java/com/sdm/system/controller/SimulationAdminController.java rename to system/src/main/java/com/sdm/system/controller/SimulationSystemConfigController.java index 8a1344b8..08587d93 100644 --- a/system/src/main/java/com/sdm/system/controller/SimulationAdminController.java +++ b/system/src/main/java/com/sdm/system/controller/SimulationSystemConfigController.java @@ -4,16 +4,16 @@ import com.sdm.common.common.SdmResponse; import com.sdm.system.model.bo.DataDictionary; import com.sdm.system.model.bo.DictionaryClass; import com.sdm.system.model.bo.FormConfigure; -import com.sdm.system.service.ISimulationSystemAdminService; +import com.sdm.system.service.ISimulationSystemConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping(value = "/systemData") -public class SimulationAdminController { +public class SimulationSystemConfigController { @Autowired - private ISimulationSystemAdminService service; + private ISimulationSystemConfigService service; @PostMapping(value = "/addDictionaryData") @ResponseBody diff --git a/system/src/main/java/com/sdm/system/dao/SimulationAppManageMapper.java b/system/src/main/java/com/sdm/system/dao/SimulationAppManageMapper.java new file mode 100644 index 00000000..91d411f5 --- /dev/null +++ b/system/src/main/java/com/sdm/system/dao/SimulationAppManageMapper.java @@ -0,0 +1,46 @@ +package com.sdm.system.dao; + +import com.sdm.common.common.SdmResponse; +import com.sdm.system.model.bo.DataDictionary; +import com.sdm.system.model.bo.DictionaryClass; +import com.sdm.system.model.bo.FormConfigure; +import com.sdm.system.model.entity.AppCenterItemBean; +import com.sdm.system.model.entity.AppConfigureBean; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface SimulationAppManageMapper { + + @Insert("INSERT INTO simulation_app_repository(uuid,appName,appType,appPath,appStatus,appImage,appVersion,appVendor,machineCode,comment,tenantId,creator) VALUES (#{itemBean.uuid},#{itemBean.appName},#{itemBean.appType},#{itemBean.appPath},#{itemBean.appStatus},#{itemBean.appImage},#{itemBean.appVersion},#{itemBean.appVendor},#{itemBean.machineCode},#{itemBean.comment},#{itemBean.tenantId},#{itemBean.creator})") + int addSimulationApp(@Param("itemBean") AppCenterItemBean itemBean); + + @Update("UPDATE simulation_app_repository SET appName=#{itemBean.appName},appType=#{itemBean.appType},appPath=#{itemBean.appPath},appStatus=#{itemBean.appStatus},appImage=#{itemBean.appImage},appVersion=#{itemBean.appVersion},appVendor=#{itemBean.appVendor},machineCode=#{itemBean.machineCode},comment=#{itemBean.comment} WHERE uuid=#{itemBean.uuid}") + int updateSimulationApp(@Param("itemBean") AppCenterItemBean itemBean); + + @Delete("DELETE FROM simulation_app_repository WHERE uuid=#{appId}") + int deleteSimulationApp(@Param("appId") String appId); + + @Select("SELECT * FROM simulation_app_repository WHERE ${condition}") + List querySimulationAppByCondition(@Param("condition") String condition); + + @Insert("INSERT INTO simulation_app_configure(appId,appName,configName,configType,configValue,comment,creator) VALUES(#{appConfig.appId},#{appConfig.appName},#{appConfig.configName},#{appConfig.configType},#{appConfig.configValue},#{appConfig.comment},#{appConfig.creator})") + int addSimulationAppConfig(@Param("appConfig")AppConfigureBean appConfig); + + @Update("UPDATE simulation_app_configure SET appId=#{appConfig.appId},appName=#{appConfig.appName}, configName=#{appConfig.configName},configType=#{appConfig.configType},configValue=#{appConfig.configValue},comment=#{appConfig.comment} WHERE id=#{appConfig.id}") + int updateSimulationAppConfig(@Param("appConfig")AppConfigureBean appConfig); + + @Delete("DELETE FROM simulation_app_configure WHERE id = #{configId}") + int deleteSimulationAppConfig(@Param("configId")int configId); + + @Delete("DELETE FROM simulation_app_configure WHERE appId = #{appId}") + int deleteSimulationAppAllConfig(@Param("appId")String appId); + + @Select("SELECT * FROM simulation_app_configure WHERE appId=#{appId}") + List querySimulationAppConfig(@Param("appId") String appId); + + @Select("SELECT * FROM simulation_app_configure WHERE ${condition}") + List querySimulationAppConfigByCondition(@Param("condition") String condition); + +} diff --git a/system/src/main/java/com/sdm/system/model/entity/AppCenterItemBean.java b/system/src/main/java/com/sdm/system/model/entity/AppCenterItemBean.java new file mode 100644 index 00000000..ed05bc51 --- /dev/null +++ b/system/src/main/java/com/sdm/system/model/entity/AppCenterItemBean.java @@ -0,0 +1,42 @@ +package com.sdm.system.model.entity; + +import com.sdm.common.entity.bo.BaseBean; +import lombok.Data; + +/** + * 应用中心具体应用 + */ +public class AppCenterItemBean extends BaseBean { + + public AppCenterItemBean() { + init(); + appStatus = 1; + } + public int id; + + public String uuid; // 应用唯一ID + + public String appName; // 应用名称 + + public int appType; // 应用类型 1:本地应用 2:云应用 3:hpc求解应用 4:web应用 + + public String appPath; //应用启动路径 + + public int appStatus; // 应用状态 0:禁用 1:可用 + + public String appImage; //应用图标 + + public String appVersion; // 应用版本 + + public String appVendor; //应用供应商 + + public String machineCode; //本地应用所属机器机器码 + + public String comment; // 应用描述 + + public String tenantId; //租户ID + + public String creator; // 应用创建者 + + public String createTime; // 应用创建时间 +} diff --git a/system/src/main/java/com/sdm/system/model/entity/AppConfigureBean.java b/system/src/main/java/com/sdm/system/model/entity/AppConfigureBean.java new file mode 100644 index 00000000..989fcbc8 --- /dev/null +++ b/system/src/main/java/com/sdm/system/model/entity/AppConfigureBean.java @@ -0,0 +1,30 @@ +package com.sdm.system.model.entity; + +import com.sdm.common.entity.bo.BaseBean; + +/** + * 应用关联的配置信息 + */ +public class AppConfigureBean extends BaseBean { + + public AppConfigureBean() { + init(); + } + public int id; + + public String appId; //关联应用UUID + + public String appName; + + public String configName; //配置名称 + + public String configValue; //配置内容 + + public int configType;//配置类型 + + public String creator; //创建者 + + public String comment; //配置描述 + + public String createTime; //创建时间 +} diff --git a/system/src/main/java/com/sdm/system/service/ISimulatinoAppCenterService.java b/system/src/main/java/com/sdm/system/service/ISimulatinoAppCenterService.java new file mode 100644 index 00000000..304a5608 --- /dev/null +++ b/system/src/main/java/com/sdm/system/service/ISimulatinoAppCenterService.java @@ -0,0 +1,91 @@ +package com.sdm.system.service; + + +import com.sdm.common.common.SdmResponse; +import com.sdm.system.model.entity.AppCenterItemBean; +import com.sdm.system.model.entity.AppConfigureBean; + +/** + *

+ * 系统应用管理服务 + *

+ * + * @author author + * @since 2025-10-15 + */ +public interface ISimulatinoAppCenterService { + + /** + * 向应用中心添加应用 + * @param appBean + * @return + */ + SdmResponse addSimulationApp(AppCenterItemBean appBean); + + /** + * 更新应用 + * @param appBean + * @return + */ + SdmResponse updateSimulationApp(AppCenterItemBean appBean); + + /** + * 删除应用 + * @param appId + * @return + */ + SdmResponse deleteSimulationApp(String appId); + + /** + * 查询应用中心所有应用 + * @return + */ + SdmResponse querySimulationAllApp(); + + /** + * 根据类型查询应用 + * @param type + * @param machineCode 查询本地应用,用户机器的机器码 + * @param creator 查询本地应用,用户名称 + * @return + */ + SdmResponse querySimulationByType(int type,String machineCode,String creator); + + + /** + * 添加应用配置信息 + * @param configureBean + * @return + */ + SdmResponse addSimulationAppConfig(AppConfigureBean configureBean); + + /** + * 更新应用配置信息 + * @param configureBean + * @return + */ + SdmResponse updateSimulationAppConfig(AppConfigureBean configureBean); + + /** + * 删除某条应用配置信息 + * @param configId + * @return + */ + SdmResponse deleteSimulationAppConfig(int configId); + + /** + * 删除应用所有配置信息 + * @param appId + * @return + */ + SdmResponse deleteSimulationAppAllConfig(String appId); + + /** + * 查询应用配置信息 + * @param appId + * @return + */ + SdmResponse querySimulationAppConfig(String appId); + + +} diff --git a/system/src/main/java/com/sdm/system/service/ISimulationSystemAdminService.java b/system/src/main/java/com/sdm/system/service/ISimulationSystemConfigService.java similarity index 95% rename from system/src/main/java/com/sdm/system/service/ISimulationSystemAdminService.java rename to system/src/main/java/com/sdm/system/service/ISimulationSystemConfigService.java index 834002cd..12b7ac77 100644 --- a/system/src/main/java/com/sdm/system/service/ISimulationSystemAdminService.java +++ b/system/src/main/java/com/sdm/system/service/ISimulationSystemConfigService.java @@ -5,7 +5,7 @@ import com.sdm.system.model.bo.DataDictionary; import com.sdm.system.model.bo.DictionaryClass; import com.sdm.system.model.bo.FormConfigure; -public interface ISimulationSystemAdminService { +public interface ISimulationSystemConfigService { SdmResponse addDataDictionary(DataDictionary dict); diff --git a/system/src/main/java/com/sdm/system/service/impl/SimulationAppCenterServiceImpl.java b/system/src/main/java/com/sdm/system/service/impl/SimulationAppCenterServiceImpl.java new file mode 100644 index 00000000..af4b4db5 --- /dev/null +++ b/system/src/main/java/com/sdm/system/service/impl/SimulationAppCenterServiceImpl.java @@ -0,0 +1,244 @@ +package com.sdm.system.service.impl; + +import com.sdm.common.common.SdmResponse; +import com.sdm.common.service.BaseService; +import com.sdm.system.dao.SimulationAppManageMapper; +import com.sdm.system.model.entity.AppCenterItemBean; +import com.sdm.system.model.entity.AppConfigureBean; +import com.sdm.system.service.ISimulatinoAppCenterService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Service +public class SimulationAppCenterServiceImpl extends BaseService implements ISimulatinoAppCenterService { + @Autowired + private SimulationAppManageMapper appManageMapper; + + /** + * 判定是否有重名应用 + * @param appBean + * @return + */ + private boolean bHasSameNameSimulationApp(AppCenterItemBean appBean){ + String queryCondition = " appName='"+appBean.appName+"' AND appType="+appBean.appType; + if(appBean.appType == 1)//本地应用,通过应用安装机器机器码和应用所属用户 + { + queryCondition += " AND machineCode='"+appBean.machineCode+"' AND creator='"+appBean.creator+"'"; + } + List appList = appManageMapper.querySimulationAppByCondition(queryCondition); + return !appList.isEmpty(); + } + /** + * 添加应用 + * @param appBean + * @return + */ + @Override + public SdmResponse addSimulationApp(AppCenterItemBean appBean) { + + SdmResponse response = SdmResponse.success(); + appBean.uuid = generateUuid("app_center_"); + if(bHasSameNameSimulationApp(appBean)) + { + response = SdmResponse.failed("应用名称已存在"); + } + else if(appManageMapper.addSimulationApp(appBean) <= 0) + { + response = SdmResponse.failed("添加应用失败"); + } + return response; + } + + /** + * 修改应用 + * @param appBean + * @return + */ + @Override + public SdmResponse updateSimulationApp(AppCenterItemBean appBean) { + SdmResponse response = SdmResponse.success(); + String queryCondition = " uuid='"+appBean.uuid+"'"; + List appList = appManageMapper.querySimulationAppByCondition(queryCondition); + if(appList.isEmpty()) + { + response = SdmResponse.failed("应用不存在"); + } + else + { + AppCenterItemBean orgBean = appList.get(0); + if((!orgBean.appName.equals(appBean.appName) || orgBean.appType != appBean.appType) && bHasSameNameSimulationApp(appBean)) //app名称有修改或者应用类型修改,需要判定是否有重名 + { + response = SdmResponse.failed("应用名称已存在"); + } + else if(appManageMapper.updateSimulationApp(appBean) <= 0) + { + response = SdmResponse.failed("修改应用失败"); + } + } + return response; + } + + /** + * 删除应用 + * @param appId + * @return + */ + @Override + public SdmResponse deleteSimulationApp(String appId) { + SdmResponse response = SdmResponse.success(); + if(appManageMapper.deleteSimulationApp(appId) <= 0) + { + response = SdmResponse.failed("删除应用失败"); + } + return response; + } + + /** + * 查询系统所有应用 + * @return + */ + @Override + public SdmResponse querySimulationAllApp() { + SdmResponse response = SdmResponse.success(); + String queryCondition = "true"; + List appBeans = appManageMapper.querySimulationAppByCondition(queryCondition); + response.setData(appBeans); + return response; + } + + /** + * 通过类型查询应用 + * @param type + * @param machineCode 查询本地应用,用户机器的机器码 + * @param creator 查询本地应用,用户名称 + * @return + */ + @Override + public SdmResponse querySimulationByType(int type, String machineCode, String creator) { + SdmResponse response = SdmResponse.success(); + if(machineCode == null) + machineCode = ""; + if(creator == null) + creator = ""; + String queryCondition = "appType="+type; + if(type == 1)//本地应用 + { + queryCondition += " AND machineCode='"+machineCode+"' AND creator='"+creator+"'"; + } + List appBeans = appManageMapper.querySimulationAppByCondition(queryCondition); + response.setData(appBeans); + return response; + } + + /** + * 判定是否有同名的配置 + * @param configureBean + * @return + */ + private boolean bHasSameNameConfig(AppConfigureBean configureBean) + { + String queryCondition = " appId='"+configureBean.appId+"' AND configName='"+configureBean.configName+"'"; + List configureBeans = appManageMapper.querySimulationAppConfigByCondition(queryCondition); + return !configureBeans.isEmpty(); + } + + /** + * 添加应用配置信息 + * @param configureBean + * @return + */ + @Override + public SdmResponse addSimulationAppConfig(AppConfigureBean configureBean) { + SdmResponse response = SdmResponse.success(); + if(bHasSameNameConfig(configureBean)) + { + response = SdmResponse.failed("存在同名的配置"); + } + else if(appManageMapper.addSimulationAppConfig(configureBean) <= 0) + { + response = SdmResponse.failed("添加应用配置失败"); + } + + return response; + } + + + /** + * 更新应用配置 + * @param configureBean + * @return + */ + @Override + public SdmResponse updateSimulationAppConfig(AppConfigureBean configureBean) { + + SdmResponse response = SdmResponse.success(); + String queryCondition = " id="+configureBean.id; + List configureBeans = appManageMapper.querySimulationAppConfigByCondition(queryCondition); + if(configureBeans.isEmpty()) + { + response = SdmResponse.failed("应用配置不存在"); + } + else + { + AppConfigureBean orgBean = configureBeans.get(0); + if((!configureBean.appId.equals(orgBean.appId) || !configureBean.configName.equals(orgBean.configName)) && bHasSameNameConfig(configureBean)) + { + response = SdmResponse.failed("存在同名的配置"); + } + else if (appManageMapper.updateSimulationAppConfig(configureBean) <= 0) + { + response = SdmResponse.failed("修改配置失败"); + } + } + + return response; + } + + /** + * 删除单条应用配置 + * @param configId + * @return + */ + @Override + public SdmResponse deleteSimulationAppConfig(int configId) { + SdmResponse response = SdmResponse.success(); + if(appManageMapper.deleteSimulationAppConfig(configId) < 0) + { + response = SdmResponse.failed("删除配置失败"); + } + return response; + } + + /** + * 删除应用所有配置 + * @param appId + * @return + */ + @Override + public SdmResponse deleteSimulationAppAllConfig(String appId) { + SdmResponse response = SdmResponse.success(); + if(appManageMapper.deleteSimulationAppAllConfig(appId) < 0) + { + response = SdmResponse.failed("删除应用配置失败"); + } + return response; + } + + /** + * 获取应用配置 + * @param appId + * @return + */ + @Override + public SdmResponse querySimulationAppConfig(String appId) { + SdmResponse response = SdmResponse.success(); + List configureBeans = appManageMapper.querySimulationAppConfig(appId); + response.setData(configureBeans); + return response; + } +} diff --git a/system/src/main/java/com/sdm/system/service/impl/SimulationSystemAdminServiceImpl.java b/system/src/main/java/com/sdm/system/service/impl/SimulationSystemConfigServiceImpl.java similarity index 97% rename from system/src/main/java/com/sdm/system/service/impl/SimulationSystemAdminServiceImpl.java rename to system/src/main/java/com/sdm/system/service/impl/SimulationSystemConfigServiceImpl.java index 18d07f0a..369fdac6 100644 --- a/system/src/main/java/com/sdm/system/service/impl/SimulationSystemAdminServiceImpl.java +++ b/system/src/main/java/com/sdm/system/service/impl/SimulationSystemConfigServiceImpl.java @@ -8,14 +8,14 @@ import com.sdm.system.dao.SimulationSystemMapper; import com.sdm.system.model.bo.DataDictionary; import com.sdm.system.model.bo.DictionaryClass; import com.sdm.system.model.bo.FormConfigure; -import com.sdm.system.service.ISimulationSystemAdminService; +import com.sdm.system.service.ISimulationSystemConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service -public class SimulationSystemAdminServiceImpl extends BaseService implements ISimulationSystemAdminService { +public class SimulationSystemConfigServiceImpl extends BaseService implements ISimulationSystemConfigService { @Autowired private SimulationSystemMapper mapper;