科目修改

This commit is contained in:
guoshengxiong 2024-09-09 19:38:19 +08:00
parent 6ca42bae44
commit 81e92184cb
6 changed files with 150 additions and 93 deletions

View File

@ -14,12 +14,10 @@ import com.zhgd.xmgl.modules.cost.dto.CostBulletinDto;
import com.zhgd.xmgl.modules.cost.dto.CostDynamicDto; import com.zhgd.xmgl.modules.cost.dto.CostDynamicDto;
import com.zhgd.xmgl.modules.cost.entity.CostSubject; import com.zhgd.xmgl.modules.cost.entity.CostSubject;
import com.zhgd.xmgl.modules.cost.service.ICostSubjectService; import com.zhgd.xmgl.modules.cost.service.ICostSubjectService;
import com.zhgd.xmgl.modules.exam.entity.ExamQuestionBank;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo;
import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.project.service.IProjectService;
import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.ExcelUtils;
import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PageUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -29,14 +27,12 @@ import io.swagger.annotations.ApiOperation;
import java.io.*; import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.net.URLDecoder;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import com.zhgd.xmgl.modules.cost.entity.CostBudget; import com.zhgd.xmgl.modules.cost.entity.CostBudget;
import com.zhgd.xmgl.modules.cost.service.ICostBudgetService; import com.zhgd.xmgl.modules.cost.service.ICostBudgetService;
@ -57,7 +53,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
@ -84,7 +79,7 @@ public class CostBudgetController {
@Autowired @Autowired
private ICompanyService companyService; private ICompanyService companyService;
@Autowired @Autowired
private FileStorageProperties fileStorageProperties; private FileStorageProperties fileStorageProperties;
@ -100,12 +95,13 @@ public class CostBudgetController {
@PostMapping(value = "/tree") @PostMapping(value = "/tree")
public Result<List<CostBudgetDto>> tree(@ApiIgnore @RequestBody Map<String, Object> map) { public Result<List<CostBudgetDto>> tree(@ApiIgnore @RequestBody Map<String, Object> map) {
String projectSn = MapUtils.getString(map, "projectSn"); String projectSn = MapUtils.getString(map, "projectSn");
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); map.put("sn", projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn())); // ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
map.put("companySn", company.getHeadquartersSn()); // Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
// map.put("companySn", company.getHeadquartersSn());
QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map); QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map);
queryWrapper.lambda().eq(CostSubject::getType, projectInfoBySn.getProjectLx()); // queryWrapper.lambda().eq(CostSubject::getType, projectInfoBySn.getProjectLx());
List<CostBudgetDto> list = costBudgetService.tree(queryWrapper, projectInfoBySn); List<CostBudgetDto> list = costBudgetService.tree(queryWrapper, projectSn);
return Result.success(list); return Result.success(list);
} }
@ -317,7 +313,7 @@ public class CostBudgetController {
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn())); Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
LambdaQueryWrapper<CostSubject> wrapper = Wrappers.<CostSubject>lambdaQuery() LambdaQueryWrapper<CostSubject> wrapper = Wrappers.<CostSubject>lambdaQuery()
.eq(CostSubject::getCompanySn, company.getHeadquartersSn()) .eq(CostSubject::getSn, company.getHeadquartersSn())
.eq(CostSubject::getType, projectInfoBySn.getProjectLx()); .eq(CostSubject::getType, projectInfoBySn.getProjectLx());
List<CostSubject> subjectList = costSubjectService.list(wrapper); List<CostSubject> subjectList = costSubjectService.list(wrapper);
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@ -416,7 +412,7 @@ public class CostBudgetController {
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn())); Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
LambdaQueryWrapper<CostSubject> wrapper = Wrappers.<CostSubject>lambdaQuery() LambdaQueryWrapper<CostSubject> wrapper = Wrappers.<CostSubject>lambdaQuery()
.eq(CostSubject::getCompanySn, company.getHeadquartersSn()) .eq(CostSubject::getSn, company.getHeadquartersSn())
.eq(CostSubject::getType, projectInfoBySn.getProjectLx()); .eq(CostSubject::getType, projectInfoBySn.getProjectLx());
List<CostSubject> subjectList = costSubjectService.list(wrapper); List<CostSubject> subjectList = costSubjectService.list(wrapper);
ImportParams params = new ImportParams(); ImportParams params = new ImportParams();

