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
331d1b81
Commit
331d1b81
authored
Feb 29, 2024
by
tanyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
措施费相关接口优化
parent
61c79e19
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
295 additions
and
50 deletions
+295
-50
application.yml
dsk-admin/src/main/resources/application.yml
+13
-8
CbCostMeasureController.java
...ava/com/dsk/cscec/controller/CbCostMeasureController.java
+47
-5
CbCostMeasureActualPushBo.java
...va/com/dsk/cscec/domain/bo/CbCostMeasureActualPushBo.java
+6
-6
CbCostMeasureActualVo.java
...n/java/com/dsk/cscec/domain/vo/CbCostMeasureActualVo.java
+12
-0
CbProjectExpenseSummaryVo.java
...va/com/dsk/cscec/domain/vo/CbProjectExpenseSummaryVo.java
+68
-0
CbCostMeasureActualMapper.java
.../java/com/dsk/cscec/mapper/CbCostMeasureActualMapper.java
+2
-0
CbCostMeasureMapper.java
...c/main/java/com/dsk/cscec/mapper/CbCostMeasureMapper.java
+3
-0
ICbCostMeasureActualService.java
...va/com/dsk/cscec/service/ICbCostMeasureActualService.java
+1
-0
ICbCostMeasureService.java
...ain/java/com/dsk/cscec/service/ICbCostMeasureService.java
+9
-7
CbCostMeasureServiceImpl.java
.../com/dsk/cscec/service/impl/CbCostMeasureServiceImpl.java
+105
-23
ICbCostMeasureActualServiceImpl.java
...k/cscec/service/impl/ICbCostMeasureActualServiceImpl.java
+7
-0
CbCostMeasureActualMapper.xml
...main/resources/mapper/cscec/CbCostMeasureActualMapper.xml
+10
-0
CbCostMeasureMapper.xml
...i/src/main/resources/mapper/cscec/CbCostMeasureMapper.xml
+12
-1
No files found.
dsk-admin/src/main/resources/application.yml
View file @
331d1b81
...
@@ -67,6 +67,9 @@ user:
...
@@ -67,6 +67,9 @@ user:
spring
:
spring
:
application
:
application
:
name
:
${ruoyi.name}
name
:
${ruoyi.name}
jpa
:
open-in-view
:
false
# 资源信息
# 资源信息
messages
:
messages
:
# 国际化资源文件路径
# 国际化资源文件路径
...
@@ -324,14 +327,16 @@ lock4j:
...
@@ -324,14 +327,16 @@ lock4j:
management
:
management
:
endpoints
:
endpoints
:
enabled-by-default
:
false
enabled-by-default
:
false
web
:
exposure
:
# endpoints:
include
:
'
*'
# web:
endpoint
:
# exposure:
health
:
# include: '*'
show-details
:
ALWAYS
# endpoint:
logfile
:
# health:
external-file
:
./logs/sys-console.log
# show-details: ALWAYS
# logfile:
# external-file: ./logs/sys-console.log
gv
:
gv
:
img-path
:
D:\dsk\dsk-operate-sys\
img-path
:
D:\dsk\dsk-operate-sys\
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/controller/CbCostMeasureController.java
View file @
331d1b81
...
@@ -3,6 +3,7 @@ package com.dsk.cscec.controller;
...
@@ -3,6 +3,7 @@ package com.dsk.cscec.controller;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.tree.Tree
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.EasyExcel
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.annotation.Log
;
...
@@ -24,11 +25,13 @@ import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo;
...
@@ -24,11 +25,13 @@ 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.CbCostMeasuresItemVo
;
import
com.dsk.cscec.domain.vo.CbProjectExpenseSummaryVo
;
import
com.dsk.cscec.listener.ProjectCostMeasureImportListener
;
import
com.dsk.cscec.listener.ProjectCostMeasureImportListener
;
import
com.dsk.cscec.service.CbProjectExpenseSummaryService
;
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
;
import
org.apache.poi.ss.formula.functions.T
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
...
@@ -63,6 +66,22 @@ public class CbCostMeasureController {
...
@@ -63,6 +66,22 @@ public class CbCostMeasureController {
private
CbProjectExpenseSummaryService
cbProjectExpenseSummaryService
;
private
CbProjectExpenseSummaryService
cbProjectExpenseSummaryService
;
/**
* 获取实际月份列表
*
* @param cbCostMeasureBo CB成本衡量范围
* @return {@link R}<{@link List}<{@link String}>>
*/
@SaIgnore
@GetMapping
(
value
=
"/actual/months"
)
public
R
<
List
<
String
>>
actualMonths
(
CbCostMeasureActualBo
cbCostMeasureBo
)
{
List
<
String
>
data
=
cbCostMeasureService
.
actualMonthList
(
cbCostMeasureBo
);
if
(
ObjectUtil
.
isNull
(
data
))
{
data
=
new
ArrayList
<>();
}
return
R
.
ok
(
data
);
}
/**
/**
* 措施费一级大类
* 措施费一级大类
* 根据项目查询措施费一级大类
* 根据项目查询措施费一级大类
...
@@ -91,8 +110,13 @@ public class CbCostMeasureController {
...
@@ -91,8 +110,13 @@ public class CbCostMeasureController {
// @SaCheckPermission("cb:costmeasures:list")
// @SaCheckPermission("cb:costmeasures:list")
@SaIgnore
@SaIgnore
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
R
<
List
<
CbCostMeasureActualVo
>>
list
(
CbCostMeasureActualBo
cbCostMeasure
)
{
public
R
<
List
>
list
(
CbCostMeasureActualBo
cbCostMeasure
)
{
List
<
CbCostMeasureActualVo
>
data
=
cbCostMeasureService
.
selectDataList
(
cbCostMeasure
);
if
(
ObjectUtil
.
isNotEmpty
(
cbCostMeasure
)&&
cbCostMeasure
.
getId
()==
0
){
Integer
dataType
=
2
;
List
<
CbProjectExpenseSummaryVo
>
dataList
=
cbCostMeasureService
.
getSummaryData
(
cbCostMeasure
.
getProjectId
(),
dataType
,
cbCostMeasure
.
getMonth
());
return
R
.
ok
(
dataList
);
}
List
<
Tree
<
Long
>>
data
=
cbCostMeasureService
.
selectDataList
(
cbCostMeasure
);
if
(
ObjectUtil
.
isNull
(
data
))
{
if
(
ObjectUtil
.
isNull
(
data
))
{
data
=
new
ArrayList
<>();
data
=
new
ArrayList
<>();
}
}
...
@@ -133,6 +157,24 @@ public class CbCostMeasureController {
...
@@ -133,6 +157,24 @@ public class CbCostMeasureController {
/**
* 获取上一次推送工程量
*
* @param measuresId 推送BO
* @return {@link R}<{@link List}<{@link CbCostMeasureActualVo}>>
*/
// @SaCheckPermission("cb:costmeasures:actual:push")
@SaIgnore
@GetMapping
(
"/last/project/volume/{measuresId}"
)
public
R
<
Object
>
lastProjectVolume
(
@PathVariable
(
"measuresId"
)
Long
measuresId
)
{
Assert
.
notNull
(
measuresId
,
"措施费记录id不能为空!"
);
Object
pushJson
=
cbCostMeasureService
.
lastProjectVolume
(
measuresId
);
return
R
.
ok
(
"操作成功"
,
pushJson
);
}
/**
/**
* 获取批量措施费列表
* 获取批量措施费列表
...
@@ -200,10 +242,10 @@ public class CbCostMeasureController {
...
@@ -200,10 +242,10 @@ public class CbCostMeasureController {
@Log
(
title
=
"措施费汇总获取"
)
@Log
(
title
=
"措施费汇总获取"
)
// @SaCheckPermission("system:user:import")
// @SaCheckPermission("system:user:import")
@PostMapping
(
value
=
"/summary/data"
)
@PostMapping
(
value
=
"/summary/data"
)
public
R
<
List
<
CbProjectExpenseSummary
>>
summaryData
(
Long
projectId
)
throws
Exception
{
public
R
<
List
<
CbProjectExpenseSummary
Vo
>>
summaryData
(
Long
projectId
,
String
month
)
throws
Exception
{
Integer
dataType
=
2
;
Integer
dataType
=
2
;
List
<
CbProjectExpenseSummary
>
cbProjectExpenseSummaries
=
cbProjectExpenseSummaryService
.
queryCbSceneExpenseSummaryDataByType
(
projectId
,
dataType
);
List
<
CbProjectExpenseSummaryVo
>
dataList
=
cbCostMeasureService
.
getSummaryData
(
projectId
,
dataType
,
month
);
return
R
.
ok
(
cbProjectExpenseSummaries
);
return
R
.
ok
(
dataList
);
}
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/bo/CbCostMeasureActualPushBo.java
View file @
331d1b81
...
@@ -16,33 +16,33 @@ public class CbCostMeasureActualPushBo {
...
@@ -16,33 +16,33 @@ public class CbCostMeasureActualPushBo {
/**
/**
* 截止本月工程量
* 本月实际工程量
*/
private
BigDecimal
costEffective
;
/**
* 本月实际工程量
*/
*/
@TableField
(
value
=
"current_project_volume"
)
private
BigDecimal
currentProjectVolume
;
private
BigDecimal
currentProjectVolume
;
/**
/**
* 推送工程量
* 推送工程量
*/
*/
@TableField
(
value
=
"submit_project_volume"
)
private
BigDecimal
submitProjectVolume
;
private
BigDecimal
submitProjectVolume
;
/**
/**
* 年月
* 年月
*/
*/
@TableField
(
value
=
"`month`"
)
private
String
month
;
private
String
month
;
/**
/**
* 推送时间
* 推送时间
*/
*/
@TableField
(
value
=
"push_time"
)
private
Date
pushTime
;
private
Date
pushTime
;
/**
/**
* 推送数据json
* 推送数据json
*/
*/
@TableField
(
value
=
"push_data_json"
)
private
String
pushDataJson
;
private
String
pushDataJson
;
/**
/**
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbCostMeasureActualVo.java
View file @
331d1b81
...
@@ -9,6 +9,7 @@ import lombok.Data;
...
@@ -9,6 +9,7 @@ import lombok.Data;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
@Data
@Data
public
class
CbCostMeasureActualVo
{
public
class
CbCostMeasureActualVo
{
...
@@ -17,6 +18,10 @@ public class CbCostMeasureActualVo {
...
@@ -17,6 +18,10 @@ public class CbCostMeasureActualVo {
*/
*/
private
Long
id
;
private
Long
id
;
private
Long
parentId
;
/**
/**
* 序号
* 序号
*/
*/
...
@@ -138,6 +143,9 @@ public class CbCostMeasureActualVo {
...
@@ -138,6 +143,9 @@ public class CbCostMeasureActualVo {
private
Date
pushTime
;
private
Date
pushTime
;
private
String
pushDataJson
;
/**
/**
* 修改人
* 修改人
*/
*/
...
@@ -162,6 +170,10 @@ public class CbCostMeasureActualVo {
...
@@ -162,6 +170,10 @@ public class CbCostMeasureActualVo {
@TableField
(
value
=
"update_time"
)
@TableField
(
value
=
"update_time"
)
private
Date
updateTime
;
private
Date
updateTime
;
private
List
<
CbCostMeasureActualVo
>
childrens
;
public
static
final
String
COL_ID
=
"id"
;
public
static
final
String
COL_ID
=
"id"
;
public
static
final
String
COL_PLAN_MEASURE_ID
=
"plan_measure_id"
;
public
static
final
String
COL_PLAN_MEASURE_ID
=
"plan_measure_id"
;
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbProjectExpenseSummaryVo.java
0 → 100644
View file @
331d1b81
package
com
.
dsk
.
cscec
.
domain
.
vo
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.dsk.common.annotation.Excel
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 项目费用汇总表
*/
@Data
public
class
CbProjectExpenseSummaryVo
{
/**
* 主键ID
*/
private
Long
id
;
/**
* 项目ID
*/
private
Long
projectId
;
/**
* 项目文件ID
*/
private
Long
projectFileId
;
/**
* 成本阶段(0:标前成本、1:标后成本、2:转固成本)
*/
private
Integer
cbStage
;
/**
* 序号
*/
private
String
number
;
/**
* 数据类型(2:措施项目、3:其他项目、4:现场经费)
*/
private
Integer
dataType
;
/**
* 名称
*/
private
String
expenseName
;
/**
* 数值
*/
private
String
expenseValue
;
/**
* 占比
*/
private
String
proportion
;
/**
* 本月工程量
*/
private
BigDecimal
monthsProjectQuantity
;
}
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/mapper/CbCostMeasureActualMapper.java
View file @
331d1b81
...
@@ -13,4 +13,6 @@ public interface CbCostMeasureActualMapper extends BaseMapper<CbCostMeasureActua
...
@@ -13,4 +13,6 @@ public interface CbCostMeasureActualMapper extends BaseMapper<CbCostMeasureActua
int
updateByPrimaryKeySelective
(
CbCostMeasureActual
record
);
int
updateByPrimaryKeySelective
(
CbCostMeasureActual
record
);
List
<
CbCostMeasureActualVo
>
selectDataList
(
CbCostMeasureActualBo
costMeasureActualBo
);
List
<
CbCostMeasureActualVo
>
selectDataList
(
CbCostMeasureActualBo
costMeasureActualBo
);
List
<
CbCostMeasureActualVo
>
getMonthActualCostList
(
Long
projectId
,
String
month
);
}
}
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/mapper/CbCostMeasureMapper.java
View file @
331d1b81
...
@@ -7,10 +7,13 @@ import com.dsk.cscec.domain.CbCostMeasure;
...
@@ -7,10 +7,13 @@ import com.dsk.cscec.domain.CbCostMeasure;
import
com.dsk.cscec.domain.CbQuantitySummary
;
import
com.dsk.cscec.domain.CbQuantitySummary
;
import
com.dsk.cscec.domain.bo.CbCostMeasureActualBo
;
import
com.dsk.cscec.domain.bo.CbCostMeasureActualBo
;
import
com.dsk.cscec.domain.vo.CbCostMeasureActualVo
;
import
com.dsk.cscec.domain.vo.CbCostMeasureActualVo
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
public
interface
CbCostMeasureMapper
extends
BaseMapper
<
CbCostMeasure
>
{
public
interface
CbCostMeasureMapper
extends
BaseMapper
<
CbCostMeasure
>
{
List
<
CbCostMeasureActualVo
>
selectListByProjectAndNo
(
CbCostMeasureActualBo
cbCostMeasure
);
List
<
CbCostMeasureActualVo
>
selectListByProjectAndNo
(
CbCostMeasureActualBo
cbCostMeasure
);
List
<
String
>
actualMonthList
(
CbCostMeasureActualBo
cbCostMeasureBo
);
}
}
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/ICbCostMeasureActualService.java
View file @
331d1b81
...
@@ -19,5 +19,6 @@ import java.util.Map;
...
@@ -19,5 +19,6 @@ import java.util.Map;
*/
*/
public
interface
ICbCostMeasureActualService
extends
IService
<
CbCostMeasureActual
>
{
public
interface
ICbCostMeasureActualService
extends
IService
<
CbCostMeasureActual
>
{
List
<
CbCostMeasureActualVo
>
getMonthActualCostList
(
Long
projectId
,
String
month
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/ICbCostMeasureService.java
View file @
331d1b81
package
com
.
dsk
.
cscec
.
service
;
package
com
.
dsk
.
cscec
.
service
;
import
cn.hutool.core.lang.tree.Tree
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
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.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
;
import
com.dsk.cscec.domain.vo.CbCostMeasureActualVo
;
import
com.dsk.cscec.domain.vo.CbCostMeasureActualVo
;
import
com.dsk.cscec.domain.vo.CbCostMeasuresItemVo
;
import
com.dsk.cscec.domain.vo.CbProjectExpenseSummaryVo
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.List
;
...
@@ -29,7 +25,7 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> {
...
@@ -29,7 +25,7 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> {
List
<
Map
<
String
,
Object
>>
listByLevel
(
Long
projectId
,
int
i
);
List
<
Map
<
String
,
Object
>>
listByLevel
(
Long
projectId
,
int
i
);
List
<
CbCostMeasureActualVo
>
selectDataList
(
CbCostMeasureActualBo
cbCostMeasure
);
List
<
Tree
<
Long
>
>
selectDataList
(
CbCostMeasureActualBo
cbCostMeasure
);
void
saveBatchCostMeasureActual
(
List
<
CbCostMeasureActualSaveBo
>
boList
);
void
saveBatchCostMeasureActual
(
List
<
CbCostMeasureActualSaveBo
>
boList
);
...
@@ -40,5 +36,11 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> {
...
@@ -40,5 +36,11 @@ public interface ICbCostMeasureService extends IService<CbCostMeasure> {
void
parseCbCostMeasureFile
(
Long
projectId
);
void
parseCbCostMeasureFile
(
Long
projectId
);
boolean
reparseCbCostMeasureFile
(
Long
projectId
,
Long
projectFileId
);
boolean
reparseCbCostMeasureFile
(
Long
projectId
,
Long
projectFileId
);
String
lastProjectVolume
(
Long
measuresId
);
List
<
String
>
actualMonthList
(
CbCostMeasureActualBo
cbCostMeasureBo
);
List
<
CbProjectExpenseSummaryVo
>
getSummaryData
(
Long
projectId
,
Integer
dataType
,
String
month
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbCostMeasureServiceImpl.java
View file @
331d1b81
package
com
.
dsk
.
cscec
.
service
.
impl
;
package
com
.
dsk
.
cscec
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.io.file.FileNameUtil
;
import
cn.hutool.core.io.file.FileNameUtil
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.tree.Tree
;
import
cn.hutool.core.lang.tree.TreeNode
;
import
cn.hutool.core.lang.tree.TreeNodeConfig
;
import
cn.hutool.core.lang.tree.TreeUtil
;
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.http.HttpUtil
;
import
cn.hutool.http.HttpUtil
;
...
@@ -16,6 +21,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...
@@ -16,6 +21,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.TreeBuildUtils
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.cscec.constant.CbProjectConstants
;
import
com.dsk.cscec.constant.CbProjectConstants
;
import
com.dsk.cscec.domain.*
;
import
com.dsk.cscec.domain.*
;
...
@@ -25,6 +31,7 @@ import com.dsk.cscec.domain.bo.CbCostMeasureActualSaveBo;
...
@@ -25,6 +31,7 @@ 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.CbProjectExpenseSummaryImportVo
;
import
com.dsk.cscec.domain.vo.CbProjectExpenseSummaryImportVo
;
import
com.dsk.cscec.domain.vo.CbProjectExpenseSummaryVo
;
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.service.*
;
import
com.dsk.cscec.service.*
;
...
@@ -37,11 +44,10 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -37,11 +44,10 @@ import org.springframework.transaction.annotation.Transactional;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.regex.Pattern
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
@Slf4j
@Slf4j
@Service
@Service
...
@@ -161,27 +167,53 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -161,27 +167,53 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
}
}
@Override
@Override
public
List
<
CbCostMeasureActualVo
>
selectDataList
(
CbCostMeasureActualBo
costMeasureActualBo
)
{
public
List
<
Tree
<
Long
>
>
selectDataList
(
CbCostMeasureActualBo
costMeasureActualBo
)
{
List
<
CbCostMeasureActualVo
>
dataList
=
new
ArrayList
<>();
List
<
CbCostMeasureActualVo
>
dataList
=
new
ArrayList
<>();
Assert
.
notNull
(
costMeasureActualBo
.
getProjectId
(),
"项目ID不能为空"
);
Assert
.
notNull
(
costMeasureActualBo
.
getProjectId
(),
"项目ID不能为空"
);
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
costMeasureActualBo
.
getProjectId
());
checkProjectExist
(
costMeasureActualBo
.
getProjectId
());
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
//查询项目某项措施费所有计划成本
//查询项目某项措施费所有计划成本
dataList
=
baseMapper
.
selectListByProjectAndNo
(
costMeasureActualBo
);
dataList
=
baseMapper
.
selectListByProjectAndNo
(
costMeasureActualBo
);
// if (CollectionUtil.isEmpty(dataList)) {
// return dataList;
// }
// // 查询项目某项措施费某月所有实际成本
// List<CbCostMeasureActualVo> actualVoList= cbCostMeasureActualMapper.selectDataList(costMeasureActualBo);
// if (CollectionUtil.isEmpty(actualVoList)) {
// return dataList;
// }
// for (CbCostMeasureActualVo cbCostMeasureActualVo : actualVoList) {
//
// }
return
dataList
;
//配置类
TreeNodeConfig
treeNodeConfig
=
new
TreeNodeConfig
();
treeNodeConfig
.
setIdKey
(
"id"
);
treeNodeConfig
.
setParentIdKey
(
"parentId"
);
treeNodeConfig
.
setChildrenKey
(
"childrens"
);
//构建树形
List
<
Tree
<
Long
>>
trees
=
TreeUtil
.
build
(
dataList
,
costMeasureActualBo
.
getId
(),
treeNodeConfig
,
((
object
,
treeNode
)
->
{
treeNode
.
setId
(
object
.
getId
());
//id
treeNode
.
setParentId
(
object
.
getParentId
());
//父id
// 扩展属性 ...
treeNode
.
putExtra
(
"itemContent"
,
object
.
getItemContent
());
treeNode
.
putExtra
(
"number"
,
object
.
getNumber
());
treeNode
.
putExtra
(
"workContent"
,
object
.
getWorkContent
());
treeNode
.
putExtra
(
"unit"
,
object
.
getUnit
());
treeNode
.
putExtra
(
"quantity"
,
object
.
getQuantity
());
treeNode
.
putExtra
(
"unitPriceExcludingTax"
,
object
.
getUnitPriceExcludingTax
());
treeNode
.
putExtra
(
"usageTime"
,
object
.
getUsageTime
());
treeNode
.
putExtra
(
"amountExcludingTax"
,
object
.
getAmountExcludingTax
());
treeNode
.
putExtra
(
"taxRate"
,
object
.
getTaxRate
());
treeNode
.
putExtra
(
"amountIncludingTax"
,
object
.
getAmountIncludingTax
());
treeNode
.
putExtra
(
"amortizationRatio"
,
object
.
getAmortizationRatio
());
treeNode
.
putExtra
(
"amountIncludeTaxAmortized"
,
object
.
getAmountIncludeTaxAmortized
());
treeNode
.
putExtra
(
"amountExcludeTaxAmortized"
,
object
.
getAmountExcludeTaxAmortized
());
treeNode
.
putExtra
(
"taxAmount"
,
object
.
getTaxAmount
());
treeNode
.
putExtra
(
"remarks"
,
object
.
getRemarks
());
treeNode
.
putExtra
(
"costSubject"
,
object
.
getCostSubject
());
treeNode
.
putExtra
(
"taxType"
,
object
.
getTaxType
());
treeNode
.
putExtra
(
"planMeasureId"
,
object
.
getPlanMeasureId
());
treeNode
.
putExtra
(
"monthCostRate"
,
object
.
getMonthCostRate
());
treeNode
.
putExtra
(
"costEffective"
,
object
.
getCostEffective
());
treeNode
.
putExtra
(
"currentProjectVolume"
,
object
.
getCurrentProjectVolume
());
treeNode
.
putExtra
(
"submitProjectVolume"
,
object
.
getSubmitProjectVolume
());
treeNode
.
putExtra
(
"month"
,
object
.
getMonth
());
treeNode
.
putExtra
(
"pushTime"
,
object
.
getPushTime
());
treeNode
.
putExtra
(
"pushDataJson"
,
object
.
getPushDataJson
());
treeNode
.
putExtra
(
"createTime"
,
object
.
getCreateTime
());
}));
return
trees
;
}
}
@Override
@Override
...
@@ -212,7 +244,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -212,7 +244,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
@SneakyThrows
@SneakyThrows
@Override
@Override
public
List
<
String
>
importExcelSummaryData
(
InputStream
inputStream
,
Long
projectId
,
Long
fileId
,
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
,
"项目信息不能为空"
);
...
@@ -256,7 +288,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -256,7 +288,7 @@ 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
,
cbProjectFile
.
getId
(),
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
{
...
@@ -274,7 +306,8 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -274,7 +306,8 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
}
}
}
}
private
void
checkProjectExist
(
Long
projectId
){
private
void
checkProjectExist
(
Long
projectId
)
{
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
CbProjectRecord
byId
=
cbProjectRecordService
.
getById
(
projectId
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
Assert
.
notNull
(
byId
,
"项目信息不能为空"
);
}
}
...
@@ -296,7 +329,7 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -296,7 +329,7 @@ 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
,
projectFileId
,
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
{
...
@@ -319,6 +352,55 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
...
@@ -319,6 +352,55 @@ public class CbCostMeasureServiceImpl extends ServiceImpl<CbCostMeasureMapper, C
return
false
;
return
false
;
}
}
@Override
public
String
lastProjectVolume
(
Long
measuresId
)
{
LambdaQueryWrapper
<
CbCostMeasureActual
>
lambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
lambdaQueryWrapper
.
eq
(
CbCostMeasureActual:
:
getPlanMeasureId
,
measuresId
)
.
isNotNull
(
CbCostMeasureActual:
:
getPushTime
)
.
orderByDesc
(
CbCostMeasureActual:
:
getUpdateTime
).
last
(
" limit 1"
);
CbCostMeasureActual
cbCostMeasureActual
=
cbCostMeasureActualService
.
getOne
(
lambdaQueryWrapper
);
if
(
ObjectUtil
.
isNotEmpty
(
cbCostMeasureActual
))
{
return
cbCostMeasureActual
.
getPushDataJson
();
}
return
null
;
}
@Override
public
List
<
String
>
actualMonthList
(
CbCostMeasureActualBo
cbCostMeasureBo
)
{
List
<
String
>
months
=
baseMapper
.
actualMonthList
(
cbCostMeasureBo
);
return
months
;
}
@Override
public
List
<
CbProjectExpenseSummaryVo
>
getSummaryData
(
Long
projectId
,
Integer
dataType
,
String
month
)
{
List
<
CbProjectExpenseSummaryVo
>
dataList
=
new
ArrayList
<>();
List
<
CbProjectExpenseSummary
>
cbProjectExpenseSummaries
=
cbProjectExpenseSummaryService
.
queryCbSceneExpenseSummaryDataByType
(
projectId
,
dataType
);
if
(
CollectionUtil
.
isEmpty
(
cbProjectExpenseSummaries
))
{
return
new
ArrayList
<>();
}
Map
<
String
,
BigDecimal
>
map
=
new
HashMap
<>();
//查询本月实际工程量
List
<
CbCostMeasureActualVo
>
monthActualCostList
=
cbCostMeasureActualService
.
getMonthActualCostList
(
projectId
,
month
);
if
(
CollectionUtil
.
isNotEmpty
(
monthActualCostList
))
{
map
=
monthActualCostList
.
stream
()
.
collect
(
Collectors
.
toMap
(
CbCostMeasureActualVo:
:
getItemContent
,
// 把CbCostMeasureActualVo属性提取为map的key
CbCostMeasureActualVo:
:
getCostEffective
// 把CbCostMeasureActualVo属性提取为map的value
));
}
for
(
CbProjectExpenseSummary
cbProjectExpenseSummary
:
cbProjectExpenseSummaries
)
{
CbProjectExpenseSummaryVo
summaryVo
=
BeanUtil
.
copyProperties
(
cbProjectExpenseSummary
,
CbProjectExpenseSummaryVo
.
class
);
summaryVo
.
setMonthsProjectQuantity
(
map
.
get
(
cbProjectExpenseSummary
.
getExpenseName
()));
dataList
.
add
(
summaryVo
);
}
return
dataList
;
}
/**
/**
* 根据当前序号、项目id、成本阶段查询父级信息
* 根据当前序号、项目id、成本阶段查询父级信息
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/ICbCostMeasureActualServiceImpl.java
View file @
331d1b81
...
@@ -3,11 +3,14 @@ package com.dsk.cscec.service.impl;
...
@@ -3,11 +3,14 @@ package com.dsk.cscec.service.impl;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.dsk.cscec.domain.CbCostMeasure
;
import
com.dsk.cscec.domain.CbCostMeasure
;
import
com.dsk.cscec.domain.CbCostMeasureActual
;
import
com.dsk.cscec.domain.CbCostMeasureActual
;
import
com.dsk.cscec.domain.vo.CbCostMeasureActualVo
;
import
com.dsk.cscec.mapper.CbCostMeasureActualMapper
;
import
com.dsk.cscec.mapper.CbCostMeasureActualMapper
;
import
com.dsk.cscec.mapper.CbCostMeasureMapper
;
import
com.dsk.cscec.mapper.CbCostMeasureMapper
;
import
com.dsk.cscec.service.ICbCostMeasureActualService
;
import
com.dsk.cscec.service.ICbCostMeasureActualService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
/**
* @author tanyang
* @author tanyang
* @create 2024-02-07 9:38
* @create 2024-02-07 9:38
...
@@ -15,4 +18,8 @@ import org.springframework.stereotype.Service;
...
@@ -15,4 +18,8 @@ import org.springframework.stereotype.Service;
@Service
@Service
public
class
ICbCostMeasureActualServiceImpl
extends
ServiceImpl
<
CbCostMeasureActualMapper
,
CbCostMeasureActual
>
implements
ICbCostMeasureActualService
{
public
class
ICbCostMeasureActualServiceImpl
extends
ServiceImpl
<
CbCostMeasureActualMapper
,
CbCostMeasureActual
>
implements
ICbCostMeasureActualService
{
@Override
public
List
<
CbCostMeasureActualVo
>
getMonthActualCostList
(
Long
projectId
,
String
month
)
{
return
baseMapper
.
getMonthActualCostList
(
projectId
,
month
);
}
}
}
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/CbCostMeasureActualMapper.xml
View file @
331d1b81
...
@@ -174,4 +174,14 @@
...
@@ -174,4 +174,14 @@
AND t.cb_stage=#{cbStage}
AND t.cb_stage=#{cbStage}
AND t1.`month`=#{month}
AND t1.`month`=#{month}
</select>
</select>
<select
id=
"getMonthActualCostList"
resultType=
"com.dsk.cscec.domain.vo.CbCostMeasureActualVo"
>
SELECT t1.item_content, t.cost_effective
FROM cb_cost_measure_actual t
inner JOIN cb_cost_measure t1 ON t1.id=t.plan_measure_id
WHERE
t1.project_id=1
AND t1.parent_id=0
AND t.`month`='202406'
</select>
</mapper>
</mapper>
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/CbCostMeasureMapper.xml
View file @
331d1b81
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
id, project_id, cb_stage, parent_id, `level`, `number`, `no`,item_content, work_content,
id, project_id, cb_stage, parent_id, `level`, `number`, `no`,item_content, work_content,
unit, quantity, unit_price_excluding_tax, usage_time, amount_excluding_tax, tax_rate,
unit, quantity, unit_price_excluding_tax, usage_time, amount_excluding_tax, tax_rate,
amount_including_tax, amortization_ratio, amount_exclude_tax_amortized, amount_include_tax_amortized,
amount_including_tax, amortization_ratio, amount_exclude_tax_amortized, amount_include_tax_amortized,
tax_amount, remarks, cost_subject, tax_type, create_time, update_time
tax_amount, remarks, cost_subject, tax_type,
data_source,
create_time, update_time
</sql>
</sql>
...
@@ -54,4 +54,15 @@
...
@@ -54,4 +54,15 @@
AND t.`no` like concat(#{id},'.%')
AND t.`no` like concat(#{id},'.%')
ORDER BY id ASC
ORDER BY id ASC
</select>
</select>
<select
id=
"actualMonthList"
resultType=
"java.lang.String"
>
SELECT
t1.`month`
FROM cb_cost_measure t
inner JOIN cb_cost_measure_actual t1 ON t1.plan_measure_id=t.id
WHERE
t.project_id=#{projectId}
and t1.del_flag=0
GROUP BY t1.`month` ORDER BY t1.`month` desc
</select>
</mapper>
</mapper>
\ No newline at end of file
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