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
6cca5fd0
Commit
6cca5fd0
authored
Feb 18, 2024
by
chenyuefang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
成本汇总相关
parent
d639d135
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
375 additions
and
73 deletions
+375
-73
CbSummaryController.java
...in/java/com/dsk/cscec/controller/CbSummaryController.java
+36
-5
CbSummaryActualBo.java
.../main/java/com/dsk/cscec/domain/bo/CbSummaryActualBo.java
+1
-1
CbSummaryActualListBo.java
...n/java/com/dsk/cscec/domain/bo/CbSummaryActualListBo.java
+4
-0
CbSummaryActualListVo.java
...n/java/com/dsk/cscec/domain/vo/CbSummaryActualListVo.java
+8
-0
CbSummaryCostAccountExportVo.java
...com/dsk/cscec/domain/vo/CbSummaryCostAccountExportVo.java
+81
-0
CbSummaryProjectExportVo.java
...ava/com/dsk/cscec/domain/vo/CbSummaryProjectExportVo.java
+81
-0
CbSummaryMapper.java
...i/src/main/java/com/dsk/cscec/mapper/CbSummaryMapper.java
+19
-0
CbSummaryService.java
...src/main/java/com/dsk/cscec/service/CbSummaryService.java
+7
-0
CbSummaryServiceImpl.java
...java/com/dsk/cscec/service/impl/CbSummaryServiceImpl.java
+91
-61
CbSummaryActualMapper.xml
...src/main/resources/mapper/cscec/CbSummaryActualMapper.xml
+2
-2
CbSummaryMapper.xml
...z-api/src/main/resources/mapper/cscec/CbSummaryMapper.xml
+45
-4
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/controller/CbSummaryController.java
View file @
6cca5fd0
package
com
.
dsk
.
cscec
.
controller
;
package
com
.
dsk
.
cscec
.
controller
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.utils.poi.ExcelUtil
;
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
;
import
com.dsk.cscec.domain.bo.CbSummaryBo
;
import
com.dsk.cscec.domain.bo.CbSummaryBo
;
import
com.dsk.cscec.domain.vo.CbSummaryActualListVo
;
import
com.dsk.cscec.domain.vo.CbSummaryCostAccountExportVo
;
import
com.dsk.cscec.domain.vo.CbSummaryProjectExportVo
;
import
com.dsk.cscec.service.CbSummaryService
;
import
com.dsk.cscec.service.CbSummaryService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -31,7 +37,7 @@ public class CbSummaryController extends BaseController {
...
@@ -31,7 +37,7 @@ public class CbSummaryController extends BaseController {
/**
/**
* 成本汇总左侧列表
* 成本汇总左侧
一级数据
列表
*
*
* @param bo
* @param bo
* @return
* @return
...
@@ -41,9 +47,13 @@ public class CbSummaryController extends BaseController {
...
@@ -41,9 +47,13 @@ public class CbSummaryController extends BaseController {
return
R
.
ok
(
cbSummaryService
.
getCbNameList
(
bo
));
return
R
.
ok
(
cbSummaryService
.
getCbNameList
(
bo
));
}
}
//成本汇总数据列表
/**
* 成本汇总数据列表
* @param bo
* @return
*/
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
R
getList
(
CbSummaryActualListBo
bo
)
{
public
R
<
List
<
CbSummaryActualListVo
>>
getList
(
CbSummaryActualListBo
bo
)
{
return
R
.
ok
(
cbSummaryService
.
getActualList
(
bo
));
return
R
.
ok
(
cbSummaryService
.
getActualList
(
bo
));
}
}
...
@@ -69,7 +79,28 @@ public class CbSummaryController extends BaseController {
...
@@ -69,7 +79,28 @@ public class CbSummaryController extends BaseController {
return
cbSummaryService
.
insertOrUpdateActual
(
boList
)
==
true
?
R
.
ok
()
:
R
.
fail
();
return
cbSummaryService
.
insertOrUpdateActual
(
boList
)
==
true
?
R
.
ok
()
:
R
.
fail
();
}
}
//锁定成本-至少有一条实际数据?
//锁定成本前提示未填项(按一级大类)
//锁定成本
/**
* 导出excel-按月导出所有
* @param bo
* @param response
*/
@PostMapping
(
"/export"
)
public
void
export
(
CbSummaryActualListBo
bo
,
HttpServletResponse
response
)
{
List
<
CbSummaryActualListVo
>
actualListVoList
=
cbSummaryService
.
getAll
(
bo
);
if
(
bo
.
getCbType
()==
1
){
List
<
CbSummaryProjectExportVo
>
list
=
BeanUtil
.
copyToList
(
actualListVoList
,
CbSummaryProjectExportVo
.
class
);
ExcelUtil
.
exportExcel
(
list
,
"成本汇总按项目汇总"
+
bo
.
getExpenseDate
(),
CbSummaryProjectExportVo
.
class
,
response
);
}
else
{
List
<
CbSummaryCostAccountExportVo
>
list
=
BeanUtil
.
copyToList
(
actualListVoList
,
CbSummaryCostAccountExportVo
.
class
);
ExcelUtil
.
exportExcel
(
list
,
"成本汇总按成本科目汇总"
+
bo
.
getExpenseDate
(),
CbSummaryCostAccountExportVo
.
class
,
response
);
}
}
//导入
//导出excel-缺模板
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/bo/CbSummaryActualBo.java
View file @
6cca5fd0
...
@@ -16,7 +16,7 @@ import java.math.BigDecimal;
...
@@ -16,7 +16,7 @@ import java.math.BigDecimal;
@Data
@Data
public
class
CbSummaryActualBo
extends
BaseEntity
{
public
class
CbSummaryActualBo
extends
BaseEntity
{
/**
/**
*
主键
id
*
费用
id
*/
*/
private
Long
id
;
private
Long
id
;
/**
/**
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/bo/CbSummaryActualListBo.java
View file @
6cca5fd0
...
@@ -15,6 +15,10 @@ public class CbSummaryActualListBo extends BaseEntity {
...
@@ -15,6 +15,10 @@ public class CbSummaryActualListBo extends BaseEntity {
* 主键id
* 主键id
*/
*/
private
Long
id
;
private
Long
id
;
/**
* 成本阶段( 0:标前成本、1:标后成本、2:转固成本)
*/
private
Integer
cbStage
;
/**
/**
* 成本类型(1项目汇总,2成本科目汇总)
* 成本类型(1项目汇总,2成本科目汇总)
*/
*/
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbSummaryActualListVo.java
View file @
6cca5fd0
...
@@ -70,6 +70,14 @@ public class CbSummaryActualListVo extends BaseEntity {
...
@@ -70,6 +70,14 @@ public class CbSummaryActualListVo extends BaseEntity {
* 本月费用(不含税)
* 本月费用(不含税)
*/
*/
private
BigDecimal
taxExclusiveExpense
;
private
BigDecimal
taxExclusiveExpense
;
/**
* 截至本月费用(含税)
*/
private
BigDecimal
taxInclusiveExpenseTotal
;
/**
* 截至本月费用(不含税)
*/
private
BigDecimal
taxExclusiveExpenseTotal
;
/**
/**
* 费用日期
* 费用日期
*/
*/
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbSummaryCostAccountExportVo.java
0 → 100644
View file @
6cca5fd0
package
com
.
dsk
.
cscec
.
domain
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* 成本汇总(CbSummary)-成本科目汇总导出Vo
*
* @author cyf
* @since 2024-02-06
*/
@Data
@NoArgsConstructor
public
class
CbSummaryCostAccountExportVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
20126964599875841L
;
/**
* 序号
*/
@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
;
/**
* 本月费用(含税)
*/
@ExcelProperty
(
value
=
"本月费用(含税)"
)
private
BigDecimal
taxInclusiveExpense
;
/**
* 本月费用(不含税)
*/
@ExcelProperty
(
value
=
"本月费用(不含税)"
)
private
BigDecimal
taxExclusiveExpense
;
/**
* 截至本月费用(含税)
*/
@ExcelProperty
(
value
=
"截至本月费用(含税)"
)
private
BigDecimal
taxInclusiveExpenseTotal
;
/**
* 截至本月费用(不含税)
*/
@ExcelProperty
(
value
=
"截至本月费用(不含税)"
)
private
BigDecimal
taxExclusiveExpenseTotal
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbSummaryProjectExportVo.java
0 → 100644
View file @
6cca5fd0
package
com
.
dsk
.
cscec
.
domain
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* 成本汇总(CbSummary)-项目汇总导出Vo
*
* @author cyf
* @since 2024-02-06
*/
@Data
@NoArgsConstructor
public
class
CbSummaryProjectExportVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
20126964599875841L
;
/**
* 序号
*/
@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
;
/**
* 本月费用(含税)
*/
@ExcelProperty
(
value
=
"本月费用(含税)"
)
private
BigDecimal
taxInclusiveExpense
;
/**
* 本月费用(不含税)
*/
@ExcelProperty
(
value
=
"本月费用(不含税)"
)
private
BigDecimal
taxExclusiveExpense
;
/**
* 截至本月费用(含税)
*/
@ExcelProperty
(
value
=
"截至本月费用(含税)"
)
private
BigDecimal
taxInclusiveExpenseTotal
;
/**
* 截至本月费用(不含税)
*/
@ExcelProperty
(
value
=
"截至本月费用(不含税)"
)
private
BigDecimal
taxExclusiveExpenseTotal
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/mapper/CbSummaryMapper.java
View file @
6cca5fd0
...
@@ -2,6 +2,7 @@ package com.dsk.cscec.mapper;
...
@@ -2,6 +2,7 @@ package com.dsk.cscec.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.dsk.cscec.domain.CbSummary
;
import
com.dsk.cscec.domain.CbSummary
;
import
com.dsk.cscec.domain.bo.CbSummaryActualListBo
;
import
com.dsk.cscec.domain.bo.CbSummaryBo
;
import
com.dsk.cscec.domain.bo.CbSummaryBo
;
import
com.dsk.cscec.domain.vo.CbSummaryActualListVo
;
import
com.dsk.cscec.domain.vo.CbSummaryActualListVo
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -19,6 +20,24 @@ public interface CbSummaryMapper extends BaseMapper<CbSummary> {
...
@@ -19,6 +20,24 @@ public interface CbSummaryMapper extends BaseMapper<CbSummary> {
List
<
CbSummaryActualListVo
>
getByParentId
(
@Param
(
"parentId"
)
Long
parentId
,
@Param
(
"expenseDate"
)
String
expenseDate
);
List
<
CbSummaryActualListVo
>
getByParentId
(
@Param
(
"parentId"
)
Long
parentId
,
@Param
(
"expenseDate"
)
String
expenseDate
);
CbSummaryActualListVo
getById
(
@Param
(
"id"
)
Long
id
,
@Param
(
"expenseDate"
)
String
expenseDate
);
/**
* 根据月份获取所有项目汇总数据
*
* @param bo
* @return
*/
List
<
CbSummaryActualListVo
>
getProjectAll
(
@Param
(
"bo"
)
CbSummaryActualListBo
bo
);
/**
* 根据月份获取所有成本科目汇总数据
*
* @param bo
* @return
*/
List
<
CbSummaryActualListVo
>
getCostAccountAll
(
@Param
(
"bo"
)
CbSummaryActualListBo
bo
);
/**
/**
* 获取已添加成本月份
* 获取已添加成本月份
*
*
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/CbSummaryService.java
View file @
6cca5fd0
...
@@ -53,4 +53,11 @@ public interface CbSummaryService extends IService<CbSummary> {
...
@@ -53,4 +53,11 @@ public interface CbSummaryService extends IService<CbSummary> {
* @return
* @return
*/
*/
boolean
insertOrUpdateActual
(
List
<
CbSummaryActualBo
>
boList
);
boolean
insertOrUpdateActual
(
List
<
CbSummaryActualBo
>
boList
);
/**
* 导出列表获取
* @param bo
* @return
*/
List
<
CbSummaryActualListVo
>
getAll
(
CbSummaryActualListBo
bo
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbSummaryServiceImpl.java
View file @
6cca5fd0
...
@@ -3,12 +3,14 @@ package com.dsk.cscec.service.impl;
...
@@ -3,12 +3,14 @@ package com.dsk.cscec.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.cscec.constant.CbProjectConstants
;
import
com.dsk.cscec.constant.CbProjectConstants
;
import
com.dsk.cscec.domain.CbProjectFile
;
import
com.dsk.cscec.domain.CbProjectFile
;
import
com.dsk.cscec.domain.CbProjectRecord
;
import
com.dsk.cscec.domain.CbSummary
;
import
com.dsk.cscec.domain.CbSummary
;
import
com.dsk.cscec.domain.CbSummaryActual
;
import
com.dsk.cscec.domain.CbSummaryActual
;
import
com.dsk.cscec.domain.bo.CbSummaryActualBo
;
import
com.dsk.cscec.domain.bo.CbSummaryActualBo
;
...
@@ -16,6 +18,7 @@ import com.dsk.cscec.domain.bo.CbSummaryActualListBo;
...
@@ -16,6 +18,7 @@ import com.dsk.cscec.domain.bo.CbSummaryActualListBo;
import
com.dsk.cscec.domain.bo.CbSummaryBo
;
import
com.dsk.cscec.domain.bo.CbSummaryBo
;
import
com.dsk.cscec.domain.vo.CbSummaryActualListVo
;
import
com.dsk.cscec.domain.vo.CbSummaryActualListVo
;
import
com.dsk.cscec.mapper.CbProjectFileMapper
;
import
com.dsk.cscec.mapper.CbProjectFileMapper
;
import
com.dsk.cscec.mapper.CbProjectRecordMapper
;
import
com.dsk.cscec.mapper.CbSummaryActualMapper
;
import
com.dsk.cscec.mapper.CbSummaryActualMapper
;
import
com.dsk.cscec.mapper.CbSummaryMapper
;
import
com.dsk.cscec.mapper.CbSummaryMapper
;
import
com.dsk.cscec.service.CbSummaryService
;
import
com.dsk.cscec.service.CbSummaryService
;
...
@@ -25,7 +28,10 @@ import org.springframework.stereotype.Service;
...
@@ -25,7 +28,10 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* 成本汇总(CbSummary)表服务实现类
* 成本汇总(CbSummary)表服务实现类
...
@@ -41,6 +47,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
...
@@ -41,6 +47,9 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
@Autowired
@Autowired
private
CbSummaryActualMapper
cbSummaryActualMapper
;
private
CbSummaryActualMapper
cbSummaryActualMapper
;
@Autowired
private
CbProjectRecordMapper
cbProjectRecordMapper
;
@Override
@Override
public
void
importCbProject
(
Long
projectId
,
Integer
cbStage
)
{
public
void
importCbProject
(
Long
projectId
,
Integer
cbStage
)
{
//获取文件信息
//获取文件信息
...
@@ -68,84 +77,87 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
...
@@ -68,84 +77,87 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
@Override
@Override
public
List
<
Map
<
String
,
Object
>>
getCbNameList
(
CbSummaryBo
bo
)
{
public
List
<
Map
<
String
,
Object
>>
getCbNameList
(
CbSummaryBo
bo
)
{
Assert
.
notNull
(
bo
.
getProjectId
(),
"项目id不能为空"
);
Assert
.
notNull
(
bo
.
getCbStage
(),
"成本阶段不能为空"
);
Assert
.
notNull
(
bo
.
getCbType
(),
"成本类型不能为空"
);
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
//项目汇总
bo
.
setLevel
(
0
);
if
(
1
==
bo
.
getCbType
())
{
List
<
Map
<
String
,
Object
>>
cbNameTop
=
baseMapper
.
selectByLevel
(
bo
);
//获取一级数据
bo
.
setLevel
(
1
);
List
<
Map
<
String
,
Object
>>
cbNames
=
baseMapper
.
selectByLevel
(
bo
);
if
(
CollectionUtil
.
isEmpty
(
cbNames
))
{
bo
.
setLevel
(
1
);
return
null
;
List
<
Map
<
String
,
Object
>>
cbNames
=
baseMapper
.
selectByLevel
(
bo
);
}
resultList
.
addAll
(
cbNameTop
);
Map
<
String
,
Object
>
xmhz
=
new
HashMap
<>();
resultList
.
addAll
(
cbNames
);
xmhz
.
put
(
"id"
,
0
l
);
xmhz
.
put
(
"cbName"
,
"成本汇总"
);
resultList
.
add
(
xmhz
);
resultList
.
addAll
(
cbNames
);
}
//成本科目汇总
if
(
2
==
bo
.
getCbType
())
{
bo
.
setLevel
(
0
);
List
<
Map
<
String
,
Object
>>
cbNameTop
=
baseMapper
.
selectByLevel
(
bo
);
bo
.
setLevel
(
1
);
List
<
Map
<
String
,
Object
>>
cbNames
=
baseMapper
.
selectByLevel
(
bo
);
resultList
.
addAll
(
cbNameTop
);
//todo
resultList
.
addAll
(
cbNames
);
}
return
resultList
;
return
resultList
;
}
}
@Override
@Override
public
List
<
CbSummaryActualListVo
>
getActualList
(
CbSummaryActualListBo
bo
)
{
public
List
<
CbSummaryActualListVo
>
getActualList
(
CbSummaryActualListBo
bo
)
{
Assert
.
notNull
(
bo
.
getId
(),
"id不能为空"
);
Assert
.
notNull
(
bo
.
getCbType
(),
"成本类型不能为空"
);
if
(
StringUtil
.
isBlank
(
bo
.
getExpenseDate
()))
{
//默认当前月
bo
.
setExpenseDate
(
DatePattern
.
SIMPLE_MONTH_FORMAT
.
format
(
new
Date
()));
}
//项目汇总
CbSummary
cbSummary
=
baseMapper
.
selectById
(
bo
.
getId
());
if
(
1
==
bo
.
getCbType
(
))
{
if
(
ObjectUtil
.
isEmpty
(
cbSummary
))
{
return
getProjectSumList
(
bo
)
;
return
null
;
}
}
//成本科目汇总
if
(
2
==
bo
.
getCbType
())
{
List
<
CbSummaryActualListVo
>
childrenList
=
baseMapper
.
getByParentId
(
bo
.
getId
(),
bo
.
getExpenseDate
());
//todo
if
(
0
==
cbSummary
.
getLevel
()
&&
1
==
bo
.
getCbType
())
{
//项目汇总
return
childrenList
;
}
else
if
(
0
==
cbSummary
.
getLevel
()
&&
2
==
bo
.
getCbType
())
{
//成本科目汇总
CbSummaryActualListVo
cbSummaryActualListVo
=
baseMapper
.
getById
(
bo
.
getId
(),
bo
.
getExpenseDate
());
cbSummaryActualListVo
.
setChildren
(
childrenList
);
List
<
CbSummaryActualListVo
>
list
=
new
ArrayList
<>();
list
.
add
(
cbSummaryActualListVo
);
return
list
;
}
else
{
childrenList
=
getProjectSumList
(
bo
);
CbSummaryActualListVo
cbSummaryActualListVo
=
baseMapper
.
getById
(
bo
.
getId
(),
bo
.
getExpenseDate
());
cbSummaryActualListVo
.
setChildren
(
childrenList
);
List
<
CbSummaryActualListVo
>
list
=
new
ArrayList
<>();
list
.
add
(
cbSummaryActualListVo
);
return
list
;
}
}
return
null
;
}
}
/**
/**
*
项目
汇总列表
*
成本
汇总列表
*
*
* @param bo
* @param bo
* @return
* @return
*/
*/
private
List
<
CbSummaryActualListVo
>
getProjectSumList
(
CbSummaryActualListBo
bo
)
{
private
List
<
CbSummaryActualListVo
>
getProjectSumList
(
CbSummaryActualListBo
bo
)
{
CbSummary
cbSummary
=
baseMapper
.
selectById
(
bo
.
getId
());
if
(
ObjectUtil
.
isEmpty
(
cbSummary
))
{
return
null
;
}
if
(
StringUtil
.
isBlank
(
bo
.
getExpenseDate
()))
{
//默认当前月
bo
.
setExpenseDate
(
DatePattern
.
SIMPLE_MONTH_FORMAT
.
format
(
new
Date
()));
}
List
<
CbSummaryActualListVo
>
childrenList
=
baseMapper
.
getByParentId
(
bo
.
getId
(),
bo
.
getExpenseDate
());
List
<
CbSummaryActualListVo
>
childrenList
=
baseMapper
.
getByParentId
(
bo
.
getId
(),
bo
.
getExpenseDate
());
if
(
0
==
cbSummary
.
getLevel
())
{
childrenList
.
forEach
(
children
->
{
return
childrenList
;
CbSummaryActualListBo
childBo
=
new
CbSummaryActualListBo
();
}
else
{
childBo
.
setId
(
children
.
getId
());
childrenList
.
forEach
(
children
->
{
childBo
.
setExpenseDate
(
bo
.
getExpenseDate
());
CbSummaryActualListBo
childBo
=
new
CbSummaryActualListBo
();
children
.
setChildren
(
getProjectSumList
(
childBo
));
childBo
.
setId
(
children
.
getId
());
});
childBo
.
setExpenseDate
(
bo
.
getExpenseDate
());
children
.
setChildren
(
getProjectSumList
(
childBo
));
});
return
childrenList
;
return
childrenList
;
}
}
}
@Override
@Override
public
List
<
String
>
getExpenseDateList
(
CbSummaryBo
bo
)
{
public
List
<
String
>
getExpenseDateList
(
CbSummaryBo
bo
)
{
Assert
.
notNull
(
bo
.
getProjectId
(),
"项目id不能为空"
);
Assert
.
notNull
(
bo
.
getCbStage
(),
"成本阶段不能为空"
);
Assert
.
notNull
(
bo
.
getCbType
(),
"成本类型不能为空"
);
return
baseMapper
.
getExpenseDateList
(
bo
);
return
baseMapper
.
getExpenseDateList
(
bo
);
}
}
...
@@ -155,18 +167,36 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
...
@@ -155,18 +167,36 @@ public class CbSummaryServiceImpl extends ServiceImpl<CbSummaryMapper, CbSummary
if
(
CollectionUtil
.
isEmpty
(
boList
))
{
if
(
CollectionUtil
.
isEmpty
(
boList
))
{
return
false
;
return
false
;
}
}
boList
.
forEach
(
bo
->{
Assert
.
notNull
(
bo
.
getCbSummaryId
(),
"成本汇总id不能为空"
);
Assert
.
notNull
(
bo
.
getExpenseDate
(),
"费用日期不能为空"
);
});
List
<
CbSummaryActual
>
actualList
=
BeanUtil
.
copyToList
(
boList
,
CbSummaryActual
.
class
);
List
<
CbSummaryActual
>
actualList
=
BeanUtil
.
copyToList
(
boList
,
CbSummaryActual
.
class
);
CbSummaryActual
actualUpdate
=
actualList
.
get
(
0
);
//todo
CbSummaryActual
actual
=
cbSummaryActualMapper
.
selectOne
(
new
LambdaQueryWrapper
<
CbSummaryActual
>()
// throw new ServiceException("当前成本已锁定,不允许编辑!");
.
eq
(
CbSummaryActual:
:
getCbSummaryId
,
actualUpdate
.
getCbSummaryId
())
.
eq
(
CbSummaryActual:
:
getExpenseDate
,
actualUpdate
.
getExpenseDate
())
.
eq
(
CbSummaryActual:
:
getDelFlag
,
0
)
);
if
(
ObjectUtil
.
isNotNull
(
actual
)
&&
1
==
actual
.
getLockStatus
())
{
throw
new
ServiceException
(
"当前成本已锁定,不允许编辑!"
);
}
return
cbSummaryActualMapper
.
insertOrUpdateBatch
(
actualList
)
>
0
;
return
cbSummaryActualMapper
.
insertOrUpdateBatch
(
actualList
)
>
0
;
}
}
@Override
public
List
<
CbSummaryActualListVo
>
getAll
(
CbSummaryActualListBo
bo
)
{
Assert
.
notNull
(
bo
.
getId
(),
"项目id不能为空"
);
Assert
.
notNull
(
bo
.
getCbType
(),
"成本类型不能为空"
);
Assert
.
notNull
(
bo
.
getExpenseDate
(),
"费用日期不能为空"
);
//获取项目成本阶段
CbProjectRecord
cbProjectRecord
=
cbProjectRecordMapper
.
selectById
(
bo
.
getId
());
if
(
ObjectUtil
.
isNull
(
cbProjectRecord
))
{
throw
new
ServiceException
(
"当前项目不存在"
);
}
bo
.
setCbStage
(
cbProjectRecord
.
getCbStage
());
if
(
bo
.
getCbType
()
==
1
)
{
return
baseMapper
.
getProjectAll
(
bo
);
}
else
{
return
baseMapper
.
getCostAccountAll
(
bo
);
}
//todo 截至本月费用汇总
}
}
}
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/CbSummaryActualMapper.xml
View file @
6cca5fd0
...
@@ -18,10 +18,10 @@
...
@@ -18,10 +18,10 @@
</sql>
</sql>
<insert
id=
"insertOrUpdateBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
<insert
id=
"insertOrUpdateBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into cb_summary_actual(cb_summary_id, tax_inclusive_expense, tax_exclusive_expense,expense_date)
insert into cb_summary_actual(
id,
cb_summary_id, tax_inclusive_expense, tax_exclusive_expense,expense_date)
values
values
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
(#{entity.cbSummaryId}, #{entity.taxInclusiveExpense}, #{entity.taxExclusiveExpense}, #{entity.expenseDate})
(#{entity.
id}, #{entity.
cbSummaryId}, #{entity.taxInclusiveExpense}, #{entity.taxExclusiveExpense}, #{entity.expenseDate})
</foreach>
</foreach>
on duplicate key update
on duplicate key update
cb_summary_id = values(cb_summary_id) , tax_inclusive_expense = values(tax_inclusive_expense) ,
cb_summary_id = values(cb_summary_id) , tax_inclusive_expense = values(tax_inclusive_expense) ,
...
...
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/CbSummaryMapper.xml
View file @
6cca5fd0
...
@@ -24,13 +24,13 @@
...
@@ -24,13 +24,13 @@
</resultMap>
</resultMap>
<sql
id=
"baseColumn"
>
<sql
id=
"baseColumn"
>
id, parent_id, level, sort, project_id, cb_stage, cb_project_file_id, number, cb_name,
tax_exclusive_total,
csu.id, csu.parent_id, csu.level, csu.sort, csu.project_id, csu.cb_stage, csu.cb_project_file_id, csu.number, csu.cb_name, csu.
tax_exclusive_total,
c
b_taxes_total, tax_inclusive_total, cb_proportion, tax_inclusive_pm_target, remark, create_time,
del_flag,
c
su.cb_taxes_total, csu.tax_inclusive_total, csu.cb_proportion, csu.tax_inclusive_pm_target, csu.remark, csu.create_time, csu.
del_flag,
cb_type
c
su.c
b_type
</sql>
</sql>
<select
id=
"getByParentId"
resultType=
"com.dsk.cscec.domain.vo.CbSummaryActualListVo"
>
<select
id=
"getByParentId"
resultType=
"com.dsk.cscec.domain.vo.CbSummaryActualListVo"
>
select csu.*,csa.id actualId,csa.tax_inclusive_expense,csa.tax_exclusive_expense,csa.expense_date
,csa.lock_status
select csu.*,csa.id actualId,csa.tax_inclusive_expense,csa.tax_exclusive_expense,csa.expense_date
from cb_summary csu
from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where>
<where>
...
@@ -40,6 +40,47 @@
...
@@ -40,6 +40,47 @@
order by csu.sort
order by csu.sort
</select>
</select>
<select
id=
"getById"
resultType=
"com.dsk.cscec.domain.vo.CbSummaryActualListVo"
>
select csu.*,csa.id actualId,csa.tax_inclusive_expense,csa.tax_exclusive_expense,csa.expense_date
from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where>
csu.id = #{id}
and csu.del_flag = 0
</where>
</select>
<select
id=
"getProjectAll"
resultType=
"com.dsk.cscec.domain.vo.CbSummaryActualListVo"
>
select
<include
refid=
"baseColumn"
></include>
,
csa.tax_inclusive_expense,csa.tax_exclusive_expense
from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where>
csu.project_id = #{bo.id}
and csu.cb_stage = #{bo.cbStage}
and csu.cb_type = #{bo.cbType}
and csu.del_flag = 0
and csu.level != 0
</where>
order by csu.sort
</select>
<select
id=
"getCostAccountAll"
resultType=
"com.dsk.cscec.domain.vo.CbSummaryActualListVo"
>
select
<include
refid=
"baseColumn"
></include>
,
csa.tax_inclusive_expense,csa.tax_exclusive_expense
from cb_summary csu
left join cb_summary_actual csa on csu.id = csa.cb_summary_id and csa.expense_date = #{expenseDate} AND csa.del_flag = 0
<where>
csu.project_id = #{bo.projectId}
and csu.cb_stage = #{bo.cbStage}
and csu.cb_type = #{bo.cbType}
and csu.del_flag = 0
</where>
order by csu.sort
</select>
<select
id=
"getExpenseDateList"
resultType=
"string"
>
<select
id=
"getExpenseDateList"
resultType=
"string"
>
select csa.expense_date
select csa.expense_date
from cb_summary_actual csa
from cb_summary_actual csa
...
...
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