View File

@ -128,11 +128,12 @@ public class CostContractPlanController {
Project id = projectService.getById(projectId); Project id = projectService.getById(projectId);
projectSn = id.getProjectSn(); projectSn = id.getProjectSn();
} }
map.put("sn", projectSn);
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn())); // Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
map.put("companySn", company.getHeadquartersSn()); // map.put("companySn", company.getHeadquartersSn());
QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map); QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map);
queryWrapper.lambda().eq(CostSubject::getType, projectInfoBySn.getProjectLx()); // queryWrapper.lambda().eq(CostSubject::getType, projectInfoBySn.getProjectLx());
List<CostContractPlanDto> list = costContractPlanService.tree(queryWrapper, projectInfoBySn); List<CostContractPlanDto> list = costContractPlanService.tree(queryWrapper, projectInfoBySn);
return Result.success(list); return Result.success(list);
} }
@ -328,11 +329,12 @@ public class CostContractPlanController {
@PostMapping(value = "/dynamicTree") @PostMapping(value = "/dynamicTree")
public Result<List<DynamicCostDto>> dynamicTree(@ApiIgnore @RequestBody Map<String, Object> map) { public Result<List<DynamicCostDto>> dynamicTree(@ApiIgnore @RequestBody Map<String, Object> map) {
String projectSn = MapUtils.getString(map, "projectSn"); String projectSn = MapUtils.getString(map, "projectSn");
map.put("sn", projectSn);
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn())); // Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
map.put("companySn", company.getHeadquartersSn()); // map.put("companySn", company.getHeadquartersSn());
QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map); QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map);
queryWrapper.lambda().eq(CostSubject::getType, projectInfoBySn.getProjectLx()); // queryWrapper.lambda().eq(CostSubject::getType, projectInfoBySn.getProjectLx());
List<DynamicCostDto> list = costContractPlanService.dynamicTree(queryWrapper, projectInfoBySn); List<DynamicCostDto> list = costContractPlanService.dynamicTree(queryWrapper, projectInfoBySn);
return Result.success(list); return Result.success(list);
} }

View File

