Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
8408a007
Commit
8408a007
authored
Jun 28, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop_tzs_jyjc_rule' into develop_tzs_register
parents
f0238b27
5b7148e2
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
756 additions
and
107 deletions
+756
-107
CommonServiceImpl.java
...os/boot/module/jg/biz/service/impl/CommonServiceImpl.java
+1
-1
ReportAnalysisServiceImpl.java
...module/jg/biz/service/impl/ReportAnalysisServiceImpl.java
+2
-2
JyjcInspectionApplication.java
...oot/module/jyjc/api/entity/JyjcInspectionApplication.java
+6
-0
JyjcInspectionApplicationNoAcceptLog.java
...jyjc/api/entity/JyjcInspectionApplicationNoAcceptLog.java
+54
-0
InspectionCompanyType.java
...mos/boot/module/jyjc/api/enums/InspectionCompanyType.java
+21
-0
RequestTypeEnum.java
...join/amos/boot/module/jyjc/api/enums/RequestTypeEnum.java
+22
-0
JyjcInspectionApplicationNoAcceptLogMapper.java
...pi/mapper/JyjcInspectionApplicationNoAcceptLogMapper.java
+14
-0
InspectionEquipInfoModel.java
.../boot/module/jyjc/api/model/InspectionEquipInfoModel.java
+4
-0
JyjcInspectionApplicationModel.java
...module/jyjc/api/model/JyjcInspectionApplicationModel.java
+5
-0
JyjcInspectionApplicationNoAcceptLogModel.java
.../api/model/JyjcInspectionApplicationNoAcceptLogModel.java
+38
-0
IJyjcInspectionApplicationNoAcceptLogService.java
...service/IJyjcInspectionApplicationNoAcceptLogService.java
+9
-0
JyjcInspectionApplicationNoAcceptLogMapper.xml
...ces/mapper/JyjcInspectionApplicationNoAcceptLogMapper.xml
+5
-0
RuleActionHandler.java
...n/amos/boot/module/jyjc/biz/action/RuleActionHandler.java
+157
-35
JyjcInspectionApplicationController.java
...c/biz/controller/JyjcInspectionApplicationController.java
+49
-13
InspectionApplicationPushEventListener.java
...vent/listener/InspectionApplicationPushEventListener.java
+1
-1
InspectionOrgRefreshListener.java
...odule/jyjc/biz/listener/InspectionOrgRefreshListener.java
+78
-23
InspectionEquipInfo.java
...n/amos/boot/module/jyjc/biz/rule/InspectionEquipInfo.java
+20
-0
JyjcInspectionApplicationNoAcceptLogServiceImpl.java
...impl/JyjcInspectionApplicationNoAcceptLogServiceImpl.java
+34
-0
JyjcInspectionApplicationServiceImpl.java
...iz/service/impl/JyjcInspectionApplicationServiceImpl.java
+112
-17
JyjcOpeningApplicationServiceImpl.java
...c/biz/service/impl/JyjcOpeningApplicationServiceImpl.java
+25
-1
RuleCommonServiceImpl.java
...t/module/jyjc/biz/service/impl/RuleCommonServiceImpl.java
+71
-0
application.properties
...module-jyjc-biz/src/main/resources/application.properties
+2
-2
RegistrationInfo.java
...oin/amos/boot/module/ymt/api/entity/RegistrationInfo.java
+9
-0
FlowStatusEnum.java
...eejoin/amos/boot/module/ymt/api/enums/FlowStatusEnum.java
+6
-1
EquipTechParamBoilerMapper.xml
.../src/main/resources/mapper/EquipTechParamBoilerMapper.xml
+2
-2
EquipTechParamRidesMapper.xml
...i/src/main/resources/mapper/EquipTechParamRidesMapper.xml
+8
-8
EquipTechParamVesselMapper.xml
.../src/main/resources/mapper/EquipTechParamVesselMapper.xml
+1
-1
No files found.
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/CommonServiceImpl.java
View file @
8408a007
...
...
@@ -1893,7 +1893,7 @@ public class CommonServiceImpl implements ICommonService {
* 设备分类
*
* @param type 1,设备种类 2,设备类别 3,设备品种
* @return
*
.c
@return
*/
@Override
public
List
<
EquipmentCategory
>
equipmentClassification
(
String
type
)
{
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/ReportAnalysisServiceImpl.java
View file @
8408a007
...
...
@@ -172,7 +172,7 @@ public class ReportAnalysisServiceImpl implements IReportAnalysisService {
private
Long
countDocumentNum
(
List
<
JgBizCountDataBO
>
countDataBOList
,
int
code
,
JgBizCountDataDto
c
)
{
return
countDataBOList
.
stream
().
filter
(
d
->
Objects
.
equals
(
d
.
getReceiveCompanyCode
(),
c
.
getReceiveCompanyCode
())
&&
Objects
.
equals
(
d
.
getEquList
(),
c
.
getEquList
())
&&
Objects
.
equals
(
d
.
getEquCategory
(),
c
.
getEquCategory
())
&&
Objects
.
equals
(
d
.
getEqu
Category
(),
c
.
getEquCategory
())
&&
Objects
.
equals
(
d
.
getEqu
Define
(),
c
.
getEquDefine
())
&&
Objects
.
equals
(
d
.
getBizType
(),
c
.
getBizType
())
&&
d
.
getStatus
().
equals
(
String
.
valueOf
(
code
))).
mapToLong
(
JgBizCountDataBO:
:
getNum
).
sum
();
...
...
@@ -181,7 +181,7 @@ public class ReportAnalysisServiceImpl implements IReportAnalysisService {
private
Long
countDocumentNum
(
List
<
JgBizCountDataBO
>
countDataBOList
,
List
<
String
>
statusList
,
JgBizCountDataDto
c
)
{
return
countDataBOList
.
stream
().
filter
(
d
->
Objects
.
equals
(
d
.
getReceiveCompanyCode
(),
c
.
getReceiveCompanyCode
())
&&
Objects
.
equals
(
d
.
getEquList
(),
c
.
getEquList
())
&&
Objects
.
equals
(
d
.
getEquCategory
(),
c
.
getEquCategory
())
&&
Objects
.
equals
(
d
.
getEqu
Category
(),
c
.
getEquCategory
())
&&
Objects
.
equals
(
d
.
getEqu
Define
(),
c
.
getEquDefine
())
&&
Objects
.
equals
(
d
.
getBizType
(),
c
.
getBizType
())
&&
statusList
.
contains
(
d
.
getStatus
())).
mapToLong
(
JgBizCountDataBO:
:
getNum
).
sum
();
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/entity/JyjcInspectionApplication.java
View file @
8408a007
...
...
@@ -217,4 +217,10 @@ public class JyjcInspectionApplication extends BaseEntity {
@TableField
(
value
=
"plan_data"
,
typeHandler
=
JacksonTypeHandler
.
class
)
private
JSONObject
planData
;
/**
* 是否必须处理: true-必须处理,false-可不予受理
*/
@TableField
(
value
=
"is_must_accept"
)
private
Boolean
isMustAccept
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/entity/JyjcInspectionApplicationNoAcceptLog.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity
;
import
java.util.Date
;
/**
* @author system_generator
* @date 2024-06-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"tz_jyjc_inspection_application_no_accept_log"
)
public
class
JyjcInspectionApplicationNoAcceptLog
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 不予处理的检验检测单位编码
*/
@TableField
(
"inspection_unit_code"
)
private
String
inspectionUnitCode
;
/**
* 不予处理操作日期
*/
@TableField
(
"no_accept_date"
)
private
Date
noAcceptDate
;
/**
* 不予处理操作说明
*/
@TableField
(
"remark"
)
private
String
remark
;
/**
* 操作人
*/
@TableField
(
"no_accept_user_id"
)
private
String
noAcceptUserId
;
/**
* 报检申请表主键
*/
@TableField
(
"application_seq"
)
private
Long
applicationSeq
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/enums/InspectionCompanyType.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @author Administrator
*/
@AllArgsConstructor
@Getter
public
enum
InspectionCompanyType
{
/**
* 检验单位分类
*/
LEGAL
(
"legal"
,
"法定"
),
THIRD
(
"third"
,
"第3方"
);
private
String
code
;
private
String
name
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/enums/RequestTypeEnum.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @author Administrator
*/
@AllArgsConstructor
@Getter
public
enum
RequestTypeEnum
{
/**
* 提交的类型
*/
FIRST_REQUEST
(
"firstRequest"
,
"首次的提交"
),
NO_ACCEPT_REQUEST
(
"noAcceptRequest"
,
"不予受理的提交"
);
private
String
code
;
private
String
name
;
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/mapper/JyjcInspectionApplicationNoAcceptLogMapper.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
mapper
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationNoAcceptLog
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* Mapper 接口
*
* @author system_generator
* @date 2024-06-19
*/
public
interface
JyjcInspectionApplicationNoAcceptLogMapper
extends
BaseMapper
<
JyjcInspectionApplicationNoAcceptLog
>
{
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/model/InspectionEquipInfoModel.java
View file @
8408a007
...
...
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author LiuLin
* @date 2024年01月02日 16:47
...
...
@@ -18,4 +19,7 @@ public class InspectionEquipInfoModel implements Serializable {
@ApiModelProperty
(
value
=
"检验类型(小类)"
)
private
String
inspectionType
;
@ApiModelProperty
(
value
=
"申请表主键"
)
private
String
appSeq
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/model/JyjcInspectionApplicationModel.java
View file @
8408a007
...
...
@@ -166,6 +166,11 @@ public class JyjcInspectionApplicationModel extends BaseModel {
@ApiModelProperty
(
value
=
"是否已经进行计划排期"
)
private
Boolean
isExistPlanData
;
/**
* 是否必须处理: true-必须处理,false-可不予受理
*/
private
Boolean
isMustAccept
;
public
String
getProcessInstanceId
()
{
return
this
.
instanceId
!=
null
?
this
.
instanceId
:
this
.
processInstanceId
;
}
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/model/JyjcInspectionApplicationNoAcceptLogModel.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.typroject.tyboot.core.rdbms.model.BaseModel
;
import
java.util.Date
;
/**
* @author system_generator
* @date 2024-06-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"JyjcInspectionApplicationNoAcceptLogModel"
,
description
=
""
)
public
class
JyjcInspectionApplicationNoAcceptLogModel
extends
BaseModel
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"不予处理的检验检测单位编码"
)
private
String
inspectionUnitCode
;
@ApiModelProperty
(
value
=
"不予处理操作日期"
)
private
Date
noAcceptDate
;
@ApiModelProperty
(
value
=
"不予处理操作说明"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"操作人"
)
private
String
noAcceptUserId
;
@ApiModelProperty
(
value
=
"报检申请表主键"
)
private
Long
applicationSeq
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/java/com/yeejoin/amos/boot/module/jyjc/api/service/IJyjcInspectionApplicationNoAcceptLogService.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
api
.
service
;
/**
* 接口类
*
* @author system_generator
* @date 2024-06-19
*/
public
interface
IJyjcInspectionApplicationNoAcceptLogService
{}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/resources/mapper/JyjcInspectionApplicationNoAcceptLogMapper.xml
0 → 100644
View file @
8408a007
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationNoAcceptLogMapper"
>
</mapper>
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/action/RuleActionHandler.java
View file @
8408a007
...
...
@@ -2,27 +2,33 @@ package com.yeejoin.amos.boot.module.jyjc.biz.action;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.InspectionCompanyType
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.LicenceTypeEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.TopicEnum
;
import
com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.RuleCommonServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseUnitLicenceMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper
;
import
com.yeejoin.amos.component.rule.config.RuleConfig
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -36,80 +42,195 @@ public class RuleActionHandler {
private
final
EmqKeeper
emqKeeper
;
private
final
TzBaseUnitLicenceMapper
baseUnitLicenceMapper
;
private
final
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
;
private
final
UseInfoMapper
useInfoMapper
;
private
final
RedissonClient
redissonClient
;
private
RedisUtils
redisUtils
;
/**
*
特殊独立的区县
*
省特检院等特殊公司code
*/
private
static
final
String
[]
EXCLUSION_CITY_REGIONS
=
{
"610403"
,
"610581"
};
@Value
(
"${special.inspection.company.code:126100004352004822,12100000400001774F,91340100MA8QN8Q40G}"
)
private
String
specialInspectionCompanyCode
;
public
RuleActionHandler
(
EmqKeeper
emqKeeper
,
TzBaseUnitLicenceMapper
baseUnitLicenceMapper
,
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
,
UseInfoMapper
useInfoMapper
)
{
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
,
RedissonClient
redissonClient
,
RedisUtils
redisUtils
)
{
this
.
emqKeeper
=
emqKeeper
;
this
.
baseUnitLicenceMapper
=
baseUnitLicenceMapper
;
this
.
tzBaseEnterpriseInfoMapper
=
tzBaseEnterpriseInfoMapper
;
this
.
useInfoMapper
=
useInfoMapper
;
this
.
redissonClient
=
redissonClient
;
this
.
redisUtils
=
redisUtils
;
}
/**
* 规则回调方法
* 规则回调方法
-首次提交的检验机构匹配
*
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
* @param defaultInspectionCode 默认的检验机构code,多个用逗号分割,在按照属地匹配不上时,默认的检验机构
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param isMatchItem 是否需要匹配核准代码:true-匹配; false-不匹配
* @param isMustAccept true-必须处理,false-可不予受理
*/
public
void
filterInspectionOrgAction
(
Object
bizObj
,
String
itemCode
,
Boolean
isMatchArea
)
{
public
void
filterInspectionOrgAction
(
Object
bizObj
,
String
itemCode
,
Boolean
isMatchArea
,
String
defaultInspectionCode
,
String
legalInspectionCodes
,
String
inspectionCompanyType
,
Boolean
isMatchItem
,
Boolean
isMustAccept
)
{
log
.
info
(
"收到首次提交的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}"
,
bizObj
,
itemCode
,
isMatchArea
,
defaultInspectionCode
,
legalInspectionCodes
,
inspectionCompanyType
,
isMatchItem
);
InspectionEquipInfo
inspectionEquipInfo
=
(
InspectionEquipInfo
)
bizObj
;
// 规则不支持或者的关系消息会重复故去重处理
RLock
lock
=
redissonClient
.
getLock
(
this
.
buildLockKey
(
"filterInspectionOrgAction"
,
inspectionEquipInfo
.
getUuid
()));
try
{
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
if
(!
isLocked
)
{
log
.
warn
(
"规则回填重复丢弃:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}"
,
bizObj
,
itemCode
,
isMatchArea
,
defaultInspectionCode
,
legalInspectionCodes
,
inspectionCompanyType
,
isMatchItem
);
return
;
}
if
(
redisUtils
.
hasKey
(
this
.
buildRedisDataKey
(
"filterInspectionOrgAction"
,
inspectionEquipInfo
.
getUuid
())))
{
log
.
warn
(
"规则回填重复丢弃:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}"
,
bizObj
,
itemCode
,
isMatchArea
,
defaultInspectionCode
,
legalInspectionCodes
,
inspectionCompanyType
,
isMatchItem
);
return
;
}
redisUtils
.
set
(
this
.
buildRedisDataKey
(
"filterInspectionOrgAction"
,
inspectionEquipInfo
.
getUuid
()),
inspectionEquipInfo
.
getUuid
(),
3600
);
// 1.获取所有的符合资质条件的单位许可信息
List
<
TzBaseUnitLicence
>
unitLicenceList
=
getBaseUnitLicenceList
(
itemCode
);
List
<
TzBaseUnitLicence
>
unitLicenceList
=
getBaseUnitLicenceList
(
itemCode
,
isMatchItem
);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List
<
TzBaseEnterpriseInfoDto
>
tzBaseEnterpriseInfoList
=
getInspectionUnitList
(
unitLicenceList
,
isMatchArea
,
inspectionEquipInfo
.
getRecord
(),
OpenBizTypeEnum
.
JY
.
getCode
());
List
<
TzBaseEnterpriseInfoDto
>
tzBaseEnterpriseInfoList
=
getInspectionUnitListForFirstCommit
(
unitLicenceList
,
isMatchArea
,
inspectionEquipInfo
,
OpenBizTypeEnum
.
JY
.
getCode
(),
defaultInspectionCode
,
legalInspectionCodes
,
isMustAccept
);
publishMqttMessage
(
inspectionEquipInfo
.
getComponentKey
(),
tzBaseEnterpriseInfoList
);
}
catch
(
MqttException
|
InterruptedException
e
)
{
log
.
error
(
"首次提交的检验机构匹配动作执行失败: {}"
,
e
.
getMessage
());
}
finally
{
if
(
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
}
private
String
buildLockKey
(
String
type
,
String
uuid
)
{
return
String
.
format
(
"%s-%s"
,
type
,
uuid
);
}
private
String
buildRedisDataKey
(
String
type
,
String
uuid
)
{
return
String
.
format
(
"RECEIVED-UUID-RULE:%s-%s"
,
type
,
uuid
);
}
/**
* 规则回调方法-不予受理的检验机构匹配
*
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
* @param defaultInspectionCode 默认的检验机构code
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
* @param isMustAccept true-必须处理,false-可不予受理
*/
public
void
noAcceptInspectionOrgMatchAction
(
Object
bizObj
,
String
itemCode
,
Boolean
isMatchArea
,
String
defaultInspectionCode
,
String
inspectionCompanyType
,
Boolean
isMatchItem
,
String
legalInspectionCodes
,
Boolean
isMustAccept
)
{
log
.
info
(
"收到不予受理的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}"
,
bizObj
,
itemCode
,
isMatchArea
,
defaultInspectionCode
,
legalInspectionCodes
,
inspectionCompanyType
,
isMatchItem
);
InspectionEquipInfo
inspectionEquipInfo
=
(
InspectionEquipInfo
)
bizObj
;
try
{
// 1.获取所有的符合资质条件的单位许可信息
List
<
TzBaseUnitLicence
>
unitLicenceList
=
getBaseUnitLicenceList
(
itemCode
,
isMatchItem
);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List
<
TzBaseEnterpriseInfoDto
>
tzBaseEnterpriseInfoList
=
getInspectionUnitListForNoAccept
(
unitLicenceList
,
isMatchArea
,
inspectionEquipInfo
,
OpenBizTypeEnum
.
JY
.
getCode
(),
defaultInspectionCode
,
legalInspectionCodes
,
inspectionCompanyType
,
isMustAccept
);
publishMqttMessage
(
inspectionEquipInfo
.
getComponentKey
(),
tzBaseEnterpriseInfoList
);
}
catch
(
MqttException
e
)
{
log
.
error
(
"Error publishing MQTT message: {}"
,
e
.
getMessage
());
}
}
private
List
<
TzBaseUnitLicence
>
getBaseUnitLicenceList
(
String
itemCode
)
{
return
baseUnitLicenceMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzBaseUnitLicence
>()
private
List
<
TzBaseUnitLicence
>
getBaseUnitLicenceList
(
String
itemCode
,
Boolean
isMatchItem
)
{
List
<
TzBaseUnitLicence
>
tzBaseUnitLicences
;
if
(
isMatchItem
&&
StringUtils
.
isNotEmpty
(
itemCode
))
{
tzBaseUnitLicences
=
baseUnitLicenceMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzBaseUnitLicence
>()
.
select
(
TzBaseUnitLicence:
:
getUnitCode
)
.
eq
(
TzBaseUnitLicence:
:
getLicenceType
,
LicenceTypeEnum
.
JY_JC
.
getCode
())
.
in
(
TzBaseUnitLicence:
:
getItemCode
,
Arrays
.
asList
(
itemCode
.
split
(
","
))));
// .ge(TzBaseUnitLicence::getExpiryDate, LocalDate.now()));
.
in
(
TzBaseUnitLicence:
:
getItemCode
,
Arrays
.
asList
(
itemCode
.
split
(
","
)))
.
ge
(
TzBaseUnitLicence:
:
getExpiryDate
,
LocalDate
.
now
()));
}
else
{
tzBaseUnitLicences
=
baseUnitLicenceMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzBaseUnitLicence
>()
.
select
(
TzBaseUnitLicence:
:
getUnitCode
)
.
eq
(
TzBaseUnitLicence:
:
getLicenceType
,
LicenceTypeEnum
.
JY_JC
.
getCode
())
.
ge
(
TzBaseUnitLicence:
:
getExpiryDate
,
LocalDate
.
now
()));
}
return
tzBaseUnitLicences
;
}
p
ublic
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitList
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
String
record
,
String
openBizType
)
{
p
rivate
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitListForNoAccept
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
InspectionEquipInfo
inspectionEquipInfo
,
String
openBizType
,
String
defaultInspectionCode
,
String
legalInspectionCodes
,
String
inspectionCompanyType
,
Boolean
isCanNoAccept
)
{
// 是否进行属地过滤
String
areaCode
=
isMatchArea
?
this
.
getArea
(
record
)
:
""
;
String
areaCode
=
isMatchArea
?
inspectionEquipInfo
.
getAreaCode
(
)
:
""
;
// 所有符合单位的code
List
<
String
>
unitCodes
=
unitLicenceList
.
stream
()
.
map
(
TzBaseUnitLicence:
:
getUnitCode
)
.
collect
(
Collectors
.
toList
());
Set
<
String
>
unitCodes
=
unitLicenceList
.
stream
().
map
(
TzBaseUnitLicence:
:
getUnitCode
).
collect
(
Collectors
.
toSet
());
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
new
ArrayList
<>();
// 按照资质 + areaCode,进行设备单位的筛选
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
unitCodes
,
areaCode
,
openBizType
);
if
(
unitCodes
.
size
()
>
0
)
{
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
new
ArrayList
<>(
unitCodes
),
areaCode
,
openBizType
);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this
.
setIsCanNoAccept
(
matchEnterpriseInfos
,
isCanNoAccept
);
}
// 第三方时需要去掉法定机构
if
(
inspectionCompanyType
.
equals
(
InspectionCompanyType
.
THIRD
.
getCode
()))
{
log
.
info
(
"第三方检验机构开始匹配"
);
//目前规则配置的法定名单为陕西省内地市的法定机构
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
e
->
!
legalInspectionCodes
.
contains
(
e
.
getUseCode
())).
collect
(
Collectors
.
toList
());
// 还需要去掉定向的机构:陕西省、国机特种设备检验有限公司、中国特种设备检验检测研究院
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
c
->
!
specialInspectionCompanyCode
.
contains
(
c
.
getUseCode
())).
collect
(
Collectors
.
toList
());
log
.
info
(
"匹配到的第三方检验机构:{}"
,
matchEnterpriseInfos
);
}
// 法定时,机构为定义的法定机构 defaultInspectionCode
if
(
inspectionCompanyType
.
equals
(
InspectionCompanyType
.
LEGAL
.
getCode
()))
{
log
.
info
(
"法定检验机构开始匹配"
);
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
e
->
defaultInspectionCode
.
contains
(
e
.
getUseCode
())).
collect
(
Collectors
.
toList
());
log
.
info
(
"匹配到的法定检验机构:{}"
,
matchEnterpriseInfos
);
}
// 代码严谨判断,如前置条件法定机构单位未注册,返回全部的法定机构和第3方机构
if
(
matchEnterpriseInfos
.
isEmpty
())
{
log
.
info
(
"按照资质、区域未匹配到对应的单位、按照地市未匹配到单位,将返回全部单位"
);
return
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
null
,
null
,
openBizType
);
log
.
info
(
"指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外"
);
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
null
,
null
,
openBizType
);
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
c
->
!
specialInspectionCompanyCode
.
contains
(
c
.
getUseCode
())).
collect
(
Collectors
.
toList
());
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this
.
setIsCanNoAccept
(
matchEnterpriseInfos
,
false
);
log
.
info
(
"指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,数据为:{}"
,
matchEnterpriseInfos
);
}
return
matchEnterpriseInfos
;
}
private
String
getArea
(
String
record
)
{
UseInfo
equipUseInfo
=
useInfoMapper
.
selectOne
(
Wrappers
.<
UseInfo
>
lambdaQuery
().
select
(
UseInfo:
:
getCity
,
UseInfo:
:
getCounty
).
eq
(
UseInfo:
:
getRecord
,
record
));
if
(
equipUseInfo
==
null
)
{
return
""
;
private
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitListForFirstCommit
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
InspectionEquipInfo
inspectionEquipInfo
,
String
openBizType
,
String
defaultInspectionCode
,
String
legalInspectionCodes
,
Boolean
isCanNoAccept
)
{
// 是否进行属地过滤
String
areaCode
=
isMatchArea
?
inspectionEquipInfo
.
getAreaCode
()
:
""
;
// 所有符合单位的code
Set
<
String
>
unitCodes
=
unitLicenceList
.
stream
()
.
map
(
TzBaseUnitLicence:
:
getUnitCode
)
.
collect
(
Collectors
.
toSet
());
// 将法定机构和符合资质要求的机构取交集
List
<
String
>
legalUnitCodes
=
Arrays
.
stream
(
legalInspectionCodes
.
split
(
","
)).
filter
(
unitCodes:
:
contains
).
collect
(
Collectors
.
toList
());
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
new
ArrayList
<>();
// 按照资质 + areaCode,进行设备单位的筛选
if
(
legalUnitCodes
.
size
()
>
0
)
{
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
legalUnitCodes
,
areaCode
,
openBizType
);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入
this
.
setIsCanNoAccept
(
matchEnterpriseInfos
,
isCanNoAccept
);
}
// 特殊地区特殊处理,目前有韩城、杨凌,原因行政区划上是有层级的,但是业务办理时,他们与所在地市是同级别的
if
(
StringUtils
.
isEmpty
(
equipUseInfo
.
getCity
())
||
StringUtils
.
isEmpty
(
equipUseInfo
.
getCounty
()))
{
return
""
;
// 未匹配到法定机构时,返回指定的默认的法定机构, 默认及法定机构不进行开通区域的匹配
if
(
matchEnterpriseInfos
.
isEmpty
())
{
log
.
info
(
"按照资质、区域未匹配到法定检验机构"
);
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
new
ArrayList
<>(
Arrays
.
asList
(
defaultInspectionCode
.
split
(
","
))),
""
,
openBizType
);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this
.
setIsCanNoAccept
(
matchEnterpriseInfos
,
isCanNoAccept
);
}
if
(
Arrays
.
asList
(
EXCLUSION_CITY_REGIONS
).
contains
(
equipUseInfo
.
getCounty
()))
{
return
equipUseInfo
.
getCounty
();
// 代码严谨判断,如前置条件法定机构单位未注册,返回全部的法定机构和第3方机构
if
(
matchEnterpriseInfos
.
isEmpty
())
{
log
.
info
(
"指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外"
);
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
null
,
null
,
openBizType
);
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
c
->
!
specialInspectionCompanyCode
.
contains
(
c
.
getUseCode
())).
collect
(
Collectors
.
toList
());
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this
.
setIsCanNoAccept
(
matchEnterpriseInfos
,
false
);
}
return
equipUseInfo
.
getCity
();
return
matchEnterpriseInfos
;
}
private
void
setIsCanNoAccept
(
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
,
Boolean
isCanNoAccept
)
{
matchEnterpriseInfos
.
forEach
(
m
->
{
m
.
setUseCodeAndName
(
m
.
getUseCode
()
+
"_"
+
isCanNoAccept
);
});
}
private
void
publishMqttMessage
(
String
componentKey
,
Object
message
)
throws
MqttException
{
...
...
@@ -122,5 +243,6 @@ public class RuleActionHandler {
throw
e
;
}
}
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/controller/JyjcInspectionApplicationController.java
View file @
8408a007
...
...
@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationMode
import
com.yeejoin.amos.boot.module.jyjc.biz.event.InspectionApplicationPushEvent
;
import
com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -37,17 +38,25 @@ import java.util.Map;
public
class
JyjcInspectionApplicationController
extends
BaseController
{
@Autowired
JyjcInspectionApplicationServiceImpl
jyjcInspectionApplicationServiceImpl
;
private
JyjcInspectionApplicationServiceImpl
jyjcInspectionApplicationServiceImpl
;
// 业务通用发起——基本信息
private
static
final
String
basic
=
"basic"
;
// 业务通用发起——设备信息
private
static
final
String
equipPageInfo
=
"equipPageInfo"
;
// 业务通用发起——技术参数-
private
static
final
String
filePageData
=
"filePageData"
;
/**
* 业务通用发起——基本信息
*/
private
static
final
String
BASIC
=
"basic"
;
/**
* 业务通用发起——设备信息
*/
private
static
final
String
EQUIP_PAGE_INFO
=
"equipPageInfo"
;
/**
* 业务通用发起——技术参数
*/
private
static
final
String
FILE_PAGE_DATA
=
"filePageData"
;
@Autowired
EventPublisher
eventPublisher
;
private
EventPublisher
eventPublisher
;
/**
* 新增
...
...
@@ -58,11 +67,11 @@ public class JyjcInspectionApplicationController extends BaseController {
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"暂存、提交"
,
notes
=
"新增"
)
public
ResponseModel
<
List
<
JyjcInspectionApplicationModel
>>
save
(
@RequestBody
JSONObject
model
)
{
if
(
model
.
containsKey
(
basic
))
{
if
(
model
.
containsKey
(
BASIC
))
{
JSONObject
finallyJson
=
new
JSONObject
();
Map
<
String
,
Object
>
basicObj
=
(
Map
<
String
,
Object
>)
model
.
get
(
basic
);
Map
<
String
,
Object
>
equipPageInfoObj
=
(
Map
<
String
,
Object
>)
model
.
get
(
equipPageInfo
);
Map
<
String
,
Object
>
filePageDataObj
=
(
Map
<
String
,
Object
>)
model
.
get
(
filePageData
);
Map
<
String
,
Object
>
basicObj
=
(
Map
<
String
,
Object
>)
model
.
get
(
BASIC
);
Map
<
String
,
Object
>
equipPageInfoObj
=
(
Map
<
String
,
Object
>)
model
.
get
(
EQUIP_PAGE_INFO
);
Map
<
String
,
Object
>
filePageDataObj
=
(
Map
<
String
,
Object
>)
model
.
get
(
FILE_PAGE_DATA
);
finallyJson
.
putAll
(
model
);
finallyJson
.
putAll
(
basicObj
);
finallyJson
.
putAll
(
equipPageInfoObj
);
...
...
@@ -121,7 +130,7 @@ public class JyjcInspectionApplicationController extends BaseController {
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
public
ResponseModel
<
Map
<
String
,
Object
>>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
jyjcInspectionApplicationServiceImpl
.
selectBySeq
(
sequenceNbr
));
return
ResponseHelper
.
buildResponse
(
jyjcInspectionApplicationServiceImpl
.
selectBySeq
(
sequenceNbr
,
getSelectedOrgInfo
().
getCompany
().
getCompanyType
()
));
}
...
...
@@ -188,6 +197,21 @@ public class JyjcInspectionApplicationController extends BaseController {
}
/**
* 不予受理接口(监督检验、定(首)检、检测)-通用
*
* @param params params
* @return {@link }
* @author shg
* @date 2023/12/15 13:44
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"不予受理"
,
notes
=
"不予受理"
)
@PostMapping
(
value
=
"/flow/noAccept"
)
public
ResponseModel
<
Boolean
>
doNoAcceptFlow
(
@RequestBody
Map
<
String
,
Object
>
params
)
{
return
ResponseHelper
.
buildResponse
(
jyjcInspectionApplicationServiceImpl
.
doNoAccept
(
params
));
}
/**
* 撤回接口(监督检验、定(首)检、检测)-通用
*
* @param sequenceNbr sequenceNbr
...
...
@@ -238,4 +262,16 @@ public class JyjcInspectionApplicationController extends BaseController {
JSONObject
jsonObject
=
new
JSONObject
(
map
);
return
ResponseHelper
.
buildResponse
(
jyjcInspectionApplicationServiceImpl
.
queryForEquipmentRegisterPage
(
jsonObject
));
}
/**
* 查询检验检测机构列表(基本信息及联系人)-工作台专用
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/workbench/getInspectionUnitList"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"查询检验检测机构列表所有已注册开通的"
,
notes
=
"查询检验检测机构列表所有已注册开通的"
)
public
ResponseModel
<
List
<
TzBaseEnterpriseInfoDto
>>
getInspectionUnitListForWorkbench
(
@RequestParam
String
openBizType
)
{
return
ResponseHelper
.
buildResponse
(
jyjcInspectionApplicationServiceImpl
.
getInspectionUnitListForWorkbench
(
openBizType
));
}
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/event/listener/InspectionApplicationPushEventListener.java
View file @
8408a007
...
...
@@ -204,7 +204,7 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
equipData
.
setTechParams
(
this
.
populateEquipInfoWithTechParams
(
equipData
.
getEquList
(),
equipUnicode
));
}
p
rivate
Map
<
String
,
Object
>
populateEquipInfoWithTechParams
(
String
equList
,
String
record
)
{
p
ublic
Map
<
String
,
Object
>
populateEquipInfoWithTechParams
(
String
equList
,
String
record
)
{
EquipCategoryEnum
productType
=
EquipCategoryEnum
.
of
(
Integer
.
parseInt
(
equList
));
Map
<
String
,
Object
>
echParamMap
=
new
HashMap
<>();
switch
(
Objects
.
requireNonNull
(
productType
))
{
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/listener/InspectionOrgRefreshListener.java
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
biz
.
listener
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Sequence
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationNoAcceptLog
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.JYJCTypeEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.RequestTypeEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.TopicEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationNoAcceptLogMapper
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.InspectionEquipInfoModel
;
import
com.yeejoin.amos.boot.module.jyjc.biz.event.listener.InspectionApplicationPushEventListener
;
import
com.yeejoin.amos.boot.module.jyjc.biz.listener.message.BizMessage
;
import
com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.impl.RuleCommonServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper
;
import
com.yeejoin.amos.component.robot.AmosRequestContext
;
import
com.yeejoin.amos.component.rule.RuleTrigger
;
import
com.yeejoin.amos.feign.rule.Rule
;
import
com.yeejoin.amos.feign.rule.model.FactBaseModel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.eclipse.paho.client.mqttv3.MqttMessage
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -27,6 +35,7 @@ import java.nio.charset.StandardCharsets;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.LinkedBlockingQueue
;
...
...
@@ -45,23 +54,36 @@ public class InspectionOrgRefreshListener extends EmqxListener {
@Value
(
"${inspection.rule.project-name:报检规则}"
)
private
String
ruleName
;
@Autowired
private
EmqKeeper
emqKeeper
;
@Autowired
private
RuleTrigger
ruleTrigger
;
@Autowired
private
AmosRequestContext
amosRequestContext
;
@Autowired
private
RegistrationInfoMapper
registrationInfoMapper
;
@Autowired
private
JyjcInspectionApplicationNoAcceptLogMapper
inspectionApplicationNoAcceptLogMapper
;
@Autowired
InspectionApplicationPushEventListener
applicationPushEventListener
;
@Value
(
"${spring.application.name}"
)
private
String
applicationName
;
private
static
final
int
repeatTime
=
2
;
@Autowired
Sequence
sequence
;
private
static
final
int
REPEAT_TIME
=
2
;
@Autowired
RedisUtils
redisUtils
;
@Autowired
RuleCommonServiceImpl
ruleCommonService
;
@Override
public
void
processMessage
(
String
topic
,
MqttMessage
message
)
{
if
(
log
.
isInfoEnabled
())
{
...
...
@@ -86,10 +108,10 @@ public class InspectionOrgRefreshListener extends EmqxListener {
BizMessage
bizMessage
=
BLOCKING_QUEUE
.
take
();
// 解决前端组件在属性变化时重复发送两次问题
if
(!
redisUtils
.
hasKey
(
bizMessage
.
getTopic
()))
{
redisUtils
.
set
(
bizMessage
.
getTopic
(),
true
,
repeatTime
);
redisUtils
.
set
(
bizMessage
.
getTopic
(),
true
,
REPEAT_TIME
);
processBizMessage
(
bizMessage
);
}
else
{
log
.
warn
(
"消息在{}秒内重复,"
,
repeatTime
);
log
.
warn
(
"消息在{}秒内重复,"
,
REPEAT_TIME
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"数据处理失败"
,
e
);
...
...
@@ -99,7 +121,6 @@ public class InspectionOrgRefreshListener extends EmqxListener {
private
void
processBizMessage
(
BizMessage
bizMessage
)
{
byte
[]
payload
=
bizMessage
.
getMessage
().
getPayload
();
InspectionEquipInfoModel
equipInfoModel
=
parseObject
(
new
String
(
payload
,
StandardCharsets
.
UTF_8
),
InspectionEquipInfoModel
.
class
);
RegistrationInfo
registrationInfo
=
fetchRegistrationInfo
(
equipInfoModel
.
getRecord
());
InspectionEquipInfo
inspectionEquipInfo
=
new
InspectionEquipInfo
();
...
...
@@ -114,30 +135,64 @@ public class InspectionOrgRefreshListener extends EmqxListener {
inspectionEquipInfo
.
setInspectionType
(
equipInfoModel
.
getInspectionType
());
inspectionEquipInfo
.
setRecord
(
equipInfoModel
.
getRecord
());
inspectionEquipInfo
.
setBizType
(
getCategoryByType
(
JYJCTypeEnum
.
of
(
inspectionEquipInfo
.
getInspectionType
())));
inspectionEquipInfo
.
setUuid
(
sequence
.
nextId
()
+
""
);
inspectionEquipInfo
.
setTechParams
(
this
.
getTechParams
(
registrationInfo
));
this
.
setReginInfo
(
inspectionEquipInfo
,
equipInfoModel
.
getRecord
());
JyjcInspectionApplicationNoAcceptLog
jyjcInspectionApplicationNoAcceptLog
=
getLastNoAcceptLog
(
equipInfoModel
);
inspectionEquipInfo
.
setRequestType
(
this
.
buildRequestType
(
equipInfoModel
,
jyjcInspectionApplicationNoAcceptLog
));
inspectionEquipInfo
.
setLastNoAcceptInspectionCode
(
this
.
buildLastNoAcceptInspectionCode
(
jyjcInspectionApplicationNoAcceptLog
));
// 是否球罐 0 1 转 boolean
inspectionEquipInfo
.
setIsBallValve
(!
"0"
.
equals
(
registrationInfo
.
getWhetherSphericalTank
()));
touchRuleWithApi
(
inspectionEquipInfo
);
}
private
RegistrationInfo
fetchRegistrationInfo
(
String
record
)
{
return
registrationInfoMapper
.
selectOne
(
Wrappers
.<
RegistrationInfo
>
lambdaQuery
().
select
(
RegistrationInfo:
:
getRecord
,
RegistrationInfo:
:
getEquCategory
,
RegistrationInfo:
:
getEquDefine
,
RegistrationInfo:
:
getEquList
)
.
eq
(
RegistrationInfo:
:
getRecord
,
record
));
private
void
setReginInfo
(
InspectionEquipInfo
inspectionEquipInfo
,
String
record
)
{
UseInfo
useInfo
=
ruleCommonService
.
getUseInfo
(
record
);
// 地市
inspectionEquipInfo
.
setAreaCode
(
ruleCommonService
.
getArea
(
useInfo
));
// 区县
inspectionEquipInfo
.
setDistrictOrCountyCode
(
ruleCommonService
.
getCounty
(
useInfo
));
}
private
void
touchRuleWithMsg
(
InspectionEquipInfo
inspectionEquipInfo
)
{
if
(
log
.
isInfoEnabled
())
{
log
.
info
(
"发送规则的消息对象:{}"
,
toJSONString
(
inspectionEquipInfo
));
private
String
buildLastNoAcceptInspectionCode
(
JyjcInspectionApplicationNoAcceptLog
jyjcInspectionApplicationNoAcceptLog
)
{
if
(
jyjcInspectionApplicationNoAcceptLog
!=
null
)
{
return
jyjcInspectionApplicationNoAcceptLog
.
getInspectionUnitCode
();
}
return
""
;
}
RequestContext
.
setToken
(
amosRequestContext
.
getToken
());
RequestContext
.
setAppKey
(
amosRequestContext
.
getAppKey
());
RequestContext
.
setProduct
(
amosRequestContext
.
getProduct
());
// 2.调用规则
try
{
ruleTrigger
.
publish
(
inspectionEquipInfo
,
ruleName
+
"/"
+
inspectionEquipInfo
.
getBizType
(),
null
);
}
catch
(
Exception
e
)
{
log
.
error
(
"调用规则触发获取报检规则失败"
,
e
);
private
Map
<
String
,
Object
>
getTechParams
(
RegistrationInfo
registrationInfo
)
{
return
applicationPushEventListener
.
populateEquipInfoWithTechParams
(
registrationInfo
.
getEquList
(),
registrationInfo
.
getRecord
());
}
private
String
buildRequestType
(
InspectionEquipInfoModel
equipInfoModel
,
JyjcInspectionApplicationNoAcceptLog
jyjcInspectionApplicationNoAcceptLog
)
{
// 工作台发起申请
if
(
StringUtils
.
isEmpty
(
equipInfoModel
.
getAppSeq
()))
{
return
RequestTypeEnum
.
FIRST_REQUEST
.
getCode
();
}
// 没有不予受理请求记录
if
(
jyjcInspectionApplicationNoAcceptLog
==
null
)
{
return
RequestTypeEnum
.
FIRST_REQUEST
.
getCode
();
}
// 有记录
return
RequestTypeEnum
.
NO_ACCEPT_REQUEST
.
getCode
();
}
private
JyjcInspectionApplicationNoAcceptLog
getLastNoAcceptLog
(
InspectionEquipInfoModel
equipInfoModel
)
{
LambdaQueryWrapper
<
JyjcInspectionApplicationNoAcceptLog
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
JyjcInspectionApplicationNoAcceptLog:
:
getApplicationSeq
,
equipInfoModel
.
getAppSeq
());
wrapper
.
orderByDesc
(
JyjcInspectionApplicationNoAcceptLog:
:
getRecDate
);
wrapper
.
last
(
"limit 1"
);
wrapper
.
select
(
JyjcInspectionApplicationNoAcceptLog:
:
getApplicationSeq
,
JyjcInspectionApplicationNoAcceptLog:
:
getInspectionUnitCode
);
return
inspectionApplicationNoAcceptLogMapper
.
selectOne
(
wrapper
);
}
private
RegistrationInfo
fetchRegistrationInfo
(
String
record
)
{
return
registrationInfoMapper
.
selectOne
(
Wrappers
.<
RegistrationInfo
>
lambdaQuery
().
select
(
RegistrationInfo:
:
getRecord
,
RegistrationInfo:
:
getEquCategory
,
RegistrationInfo:
:
getEquDefine
,
RegistrationInfo:
:
getEquList
,
RegistrationInfo:
:
getWhetherSphericalTank
)
.
eq
(
RegistrationInfo:
:
getRecord
,
record
));
}
private
void
touchRuleWithApi
(
InspectionEquipInfo
inspectionEquipInfo
)
{
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/rule/InspectionEquipInfo.java
View file @
8408a007
...
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jyjc.biz.rule;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Map
;
...
...
@@ -40,4 +41,23 @@ public class InspectionEquipInfo implements Serializable {
@ApiModelProperty
(
value
=
"检验类型(小类)"
)
private
String
inspectionType
;
@ApiModelProperty
(
value
=
"请求类型:firstRequest-首次的提交,noAcceptRequest-不予受理的提交"
)
private
String
requestType
;
@ApiModelProperty
(
value
=
"消息唯一标识用来判断消息重复"
)
private
String
uuid
;
@ApiModelProperty
(
value
=
"最近不受理检验机构code"
)
private
String
lastNoAcceptInspectionCode
;
@ApiModelProperty
(
value
=
"所在区域"
)
private
String
areaCode
;
@ApiModelProperty
(
value
=
"设备所在区/县行政编码"
)
private
String
districtOrCountyCode
;
@ApiModelProperty
(
value
=
"是否是球阀,压力容器定向规则使用"
)
private
Boolean
isBallValve
=
false
;
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/JyjcInspectionApplicationNoAcceptLogServiceImpl.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
biz
.
service
.
impl
;
import
com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationNoAcceptLog
;
import
com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationNoAcceptLogMapper
;
import
com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionApplicationNoAcceptLogService
;
import
com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationNoAcceptLogModel
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
java.util.List
;
/**
* 服务实现类
*
* @author system_generator
* @date 2024-06-19
*/
@Service
public
class
JyjcInspectionApplicationNoAcceptLogServiceImpl
extends
BaseService
<
JyjcInspectionApplicationNoAcceptLogModel
,
JyjcInspectionApplicationNoAcceptLog
,
JyjcInspectionApplicationNoAcceptLogMapper
>
implements
IJyjcInspectionApplicationNoAcceptLogService
{
/**
* 分页查询
*/
public
Page
<
JyjcInspectionApplicationNoAcceptLogModel
>
queryForJyjcInspectionApplicationNoAcceptLogPage
(
Page
<
JyjcInspectionApplicationNoAcceptLogModel
>
page
)
{
return
this
.
queryForPage
(
page
,
null
,
false
);
}
/**
* 列表查询 示例
*/
public
List
<
JyjcInspectionApplicationNoAcceptLogModel
>
queryForJyjcInspectionApplicationNoAcceptLogList
()
{
return
this
.
queryForList
(
""
,
false
);
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/JyjcInspectionApplicationServiceImpl.java
View file @
8408a007
...
...
@@ -30,6 +30,7 @@ import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher;
import
com.yeejoin.amos.boot.module.jyjc.biz.feign.JgFeignClient
;
import
com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient
;
import
com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum
;
...
...
@@ -159,6 +160,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
@Autowired
IdxBizJgUseInfoMapper
jgUseInfoMapper
;
@Autowired
JyjcInspectionApplicationNoAcceptLogServiceImpl
noAcceptLogService
;
private
static
final
String
EQU_STATE
=
"EQU_STATE"
;
private
static
final
String
EQU_CODE
=
"EQU_CODE"
;
...
...
@@ -167,6 +171,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
private
static
final
String
SUMMIT_TYPE
=
"0"
;
/**
* 省特检院等特殊公司code
*/
@Value
(
"${shanxi.tjy.code:126100004352004822}"
)
private
String
shanxiCompanyCode
;
@Autowired
RestHighLevelClient
restHighLevelClient
;
...
...
@@ -179,6 +189,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
// 校验流程中的不能再次提交
this
.
checkForFlowingEquip
(
model
);
if
(
CharSequenceUtil
.
isNotEmpty
(
model
.
getProcessInstanceId
())
&&
model
.
getOperationType
().
equals
(
"0"
))
{
// 之前有工作流,再次提交
model
.
setOperationType
(
"2"
);
}
...
...
@@ -196,13 +207,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
dto
.
setCompleteFirstTask
(
true
);
list
.
add
(
dto
);
actWorkflowBatchDTO
.
setProcess
(
list
);
String
[]
inspectionUnit
=
model
.
getInspectionUnitCode
().
split
(
"_"
);
if
(
inspectionUnit
.
length
==
2
)
{
model
.
setInspectionUnitCode
(
inspectionUnit
[
0
]);
model
.
setInspectionUnitName
(
inspectionUnit
[
1
]);
}
else
{
this
.
setInspectionUnitNameAfterSave
(
model
);
}
setNameAndIsMustAccept
(
model
);
dto
.
setNextExecuteUserCompanyCode
(
model
.
getInspectionUnitCode
());
processTasks
=
cmWorkflowService
.
startBatch
(
actWorkflowBatchDTO
);
String
instanceId
=
processTasks
.
get
(
0
).
getProcessInstance
().
getId
();
...
...
@@ -227,13 +232,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
model
.
setStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_SUBMITTED
.
getCode
()));
//6611 对应数据字典 检验流程状态 待受理
commonService
.
saveExecuteFlowData2Redis
(
model
.
getProcessInstanceId
(),
this
.
buildInstanceRuntimeData
(
model
));
}
else
if
(
"1"
.
equals
(
model
.
getOperationType
()))
{
// 工作台暂存、详情保存逻辑
String
[]
inspectionUnit
=
model
.
getInspectionUnitCode
().
split
(
"_"
);
if
(
inspectionUnit
.
length
==
2
)
{
model
.
setInspectionUnitCode
(
inspectionUnit
[
0
]);
model
.
setInspectionUnitName
(
inspectionUnit
[
1
]);
}
else
{
this
.
setInspectionUnitNameAfterSave
(
model
);
}
setNameAndIsMustAccept
(
model
);
model
.
setStatus
(
String
.
valueOf
(
FlowStatusEnum
.
TO_BE_SUBMITTED
.
getCode
()));
}
...
...
@@ -342,8 +341,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
model
.
setDockingUnitCode
(
jyjcOpeningApplications
.
get
(
0
).
getDockingUnitCode
());
}
}
this
.
setInspectionUnitNameAfterSave
(
model
);
this
.
setNameAndIsMustAccept
(
model
);
//更新报检装备监管码
jyjcInspectionApplicationEquipService
.
getBaseMapper
().
deleteByApplicationSeq
(
model
.
getSequenceNbr
());
if
(
model
.
getEquip
().
size
()
>
0
)
{
...
...
@@ -422,6 +420,17 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
return
this
.
buildRedundancyField
(
model
);
}
private
void
setNameAndIsMustAccept
(
JyjcInspectionApplicationModel
model
)
{
String
[]
inspectionUnit
=
model
.
getInspectionUnitCode
().
split
(
"_"
);
if
(
inspectionUnit
.
length
==
2
)
{
model
.
setInspectionUnitCode
(
inspectionUnit
[
0
]);
model
.
setIsMustAccept
(
Boolean
.
parseBoolean
(
inspectionUnit
[
1
]));
this
.
setInspectionUnitNameAfterSave
(
model
);
}
else
{
this
.
setInspectionUnitNameAfterSave
(
model
);
}
}
/**
* 提交时校验是否有在流程中(流程状态待受理)的设备
*
...
...
@@ -553,7 +562,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
return
this
.
queryForList
(
""
,
false
);
}
public
Map
<
String
,
Object
>
selectBySeq
(
Long
sequenceNbr
)
{
public
Map
<
String
,
Object
>
selectBySeq
(
Long
sequenceNbr
,
String
companyType
)
{
JyjcInspectionApplicationModel
model
=
this
.
getBaseMapper
().
selectDataBySeq
(
sequenceNbr
);
Map
<
String
,
Object
>
map
=
BeanUtil
.
beanToMap
(
model
);
List
<
Map
<
String
,
Object
>>
dataByApplicationSeq
=
jyjcInspectionApplicationAttachmentService
.
getBaseMapper
().
getDataByApplicationSeq
(
sequenceNbr
);
...
...
@@ -589,6 +598,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
map
.
put
(
"equip"
,
arrayList
);
}
map
.
putAll
(
attMap
);
map
.
put
(
"companyType"
,
companyType
);
this
.
setPlanData
(
sequenceNbr
,
map
);
return
map
;
}
...
...
@@ -834,6 +844,86 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
doNoAccept
(
Map
<
String
,
Object
>
params
)
{
String
instanceId
=
params
.
get
(
"instanceId"
).
toString
();
String
nextTaskId
=
params
.
get
(
"nextTaskId"
).
toString
();
String
lockKey
=
CommonServiceImpl
.
buildJcExecuteLockKey
(
instanceId
);
RLock
lock
=
redissonClient
.
getLock
(
lockKey
);
try
{
boolean
isLocked
=
lock
.
tryLock
(
0
,
180
,
TimeUnit
.
SECONDS
);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if
(!
isLocked
)
{
throw
new
BadRequest
(
"当前流程已经被执行!请重新打开页面查看并执行!"
);
}
// 流程执行时,状态及权限校验
commonService
.
checkForExecuteFlow
(
nextTaskId
,
instanceId
);
Long
sequenceNbr
=
Long
.
parseLong
(
params
.
get
(
"sequenceNbr"
)
+
""
);
JyjcInspectionApplicationModel
model
=
this
.
queryBySeq
(
sequenceNbr
);
ArrayList
<
String
>
roleListAll
=
new
ArrayList
<>();
ArrayList
<
String
>
roleList
=
new
ArrayList
<>();
String
taskId
=
model
.
getNextTaskId
();
//组装信息
TaskResultDTO
task
=
new
TaskResultDTO
();
task
.
setResultCode
(
"approvalStatus"
);
task
.
setTaskId
(
taskId
);
task
.
setComment
(
params
.
getOrDefault
(
"comments"
,
""
).
toString
());
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"approvalStatus"
,
"8"
);
task
.
setVariable
(
map
);
//执行流程
task
.
setNextExecuteUserCompanyCode
(
model
.
getInspectionUnitCode
());
ProcessTaskDTO
processTaskDTO
=
cmWorkflowService
.
reject
(
taskId
,
task
);
String
nextTaskName
=
""
;
this
.
buildRoleList
(
Collections
.
singletonList
(
processTaskDTO
),
roleList
,
roleListAll
);
List
<
WorkflowResultDto
>
workflowResultDtos
=
taskModelService
.
buildWorkFlowInfo
(
Collections
.
singletonList
(
processTaskDTO
));
model
.
setStatus
(
String
.
valueOf
(
FlowStatusEnum
.
NO_ACCEPT
.
getCode
()));
model
.
setStatusName
(
FlowStatusEnum
.
NO_ACCEPT
.
getName
());
String
processDescription
=
(
String
)
params
.
get
(
"comments"
);
if
(
StringUtils
.
isNotBlank
(
processDescription
))
{
model
.
setProcessDescription
(
processDescription
);
}
String
nextUserIds
=
workflowResultDtos
.
get
(
0
).
getNextExecutorUserIds
();
String
executorRoleIds
=
workflowResultDtos
.
get
(
0
).
getExecutorRoleIds
();
nextTaskName
=
workflowResultDtos
.
get
(
0
).
getNextTaskName
();
nextTaskId
=
workflowResultDtos
.
get
(
0
).
getNextTaskId
();
model
.
setNextExecuteIds
(
String
.
join
(
","
,
roleList
));
if
(!
org
.
springframework
.
util
.
ObjectUtils
.
isEmpty
(
model
.
getWorkflowRole
()))
{
model
.
setWorkflowRole
(
model
.
getWorkflowRole
()
+
","
+
String
.
join
(
","
,
roleList
));
}
else
{
model
.
setWorkflowRole
(
String
.
join
(
","
,
roleList
));
}
model
.
setNextTaskId
(
nextTaskId
);
model
.
setPromoter
(
RequestContext
.
getExeUserId
());
model
.
setNextTaskName
(
nextTaskName
);
model
.
setNextExecuteIds
(
executorRoleIds
);
model
.
setNextExecuteUserIds
(
nextUserIds
);
createNextTask
(
model
,
nextTaskName
,
nextUserIds
);
this
.
updateWithModel
(
model
);
this
.
createNoAcceptLog
(
model
);
// 更新流程中的流程数据
commonService
.
saveExecuteFlowData2Redis
(
model
.
getProcessInstanceId
(),
this
.
buildInstanceRuntimeData
(
model
));
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
return
true
;
}
private
void
createNoAcceptLog
(
JyjcInspectionApplicationModel
model
)
{
JyjcInspectionApplicationNoAcceptLogModel
noAcceptLogModel
=
new
JyjcInspectionApplicationNoAcceptLogModel
();
noAcceptLogModel
.
setApplicationSeq
(
model
.
getSequenceNbr
());
noAcceptLogModel
.
setInspectionUnitCode
(
model
.
getInspectionUnitCode
());
noAcceptLogModel
.
setNoAcceptUserId
(
RequestContext
.
getExeUserId
());
noAcceptLogModel
.
setRemark
(
model
.
getProcessDescription
());
noAcceptLogService
.
createWithModel
(
noAcceptLogModel
);
}
/**
* 撤回流程办理单
*/
...
...
@@ -1254,4 +1344,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
queryWrapper
.
lambda
().
in
(
IdxBizJgUseInfo:
:
getRecord
,
equIds
);
return
jgUseInfoMapper
.
selectList
(
queryWrapper
);
}
public
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitListForWorkbench
(
String
openBizType
)
{
return
commonService
.
getInspectionUnitList
(
openBizType
);
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/JyjcOpeningApplicationServiceImpl.java
View file @
8408a007
...
...
@@ -32,6 +32,7 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.BaseUnitLicence
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum
;
...
...
@@ -130,6 +131,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Autowired
RedissonClient
redissonClient
;
@Autowired
private
RuleCommonServiceImpl
ruleCommonService
;
@Autowired
private
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
;
private
static
Map
<
String
,
DictionarieValueModel
>
permissionLevelMap
;
private
static
List
<
DictionarieValueModel
>
permissionItemList
;
...
...
@@ -902,7 +909,24 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Override
public
List
<
TzBaseEnterpriseInfoDto
>
getUnitListByRecord
(
String
record
)
{
return
ruleActionHandler
.
getInspectionUnitList
(
new
ArrayList
<>(),
true
,
record
,
OpenBizTypeEnum
.
JC
.
getCode
());
return
this
.
getInspectionUnitList
(
new
ArrayList
<>(),
true
,
record
,
OpenBizTypeEnum
.
JC
.
getCode
());
}
private
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitList
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
String
record
,
String
openBizType
)
{
// 是否进行属地过滤
String
areaCode
=
isMatchArea
?
ruleCommonService
.
getArea
(
record
)
:
""
;
// 所有符合单位的code
Set
<
String
>
unitCodes
=
unitLicenceList
.
stream
().
map
(
TzBaseUnitLicence:
:
getUnitCode
).
collect
(
Collectors
.
toSet
());
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
new
ArrayList
<>();
// 按照资质 + areaCode,进行设备单位的筛选
if
(
unitCodes
.
size
()
>
0
)
{
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
new
ArrayList
<>(
unitCodes
),
areaCode
,
openBizType
);
}
if
(
matchEnterpriseInfos
.
isEmpty
())
{
log
.
info
(
"按照资质、区域未匹配到对应的单位、按照地市未匹配到单位,将返回全部单位"
);
return
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
null
,
null
,
openBizType
);
}
return
matchEnterpriseInfos
;
}
/**
...
...
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/java/com/yeejoin/amos/boot/module/jyjc/biz/service/impl/RuleCommonServiceImpl.java
0 → 100644
View file @
8408a007
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
biz
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.sun.org.apache.regexp.internal.RE
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Component
;
import
java.util.Arrays
;
/**
* @author Administrator
*/
@Component
public
class
RuleCommonServiceImpl
{
private
UseInfoMapper
useInfoMapper
;
/**
* 特殊独立的区县
*/
private
static
final
String
[]
EXCLUSION_CITY_REGIONS
=
{
"610403"
,
"610581"
};
public
RuleCommonServiceImpl
(
UseInfoMapper
useInfoMapper
)
{
this
.
useInfoMapper
=
useInfoMapper
;
}
public
String
getArea
(
String
record
)
{
UseInfo
equipUseInfo
=
useInfoMapper
.
selectOne
(
Wrappers
.<
UseInfo
>
lambdaQuery
().
select
(
UseInfo:
:
getCity
,
UseInfo:
:
getCounty
).
eq
(
UseInfo:
:
getRecord
,
record
));
if
(
equipUseInfo
==
null
)
{
return
""
;
}
// 特殊地区特殊处理,目前有韩城、杨凌,原因行政区划上是有层级的,但是业务办理时,他们与所在地市是同级别的
if
(
StringUtils
.
isEmpty
(
equipUseInfo
.
getCity
())
||
StringUtils
.
isEmpty
(
equipUseInfo
.
getCounty
()))
{
return
""
;
}
if
(
Arrays
.
asList
(
EXCLUSION_CITY_REGIONS
).
contains
(
equipUseInfo
.
getCounty
()))
{
return
equipUseInfo
.
getCounty
();
}
return
equipUseInfo
.
getCity
();
}
public
UseInfo
getUseInfo
(
String
record
)
{
return
useInfoMapper
.
selectOne
(
Wrappers
.<
UseInfo
>
lambdaQuery
().
select
(
UseInfo:
:
getCity
,
UseInfo:
:
getCounty
).
eq
(
UseInfo:
:
getRecord
,
record
));
}
public
String
getArea
(
UseInfo
equipUseInfo
)
{
if
(
equipUseInfo
==
null
)
{
return
""
;
}
// 特殊地区特殊处理,目前有韩城、杨凌,原因行政区划上是有层级的,但是业务办理时,他们与所在地市是同级别的
if
(
StringUtils
.
isEmpty
(
equipUseInfo
.
getCity
())
||
StringUtils
.
isEmpty
(
equipUseInfo
.
getCounty
()))
{
return
""
;
}
if
(
Arrays
.
asList
(
EXCLUSION_CITY_REGIONS
).
contains
(
equipUseInfo
.
getCounty
()))
{
return
equipUseInfo
.
getCounty
();
}
return
equipUseInfo
.
getCity
();
}
public
String
getCounty
(
UseInfo
equipUseInfo
)
{
if
(
equipUseInfo
==
null
)
{
return
""
;
}
return
equipUseInfo
.
getCounty
();
}
}
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/resources/application.properties
View file @
8408a007
...
...
@@ -37,8 +37,8 @@ spring.security.user.name=admin
spring.security.user.password
=
a1234560
spring.security.user.roles
=
SBA_ADMIN
amos.system.user.user-name
=
robot_admin
amos.system.user.password
=
a123456
7
amos.system.user.user-name
=
tzs_shg
amos.system.user.password
=
a123456
0
amos.system.user.app-key
=
AMOS_STUDIO
amos.system.user.product
=
AMOS_STUDIO_WEB
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/entity/RegistrationInfo.java
View file @
8408a007
...
...
@@ -185,4 +185,13 @@ public class RegistrationInfo extends AbstractEquipBaseEntity {
@TableField
(
"\"LAST_USE_CERT_FILE_PATH\""
)
private
String
lastUseCertFilePath
;
/**
* 是否球罐
* 1:是
* 0:不是
*/
@TableField
(
"\"WHETHER_SPHERICAL_TANK\""
)
private
String
whetherSphericalTank
;
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/enums/FlowStatusEnum.java
View file @
8408a007
...
...
@@ -43,7 +43,12 @@ public enum FlowStatusEnum {
/**
* 已作废
*/
TO_BE_DISCARD
(
6617
,
"已作废"
);
TO_BE_DISCARD
(
6617
,
"已作废"
),
/**
* 不予受理
*/
NO_ACCEPT
(
6618
,
"不予受理"
);
private
final
int
code
;
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/EquipTechParamBoilerMapper.xml
View file @
8408a007
...
...
@@ -5,8 +5,8 @@
resultType=
"com.yeejoin.amos.boot.module.ymt.api.entity.EquipTechParamBoiler"
>
select
"DEVICE_LEVEL",
"RATED_EVAPORATION_CAPACITY_THERMAL_POWER"
,
"RATED_WORKING_PRESSURE"
,
COALESCE("RATED_EVAPORATION_CAPACITY_THERMAL_POWER", 0) as RATED_EVAPORATION_CAPACITY_THERMAL_POWER
,
COALESCE("RATED_WORKING_PRESSURE", 0) as RATED_WORKING_PRESSURE
,
"RATED_OPERATING_TEMPERATURE",
"DESIGN_THERMAL_EFFICIENCY",
"FEEDWATER_TEMPERATURE",
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/EquipTechParamRidesMapper.xml
View file @
8408a007
...
...
@@ -3,17 +3,17 @@
<mapper
namespace=
"com.yeejoin.amos.boot.module.ymt.api.mapper.EquipTechParamRidesMapper"
>
<select
id=
"queryTechParamInUse"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.entity.EquipTechParamRides"
>
SELECT
"TRACK_HEIGHT"
,
"RUNNING_SPEED"
,
"NUMBER_OF_PASSENGERS"
,
"SLIDE_LENGTH"
,
COALESCE("TRACK_HEIGHT", 0) as TRACK_HEIGHT
,
COALESCE("RUNNING_SPEED", 0) as RUNNING_SPEED
,
COALESCE("NUMBER_OF_PASSENGERS", 0) as NUMBER_OF_PASSENGERS
,
COALESCE("SLIDE_LENGTH", 0) as SLIDE_LENGTH
,
"NUMBER_OF_VEHICLES",
"OPERATING_HEIGHT"
,
"ROTARY_DIAMETER"
,
COALESCE("OPERATING_HEIGHT", 0) as OPERATING_HEIGHT
,
COALESCE("ROTARY_DIAMETER", 0) as ROTARY_DIAMETER
,
"UNILATERAL_SWING_ANGLE",
"DIP"
,
COALESCE("DIP", 0) as DIP
,
"SLEWING_SPEED",
"EQUIPMENT_HEIGHT"
COALESCE("EQUIPMENT_HEIGHT", 0) as EQUIPMENT_HEIGHT
FROM
idx_biz_jg_tech_params_rides
WHERE RECORD = #{record}
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/EquipTechParamVesselMapper.xml
View file @
8408a007
...
...
@@ -33,7 +33,7 @@
heat_treatment_method,
qp_heat_treatment_temperature,
installation_position,
container_volume,
COALESCE(container_volume, 0) as
container_volume,
pressure_vessel_diameter,
height,
material_cylinder_shell,
...
...
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