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
05b3a497
Commit
05b3a497
authored
Feb 22, 2024
by
chenyuefang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
成本汇总导入
parent
1a1cc19e
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
465 additions
and
23 deletions
+465
-23
CbSummaryController.java
...in/java/com/dsk/cscec/controller/CbSummaryController.java
+8
-1
CbSummaryCostAccountImportVo.java
...com/dsk/cscec/domain/vo/CbSummaryCostAccountImportVo.java
+80
-0
CbSummaryProjectImportVo.java
...ava/com/dsk/cscec/domain/vo/CbSummaryProjectImportVo.java
+20
-3
CbSummaryCostAccountImportListener.java
...sk/cscec/listener/CbSummaryCostAccountImportListener.java
+96
-0
CbSummaryProjectImportListener.java
...om/dsk/cscec/listener/CbSummaryProjectImportListener.java
+115
-0
CbSummaryService.java
...src/main/java/com/dsk/cscec/service/CbSummaryService.java
+6
-2
CbSummaryServiceImpl.java
...java/com/dsk/cscec/service/impl/CbSummaryServiceImpl.java
+139
-16
CbSummaryMapper.xml
...z-api/src/main/resources/mapper/cscec/CbSummaryMapper.xml
+1
-1
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/controller/CbSummaryController.java
View file @
05b3a497
...
@@ -128,6 +128,13 @@ public class CbSummaryController extends BaseController {
...
@@ -128,6 +128,13 @@ public class CbSummaryController extends BaseController {
}
}
//导入
/**
* 解析并保存数据
* @param projectId
*/
@PostMapping
(
"/analysisData"
)
public
void
analysisData
(
Long
projectId
){
cbSummaryService
.
importCbProject
(
projectId
);
}
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbSummaryCostAccountImportVo.java
0 → 100644
View file @
05b3a497
package
com
.
dsk
.
cscec
.
domain
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* 成本汇总(CbSummary)-成本科目汇总导入Vo
*
* @author cyf
* @since 2024-02-06
*/
@Data
@NoArgsConstructor
public
class
CbSummaryCostAccountImportVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
20126964599875841L
;
/**
* 排序
*/
private
Integer
sort
;
/**
* 层级
*/
private
Integer
level
;
/**
* 项目id
*/
private
Long
projectId
;
/**
* 项目成本文件id
*/
private
Long
cbProjectFileId
;
/**
* 成本类型(1项目汇总,2成本科目汇总)
*/
private
Integer
cbType
=
2
;
/**
* 序号
*/
@ExcelProperty
(
value
=
"序号"
)
private
String
number
;
/**
* 成本科目
*/
@ExcelProperty
(
value
=
"成本科目"
)
private
String
cbName
;
/**
* 不含税成本合价
*/
@ExcelProperty
(
value
=
"不含税成本合价"
)
private
String
taxExclusiveTotal
;
/**
* 成本税金合价
*/
@ExcelProperty
(
value
=
"成本税金合价"
)
private
String
cbTaxesTotal
;
/**
* 含税成本合价
*/
@ExcelProperty
(
value
=
"含税成本合价"
)
private
String
taxInclusiveTotal
;
/**
* 成本占比
*/
@ExcelProperty
(
value
=
"成本占比"
)
private
String
cbProportion
;
/**
* 含税成本平米指标
*/
@ExcelProperty
(
value
=
"含税成本平米指标"
)
private
String
taxInclusivePmTarget
;
/**
* 备注
*/
@ExcelProperty
(
value
=
"备注"
)
private
String
remark
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbSummaryProjectImportVo.java
View file @
05b3a497
package
com
.
dsk
.
cscec
.
domain
.
vo
;
package
com
.
dsk
.
cscec
.
domain
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
/**
* 成本汇总(CbSummary)-项目汇总导入Vo
* 成本汇总(CbSummary)-项目汇总导入Vo
...
@@ -18,7 +16,26 @@ import java.util.Date;
...
@@ -18,7 +16,26 @@ import java.util.Date;
@NoArgsConstructor
@NoArgsConstructor
public
class
CbSummaryProjectImportVo
implements
Serializable
{
public
class
CbSummaryProjectImportVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
20126964599875841L
;
private
static
final
long
serialVersionUID
=
-
20126964599875841L
;
/**
* 排序
*/
private
Integer
sort
;
/**
* 层级
*/
private
Integer
level
;
/**
* 项目id
*/
private
Long
projectId
;
/**
* 项目成本文件id
*/
private
Long
cbProjectFileId
;
/**
* 成本类型(1项目汇总,2成本科目汇总)
*/
private
Integer
cbType
=
1
;
/**
/**
* 序号
* 序号
*/
*/
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/listener/CbSummaryCostAccountImportListener.java
0 → 100644
View file @
05b3a497
package
com
.
dsk
.
cscec
.
listener
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.dsk.common.excel.ExcelListener
;
import
com.dsk.common.excel.ExcelResult
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.cscec.domain.vo.CbSummaryCostAccountImportVo
;
import
jodd.util.StringUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 成本汇总-成本科目汇总自定义导入
*
* @author cyf
*/
@Slf4j
public
class
CbSummaryCostAccountImportListener
extends
AnalysisEventListener
<
CbSummaryCostAccountImportVo
>
implements
ExcelListener
<
CbSummaryCostAccountImportVo
>
{
private
final
Long
projectId
;
private
final
Long
fileId
;
private
ArrayList
<
CbSummaryCostAccountImportVo
>
resultList
=
new
ArrayList
<>();
private
int
sort
=
0
;
private
int
successNum
=
0
;
private
int
failureNum
=
0
;
private
final
StringBuilder
successMsg
=
new
StringBuilder
();
private
final
StringBuilder
failureMsg
=
new
StringBuilder
();
public
CbSummaryCostAccountImportListener
(
Long
projectId
,
Long
fileId
)
{
this
.
projectId
=
projectId
;
this
.
fileId
=
fileId
;
}
@Override
public
void
invoke
(
CbSummaryCostAccountImportVo
importVo
,
AnalysisContext
context
)
{
importVo
.
setProjectId
(
projectId
);
importVo
.
setCbProjectFileId
(
fileId
);
importVo
.
setSort
(++
sort
);
//层级处理
if
(
StringUtil
.
isNotBlank
(
importVo
.
getNumber
()))
{
//序号包含n个 - 为n+1级
int
count
=
StringUtil
.
count
(
importVo
.
getNumber
(),
"-"
);
importVo
.
setLevel
(
count
+
1
);
}
else
{
failureNum
++;
failureMsg
.
append
(
"<br/>"
).
append
(
"第"
+
sort
+
"条数据序号为空"
);
return
;
}
//父级数据处理
if
(
sort
==
1
)
{
importVo
.
setLevel
(
0
);
}
resultList
.
add
(
importVo
);
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
}
@Override
public
ExcelResult
<
CbSummaryCostAccountImportVo
>
getExcelResult
()
{
return
new
ExcelResult
<
CbSummaryCostAccountImportVo
>()
{
@Override
public
String
getAnalysis
()
{
if
(
failureNum
>
0
)
{
failureMsg
.
insert
(
0
,
"失败原因:共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
throw
new
ServiceException
(
failureMsg
.
toString
());
}
else
{
successMsg
.
insert
(
0
,
"成本科目汇总数据已全部解析成功!共 "
+
getList
().
size
()
+
" 条"
);
}
return
successMsg
.
toString
();
}
@Override
public
List
<
CbSummaryCostAccountImportVo
>
getList
()
{
return
resultList
;
}
@Override
public
List
<
String
>
getErrorList
()
{
return
null
;
}
};
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/listener/CbSummaryProjectImportListener.java
0 → 100644
View file @
05b3a497
package
com
.
dsk
.
cscec
.
listener
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.dsk.common.excel.ExcelListener
;
import
com.dsk.common.excel.ExcelResult
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.cscec.domain.vo.CbSummaryProjectImportVo
;
import
jodd.util.StringUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.List
;
/**
* 成本汇总-项目汇总自定义导入
*
* @author cyf
*/
@Slf4j
public
class
CbSummaryProjectImportListener
extends
AnalysisEventListener
<
CbSummaryProjectImportVo
>
implements
ExcelListener
<
CbSummaryProjectImportVo
>
{
// private final CbSummaryService cbSummaryService;
private
final
Long
projectId
;
private
final
Long
fileId
;
private
ArrayList
<
CbSummaryProjectImportVo
>
resultList
=
new
ArrayList
<>();
private
int
sort
=
0
;
private
int
successNum
=
0
;
private
int
failureNum
=
0
;
private
final
StringBuilder
successMsg
=
new
StringBuilder
();
private
final
StringBuilder
failureMsg
=
new
StringBuilder
();
public
CbSummaryProjectImportListener
(
Long
projectId
,
Long
fileId
)
{
// this.cbSummaryService = SpringUtils.getBean(CbSummaryService.class);
this
.
projectId
=
projectId
;
this
.
fileId
=
fileId
;
}
@Override
public
void
invoke
(
CbSummaryProjectImportVo
importVo
,
AnalysisContext
context
)
{
//第一个序号不能为空? todo
//添加父级数据
if
(
sort
==
0
)
{
CbSummaryProjectImportVo
firstVo
=
new
CbSummaryProjectImportVo
();
firstVo
.
setLevel
(
0
);
firstVo
.
setCbName
(
"成本汇总"
);
firstVo
.
setProjectId
(
projectId
);
firstVo
.
setCbProjectFileId
(
fileId
);
firstVo
.
setSort
(
sort
);
resultList
.
add
(
firstVo
);
}
importVo
.
setProjectId
(
projectId
);
importVo
.
setCbProjectFileId
(
fileId
);
importVo
.
setSort
(++
sort
);
//层级处理
if
(
StringUtil
.
isBlank
(
importVo
.
getNumber
()))
{
//序号为空则为上一个序号不为空的子级
//按sort倒序取number不为空的最大level
Object
[]
objects
=
resultList
.
stream
().
sorted
(
Comparator
.
comparingInt
(
CbSummaryProjectImportVo:
:
getSort
).
reversed
())
.
filter
(
vo
->
StringUtil
.
isNotBlank
(
vo
.
getNumber
())).
limit
(
1
).
map
(
CbSummaryProjectImportVo:
:
getLevel
).
toArray
();
//数据序号错误 todo
Integer
lastLevel
=
(
Integer
)
objects
[
0
];
importVo
.
setLevel
(
lastLevel
+
1
);
}
else
if
(
importVo
.
getNumber
().
matches
(
"[\u4E00-\u9FA5]+"
))
{
//判断是否为中文,如果是中文则为一级
importVo
.
setLevel
(
1
);
}
else
if
(
importVo
.
getNumber
().
matches
(
"^[0-9]*[1-9][0-9]*$"
))
{
//判断是否为正整数
importVo
.
setLevel
(
Integer
.
valueOf
(
importVo
.
getNumber
()));
}
// failureNum++;
// failureMsg.append("<br/>").append(failureNum);
resultList
.
add
(
importVo
);
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
}
@Override
public
ExcelResult
<
CbSummaryProjectImportVo
>
getExcelResult
()
{
return
new
ExcelResult
<
CbSummaryProjectImportVo
>()
{
@Override
public
String
getAnalysis
()
{
if
(
failureNum
>
0
)
{
failureMsg
.
insert
(
0
,
"失败原因:共 "
+
failureNum
+
" 条数据格式不正确,错误如下:"
);
throw
new
ServiceException
(
failureMsg
.
toString
());
}
else
{
successMsg
.
insert
(
0
,
"项目汇总数据已全部解析成功!共 "
+
getList
().
size
()
+
" 条"
);
}
return
successMsg
.
toString
();
}
@Override
public
List
<
CbSummaryProjectImportVo
>
getList
()
{
return
resultList
;
}
@Override
public
List
<
String
>
getErrorList
()
{
return
null
;
}
};
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/CbSummaryService.java
View file @
05b3a497
...
@@ -2,6 +2,7 @@ package com.dsk.cscec.service;
...
@@ -2,6 +2,7 @@ package com.dsk.cscec.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.cscec.domain.CbProjectFile
;
import
com.dsk.cscec.domain.CbSummary
;
import
com.dsk.cscec.domain.CbSummary
;
import
com.dsk.cscec.domain.bo.CbSummaryActualBo
;
import
com.dsk.cscec.domain.bo.CbSummaryActualBo
;
import
com.dsk.cscec.domain.bo.CbSummaryActualListBo
;
import
com.dsk.cscec.domain.bo.CbSummaryActualListBo
;
...
@@ -21,8 +22,11 @@ import java.util.Map;
...
@@ -21,8 +22,11 @@ import java.util.Map;
*/
*/
public
interface
CbSummaryService
extends
IService
<
CbSummary
>
{
public
interface
CbSummaryService
extends
IService
<
CbSummary
>
{
//项目汇总导入 todo
/**
void
importCbProject
(
Long
projectId
,
Integer
cbStage
);
* 项目汇总导入
* @param projectId
*/
void
importCbProject
(
Long
projectId
);
/**
/**
* 获取一级名称/成本科目列表
* 获取一级名称/成本科目列表
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbSummaryServiceImpl.java
View file @
05b3a497
This diff is collapsed.
Click to expand it.
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/CbSummaryMapper.xml
View file @
05b3a497
...
@@ -121,7 +121,7 @@
...
@@ -121,7 +121,7 @@
where
where
csu.del_flag = 0
csu.del_flag = 0
and csu.project_id = #{bo.projectId}
and csu.project_id = #{bo.projectId}
and csu.cb_stage = #{bo.cbStage}
and csu.cb_type = #{bo.cbType}
and csu.cb_type = #{bo.cbType}
and csu.level = #{bo.level}
and csu.level = #{bo.level}
order by csu.sort
order by csu.sort
...
...
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