@ -1,55 +1,45 @@
package com.zhgd.xmgl.modules.cost.controller; package com.zhgd.xmgl.modules.cost.controller;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gexin.fastjson.JSON;
import com.zhgd.annotation.OperLog; import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.basicdata.entity.Company; import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService; import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
import com.zhgd.xmgl.modules.cost.vo.CostSubjectVo; import com.zhgd.xmgl.modules.cost.entity.CostBudget;
import com.zhgd.xmgl.modules.cost.entity.CostSubject;
import com.zhgd.xmgl.modules.cost.service.ICostBudgetService;
import com.zhgd.xmgl.modules.cost.service.ICostSubjectService;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo;
import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.project.service.IProjectService;
import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PageUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.jeecg.common.util.oConvertUtils;
import com.zhgd.xmgl.modules.cost.entity.CostSubject;
import com.zhgd.xmgl.modules.cost.service.ICostSubjectService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.context.annotation.Lazy;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.bind.annotation.RequestMapping;
import com.alibaba.fastjson.JSON; import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* @Title: Controller * @Title: Controller
@ -71,6 +61,9 @@ public class CostSubjectController {
@Autowired @Autowired
private ICompanyService companyService; private ICompanyService companyService;
@Lazy
@Autowired
private ICostBudgetService costBudgetService;
/** /**
* 分页列表查询 * 分页列表查询
@ -124,7 +117,7 @@ public class CostSubjectController {
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn())); Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
List<CostSubject> list = costSubjectService.list(Wrappers.<CostSubject>lambdaQuery() List<CostSubject> list = costSubjectService.list(Wrappers.<CostSubject>lambdaQuery()
.eq(CostSubject::getCompanySn, company.getHeadquartersSn()) .eq(CostSubject::getSn, company.getHeadquartersSn())
.eq(CostSubject::getType, projectInfoBySn.getProjectLx())); .eq(CostSubject::getType, projectInfoBySn.getProjectLx()));
for (CostSubject subject : list) { for (CostSubject subject : list) {
long count = list.stream().filter(l -> l.getParentId().toString().equals(subject.getId().toString())).count(); long count = list.stream().filter(l -> l.getParentId().toString().equals(subject.getId().toString())).count();
@ -135,35 +128,6 @@ public class CostSubjectController {
return Result.success(lastNodeList); return Result.success(lastNodeList);
} }
/**
* 列表查询
*
* @param map
* @return
*/
@OperLog(operModul = "成本科目管理", operType = "列表查询", operDesc = "列表查询成本科目信息")
@ApiOperation(value = " 列表查询成本科目信息", notes = "列表查询成本科目信息", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "页数", paramType = "body", required = true, defaultValue = "1", dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", paramType = "body", required = true, defaultValue = "10", dataType = "Integer"),
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", dataType = "String"),
@ApiImplicitParam(name = "companySn", value = "企业SN", paramType = "body", dataType = "String")
})
@PostMapping(value = "/tree")
public Result<Page<CostSubject>> tree(@ApiIgnore @RequestBody Map<String, Object> map) {
String projectSn = MapUtils.getString(map, "projectSn");
if (StringUtils.isNotBlank(projectSn)) {
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
map.put("companySn", company.getHeadquartersSn());
map.put("type", projectInfoBySn.getProjectLx());
}
Page<CostSubject> page = PageUtil.getPage(map);
QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map);
Page<CostSubject> list = costSubjectService.tree(page, queryWrapper);
return Result.success(list);
}
// /** // /**
// * 列表查询 // * 列表查询
// * // *
@ -192,6 +156,34 @@ public class CostSubjectController {
// return Result.success(list); // return Result.success(list);
// } // }
/**
* 列表查询
*
* @param map
* @return
*/
@OperLog(operModul = "成本科目管理", operType = "列表查询", operDesc = "列表查询成本科目信息")
@ApiOperation(value = " 列表查询成本科目信息", notes = "列表查询成本科目信息", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo", value = "页数", paramType = "body", required = true, defaultValue = "1", dataType = "Integer"),
@ApiImplicitParam(name = "pageSize", value = "每页条数", paramType = "body", required = true, defaultValue = "10", dataType = "Integer"),
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", dataType = "String"),
@ApiImplicitParam(name = "companySn", value = "企业SN", paramType = "body", dataType = "String")
})
@PostMapping(value = "/tree")
public Result<Page<CostSubject>> tree(@ApiIgnore @RequestBody Map<String, Object> map) {
String projectSn = MapUtils.getString(map, "projectSn");
if (StringUtils.isNotBlank(projectSn)) {
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
map.put("companySn", company.getHeadquartersSn());
// map.put("type", projectInfoBySn.getProjectLx());
}
Page<CostSubject> page = PageUtil.getPage(map);
QueryWrapper<CostSubject> queryWrapper = QueryGenerator.initPageQueryWrapper(CostSubject.class, map);
Page<CostSubject> list = costSubjectService.tree(page, queryWrapper);
return Result.success(list);
}
/** /**
* 添加 * 添加
@ -278,4 +270,70 @@ public class CostSubjectController {
} }
return result; return result;
} }
@OperLog(operModul = "成本科目管理", operType = "", operDesc = "引入成本科目信息")
@ApiOperation(value = "引入成本科目信息", notes = "引入成本科目信息", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "sn", value = "企业SN或项目SN", paramType = "body", required = true, dataType = "String"),
@ApiImplicitParam(name = "toLevelType", value = "引入到级别类型2:公司控制科目;3:项目控制科目;", paramType = "body", required = true, dataType = "Integer"),
})
@PostMapping(value = "/introduceCostSubject")
public Result introduceCostSubject(@RequestBody Map<String, Object> param) {
Integer toLevelType = MapUtils.getInteger(param, "toLevelType");
String sn = MapUtils.getString(param, "sn");
List<CostSubject> exists = costSubjectService.list(new LambdaQueryWrapper<CostSubject>().eq(CostSubject::getSn, sn));
Set<String> existCodes = exists.stream().map(CostSubject::getCode).collect(Collectors.toSet());
List<Long> subjectIds = exists.stream().map(CostSubject::getId).collect(Collectors.toList());
Set<String> useCodes = new HashSet<>();
if (CollUtil.isNotEmpty(subjectIds)) {
List<Long> useIds = costBudgetService.list(new LambdaQueryWrapper<CostBudget>().in(CostBudget::getSubjectId, subjectIds)).stream().map(CostBudget::getSubjectId).collect(Collectors.toList());
useCodes = exists.stream().filter(costSubject -> useIds.contains(costSubject.getId())).map(CostSubject::getCode).collect(Collectors.toSet());
}
List<CostSubject> list;
if (Objects.equals(toLevelType, 2)) {
list = costSubjectService.list(new LambdaQueryWrapper<CostSubject>().eq(CostSubject::getLevelType, 1));
} else {
ProjectInfoExtVo project = projectService.getProjectInfoBySn(sn);
list = costSubjectService.list(new LambdaQueryWrapper<CostSubject>().eq(CostSubject::getLevelType, 2).eq(CostSubject::getSn, project.getCompanySn()));
}
List<CostSubject> topList = list.stream().filter(costSubject -> Objects.equals(costSubject.getParentId(), 0L)).collect(Collectors.toList());
for (CostSubject costSubject : topList) {
addCostSubject(costSubject, list, sn, 0L, toLevelType, existCodes, useCodes);
}
return Result.ok();
}
private void addCostSubject(CostSubject costSubject, List<CostSubject> list, String sn, Long parentId, Integer toLevelType, Set<String> existCodes, Set<String> useCodes) {
List<CostSubject> childList = list.stream().filter(subject -> Objects.equals(subject.getParentId(), costSubject.getId())).collect(Collectors.toList());
CostSubject costSubject1 = JSON.parseObject(JSON.toJSONString(costSubject), CostSubject.class);
costSubject1.setId(null);
// costSubject1.setType(0);
costSubject1.setSn(sn);
// costSubject1.setLevel(0);
// costSubject1.setName("");
// costSubject1.setCode("");
costSubject1.setParentId(parentId);
// costSubject1.setAncestors("");
// costSubject1.setCreateBy(SecurityUtils.getUser().getUserId().toString());
// costSubject1.setCreateTime(new Date());
// costSubject1.setUpdateBy("");
// costSubject1.setUpdateTime(new Date());
costSubject1.setLevelType(toLevelType);
// costSubject1.setChildren(Lists.newArrayList());
if (!useCodes.contains(costSubject1.getCode())) {
if (existCodes.contains(costSubject1.getCode())) {
UserInfo user = SecurityUtils.getUser();
costSubjectService.update(new LambdaUpdateWrapper<CostSubject>().set(CostSubject::getCreateBy, user.getUserId().toString())
.set(CostSubject::getUpdateTime, new Date()).eq(CostSubject::getSn, sn).eq(CostSubject::getCode, costSubject1.getCode()));
} else {
costSubjectService.saveInfo(costSubject1);
}
}
if (CollUtil.isNotEmpty(childList)) {
for (CostSubject subject : childList) {
addCostSubject(subject, list, sn, costSubject1.getId(), toLevelType, existCodes, useCodes);
}
}
}
} }

View File

@ -9,8 +9,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -39,10 +37,10 @@ public class CostSubject implements Serializable {
@ApiModelProperty(value = "科目类型(字典数据)") @ApiModelProperty(value = "科目类型(字典数据)")
private Integer type; private Integer type;
/** /**
* 企业SN * 企业SN或项目SN
*/ */
@ApiModelProperty(value = "企业SN") @ApiModelProperty(value = "企业SN或项目SN")
private String companySn; private String sn;
/** /**
* 级别层次 * 级别层次
*/ */
@ -90,6 +88,11 @@ public class CostSubject implements Serializable {
*/ */
@ApiModelProperty(value = "最后操作时间") @ApiModelProperty(value = "最后操作时间")
private Date updateTime; private Date updateTime;
/**
* 级别类型1:集团标准控制科目;2:公司控制科目;3:项目控制科目;
*/
@ApiModelProperty(value = "级别类型1:集团标准控制科目;2:公司控制科目;3:项目控制科目;")
private Integer levelType;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "子级科目信息") @ApiModelProperty(value = "子级科目信息")

