成本预算调整

This commit is contained in:
pengjie 2024-10-31 19:14:47 +08:00
parent fb77cc25db
commit f3a4ddbeeb
4 changed files with 32 additions and 20 deletions

View File

@ -313,12 +313,13 @@ public class CostBudgetController {
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
String projectSn = request.getParameter("projectSn");
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
Integer version = Integer.valueOf(request.getParameter("version"));
// ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
// Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn()));
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
LambdaQueryWrapper<CostSubject> wrapper = Wrappers.<CostSubject>lambdaQuery()
.eq(CostSubject::getSn, company.getHeadquartersSn())
.eq(CostSubject::getType, projectInfoBySn.getProjectLx());
.eq(CostSubject::getSn, projectSn);
// .eq(CostSubject::getType, projectInfoBySn.getProjectLx());
List<CostSubject> subjectList = costSubjectService.list(wrapper);
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
@ -348,6 +349,7 @@ public class CostBudgetController {
costBudget.setCreateTime(new Date());
costBudget.setIsCount(StringUtils.isBlank(codeList.get(0).getName()));
costBudget.setLevel(codeList.get(0).getLevel());
costBudget.setVersion(version);
costBudgetList.add(costBudget);
}
int num = 0;

View File

@ -278,6 +278,7 @@ public class CostSubjectController {
public Result introduceCostSubject(@RequestBody Map<String, Object> param) {
Integer toLevelType = MapUtils.getInteger(param, "toLevelType");
String sn = MapUtils.getString(param, "sn");
String type = MapUtils.getString(param, "type");
List<CostSubject> exists = costSubjectService.list(new LambdaQueryWrapper<CostSubject>().eq(CostSubject::getSn, sn));
Map<String, CostSubject> existCodes = exists.stream().collect(Collectors.toMap(CostSubject::getCode, Function.identity(), (k1, k2) -> k1));
List<Long> subjectIds = exists.stream().map(CostSubject::getId).collect(Collectors.toList());
@ -297,12 +298,12 @@ public class CostSubjectController {
}
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);
addCostSubject(costSubject, list, sn, 0L, toLevelType, existCodes, useCodes, type);
}
return Result.ok();
}
private void addCostSubject(CostSubject costSubject, List<CostSubject> list, String sn, Long parentId, Integer toLevelType, Map<String, CostSubject> existCodes, Set<String> useCodes) {
private void addCostSubject(CostSubject costSubject, List<CostSubject> list, String sn, Long parentId, Integer toLevelType, Map<String, CostSubject> existCodes, Set<String> useCodes, String type) {
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);
@ -319,22 +320,26 @@ public class CostSubjectController {
// costSubject1.setUpdateTime(new Date());
costSubject1.setLevelType(toLevelType);
// costSubject1.setChildren(Lists.newArrayList());
if (!useCodes.contains(costSubject1.getCode())) {
if (existCodes.containsKey(costSubject1.getCode())) {
// if (!useCodes.contains(costSubject1.getCode())) {
CostSubject costSubjectExist = existCodes.get(costSubject1.getCode());
if (costSubjectExist != null && costSubjectExist.getType().equals(costSubject1.getType())) {
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 {
if (StringUtils.isNotBlank(type)) {
costSubject1.setType(Integer.parseInt(type));
}
costSubjectService.saveInfo(costSubject1);
parentId = costSubject1.getId();
}
}
if (existCodes.containsKey(costSubject.getCode())) {
// }
if (costSubjectExist != null && costSubjectExist.getType().equals(costSubject1.getType())) {
parentId = existCodes.get(costSubject.getCode()).getId();
}
if (CollUtil.isNotEmpty(childList)) {
for (CostSubject subject : childList) {
addCostSubject(subject, list, sn, parentId, toLevelType, existCodes, useCodes);
addCostSubject(subject, list, sn, parentId, toLevelType, existCodes, useCodes, type);
}
}
}

View File

@ -97,7 +97,10 @@ public class CostBudgetServiceImpl extends ServiceImpl<CostBudgetMapper, CostBud
public List<CostBudgetDto> exportList(QueryWrapper<CostSubject> wrapper, ProjectInfoExtVo projectInfoBySn, boolean flag, String level) {
wrapper.lambda().eq(CostSubject::getParentId, 0);
List<CostSubject> list = costSubjectService.list(wrapper);
List<CostBudgetDto> dtoList = convert(list);
List<CostSubject> filter = list.stream().filter(l -> StringUtils.isNotBlank(l.getName())).collect(Collectors.toList());
List<CostBudgetDto> dtoList = convert(filter);
List<CostSubject> total = list.stream().filter(l -> StringUtils.isBlank(l.getName())).collect(Collectors.toList());
dtoList.addAll(convert(total));
if (dtoList.size() > 0) {
List<CostSubject> allList = costSubjectService.list(Wrappers.<CostSubject>lambdaQuery()
.eq(CostSubject::getSn, projectInfoBySn.getProjectSn())

View File

@ -50,11 +50,13 @@ public class JzProjectBudgetServiceImpl extends ServiceImpl<JzProjectBudgetMappe
List<JzCustomer> jzCustomers = jzCustomerList.stream().filter(j -> j.getId().toString().equals(jzProjects.get(0).getCustomerId().toString())).collect(Collectors.toList());
record.setCustomerName(jzCustomers.size() > 0 ? jzCustomers.get(0).getName() : "");
}
if (jzProjectDemandList.size() > 0) {
List<JzProjectDemand> jzProjectDemand = jzProjectDemandList.stream().filter(j -> j.getId().toString().equals(record.getDemandId().toString())).collect(Collectors.toList());
if (jzProjectDemand.size() > 0) {
record.setDemandName(jzProjectDemand.get(0).getTitle());
}
}
}
return pageList;
}
}