Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
hg-smart
Overview
Overview
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
platform
hg-smart
Commits
e6aa6586
Commit
e6aa6586
authored
Jul 17, 2024
by
wuwenlong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
产副品制造成本核算;
parent
36abee8b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
22 deletions
+24
-22
HGCBTools.java
src/main/java/com/baosight/hggp/hg/cb/tools/HGCBTools.java
+24
-22
No files found.
src/main/java/com/baosight/hggp/hg/cb/tools/HGCBTools.java
View file @
e6aa6586
...
...
@@ -686,28 +686,30 @@ public class HGCBTools {
kc003ParamMap
.
put
(
HGCW001
.
FIELD_ACCOUNT_PERIOD_DATE_START
,
hgcw001
.
getAccountPeriodDateStart
());
kc003ParamMap
.
put
(
HGCW001
.
FIELD_ACCOUNT_PERIOD_DATE_END
,
hgcw001
.
getAccountPeriodDateEnd
());
List
<
HGKC003
>
hgkc003List
=
HGKCTools
.
HgKc003
.
list
(
kc003ParamMap
);
//入库单按项目编码、产品编码、存货工序ID、规格、单重分组,分别取正向入库单数量、重量和退回数量
//生成制造成本基础数据
List
<
HGCB005
>
hgcb005List
=
constractHGCB005
(
hgcw001
,
hgkc003List
);
//设置权重
setingCostWeight
(
hgcb005List
);
//计算项目总成本
Map
<
String
,
BigDecimal
>
totalAmoutMap
=
calculateProjAmout
(
hgcw001
);
//计算产副品成本:权重值*项目总费用=产副品制造总成本;总成本/数量=单位成本
Optional
.
ofNullable
(
hgcb005List
).
orElse
(
new
ArrayList
<>()).
stream
().
forEach
(
o
->
{
BigDecimal
totalAmout
=
totalAmoutMap
.
get
(
o
.
getProjCode
());
o
.
setTotalCost
(
totalAmout
.
multiply
(
o
.
getCostWeightValue
()).
setScale
(
6
,
RoundingMode
.
HALF_UP
));
o
.
setUnitCost
(
o
.
getTotalCost
().
divide
(
o
.
getQuantity
(),
6
,
RoundingMode
.
HALF_UP
));
});
//按公司删除当前会计起的成本核算数据
Map
cb005DeleteParam
=
new
HashMap
();
cb005DeleteParam
.
put
(
HGCB005
.
FIELD_company_code
,
hgcw001
.
getCompanyCode
());
cb005DeleteParam
.
put
(
HGCB005
.
FIELD_account_year
,
hgcw001
.
getAccountYear
());
cb005DeleteParam
.
put
(
HGCB005
.
FIELD_account_month
,
hgcw001
.
getAccountPeriod
().
substring
(
4
));
deleteByCondition
(
cb005DeleteParam
);
//保存新的成本核算数据
if
(
CollectionUtils
.
isNotEmpty
(
hgcb005List
)){
DaoBase
.
getInstance
().
insertBatch
(
HGCB005
.
INSERT
,
hgcb005List
);
if
(
CollectionUtils
.
isNotEmpty
(
hgkc003List
))
{
//入库单按项目编码、产品编码、存货工序ID、规格、单重分组,分别取正向入库单数量、重量和退回数量
//生成制造成本基础数据
List
<
HGCB005
>
hgcb005List
=
constractHGCB005
(
hgcw001
,
hgkc003List
);
//设置权重
setingCostWeight
(
hgcb005List
);
//计算项目总成本
Map
<
String
,
BigDecimal
>
totalAmoutMap
=
calculateProjAmout
(
hgcw001
);
//计算产副品成本:权重值*项目总费用=产副品制造总成本;总成本/数量=单位成本
Optional
.
ofNullable
(
hgcb005List
).
orElse
(
new
ArrayList
<>()).
stream
().
forEach
(
o
->
{
BigDecimal
totalAmout
=
totalAmoutMap
.
get
(
o
.
getProjCode
());
o
.
setTotalCost
(
totalAmout
.
multiply
(
o
.
getCostWeightValue
()).
setScale
(
6
,
RoundingMode
.
HALF_UP
));
o
.
setUnitCost
(
o
.
getTotalCost
().
divide
(
o
.
getQuantity
(),
6
,
RoundingMode
.
HALF_UP
));
});
//按公司删除当前会计起的成本核算数据
Map
cb005DeleteParam
=
new
HashMap
();
cb005DeleteParam
.
put
(
HGCB005
.
FIELD_company_code
,
hgcw001
.
getCompanyCode
());
cb005DeleteParam
.
put
(
HGCB005
.
FIELD_account_year
,
hgcw001
.
getAccountYear
());
cb005DeleteParam
.
put
(
HGCB005
.
FIELD_account_month
,
hgcw001
.
getAccountPeriod
().
substring
(
4
));
deleteByCondition
(
cb005DeleteParam
);
//保存新的成本核算数据
if
(
CollectionUtils
.
isNotEmpty
(
hgcb005List
))
{
DaoBase
.
getInstance
().
insertBatch
(
HGCB005
.
INSERT
,
hgcb005List
);
}
}
}
}
...
...
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