8-14 新增支出类型数据库,修复项目立项时未分配主负责人时后端异常问题

This commit is contained in:
郝彬 2025-08-14 17:53:27 +08:00
parent 1083efd2bd
commit 8224c2105d
7 changed files with 147 additions and 1 deletions

View File

@ -0,0 +1,27 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("expense_type")
@ApiModel(value="ExpenseTypeEntity对象", description="支出类型表")
public class ExpenseTypeEntity {
@TableId(type = IdType.AUTO)
private Integer Id;
@ApiModelProperty("支出类型名称")
private String name;
@ApiModelProperty("父级id")
private Integer parentId;
}

View File

@ -0,0 +1,11 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.ExpenseTypeEntity;
import org.mapstruct.Mapper;
import java.util.List;
public interface ExpenseTypeMapper extends BaseMapper<ExpenseTypeEntity> {
List<ExpenseTypeEntity> search(String key);
}

View File

@ -0,0 +1,11 @@
package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.ExpenseTypeEntity;
import org.springframework.stereotype.Service;
import java.util.List;
public interface ExpenseTypeService extends IService<ExpenseTypeEntity> {
List<ExpenseTypeEntity> search(String key);
}

View File

@ -0,0 +1,18 @@
package com.dite.znpt.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dite.znpt.mapper.ExpenseTypeMapper;
import com.dite.znpt.domain.entity.ExpenseTypeEntity;
import com.dite.znpt.service.ExpenseTypeService;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ExpenseTypeServiceImpl extends ServiceImpl<ExpenseTypeMapper, ExpenseTypeEntity> implements ExpenseTypeService {
@Override
public List<ExpenseTypeEntity> search(String key) {
return this.baseMapper.search(key);
}
}

View File

@ -119,7 +119,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, ProjectEntity
constructorName.append(userIdMap.get(id).getName()).append(StrUtil.COMMA);
}
});
constructorName.deleteCharAt(constructorName.lastIndexOf(StrUtil.COMMA));
if(!constructorName.isEmpty()){
constructorName.deleteCharAt(constructorName.lastIndexOf(StrUtil.COMMA));
}
resp.setConstructorName(constructorName.toString());
}
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dite.znpt.mapper.ExpenseTypeMapper">
<select id="search" resultType="com.dite.znpt.domain.entity.ExpenseTypeEntity">
SELECT * FROM expense_type WHERE name LIKE CONCAT('%', #{key}, '%')
</select>
</mapper>

View File

@ -0,0 +1,68 @@
package com.dite.znpt.web.controller;
import cn.hutool.core.io.LimitedInputStream;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.entity.ExpenseTypeEntity;
import com.dite.znpt.service.ExpenseTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Api(tags = "支出类型信息")
@RestController
@RequestMapping("/expenseType")
public class ExpenseTypeController {
@Resource
private ExpenseTypeService expenseTypeService;
@GetMapping("")
@ApiOperation(value = "查询一级支出类型", httpMethod = "GET")
public Result<List<ExpenseTypeEntity>> list() {
QueryWrapper<ExpenseTypeEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("parent_id");
List<ExpenseTypeEntity> list = expenseTypeService.list(queryWrapper);
return Result.ok(list);
}
@GetMapping("/{pid}")
@ApiOperation(value = "查询二级支出类型", httpMethod = "GET")
public Result<List<ExpenseTypeEntity>> list2(@PathVariable Integer pid) {
QueryWrapper<ExpenseTypeEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("parent_id", pid);
List<ExpenseTypeEntity> list = expenseTypeService.list(queryWrapper);
return Result.ok(list);
}
@PostMapping("")
@ApiOperation(value = "新增支出类型", httpMethod = "POST")
public Result<Boolean> save(@RequestBody ExpenseTypeEntity expenseTypeEntity) {
boolean b = expenseTypeService.save(expenseTypeEntity);
return Result.ok(b);
}
@PutMapping("")
@ApiOperation(value = "更新支出类型", httpMethod = "PUT")
public Result<Boolean> update(@RequestBody ExpenseTypeEntity expenseTypeEntity) {
boolean b = expenseTypeService.updateById(expenseTypeEntity);
return Result.ok(b);
}
@DeleteMapping("/{id}")
@ApiOperation(value = "删除支出类型", httpMethod = "DELETE")
public Result<Boolean> delete(@PathVariable Integer id) {
boolean b = expenseTypeService.removeById(id);
return Result.ok(b);
}
@GetMapping("search/{key}")
@ApiOperation(value = "查询支出类型", httpMethod = "GET")
public Result<List<ExpenseTypeEntity>> search(@PathVariable String key) {
List<ExpenseTypeEntity> list = expenseTypeService.search(key);
return Result.ok(list);
}
}