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
a08fb29b
Commit
a08fb29b
authored
Jul 05, 2021
by
焦凯
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改合同变更审批完成后的关于合同预警的关系
parent
0db91e19
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
3 deletions
+32
-3
ContractServiceImpl.java
.../dinas/contract/internal/service/ContractServiceImpl.java
+32
-3
No files found.
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/internal/service/ContractServiceImpl.java
View file @
a08fb29b
...
...
@@ -36,6 +36,8 @@ import com.beecode.inz.message.enumeration.ParterType;
import
com.beecode.inz.message.service.RemindService
;
import
com.beecode.inz.workflow.service.InzWorkflowService
;
import
com.xyst.dinas.biz.dao.DinasOrganizationDao
;
import
com.xyst.dinas.biz.warn.BaseBusinessWarn
;
import
com.xyst.dinas.biz.warn.WarnSettingConstant
;
import
com.xyst.dinas.biz.warn.WarnSettingEntity
;
import
com.xyst.dinas.biz.warn.WarnTargetTypeEnum
;
import
com.xyst.dinas.biz.warn.dao.WarnSettingDao
;
...
...
@@ -45,7 +47,9 @@ import com.xyst.dinas.contract.enumeration.ContractStateEnum;
import
com.xyst.dinas.contract.internal.dao.ContractDao
;
import
com.xyst.dinas.contract.internal.dao.ContractInfoDao
;
import
com.xyst.dinas.contract.service.ContractService
;
import
com.xyst.dinas.contract.warn.ContractExpireWarningCalculator
;
import
com.xyst.dinas.contract.warn.ContractWarnConst
;
import
com.xyst.dinas.contract.warn.DinasCountWarningCalculate
;
import
com.xyst.dinas.project.dao.ProjectFiledDao
;
import
com.xyst.dinas.project.dao.PurchaseSandCompanyDao
;
...
...
@@ -87,6 +91,9 @@ public class ContractServiceImpl implements ContractService {
@Autowired
private
RemindService
remindService
;
@Autowired
private
WarningService
warningService
;
@Override
@Transactional
...
...
@@ -304,7 +311,7 @@ public class ContractServiceImpl implements ContractService {
@Override
public
void
afterApprovedForUpdate
(
KObject
contract
)
{
List
<
KObject
>
executingContracts
=
contractDao
.
getExecutingContractByContractInfoId
(
contract
.
getUuid
(
"contractId"
));
List
<
KObject
>
executingContracts
=
contractDao
.
getExecutingContractByContractInfoId
(
contract
.
getUuid
(
ContractConstant
.
CONTRACT_ID
));
if
(
executingContracts
.
size
()
!=
1
){
//不该出现的情况,需要查明
logger
.
error
(
"不该出现的情况,需要查明:合同["
+
contract
.
getUuid
(
"id"
).
toString
()+
"]是变更审批,审批完成后发现原合同没有执行中的"
);
...
...
@@ -313,7 +320,7 @@ public class ContractServiceImpl implements ContractService {
oldContract
.
set
(
ContractConstant
.
CONTRACT_STATE
,
ContractStateEnum
.
MODIFIED
.
name
());
contractInfoDao
.
update
(
oldContract
);
List
<
KObject
>
contracts
=
contractDao
.
getContractsByContractInfoIdOrderDesc
(
contract
.
getUuid
(
"contractId"
));
List
<
KObject
>
contracts
=
contractDao
.
getContractsByContractInfoIdOrderDesc
(
contract
.
getUuid
(
ContractConstant
.
CONTRACT_ID
));
int
contractVersion
=
contracts
.
size
()-
1
;
contract
.
set
(
ContractConstant
.
CONTRACT_STATE
,
ContractStateEnum
.
EXECUTING
.
name
());
contract
.
set
(
"contractVersion"
,
contractVersion
);
...
...
@@ -321,10 +328,32 @@ public class ContractServiceImpl implements ContractService {
contractInfoDao
.
update
(
contract
);
KObject
contractInfo
=
contractInfoDao
.
load
(
contract
.
getUuid
(
"contractId"
));
KObject
contractInfo
=
contractInfoDao
.
load
(
contract
.
getUuid
(
ContractConstant
.
CONTRACT_ID
));
contractInfo
.
set
(
ContractConstant
.
CURRENT_VERSION
,
contractVersion
);
contractInfoDao
.
update
(
contractInfo
);
//变更有可能修改砂石量,造成砂石余量变化,所以要重新触发预警
List
<
KObject
>
detials
=
contract
.
get
(
"contractDetails"
).
toList
();
for
(
KObject
detail
:
detials
)
{
String
dinasTypeName
=
detail
.
get
(
"dinasType"
).
getString
(
"dinasTypeName"
);
BaseBusinessWarn
warn
=
warningService
.
createWarn
(
"合同"
,
contract
.
getUuid
(
ContractConstant
.
CONTRACT_ID
),
dinasTypeName
);
warn
.
setWarningCalculate
(
new
DinasCountWarningCalculate
(
detail
.
getBigDecimal
(
ContractConstant
.
DINAS_AMOUNT
).
doubleValue
()));
warn
.
warn
();
}
//变更有可能修改合同结束时间,所以要重新触发预警
BaseBusinessWarn
warn
=
warningService
.
createWarn
(
"合同"
,
contract
.
getUuid
(
ContractConstant
.
CONTRACT_ID
),
ContractWarnConst
.
warningTarget2
);
warn
.
setWarningCalculate
(
new
ContractExpireWarningCalculator
());
warn
.
warn
();
List
<
KObject
>
wss
=
warningService
.
queryWarnSettings
(
ContractWarnConst
.
billType
,
contract
.
getUuid
(
ContractConstant
.
CONTRACT_ID
),
null
);
for
(
KObject
ws
:
wss
){
String
memo
=
ws
.
getString
(
WarnSettingConstant
.
memo
);
memo
=
memo
.
replaceAll
(
oldContract
.
getUuid
(
CommonConstants
.
ID
).
toString
(),
contract
.
getUuid
(
CommonConstants
.
ID
).
toString
());
ws
.
set
(
WarnSettingConstant
.
memo
,
memo
);
contractInfoDao
.
update
(
ws
);
}
//合同审批通过后,自动新增砂石余量预警设置---变更需要新旧对比,原有的不动,少了的种类废弃预警设置(按理说不可能有),多了的种类新建设置
//TODO
...
...
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