添加应用中心管理代码

This commit is contained in:
daiqy88
2025-10-16 19:46:18 +08:00
parent 102bf931dd
commit d088ebe93a
10 changed files with 551 additions and 7 deletions

View File

@@ -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);

View File

@@ -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);
}
}

View File

@@ -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

View File

@@ -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<AppCenterItemBean> 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<AppConfigureBean> querySimulationAppConfig(@Param("appId") String appId);
@Select("SELECT * FROM simulation_app_configure WHERE ${condition}")
List<AppConfigureBean> querySimulationAppConfigByCondition(@Param("condition") String condition);
}

View File

@@ -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云应用 3hpc求解应用 4web应用
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; // 应用创建时间
}

View File

@@ -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; //创建时间
}

View File

@@ -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;
/**
* <p>
* 系统应用管理服务
* </p>
*
* @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);
}

View File

@@ -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);

View File

@@ -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<AppCenterItemBean> 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<AppCenterItemBean> 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<AppCenterItemBean> 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<AppCenterItemBean> 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<AppConfigureBean> 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<AppConfigureBean> 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<AppConfigureBean> configureBeans = appManageMapper.querySimulationAppConfig(appId);
response.setData(configureBeans);
return response;
}
}

View File

@@ -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;