Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cloud-fb
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
王衍超
cloud-fb
Commits
ae96d3d3
Commit
ae96d3d3
authored
3 years ago
by
杨清松
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
临时销售计划校验
parent
3eedc834
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
11 deletions
+18
-11
SalesPlanDao.java
.../src/main/java/com/xyst/dinas/sales/dao/SalesPlanDao.java
+6
-3
SalesPlanServiceImpl.java
...st/dinas/sales/internal/service/SalesPlanServiceImpl.java
+12
-8
No files found.
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/dao/SalesPlanDao.java
View file @
ae96d3d3
...
...
@@ -164,7 +164,7 @@ public class SalesPlanDao {
* @param endTime
* @return
*/
public
List
<
KObject
>
querySalesPlanByTime
(
Date
startTime
,
Date
endTime
)
{
public
KObject
querySalesPlanByTime
(
Date
startTime
,
Date
endTime
)
{
return
template
.
execute
(
session
->{
String
hql
=
"from "
+
SalesPlanConstant
.
ENTITY
+
" where planningCycle.startTime >=:startTime and planningCycle.endTime <=:endTime"
+
" and (approveState = 1 or approveState =2)"
;
...
...
@@ -172,8 +172,11 @@ public class SalesPlanDao {
query
.
setParameter
(
"startTime"
,
startTime
);
query
.
setParameter
(
"endTime"
,
endTime
);
List
<
KObject
>
resultList
=
query
.
getResultList
();
return
resultList
;
if
(
resultList
.
size
()
>
0
)
{
return
resultList
.
get
(
0
);
}
else
{
return
null
;
}
});
}
}
This diff is collapsed.
Click to expand it.
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/internal/service/SalesPlanServiceImpl.java
View file @
ae96d3d3
...
...
@@ -420,7 +420,7 @@ public class SalesPlanServiceImpl implements SalesPlanService{
//根据开始时间和结束时间查询临时销售计划
List
<
KObject
>
salesTempPlanByTimeList
=
salesPlanDao
.
querySalesTempPlanByTime
(
startTime
,
endTime
,
contractId
);
//根据开始时间和结束时间查询销售计划
List
<
KObject
>
salesPlanByTimeLis
t
=
salesPlanDao
.
querySalesPlanByTime
(
startTime
,
endTime
);
KObject
salesPlanByTimeKObjec
t
=
salesPlanDao
.
querySalesPlanByTime
(
startTime
,
endTime
);
//获取临时销售计划明细
JSONArray
salesPlanTempDetails
=
jsonObject
.
getJSONArray
(
"SalesPlanTempDetails"
);
List
<
Map
<
String
,
Object
>>
verifyList
=
new
ArrayList
<
Map
<
String
,
Object
>>();
...
...
@@ -430,7 +430,8 @@ public class SalesPlanServiceImpl implements SalesPlanService{
//获取砂石类型
UUID
dinasTypeId
=
UUID
.
fromString
(
salesPlanTempDetail
.
getJSONObject
(
"dinasType"
).
getString
(
"id"
));
BigDecimal
contractAvailableAmount
=
salesPlanTempDetail
.
getBigDecimal
(
"contractAvailableAmount"
);
//合同可用余量
BigDecimal
actualSaleAmount
=
salesPlanTempDetail
.
getBigDecimal
(
"actualSaleAmount"
);
//实际销售量
//实际销售量从销售计划查
//BigDecimal actualSaleAmount = salesPlanTempDetail.getBigDecimal("actualSaleAmount"); //实际销售量
BigDecimal
salesPlanAmount
=
salesPlanTempDetail
.
getBigDecimal
(
"salesPlanAmount"
);
//本期分配量
//查询同一计划周期内,同一个合同和砂石类型下的临时销售计划分配量之和
//筛选同一个砂石类型下的明细
...
...
@@ -448,18 +449,21 @@ public class SalesPlanServiceImpl implements SalesPlanService{
}
//查询同一计划周期内,同一个合同和砂石类型下的销售计划分配量之和
BigDecimal
totalSalesPlanAmount
=
new
BigDecimal
(
"0"
);
if
(
salesPlanByTimeList
.
size
()
>
0
)
{
for
(
int
k
=
0
;
k
<
salesPlanByTimeList
.
size
();
k
++)
{
KObject
salesPlan
=
salesPlanByTimeList
.
get
(
k
);
List
<
KObject
>
oldSalesPlanDetails
=
salesPlan
.
get
(
"SalesPlanDetails"
).
toList
();
//销售计划内的实际销售量
BigDecimal
actualSaleTotalAmount
=
new
BigDecimal
(
"0"
);
if
(
salesPlanByTimeKObject
!=
null
)
{
//for (int k = 0; k < salesPlanByTimeList.size(); k++) {
//KObject salesPlan = salesPlanByTimeList.get(k);
List
<
KObject
>
oldSalesPlanDetails
=
salesPlanByTimeKObject
.
get
(
"SalesPlanDetails"
).
toList
();
KObject
oldSalesPlanDetail
=
oldSalesPlanDetails
.
stream
().
filter
(
detail
->
detail
.
get
(
"dinasType"
).
getUuid
(
"id"
).
equals
(
dinasTypeId
)
&&
detail
.
get
(
"contract"
).
getUuid
(
"id"
).
equals
(
contractId
)).
findAny
().
orElse
(
null
);
if
(
oldSalesPlanDetail
!=
null
)
{
//合同与砂石类型共同筛选
totalSalesPlanAmount
=
totalSalesPlanAmount
.
add
(
oldSalesPlanDetail
.
getBigDecimal
(
"planAmount"
));
actualSaleTotalAmount
=
actualSaleTotalAmount
.
add
(
oldSalesPlanDetail
.
getBigDecimal
(
"actualSaleAmount"
));
}
}
//
}
}
//可分配量 <=合同可用余量+实际销售量 - 临时销售计划分配量之和 - 日常销售计划分配量
BigDecimal
distributedVolum
=
contractAvailableAmount
.
add
(
actualSaleAmount
).
subtract
(
totalTempSalesPlanAmount
).
subtract
(
totalSalesPlanAmount
);
BigDecimal
distributedVolum
=
contractAvailableAmount
.
add
(
actualSale
Total
Amount
).
subtract
(
totalTempSalesPlanAmount
).
subtract
(
totalSalesPlanAmount
);
if
(
salesPlanAmount
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
&&
(
salesPlanAmount
.
compareTo
(
distributedVolum
)
>
-
1
||
salesPlanAmount
.
compareTo
(
contractAvailableAmount
)
>
-
1
))
{
//大于等于
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"dinasTypeName"
,
salesPlanTempDetail
.
getString
(
"dinasTypeName"
));
...
...
This diff is collapsed.
Click to expand it.
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