成本预算调整

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) { public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
String projectSn = request.getParameter("projectSn"); String projectSn = request.getParameter("projectSn");
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn); Integer version = Integer.valueOf(request.getParameter("version"));
Company company = companyService.getOne(Wrappers.<Company>lambdaQuery().eq(Company::getCompanySn, projectInfoBySn.getCompanySn())); // ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
// 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::getSn, company.getHeadquartersSn()) .eq(CostSubject::getSn, projectSn);
.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()) {
MultipartFile file = entity.getValue();// 获取上传文件对象 MultipartFile file = entity.getValue();// 获取上传文件对象
@ -348,6 +349,7 @@ public class CostBudgetController {
costBudget.setCreateTime(new Date()); costBudget.setCreateTime(new Date());
costBudget.setIsCount(StringUtils.isBlank(codeList.get(0).getName())); costBudget.setIsCount(StringUtils.isBlank(codeList.get(0).getName()));
costBudget.setLevel(codeList.get(0).getLevel()); costBudget.setLevel(codeList.get(0).getLevel());
costBudget.setVersion(version);
costBudgetList.add(costBudget); costBudgetList.add(costBudget);
} }
int num = 0; int num = 0;

View File

@ -278,6 +278,7 @@ public class CostSubjectController {
public Result introduceCostSubject(@RequestBody Map<String, Object> param) { public Result introduceCostSubject(@RequestBody Map<String, Object> param) {
Integer toLevelType = MapUtils.getInteger(param, "toLevelType"); Integer toLevelType = MapUtils.getInteger(param, "toLevelType");
String sn = MapUtils.getString(param, "sn"); String sn = MapUtils.getString(param, "sn");
String type = MapUtils.getString(param, "type");
List<CostSubject> exists = costSubjectService.list(new LambdaQueryWrapper<CostSubject>().eq(CostSubject::getSn, sn)); 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)); 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()); 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()); List<CostSubject> topList = list.stream().filter(costSubject -> Objects.equals(costSubject.getParentId(), 0L)).collect(Collectors.toList());
for (CostSubject costSubject : topList) { for (CostSubject costSubject : topList) {
addCostSubject(costSubject, list, sn, 0L, toLevelType, existCodes, useCodes); addCostSubject(costSubject, list, sn, 0L, toLevelType, existCodes, useCodes, type);
} }
return Result.ok(); 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()); 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); CostSubject costSubject1 = JSON.parseObject(JSON.toJSONString(costSubject), CostSubject.class);
costSubject1.setId(null); costSubject1.setId(null);
@ -319,22 +320,26 @@ public class CostSubjectController {
// costSubject1.setUpdateTime(new Date()); // costSubject1.setUpdateTime(new Date());
costSubject1.setLevelType(toLevelType); costSubject1.setLevelType(toLevelType);
// costSubject1.setChildren(Lists.newArrayList()); // costSubject1.setChildren(Lists.newArrayList());
if (!useCodes.contains(costSubject1.getCode())) { // if (!useCodes.contains(costSubject1.getCode())) {
if (existCodes.containsKey(costSubject1.getCode())) { CostSubject costSubjectExist = existCodes.get(costSubject1.getCode());
if (costSubjectExist != null && costSubjectExist.getType().equals(costSubject1.getType())) {
UserInfo user = SecurityUtils.getUser(); UserInfo user = SecurityUtils.getUser();
costSubjectService.update(new LambdaUpdateWrapper<CostSubject>().set(CostSubject::getCreateBy, user.getUserId().toString()) 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())); .set(CostSubject::getUpdateTime, new Date()).eq(CostSubject::getSn, sn).eq(CostSubject::getCode, costSubject1.getCode()));
} else { } else {
if (StringUtils.isNotBlank(type)) {
costSubject1.setType(Integer.parseInt(type));
}
costSubjectService.saveInfo(costSubject1); costSubjectService.saveInfo(costSubject1);
parentId = costSubject1.getId(); parentId = costSubject1.getId();
} }
} // }
if (existCodes.containsKey(costSubject.getCode())) { if (costSubjectExist != null && costSubjectExist.getType().equals(costSubject1.getType())) {
parentId = existCodes.get(costSubject.getCode()).getId(); parentId = existCodes.get(costSubject.getCode()).getId();
} }
if (CollUtil.isNotEmpty(childList)) { if (CollUtil.isNotEmpty(childList)) {
for (CostSubject subject : 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) { public List<CostBudgetDto> exportList(QueryWrapper<CostSubject> wrapper, ProjectInfoExtVo projectInfoBySn, boolean flag, String level) {
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<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) { if (dtoList.size() > 0) {
List<CostSubject> allList = costSubjectService.list(Wrappers.<CostSubject>lambdaQuery() List<CostSubject> allList = costSubjectService.list(Wrappers.<CostSubject>lambdaQuery()
.eq(CostSubject::getSn, projectInfoBySn.getProjectSn()) .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()); 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() : ""); 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()); List<JzProjectDemand> jzProjectDemand = jzProjectDemandList.stream().filter(j -> j.getId().toString().equals(record.getDemandId().toString())).collect(Collectors.toList());
if (jzProjectDemand.size() > 0) { if (jzProjectDemand.size() > 0) {
record.setDemandName(jzProjectDemand.get(0).getTitle()); record.setDemandName(jzProjectDemand.get(0).getTitle());
} }
} }
}
return pageList; return pageList;
} }
} }