View File

@ -18,7 +18,7 @@ import java.util.List;
*/ */
public interface ICostBudgetService extends IService<CostBudget> { public interface ICostBudgetService extends IService<CostBudget> {
List<CostBudgetDto> tree(QueryWrapper<CostSubject> wrapper, ProjectInfoExtVo projectInfoBySn); List<CostBudgetDto> tree(QueryWrapper<CostSubject> wrapper, String projectSn);
List<CostBudgetDto> exportList(QueryWrapper<CostSubject> wrapper, ProjectInfoExtVo projectInfoBySn, boolean flag); List<CostBudgetDto> exportList(QueryWrapper<CostSubject> wrapper, ProjectInfoExtVo projectInfoBySn, boolean flag);

View File

@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.cost.dto.CostBudgetDto; import com.zhgd.xmgl.modules.cost.dto.CostBudgetDto;
import com.zhgd.xmgl.modules.cost.entity.CostBudget; import com.zhgd.xmgl.modules.cost.entity.CostBudget;
import com.zhgd.xmgl.modules.cost.entity.CostContract; import com.zhgd.xmgl.modules.cost.entity.CostContract;
@ -16,7 +15,6 @@ import com.zhgd.xmgl.modules.cost.service.ICostContractPayService;
import com.zhgd.xmgl.modules.cost.service.ICostContractService; import com.zhgd.xmgl.modules.cost.service.ICostContractService;
import com.zhgd.xmgl.modules.cost.service.ICostSubjectService; import com.zhgd.xmgl.modules.cost.service.ICostSubjectService;
import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -47,7 +45,7 @@ public class CostBudgetServiceImpl extends ServiceImpl<CostBudgetMapper, CostBud
private ICostContractPayService costContractPayService; private ICostContractPayService costContractPayService;
@Override @Override
public List<CostBudgetDto> tree(QueryWrapper<CostSubject> wrapper, ProjectInfoExtVo projectInfoBySn) { public List<CostBudgetDto> tree(QueryWrapper<CostSubject> wrapper, String projectSn) {
wrapper.lambda().eq(CostSubject::getParentId, 0); wrapper.lambda().eq(CostSubject::getParentId, 0);
List<CostSubject> list = costSubjectService.list(wrapper); List<CostSubject> list = costSubjectService.list(wrapper);
List<CostSubject> filter = list.stream().filter(l -> StringUtils.isNotBlank(l.getName())).collect(Collectors.toList()); List<CostSubject> filter = list.stream().filter(l -> StringUtils.isNotBlank(l.getName())).collect(Collectors.toList());
@ -58,9 +56,9 @@ public class CostBudgetServiceImpl extends ServiceImpl<CostBudgetMapper, CostBud
List<CostSubject> allList = costSubjectService.list(); List<CostSubject> allList = costSubjectService.list();
List<CostBudgetDto> allDtoList = convert(allList); List<CostBudgetDto> allDtoList = convert(allList);
List<CostBudget> budgetList = this.list(Wrappers.<CostBudget>lambdaQuery() List<CostBudget> budgetList = this.list(Wrappers.<CostBudget>lambdaQuery()
.eq(CostBudget::getProjectSn, projectInfoBySn.getProjectSn())); .eq(CostBudget::getProjectSn, projectSn));
List<CostContract> contractList = costContractService.list(Wrappers.<CostContract>lambdaQuery() List<CostContract> contractList = costContractService.list(Wrappers.<CostContract>lambdaQuery()
.eq(CostContract::getProjectSn, projectInfoBySn.getProjectSn())); .eq(CostContract::getProjectSn, projectSn));
List<CostContractPay> costContractPayList = new ArrayList<>(); List<CostContractPay> costContractPayList = new ArrayList<>();
if (contractList.size() > 0) { if (contractList.size() > 0) {
costContractPayList = costContractPayService.list(Wrappers.<CostContractPay>lambdaQuery() costContractPayList = costContractPayService.list(Wrappers.<CostContractPay>lambdaQuery()