Commit a023ff08 authored by tanyang's avatar tanyang

措施费相关导入优化

parent eb061346
...@@ -17,6 +17,7 @@ import com.dsk.common.helper.LoginHelper; ...@@ -17,6 +17,7 @@ import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.poi.ExcelUtil; import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.common.utils.redis.RedisUtils; import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.cscec.domain.CbCostMeasure; import com.dsk.cscec.domain.CbCostMeasure;
import com.dsk.cscec.domain.CbProjectExpenseSummary;
import com.dsk.cscec.domain.bo.CbCostMeasureActualBo; import com.dsk.cscec.domain.bo.CbCostMeasureActualBo;
import com.dsk.cscec.domain.bo.CbCostMeasureActualPushBo; import com.dsk.cscec.domain.bo.CbCostMeasureActualPushBo;
import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo; import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo;
...@@ -24,6 +25,7 @@ import com.dsk.cscec.domain.vo.CbCostMeasureActualVo; ...@@ -24,6 +25,7 @@ import com.dsk.cscec.domain.vo.CbCostMeasureActualVo;
import com.dsk.cscec.domain.vo.CbCostMeasuresImportVo; import com.dsk.cscec.domain.vo.CbCostMeasuresImportVo;
import com.dsk.cscec.domain.vo.CbCostMeasuresItemVo; import com.dsk.cscec.domain.vo.CbCostMeasuresItemVo;
import com.dsk.cscec.listener.ProjectCostMeasureImportListener; import com.dsk.cscec.listener.ProjectCostMeasureImportListener;
import com.dsk.cscec.service.CbProjectExpenseSummaryService;
import com.dsk.cscec.service.ICbCostMeasureService; import com.dsk.cscec.service.ICbCostMeasureService;
import com.dsk.system.domain.vo.SysUserImportVo; import com.dsk.system.domain.vo.SysUserImportVo;
import com.dsk.system.listener.SysUserImportListener; import com.dsk.system.listener.SysUserImportListener;
...@@ -57,6 +59,10 @@ public class CbCostMeasureController { ...@@ -57,6 +59,10 @@ public class CbCostMeasureController {
private ICbCostMeasureService cbCostMeasureService; private ICbCostMeasureService cbCostMeasureService;
@Autowired
private CbProjectExpenseSummaryService cbProjectExpenseSummaryService;
/** /**
* 措施费一级大类 * 措施费一级大类
* 根据项目查询措施费一级大类 * 根据项目查询措施费一级大类
...@@ -161,15 +167,13 @@ public class CbCostMeasureController { ...@@ -161,15 +167,13 @@ public class CbCostMeasureController {
/** /**
* 措施费导入数据 * 措施费导入数据
* *
* @param projectFileIds 导入文件
* @param projectId 项目id * @param projectId 项目id
*/ */
@SaIgnore @SaIgnore
@Log(title = "措施费导入", businessType = BusinessType.IMPORT) @Log(title = "措施费导入", businessType = BusinessType.IMPORT)
@PostMapping(value = "/parseCbCostMeasureFile") @PostMapping(value = "/parseCbCostMeasureFile")
public R<Void> parseCbCostMeasureFile(Long projectId,@RequestParam("projectFileIds") Long[] projectFileIds) throws Exception { public R<Void> parseCbCostMeasureFile(Long projectId) throws Exception {
List<Long> fileIds = Arrays.stream(projectFileIds).collect(Collectors.toList()); cbCostMeasureService.parseCbCostMeasureFile(projectId);
cbCostMeasureService.parseCbCostMeasureFile(projectId,fileIds);
return R.ok(); return R.ok();
} }
...@@ -187,11 +191,23 @@ public class CbCostMeasureController { ...@@ -187,11 +191,23 @@ public class CbCostMeasureController {
@PostMapping(value = "/summary/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/summary/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Void> importSummaryData(@RequestPart("file") MultipartFile file, Long projectId) throws Exception { public R<Void> importSummaryData(@RequestPart("file") MultipartFile file, Long projectId) throws Exception {
Integer dataType=2; Integer dataType=2;
cbCostMeasureService.importExcelSummaryData(file.getInputStream(),projectId,dataType); cbCostMeasureService.importExcelSummaryData(file.getInputStream(),projectId,null,dataType);
return R.ok(); return R.ok();
} }
@SaIgnore
@Log(title = "措施费汇总获取")
// @SaCheckPermission("system:user:import")
@PostMapping(value = "/summary/data")
public R<List<CbProjectExpenseSummary>> importSummaryData(Long projectId) throws Exception {
Integer dataType=2;
List<CbProjectExpenseSummary> cbProjectExpenseSummaries = cbProjectExpenseSummaryService.queryCbSceneExpenseSummaryDataByType(projectId, dataType);
return R.ok(cbProjectExpenseSummaries);
}
public static void main(String[] args) throws FileNotFoundException { public static void main(String[] args) throws FileNotFoundException {
List list =new ArrayList<>(); List list =new ArrayList<>();
...@@ -199,7 +215,7 @@ public class CbCostMeasureController { ...@@ -199,7 +215,7 @@ public class CbCostMeasureController {
FileInputStream inputStream=new FileInputStream(file); FileInputStream inputStream=new FileInputStream(file);
ExcelResult<CbCostMeasuresImportVo> result = ExcelUtil.importExcel(inputStream, CbCostMeasuresImportVo.class, new ProjectCostMeasureImportListener(1L,1)); ExcelResult<CbCostMeasuresImportVo> result = ExcelUtil.importExcel(inputStream, CbCostMeasuresImportVo.class, new ProjectCostMeasureImportListener(1L));
String analysis = result.getAnalysis(); String analysis = result.getAnalysis();
List<CbCostMeasuresImportVo> list1 = result.getList(); List<CbCostMeasuresImportVo> list1 = result.getList();
......
...@@ -32,11 +32,7 @@ import java.util.regex.Pattern; ...@@ -32,11 +32,7 @@ import java.util.regex.Pattern;
public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCostMeasuresImportVo> implements ExcelListener<CbCostMeasuresImportVo> { public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCostMeasuresImportVo> implements ExcelListener<CbCostMeasuresImportVo> {
private final CbCostMeasureServiceImpl cbCostMeasureService; private final CbCostMeasureServiceImpl cbCostMeasureService;
//
// private final String password;
private final Long projectId; private final Long projectId;
private final Integer cbStage;
private List<CbCostMeasuresImportVo> dataList = new ArrayList<>(); private List<CbCostMeasuresImportVo> dataList = new ArrayList<>();
...@@ -49,10 +45,8 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo ...@@ -49,10 +45,8 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
private final StringBuilder successMsg = new StringBuilder(); private final StringBuilder successMsg = new StringBuilder();
private final StringBuilder failureMsg = new StringBuilder(); private final StringBuilder failureMsg = new StringBuilder();
public ProjectCostMeasureImportListener(Long projectId, Integer cbStage) { public ProjectCostMeasureImportListener(Long projectId) {
// String initPassword = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("sys.user.initPassword");
this.cbCostMeasureService = SpringUtils.getBean(CbCostMeasureServiceImpl.class); this.cbCostMeasureService = SpringUtils.getBean(CbCostMeasureServiceImpl.class);
this.cbStage = cbStage;
this.projectId = projectId; this.projectId = projectId;
// this.operName = LoginHelper.getUsername(); // this.operName = LoginHelper.getUsername();
} }
......
...@@ -35,7 +35,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen ...@@ -35,7 +35,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
// private final String password; // private final String password;
private final Long projectId; private final Long projectId;
private final Integer cbStage; private final Long fileId;
private final Integer dataType; private final Integer dataType;
private List<CbProjectExpenseSummaryImportVo> dataList = new ArrayList<>(); private List<CbProjectExpenseSummaryImportVo> dataList = new ArrayList<>();
...@@ -48,9 +48,9 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen ...@@ -48,9 +48,9 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
private final StringBuilder successMsg = new StringBuilder(); private final StringBuilder successMsg = new StringBuilder();
private final StringBuilder failureMsg = new StringBuilder(); private final StringBuilder failureMsg = new StringBuilder();
public ProjectCostMeasureSummaryImportListener(Long projectId, Integer cbStage,Integer dataType) { public ProjectCostMeasureSummaryImportListener(Long projectId, Long fileId,Integer dataType) {
this.cbProjectExpenseSummaryService = SpringUtils.getBean(CbProjectExpenseSummaryService.class); this.cbProjectExpenseSummaryService = SpringUtils.getBean(CbProjectExpenseSummaryService.class);
this.cbStage = cbStage; this.fileId = fileId;
this.projectId = projectId; this.projectId = projectId;
this.dataType=dataType; this.dataType=dataType;
} }
...@@ -61,7 +61,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen ...@@ -61,7 +61,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
CbProjectExpenseSummary cbProjectExpenseSummary=new CbProjectExpenseSummary(); CbProjectExpenseSummary cbProjectExpenseSummary=new CbProjectExpenseSummary();
BeanUtil.copyProperties(importVo,cbProjectExpenseSummary); BeanUtil.copyProperties(importVo,cbProjectExpenseSummary);
cbProjectExpenseSummary.setProjectId(projectId); cbProjectExpenseSummary.setProjectId(projectId);
cbProjectExpenseSummary.setCbStage(cbStage); cbProjectExpenseSummary.setProjectFileId(fileId);
cbProjectExpenseSummary.setDataType(dataType); cbProjectExpenseSummary.setDataType(dataType);
// cbProjectExpenseSummary.setCreateBy(LoginHelper.getUsername()); // cbProjectExpenseSummary.setCreateBy(LoginHelper.getUsername());
boolean save = cbProjectExpenseSummaryService.save(cbProjectExpenseSummary); boolean save = cbProjectExpenseSummaryService.save(cbProjectExpenseSummary);
......
...@@ -22,4 +22,7 @@ public interface CbProjectExpenseSummaryService extends IService<CbProjectExpens ...@@ -22,4 +22,7 @@ public interface CbProjectExpenseSummaryService extends IService<CbProjectExpens
* @return 现场经费汇总数据 * @return 现场经费汇总数据
*/ */
List<CbProjectExpenseSummary> getCbSceneExpenseSummaryData(Long projectId); List<CbProjectExpenseSummary> getCbSceneExpenseSummaryData(Long projectId);
List<CbProjectExpenseSummary> queryCbSceneExpenseSummaryDataByType(Long projectId,Integer dataType);
} }
...@@ -5,6 +5,7 @@ import com.dsk.common.core.domain.PageQuery; ...@@ -5,6 +5,7 @@ import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.entity.SysDictData; import com.dsk.common.core.domain.entity.SysDictData;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.CbCostMeasure; import com.dsk.cscec.domain.CbCostMeasure;
import com.dsk.cscec.domain.CbProjectExpenseSummary;
import com.dsk.cscec.domain.bo.CbCostMeasureActualBo; import com.dsk.cscec.domain.bo.CbCostMeasureActualBo;
import com.dsk.cscec.domain.bo.CbCostMeasureActualPushBo; import com.dsk.cscec.domain.bo.CbCostMeasureActualPushBo;
import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo; import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo;
...@@ -34,12 +35,10 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> { ...@@ -34,12 +35,10 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> {
void pushCostMeasureActual(CbCostMeasureActualPushBo pushBo); void pushCostMeasureActual(CbCostMeasureActualPushBo pushBo);
List<String> importExcelSummaryData(InputStream inputStream, Long projectId,Integer dataType); List<String> importExcelSummaryData(InputStream inputStream, Long projectId,Long fileId, Integer dataType);
void parseCbCostMeasureFile(Long projectId); void parseCbCostMeasureFile(Long projectId);
void parseCbCostMeasureFile(Long projectId, List<Long> projectFileIds);
boolean reparseCbCostMeasureFile(Long projectId,Long projectFileId); boolean reparseCbCostMeasureFile(Long projectId,Long projectFileId);
} }
...@@ -33,6 +33,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -33,6 +33,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.dsk.cscec.mapper.CbCostMeasureMapper; import com.dsk.cscec.mapper.CbCostMeasureMapper;
import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.InputStream; import java.io.InputStream;
...@@ -68,23 +69,19 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -68,23 +69,19 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@SneakyThrows @SneakyThrows
@Override @Override
public void importExcelData(InputStream inputStream, String fileName, Long fileId, Long projectId) { public void importExcelData(InputStream inputStream, String fileName, Long fileId, Long projectId) {
// 检查项目
String name = FileNameUtil.getPrefix(fileName); checkProjectExist(projectId);
ProjectCostMeasureImportListener importListener = new ProjectCostMeasureImportListener(projectId);
CbProjectRecord byId = cbProjectRecordService.getById(projectId);
Assert.notNull(byId, "项目信息不能为空");
Integer cbStage = byId.getCbStage();
ProjectCostMeasureImportListener importListener = new ProjectCostMeasureImportListener(projectId, cbStage);
EasyExcel.read(inputStream, CbCostMeasuresImportVo.class, importListener).sheet().doRead(); EasyExcel.read(inputStream, CbCostMeasuresImportVo.class, importListener).sheet().doRead();
ExcelResult<CbCostMeasuresImportVo> result = importListener.getExcelResult(); ExcelResult<CbCostMeasuresImportVo> result = importListener.getExcelResult();
String analysis = result.getAnalysis(); String analysis = result.getAnalysis();
List<CbCostMeasuresImportVo> list = result.getList(); List<CbCostMeasuresImportVo> list = result.getList();
List<String> errorList = result.getErrorList(); List<String> errorList = result.getErrorList();
if (CollectionUtil.isNotEmpty(errorList)||CollectionUtil.isEmpty(list)) { if (CollectionUtil.isNotEmpty(errorList) || CollectionUtil.isEmpty(list)) {
//解析失败 //解析失败
log.debug(">>>>解析失败" + list.size()); log.debug(">>>>解析失败" + list.size());
//todo 解析失败更新文件备注 //todo 解析失败更新文件备注
cbProjectFileService.UpdateProjectFileStatus(fileId,analysis,CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL); cbProjectFileService.UpdateProjectFileStatus(fileId, analysis, CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL);
return; return;
} }
log.debug(">>>>" + list.size()); log.debug(">>>>" + list.size());
...@@ -96,7 +93,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -96,7 +93,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
this.remove(summaryLambdaQueryWrapper); this.remove(summaryLambdaQueryWrapper);
CbCostMeasure rootCbCostMeasure = new CbCostMeasure(); CbCostMeasure rootCbCostMeasure = new CbCostMeasure();
rootCbCostMeasure.setItemContent(name); rootCbCostMeasure.setItemContent(fileName);
rootCbCostMeasure.setLevel(0); rootCbCostMeasure.setLevel(0);
rootCbCostMeasure.setParentId(0L); rootCbCostMeasure.setParentId(0L);
rootCbCostMeasure.setProjectId(projectId); rootCbCostMeasure.setProjectId(projectId);
...@@ -130,7 +127,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -130,7 +127,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
} else if (ReUtil.isMatch(secondPattern, number)) { } else if (ReUtil.isMatch(secondPattern, number)) {
BeanUtil.copyProperties(importVo, cbCostMeasure); BeanUtil.copyProperties(importVo, cbCostMeasure);
// 根据no查询父级节点 // 根据no查询父级节点
CbCostMeasure parentCbCostMeasure = getCbCostMeasure(rootMeasuresId, number, projectId, cbStage); CbCostMeasure parentCbCostMeasure = getCbCostMeasure(rootMeasuresId, number, projectId);
String[] split = number.split("\\."); String[] split = number.split("\\.");
cbCostMeasure.setLevel(split.length); cbCostMeasure.setLevel(split.length);
cbCostMeasure.setParentId(parentCbCostMeasure.getId()); cbCostMeasure.setParentId(parentCbCostMeasure.getId());
...@@ -140,7 +137,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -140,7 +137,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
this.save(cbCostMeasure); this.save(cbCostMeasure);
} }
cbProjectFileService.UpdateProjectFileStatus(fileId,null,CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS); cbProjectFileService.UpdateProjectFileStatus(fileId, null, CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS);
} }
} }
...@@ -170,8 +167,6 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -170,8 +167,6 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
Assert.notNull(costMeasureActualBo.getProjectId(), "项目ID不能为空"); Assert.notNull(costMeasureActualBo.getProjectId(), "项目ID不能为空");
CbProjectRecord byId = cbProjectRecordService.getById(costMeasureActualBo.getProjectId()); CbProjectRecord byId = cbProjectRecordService.getById(costMeasureActualBo.getProjectId());
Assert.notNull(byId, "项目信息不能为空"); Assert.notNull(byId, "项目信息不能为空");
costMeasureActualBo.setCbStage(byId.getCbStage());
//查询项目某项措施费所有计划成本 //查询项目某项措施费所有计划成本
dataList = baseMapper.selectListByProjectAndNo(costMeasureActualBo); dataList = baseMapper.selectListByProjectAndNo(costMeasureActualBo);
// if (CollectionUtil.isEmpty(dataList)) { // if (CollectionUtil.isEmpty(dataList)) {
...@@ -217,49 +212,38 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -217,49 +212,38 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@SneakyThrows @SneakyThrows
@Override @Override
public List<String> importExcelSummaryData(InputStream inputStream, Long projectId, Integer dataType) { public List<String> importExcelSummaryData(InputStream inputStream, Long projectId,Long fileId, Integer dataType) {
CbProjectRecord byId = cbProjectRecordService.getById(projectId); CbProjectRecord byId = cbProjectRecordService.getById(projectId);
Assert.notNull(byId, "项目信息不能为空"); Assert.notNull(byId, "项目信息不能为空");
Integer cbStage = byId.getCbStage();
// 删除历史数据 // 删除历史数据
LambdaUpdateWrapper<CbProjectExpenseSummary> summaryLambdaQueryWrapper = Wrappers.lambdaUpdate(); LambdaUpdateWrapper<CbProjectExpenseSummary> summaryLambdaQueryWrapper = Wrappers.lambdaUpdate();
summaryLambdaQueryWrapper.eq(CbProjectExpenseSummary::getProjectId, projectId); summaryLambdaQueryWrapper.eq(CbProjectExpenseSummary::getProjectId, projectId);
summaryLambdaQueryWrapper.eq( CbProjectExpenseSummary::getDataType, 2); summaryLambdaQueryWrapper.eq(CbProjectExpenseSummary::getDataType, 2);
cbProjectExpenseSummaryService.remove(summaryLambdaQueryWrapper); cbProjectExpenseSummaryService.remove(summaryLambdaQueryWrapper);
ExcelResult<CbProjectExpenseSummaryImportVo> excelResult = ExcelUtil.importExcel(inputStream, CbProjectExpenseSummaryImportVo.class, new ProjectCostMeasureSummaryImportListener(projectId, cbStage, dataType)); ExcelResult<CbProjectExpenseSummaryImportVo> excelResult = ExcelUtil.importExcel(inputStream, CbProjectExpenseSummaryImportVo.class, new ProjectCostMeasureSummaryImportListener(projectId, fileId, dataType));
List<String> errorList = excelResult.getErrorList(); List<String> errorList = excelResult.getErrorList();
if(CollectionUtil.isNotEmpty(errorList)||CollectionUtil.isEmpty(excelResult.getList())){ if (CollectionUtil.isNotEmpty(errorList) || CollectionUtil.isEmpty(excelResult.getList())) {
return errorList; return errorList;
} }
return null; return null;
} }
@Override
public void parseCbCostMeasureFile(Long projectId) {
// 查询项目
CbProjectRecord byId = cbProjectRecordService.getById(projectId);
Assert.notNull(byId, "项目信息不能为空");
parseCbCostMeasureFile(projectId,null);
}
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void parseCbCostMeasureFile(Long projectId,List<Long> projectFileIds) { public void parseCbCostMeasureFile(Long projectId) {
// 检查项目
checkProjectExist(projectId);
//获取项目待解析文件
List<CbProjectFile> cbProjectFiles = new ArrayList<>(); List<CbProjectFile> cbProjectFiles = new ArrayList<>();
if(CollectionUtil.isNotEmpty(projectFileIds)){
LambdaQueryWrapper<CbProjectFile> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.in(CbProjectFile::getId,projectFileIds);
cbProjectFiles = cbProjectFileService.list(lambdaQueryWrapper);
}else{
//获取文件信息
cbProjectFiles = cbProjectFileService.list(new LambdaQueryWrapper<CbProjectFile>() cbProjectFiles = cbProjectFileService.list(new LambdaQueryWrapper<CbProjectFile>()
.eq(CbProjectFile::getProjectId, projectId) .eq(CbProjectFile::getProjectId, projectId)
.eq(CbProjectFile::getFileParseStatus, CbProjectConstants.PROJECT_FILE_STATUS_PARSING)
.eq(CbProjectFile::getCbType, CbProjectConstants.CB_TYPE_MEASURE_PROJECT) .eq(CbProjectFile::getCbType, CbProjectConstants.CB_TYPE_MEASURE_PROJECT)
); );
}
if (CollectionUtil.isEmpty(cbProjectFiles)) { if (CollectionUtil.isEmpty(cbProjectFiles)) {
log.debug("措施费数据文件不存在"); log.debug("措施费数据文件不存在");
return; return;
...@@ -272,10 +256,10 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -272,10 +256,10 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
if ("措施费".equals(prefix)) { if ("措施费".equals(prefix)) {
byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl()); byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl());
InputStream inputStream = new ByteArrayInputStream(bytes); InputStream inputStream = new ByteArrayInputStream(bytes);
List<String> errlist = importExcelSummaryData(inputStream, projectId, 2); List<String> errlist = importExcelSummaryData(inputStream, projectId,cbProjectFile.getId(), 2);
if(CollectionUtil.isNotEmpty(errlist)){ if (CollectionUtil.isNotEmpty(errlist)) {
cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL); cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL);
}else { } else {
// 修改文件解析状态 // 修改文件解析状态
cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS); cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS);
} }
...@@ -283,36 +267,39 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -283,36 +267,39 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
} else { } else {
byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl()); byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl());
InputStream inputStream = new ByteArrayInputStream(bytes); InputStream inputStream = new ByteArrayInputStream(bytes);
importExcelData(inputStream, fileName, cbProjectFile.getId(), projectId); importExcelData(inputStream, prefix, cbProjectFile.getId(), projectId);
} }
} }
} }
private void checkProjectExist(Long projectId){
CbProjectRecord byId = cbProjectRecordService.getById(projectId);
Assert.notNull(byId, "项目信息不能为空");
}
@Override @Override
public boolean reparseCbCostMeasureFile(Long projectId,Long projectFileId) { public boolean reparseCbCostMeasureFile(Long projectId, Long projectFileId) {
// 查询项目 // 查询项目
CbProjectRecord byId = cbProjectRecordService.getById(projectId); CbProjectRecord byId = cbProjectRecordService.getById(projectId);
Assert.notNull(byId, "项目信息不能为空"); Assert.notNull(byId, "项目信息不能为空");
List<CbProjectFile> cbProjectFiles = new ArrayList<>(); List<CbProjectFile> cbProjectFiles = new ArrayList<>();
Assert.notNull(projectFileId,"措施费文件ID不能为空"); Assert.notNull(projectFileId, "措施费文件ID不能为空");
if(ObjectUtil.isNotEmpty(projectFileId)){ if (ObjectUtil.isNotEmpty(projectFileId)) {
CbProjectFile cbProjectFile = cbProjectFileService.getById(projectFileId); CbProjectFile cbProjectFile = cbProjectFileService.getById(projectFileId);
Assert.notNull(cbProjectFile,"措施费导入文件不存在"); Assert.notNull(cbProjectFile, "措施费导入文件不存在");
String fileName = cbProjectFile.getFileName(); String fileName = cbProjectFile.getFileName();
String prefix = FileNameUtil.getPrefix(fileName); String prefix = FileNameUtil.getPrefix(fileName);
// 解析汇总 // 解析汇总
if ("措施费".equals(prefix)) { if ("措施费".equals(prefix)) {
byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl()); byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl());
InputStream inputStream = new ByteArrayInputStream(bytes); InputStream inputStream = new ByteArrayInputStream(bytes);
List<String> errlist = importExcelSummaryData(inputStream, projectId, 2); List<String> errlist = importExcelSummaryData(inputStream, projectId,projectFileId, 2);
if(CollectionUtil.isNotEmpty(errlist)){ if (CollectionUtil.isNotEmpty(errlist)) {
cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL); cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_FAIL);
}else { } else {
// 修改文件解析状态 // 修改文件解析状态
cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS); cbProjectFile.setFileParseStatus(CbProjectConstants.PROJECT_FILE_STATUS_PARSE_SUCCESS);
} }
...@@ -320,7 +307,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -320,7 +307,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
} else { } else {
byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl()); byte[] bytes = HttpUtil.downloadBytes(cbProjectFile.getFileOssUrl());
InputStream inputStream = new ByteArrayInputStream(bytes); InputStream inputStream = new ByteArrayInputStream(bytes);
importExcelData(inputStream, fileName, cbProjectFile.getId(), projectId); importExcelData(inputStream, prefix, cbProjectFile.getId(), projectId);
} }
//更新 //更新
...@@ -329,7 +316,6 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -329,7 +316,6 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
} }
return false; return false;
} }
...@@ -342,7 +328,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C ...@@ -342,7 +328,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
* @param cbStage * @param cbStage
* @return * @return
*/ */
public CbCostMeasure getCbCostMeasure(Long rootMeasuresId, String number, Long projectId, Integer cbStage) { public CbCostMeasure getCbCostMeasure(Long rootMeasuresId, String number, Long projectId) {
String parentNo = number.substring(0, number.lastIndexOf('.')); String parentNo = number.substring(0, number.lastIndexOf('.'));
parentNo = String.valueOf(rootMeasuresId).concat(".").concat(parentNo); parentNo = String.valueOf(rootMeasuresId).concat(".").concat(parentNo);
CbCostMeasure rootCbCostMeasure = new CbCostMeasure(); CbCostMeasure rootCbCostMeasure = new CbCostMeasure();
......
...@@ -139,6 +139,16 @@ public class CbProjectExpenseSummaryServiceImpl extends ServiceImpl<CbProjectExp ...@@ -139,6 +139,16 @@ public class CbProjectExpenseSummaryServiceImpl extends ServiceImpl<CbProjectExp
.eq(CbProjectExpenseSummary::getDataType, CbProjectConstants.CB_TYPE_SCENE_EXPENSE)); .eq(CbProjectExpenseSummary::getDataType, CbProjectConstants.CB_TYPE_SCENE_EXPENSE));
} }
@Override
public List<CbProjectExpenseSummary> queryCbSceneExpenseSummaryDataByType(Long projectId, Integer dataType) {
//校验项目是否存在
this.checkProjectExist(projectId);
return baseMapper.selectList(new LambdaQueryWrapper<CbProjectExpenseSummary>()
.eq(CbProjectExpenseSummary::getProjectId, projectId)
.eq(CbProjectExpenseSummary::getDataType, dataType));
}
/** /**
* 校验项目是否存在 * 校验项目是否存在
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment