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
d1c8f35d
Commit
d1c8f35d
authored
Apr 13, 2021
by
王衍超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改销售计划;
parent
1573a8a7
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
51 additions
and
17 deletions
+51
-17
NeedPlanConstant.java
.../java/com/xyst/dinas/sales/constant/NeedPlanConstant.java
+4
-0
NeedPlanDaoImpl.java
...va/com/xyst/dinas/sales/internal/dao/NeedPlanDaoImpl.java
+3
-1
NeedPlanServiceImpl.java
...yst/dinas/sales/internal/service/NeedPlanServiceImpl.java
+2
-1
SalesPlanServiceImpl.java
...st/dinas/sales/internal/service/SalesPlanServiceImpl.java
+24
-6
NeedPlanService.java
...in/java/com/xyst/dinas/sales/service/NeedPlanService.java
+0
-1
SalesPlanService.java
...n/java/com/xyst/dinas/sales/service/SalesPlanService.java
+7
-0
SalesPlanAutoCreateTask.java
...va/com/xyst/dinas/sales/task/SalesPlanAutoCreateTask.java
+9
-6
SalesPlanAutoCreateTaskRegister.java
...yst/dinas/sales/task/SalesPlanAutoCreateTaskRegister.java
+2
-2
No files found.
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/constant/NeedPlanConstant.java
View file @
d1c8f35d
...
@@ -6,4 +6,8 @@ public interface NeedPlanConstant {
...
@@ -6,4 +6,8 @@ public interface NeedPlanConstant {
* 实体名
* 实体名
*/
*/
String
NEED_PLAN_NTITY
=
"com.xyst.dinas.sales.datamodel.NeedPlan"
;
String
NEED_PLAN_NTITY
=
"com.xyst.dinas.sales.datamodel.NeedPlan"
;
/**
* 需用计划量
*/
String
needPlanAmount
=
"needPlanAmount"
;
}
}
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/internal/dao/NeedPlanDaoImpl.java
View file @
d1c8f35d
...
@@ -29,7 +29,9 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant {
...
@@ -29,7 +29,9 @@ public class NeedPlanDaoImpl implements NeedPlanDao, NeedPlanConstant {
query
.
setParameter
(
"planningCycleId"
,
planningCycleId
);
query
.
setParameter
(
"planningCycleId"
,
planningCycleId
);
query
.
setParameter
(
"contractId"
,
contractId
);
query
.
setParameter
(
"contractId"
,
contractId
);
query
.
setParameter
(
"submitState"
,
"SUBMITTED"
);
query
.
setParameter
(
"submitState"
,
"SUBMITTED"
);
return
query
.
getResultList
().
get
(
0
);
List
<
KObject
>
resultList
=
query
.
getResultList
();
if
(
resultList
.
isEmpty
())
return
null
;
return
resultList
.
get
(
0
);
}
}
});
});
}
}
...
...
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/internal/service/NeedPlanServiceImpl.java
View file @
d1c8f35d
...
@@ -20,9 +20,10 @@ public class NeedPlanServiceImpl implements NeedPlanService {
...
@@ -20,9 +20,10 @@ public class NeedPlanServiceImpl implements NeedPlanService {
@Override
@Override
public
KObject
queryNeedPlanAmountByDinasType
(
UUID
planningCycleId
,
UUID
contractId
,
UUID
dinasTypeId
)
{
public
KObject
queryNeedPlanAmountByDinasType
(
UUID
planningCycleId
,
UUID
contractId
,
UUID
dinasTypeId
)
{
KObject
kObject
=
null
;
KObject
needPlan
=
needPlanDao
.
queryNeedPlanByContractIdAndCycleId
(
planningCycleId
,
contractId
);
KObject
needPlan
=
needPlanDao
.
queryNeedPlanByContractIdAndCycleId
(
planningCycleId
,
contractId
);
if
(
needPlan
==
null
)
return
null
;
List
<
KObject
>
needPlanDetailsList
=
needPlan
.
get
(
"NeedPlanDetails"
).
toList
();
List
<
KObject
>
needPlanDetailsList
=
needPlan
.
get
(
"NeedPlanDetails"
).
toList
();
KObject
kObject
=
null
;
if
(
needPlanDetailsList
.
size
()
>
0
)
{
if
(
needPlanDetailsList
.
size
()
>
0
)
{
kObject
=
needPlanDetailsList
.
stream
().
filter
(
detail
->
detail
.
get
(
"dinasType"
).
getUuid
(
"id"
).
equals
(
dinasTypeId
)).
findAny
().
orElse
(
null
);
kObject
=
needPlanDetailsList
.
stream
().
filter
(
detail
->
detail
.
get
(
"dinasType"
).
getUuid
(
"id"
).
equals
(
dinasTypeId
)).
findAny
().
orElse
(
null
);
}
}
...
...
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/internal/service/SalesPlanServiceImpl.java
View file @
d1c8f35d
...
@@ -7,20 +7,31 @@ import java.util.UUID;
...
@@ -7,20 +7,31 @@ import java.util.UUID;
import
javax.transaction.Transactional
;
import
javax.transaction.Transactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.lang.Nullable
;
import
com.beecode.amino.core.Amino
;
import
com.beecode.amino.core.Amino
;
import
com.beecode.bap.workflow.core.BizProcessState
;
import
com.beecode.bap.workflow.core.BizProcessState
;
import
com.beecode.bcp.type.KClass
;
import
com.beecode.bcp.type.KClass
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.inz.common.BaseConstants
;
import
com.beecode.inz.common.BaseConstants
;
import
com.xyst.dinas.sales.constant.NeedPlanConstant
;
import
com.xyst.dinas.sales.constant.SalesPlanConstant
;
import
com.xyst.dinas.sales.constant.SalesPlanConstant
;
import
com.xyst.dinas.sales.dao.SalesPlanDao
;
import
com.xyst.dinas.sales.dao.SalesPlanDao
;
import
com.xyst.dinas.sales.service.NeedPlanService
;
import
com.xyst.dinas.sales.service.SalesPlanService
;
import
com.xyst.dinas.sales.service.SalesPlanService
;
/**
* 销售计划
*
* @author Jackpot
* @date 2021年4月13日
*/
@Transactional
public
class
SalesPlanServiceImpl
implements
SalesPlanService
{
public
class
SalesPlanServiceImpl
implements
SalesPlanService
{
@Autowired
@Autowired
private
SalesPlanDao
salesPlanDao
;
private
SalesPlanDao
salesPlanDao
;
@Autowired
private
NeedPlanService
needPlanService
;
@Transactional
@Transactional
public
int
createSalesPlanDetail
(
KObject
salesPlan
,
KObject
contract
)
{
public
int
createSalesPlanDetail
(
KObject
salesPlan
,
KObject
contract
)
{
...
@@ -29,16 +40,16 @@ public class SalesPlanServiceImpl implements SalesPlanService{
...
@@ -29,16 +40,16 @@ public class SalesPlanServiceImpl implements SalesPlanService{
UUID
contractId
=
contract
.
getUuid
(
BaseConstants
.
ID
);
UUID
contractId
=
contract
.
getUuid
(
BaseConstants
.
ID
);
String
contractName
=
contract
.
getString
(
"contractName"
);
String
contractName
=
contract
.
getString
(
"contractName"
);
KObject
project
=
contract
.
get
(
"project"
);
KObject
project
=
contract
.
get
(
"project"
);
UUID
projectId
=
project
.
getUuid
(
BaseConstants
.
ID
);
KObject
purchaseSandUnit
=
contract
.
get
(
"purchaseSandUnit"
);
KObject
purchaseSandUnit
=
contract
.
get
(
"purchaseSandUnit"
);
UUID
purchaseSandUnitId
=
purchaseSandUnit
.
getUuid
(
BaseConstants
.
ID
);
KClass
detailClass
=
Amino
.
getApplicationMetadataContext
().
getBean
(
SalesPlanConstant
.
ENTITY_DETAIL
,
KClass
.
class
);
KClass
detailClass
=
Amino
.
getApplicationMetadataContext
().
getBean
(
SalesPlanConstant
.
ENTITY_DETAIL
,
KClass
.
class
);
List
<
KObject
>
contractDetail
=
contract
.
get
(
"contractDetails"
).
toList
();
List
<
KObject
>
contractDetail
=
contract
.
get
(
"contractDetails"
).
toList
();
for
(
KObject
detail
:
contractDetail
)
{
//合同中的砂石明细
for
(
KObject
detail
:
contractDetail
)
{
//合同中的砂石明细
KObject
dinasType
=
detail
.
get
(
"dinasType"
);
double
contractAmount
=
detail
.
getDouble
(
"dinasAmount"
);
//合同上的砂石余量
double
contractAmount
=
detail
.
getDouble
(
"dinasAmount"
);
//合同上的砂石余量
double
requiredAmount
=
0
D
;
//需用量
KObject
dinasType
=
detail
.
get
(
"dinasType"
);
UUID
dinasTypeId
=
dinasType
.
getUuid
(
BaseConstants
.
ID
);
UUID
planningCycleId
=
salesPlan
.
get
(
"planningCycle"
).
getUuid
(
BaseConstants
.
ID
);
KObject
needPlanDetail
=
needPlanService
.
queryNeedPlanAmountByDinasType
(
planningCycleId
,
contractId
,
dinasTypeId
);
double
requiredAmount
=
needPlanDetail
!=
null
?
needPlanDetail
.
getDouble
(
NeedPlanConstant
.
needPlanAmount
):
0
D
;
//需用量
Double
planAmount
=
null
;
//本期分配量
Double
planAmount
=
null
;
//本期分配量
//新增销售计划明细
//新增销售计划明细
KObject
planDetailObj
=
detailClass
.
newInstance
();
KObject
planDetailObj
=
detailClass
.
newInstance
();
...
@@ -72,4 +83,11 @@ public class SalesPlanServiceImpl implements SalesPlanService{
...
@@ -72,4 +83,11 @@ public class SalesPlanServiceImpl implements SalesPlanService{
return
kObject
;
return
kObject
;
}
}
public
void
deleteSalesPlan
(
KObject
salesPlan
)
{
salesPlanDao
.
delete
(
salesPlan
);
}
public
int
deleteSalesPlanDetails
(
UUID
masterId
,
@Nullable
UUID
contractId
)
{
return
salesPlanDao
.
deleteDetails
(
masterId
,
contractId
);
}
}
}
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/service/NeedPlanService.java
View file @
d1c8f35d
package
com
.
xyst
.
dinas
.
sales
.
service
;
package
com
.
xyst
.
dinas
.
sales
.
service
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.UUID
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.bcp.type.KObject
;
...
...
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/service/SalesPlanService.java
View file @
d1c8f35d
package
com
.
xyst
.
dinas
.
sales
.
service
;
package
com
.
xyst
.
dinas
.
sales
.
service
;
import
java.util.UUID
;
import
org.springframework.lang.Nullable
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.bcp.type.KObject
;
public
interface
SalesPlanService
{
public
interface
SalesPlanService
{
...
@@ -21,5 +25,8 @@ public interface SalesPlanService {
...
@@ -21,5 +25,8 @@ public interface SalesPlanService {
public
int
createSalesPlanDetail
(
KObject
salesPlan
,
KObject
contract
);
public
int
createSalesPlanDetail
(
KObject
salesPlan
,
KObject
contract
);
public
void
deleteSalesPlan
(
KObject
salesPlan
)
;
public
int
deleteSalesPlanDetails
(
UUID
masterId
,
@Nullable
UUID
contractId
)
;
}
}
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/task/SalesPlanAutoCreateTask.java
View file @
d1c8f35d
package
com
.
xyst
.
dinas
.
sales
.
task
;
package
com
.
xyst
.
dinas
.
sales
.
task
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
...
@@ -66,16 +67,15 @@ public class SalesPlanAutoCreateTask implements Task{
...
@@ -66,16 +67,15 @@ public class SalesPlanAutoCreateTask implements Task{
KObject
salesPlan
=
salesPlanDao
.
querySalesPlanByPlan
(
regionCompanyId
,
planningCycleId
);
KObject
salesPlan
=
salesPlanDao
.
querySalesPlanByPlan
(
regionCompanyId
,
planningCycleId
);
//1. 新增销售计划
//1. 新增销售计划
if
(
salesPlan
==
null
)
{
if
(
salesPlan
==
null
)
{
KObject
salesPlanMaster
=
salesPlanService
.
createSalesPlanMaster
(
regionCompany
,
planningCycleObj
);
// UUID masterId = salesPlanMaster.getUuid(BaseConstants.ID);
int
detailCount
=
0
;
List
<
KObject
>
executingContracts
=
contractDao
.
getExecutingContractByRegionCompany
(
regionCompanyId
);
List
<
KObject
>
executingContracts
=
contractDao
.
getExecutingContractByRegionCompany
(
regionCompanyId
);
if
(
executingContracts
.
isEmpty
())
continue
;
if
(
executingContracts
.
isEmpty
())
continue
;
KObject
salesPlanMaster
=
salesPlanService
.
createSalesPlanMaster
(
regionCompany
,
planningCycleObj
);
int
detailCount
=
0
;
for
(
KObject
contract
:
executingContracts
)
{
//执行中的合同
for
(
KObject
contract
:
executingContracts
)
{
//执行中的合同
detailCount
+=
salesPlanService
.
createSalesPlanDetail
(
salesPlanMaster
,
contract
);
detailCount
+=
salesPlanService
.
createSalesPlanDetail
(
salesPlanMaster
,
contract
);
}
}
if
(
detailCount
==
0
)
{
if
(
detailCount
==
0
)
{
salesPlan
Dao
.
delete
(
salesPlanMaster
);
salesPlan
Service
.
deleteSalesPlan
(
salesPlanMaster
);
logger
.
info
(
"区域公司["
+
regionCompanyName
+
"]:本次没有生成销售计划;"
);
logger
.
info
(
"区域公司["
+
regionCompanyName
+
"]:本次没有生成销售计划;"
);
}
else
{
}
else
{
int
contractSize
=
executingContracts
.
size
();
int
contractSize
=
executingContracts
.
size
();
...
@@ -90,9 +90,12 @@ public class SalesPlanAutoCreateTask implements Task{
...
@@ -90,9 +90,12 @@ public class SalesPlanAutoCreateTask implements Task{
continue
;
continue
;
}
}
//3.更新销售计划
//3.更新销售计划
HashSet
<
KObject
>
contractForAddInPlan
=
new
HashSet
<>();
//
HashSet<KObject> contractForAddInPlan = new HashSet<>();
HashSet
<
UUID
>
contractForDelInPlan
=
new
HashSet
<>();
HashSet
<
UUID
>
contractForDelInPlan
=
new
HashSet
<>();
List
<
KObject
>
contractForAddInPlan
=
new
ArrayList
<>();
// List<UUID> contractForDelInPlan = new ArrayList<>();
List
<
KObject
>
executingContracts
=
contractDao
.
getExecutingContractByRegionCompany
(
regionCompanyId
);
List
<
KObject
>
executingContracts
=
contractDao
.
getExecutingContractByRegionCompany
(
regionCompanyId
);
List
<
KObject
>
salesPlanDetails
=
salesPlan
.
get
(
"SalesPlanDetails"
).
toList
();
List
<
KObject
>
salesPlanDetails
=
salesPlan
.
get
(
"SalesPlanDetails"
).
toList
();
...
@@ -123,7 +126,7 @@ public class SalesPlanAutoCreateTask implements Task{
...
@@ -123,7 +126,7 @@ public class SalesPlanAutoCreateTask implements Task{
UUID
salesPlanId
=
salesPlan
.
getUuid
(
BaseConstants
.
ID
);
UUID
salesPlanId
=
salesPlan
.
getUuid
(
BaseConstants
.
ID
);
//3.1 删除部分销售明细
//3.1 删除部分销售明细
for
(
UUID
contractId
:
contractForDelInPlan
)
{
for
(
UUID
contractId
:
contractForDelInPlan
)
{
salesPlan
Dao
.
delete
Details
(
salesPlanId
,
contractId
);
salesPlan
Service
.
deleteSalesPlan
Details
(
salesPlanId
,
contractId
);
}
}
//3.2 更新销售明细中的合同砂石余量
//3.2 更新销售明细中的合同砂石余量
if
(
contractForDelInPlan
.
size
()>
0
)
{
if
(
contractForDelInPlan
.
size
()>
0
)
{
...
...
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/task/SalesPlanAutoCreateTaskRegister.java
View file @
d1c8f35d
...
@@ -37,9 +37,9 @@ public class SalesPlanAutoCreateTaskRegister implements ServiceInitializer{
...
@@ -37,9 +37,9 @@ public class SalesPlanAutoCreateTaskRegister implements ServiceInitializer{
}
}
TaskDetail
TaskDetail
=
new
TaskDetail
(
TASK_NAME
,
SalesPlanAutoCreateTask
.
class
.
getName
());
TaskDetail
TaskDetail
=
new
TaskDetail
(
TASK_NAME
,
SalesPlanAutoCreateTask
.
class
.
getName
());
// 每天凌晨12点执行调度,如测试可修改为每十五秒:*/15 * * * * ?(表达式由至少6个由空格分隔的时间元素,从左至右可分为秒,分,时,日,月,星期)
// 每天凌晨12点执行调度,如测试可修改为每十五秒:*/15 * * * * ?(表达式由至少6个由空格分隔的时间元素,从左至右可分为秒,分,时,日,月,星期)
scheduleService
.
scheduleTask
(
TaskDetail
,
"0 0 0 * * ?"
);
//
scheduleService.scheduleTask(TaskDetail, "0 0 0 * * ?");
// 测试调度时进行调用
// 测试调度时进行调用
// scheduleService.scheduleTask(TaskDetail, "*/3
0 * * * * ?");
scheduleService
.
scheduleTask
(
TaskDetail
,
"*/6
0 * * * * ?"
);
logger
.
info
(
"销售计划自动创建任务初始化成功!"
);
logger
.
info
(
"销售计划自动创建任务初始化成功!"
);
}
}
...
...
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