Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fulixin
dsk-operate-sys-cscec
Commits
eb061346
Commit
eb061346
authored
Feb 27, 2024
by
tanyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
措施费相关导入优化
parent
c303d8bd
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
221 additions
and
45 deletions
+221
-45
CbCostMeasureController.java
...ava/com/dsk/cscec/controller/CbCostMeasureController.java
+21
-2
CbCostMeasure.java
...api/src/main/java/com/dsk/cscec/domain/CbCostMeasure.java
+1
-1
ProjectCostMeasureImportListener.java
.../dsk/cscec/listener/ProjectCostMeasureImportListener.java
+8
-2
ProjectCostMeasureSummaryImportListener.java
...cec/listener/ProjectCostMeasureSummaryImportListener.java
+11
-3
CbProjectFileService.java
...main/java/com/dsk/cscec/service/CbProjectFileService.java
+11
-0
ICbCostMeasureService.java
...ain/java/com/dsk/cscec/service/ICbCostMeasureService.java
+9
-2
CbCostMeasureServiceImpl.java
.../com/dsk/cscec/service/impl/CbCostMeasureServiceImpl.java
+149
-34
CbProjectFileServiceImpl.java
.../com/dsk/cscec/service/impl/CbProjectFileServiceImpl.java
+10
-0
CbCostMeasureMapper.xml
...i/src/main/resources/mapper/cscec/CbCostMeasureMapper.xml
+1
-1
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/controller/CbCostMeasureController.java
View file @
eb061346
...
@@ -38,8 +38,10 @@ import java.io.File;
...
@@ -38,8 +38,10 @@ import java.io.File;
import
java.io.FileInputStream
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.FileNotFoundException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
/**
* 措施费导入
* 措施费导入
...
@@ -150,7 +152,24 @@ public class CbCostMeasureController {
...
@@ -150,7 +152,24 @@ public class CbCostMeasureController {
// @SaCheckPermission("system:user:import")
// @SaCheckPermission("system:user:import")
@PostMapping
(
value
=
"/importData"
,
consumes
=
MediaType
.
MULTIPART_FORM_DATA_VALUE
)
@PostMapping
(
value
=
"/importData"
,
consumes
=
MediaType
.
MULTIPART_FORM_DATA_VALUE
)
public
R
<
Void
>
importData
(
@RequestPart
(
"file"
)
MultipartFile
file
,
Long
projectId
)
throws
Exception
{
public
R
<
Void
>
importData
(
@RequestPart
(
"file"
)
MultipartFile
file
,
Long
projectId
)
throws
Exception
{
cbCostMeasureService
.
importExcelData
(
file
,
projectId
);
String
name
=
file
.
getOriginalFilename
();
cbCostMeasureService
.
importExcelData
(
file
.
getInputStream
(),
name
,
null
,
projectId
);
return
R
.
ok
();
}
/**
* 措施费导入数据
*
* @param projectFileIds 导入文件
* @param projectId 项目id
*/
@SaIgnore
@Log
(
title
=
"措施费导入"
,
businessType
=
BusinessType
.
IMPORT
)
@PostMapping
(
value
=
"/parseCbCostMeasureFile"
)
public
R
<
Void
>
parseCbCostMeasureFile
(
Long
projectId
,
@RequestParam
(
"projectFileIds"
)
Long
[]
projectFileIds
)
throws
Exception
{
List
<
Long
>
fileIds
=
Arrays
.
stream
(
projectFileIds
).
collect
(
Collectors
.
toList
());
cbCostMeasureService
.
parseCbCostMeasureFile
(
projectId
,
fileIds
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -168,7 +187,7 @@ public class CbCostMeasureController {
...
@@ -168,7 +187,7 @@ 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
,
projectId
,
dataType
);
cbCostMeasureService
.
importExcelSummaryData
(
file
.
getInputStream
()
,
projectId
,
dataType
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/CbCostMeasure.java
View file @
eb061346
...
@@ -28,7 +28,7 @@ public class CbCostMeasure {
...
@@ -28,7 +28,7 @@ public class CbCostMeasure {
/**
/**
* 成本阶段( 0:标前成本、1:标后成本、2:转固成本)
* 成本阶段( 0:标前成本、1:标后成本、2:转固成本)
*/
*/
private
Integer
cbStage
;
private
Long
projectFileId
;
/**
/**
* 父项id
* 父项id
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/listener/ProjectCostMeasureImportListener.java
View file @
eb061346
...
@@ -40,6 +40,8 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
...
@@ -40,6 +40,8 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
private
List
<
CbCostMeasuresImportVo
>
dataList
=
new
ArrayList
<>();
private
List
<
CbCostMeasuresImportVo
>
dataList
=
new
ArrayList
<>();
private
List
<
String
>
errList
=
new
ArrayList
<>();
// private final String operName;
// private final String operName;
private
int
successNum
=
0
;
private
int
successNum
=
0
;
...
@@ -62,11 +64,14 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
...
@@ -62,11 +64,14 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
if
(
StrUtil
.
isEmpty
(
importVo
.
getItemContent
()))
{
if
(
StrUtil
.
isEmpty
(
importVo
.
getItemContent
()))
{
failureNum
++;
failureNum
++;
failureMsg
.
append
(
"<br/>"
+
rowIndex
+
"行 解析失败:清单内容不能为空"
);
failureMsg
.
append
(
"<br/>"
+
rowIndex
+
"行 解析失败:清单内容不能为空"
);
errList
.
add
(
failureMsg
.
toString
());
return
;
}
}
String
number
=
importVo
.
getNumber
();
String
number
=
importVo
.
getNumber
();
if
(
StrUtil
.
isEmpty
(
number
))
{
if
(
StrUtil
.
isEmpty
(
number
))
{
failureNum
++;
failureNum
++;
failureMsg
.
append
(
"<br/>"
+
rowIndex
+
"行 解析失败:序号不能为空"
);
failureMsg
.
append
(
"<br/>"
+
rowIndex
+
"行 解析失败:序号不能为空"
);
errList
.
add
(
failureMsg
.
toString
());
}
}
Boolean
numberMatch
=
false
;
Boolean
numberMatch
=
false
;
...
@@ -79,6 +84,7 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
...
@@ -79,6 +84,7 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
}
else
{
}
else
{
failureNum
++;
failureNum
++;
failureMsg
.
append
(
"<br/>"
+
rowIndex
+
"行 解析失败:序号格式错误"
);
failureMsg
.
append
(
"<br/>"
+
rowIndex
+
"行 解析失败:序号格式错误"
);
errList
.
add
(
failureMsg
.
toString
());
}
}
...
@@ -186,7 +192,7 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
...
@@ -186,7 +192,7 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
public
String
getAnalysis
()
{
public
String
getAnalysis
()
{
if
(
failureNum
>
0
)
{
if
(
failureNum
>
0
)
{
failureMsg
.
insert
(
0
,
"很抱歉,导入失败!共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
failureMsg
.
insert
(
0
,
"很抱歉,导入失败!共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
throw
new
ServiceException
(
failureMsg
.
toString
());
//
throw new ServiceException(failureMsg.toString());
}
else
{
}
else
{
successMsg
.
insert
(
0
,
"恭喜您,数据已全部导入成功!共 "
+
successNum
+
" 条,数据如下:"
);
successMsg
.
insert
(
0
,
"恭喜您,数据已全部导入成功!共 "
+
successNum
+
" 条,数据如下:"
);
}
}
...
@@ -200,7 +206,7 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
...
@@ -200,7 +206,7 @@ public class ProjectCostMeasureImportListener extends AnalysisEventListener<CbCo
@Override
@Override
public
List
<
String
>
getErrorList
()
{
public
List
<
String
>
getErrorList
()
{
return
null
;
return
errList
;
}
}
};
};
}
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/listener/ProjectCostMeasureSummaryImportListener.java
View file @
eb061346
...
@@ -39,6 +39,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
...
@@ -39,6 +39,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
private
final
Integer
dataType
;
private
final
Integer
dataType
;
private
List
<
CbProjectExpenseSummaryImportVo
>
dataList
=
new
ArrayList
<>();
private
List
<
CbProjectExpenseSummaryImportVo
>
dataList
=
new
ArrayList
<>();
private
List
<
String
>
errorList
=
new
ArrayList
<>();
// private final String operName;
// private final String operName;
...
@@ -62,8 +63,15 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
...
@@ -62,8 +63,15 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
cbProjectExpenseSummary
.
setProjectId
(
projectId
);
cbProjectExpenseSummary
.
setProjectId
(
projectId
);
cbProjectExpenseSummary
.
setCbStage
(
cbStage
);
cbProjectExpenseSummary
.
setCbStage
(
cbStage
);
cbProjectExpenseSummary
.
setDataType
(
dataType
);
cbProjectExpenseSummary
.
setDataType
(
dataType
);
cbProjectExpenseSummary
.
setCreateBy
(
LoginHelper
.
getUsername
());
// cbProjectExpenseSummary.setCreateBy(LoginHelper.getUsername());
cbProjectExpenseSummaryService
.
save
(
cbProjectExpenseSummary
);
boolean
save
=
cbProjectExpenseSummaryService
.
save
(
cbProjectExpenseSummary
);
if
(!
save
){
String
errmsg
=
context
.
readRowHolder
().
getRowIndex
()
+
" error"
;
log
.
debug
(
"ProjectCostMeasureSummaryImportListener.invoke() "
+
errmsg
);
errorList
.
add
(
errmsg
);
}
successNum
+=
1
;
dataList
.
add
(
importVo
);
}
}
...
@@ -94,7 +102,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
...
@@ -94,7 +102,7 @@ public class ProjectCostMeasureSummaryImportListener extends AnalysisEventListen
@Override
@Override
public
List
<
String
>
getErrorList
()
{
public
List
<
String
>
getErrorList
()
{
return
null
;
return
errorList
;
}
}
};
};
}
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/CbProjectFileService.java
View file @
eb061346
...
@@ -56,4 +56,15 @@ public interface CbProjectFileService extends IService<CbProjectFile> {
...
@@ -56,4 +56,15 @@ public interface CbProjectFileService extends IService<CbProjectFile> {
*/
*/
List
<
CbProjectFile
>
selectAnalysisList
(
Long
projectId
,
Integer
cbType
,
Integer
cbStage
);
List
<
CbProjectFile
>
selectAnalysisList
(
Long
projectId
,
Integer
cbType
,
Integer
cbStage
);
/**
* 更新项目文件状态
*
* @param projectId 项目ID
* @param cbType CB型
* @param fileId 文件ID文件ID
* @param errmsg RMSG
* @return boolean
*/
boolean
UpdateProjectFileStatus
(
Long
fileId
,
String
errmsg
,
Integer
status
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/ICbCostMeasureService.java
View file @
eb061346
...
@@ -12,6 +12,7 @@ import com.dsk.cscec.domain.vo.CbCostMeasureActualVo;
...
@@ -12,6 +12,7 @@ import com.dsk.cscec.domain.vo.CbCostMeasureActualVo;
import
com.dsk.cscec.domain.vo.CbCostMeasuresItemVo
;
import
com.dsk.cscec.domain.vo.CbCostMeasuresItemVo
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -23,7 +24,7 @@ import java.util.Map;
...
@@ -23,7 +24,7 @@ import java.util.Map;
*/
*/
public
interface
ICbCostMeasureService
extends
IService
<
CbCostMeasure
>
{
public
interface
ICbCostMeasureService
extends
IService
<
CbCostMeasure
>
{
void
importExcelData
(
MultipartFile
file
,
Long
projectId
);
void
importExcelData
(
InputStream
inputStream
,
String
fileName
,
Long
fileId
,
Long
projectId
);
List
<
Map
<
String
,
Object
>>
listByLevel
(
Long
projectId
,
int
i
);
List
<
Map
<
String
,
Object
>>
listByLevel
(
Long
projectId
,
int
i
);
...
@@ -33,6 +34,12 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> {
...
@@ -33,6 +34,12 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> {
void
pushCostMeasureActual
(
CbCostMeasureActualPushBo
pushBo
);
void
pushCostMeasureActual
(
CbCostMeasureActualPushBo
pushBo
);
void
importExcelSummaryData
(
MultipartFile
file
,
Long
projectId
,
Integer
dataType
);
List
<
String
>
importExcelSummaryData
(
InputStream
inputStream
,
Long
projectId
,
Integer
dataType
);
void
parseCbCostMeasureFile
(
Long
projectId
);
void
parseCbCostMeasureFile
(
Long
projectId
,
List
<
Long
>
projectFileIds
);
boolean
reparseCbCostMeasureFile
(
Long
projectId
,
Long
projectFileId
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbCostMeasureServiceImpl.java
View file @
eb061346
...
@@ -6,45 +6,36 @@ import cn.hutool.core.io.file.FileNameUtil;
...
@@ -6,45 +6,36 @@ import cn.hutool.core.io.file.FileNameUtil;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ReUtil
;
import
cn.hutool.core.util.ReUtil
;
import
cn.hutool.
core.util.Str
Util
;
import
cn.hutool.
http.Http
Util
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
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.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.dsk.common.core.domain.PageQuery
;
import
com.dsk.common.core.domain.entity.SysDictData
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.excel.ExcelResult
;
import
com.dsk.common.excel.ExcelResult
;
import
com.dsk.common.helper.LoginHelper
;
import
com.dsk.common.helper.LoginHelper
;
import
com.dsk.common.utils.JsonUtils
;
import
com.dsk.common.utils.JsonUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.cscec.domain.CbCostMeasureActual
;
import
com.dsk.cscec.constant.CbProjectConstants
;
import
com.dsk.cscec.domain.CbProjectRecord
;
import
com.dsk.cscec.domain.*
;
import
com.dsk.cscec.domain.DCustomer
;
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
;
import
com.dsk.cscec.domain.vo.CbCostMeasureActualVo
;
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.CbProjectExpenseSummaryImportVo
;
import
com.dsk.cscec.domain.vo.CbProjectExpenseSummaryImportVo
;
import
com.dsk.cscec.listener.ProjectCostMeasureImportListener
;
import
com.dsk.cscec.listener.ProjectCostMeasureImportListener
;
import
com.dsk.cscec.listener.ProjectCostMeasureSummaryImportListener
;
import
com.dsk.cscec.listener.ProjectCostMeasureSummaryImportListener
;
import
com.dsk.cscec.mapper.CbCostMeasureActualMapper
;
import
com.dsk.cscec.service.*
;
import
com.dsk.cscec.service.CbProjectRecordService
;
import
com.dsk.cscec.service.ICbCostMeasureActualService
;
import
com.dsk.cscec.service.ICbCostMeasureService
;
import
lombok.SneakyThrows
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
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
com.dsk.cscec.domain.CbCostMeasure
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
...
@@ -67,35 +58,52 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -67,35 +58,52 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@Autowired
@Autowired
private
ICbCostMeasureActualService
cbCostMeasureActualService
;
private
ICbCostMeasureActualService
cbCostMeasureActualService
;
@Autowired
private
CbProjectFileService
cbProjectFileService
;
@Autowired
private
CbProjectExpenseSummaryService
cbProjectExpenseSummaryService
;
@SneakyThrows
@SneakyThrows
@Override
@Override
public
void
importExcelData
(
MultipartFile
file
,
Long
projectId
)
{
public
void
importExcelData
(
InputStream
inputStream
,
String
fileName
,
Long
fileId
,
Long
projectId
)
{
String
name
=
file
.
getOriginalFilename
();
name
=
FileNameUtil
.
getPrefix
(
n
ame
);
String
name
=
FileNameUtil
.
getPrefix
(
fileN
ame
);
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
Integer
cbStage
=
byId
.
getCbStage
();
Integer
cbStage
=
byId
.
getCbStage
();
ProjectCostMeasureImportListener
importListener
=
new
ProjectCostMeasureImportListener
(
projectId
,
cbStage
);
ProjectCostMeasureImportListener
importListener
=
new
ProjectCostMeasureImportListener
(
projectId
,
cbStage
);
EasyExcel
.
read
(
file
.
getInputStream
()
,
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
();
if
(
CollectionUtil
.
isEmpty
(
list
))
{
List
<
String
>
errorList
=
result
.
getErrorList
();
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
);
return
;
return
;
}
}
log
.
debug
(
">>>>"
+
list
.
size
());
log
.
debug
(
">>>>"
+
list
.
size
());
//删除 该项目历史解析数据
LambdaQueryWrapper
<
CbCostMeasure
>
summaryLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
summaryLambdaQueryWrapper
.
eq
(
CbCostMeasure:
:
getProjectId
,
projectId
);
summaryLambdaQueryWrapper
.
eq
(
ObjectUtil
.
isNotEmpty
(
fileId
),
CbCostMeasure:
:
getProjectFileId
,
fileId
);
this
.
remove
(
summaryLambdaQueryWrapper
);
CbCostMeasure
rootCbCostMeasure
=
new
CbCostMeasure
();
CbCostMeasure
rootCbCostMeasure
=
new
CbCostMeasure
();
rootCbCostMeasure
.
setItemContent
(
name
);
rootCbCostMeasure
.
setItemContent
(
name
);
rootCbCostMeasure
.
setLevel
(
0
);
rootCbCostMeasure
.
setLevel
(
0
);
rootCbCostMeasure
.
setParentId
(
0L
);
rootCbCostMeasure
.
setParentId
(
0L
);
rootCbCostMeasure
.
setProjectId
(
projectId
);
rootCbCostMeasure
.
setProjectId
(
projectId
);
rootCbCostMeasure
.
setCbStage
(
cbStage
);
if
(
ObjectUtil
.
isNotEmpty
(
fileId
))
{
rootCbCostMeasure
.
setProjectFileId
(
fileId
);
}
LambdaQueryWrapper
<
CbCostMeasure
>
tWrapper
=
Wrappers
.
lambdaQuery
(
rootCbCostMeasure
);
LambdaQueryWrapper
<
CbCostMeasure
>
tWrapper
=
Wrappers
.
lambdaQuery
(
rootCbCostMeasure
);
CbCostMeasure
rootMeasure
=
this
.
getOne
(
tWrapper
);
CbCostMeasure
rootMeasure
=
this
.
getOne
(
tWrapper
);
...
@@ -112,7 +120,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -112,7 +120,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
CbCostMeasure
cbCostMeasure
=
new
CbCostMeasure
();
CbCostMeasure
cbCostMeasure
=
new
CbCostMeasure
();
cbCostMeasure
.
setProjectId
(
projectId
);
cbCostMeasure
.
setProjectId
(
projectId
);
cbCostMeasure
.
set
CbStage
(
cbStage
);
cbCostMeasure
.
set
ProjectFileId
(
fileId
);
//保存一级节点
//保存一级节点
if
(
ReUtil
.
isMatch
(
firstPattern
,
number
)
||
ReUtil
.
isMatch
(
pattern3
,
number
))
{
if
(
ReUtil
.
isMatch
(
firstPattern
,
number
)
||
ReUtil
.
isMatch
(
pattern3
,
number
))
{
BeanUtil
.
copyProperties
(
importVo
,
cbCostMeasure
);
BeanUtil
.
copyProperties
(
importVo
,
cbCostMeasure
);
...
@@ -131,6 +139,8 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -131,6 +139,8 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
cbCostMeasure
.
setNo
(
newNo
);
cbCostMeasure
.
setNo
(
newNo
);
this
.
save
(
cbCostMeasure
);
this
.
save
(
cbCostMeasure
);
}
}
cbProjectFileService
.
UpdateProjectFileStatus
(
fileId
,
null
,
CbProjectConstants
.
PROJECT_FILE_STATUS_PARSE_SUCCESS
);
}
}
}
}
...
@@ -144,10 +154,9 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -144,10 +154,9 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
CbCostMeasure
rootCbCostMeasure
=
new
CbCostMeasure
();
CbCostMeasure
rootCbCostMeasure
=
new
CbCostMeasure
();
rootCbCostMeasure
.
setParentId
(
0L
);
rootCbCostMeasure
.
setParentId
(
0L
);
rootCbCostMeasure
.
setProjectId
(
projectId
);
rootCbCostMeasure
.
setProjectId
(
projectId
);
rootCbCostMeasure
.
setCbStage
(
byId
.
getCbStage
());
QueryWrapper
<
CbCostMeasure
>
tWrapper
=
Wrappers
.
query
(
rootCbCostMeasure
);
QueryWrapper
<
CbCostMeasure
>
tWrapper
=
Wrappers
.
query
(
rootCbCostMeasure
);
tWrapper
.
select
(
"id"
,
"item_content as itemContent"
);
tWrapper
.
select
(
"id"
,
"item_content as itemContent"
);
tWrapper
.
orderByAsc
(
"id"
);
tWrapper
.
orderByAsc
(
"id"
);
List
<
Map
<
String
,
Object
>>
mapList
=
this
.
listMaps
(
tWrapper
);
List
<
Map
<
String
,
Object
>>
mapList
=
this
.
listMaps
(
tWrapper
);
...
@@ -182,10 +191,10 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -182,10 +191,10 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@Override
@Override
public
void
saveBatchCostMeasureActual
(
List
<
CbCostMeasureActualSaveBo
>
boList
)
{
public
void
saveBatchCostMeasureActual
(
List
<
CbCostMeasureActualSaveBo
>
boList
)
{
List
<
CbCostMeasureActual
>
saveList
=
new
ArrayList
<>();
List
<
CbCostMeasureActual
>
saveList
=
new
ArrayList
<>();
for
(
CbCostMeasureActualSaveBo
cbCostMeasureActualSaveBo
:
boList
)
{
for
(
CbCostMeasureActualSaveBo
cbCostMeasureActualSaveBo
:
boList
)
{
CbCostMeasureActual
cbCostMeasureActual
=
new
CbCostMeasureActual
();
CbCostMeasureActual
cbCostMeasureActual
=
new
CbCostMeasureActual
();
BeanUtil
.
copyProperties
(
cbCostMeasureActualSaveBo
,
cbCostMeasureActual
);
BeanUtil
.
copyProperties
(
cbCostMeasureActualSaveBo
,
cbCostMeasureActual
);
cbCostMeasureActual
.
setDelFlag
(
0
);
cbCostMeasureActual
.
setDelFlag
(
0
);
cbCostMeasureActual
.
setUpdateId
(
LoginHelper
.
getUserId
());
cbCostMeasureActual
.
setUpdateId
(
LoginHelper
.
getUserId
());
cbCostMeasureActual
.
setUpdateUser
(
LoginHelper
.
getUsername
());
cbCostMeasureActual
.
setUpdateUser
(
LoginHelper
.
getUsername
());
...
@@ -199,8 +208,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -199,8 +208,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
//todo 推送到Ipm系统
//todo 推送到Ipm系统
CbCostMeasureActual
cbCostMeasureActual
=
new
CbCostMeasureActual
();
CbCostMeasureActual
cbCostMeasureActual
=
new
CbCostMeasureActual
();
cbCostMeasureActual
.
setId
(
pushBo
.
getId
());
cbCostMeasureActual
.
setId
(
pushBo
.
getId
());
cbCostMeasureActual
.
setPushTime
(
new
Date
());
cbCostMeasureActual
.
setPushTime
(
new
Date
());
cbCostMeasureActual
.
setPushDataJson
(
JsonUtils
.
toJsonString
(
pushBo
));
cbCostMeasureActual
.
setPushDataJson
(
JsonUtils
.
toJsonString
(
pushBo
));
...
@@ -209,12 +217,120 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -209,12 +217,120 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@SneakyThrows
@SneakyThrows
@Override
@Override
public
void
importExcelSummaryData
(
MultipartFile
file
,
Long
projectId
,
Integer
dataType
)
{
public
List
<
String
>
importExcelSummaryData
(
InputStream
inputStream
,
Long
projectId
,
Integer
dataType
)
{
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
Integer
cbStage
=
byId
.
getCbStage
();
Integer
cbStage
=
byId
.
getCbStage
();
ExcelUtil
.
importExcel
(
file
.
getInputStream
(),
CbProjectExpenseSummaryImportVo
.
class
,
new
ProjectCostMeasureSummaryImportListener
(
projectId
,
cbStage
,
dataType
));
// 删除历史数据
LambdaUpdateWrapper
<
CbProjectExpenseSummary
>
summaryLambdaQueryWrapper
=
Wrappers
.
lambdaUpdate
();
summaryLambdaQueryWrapper
.
eq
(
CbProjectExpenseSummary:
:
getProjectId
,
projectId
);
summaryLambdaQueryWrapper
.
eq
(
CbProjectExpenseSummary:
:
getDataType
,
2
);
cbProjectExpenseSummaryService
.
remove
(
summaryLambdaQueryWrapper
);
ExcelResult
<
CbProjectExpenseSummaryImportVo
>
excelResult
=
ExcelUtil
.
importExcel
(
inputStream
,
CbProjectExpenseSummaryImportVo
.
class
,
new
ProjectCostMeasureSummaryImportListener
(
projectId
,
cbStage
,
dataType
));
List
<
String
>
errorList
=
excelResult
.
getErrorList
();
if
(
CollectionUtil
.
isNotEmpty
(
errorList
)||
CollectionUtil
.
isEmpty
(
excelResult
.
getList
())){
return
errorList
;
}
return
null
;
}
@Override
public
void
parseCbCostMeasureFile
(
Long
projectId
)
{
// 查询项目
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
parseCbCostMeasureFile
(
projectId
,
null
);
}
@Override
public
void
parseCbCostMeasureFile
(
Long
projectId
,
List
<
Long
>
projectFileIds
)
{
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
>()
.
eq
(
CbProjectFile:
:
getProjectId
,
projectId
)
.
eq
(
CbProjectFile:
:
getCbType
,
CbProjectConstants
.
CB_TYPE_MEASURE_PROJECT
)
);
}
if
(
CollectionUtil
.
isEmpty
(
cbProjectFiles
))
{
log
.
debug
(
"措施费数据文件不存在"
);
return
;
}
for
(
CbProjectFile
cbProjectFile
:
cbProjectFiles
)
{
String
fileName
=
cbProjectFile
.
getFileName
();
String
prefix
=
FileNameUtil
.
getPrefix
(
fileName
);
// 解析汇总
if
(
"措施费"
.
equals
(
prefix
))
{
byte
[]
bytes
=
HttpUtil
.
downloadBytes
(
cbProjectFile
.
getFileOssUrl
());
InputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
List
<
String
>
errlist
=
importExcelSummaryData
(
inputStream
,
projectId
,
2
);
if
(
CollectionUtil
.
isNotEmpty
(
errlist
)){
cbProjectFile
.
setFileParseStatus
(
CbProjectConstants
.
PROJECT_FILE_STATUS_PARSE_FAIL
);
}
else
{
// 修改文件解析状态
cbProjectFile
.
setFileParseStatus
(
CbProjectConstants
.
PROJECT_FILE_STATUS_PARSE_SUCCESS
);
}
cbProjectFileService
.
updateById
(
cbProjectFile
);
}
else
{
byte
[]
bytes
=
HttpUtil
.
downloadBytes
(
cbProjectFile
.
getFileOssUrl
());
InputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
importExcelData
(
inputStream
,
fileName
,
cbProjectFile
.
getId
(),
projectId
);
}
}
}
@Override
public
boolean
reparseCbCostMeasureFile
(
Long
projectId
,
Long
projectFileId
)
{
// 查询项目
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
List
<
CbProjectFile
>
cbProjectFiles
=
new
ArrayList
<>();
Assert
.
notNull
(
projectFileId
,
"措施费文件ID不能为空"
);
if
(
ObjectUtil
.
isNotEmpty
(
projectFileId
)){
CbProjectFile
cbProjectFile
=
cbProjectFileService
.
getById
(
projectFileId
);
Assert
.
notNull
(
cbProjectFile
,
"措施费导入文件不存在"
);
String
fileName
=
cbProjectFile
.
getFileName
();
String
prefix
=
FileNameUtil
.
getPrefix
(
fileName
);
// 解析汇总
if
(
"措施费"
.
equals
(
prefix
))
{
byte
[]
bytes
=
HttpUtil
.
downloadBytes
(
cbProjectFile
.
getFileOssUrl
());
InputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
List
<
String
>
errlist
=
importExcelSummaryData
(
inputStream
,
projectId
,
2
);
if
(
CollectionUtil
.
isNotEmpty
(
errlist
)){
cbProjectFile
.
setFileParseStatus
(
CbProjectConstants
.
PROJECT_FILE_STATUS_PARSE_FAIL
);
}
else
{
// 修改文件解析状态
cbProjectFile
.
setFileParseStatus
(
CbProjectConstants
.
PROJECT_FILE_STATUS_PARSE_SUCCESS
);
}
}
else
{
byte
[]
bytes
=
HttpUtil
.
downloadBytes
(
cbProjectFile
.
getFileOssUrl
());
InputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
importExcelData
(
inputStream
,
fileName
,
cbProjectFile
.
getId
(),
projectId
);
}
//更新
return
true
;
}
return
false
;
}
}
...
@@ -232,7 +348,6 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -232,7 +348,6 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
CbCostMeasure
rootCbCostMeasure
=
new
CbCostMeasure
();
CbCostMeasure
rootCbCostMeasure
=
new
CbCostMeasure
();
rootCbCostMeasure
.
setNo
(
parentNo
);
rootCbCostMeasure
.
setNo
(
parentNo
);
rootCbCostMeasure
.
setProjectId
(
projectId
);
rootCbCostMeasure
.
setProjectId
(
projectId
);
rootCbCostMeasure
.
setCbStage
(
cbStage
);
LambdaQueryWrapper
<
CbCostMeasure
>
tWrapper
=
Wrappers
.
lambdaQuery
(
rootCbCostMeasure
);
LambdaQueryWrapper
<
CbCostMeasure
>
tWrapper
=
Wrappers
.
lambdaQuery
(
rootCbCostMeasure
);
CbCostMeasure
rootMeasure
=
this
.
getOne
(
tWrapper
);
CbCostMeasure
rootMeasure
=
this
.
getOne
(
tWrapper
);
return
rootMeasure
;
return
rootMeasure
;
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbProjectFileServiceImpl.java
View file @
eb061346
...
@@ -167,6 +167,16 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C
...
@@ -167,6 +167,16 @@ public class CbProjectFileServiceImpl extends ServiceImpl<CbProjectFileMapper, C
return
baseMapper
.
selectAnalysisList
(
projectId
,
cbType
,
cbStage
);
return
baseMapper
.
selectAnalysisList
(
projectId
,
cbType
,
cbStage
);
}
}
@Override
public
boolean
UpdateProjectFileStatus
(
Long
fileId
,
String
errmsg
,
Integer
status
)
{
CbProjectFile
cbProjectFile
=
new
CbProjectFile
();
cbProjectFile
.
setId
(
fileId
);
cbProjectFile
.
setFailRemark
(
errmsg
);
cbProjectFile
.
setFileParseStatus
(
status
);
boolean
b
=
this
.
updateById
(
cbProjectFile
);
return
b
;
}
/**
/**
* 校验项目是否存在
* 校验项目是否存在
*
*
...
...
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/CbCostMeasureMapper.xml
View file @
eb061346
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<!--@Table cb_cost_measure-->
<!--@Table cb_cost_measure-->
<id
column=
"id"
jdbcType=
"BIGINT"
property=
"id"
/>
<id
column=
"id"
jdbcType=
"BIGINT"
property=
"id"
/>
<result
column=
"project_id"
jdbcType=
"BIGINT"
property=
"projectId"
/>
<result
column=
"project_id"
jdbcType=
"BIGINT"
property=
"projectId"
/>
<result
column=
"cb_stage"
jdbcType=
"INTEGER"
property=
"
cbStage
"
/>
<result
column=
"cb_stage"
jdbcType=
"INTEGER"
property=
"
projectFileId
"
/>
<result
column=
"parent_id"
jdbcType=
"BIGINT"
property=
"parentId"
/>
<result
column=
"parent_id"
jdbcType=
"BIGINT"
property=
"parentId"
/>
<result
column=
"level"
jdbcType=
"INTEGER"
property=
"level"
/>
<result
column=
"level"
jdbcType=
"INTEGER"
property=
"level"
/>
<result
column=
"number"
jdbcType=
"VARCHAR"
property=
"number"
/>
<result
column=
"number"
jdbcType=
"VARCHAR"
property=
"number"
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment