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
ddb50201
Commit
ddb50201
authored
Jun 19, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.检验检测报检规则3.0版本
parent
410eff12
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
505 additions
and
18 deletions
+505
-18
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
+3
-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
+111
-12
JyjcInspectionApplicationController.java
...c/biz/controller/JyjcInspectionApplicationController.java
+28
-0
InspectionApplicationPushEventListener.java
...vent/listener/InspectionApplicationPushEventListener.java
+1
-1
InspectionOrgRefreshListener.java
...odule/jyjc/biz/listener/InspectionOrgRefreshListener.java
+49
-1
InspectionEquipInfo.java
...n/amos/boot/module/jyjc/biz/rule/InspectionEquipInfo.java
+11
-0
JyjcInspectionApplicationNoAcceptLogServiceImpl.java
...impl/JyjcInspectionApplicationNoAcceptLogServiceImpl.java
+34
-0
JyjcInspectionApplicationServiceImpl.java
...iz/service/impl/JyjcInspectionApplicationServiceImpl.java
+97
-1
application.properties
...module-jyjc-biz/src/main/resources/application.properties
+2
-2
FlowStatusEnum.java
...eejoin/amos/boot/module/ymt/api/enums/FlowStatusEnum.java
+6
-1
No files found.
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 @
ddb50201
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 @
ddb50201
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 @
ddb50201
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 @
ddb50201
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 @
ddb50201
...
@@ -18,4 +18,7 @@ public class InspectionEquipInfoModel implements Serializable {
...
@@ -18,4 +18,7 @@ public class InspectionEquipInfoModel implements Serializable {
@ApiModelProperty
(
value
=
"检验类型(小类)"
)
@ApiModelProperty
(
value
=
"检验类型(小类)"
)
private
String
inspectionType
;
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/JyjcInspectionApplicationNoAcceptLogModel.java
0 → 100644
View file @
ddb50201
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 @
ddb50201
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 @
ddb50201
<?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 @
ddb50201
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jyjc.biz.action;
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jyjc.biz.action;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
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.LicenceTypeEnum
;
import
com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum
;
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.api.enums.TopicEnum
;
...
@@ -17,10 +18,12 @@ import com.yeejoin.amos.component.rule.config.RuleConfig;
...
@@ -17,10 +18,12 @@ import com.yeejoin.amos.component.rule.config.RuleConfig;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.eclipse.paho.client.mqttv3.MqttException
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -42,6 +45,12 @@ public class RuleActionHandler {
...
@@ -42,6 +45,12 @@ public class RuleActionHandler {
*/
*/
private
static
final
String
[]
EXCLUSION_CITY_REGIONS
=
{
"610403"
,
"610581"
};
private
static
final
String
[]
EXCLUSION_CITY_REGIONS
=
{
"610403"
,
"610581"
};
/**
* 省特检院公司code
*/
@Value
(
"${province.inspection.company.code:126100004352004822}"
)
private
String
provinceInspectionCompanyCode
;
public
RuleActionHandler
(
EmqKeeper
emqKeeper
,
TzBaseUnitLicenceMapper
baseUnitLicenceMapper
,
public
RuleActionHandler
(
EmqKeeper
emqKeeper
,
TzBaseUnitLicenceMapper
baseUnitLicenceMapper
,
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
,
TzBaseEnterpriseInfoMapper
tzBaseEnterpriseInfoMapper
,
...
@@ -53,41 +62,77 @@ public class RuleActionHandler {
...
@@ -53,41 +62,77 @@ public class RuleActionHandler {
}
}
/**
/**
* 规则回调方法
* 规则回调方法
-首次提交的检验机构匹配
*
*
* @param bizObj 请求变量参数
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
* @param defaultInspectionCode 默认的检验机构code,多个用逗号分割,在按照属地匹配不上时,默认的检验机构
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param isMatchItem 是否需要匹配核准代码: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
)
{
log
.
info
(
"收到首次提交的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}"
,
bizObj
,
itemCode
,
isMatchArea
,
defaultInspectionCode
,
legalInspectionCodes
,
inspectionCompanyType
,
isMatchItem
);
InspectionEquipInfo
inspectionEquipInfo
=
(
InspectionEquipInfo
)
bizObj
;
InspectionEquipInfo
inspectionEquipInfo
=
(
InspectionEquipInfo
)
bizObj
;
try
{
try
{
// 1.获取所有的符合资质条件的单位许可信息
// 1.获取所有的符合资质条件的单位许可信息
List
<
TzBaseUnitLicence
>
unitLicenceList
=
getBaseUnitLicenceList
(
itemCode
);
List
<
TzBaseUnitLicence
>
unitLicenceList
=
getBaseUnitLicenceList
(
itemCode
,
isMatchItem
);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List
<
TzBaseEnterpriseInfoDto
>
tzBaseEnterpriseInfoList
=
getInspectionUnitList
(
unitLicenceList
,
isMatchArea
,
inspectionEquipInfo
.
getRecord
(),
OpenBizTypeEnum
.
JY
.
getCode
());
List
<
TzBaseEnterpriseInfoDto
>
tzBaseEnterpriseInfoList
=
getInspectionUnitListForFirstCommit
(
unitLicenceList
,
isMatchArea
,
inspectionEquipInfo
.
getRecord
(),
OpenBizTypeEnum
.
JY
.
getCode
(),
defaultInspectionCode
,
legalInspectionCodes
);
publishMqttMessage
(
inspectionEquipInfo
.
getComponentKey
(),
tzBaseEnterpriseInfoList
);
}
catch
(
MqttException
e
)
{
log
.
error
(
"Error publishing MQTT message: {}"
,
e
.
getMessage
());
}
}
/**
* 规则回调方法-不予受理的检验机构匹配
*
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
* @param defaultInspectionCode 默认的检验机构code
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
*/
public
void
noAcceptInspectionOrgMatchAction
(
Object
bizObj
,
String
itemCode
,
Boolean
isMatchArea
,
String
defaultInspectionCode
,
String
inspectionCompanyType
,
Boolean
isMatchItem
,
String
legalInspectionCodes
)
{
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
.
getRecord
(),
OpenBizTypeEnum
.
JY
.
getCode
(),
defaultInspectionCode
,
legalInspectionCodes
,
inspectionCompanyType
);
publishMqttMessage
(
inspectionEquipInfo
.
getComponentKey
(),
tzBaseEnterpriseInfoList
);
publishMqttMessage
(
inspectionEquipInfo
.
getComponentKey
(),
tzBaseEnterpriseInfoList
);
}
catch
(
MqttException
e
)
{
}
catch
(
MqttException
e
)
{
log
.
error
(
"Error publishing MQTT message: {}"
,
e
.
getMessage
());
log
.
error
(
"Error publishing MQTT message: {}"
,
e
.
getMessage
());
}
}
}
}
private
List
<
TzBaseUnitLicence
>
getBaseUnitLicenceList
(
String
itemCode
)
{
private
List
<
TzBaseUnitLicence
>
getBaseUnitLicenceList
(
String
itemCode
,
Boolean
isMatchItem
)
{
return
baseUnitLicenceMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzBaseUnitLicence
>()
List
<
TzBaseUnitLicence
>
tzBaseUnitLicences
;
if
(
isMatchItem
&&
StringUtils
.
isNotEmpty
(
itemCode
))
{
tzBaseUnitLicences
=
baseUnitLicenceMapper
.
selectList
(
new
LambdaQueryWrapper
<
TzBaseUnitLicence
>()
.
select
(
TzBaseUnitLicence:
:
getUnitCode
)
.
select
(
TzBaseUnitLicence:
:
getUnitCode
)
.
eq
(
TzBaseUnitLicence:
:
getLicenceType
,
LicenceTypeEnum
.
JY_JC
.
getCode
())
.
eq
(
TzBaseUnitLicence:
:
getLicenceType
,
LicenceTypeEnum
.
JY_JC
.
getCode
())
.
in
(
TzBaseUnitLicence:
:
getItemCode
,
Arrays
.
asList
(
itemCode
.
split
(
","
))));
.
in
(
TzBaseUnitLicence:
:
getItemCode
,
Arrays
.
asList
(
itemCode
.
split
(
","
)))
// .ge(TzBaseUnitLicence::getExpiryDate, LocalDate.now()));
.
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
;
}
}
public
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitList
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
String
record
,
String
openBizType
)
{
public
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitList
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
String
record
,
String
openBizType
)
{
// 是否进行属地过滤
// 是否进行属地过滤
String
areaCode
=
isMatchArea
?
this
.
getArea
(
record
)
:
""
;
String
areaCode
=
isMatchArea
?
this
.
getArea
(
record
)
:
""
;
// 所有符合单位的code
// 所有符合单位的code
List
<
String
>
unitCodes
=
unitLicenceList
.
stream
()
List
<
String
>
unitCodes
=
unitLicenceList
.
stream
().
map
(
TzBaseUnitLicence:
:
getUnitCode
).
collect
(
Collectors
.
toList
());
.
map
(
TzBaseUnitLicence:
:
getUnitCode
)
.
collect
(
Collectors
.
toList
());
// 按照资质 + areaCode,进行设备单位的筛选
// 按照资质 + areaCode,进行设备单位的筛选
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
unitCodes
,
areaCode
,
openBizType
);
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
unitCodes
,
areaCode
,
openBizType
);
if
(
matchEnterpriseInfos
.
isEmpty
())
{
if
(
matchEnterpriseInfos
.
isEmpty
())
{
...
@@ -97,8 +142,62 @@ public class RuleActionHandler {
...
@@ -97,8 +142,62 @@ public class RuleActionHandler {
return
matchEnterpriseInfos
;
return
matchEnterpriseInfos
;
}
}
private
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitListForNoAccept
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
String
record
,
String
openBizType
,
String
defaultInspectionCode
,
String
legalInspectionCodes
,
String
inspectionCompanyType
)
{
// 是否进行属地过滤
String
areaCode
=
isMatchArea
?
this
.
getArea
(
record
)
:
""
;
// 所有符合单位的code
List
<
String
>
unitCodes
=
unitLicenceList
.
stream
().
map
(
TzBaseUnitLicence:
:
getUnitCode
).
collect
(
Collectors
.
toList
());
// 按照资质 + areaCode,进行设备单位的筛选
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
unitCodes
,
areaCode
,
openBizType
);
// 第三方时需要去掉法定机构
if
(
inspectionCompanyType
.
equals
(
InspectionCompanyType
.
THIRD
.
getCode
()))
{
log
.
info
(
"第三方检验机构开始匹配"
);
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
e
->
!
legalInspectionCodes
.
contains
(
e
.
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
(
"指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外"
);
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
null
,
null
,
openBizType
);
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
c
->
!
provinceInspectionCompanyCode
.
contains
(
c
.
getUseCode
())).
collect
(
Collectors
.
toList
());
log
.
info
(
"指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,数据为:{}"
,
matchEnterpriseInfos
);
}
return
matchEnterpriseInfos
;
}
private
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitListForFirstCommit
(
List
<
TzBaseUnitLicence
>
unitLicenceList
,
Boolean
isMatchArea
,
String
record
,
String
openBizType
,
String
defaultInspectionCode
,
String
legalInspectionCodes
)
{
// 是否进行属地过滤
String
areaCode
=
isMatchArea
?
this
.
getArea
(
record
)
:
""
;
// 所有符合单位的code
List
<
String
>
unitCodes
=
unitLicenceList
.
stream
()
.
map
(
TzBaseUnitLicence:
:
getUnitCode
)
.
collect
(
Collectors
.
toList
());
// 将法定机构和符合资质要求的机构取交集
List
<
String
>
legalUnitCodes
=
Arrays
.
stream
(
legalInspectionCodes
.
split
(
","
)).
filter
(
unitCodes:
:
contains
).
collect
(
Collectors
.
toList
());
// 按照资质 + areaCode,进行设备单位的筛选
List
<
TzBaseEnterpriseInfoDto
>
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
legalUnitCodes
,
areaCode
,
openBizType
);
// 未匹配到法定机构时,返回指定的默认的法定机构
if
(
matchEnterpriseInfos
.
isEmpty
())
{
log
.
info
(
"按照资质、区域未匹配到法定检验机构"
);
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
new
ArrayList
<>(
Arrays
.
asList
(
defaultInspectionCode
.
split
(
","
))),
areaCode
,
openBizType
);
}
// 代码严谨判断,如前置调整法定机构单位为注册,返回全部的法定机构和第3方机构
if
(
matchEnterpriseInfos
.
isEmpty
())
{
log
.
info
(
"指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外"
);
matchEnterpriseInfos
=
tzBaseEnterpriseInfoMapper
.
getInspectionUnitListByCode
(
null
,
null
,
openBizType
);
matchEnterpriseInfos
=
matchEnterpriseInfos
.
stream
().
filter
(
c
->
!
provinceInspectionCompanyCode
.
contains
(
c
.
getUseCode
())).
collect
(
Collectors
.
toList
());
}
return
matchEnterpriseInfos
;
}
private
String
getArea
(
String
record
)
{
private
String
getArea
(
String
record
)
{
UseInfo
equipUseInfo
=
useInfoMapper
.
selectOne
(
Wrappers
.<
UseInfo
>
lambdaQuery
().
select
(
UseInfo:
:
getCity
,
UseInfo:
:
getCounty
).
eq
(
UseInfo:
:
getRecord
,
record
));
UseInfo
equipUseInfo
=
useInfoMapper
.
selectOne
(
Wrappers
.<
UseInfo
>
lambdaQuery
().
select
(
UseInfo:
:
getCity
,
UseInfo:
:
getCounty
).
eq
(
UseInfo:
:
getRecord
,
record
));
if
(
equipUseInfo
==
null
)
{
if
(
equipUseInfo
==
null
)
{
return
""
;
return
""
;
}
}
...
...
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 @
ddb50201
...
@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationMode
...
@@ -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.InspectionApplicationPushEvent
;
import
com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher
;
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.jyjc.biz.service.impl.JyjcInspectionApplicationServiceImpl
;
import
com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -188,6 +189,21 @@ public class JyjcInspectionApplicationController extends BaseController {
...
@@ -188,6 +189,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
* @param sequenceNbr sequenceNbr
...
@@ -238,4 +254,16 @@ public class JyjcInspectionApplicationController extends BaseController {
...
@@ -238,4 +254,16 @@ public class JyjcInspectionApplicationController extends BaseController {
JSONObject
jsonObject
=
new
JSONObject
(
map
);
JSONObject
jsonObject
=
new
JSONObject
(
map
);
return
ResponseHelper
.
buildResponse
(
jyjcInspectionApplicationServiceImpl
.
queryForEquipmentRegisterPage
(
jsonObject
));
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 @
ddb50201
...
@@ -204,7 +204,7 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
...
@@ -204,7 +204,7 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
equipData
.
setTechParams
(
this
.
populateEquipInfoWithTechParams
(
equipData
.
getEquList
(),
equipUnicode
));
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
));
EquipCategoryEnum
productType
=
EquipCategoryEnum
.
of
(
Integer
.
parseInt
(
equList
));
Map
<
String
,
Object
>
echParamMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
echParamMap
=
new
HashMap
<>();
switch
(
Objects
.
requireNonNull
(
productType
))
{
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 @
ddb50201
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jyjc
.
biz
.
listener
;
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.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
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.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.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.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.listener.message.BizMessage
;
import
com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo
;
import
com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo
;
...
@@ -14,6 +20,7 @@ import com.yeejoin.amos.component.rule.RuleTrigger;
...
@@ -14,6 +20,7 @@ import com.yeejoin.amos.component.rule.RuleTrigger;
import
com.yeejoin.amos.feign.rule.Rule
;
import
com.yeejoin.amos.feign.rule.Rule
;
import
com.yeejoin.amos.feign.rule.model.FactBaseModel
;
import
com.yeejoin.amos.feign.rule.model.FactBaseModel
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.eclipse.paho.client.mqttv3.MqttMessage
;
import
org.eclipse.paho.client.mqttv3.MqttMessage
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -27,6 +34,7 @@ import java.nio.charset.StandardCharsets;
...
@@ -27,6 +34,7 @@ import java.nio.charset.StandardCharsets;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.LinkedBlockingQueue
;
...
@@ -54,9 +62,20 @@ public class InspectionOrgRefreshListener extends EmqxListener {
...
@@ -54,9 +62,20 @@ public class InspectionOrgRefreshListener extends EmqxListener {
@Autowired
@Autowired
private
RegistrationInfoMapper
registrationInfoMapper
;
private
RegistrationInfoMapper
registrationInfoMapper
;
@Autowired
private
JyjcInspectionApplicationNoAcceptLogMapper
inspectionApplicationNoAcceptLogMapper
;
@Autowired
InspectionApplicationPushEventListener
applicationPushEventListener
;
@Value
(
"${spring.application.name}"
)
@Value
(
"${spring.application.name}"
)
private
String
applicationName
;
private
String
applicationName
;
@Autowired
Sequence
sequence
;
@Autowired
private
static
final
int
repeatTime
=
2
;
private
static
final
int
repeatTime
=
2
;
@Autowired
@Autowired
...
@@ -99,7 +118,6 @@ public class InspectionOrgRefreshListener extends EmqxListener {
...
@@ -99,7 +118,6 @@ public class InspectionOrgRefreshListener extends EmqxListener {
private
void
processBizMessage
(
BizMessage
bizMessage
)
{
private
void
processBizMessage
(
BizMessage
bizMessage
)
{
byte
[]
payload
=
bizMessage
.
getMessage
().
getPayload
();
byte
[]
payload
=
bizMessage
.
getMessage
().
getPayload
();
InspectionEquipInfoModel
equipInfoModel
=
parseObject
(
new
String
(
payload
,
StandardCharsets
.
UTF_8
),
InspectionEquipInfoModel
.
class
);
InspectionEquipInfoModel
equipInfoModel
=
parseObject
(
new
String
(
payload
,
StandardCharsets
.
UTF_8
),
InspectionEquipInfoModel
.
class
);
RegistrationInfo
registrationInfo
=
fetchRegistrationInfo
(
equipInfoModel
.
getRecord
());
RegistrationInfo
registrationInfo
=
fetchRegistrationInfo
(
equipInfoModel
.
getRecord
());
InspectionEquipInfo
inspectionEquipInfo
=
new
InspectionEquipInfo
();
InspectionEquipInfo
inspectionEquipInfo
=
new
InspectionEquipInfo
();
...
@@ -114,9 +132,39 @@ public class InspectionOrgRefreshListener extends EmqxListener {
...
@@ -114,9 +132,39 @@ public class InspectionOrgRefreshListener extends EmqxListener {
inspectionEquipInfo
.
setInspectionType
(
equipInfoModel
.
getInspectionType
());
inspectionEquipInfo
.
setInspectionType
(
equipInfoModel
.
getInspectionType
());
inspectionEquipInfo
.
setRecord
(
equipInfoModel
.
getRecord
());
inspectionEquipInfo
.
setRecord
(
equipInfoModel
.
getRecord
());
inspectionEquipInfo
.
setBizType
(
getCategoryByType
(
JYJCTypeEnum
.
of
(
inspectionEquipInfo
.
getInspectionType
())));
inspectionEquipInfo
.
setBizType
(
getCategoryByType
(
JYJCTypeEnum
.
of
(
inspectionEquipInfo
.
getInspectionType
())));
inspectionEquipInfo
.
setUuid
(
sequence
.
nextId
()
+
""
);
inspectionEquipInfo
.
setRequestType
(
this
.
buildRequestType
(
equipInfoModel
));
inspectionEquipInfo
.
setTechParams
(
this
.
getTechParams
(
registrationInfo
));
touchRuleWithApi
(
inspectionEquipInfo
);
touchRuleWithApi
(
inspectionEquipInfo
);
}
}
private
Map
<
String
,
Object
>
getTechParams
(
RegistrationInfo
registrationInfo
)
{
return
applicationPushEventListener
.
populateEquipInfoWithTechParams
(
registrationInfo
.
getEquList
(),
registrationInfo
.
getRecord
());
}
private
String
buildRequestType
(
InspectionEquipInfoModel
equipInfoModel
)
{
// 工作台发起申请
if
(
StringUtils
.
isEmpty
(
equipInfoModel
.
getAppSeq
()))
{
return
RequestTypeEnum
.
FIRST_REQUEST
.
getCode
();
}
JyjcInspectionApplicationNoAcceptLog
jyjcInspectionApplicationNoAcceptLog
=
getLastNoAcceptLog
(
equipInfoModel
);
// 没有不予受理请求记录
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:
:
getNoAcceptDate
);
wrapper
.
last
(
"limit 1"
);
wrapper
.
select
(
JyjcInspectionApplicationNoAcceptLog:
:
getApplicationSeq
,
JyjcInspectionApplicationNoAcceptLog:
:
getInspectionUnitCode
);
return
inspectionApplicationNoAcceptLogMapper
.
selectOne
(
wrapper
);
}
private
RegistrationInfo
fetchRegistrationInfo
(
String
record
)
{
private
RegistrationInfo
fetchRegistrationInfo
(
String
record
)
{
return
registrationInfoMapper
.
selectOne
(
return
registrationInfoMapper
.
selectOne
(
Wrappers
.<
RegistrationInfo
>
lambdaQuery
().
select
(
RegistrationInfo:
:
getRecord
,
RegistrationInfo:
:
getEquCategory
,
Wrappers
.<
RegistrationInfo
>
lambdaQuery
().
select
(
RegistrationInfo:
:
getRecord
,
RegistrationInfo:
:
getEquCategory
,
...
...
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 @
ddb50201
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jyjc.biz.rule;
...
@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jyjc.biz.rule;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -40,4 +41,14 @@ public class InspectionEquipInfo implements Serializable {
...
@@ -40,4 +41,14 @@ public class InspectionEquipInfo implements Serializable {
@ApiModelProperty
(
value
=
"检验类型(小类)"
)
@ApiModelProperty
(
value
=
"检验类型(小类)"
)
private
String
inspectionType
;
private
String
inspectionType
;
@ApiModelProperty
(
value
=
"请求类型:firstRequest-首次的提交,noAcceptRequest-不予受理的提交"
)
private
String
requestType
;
@ApiModelProperty
(
value
=
"消息唯一标识用来判断消息重复"
)
private
String
uuid
;
@ApiModelProperty
(
value
=
"最近不受理检验机构code"
)
private
String
lastNoAcceptInspectionCode
;
}
}
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 @
ddb50201
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 @
ddb50201
...
@@ -30,6 +30,7 @@ import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher;
...
@@ -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.JgFeignClient
;
import
com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient
;
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.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.entity.IdxBizJgUseInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum
;
...
@@ -129,6 +130,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
...
@@ -129,6 +130,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
@Value
(
"classpath:/json/bizTypeInfo.json"
)
@Value
(
"classpath:/json/bizTypeInfo.json"
)
private
Resource
bizTypeInfo
;
private
Resource
bizTypeInfo
;
/**
* 省特检院公司code
*/
@Value
(
"${province.inspection.company.code:126100004352004822}"
)
private
String
provinceInspectionCompanyCode
;
@Autowired
@Autowired
private
JyjcInspectionApplicationEquipMapper
jyjcInspectionApplicationEquipMapper
;
private
JyjcInspectionApplicationEquipMapper
jyjcInspectionApplicationEquipMapper
;
...
@@ -159,6 +166,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
...
@@ -159,6 +166,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
@Autowired
@Autowired
IdxBizJgUseInfoMapper
jgUseInfoMapper
;
IdxBizJgUseInfoMapper
jgUseInfoMapper
;
@Autowired
JyjcInspectionApplicationNoAcceptLogServiceImpl
noAcceptLogService
;
private
static
final
String
EQU_STATE
=
"EQU_STATE"
;
private
static
final
String
EQU_STATE
=
"EQU_STATE"
;
private
static
final
String
EQU_CODE
=
"EQU_CODE"
;
private
static
final
String
EQU_CODE
=
"EQU_CODE"
;
...
@@ -834,6 +844,86 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
...
@@ -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"
,
"1"
);
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
);
}
/**
/**
* 撤回流程办理单
* 撤回流程办理单
*/
*/
...
@@ -973,7 +1063,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
...
@@ -973,7 +1063,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
TaskModelDto
modelDto
=
new
TaskModelDto
();
TaskModelDto
modelDto
=
new
TaskModelDto
();
BeanUtil
.
copyProperties
(
taskV2Model
,
modelDto
);
BeanUtil
.
copyProperties
(
taskV2Model
,
modelDto
);
modelDto
.
setNextExecuteUser
(
model
.
getNextExecuteIds
());
modelDto
.
setNextExecuteUser
(
model
.
getNextExecuteIds
());
if
(
model
.
getStatus
().
equals
(
FlowStatusEnum
.
REJECTED
.
getCode
()
+
""
))
{
if
(
model
.
getStatus
().
equals
(
FlowStatusEnum
.
REJECTED
.
getCode
()
+
""
)
||
model
.
getStatus
().
equals
(
FlowStatusEnum
.
NO_ACCEPT
.
getCode
()
+
""
)
)
{
modelDto
.
setPageType
(
"edit"
);
modelDto
.
setPageType
(
"edit"
);
}
}
TaskMessageDto
obj
=
new
TaskMessageDto
();
TaskMessageDto
obj
=
new
TaskMessageDto
();
...
@@ -1254,4 +1344,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
...
@@ -1254,4 +1344,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
queryWrapper
.
lambda
().
in
(
IdxBizJgUseInfo:
:
getRecord
,
equIds
);
queryWrapper
.
lambda
().
in
(
IdxBizJgUseInfo:
:
getRecord
,
equIds
);
return
jgUseInfoMapper
.
selectList
(
queryWrapper
);
return
jgUseInfoMapper
.
selectList
(
queryWrapper
);
}
}
public
List
<
TzBaseEnterpriseInfoDto
>
getInspectionUnitListForWorkbench
(
String
openBizType
)
{
List
<
TzBaseEnterpriseInfoDto
>
enterpriseInfoDtos
=
commonService
.
getInspectionUnitList
(
openBizType
);
return
enterpriseInfoDtos
.
stream
().
filter
(
e
->
!
provinceInspectionCompanyCode
.
contains
(
e
.
getUseCode
())).
collect
(
Collectors
.
toList
());
}
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-biz/src/main/resources/application.properties
View file @
ddb50201
...
@@ -37,8 +37,8 @@ spring.security.user.name=admin
...
@@ -37,8 +37,8 @@ spring.security.user.name=admin
spring.security.user.password
=
a1234560
spring.security.user.password
=
a1234560
spring.security.user.roles
=
SBA_ADMIN
spring.security.user.roles
=
SBA_ADMIN
amos.system.user.user-name
=
robot_admin
amos.system.user.user-name
=
tzs_shg
amos.system.user.password
=
a123456
7
amos.system.user.password
=
a123456
0
amos.system.user.app-key
=
AMOS_STUDIO
amos.system.user.app-key
=
AMOS_STUDIO
amos.system.user.product
=
AMOS_STUDIO_WEB
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/enums/FlowStatusEnum.java
View file @
ddb50201
...
@@ -43,7 +43,12 @@ public enum FlowStatusEnum {
...
@@ -43,7 +43,12 @@ public enum FlowStatusEnum {
/**
/**
* 已作废
* 已作废
*/
*/
TO_BE_DISCARD
(
6617
,
"已作废"
);
TO_BE_DISCARD
(
6617
,
"已作废"
),
/**
* 不予受理
*/
NO_ACCEPT
(
6618
,
"不予受理"
);
private
final
int
code
;
private
final
int
code
;
...
...
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