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
3568bff2
Commit
3568bff2
authored
Feb 19, 2024
by
lcl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add
parent
6ca2e394
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
270 additions
and
0 deletions
+270
-0
CbGainLossAnalysisController.java
...om/dsk/cscec/controller/CbGainLossAnalysisController.java
+37
-0
CbGainLossAnalysisListVo.java
...ava/com/dsk/cscec/domain/vo/CbGainLossAnalysisListVo.java
+107
-0
CbSummaryMapper.java
...i/src/main/java/com/dsk/cscec/mapper/CbSummaryMapper.java
+8
-0
ICbGainLossAnalysisService.java
...ava/com/dsk/cscec/service/ICbGainLossAnalysisService.java
+16
-0
CbGainLossAnalysisServiceImpl.java
...dsk/cscec/service/impl/CbGainLossAnalysisServiceImpl.java
+76
-0
CbSummaryMapper.xml
...z-api/src/main/resources/mapper/cscec/CbSummaryMapper.xml
+26
-0
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/controller/CbGainLossAnalysisController.java
0 → 100644
View file @
3568bff2
package
com
.
dsk
.
cscec
.
controller
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.cscec.domain.bo.CbProjectBaseBo
;
import
com.dsk.cscec.domain.bo.CbSummaryActualListBo
;
import
com.dsk.cscec.domain.vo.CbGainLossAnalysisListVo
;
import
com.dsk.cscec.service.ICbGainLossAnalysisService
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* 成本-盈亏分析对比
*
* @Author lcl
* @Data 2024/2/18 14:01
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/cb/gain/loss/analysis"
)
public
class
CbGainLossAnalysisController
extends
BaseController
{
private
final
ICbGainLossAnalysisService
baseService
;
/**
* 数据列表
*/
@GetMapping
(
"/list"
)
public
R
<
List
<
CbGainLossAnalysisListVo
>>
getList
(
CbSummaryActualListBo
bo
)
{
return
R
.
ok
(
baseService
.
getList
(
bo
));
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CbGainLossAnalysisListVo.java
0 → 100644
View file @
3568bff2
package
com
.
dsk
.
cscec
.
domain
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @Author lcl
* @Data 2024/2/19 9:42
*/
@Data
public
class
CbGainLossAnalysisListVo
implements
Serializable
{
private
Long
id
;
/**
* 名称
*/
private
String
cbName
;
/**
* 招标控制价(招标控制价合价)
*/
private
String
tenderSumPrice
;
/**
* 招标控制价(不含税招标合价)
*/
private
String
taxExcludeTenderSumPrice
;
/**
* 招标控制价(含税招标合价)
*/
private
String
taxIncludeTenderSumPrice
;
/**
* 投标报价(投标报价合价)
*/
private
String
bidSumPrice
;
/**
* 投标报价(不含税投标合价)
*/
private
String
taxExcludeBidSumPrice
;
/**
* 投标报价(含税投标合价)
*/
private
String
taxIncludebBidSumPrice
;
/**
* 成本汇总(不含税成本合价)
*/
private
String
taxExclusiveTotal
;
/**
* 成本汇总(成本税金合价)
*/
private
String
cbTaxesTotal
;
/**
* 成本汇总(含税成本合价)
*/
private
String
taxInclusiveTotal
;
/**
* 造价指标(招标控制价)
*/
private
String
costTender
;
/**
* 造价指标(投标报价)
*/
private
String
costBid
;
/**
* 造价指标(成本)
*/
private
String
costExpense
;
/**
* 含税成本占比
*/
private
String
taxInclusiveExpenseProportion
;
/**
* 招标控制价(含税合价偏差)
*/
private
String
tenderSumPriceDeviation
;
/**
* 招标控制价(含税盈亏率)
*/
private
String
tenderProfitLossRatio
;
/**
* 投标报价(含税合价偏差)
*/
private
String
bidSumPriceDeviation
;
/**
* 投标报价(含税盈亏率)
*/
private
String
bidProfitLossRatio
;
/**
* 实际成本费用(本月费用(含税))
*/
private
String
taxInclusiveExpense
;
/**
* 实际成本费用(本月费用(不含税))
*/
private
String
taxExclusiveExpense
;
/**
* 实际成本费用(截至本月费用(含税))
*/
private
String
sumTaxInclusiveExpense
;
/**
* 实际成本费用(截至本月费用(不含税))
*/
private
String
sumTaxExclusiveExpense
;
private
List
<
CbGainLossAnalysisListVo
>
children
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/mapper/CbSummaryMapper.java
View file @
3568bff2
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.vo.CbGainLossAnalysisListVo
;
import
com.dsk.cscec.domain.vo.CbSummaryActualListVo
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -53,4 +54,11 @@ public interface CbSummaryMapper extends BaseMapper<CbSummary> {
* @return
*/
List
<
Map
<
String
,
Object
>>
selectByLevel
(
@Param
(
"bo"
)
CbSummaryBo
bo
);
CbGainLossAnalysisListVo
getGainLossAnalysisById
(
@Param
(
"id"
)
Long
id
,
@Param
(
"expenseDate"
)
String
expenseDate
);
List
<
CbGainLossAnalysisListVo
>
getGainLossAnalysisByParentId
(
@Param
(
"id"
)
Long
parentId
,
@Param
(
"expenseDate"
)
String
expenseDate
);
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/ICbGainLossAnalysisService.java
0 → 100644
View file @
3568bff2
package
com
.
dsk
.
cscec
.
service
;
import
com.dsk.cscec.domain.bo.CbProjectBaseBo
;
import
com.dsk.cscec.domain.bo.CbSummaryActualListBo
;
import
com.dsk.cscec.domain.bo.CbSummaryBo
;
import
com.dsk.cscec.domain.vo.CbGainLossAnalysisListVo
;
import
java.util.List
;
import
java.util.Map
;
public
interface
ICbGainLossAnalysisService
{
List
<
CbGainLossAnalysisListVo
>
getList
(
CbSummaryActualListBo
bo
);
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/CbGainLossAnalysisServiceImpl.java
0 → 100644
View file @
3568bff2
package
com
.
dsk
.
cscec
.
service
.
impl
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dsk.cscec.domain.CbSummary
;
import
com.dsk.cscec.domain.bo.CbSummaryActualListBo
;
import
com.dsk.cscec.domain.vo.CbGainLossAnalysisListVo
;
import
com.dsk.cscec.mapper.CbSummaryMapper
;
import
com.dsk.cscec.service.ICbGainLossAnalysisService
;
import
jodd.util.StringUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Author lcl
* @Data 2024/2/18 14:03
*/
@Slf4j
@Service
public
class
CbGainLossAnalysisServiceImpl
implements
ICbGainLossAnalysisService
{
@Resource
private
CbSummaryMapper
cbSummaryMapper
;
@Override
public
List
<
CbGainLossAnalysisListVo
>
getList
(
CbSummaryActualListBo
bo
)
{
Assert
.
notNull
(
bo
.
getId
(),
"id不能为空"
);
Assert
.
notNull
(
bo
.
getCbType
(),
"成本类型不能为空"
);
List
<
CbGainLossAnalysisListVo
>
resultList
=
new
ArrayList
<>();
if
(
StringUtil
.
isBlank
(
bo
.
getExpenseDate
()))
{
//默认当前月
bo
.
setExpenseDate
(
DatePattern
.
SIMPLE_MONTH_FORMAT
.
format
(
new
Date
()));
}
CbSummary
cbSummary
=
cbSummaryMapper
.
selectById
(
bo
.
getId
());
if
(
ObjectUtil
.
isEmpty
(
cbSummary
))
{
return
resultList
;
}
List
<
CbGainLossAnalysisListVo
>
childrenList
=
cbSummaryMapper
.
getGainLossAnalysisByParentId
(
bo
.
getId
(),
bo
.
getExpenseDate
());
if
(
0
==
cbSummary
.
getLevel
())
{
resultList
=
childrenList
;
}
else
{
childrenList
=
getProjectSumList
(
bo
);
CbGainLossAnalysisListVo
cbGainLossAnalysisListVo
=
cbSummaryMapper
.
getGainLossAnalysisById
(
bo
.
getId
(),
bo
.
getExpenseDate
());
cbGainLossAnalysisListVo
.
setChildren
(
childrenList
);
resultList
.
add
(
cbGainLossAnalysisListVo
);
}
return
resultList
;
}
/**
* 盈亏对比分析列表
*
*/
private
List
<
CbGainLossAnalysisListVo
>
getProjectSumList
(
CbSummaryActualListBo
bo
)
{
List
<
CbGainLossAnalysisListVo
>
childrenList
=
cbSummaryMapper
.
getGainLossAnalysisByParentId
(
bo
.
getId
(),
bo
.
getExpenseDate
());
childrenList
.
forEach
(
children
->
{
CbSummaryActualListBo
childBo
=
new
CbSummaryActualListBo
();
childBo
.
setId
(
children
.
getId
());
childBo
.
setExpenseDate
(
bo
.
getExpenseDate
());
children
.
setChildren
(
getProjectSumList
(
childBo
));
});
return
childrenList
;
}
}
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/CbSummaryMapper.xml
View file @
3568bff2
...
...
@@ -107,5 +107,31 @@
order by csu.sort
</select>
<select
id=
"getGainLossAnalysisById"
resultType=
"com.dsk.cscec.domain.vo.CbGainLossAnalysisListVo"
>
select csu.id, csu.cb_name, csu.tax_exclusive_total, csu.cb_taxes_total, csu.tax_inclusive_total, csa.tax_inclusive_expense, csa.tax_exclusive_expense,
sum(cde.tender_control_sum_price) tenderSumPrice, sum(cde.exclude_tax_cb_sum_price) taxExcludeTenderSumPrice, sum(cde.include_tax_cb_sum_price) taxIncludeTenderSumPrice,
sum(csa1.tax_inclusive_expense) sumTaxInclusiveExpense, sum(csa1.tax_exclusive_expense) sumTaxExclusiveExpense
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 csa1 on (csu.id = csa1.cb_summary_id and csa1.expense_date
<
= #{expenseDate} AND csa1.del_flag = 0)
left join cb_direct_expense cde on (csu.project_id = cde.project_id and csu.cb_stage = cde.cb_stage and cde.del_flag = 0)
where csu.id = #{id} and csu.del_flag = 0
group by csu.id
order by csu.sort
</select>
<select
id=
"getGainLossAnalysisByParentId"
resultType=
"com.dsk.cscec.domain.vo.CbGainLossAnalysisListVo"
>
select csu.id, csu.cb_name, csu.tax_exclusive_total, csu.cb_taxes_total, csu.tax_inclusive_total, csa.tax_inclusive_expense, csa.tax_exclusive_expense,
sum(cde.tender_control_sum_price) tenderSumPrice, sum(cde.exclude_tax_cb_sum_price) taxExcludeTenderSumPrice, sum(cde.include_tax_cb_sum_price) taxIncludeTenderSumPrice,
sum(csa1.tax_inclusive_expense) sumTaxInclusiveExpense, sum(csa1.tax_exclusive_expense) sumTaxExclusiveExpense
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 csa1 on (csu.id = csa1.cb_summary_id and csa1.expense_date
<
= #{expenseDate} AND csa1.del_flag = 0)
left join cb_direct_expense cde on (csu.project_id = cde.project_id and csu.cb_stage = cde.cb_stage and cde.del_flag = 0)
where csu.parent_id = #{parentId} and csu.del_flag = 0
group by csu.id
order by csu.sort
</select>
</mapper>
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