修改了项目基本信息新增方法

This commit is contained in:
root 2025-04-02 09:08:01 +08:00
parent 349722797e
commit 0daf0adacc
4 changed files with 59 additions and 7 deletions

View File

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

View File

@ -49,7 +49,7 @@ public class Application implements Serializable {
/** /**
* 创建日期 * 创建日期
*/ */
private Long createdate; private LocalDateTime createdate;
/** /**
* 应用描述 * 应用描述

View File

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

View File

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