修改了项目基本信息新增方法
This commit is contained in:
parent
349722797e
commit
0daf0adacc
@ -8,6 +8,8 @@ import io.gisbi.config.ResponseResult;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 应用系统 前端控制器
|
* 应用系统 前端控制器
|
||||||
@ -41,7 +43,7 @@ public class ApplicationController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/save")
|
@PostMapping("/save")
|
||||||
public ResponseResult save(@RequestBody Application application) {
|
public ResponseResult save(@RequestBody Application application) {
|
||||||
return ResponseResult.successData(applicationService.createApplication(application));
|
return ResponseResult.successData(applicationService.createApplication(application));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,7 +49,7 @@ public class Application implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建日期
|
* 创建日期
|
||||||
*/
|
*/
|
||||||
private Long createdate;
|
private LocalDateTime createdate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应用描述
|
* 应用描述
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
package io.gisbi.application.baseinfo.mapper;
|
package io.gisbi.application.baseinfo.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import io.gisbi.application.baseinfo.domain.Application;
|
import io.gisbi.application.baseinfo.domain.Application;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -14,5 +17,6 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface ApplicationMapper extends BaseMapper<Application> {
|
public interface ApplicationMapper extends BaseMapper<Application> {
|
||||||
|
@Select("SELECT MAX(CAST(code AS UNSIGNED)) FROM app_application")
|
||||||
|
Integer getMaxCode();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package io.gisbi.application.baseinfo.service.impl;
|
package io.gisbi.application.baseinfo.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.assist.ISqlRunner;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import io.gisbi.application.baseinfo.domain.Application;
|
import io.gisbi.application.baseinfo.domain.Application;
|
||||||
import io.gisbi.application.baseinfo.mapper.ApplicationMapper;
|
import io.gisbi.application.baseinfo.mapper.ApplicationMapper;
|
||||||
import io.gisbi.application.baseinfo.service.IApplicationService;
|
import io.gisbi.application.baseinfo.service.IApplicationService;
|
||||||
@ -9,6 +11,10 @@ import jakarta.annotation.Resource;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 应用系统 服务实现类
|
* 应用系统 服务实现类
|
||||||
@ -21,11 +27,51 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Application> implements IApplicationService {
|
public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Application> implements IApplicationService {
|
||||||
@Resource
|
@Resource
|
||||||
private IModuleService moduleService;
|
private IModuleService moduleService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ApplicationMapper applicationMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean createApplication(Application application) {
|
public boolean createApplication(Application application) {
|
||||||
this.save(application);
|
// 参数校验
|
||||||
moduleService.initAppModules(application.getId());
|
if (application == null) {
|
||||||
return true;
|
throw new IllegalArgumentException("应用信息不能为空");
|
||||||
|
}
|
||||||
|
if (application.getName() == null || application.getName().trim().isEmpty()) {
|
||||||
|
throw new IllegalArgumentException("应用名称不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查应用名称是否已存在
|
||||||
|
long count = this.count(new QueryWrapper<Application>().eq("name", application.getName()));
|
||||||
|
if (count > 0) {
|
||||||
|
throw new IllegalArgumentException("应用名称已存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成自增编号逻辑
|
||||||
|
try {
|
||||||
|
Integer maxCode = applicationMapper.getMaxCode();
|
||||||
|
maxCode = (maxCode != null) ? maxCode : 0;
|
||||||
|
String formattedCode = String.format("%06d", maxCode + 1);
|
||||||
|
application.setCode(formattedCode);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("生成应用编号失败", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置基础字段
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
application.setType("01"); // 数据分析类项目
|
||||||
|
application.setStatus("01"); // 初始创建
|
||||||
|
application.setCreatedate(now);
|
||||||
|
application.setLastmodifydate(now);
|
||||||
|
|
||||||
|
// 保存应用并初始化模块
|
||||||
|
try {
|
||||||
|
this.save(application);
|
||||||
|
moduleService.initAppModules(application.getId());
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("创建应用失败", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user