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
bca0a163
Commit
bca0a163
authored
Apr 22, 2021
by
王衍超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
预警功能完善;
parent
9dc22999
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
505 additions
and
237 deletions
+505
-237
WarnStateEnum.java
...in/java/com/xyst/dinas/biz/enumeration/WarnStateEnum.java
+2
-2
SandMiningAreaServiceImpl.java
...dinas/biz/internal/service/SandMiningAreaServiceImpl.java
+1
-1
WarnSettingReq.java
.../main/java/com/xyst/dinas/biz/request/WarnSettingReq.java
+31
-2
BaseBusinessWarn.java
...c/main/java/com/xyst/dinas/biz/warn/BaseBusinessWarn.java
+12
-12
IWarningCalculator.java
...main/java/com/xyst/dinas/biz/warn/IWarningCalculator.java
+10
-5
WarnExeRecord.java
.../src/main/java/com/xyst/dinas/biz/warn/WarnExeRecord.java
+3
-3
WarnSetting.java
...iz/src/main/java/com/xyst/dinas/biz/warn/WarnSetting.java
+5
-8
WarnSettingConstant.java
...ain/java/com/xyst/dinas/biz/warn/WarnSettingConstant.java
+17
-3
WarnSettingEntity.java
.../main/java/com/xyst/dinas/biz/warn/WarnSettingEntity.java
+14
-8
WarnTargetTypeEnum.java
...main/java/com/xyst/dinas/biz/warn/WarnTargetTypeEnum.java
+7
-13
WarningServiceImpl.java
...main/java/com/xyst/dinas/biz/warn/WarningServiceImpl.java
+57
-42
WarnSettingDao.java
...main/java/com/xyst/dinas/biz/warn/dao/WarnSettingDao.java
+22
-13
WarningService.java
.../java/com/xyst/dinas/biz/warn/service/WarningService.java
+2
-2
SandMiningAreaController.java
...java/com/xyst/dinas/biz/web/SandMiningAreaController.java
+2
-2
WarnSettingController.java
...in/java/com/xyst/dinas/biz/web/WarnSettingController.java
+21
-6
WarnSetting.mk
...rc/main/model/com/xyst/dinas/biz/datamodel/WarnSetting.mk
+3
-0
WarningExe.mk
...src/main/model/com/xyst/dinas/biz/datamodel/WarningExe.mk
+2
-2
WarnSetting.jmx
...in/resources/com/xyst/dinas/biz/datamodel/WarnSetting.jmx
+23
-0
WarningExe.jmx
...ain/resources/com/xyst/dinas/biz/datamodel/WarningExe.jmx
+3
-7
WarnSetting.hbm.xml
...t.dinas.biz/src/main/resources/config/WarnSetting.hbm.xml
+3
-0
WarningExe.hbm.xml
...st.dinas.biz/src/main/resources/config/WarningExe.hbm.xml
+2
-2
ContractConfiguration.java
...com/xyst/dinas/contract/config/ContractConfiguration.java
+19
-0
ContractConstant.java
...va/com/xyst/dinas/contract/constant/ContractConstant.java
+6
-0
ContractServiceImpl.java
.../dinas/contract/internal/service/ContractServiceImpl.java
+10
-9
ContractWarnServiceImpl.java
...as/contract/internal/service/ContractWarnServiceImpl.java
+5
-40
AdvanceBalanceWarningCalculator.java
.../dinas/contract/warn/AdvanceBalanceWarningCalculator.java
+42
-0
ContractExpireWarningCalculator.java
.../dinas/contract/warn/ContractExpireWarningCalculator.java
+42
-0
ContractWarnConst.java
.../java/com/xyst/dinas/contract/warn/ContractWarnConst.java
+26
-0
DinasCountWarningCalculate.java
.../xyst/dinas/contract/warn/DinasCountWarningCalculate.java
+2
-2
DinasCountWarningCalculator.java
...xyst/dinas/contract/warn/DinasCountWarningCalculator.java
+64
-0
ContractWarnController.java
...a/com/xyst/dinas/contract/web/ContractWarnController.java
+3
-48
SandAreaDinasCountWarningCalculate.java
...duction/processor/SandAreaDinasCountWarningCalculate.java
+2
-2
SalesConfiguration.java
.../java/com/xyst/dinas/sales/config/SalesConfiguration.java
+6
-0
StockAmountWarnCalculator.java
...xyst/dinas/sales/processor/StockAmountWarnCalculator.java
+36
-0
SalesPlanController.java
...in/java/com/xyst/dinas/sales/web/SalesPlanController.java
+0
-3
No files found.
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/enumeration/WarnStateEnum.java
View file @
bca0a163
...
...
@@ -6,9 +6,9 @@ package com.xyst.dinas.biz.enumeration;
public
enum
WarnStateEnum
{
/**
*
未结束
*
执行中
*/
NOT_OVER
(
0
),
EXECUTING
(
0
),
/**
* 已结束
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/internal/service/SandMiningAreaServiceImpl.java
View file @
bca0a163
...
...
@@ -80,7 +80,7 @@ public class SandMiningAreaServiceImpl implements SandMiningAreaService {
warnSetting
.
setBillType
(
WarnSettingConstant
.
SAND_MINING_AREA_BILL_TYPE
);
warnSetting
.
setBillId
(
kobject
.
getUuid
(
"id"
));
warnSetting
.
setTarget
(
WarnSettingConstant
.
SAND_MINING_AREA_WARN_TARGET
);
warnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
NUMBER_TYPE
.
getCod
e
());
warnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
NUMBER_TYPE
.
nam
e
());
warnSetting
.
setOpen
(
false
);
warnSetting
.
setMemo
(
getAreaWarningInfo
(
kobject
));
warningSettingService
.
insertWarnSetting
(
warnSetting
);
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/request/
UpdateWarnSetting
.java
→
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/request/
WarnSettingReq
.java
View file @
bca0a163
...
...
@@ -3,20 +3,49 @@ package com.xyst.dinas.biz.request;
import
java.util.List
;
import
java.util.UUID
;
public
class
UpdateWarnSetting
{
public
class
WarnSettingReq
{
private
UUID
id
;
private
UUID
version
;
private
String
billType
;
private
UUID
billId
;
private
String
target
;
private
String
targetType
;
private
String
max
;
private
String
min
;
private
String
max
;
private
String
warnCalculator
;
private
List
<
UUID
>
personnel
;
private
String
memo
;
private
Boolean
isOpen
;
public
String
getBillType
()
{
return
billType
;
}
public
void
setBillType
(
String
billType
)
{
this
.
billType
=
billType
;
}
public
String
getTargetType
()
{
return
targetType
;
}
public
void
setTargetType
(
String
targetType
)
{
this
.
targetType
=
targetType
;
}
public
String
getWarnCalculator
()
{
return
warnCalculator
;
}
public
void
setWarnCalculator
(
String
warnCalculator
)
{
this
.
warnCalculator
=
warnCalculator
;
}
public
Boolean
isOpen
()
{
return
isOpen
;
}
public
void
setOpen
(
Boolean
isOpen
)
{
this
.
isOpen
=
isOpen
;
}
public
UUID
getId
()
{
return
id
;
}
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/BaseBusinessWarn.java
View file @
bca0a163
...
...
@@ -29,7 +29,9 @@ import com.xyst.dinas.biz.warn.service.WarningService;
/**
* 业务预警基类
*
*
* 别动我代码!!!
*
* @author Jackpot
* @date 2021年3月26日
*/
...
...
@@ -47,7 +49,7 @@ public class BaseBusinessWarn {
/** 预警设置ID*/
protected
UUID
warnSettingId
;
private
IWarningCalculat
e
warningCalculate
;
private
IWarningCalculat
or
warningCalculate
;
private
WarningService
warningSettingService
;
...
...
@@ -90,7 +92,7 @@ public class BaseBusinessWarn {
}
/** 计算是否预警*/
public
final
void
setWarningCalculate
(
IWarningCalculat
e
warningCalculate
)
{
public
final
void
setWarningCalculate
(
IWarningCalculat
or
warningCalculate
)
{
this
.
warningCalculate
=
warningCalculate
;
}
...
...
@@ -108,11 +110,12 @@ public class BaseBusinessWarn {
boolean
isWarning
=
false
;
WarnSetting
warnSetting
=
getWarnSetting
();
if
(
warnSetting
==
null
)
return
false
;
//|| !warnSetting.isOpen()
if
(
warningCalculate
==
null
&&
warnSetting
.
warnCalculator
()!=
null
)
{
warningCalculate
=
Amino
.
getApplicationMetadataContext
().
getBean
(
warnSetting
.
warnCalculator
(),
IWarningCalculator
.
class
);
}
Assert
.
notNull
(
warningCalculate
,
"The warningCalculate must not be null!"
);
//计算业务实际的值, 与预警设置中的值做比较, 计算是否预警
isWarning
=
warningCalculate
.
isWarning
(
warnSetting
);
// if(!isWarning) isNotice= false;
//记录预警日志
UUID
warnSettingId
=
warnSetting
.
getSettingId
();
WarnExeRecord
warnExeRecord
=
warningSettingService
.
queryWarnExeRecord
(
warnSettingId
);
...
...
@@ -128,16 +131,13 @@ public class BaseBusinessWarn {
Date
currentTime
=
new
Date
();
warnExeRecord
.
setRecentlyTime
(
currentTime
);
warnExeRecord
.
setActualValue
(
warningCalculate
.
getActualValue
());
if
(!
isWarning
)
{
//2.1 如果没有触发预警,则结束该预警记录
//如果预警已经结束,则不修改
if
((
WarnStateEnum
.
OVER
.
getValue
()+
""
).
equals
(
warnExeRecord
.
getWarnState
())){
return
true
;
}
if
(!
isWarning
)
{
//2.1 如果没有触发预警,则结束该预警记录
warnExeRecord
.
setEndTime
(
currentTime
);
warnExeRecord
.
setWarnState
(
WarnStateEnum
.
OVER
.
getValue
()
+
""
);
warnExeRecord
.
setWarnState
(
WarnStateEnum
.
OVER
.
getValue
());
}
warningSettingService
.
updateWarnExe
(
warnExeRecord
);
}
//通知人员
String
[]
noticePerson
=
warnSetting
.
getPersonnel
();
String
message
=
warningCalculate
.
warnMessage
();
try
{
...
...
@@ -152,7 +152,7 @@ public class BaseBusinessWarn {
private
WarnExeRecord
createWarnExeRecord
(
WarnSetting
warnSetting
)
{
WarnExeRecord
warnExeRecord
=
new
WarnExeRecord
();
Date
currentTime
=
new
Date
();
warnExeRecord
.
setWarnState
(
WarnStateEnum
.
NOT_OVER
.
getValue
()+
""
);
warnExeRecord
.
setWarnState
(
WarnStateEnum
.
EXECUTING
.
getValue
()
);
warnExeRecord
.
setStartTime
(
currentTime
);
warnExeRecord
.
setRecentlyTime
(
currentTime
);
warnExeRecord
.
setTarget
(
warnSetting
.
getTarget
());
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/IWarningCalculat
e
.java
→
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/IWarningCalculat
or
.java
View file @
bca0a163
package
com
.
xyst
.
dinas
.
biz
.
warn
;
/**
* 预警计算器
*
* 预警计算器<br/>
*
* 预警计算器的实现分为两类:<br/>
* 1. 注册为Bean, 并且持久化到预警设置中的预警计算器; 使用场景: 新增/修改预警设置,手动触发预警以及业务数据变化实时触发预警;<br/>
* 2. 轻量级预警计算器; (不需要注册为Bean,不需要持久化) 使用场景:业务数据变化实时触发预警<br/>
*
* 注: 因为轻量级预警计算器不需要再次查询业务实时数据,所以更适合实时触发预警的场景;<br/>
*
* @author Jackpot
* @date 2021年3月30日
*/
public
interface
IWarningCalculat
e
{
public
interface
IWarningCalculat
or
{
/**
* 计算是否预警
...
...
@@ -26,7 +32,6 @@ public interface IWarningCalculate {
*/
String
getActualValue
();
//boolean isRepeat();重复执行
//重复执行
}
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/WarnExeRecord.java
View file @
bca0a163
...
...
@@ -18,7 +18,7 @@ public class WarnExeRecord {
private
Date
recentlyTime
;
private
UUID
warnSettingId
;
private
String
warnState
;
private
Integer
warnState
;
private
UUID
billId
;
private
String
target
;
...
...
@@ -72,10 +72,10 @@ public class WarnExeRecord {
public
void
setWarnSettingId
(
UUID
warnSettingId
)
{
this
.
warnSettingId
=
warnSettingId
;
}
public
String
getWarnState
()
{
public
Integer
getWarnState
()
{
return
warnState
;
}
public
void
setWarnState
(
String
warnState
)
{
public
void
setWarnState
(
Integer
warnState
)
{
this
.
warnState
=
warnState
;
}
public
UUID
getBillId
()
{
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/WarnSetting.java
View file @
bca0a163
package
com
.
xyst
.
dinas
.
biz
.
warn
;
import
java.util.List
;
import
java.util.UUID
;
/**
...
...
@@ -13,12 +12,6 @@ import java.util.UUID;
*/
public
interface
WarnSetting
{
//触发时机
/** 预警开关:是否预警*/
boolean
isOpen
();
/** 预警设置ID*/
UUID
getSettingId
();
...
...
@@ -39,11 +32,15 @@ public interface WarnSetting {
/** 阀值下限*/
String
getMin
();
/** 人员*/
/**
通知
人员*/
String
[]
getPersonnel
();
/** 备注*/
String
getMemo
();
/** 预警开关:是否预警*/
boolean
isOpen
();
/** 预警计算器: Bean标识*/
String
warnCalculator
();
}
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/WarnSettingConstant.java
View file @
bca0a163
...
...
@@ -10,12 +10,26 @@ public class WarnSettingConstant {
/** 实体名:预警执行记录 */
public
static
final
String
ENTITY_WARNINGEXE
=
"com.xyst.dinas.biz.datamodel.WarningExe"
;
/** 预警结束时间 */
public
static
final
String
END_TIME
=
"endTime"
;
/** 预警设置ID */
public
static
final
String
WARN_SETTING
=
"warnSetting"
;
/** 预警开始时间 */
public
static
final
String
START_TIME
=
"startTime"
;
/** 最近预警时间 */
public
static
final
String
RECENTLY_TIME
=
"recentlyTime"
;
/** 预警结束时间 */
public
static
final
String
END_TIME
=
"endTime"
;
/** 预警记录状态 */
public
static
final
String
WARN_STATE
=
"warnState"
;
/** 实际值 */
public
static
final
String
ACTUAL_VALUE
=
"actualValue"
;
/** 预警计算器 */
public
static
final
String
warnCalculator
=
"warnCalculator"
;
/** 预警开关 */
public
static
final
String
isOpen
=
"isOpen"
;
/** 预警阀值下限 */
public
static
final
String
min
=
"min"
;
/** 预警阀值上限 */
public
static
final
String
max
=
"max"
;
/**
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/WarnSettingEntity.java
View file @
bca0a163
...
...
@@ -2,23 +2,21 @@ package com.xyst.dinas.biz.warn;
import
java.util.UUID
;
public
class
WarnSettingEntity
implements
WarnSetting
{
public
class
WarnSettingEntity
implements
WarnSetting
{
private
UUID
settingId
;
private
String
billType
;
private
UUID
billId
;
private
String
target
;
private
String
targetType
;
private
String
max
;
private
String
min
;
private
String
warnCalculator
;
private
String
[]
personnel
;
private
String
memo
;
private
boolean
isOpen
;
private
String
memo
;
public
String
getTargetType
()
{
return
targetType
;
}
...
...
@@ -83,7 +81,6 @@ public class WarnSettingEntity implements WarnSetting{
this
.
min
=
min
;
}
public
String
[]
getPersonnel
()
{
return
personnel
;
}
...
...
@@ -100,5 +97,14 @@ public class WarnSettingEntity implements WarnSetting{
this
.
isOpen
=
isOpen
;
}
public
void
setWarnCalculator
(
String
warnCalculator
)
{
this
.
warnCalculator
=
warnCalculator
;
}
@Override
public
String
warnCalculator
()
{
return
warnCalculator
;
}
}
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/WarnTargetTypeEnum.java
View file @
bca0a163
...
...
@@ -11,44 +11,38 @@ public enum WarnTargetTypeEnum {
/**
* 整数
*/
INT_TYPE
(
"
INT_TYPE"
,
"
整数"
),
INT_TYPE
(
"整数"
),
/**
* 小数
*/
NUMBER_TYPE
(
"
NUMBER_TYPE"
,
"
小数"
),
NUMBER_TYPE
(
"小数"
),
/**
* 日期
*/
DATE_TYPE
(
"
DATE_TYPE"
,
"
日期"
),
DATE_TYPE
(
"日期"
),
/**
* 时间
*/
TIME_TYPE
(
"
TIME_TYPE"
,
"
时间"
),
TIME_TYPE
(
"时间"
),
/**
* 日期时间
*/
DATE_TIME_TYPE
(
"
DATE_TIME_TYPE"
,
"
日期时间"
),
DATE_TIME_TYPE
(
"日期时间"
),
/**
* 布尔
*/
BOOL_TYPE
(
"
BOOL_TYPE"
,
"
布尔"
),
BOOL_TYPE
(
"布尔"
),
;
String
code
;
String
name
;
WarnTargetTypeEnum
(
String
code
,
String
name
)
{
this
.
code
=
code
;
WarnTargetTypeEnum
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getCode
()
{
return
code
;
}
public
String
getName
()
{
return
name
;
}
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/WarningServiceImpl.java
View file @
bca0a163
...
...
@@ -16,7 +16,7 @@ import com.beecode.bcp.type.KObject;
import
com.beecode.bcp.type.json.JSONObjectUtils
;
import
com.beecode.inz.common.BaseConstants
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.xyst.dinas.biz.request.
UpdateWarnSetting
;
import
com.xyst.dinas.biz.request.
WarnSettingReq
;
import
com.xyst.dinas.biz.warn.dao.WarnSettingDao
;
import
com.xyst.dinas.biz.warn.service.WarningService
;
...
...
@@ -27,7 +27,8 @@ public class WarningServiceImpl implements WarningService{
private
WarnSettingDao
warnSettingDao
;
/**
* 新增预警设置
* 新增预警设置<br/>
* 自动触发预警
*/
@Override
public
UUID
insertWarnSetting
(
WarnSetting
warnSetting
)
{
...
...
@@ -38,7 +39,42 @@ public class WarningServiceImpl implements WarningService{
object
.
set
(
BaseConstants
.
CREATE_TIME
,
LocalDateTime
.
now
());
object
.
set
(
BaseConstants
.
DEL
,
false
);
object
.
set
(
BaseConstants
.
DISCARD
,
false
);
return
warnSettingDao
.
create
(
object
);
object
.
set
(
WarnSettingConstant
.
isOpen
,
warnSetting
.
isOpen
());
object
.
set
(
WarnSettingConstant
.
warnCalculator
,
warnSetting
.
warnCalculator
());
UUID
warSettingId
=
warnSettingDao
.
create
(
object
);
//新增后触发预警
BaseBusinessWarn
baseBusinessWarn
=
new
BaseBusinessWarn
(
warSettingId
);
baseBusinessWarn
.
warn
();
return
warSettingId
;
}
/**
* 更新预警设置<br/>
* 自动触发预警
*/
@Override
public
void
updateWarnSetting
(
WarnSettingReq
warnSetting
)
{
UUID
warSettingId
=
warnSetting
.
getId
();
Assert
.
notNull
(
warSettingId
,
"The warSettingId must not be null"
);
KObject
warSettingIdObj
=
warnSettingDao
.
queryWarnSettingById
(
warSettingId
);
List
<
UUID
>
personnel
=
warnSetting
.
getPersonnel
();
if
(
personnel
!=
null
)
{
String
personnelStr
=
UuidListToString
(
personnel
);
warSettingIdObj
.
set
(
"personnel"
,
personnelStr
);
}
String
min
=
warnSetting
.
getMin
();
if
(
min
!=
null
)
warSettingIdObj
.
set
(
WarnSettingConstant
.
min
,
min
);
String
max
=
warnSetting
.
getMax
();
if
(
max
!=
null
)
warSettingIdObj
.
set
(
WarnSettingConstant
.
max
,
max
);
Boolean
isOpen
=
warnSetting
.
isOpen
();
if
(
isOpen
!=
null
)
warSettingIdObj
.
set
(
WarnSettingConstant
.
isOpen
,
isOpen
);
warnSettingDao
.
update
(
warSettingIdObj
);
//修改后触发预警
BaseBusinessWarn
baseBusinessWarn
=
new
BaseBusinessWarn
(
warSettingId
);
baseBusinessWarn
.
warn
();
}
/**
...
...
@@ -52,14 +88,28 @@ public class WarningServiceImpl implements WarningService{
KClass
type
=
Amino
.
getApplicationMetadataContext
().
getBean
(
WarnSettingConstant
.
ENTITY_WARNINGEXE
,
KClass
.
class
);
JsonNode
json
=
JSONObjectUtils
.
toJson
(
warnExeRecord
);
KObject
object
=
JSONObjectUtils
.
toObject
(
json
,
type
);
object
.
set
(
"startTime"
,
warnExeRecord
.
getStartTime
());
object
.
set
(
"recentlyTime"
,
warnExeRecord
.
getRecentlyTime
());
object
.
set
(
WarnSettingConstant
.
START_TIME
,
warnExeRecord
.
getStartTime
());
object
.
set
(
WarnSettingConstant
.
RECENTLY_TIME
,
warnExeRecord
.
getRecentlyTime
());
UUID
warnSettingId
=
warnExeRecord
.
getWarnSettingId
();
KObject
warnSettingObj
=
warnSettingDao
.
queryWarnSettingById
(
warnSettingId
);
object
.
set
(
"warnSetting"
,
warnSettingObj
);
object
.
set
(
WarnSettingConstant
.
WARN_SETTING
,
warnSettingObj
);
object
.
set
(
WarnSettingConstant
.
WARN_STATE
,
warnExeRecord
.
getWarnState
());
object
.
set
(
WarnSettingConstant
.
ACTUAL_VALUE
,
warnExeRecord
.
getActualValue
());
return
warnSettingDao
.
create
(
object
);
}
@Override
public
void
updateWarnExe
(
WarnExeRecord
warnExeRecord
)
{
KClass
type
=
Amino
.
getApplicationMetadataContext
().
getBean
(
WarnSettingConstant
.
ENTITY_WARNINGEXE
,
KClass
.
class
);
JsonNode
json
=
JSONObjectUtils
.
toJson
(
warnExeRecord
);
KObject
object
=
JSONObjectUtils
.
toObject
(
json
,
type
);
object
.
set
(
"recentlyTime"
,
warnExeRecord
.
getRecentlyTime
());
object
.
set
(
"endTime"
,
warnExeRecord
.
getEndTime
());
object
.
set
(
"warnState"
,
warnExeRecord
.
getWarnState
());
object
.
set
(
"actualValue"
,
warnExeRecord
.
getActualValue
());
warnSettingDao
.
update
(
object
);
}
/**
* 结束一条预警设置的预警执行记录
* @param warnSettingId
...
...
@@ -94,7 +144,7 @@ public class WarningServiceImpl implements WarningService{
@Override
public
void
ignoreWarnExeRecord
(
UUID
id
)
{
KObject
kObject
=
warnSettingDao
.
queryWarningExeById
(
id
);
kObject
.
set
(
WarnSettingConstant
.
WARN_STATE
,
WarnStateEnum
.
IGNORE
.
getValue
()
+
""
);
kObject
.
set
(
WarnSettingConstant
.
WARN_STATE
,
WarnStateEnum
.
IGNORE
.
getValue
());
warnSettingDao
.
update
(
kObject
);
}
...
...
@@ -103,19 +153,6 @@ public class WarningServiceImpl implements WarningService{
return
warnSettingDao
.
warnRecodeGroupInfo
(
regionalCompanyIds
,
targets
);
}
@Override
public
void
updateWarnExe
(
WarnExeRecord
warnExeRecord
)
{
KClass
type
=
Amino
.
getApplicationMetadataContext
().
getBean
(
WarnSettingConstant
.
ENTITY_WARNINGEXE
,
KClass
.
class
);
JsonNode
json
=
JSONObjectUtils
.
toJson
(
warnExeRecord
);
KObject
object
=
JSONObjectUtils
.
toObject
(
json
,
type
);
object
.
set
(
"startTime"
,
warnExeRecord
.
getStartTime
());
object
.
set
(
"endTime"
,
warnExeRecord
.
getEndTime
());
object
.
set
(
"recentlyTime"
,
warnExeRecord
.
getRecentlyTime
());
UUID
warnSettingId
=
warnExeRecord
.
getWarnSettingId
();
KObject
warnSettingObj
=
warnSettingDao
.
queryWarnSettingById
(
warnSettingId
);
object
.
set
(
"warnSetting"
,
warnSettingObj
);
warnSettingDao
.
update
(
object
);
}
@Override
public
KObject
queryWarnSettingById
(
UUID
id
)
{
...
...
@@ -123,28 +160,6 @@ public class WarningServiceImpl implements WarningService{
return
KObj
;
}
@Override
public
void
updateWarnSetting
(
UpdateWarnSetting
warnSetting
)
{
UUID
warSettingId
=
warnSetting
.
getId
();
Assert
.
notNull
(
warSettingId
,
"The warSettingId must not be null"
);
KObject
warSettingIdObj
=
warnSettingDao
.
queryWarnSettingById
(
warSettingId
);
List
<
UUID
>
personnel
=
warnSetting
.
getPersonnel
();
if
(
personnel
!=
null
)
{
String
personnelStr
=
UuidListToString
(
personnel
);
warSettingIdObj
.
set
(
"personnel"
,
personnelStr
);
}
String
min
=
warnSetting
.
getMin
();
if
(
min
!=
null
)
{
warSettingIdObj
.
set
(
"min"
,
min
);
}
String
max
=
warnSetting
.
getMax
();
if
(
max
!=
null
)
{
warSettingIdObj
.
set
(
"max"
,
max
);
}
warnSettingDao
.
update
(
warSettingIdObj
);
}
/**
* 删除预警设置
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/dao/WarnSettingDao.java
View file @
bca0a163
package
com
.
xyst
.
dinas
.
biz
.
warn
.
dao
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
javax.persistence.Tuple
;
import
com.beecode.amino.core.Amino
;
import
com.beecode.bcp.type.KClass
;
import
com.beecode.bcp.type.json.JSONObjectUtils
;
import
com.beecode.inz.basis.util.JsonUtil
;
import
com.xyst.dinas.biz.constant.SandMiningAreaConstant
;
import
com.xyst.dinas.biz.enumeration.WarnStateEnum
;
import
org.apache.commons.lang3.StringUtils
;
import
org.hibernate.HibernateException
;
import
org.hibernate.Session
;
import
org.hibernate.criterion.*
;
import
org.hibernate.criterion.DetachedCriteria
;
import
org.hibernate.criterion.Disjunction
;
import
org.hibernate.criterion.MatchMode
;
import
org.hibernate.criterion.Projections
;
import
org.hibernate.criterion.Restrictions
;
import
org.hibernate.query.Query
;
import
org.hibernate.transform.Transformers
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.orm.hibernate5.HibernateCallback
;
import
org.springframework.orm.hibernate5.HibernateOperations
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.util.CollectionUtils
;
import
com.beecode.amino.core.Amino
;
import
com.beecode.bcp.type.KClass
;
import
com.beecode.bcp.type.KObject
;
import
com.xyst.dinas.biz.enumeration.WarnStateEnum
;
import
com.xyst.dinas.biz.warn.WarnExeRecord
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
import
com.xyst.dinas.biz.warn.WarnSettingConstant
;
import
com.xyst.dinas.biz.warn.WarnSettingEntity
;
import
org.springframework.util.CollectionUtils
;
@Repository
public
class
WarnSettingDao
{
...
...
@@ -62,7 +69,7 @@ public class WarnSettingDao {
LocalDateTime
now
=
LocalDateTime
.
now
();
warnRecord
.
set
(
WarnSettingConstant
.
END_TIME
,
now
);
warnRecord
.
set
(
WarnSettingConstant
.
RECENTLY_TIME
,
now
);
warnRecord
.
set
(
WarnSettingConstant
.
WARN_STATE
,
WarnStateEnum
.
OVER
.
getValue
()
+
""
);
warnRecord
.
set
(
WarnSettingConstant
.
WARN_STATE
,
WarnStateEnum
.
OVER
.
getValue
());
update
(
warnRecord
);
}
...
...
@@ -82,7 +89,7 @@ public class WarnSettingDao {
if
(
billId
!=
null
)
hql
.
append
(
" and billId =:billId"
);
if
(
target
!=
null
)
hql
.
append
(
" and target =:target"
);
Query
<
KObject
>
query
=
session
.
createQuery
(
hql
.
toString
(),
KObject
.
class
);
//KObject
Query
<
KObject
>
query
=
session
.
createQuery
(
hql
.
toString
(),
KObject
.
class
);
query
.
setParameter
(
"billType"
,
billType
);
if
(
billId
!=
null
)
query
.
setParameter
(
"billId"
,
billId
);
if
(
target
!=
null
)
query
.
setParameter
(
"target"
,
target
);
...
...
@@ -102,6 +109,7 @@ public class WarnSettingDao {
String
personnel
=
singleResult
.
getString
(
"personnel"
);
boolean
isOpen
=
singleResult
.
getBoolean
(
"isOpen"
);
String
memo
=
singleResult
.
getString
(
"memo"
);
String
warnCalculator
=
singleResult
.
getString
(
"warnCalculator"
);
WarnSettingEntity
warnSettingEntity
=
new
WarnSettingEntity
();
warnSettingEntity
.
setBillType
(
billType
);
...
...
@@ -112,6 +120,7 @@ public class WarnSettingDao {
warnSettingEntity
.
setMax
(
max
);
warnSettingEntity
.
setOpen
(
isOpen
);
warnSettingEntity
.
setMemo
(
memo
);
warnSettingEntity
.
setWarnCalculator
(
warnCalculator
);
String
[]
personnelArray
=
personnel
!=
null
&&
!
personnel
.
isEmpty
()
?
personnel
.
split
(
","
)
:
null
;
warnSettingEntity
.
setPersonnel
(
personnelArray
);
...
...
@@ -161,6 +170,7 @@ public class WarnSettingDao {
UUID
billId
=
singleResult
.
getUuid
(
"billId"
);
UUID
id
=
singleResult
.
getUuid
(
"id"
);
Long
version
=
singleResult
.
getLong
(
"version"
);
int
warnState
=
singleResult
.
getInt
(
"warnState"
);
WarnExeRecord
warnExeRecord
=
new
WarnExeRecord
();
warnExeRecord
.
setStartTime
(
startTime
);
...
...
@@ -173,10 +183,9 @@ public class WarnSettingDao {
warnExeRecord
.
setMemo
(
memo
);
warnExeRecord
.
setTarget
(
target
);
warnExeRecord
.
setBillId
(
billId
);
warnExeRecord
.
setWarnState
(
"warnState"
);
warnExeRecord
.
setWarnState
(
warnState
);
warnExeRecord
.
setId
(
id
);
warnExeRecord
.
setVersion
(
version
);
return
warnExeRecord
;
});
}
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/warn/service/WarningService.java
View file @
bca0a163
...
...
@@ -8,7 +8,7 @@ import org.springframework.lang.NonNull;
import
org.springframework.lang.Nullable
;
import
com.beecode.bcp.type.KObject
;
import
com.xyst.dinas.biz.request.
UpdateWarnSetting
;
import
com.xyst.dinas.biz.request.
WarnSettingReq
;
import
com.xyst.dinas.biz.warn.BaseBusinessWarn
;
import
com.xyst.dinas.biz.warn.WarnExeRecord
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
...
...
@@ -38,7 +38,7 @@ public interface WarningService {
* 更新预警设置
* @param warnSetting
*/
void
updateWarnSetting
(
UpdateWarnSetting
warnSetting
);
void
updateWarnSetting
(
WarnSettingReq
warnSetting
);
/**
* 删除预警设置
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/web/SandMiningAreaController.java
View file @
bca0a163
...
...
@@ -7,7 +7,7 @@ import com.beecode.bcp.type.KObject;
import
com.beecode.bcp.type.json.JSONObjectUtils
;
import
com.beecode.inz.basis.team.pojo.ResponseObj
;
import
com.xyst.dinas.biz.constant.SandMiningAreaConstant
;
import
com.xyst.dinas.biz.request.
UpdateWarnSetting
;
import
com.xyst.dinas.biz.request.
WarnSettingReq
;
import
com.xyst.dinas.biz.service.SandMiningAreaService
;
import
com.xyst.dinas.biz.warn.service.WarningService
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -130,7 +130,7 @@ public class SandMiningAreaController {
//更新预警设置
@PostMapping
(
"/warnSetting/update"
)
//采区预警设置更新
public
ResponseObj
updateWarnSettingPerson
(
@RequestBody
UpdateWarnSetting
updateWarnSetting
)
{
public
ResponseObj
updateWarnSettingPerson
(
@RequestBody
WarnSettingReq
updateWarnSetting
)
{
UUID
settingId
=
updateWarnSetting
.
getId
();
warningSettingService
.
updateWarnSetting
(
updateWarnSetting
);
...
...
backend/xyst.dinas.biz/src/main/java/com/xyst/dinas/biz/web/WarnSettingController.java
View file @
bca0a163
...
...
@@ -8,11 +8,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.util.Assert
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.beecode.bcp.type.KObject
;
import
com.beecode.inz.basis.team.pojo.ResponseObj
;
import
com.xyst.dinas.biz.request.WarnSettingReq
;
import
com.xyst.dinas.biz.warn.WarnSettingEntity
;
import
com.xyst.dinas.biz.warn.service.WarningService
;
/**
...
...
@@ -27,13 +31,22 @@ public class WarnSettingController {
@Autowired
private
WarningService
warningService
;
//新增预警设置
@PostMapping
(
"/warnsetting/insert"
)
public
Object
insertWarnSetting
(
@RequestBody
WarnSettingEntity
warnSettingEntity
)
{
warningService
.
insertWarnSetting
(
warnSettingEntity
);
return
ResponseObj
.
success
(
"预警设置新增成功"
);
}
//更新预警设置
//
@PostMapping("/warnsetting/update")
// public String updateWarnSettingPerson(@RequestBody UpdateWarnSetting warnSetting
) {
//
// warningSettingService.updateWarnSetting(warnSetting
);
// return "success"
;
//
}
@PostMapping
(
"/warnsetting/update"
)
public
Object
updateWarnSetting
(
@RequestBody
WarnSettingReq
warnSettingReq
)
{
warningService
.
updateWarnSetting
(
warnSettingReq
);
return
ResponseObj
.
success
(
"预警设置更新成功"
)
;
}
//查询一条预警设置
@GetMapping
(
"/warnsetting/{id}"
)
...
...
@@ -53,4 +66,6 @@ public class WarnSettingController {
}
backend/xyst.dinas.biz/src/main/model/com/xyst/dinas/biz/datamodel/WarnSetting.mk
View file @
bca0a163
...
...
@@ -35,6 +35,9 @@
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='isOpen' columnName='is_open' title='是否开启' type='boolean' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='100'></annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='warnCalculator' columnName='warn_calculator' title='预警计算器' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='100'></annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='personnel' columnName='personnel' title='人员' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='1000'></annotation>
</attribute>
...
...
backend/xyst.dinas.biz/src/main/model/com/xyst/dinas/biz/datamodel/WarningExe.mk
View file @
bca0a163
...
...
@@ -27,8 +27,8 @@
<annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'></annotation>
<annotation id='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'></annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='warnState' columnName='warn_state' title='预警状态' type='
string
' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='
100
'></annotation>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='warnState' columnName='warn_state' title='预警状态' type='
int
' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='
6
'></annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='message' columnName='message' title='预警消息' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='100'></annotation>
...
...
backend/xyst.dinas.biz/src/main/resources/com/xyst/dinas/biz/datamodel/WarnSetting.jmx
View file @
bca0a163
...
...
@@ -173,6 +173,29 @@
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>
bcp.type.constraint.StringLength
</m:type>
<m:value>
100
</m:value>
</m:annotation>
<m:annotation>
<m:type>
javax.persistence.Column
</m:type>
<m:properties>
<m:property>
<m:key>
name
</m:key>
<m:value>
warn_calculator
</m:value>
</m:property>
</m:properties>
</m:annotation>
</m:annotations>
<m:id>
cbb5b983-299b-4259-97d9-6470651bb18b
</m:id>
<m:name>
warnCalculator
</m:name>
<m:title>
预警计算器
</m:title>
<m:type>
string
</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>
javax.persistence.Column
</m:type>
<m:properties>
<m:property>
...
...
backend/xyst.dinas.biz/src/main/resources/com/xyst/dinas/biz/datamodel/WarningExe.jmx
View file @
bca0a163
...
...
@@ -123,10 +123,6 @@
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>
bcp.type.constraint.StringLength
</m:type>
<m:value>
100
</m:value>
</m:annotation>
<m:annotation>
<m:type>
javax.persistence.Column
</m:type>
<m:properties>
<m:property>
...
...
@@ -136,13 +132,13 @@
</m:properties>
</m:annotation>
</m:annotations>
<m:id>
cbb5b983-299b-4259-97d9-6470651bb18b
</m:id>
<m:id>
0933ceb1-f327-4372-a316-cffa1c80991a
</m:id>
<m:name>
warnState
</m:name>
<m:title>
预警状态
</m:title>
<m:type>
string
</m:type>
<m:type>
int
</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
...
...
backend/xyst.dinas.biz/src/main/resources/config/WarnSetting.hbm.xml
View file @
bca0a163
...
...
@@ -64,6 +64,9 @@
<property
name=
"isOpen"
type=
"boolean"
not-null=
"false"
>
<column
name=
"is_open"
length=
"1"
></column>
</property>
<property
name=
"warnCalculator"
type=
"nstring"
not-null=
"false"
>
<column
name=
"warn_calculator"
length=
"100"
></column>
</property>
<property
name=
"personnel"
type=
"nstring"
not-null=
"false"
>
<column
name=
"personnel"
length=
"1000"
></column>
...
...
backend/xyst.dinas.biz/src/main/resources/config/WarningExe.hbm.xml
View file @
bca0a163
...
...
@@ -25,8 +25,8 @@
<many-to-one
name=
"warnSetting"
entity-name=
"com.xyst.dinas.biz.datamodel.WarnSetting"
fetch=
"select"
>
<column
name=
"warn_setting_id"
not-null=
"false"
/>
</many-to-one>
<property
name=
"warnState"
type=
"
nstring
"
not-null=
"false"
>
<column
name=
"warn_state"
length=
"
50
"
></column>
<property
name=
"warnState"
type=
"
int
"
not-null=
"false"
>
<column
name=
"warn_state"
length=
"
6
"
></column>
</property>
<property
name=
"message"
type=
"nstring"
not-null=
"false"
>
<column
name=
"message"
length=
"100"
></column>
...
...
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/config/ContractConfiguration.java
View file @
bca0a163
...
...
@@ -23,6 +23,9 @@ import com.xyst.dinas.contract.service.ContractService;
import
com.xyst.dinas.contract.service.ContractWarnService
;
import
com.xyst.dinas.contract.task.ContractExpireCheckTask
;
import
com.xyst.dinas.contract.task.ContractExpireCheckTaskRegister
;
import
com.xyst.dinas.contract.warn.AdvanceBalanceWarningCalculator
;
import
com.xyst.dinas.contract.warn.ContractExpireWarningCalculator
;
import
com.xyst.dinas.contract.warn.DinasCountWarningCalculator
;
import
com.xyst.dinas.contract.web.ContractController
;
import
com.xyst.dinas.contract.web.ContractWarnController
;
/**
...
...
@@ -134,4 +137,20 @@ public class ContractConfiguration {
public
ContractExpireCheckTask
contractExpireCheckTask
()
{
return
new
ContractExpireCheckTask
();
}
@Bean
(
"com.xyst.dinas.contract.warn.DinasCountWarningCalculator"
)
public
DinasCountWarningCalculator
dinasCountWarningCalculator
()
{
return
new
DinasCountWarningCalculator
();
}
@Bean
(
"com.xyst.dinas.contract.warn.AdvanceBalanceWarningCalculator"
)
public
AdvanceBalanceWarningCalculator
advanceBalanceWarningCalculator
()
{
return
new
AdvanceBalanceWarningCalculator
();
}
@Bean
(
"com.xyst.dinas.contract.warn.ContractExpireWarningCalculator"
)
public
ContractExpireWarningCalculator
contractExpireWarningCalculator
()
{
return
new
ContractExpireWarningCalculator
();
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/constant/ContractConstant.java
View file @
bca0a163
...
...
@@ -8,6 +8,9 @@ public class ContractConstant {
/** 实体名:合同表 */
public
static
final
String
ENTITY_CONTRACT
=
"com.xyst.dinas.contract.datamodel.Contract"
;
/** 实体名:合同子表 */
public
static
final
String
CONTRACT_DETAILS
=
"contractDetails"
;
/** 项目 */
public
static
final
String
PROJECT
=
"project"
;
/** 项目编号 */
...
...
@@ -42,6 +45,9 @@ public class ContractConstant {
public
static
final
String
CHANGE_REASON
=
"changeReason"
;
/** 砂石种类 */
public
static
final
String
dinasType
=
"dinasType"
;
/*********************** 工作流 *************************************/
...
...
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/internal/service/ContractServiceImpl.java
View file @
bca0a163
...
...
@@ -31,6 +31,7 @@ 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.ContractWarnConst
;
import
com.xyst.dinas.project.dao.ProjectFiledDao
;
import
com.xyst.dinas.project.dao.PurchaseSandCompanyDao
;
...
...
@@ -207,40 +208,40 @@ public class ContractServiceImpl implements ContractService {
//1.合同审批通过后,自动新增砂石余量预警设置
UUID
contractId
=
contract
.
getUuid
(
"id"
);
String
billType
=
"合同"
;
String
billType
=
ContractWarnConst
.
billType
;
String
contractBaseInfo
=
getContractBaseInfo
(
contract
);
List
<
KObject
>
detials
=
contract
.
get
(
"contractDetails"
).
toList
();
//
for
(
KObject
detail
:
detials
)
{
String
dinasTypeName
=
detail
.
get
(
"dinasType"
).
getString
(
"dinasTypeName"
);
WarnSettingEntity
warnSetting
=
new
WarnSettingEntity
();
warnSetting
.
setBillType
(
billType
);
warnSetting
.
setBillId
(
contractId
);
warnSetting
.
setTarget
(
dinasTypeName
);
warnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
NUMBER_TYPE
.
getCod
e
());
warnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
NUMBER_TYPE
.
nam
e
());
warnSetting
.
setOpen
(
true
);
warnSetting
.
setMemo
(
contractBaseInfo
);
warnSetting
.
setWarnCalculator
(
ContractWarnConst
.
dinasCountWarningCalculator
);
warningSettingService
.
insertWarnSetting
(
warnSetting
);
}
//2.自动新增一条合同到期预警设置
String
target2
=
"到期提醒(天)"
;
WarnSettingEntity
expireWarnSetting
=
new
WarnSettingEntity
();
expireWarnSetting
.
setBillType
(
billType
);
expireWarnSetting
.
setBillId
(
contractId
);
expireWarnSetting
.
setTarget
(
t
arget2
);
expireWarnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
INT_TYPE
.
getCod
e
());
expireWarnSetting
.
setTarget
(
ContractWarnConst
.
warningT
arget2
);
expireWarnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
INT_TYPE
.
nam
e
());
expireWarnSetting
.
setOpen
(
true
);
expireWarnSetting
.
setMemo
(
contractBaseInfo
);
expireWarnSetting
.
setWarnCalculator
(
ContractWarnConst
.
contractExpireWarningCalculator
);
warningSettingService
.
insertWarnSetting
(
expireWarnSetting
);
//3.自动新增一条合同预付款余额预警设置
String
target3
=
"预付款余额"
;
WarnSettingEntity
paymentWarnSetting
=
new
WarnSettingEntity
();
paymentWarnSetting
.
setBillType
(
billType
);
paymentWarnSetting
.
setBillId
(
contractId
);
paymentWarnSetting
.
setTarget
(
t
arget3
);
paymentWarnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
NUMBER_TYPE
.
getCod
e
());
paymentWarnSetting
.
setTarget
(
ContractWarnConst
.
warningT
arget3
);
paymentWarnSetting
.
setTargetType
(
WarnTargetTypeEnum
.
NUMBER_TYPE
.
nam
e
());
paymentWarnSetting
.
setOpen
(
true
);
paymentWarnSetting
.
setMemo
(
contractBaseInfo
);
paymentWarnSetting
.
setWarnCalculator
(
ContractWarnConst
.
advanceBalanceWarningCalculator
);
warningSettingService
.
insertWarnSetting
(
paymentWarnSetting
);
}
...
...
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/internal/service/ContractWarnServiceImpl.java
View file @
bca0a163
package
com
.
xyst
.
dinas
.
contract
.
internal
.
service
;
import
java.util.List
;
import
java.util.UUID
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
com.beecode.bcp.type.KObject
;
import
com.xyst.dinas.biz.warn.WarnSettingEntity
;
import
com.xyst.dinas.biz.warn.service.WarningService
;
import
com.xyst.dinas.contract.constant.ContractConstant
;
import
com.xyst.dinas.contract.enumeration.ContractStateEnum
;
import
com.xyst.dinas.contract.internal.dao.ContractInfoDao
;
import
com.xyst.dinas.contract.service.ContractWarnService
;
public
class
ContractWarnServiceImpl
implements
ContractWarnService
{
@Autowired
private
WarningService
warningSettingService
;
@Autowired
private
ContractInfoDao
contractInfoDao
;
/*
* @Autowired
private WarningService warningSettingService;
*
* @Autowired private ContractInfoDao contractInfoDao;
*/
// @Override
public
void
afterApproved
(
KObject
contract
)
{
contract
.
set
(
ContractConstant
.
CONTRACT_STATE
,
ContractStateEnum
.
EXECUTING
.
name
());
contractInfoDao
.
update
(
contract
);
//合同审批通过后,自动新增砂石余量预警设置
UUID
contractId
=
contract
.
getUuid
(
"id"
);
List
<
KObject
>
detials
=
contract
.
get
(
"contractDetail"
).
toList
();
//
for
(
KObject
detail
:
detials
)
{
String
dinasTypeName
=
detail
.
get
(
"dinasType"
).
getString
(
"dinasTypeName"
);
String
billType
=
"合同"
;
WarnSettingEntity
warnSetting
=
new
WarnSettingEntity
();
warnSetting
.
setBillType
(
billType
);
warnSetting
.
setBillId
(
contractId
);
warnSetting
.
setTarget
(
dinasTypeName
);
warnSetting
.
setOpen
(
true
);
warningSettingService
.
insertWarnSetting
(
warnSetting
);
}
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/warn/AdvanceBalanceWarningCalculator.java
0 → 100644
View file @
bca0a163
package
com
.
xyst
.
dinas
.
contract
.
warn
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
com.xyst.dinas.biz.warn.IWarningCalculator
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
import
com.xyst.dinas.contract.service.ContractService
;
/**
* 预付款余额 预警计算器
*
* @author Jackpot
* @date 2021年4月22日
*/
public
class
AdvanceBalanceWarningCalculator
implements
IWarningCalculator
{
private
double
advanceBalance
;
private
String
warnMessage
;
@Autowired
private
ContractService
contractService
;
@Override
public
boolean
isWarning
(
WarnSetting
warnSetting
)
{
//TODO
return
false
;
}
@Override
public
String
warnMessage
()
{
return
warnMessage
;
}
@Override
public
String
getActualValue
()
{
return
advanceBalance
+
""
;
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/warn/ContractExpireWarningCalculator.java
0 → 100644
View file @
bca0a163
package
com
.
xyst
.
dinas
.
contract
.
warn
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
com.xyst.dinas.biz.warn.IWarningCalculator
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
import
com.xyst.dinas.contract.service.ContractService
;
/**
* 合同过期提醒 预警计算器
*
* @author Jackpot
* @date 2021年4月22日
*/
public
class
ContractExpireWarningCalculator
implements
IWarningCalculator
{
private
double
advanceBalance
;
private
String
warnMessage
;
@Autowired
private
ContractService
contractService
;
@Override
public
boolean
isWarning
(
WarnSetting
warnSetting
)
{
//TODO
return
false
;
}
@Override
public
String
warnMessage
()
{
return
warnMessage
;
}
@Override
public
String
getActualValue
()
{
return
advanceBalance
+
""
;
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/warn/ContractWarnConst.java
0 → 100644
View file @
bca0a163
package
com
.
xyst
.
dinas
.
contract
.
warn
;
/**
* 合同砂石余量预警常量
*
* @author Jackpot
* @date 2021年4月22日
*/
public
class
ContractWarnConst
{
public
static
final
String
billType
=
"合同"
;
public
static
final
String
dinasCountWarningCalculator
=
"com.xyst.dinas.contract.warn.DinasCountWarningCalculator"
;
/** 预付款余额 预警计算器*/
public
static
final
String
advanceBalanceWarningCalculator
=
"com.xyst.dinas.contract.warn.AdvanceBalanceWarningCalculator"
;
/** 合同过期提醒 预警计算器*/
public
static
final
String
contractExpireWarningCalculator
=
"com.xyst.dinas.contract.warn.ContractExpireWarningCalculator"
;
/** 预警指标*/
public
static
final
String
warningTarget2
=
"到期提醒(天)"
;
/** 预警指标*/
public
static
final
String
warningTarget3
=
"预付款余额"
;
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/warn/DinasCountWarningCalculate.java
View file @
bca0a163
package
com
.
xyst
.
dinas
.
contract
.
warn
;
import
com.xyst.dinas.biz.warn.IWarningCalculat
e
;
import
com.xyst.dinas.biz.warn.IWarningCalculat
or
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
/**
...
...
@@ -9,7 +9,7 @@ import com.xyst.dinas.biz.warn.WarnSetting;
* @author Jackpot
* @date 2021年4月1日
*/
public
class
DinasCountWarningCalculate
implements
IWarningCalculat
e
{
public
class
DinasCountWarningCalculate
implements
IWarningCalculat
or
{
//砂石余量
private
double
dinsaCount
;
...
...
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/warn/DinasCountWarningCalculator.java
0 → 100644
View file @
bca0a163
package
com
.
xyst
.
dinas
.
contract
.
warn
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
com.beecode.bcp.type.KObject
;
import
com.xyst.dinas.biz.constant.DinasTypeConstant
;
import
com.xyst.dinas.biz.warn.IWarningCalculator
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
import
com.xyst.dinas.contract.constant.ContractConstant
;
import
com.xyst.dinas.contract.service.ContractService
;
/**
* 砂石余量预警计算器(新增/修改预警设置时使用)
*
* 需要注册为Bean, 把Bean的标识保存到预警设置中
* @author Jackpot
* @date 2021年4月22日
*/
public
class
DinasCountWarningCalculator
implements
IWarningCalculator
{
//砂石余量
private
double
dinasAmount
;
private
String
warnMessage
;
@Autowired
private
ContractService
contractService
;
@Override
public
boolean
isWarning
(
WarnSetting
warnSetting
)
{
String
min
=
warnSetting
.
getMin
();
String
target
=
warnSetting
.
getTarget
();
if
(
min
==
null
||
min
.
trim
().
length
()==
0
)
return
false
;
KObject
contract
=
contractService
.
queryContract
(
warnSetting
.
getBillId
());
List
<
KObject
>
details
=
contract
.
get
(
ContractConstant
.
CONTRACT_DETAILS
).
toList
();
for
(
KObject
detail
:
details
)
{
String
dinasTypeName
=
detail
.
get
(
ContractConstant
.
dinasType
).
getString
(
DinasTypeConstant
.
DINASTYPE_NAME
);
if
(
dinasTypeName
.
equalsIgnoreCase
(
target
))
{
//业务数据与设置的阀值做比较,计算是否预警
dinasAmount
=
detail
.
getDouble
(
ContractConstant
.
DINAS_AMOUNT
);
if
(
dinasAmount
<=
Double
.
valueOf
(
min
))
{
warnMessage
=
"["
+
target
+
"]"
+
"的当前余量为"
+
dinasAmount
+
",已不足"
+
min
+
"吨!"
;
return
true
;
}
}
}
return
false
;
}
@Override
public
String
warnMessage
()
{
return
warnMessage
;
}
@Override
public
String
getActualValue
()
{
return
dinasAmount
+
""
;
}
}
backend/xyst.dinas.contract/src/main/java/com/xyst/dinas/contract/web/ContractWarnController.java
View file @
bca0a163
...
...
@@ -5,18 +5,10 @@ import java.util.UUID;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.beecode.inz.basis.team.pojo.ResponseObj
;
import
com.beecode.xlib.runtime.Assert
;
import
com.xyst.dinas.biz.request.UpdateWarnSetting
;
import
com.xyst.dinas.biz.warn.BaseBusinessWarn
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
import
com.xyst.dinas.biz.warn.service.WarningService
;
import
com.xyst.dinas.contract.service.ContractService
;
import
com.xyst.dinas.contract.warn.DinasCountWarningCalculate
;
@RestController
public
class
ContractWarnController
{
...
...
@@ -26,53 +18,16 @@ public class ContractWarnController {
@Autowired
private
ContractService
contractService
;
@Autowired
private
WarningService
warningService
;
// @Autowired
// private WarningService warningService;
@PostMapping
(
"/contract/warn/fire"
)
public
void
warnFire
()
{
// 合同审批通过后,自动新增砂石余量预警设置
String
billType
=
"合同"
;
UUID
contractId
=
UUID
.
fromString
(
"b399f4a5-e446-439c-9601-177aad94b675"
);
String
target
=
"细砂2"
;
int
count
=
100
;
// 某种砂石余量
BaseBusinessWarn
contractBusinessWarn
=
warningService
.
createWarn
(
billType
,
contractId
,
target
);
contractBusinessWarn
.
setWarningCalculate
(
new
DinasCountWarningCalculate
(
count
));
contractBusinessWarn
.
warn
();
}
//查询一条预警设置
@GetMapping
(
"/contract/warnsetting/{id}"
)
public
Object
queryWarnSetting
(
@PathVariable
UUID
id
)
{
Assert
.
notNull
(
id
,
"The id must not be null"
);
return
contractService
.
queryWarnSettingById
(
id
);
}
//更新预警设置
@PostMapping
(
"/warnsetting/update"
)
// /contract
public
Object
updateWarnSettingPerson
(
@RequestBody
UpdateWarnSetting
updateWarnSetting
)
{
UUID
settingId
=
updateWarnSetting
.
getId
();
BaseBusinessWarn
contractBusinessWarn
=
warningService
.
createWarn
(
settingId
);
WarnSetting
warnSetting
=
contractBusinessWarn
.
getWarnSetting
();
String
minOld
=
warnSetting
.
getMin
()!=
null
?
warnSetting
.
getMin
():
""
;
String
min
=
updateWarnSetting
.
getMin
()!=
null
?
updateWarnSetting
.
getMin
():
""
;
warningService
.
updateWarnSetting
(
updateWarnSetting
);
if
(
minOld
.
equals
(
min
))
{
return
ResponseObj
.
success
(
"预警设置更新成功"
);
}
int
count
=
100
;
//查询合同中该砂石的余量
DinasCountWarningCalculate
dinasCountWarningCalculate
=
new
DinasCountWarningCalculate
(
count
);
contractBusinessWarn
.
setWarningCalculate
(
dinasCountWarningCalculate
);
contractBusinessWarn
.
warn
();
return
ResponseObj
.
success
(
"预警设置更新成功"
);
}
/**
* @Description: 根据合同查询预警设置中所有人员
* @param id
...
...
backend/xyst.dinas.production/src/main/java/com/xyst/dinas/production/processor/SandAreaDinasCountWarningCalculate.java
View file @
bca0a163
package
com
.
xyst
.
dinas
.
production
.
processor
;
import
com.xyst.dinas.biz.warn.IWarningCalculat
e
;
import
com.xyst.dinas.biz.warn.IWarningCalculat
or
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
/**
...
...
@@ -9,7 +9,7 @@ import com.xyst.dinas.biz.warn.WarnSetting;
* @author
* @date 2021年4月1日
*/
public
class
SandAreaDinasCountWarningCalculate
implements
IWarningCalculat
e
{
public
class
SandAreaDinasCountWarningCalculate
implements
IWarningCalculat
or
{
/**上岸量
*
...
...
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/config/SalesConfiguration.java
View file @
bca0a163
...
...
@@ -12,6 +12,7 @@ import com.xyst.dinas.sales.internal.service.NeedPlanServiceImpl;
import
com.xyst.dinas.sales.internal.service.SalesPlanServiceImpl
;
import
com.xyst.dinas.sales.processor.SalesPlanProcessor
;
import
com.xyst.dinas.sales.processor.SalesPlanTempProcessor
;
import
com.xyst.dinas.sales.processor.StockAmountWarnCalculator
;
import
com.xyst.dinas.sales.service.InventoryService
;
import
com.xyst.dinas.sales.service.NeedPlanService
;
import
com.xyst.dinas.sales.service.SalesPlanService
;
...
...
@@ -66,6 +67,11 @@ public class SalesConfiguration {
return
new
SalesPlanProcessor
();
}
@Bean
(
"com.xyst.dinas.sales.processor.StockAmountWarnCalculator"
)
public
StockAmountWarnCalculator
stockAmountWarnCalculator
()
{
return
new
StockAmountWarnCalculator
();
}
/***********需用计划******************/
...
...
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/processor/StockAmountWarnCalculator.java
0 → 100644
View file @
bca0a163
package
com
.
xyst
.
dinas
.
sales
.
processor
;
import
com.xyst.dinas.biz.warn.IWarningCalculator
;
import
com.xyst.dinas.biz.warn.WarnSetting
;
/**
* 库存砂石余量 预警计算器
*
* @author Jackpot
* @date 2021年4月22日
*/
public
class
StockAmountWarnCalculator
implements
IWarningCalculator
{
//砂石余量
private
double
stockAmount
;
private
String
warnMessage
;
@Override
public
boolean
isWarning
(
WarnSetting
warnSetting
)
{
//TODO
return
false
;
}
@Override
public
String
warnMessage
()
{
return
warnMessage
;
}
@Override
public
String
getActualValue
()
{
return
stockAmount
+
""
;
}
}
backend/xyst.dinas.sales/src/main/java/com/xyst/dinas/sales/web/SalesPlanController.java
View file @
bca0a163
...
...
@@ -130,9 +130,6 @@ public class SalesPlanController {
// return ResponseObj.success("success", salesPlanService.querySalesPlanDetailsByMasterIdWarehouse(UUID.fromString(saleaPlanId), UUID.fromString(stationId)));
// }
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
UUID
.
randomUUID
().
toString
());
}
@PostMapping
(
"/salesplan/modify"
)
...
...
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