|
@@ -26,6 +26,7 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.io.*;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -61,7 +62,7 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
|
|
|
f.setCompanyId(user.getCompanyId());
|
|
|
f.setYmonth(ymonth);
|
|
|
});
|
|
|
- financeProjectsService.remove(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()));
|
|
|
+ financeProjectsService.remove(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()).eq("ymonth", ymonth));
|
|
|
financeProjectsService.saveBatch(financeProjects);
|
|
|
|
|
|
ProjectPercentage projectPercentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id", user.getCompanyId())
|
|
@@ -90,7 +91,7 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
|
|
|
Integer companyId = user.getCompanyId();
|
|
|
List<Project> allProjects = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
|
|
|
|
|
|
- List<FinanceProjects> flist = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()));
|
|
|
+ List<FinanceProjects> flist = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()).eq("ymonth", ymonth));
|
|
|
ProjectPercentage projectPercentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id",user.getCompanyId())
|
|
|
.eq("ymonth", ymonth));
|
|
|
|
|
@@ -153,6 +154,7 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
|
|
|
String dataStringOne;
|
|
|
List<String> projectList = new ArrayList<>();
|
|
|
List<Project> allProjectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
|
|
|
+ List<FinanceProjects> filterFPList = new ArrayList<>();
|
|
|
int projectNameStartIndex=1;
|
|
|
int dataCount = 0;
|
|
|
for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
|
|
@@ -217,7 +219,22 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
|
|
|
}
|
|
|
String stringCellValue = row.getCell(i).getStringCellValue();
|
|
|
s+=Integer.parseInt(stringCellValue);
|
|
|
- jsonObject.put(projectList.get(i-1),stringCellValue);
|
|
|
+ String pid = projectList.get(i-1);
|
|
|
+ jsonObject.put(pid,stringCellValue);
|
|
|
+ if (!filterFPList.stream().anyMatch(f->f.getProjectId().equals(pid))) {
|
|
|
+ //不存在的项目,要加进去
|
|
|
+ FinanceProjects fp = new FinanceProjects();
|
|
|
+ fp.setCompanyId(companyId);
|
|
|
+ fp.setYmonth(ymonth);
|
|
|
+ Optional<Project> first = allProjectList.stream().filter(ap -> ap.getId().equals(pid)).findFirst();
|
|
|
+ if (first.isPresent()) {
|
|
|
+ Project project = first.get();
|
|
|
+ fp.setProjectId(project.getId());
|
|
|
+ fp.setProjectName(project.getProjectName());
|
|
|
+ fp.setProjectCode(project.getProjectCode());
|
|
|
+ filterFPList.add(fp);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
dataStringOne=jsonObject.toJSONString();
|
|
|
if(rowIndex!=rowNum){
|
|
@@ -251,6 +268,14 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
|
|
|
projectPercentage.setCompanyId(companyId);
|
|
|
projectPercentageService.save(projectPercentage);
|
|
|
}
|
|
|
+ //保存projectFinance(当月的待分摊项目)表
|
|
|
+ List<FinanceProjects> list = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", companyId).eq("ymonth", ymonth));
|
|
|
+ List<Integer> removeIds = list.stream().filter(li -> !filterFPList.stream().anyMatch(fp -> fp.getProjectId().equals(li.getProjectId()))).map(FinanceProjects::getId).collect(Collectors.toList());
|
|
|
+ if (removeIds.size() > 0) {
|
|
|
+ financeProjectsService.removeByIds(removeIds);
|
|
|
+ }
|
|
|
+ List<FinanceProjects> addData = filterFPList.stream().filter(fp -> !list.stream().anyMatch(li -> li.getProjectId().equals(fp.getProjectId()))).collect(Collectors.toList());
|
|
|
+ financeProjectsService.saveBatch(addData);
|
|
|
msg.data=dataCount;
|
|
|
return msg;
|
|
|
}catch (IOException e){
|