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
998abdd7
Commit
998abdd7
authored
Oct 25, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.特种气瓶-登记证扫一扫后端接口
parent
a1b9c8c0
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1530 additions
and
818 deletions
+1530
-818
JgUseRegistrationManageDto.java
.../amos/boot/biz/common/dto/JgUseRegistrationManageDto.java
+115
-0
ChargeMediaConverter.java
.../boot/module/app/api/annotation/ChargeMediaConverter.java
+34
-0
Converter.java
...eejoin/amos/boot/module/app/api/annotation/Converter.java
+6
-0
DefaultConverter.java
...amos/boot/module/app/api/annotation/DefaultConverter.java
+9
-0
FieldDisplayDefine.java
...os/boot/module/app/api/annotation/FieldDisplayDefine.java
+16
-0
InspectResultConverter.java
...oot/module/app/api/annotation/InspectResultConverter.java
+29
-0
CylinderInfoForWX.java
...ejoin/amos/boot/module/app/api/dto/CylinderInfoForWX.java
+45
-0
VehicleInfoForWX.java
...eejoin/amos/boot/module/app/api/dto/VehicleInfoForWX.java
+34
-0
AppCommonMapper.java
...join/amos/boot/module/app/api/mapper/AppCommonMapper.java
+37
-0
AppCommonMapper.xml
...ule-app-api/src/main/resources/mapper/AppCommonMapper.xml
+105
-0
TzsAppController.java
...amos/boot/module/app/biz/controller/TzsAppController.java
+14
-0
SetSearchDetailDetailHandlerImpl.java
...pp/biz/service/impl/SetSearchDetailDetailHandlerImpl.java
+20
-0
TzsAppService.java
.../amos/boot/module/app/biz/service/impl/TzsAppService.java
+832
-816
TzsAuthServiceImpl.java
.../boot/module/app/biz/service/impl/TzsAuthServiceImpl.java
+2
-2
UnitSearchDetailDetailHandlerImpl.java
...p/biz/service/impl/UnitSearchDetailDetailHandlerImpl.java
+20
-0
VehicleSearchDetailDetailHandlerImpl.java
...iz/service/impl/VehicleSearchDetailDetailHandlerImpl.java
+160
-0
ISearchDetailHandler.java
...os/boot/module/app/biz/strategy/ISearchDetailHandler.java
+20
-0
SearchDetailStrategyContext.java
.../module/app/biz/strategy/SearchDetailStrategyContext.java
+32
-0
No files found.
amos-boot-biz-common/src/main/java/com/yeejoin/amos/boot/biz/common/dto/JgUseRegistrationManageDto.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
biz
.
common
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* @author system_generator
* @date 2024-07-03
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"JgUseRegistrationManageDto"
,
description
=
""
)
public
class
JgUseRegistrationManageDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"使用单位名称"
)
private
String
useUnitName
;
@ApiModelProperty
(
value
=
"申请编号"
)
private
String
applyNo
;
@ApiModelProperty
(
value
=
"使用登记证状态(已登记,已注销)"
)
private
String
certificateStatus
;
@ApiModelProperty
(
value
=
"接收机构/登记机关"
)
private
String
receiveOrgName
;
@ApiModelProperty
(
value
=
"办理日期"
)
private
String
auditPassDate
;
@ApiModelProperty
(
value
=
"登记类别"
)
private
String
regType
;
@ApiModelProperty
(
value
=
"申请日期"
)
private
String
regDate
;
@ApiModelProperty
(
value
=
"设备种类"
)
private
String
equList
;
@ApiModelProperty
(
value
=
"设备类别"
)
private
String
equCategory
;
@ApiModelProperty
(
value
=
"设备品种"
)
private
String
equDefine
;
@ApiModelProperty
(
value
=
"设备种类编码"
)
private
String
equListCode
;
@ApiModelProperty
(
value
=
"设备类别编码"
)
private
String
equCategoryCode
;
@ApiModelProperty
(
value
=
"设备品种编码"
)
private
String
equDefineCode
;
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"创建人ID"
)
private
String
createUserId
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
String
createDate
;
@ApiModelProperty
(
value
=
"使用登记证编号"
)
private
String
useRegistrationCode
;
@ApiModelProperty
(
value
=
"使用单位统一信用代码"
)
private
String
useUnitCreditCode
;
@ApiModelProperty
(
value
=
"原使用单位统一信用代码"
)
private
String
originalUseUnitCreditCode
;
@ApiModelProperty
(
value
=
"接收机构公司代码"
)
private
String
receiveCompanyCode
;
@ApiModelProperty
(
value
=
"登记证书编号/登记证书唯一码"
)
private
String
certificateNo
;
@ApiModelProperty
(
value
=
"数据类型:监管/行政审批局,企业"
)
private
String
dataType
;
@ApiModelProperty
(
value
=
"车牌号-车用气瓶登记"
)
private
String
carNumber
;
@ApiModelProperty
(
value
=
"设备使用地址"
)
private
String
equUseAddress
;
@ApiModelProperty
(
value
=
"使用单位地址"
)
private
String
useUnitAddress
;
@ApiModelProperty
(
"使用登记办理类型,unit单位, set台套"
)
private
String
manageType
;
@ApiModelProperty
(
value
=
"使用单位统一信用代码-搜索使用"
)
private
String
useUnitCreditCodeForSearch
;
@ApiModelProperty
(
value
=
"是否车用气瓶--过滤数据使用"
)
private
String
whetherVehicleCylinder
;
@ApiModelProperty
(
value
=
"是否气瓶--过滤数据使用 ---目前使用场景:注销报废业务 值为true 只过滤出气瓶的使用登记证)"
)
private
String
isCyl
;
@ApiModelProperty
(
value
=
"是否报废状态:1报废 0 未报废 ---目前使用场景:非单位业务办理报废业务,筛选出非报废状态的证--过滤数据使用)"
)
private
String
isScrap
;
@ApiModelProperty
(
value
=
"业务类型code,报废业务使用"
)
private
String
applyType
;
@ApiModelProperty
(
value
=
"城市名称"
)
private
String
cityName
;
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/annotation/ChargeMediaConverter.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
annotation
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
ChargeMediaConverter
implements
Converter
<
String
>
{
private
static
final
Map
<
String
,
String
>
dictionary
=
new
HashMap
<>();
static
{
dictionary
.
put
(
"LIQUEFIED_NATURAL_GAS"
,
"液化天然气"
);
dictionary
.
put
(
"LIQUEFIED_PETROLEUM_GAS"
,
"液化石油气"
);
dictionary
.
put
(
"COMPRESSED_NATURAL_GAS"
,
"压缩天然气"
);
dictionary
.
put
(
"HYDROGEN"
,
"氢气"
);
dictionary
.
put
(
"HELIUM"
,
"氦气"
);
dictionary
.
put
(
"AIR"
,
"空气"
);
dictionary
.
put
(
"OXYGEN"
,
"氧气"
);
dictionary
.
put
(
"PROPANE"
,
"丙烷"
);
dictionary
.
put
(
"BUTANCE"
,
"丁烷"
);
dictionary
.
put
(
"LIQUEFIED_CARBON_DIOXIDE"
,
"液化二氧化碳"
);
dictionary
.
put
(
"LIQUID_OXYGEN"
,
"液氧"
);
dictionary
.
put
(
"NITROGEN"
,
"氮气"
);
dictionary
.
put
(
"ARGON"
,
"氩气"
);
dictionary
.
put
(
"LIQUID_ARGON"
,
"液氩"
);
dictionary
.
put
(
"LIQUID_NITROGEN"
,
"液氮"
);
dictionary
.
put
(
"DISSOLVE_ACETYLENE"
,
"溶解乙炔"
);
dictionary
.
put
(
"1,1,1,2-TETRAFLUOROETHANE_(R134A)"
,
"1,1,1,2-四氟乙烷(R134a)"
);
}
@Override
public
String
convertToLabelData
(
String
key
)
{
return
dictionary
.
getOrDefault
(
key
,
key
);
}
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/annotation/Converter.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
annotation
;
public
interface
Converter
<
V
>
{
V
convertToLabelData
(
String
key
);
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/annotation/DefaultConverter.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
annotation
;
public
class
DefaultConverter
implements
Converter
<
String
>
{
@Override
public
String
convertToLabelData
(
String
key
)
{
return
key
;
}
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/annotation/FieldDisplayDefine.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
annotation
;
import
java.lang.annotation.*
;
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
FIELD
)
@Documented
public
@interface
FieldDisplayDefine
{
String
value
();
boolean
isExist
()
default
true
;
Class
<?
extends
Converter
>
converter
()
default
DefaultConverter
.
class
;
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/annotation/InspectResultConverter.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
annotation
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
InspectResultConverter
implements
Converter
<
String
>
{
private
static
final
Map
<
String
,
String
>
dictionary
=
new
HashMap
<>();
static
{
dictionary
.
put
(
"6040"
,
"合格"
);
dictionary
.
put
(
"6041"
,
"不合格"
);
dictionary
.
put
(
"6042"
,
"复检合格"
);
dictionary
.
put
(
"6043"
,
"复检不合格"
);
dictionary
.
put
(
"6044"
,
"其他"
);
dictionary
.
put
(
"6045"
,
"整改后合格"
);
dictionary
.
put
(
"6046"
,
"符合"
);
dictionary
.
put
(
"6047"
,
"不符合"
);
dictionary
.
put
(
"6048"
,
"符合要求"
);
dictionary
.
put
(
"6049"
,
"基本符合要求"
);
dictionary
.
put
(
"6050"
,
"不符合要求"
);
dictionary
.
put
(
"6051"
,
"允许使用"
);
}
@Override
public
String
convertToLabelData
(
String
key
)
{
return
dictionary
.
getOrDefault
(
key
,
key
);
}
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/dto/CylinderInfoForWX.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
dto
;
import
com.yeejoin.amos.boot.module.app.api.annotation.ChargeMediaConverter
;
import
com.yeejoin.amos.boot.module.app.api.annotation.FieldDisplayDefine
;
import
com.yeejoin.amos.boot.module.app.api.annotation.InspectResultConverter
;
import
lombok.Data
;
@Data
public
class
CylinderInfoForWX
{
private
String
record
;
@FieldDisplayDefine
(
value
=
"设备品种"
)
private
String
equDefine
;
@FieldDisplayDefine
(
value
=
"产品编号"
)
private
String
factoryNum
;
@FieldDisplayDefine
(
value
=
"设备代码"
)
private
String
equCode
;
@FieldDisplayDefine
(
value
=
"制造单位"
)
private
String
produceUnitName
;
@FieldDisplayDefine
(
value
=
"制造年月"
)
private
String
produceDate
;
@FieldDisplayDefine
(
value
=
"充装介质"
,
converter
=
ChargeMediaConverter
.
class
)
private
String
chargingMedium
;
@FieldDisplayDefine
(
value
=
"公称工作压力(MPa)"
)
private
String
nominalWorkingPressure
;
@FieldDisplayDefine
(
value
=
"容积(L)"
)
private
String
singleBottleVolume
;
@FieldDisplayDefine
(
value
=
"最近一次检验日期"
)
private
String
lastInspectDate
;
@FieldDisplayDefine
(
value
=
"下次检验日期"
)
private
String
nextInspectDate
;
@FieldDisplayDefine
(
value
=
"检验结果"
,
converter
=
InspectResultConverter
.
class
)
private
String
inspectConclusion
;
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/dto/VehicleInfoForWX.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
dto
;
import
com.yeejoin.amos.boot.module.app.api.annotation.FieldDisplayDefine
;
import
lombok.Data
;
@Data
public
class
VehicleInfoForWX
{
@FieldDisplayDefine
(
value
=
"车牌号"
)
private
String
carNumber
;
@FieldDisplayDefine
(
value
=
"使用登记证编号"
)
private
String
useRegistrationCode
;
@FieldDisplayDefine
(
value
=
"设备类别"
)
private
String
equCategory
;
@FieldDisplayDefine
(
value
=
"所属区域"
)
private
String
useUnitAddress
;
@FieldDisplayDefine
(
value
=
"气瓶数量"
)
private
String
gasNum
;
@FieldDisplayDefine
(
value
=
"使用单位名称"
,
isExist
=
false
)
private
String
useUnitName
;
@FieldDisplayDefine
(
value
=
"设备种类"
,
isExist
=
false
)
private
String
equList
;
@FieldDisplayDefine
(
value
=
"设备品种"
,
isExist
=
false
)
private
String
equDefine
;
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/java/com/yeejoin/amos/boot/module/app/api/mapper/AppCommonMapper.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
api
.
mapper
;
import
com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto
;
import
com.yeejoin.amos.boot.module.app.api.dto.CylinderInfoForWX
;
import
com.yeejoin.amos.boot.module.app.api.dto.VehicleInfoForWX
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
/**
* Mapper 接口
*
* @author system_generator
* @date 2023-12-13
*/
@Mapper
public
interface
AppCommonMapper
{
/**
* 查询指定单号下的车用气瓶信息
*
* @param applyNo 单号
* @return 车用气瓶信息
*/
List
<
CylinderInfoForWX
>
queryCylinderIfoOfVehicle
(
String
applyNo
);
/**
* 查询车辆基本信息
*
* @param applyNo 申请单号
* @return 车辆基本信息
*/
VehicleInfoForWX
queryVehicleBaseInfo
(
String
applyNo
);
JgUseRegistrationManageDto
selectOneCert
(
String
applyNo
);
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-api/src/main/resources/mapper/AppCommonMapper.xml
0 → 100644
View file @
998abdd7
<?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.app.api.mapper.AppCommonMapper"
>
<select
id=
"queryCylinderIfoOfVehicle"
resultType=
"com.yeejoin.amos.boot.module.app.api.dto.CylinderInfoForWX"
>
select
*
from
(select
f.record,
f.FACTORY_NUM,
f.PRODUCE_UNIT_NAME,
date_format(f.PRODUCE_DATE, 'YYYY-MM-DD') as PRODUCE_DATE,
p.CHARGING_MEDIUM,
p.NOMINAL_WORKING_PRESSURE,
p.SINGLE_BOTTLE_VOLUME,
r.equ_code
from
idx_biz_jg_factory_info f,
idx_biz_jg_tech_params_vessel p,
idx_biz_jg_register_info r
where
f.record=p.record and r.record = f.record and f.record in (
select
equ_id as record
from
(select
b.equ_id,
a.apply_no
from
tzs_jg_vehicle_information a,
tzs_jg_vehicle_information_eq b
where
b.vehicle_id = a.sequence_nbr
union ALL
select
b.equ_id,
a.apply_no
from
tzs_jg_change_vehicle_registration_unit a,
tzs_jg_change_vehicle_registration_unit_eq b
where
b.unit_change_id = a.sequence_nbr) as s1
WHERE
s1.apply_no = #{applyNo})) a
left join
(select
record,
date_format(INSPECT_DATE, 'YYYY-MM-DD') as lastInspectDate,
date_format(NEXT_INSPECT_DATE, 'YYYY-MM-DD') nextInspectDate,
INSPECT_CONCLUSION as inspectConclusion
from
idx_biz_jg_inspection_detection_info
where record in (select record from (select max(INSPECT_DATE), record FROM "idx_biz_jg_inspection_detection_info" where record in (
select
equ_id as record
from
(select
b.equ_id,
a.apply_no
from
tzs_jg_vehicle_information a,
tzs_jg_vehicle_information_eq b
where
b.vehicle_id = a.sequence_nbr
union ALL
select
b.equ_id,
a.apply_no
from
tzs_jg_change_vehicle_registration_unit a,
tzs_jg_change_vehicle_registration_unit_eq b
where
b.unit_change_id = a.sequence_nbr) as s1
WHERE
s1.apply_no = #{applyNo}) GROUP BY record))) b
on a.record = b.record
</select>
<select
id=
"queryVehicleBaseInfo"
resultType=
"com.yeejoin.amos.boot.module.app.api.dto.VehicleInfoForWX"
>
SELECT
use_registration_code,
car_number,
equ_list,
equ_define,
equ_category,
gas_num,
use_unit_address,
use_unit_name
FROM
"tzs_jg_use_registration_manage"
where
apply_no=#{applyNo} limit 1
</select>
<select
id=
"selectOneCert"
resultType=
"com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto"
>
SELECT
*
FROM
"tzs_jg_use_registration_manage"
WHERE
apply_no = #{applyNo}
and is_delete = false
ORDER BY rec_date desc limit 1
</select>
</mapper>
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/controller/TzsAppController.java
View file @
998abdd7
...
...
@@ -125,6 +125,20 @@ public class TzsAppController {
/**
* 小程序获取证详情-微信扫一扫
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@GetMapping
(
value
=
"/certInfoWX"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"小程序获取登记证或者使用标志详情"
,
notes
=
"小程序获取登记证或者使用标志详情"
)
public
ResponseModel
<
Map
>
getCertInfoForWX
(
@RequestParam
String
applyNo
,
@RequestParam
String
from
)
{
return
ResponseHelper
.
buildResponse
(
appService
.
getCertInfoForWX
(
applyNo
,
from
));
}
/**
* 根据监管码查询设备详情
*
* @return
...
...
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/service/impl/SetSearchDetailDetailHandlerImpl.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
biz
.
service
.
impl
;
import
com.yeejoin.amos.boot.module.app.biz.strategy.ISearchDetailHandler
;
import
org.springframework.stereotype.Component
;
import
java.util.Collections
;
import
java.util.Map
;
@Component
public
class
SetSearchDetailDetailHandlerImpl
implements
ISearchDetailHandler
<
Map
<
String
,
Object
>>
{
@Override
public
String
manageType
()
{
return
"set"
;
}
@Override
public
Map
<
String
,
Object
>
hanlder
(
String
applyNo
,
String
from
)
{
return
Collections
.
emptyMap
();
}
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/service/impl/TzsAppService.java
View file @
998abdd7
...
...
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.google.common.collect.Lists
;
import
com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper
;
import
com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto
;
import
com.yeejoin.amos.boot.biz.common.entity.DataDictionary
;
import
com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisUtils
;
...
...
@@ -19,9 +20,10 @@ import com.yeejoin.amos.boot.module.app.api.dto.*;
import
com.yeejoin.amos.boot.module.app.api.entity.*
;
import
com.yeejoin.amos.boot.module.app.api.enums.EquipmentCategoryEnum
;
import
com.yeejoin.amos.boot.module.app.api.enums.EquipmentClassifityEnum
;
import
com.yeejoin.amos.boot.module.app.api.mapper.AppCommonMapper
;
import
com.yeejoin.amos.boot.module.app.api.mapper.CategoryOtherInfoMapper
;
import
com.yeejoin.amos.boot.module.app.api.mapper.EquipmentCategoryMapper
;
import
com.yeejoin.amos.boot.module.app.
api.mapper.ViewJgClaimMapper
;
import
com.yeejoin.amos.boot.module.app.
biz.strategy.SearchDetailStrategyContext
;
import
com.yeejoin.amos.boot.module.app.biz.utils.HttpUtils
;
import
com.yeejoin.amos.boot.module.app.biz.utils.JsonUtils
;
import
com.yeejoin.amos.boot.module.app.biz.utils.RedisUtil
;
...
...
@@ -78,819 +80,833 @@ import java.util.stream.Collectors;
@Service
@Slf4j
public
class
TzsAppService
{
/**
* 产品appkey
*/
@Value
(
"${amos.biz.appCode:AMOS_STUDIO}"
)
private
String
appKey
;
/**
* 产品product
*/
private
static
final
String
product
=
"AMOS_STUDIO_WEB"
;
private
static
final
String
regionRedis
=
"app_region_redis"
;
private
final
int
successsCode
=
200
;
@Autowired
DesignInfoService
designInfoService
;
@Autowired
DataDictionaryMapper
dataDictionaryMapper
;
@Autowired
IdxFeignService
idxFeignService
;
@Autowired
EquipmentCategoryMapper
equipmentCategoryMapper
;
@Autowired
EquipmentCategoryServiceImpl
equipmentCategoryServiceImpl
;
@Autowired
ProduceInfoService
produceInfoService
;
@Autowired
ConstructionInfoService
constructionInfoService
;
@Autowired
RegistrationInfoService
registrationInfoService
;
@Autowired
EquipTechParamBoilerService
boilerService
;
@Autowired
EquipTechParamElevatorService
elevatorService
;
@Autowired
EquipTechParamLiftingService
liftingService
;
@Autowired
EquipTechParamPipelineService
pipelineService
;
@Autowired
EquipTechParamRidesService
ridesService
;
@Autowired
EquipTechParamRopewayService
ropewayService
;
@Autowired
EquipTechParamVehicleService
vehicleService
;
@Autowired
EquipTechParamVesselService
vesselService
;
@Autowired
MainPartsServiceImpl
mainPartsService
;
@Autowired
ProtectionDevicesServiceImpl
protectionDevicesService
;
@Autowired
UseInfoService
unseInfoService
;
@Autowired
MaintenanceInfoService
maintenanceInfoService
;
@Autowired
InspectionDetectionInfoServiceImpl
inspectionDetectionInfoService
;
@Autowired
OtherInfoService
otherInfoService
;
@Autowired
CategoryOtherInfoMapper
categoryOtherInfoMapper
;
@Autowired
RedisUtils
redisUtils
;
@Value
(
"${tzs.WxApp.appId}"
)
String
WxAppAppId
;
@Value
(
"${tzs.WxApp.secret}"
)
String
WxAppSecret
;
@Value
(
"${tzs.WxApp.grant-type}"
)
String
WxAppGrantType
;
@Value
(
"${minio.url.path}"
)
String
minioPath
;
@Autowired
ViewJgClaimMapper
viewJgClaimMapper
;
@Value
(
"classpath:/json/equipCategory.json"
)
private
Resource
equipCategory
;
@Autowired
RestHighLevelClient
restHighLevelClient
;
@Autowired
private
RedisUtil
redisUtil
;
private
static
final
String
STREET
=
"STREET"
;
public
Map
<
String
,
Object
>
getEquipmentInfo
(
String
record
)
{
List
<
DataDictionary
>
dictionaryList
=
getDictionary
();
List
<
EquipmentCategory
>
equipmentCategories
=
equipmentCategoryMapper
.
selectList
(
null
);
Map
<
String
,
Object
>
map
=
new
HashMap
();
map
.
put
(
"SEQUENCE_NBR"
,
record
);
map
.
put
(
"tableName"
,
"idx_biz_view_jg_claim"
);
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
model
=
idxFeignService
.
getPage
(
map
);
List
<
Map
<
String
,
Object
>>
detailMapList
=
model
.
getResult
().
getRecords
();
if
(!
ValidationUtil
.
isEmpty
(
detailMapList
))
{
map
=
detailMapList
.
iterator
().
next
();
}
map
.
putAll
(
getQRCode
(
record
));
JSONArray
jsonArray
=
new
JSONArray
();
// 出厂
JSONObject
exFactoryJsonObject
=
new
JSONObject
();
List
exFactoryList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
DesignInfo
.
class
,
DesignInfoModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
null
,
record
,
ProduceInfo
.
class
,
ProduceInfoModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
exFactoryJsonObject
.
put
(
"title"
,
"出厂"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 施工
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
ConstructionInfo
.
class
,
ConstructionInfoModel
.
class
,
constructionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"施工"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
// 注册
JSONObject
registrationJsonObject
=
new
JSONObject
();
String
equipType
=
String
.
valueOf
(
map
.
get
(
"EQU_LIST_CODE"
));
List
registrationList
=
new
ArrayList
();
switch
(
equipType
)
{
case
"4000"
:
getGroupList
(
null
,
record
,
EquipTechParamLifting
.
class
,
EquipTechParamLiftingModel
.
class
,
elevatorService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"3000"
:
getGroupList
(
null
,
record
,
EquipTechParamElevator
.
class
,
EquipTechParamElevatorModel
.
class
,
elevatorService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"5000"
:
getGroupList
(
null
,
record
,
EquipTechParamVehicle
.
class
,
EquipTechParamVehicleModel
.
class
,
vehicleService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"1000"
:
getGroupList
(
null
,
record
,
EquipTechParamBoiler
.
class
,
EquipTechParamBoilerModel
.
class
,
boilerService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"2000"
:
getGroupList
(
null
,
record
,
EquipTechParamVessel
.
class
,
EquipTechParamVesselModel
.
class
,
vesselService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"8000"
:
getGroupList
(
null
,
record
,
EquipTechParamPipeline
.
class
,
EquipTechParamPipelineModel
.
class
,
pipelineService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"6000"
:
getGroupList
(
null
,
record
,
EquipTechParamRides
.
class
,
EquipTechParamRidesModel
.
class
,
ridesService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"9000"
:
getGroupList
(
null
,
record
,
EquipTechParamRopeway
.
class
,
EquipTechParamRopewayModel
.
class
,
ropewayService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
}
getGroupList
(
null
,
record
,
RegistrationInfo
.
class
,
RegistrationInfoModel
.
class
,
registrationInfoService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
null
,
record
,
MainParts
.
class
,
MainPartsModel
.
class
,
mainPartsService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
null
,
record
,
ProtectionDevices
.
class
,
ProtectionDevicesModel
.
class
,
protectionDevicesService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
registrationJsonObject
.
put
(
"title"
,
"注册"
);
registrationJsonObject
.
put
(
"tabValue"
,
registrationList
);
jsonArray
.
add
(
registrationJsonObject
);
// 使用
JSONObject
useJsonObject
=
new
JSONObject
();
List
useList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
UseInfo
.
class
,
UseInfoModel
.
class
,
unseInfoService
,
useList
,
false
,
dictionaryList
,
equipmentCategories
);
useJsonObject
.
put
(
"title"
,
"使用"
);
useJsonObject
.
put
(
"tabValue"
,
useList
);
jsonArray
.
add
(
useJsonObject
);
// 维保
JSONObject
maintenanceJsonObject
=
new
JSONObject
();
List
maintenanceList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
MaintenanceInfo
.
class
,
MaintenanceInfoModel
.
class
,
maintenanceInfoService
,
maintenanceList
,
true
,
dictionaryList
,
equipmentCategories
);
maintenanceJsonObject
.
put
(
"title"
,
"维保"
);
maintenanceJsonObject
.
put
(
"tabValue"
,
maintenanceList
);
jsonArray
.
add
(
maintenanceJsonObject
);
// 检验
JSONObject
inspectionJsonObject
=
new
JSONObject
();
List
inspectionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModel
.
class
,
inspectionDetectionInfoService
,
inspectionList
,
true
,
dictionaryList
,
equipmentCategories
);
inspectionJsonObject
.
put
(
"title"
,
"检验"
);
inspectionJsonObject
.
put
(
"tabValue"
,
inspectionList
);
jsonArray
.
add
(
inspectionJsonObject
);
// 其他
JSONObject
otherJsonObject
=
new
JSONObject
();
List
otherList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
OtherInfo
.
class
,
OtherInfoModel
.
class
,
otherInfoService
,
otherList
,
false
,
dictionaryList
,
equipmentCategories
);
otherJsonObject
.
put
(
"title"
,
"其他"
);
otherJsonObject
.
put
(
"tabValue"
,
otherList
);
jsonArray
.
add
(
otherJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
return
map
;
}
public
Map
<
String
,
Object
>
getEquipmentInfoWX
(
String
record
)
{
List
<
DataDictionary
>
dictionaryList
=
getDictionary
();
List
<
EquipmentCategory
>
equipmentCategories
=
equipmentCategoryMapper
.
selectList
(
null
);
Map
<
String
,
Object
>
map
=
new
HashMap
();
map
.
put
(
"SEQUENCE_NBR"
,
record
);
map
.
put
(
"tableName"
,
"idx_biz_view_jg_claim"
);
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
model
=
idxFeignService
.
getPage
(
map
);
List
<
Map
<
String
,
Object
>>
detailMapList
=
model
.
getResult
().
getRecords
();
if
(!
ValidationUtil
.
isEmpty
(
detailMapList
))
{
map
=
detailMapList
.
iterator
().
next
();
}
if
(!
ObjectUtils
.
isEmpty
(
model
.
getResult
().
getRecords
().
get
(
0
).
get
(
"SUPERVISORY_CODE"
))){
map
.
putAll
(
getQRCode
(
model
.
getResult
().
getRecords
().
get
(
0
).
get
(
"SUPERVISORY_CODE"
).
toString
()));
}
JSONArray
jsonArray
=
new
JSONArray
();
JSONObject
exFactoryJsonObject
=
new
JSONObject
();
List
exFactoryList
=
new
ArrayList
();
HashMap
putMap
=
new
HashMap
();
Field
[]
fields
=
EquBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
if
(
EquipmentClassifityEnum
.
DT
.
getCode
().
equals
(
map
.
get
(
"EQU_LIST_CODE"
)))
{
// 基本信息
Field
[]
fields1
=
ElevatorBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields1
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
getGroupList
(
putMap
,
record
,
RegistrationInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
registrationInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
DesignInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
OtherInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
otherInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
UseInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
unseInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
ProduceInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
if
(
exFactoryList
.
size
()
>
0
)
{
String
area
=
map
.
get
(
"USE_PLACE"
).
toString
();
JSONObject
jsonObject
=
(
JSONObject
)
exFactoryList
.
get
(
0
);
List
<
HashMap
<
String
,
Object
>>
groupValue
=
(
List
<
HashMap
<
String
,
Object
>>)
jsonObject
.
get
(
"groupValue"
);
groupValue
.
forEach
(
e
->
{
e
.
put
(
"fieldValue"
,
putMap
.
get
(
e
.
get
(
"fieldKey"
)));
if
(
e
.
get
(
"fieldKey"
).
equals
(
"area"
))
{
e
.
put
(
"fieldValue"
,
area
);
}
});
Object
ob
=
exFactoryList
.
get
(
0
);
exFactoryList
.
clear
();
exFactoryList
.
add
(
ob
);
}
exFactoryJsonObject
.
put
(
"title"
,
"基本信息"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 最近检验信息
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModelForWX
.
class
,
inspectionDetectionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"最近检验信息"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
// 设备维保信息
JSONObject
useJsonObject
=
new
JSONObject
();
List
maintenanceList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
MaintenanceInfo
.
class
,
MaintenanceInfoModelForWX
.
class
,
maintenanceInfoService
,
maintenanceList
,
false
,
dictionaryList
,
equipmentCategories
);
useJsonObject
.
put
(
"title"
,
"设备维保信息"
);
if
(
maintenanceList
.
size
()
>
1
)
{
List
maintenanceList1
=
new
ArrayList
();
maintenanceList1
.
add
(
maintenanceList
.
get
(
0
));
maintenanceList
.
clear
();
maintenanceList
.
add
(
maintenanceList1
.
get
(
0
));
}
useJsonObject
.
put
(
"tabValue"
,
maintenanceList
);
jsonArray
.
add
(
useJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
}
else
if
(
"气瓶"
.
equals
(
map
.
get
(
"EQU_CATEGORY"
)))
{
// 基本信息
Field
[]
fields2
=
CylinderEquBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields2
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
getGroupList
(
putMap
,
record
,
RegistrationInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
registrationInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
DesignInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
OtherInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
otherInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
UseInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
unseInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
ProduceInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
if
(
exFactoryList
.
size
()
>
0
)
{
JSONObject
jsonObject
=
(
JSONObject
)
exFactoryList
.
get
(
0
);
List
<
HashMap
<
String
,
Object
>>
groupValue
=
(
List
<
HashMap
<
String
,
Object
>>)
jsonObject
.
get
(
"groupValue"
);
groupValue
.
forEach
(
e
->
{
e
.
put
(
"fieldValue"
,
putMap
.
get
(
e
.
get
(
"fieldKey"
)));
});
Object
ob
=
exFactoryList
.
get
(
0
);
exFactoryList
.
clear
();
exFactoryList
.
add
(
ob
);
}
exFactoryJsonObject
.
put
(
"title"
,
"基本信息"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 最近检验信息
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModelForWX
.
class
,
inspectionDetectionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"最近检验信息"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
}
else
{
// 基本信息
Field
[]
fields3
=
OtherEquBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields3
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
getGroupList
(
putMap
,
record
,
RegistrationInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
registrationInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
DesignInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
OtherInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
otherInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
UseInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
unseInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
ProduceInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
if
(
exFactoryList
.
size
()
>
0
)
{
JSONObject
jsonObject
=
(
JSONObject
)
exFactoryList
.
get
(
0
);
List
<
HashMap
<
String
,
Object
>>
groupValue
=
(
List
<
HashMap
<
String
,
Object
>>)
jsonObject
.
get
(
"groupValue"
);
groupValue
.
forEach
(
e
->
{
e
.
put
(
"fieldValue"
,
putMap
.
get
(
e
.
get
(
"fieldKey"
)));
});
Object
ob
=
exFactoryList
.
get
(
0
);
exFactoryList
.
clear
();
exFactoryList
.
add
(
ob
);
}
exFactoryJsonObject
.
put
(
"title"
,
"基本信息"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 最近检验信息
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModelForWX
.
class
,
inspectionDetectionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"最近检验信息"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
}
return
map
;
}
public
void
getGroupList
(
HashMap
putMap
,
String
record
,
Class
entity
,
Class
dto
,
BaseService
service
,
List
list
,
boolean
isOne
,
List
<
DataDictionary
>
dictionaryList
,
List
<
EquipmentCategory
>
equipmentCategories
)
{
TableInfoHelper
.
initTableInfo
(
new
MapperBuilderAssistant
(
new
MybatisConfiguration
(),
""
),
entity
);
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
eq
(
"RECORD"
,
record
);
if
(
isOne
)
{
wrapper
.
orderByDesc
(
"REC_DATE"
);
}
List
entityList
=
service
.
list
(
wrapper
);
Iterator
iterator
=
entityList
.
iterator
();
JSONObject
result
;
if
(!
isOne
)
{
if
(!
ValidationUtil
.
isEmpty
(
entityList
))
{
if
(
entityList
.
size
()
>
0
)
{
while
(
iterator
.
hasNext
())
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
iterator
.
next
()));
result
=
getFieldList
(
putMap
,
dto
,
jsonObject
,
null
,
dictionaryList
,
equipmentCategories
);
list
.
add
(
result
);
}
}
}
}
else
{
int
count
=
entityList
.
size
();
JSONObject
jsonObject
=
null
;
if
(
count
>
0
)
{
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
iterator
.
next
()));
}
else
{
jsonObject
=
new
JSONObject
();
}
result
=
getFieldList
(
putMap
,
dto
,
jsonObject
,
count
,
dictionaryList
,
equipmentCategories
);
list
.
add
(
result
);
}
}
public
JSONObject
getFieldList
(
HashMap
putMap
,
Class
clazz
,
JSONObject
jsonObject
,
Integer
count
,
List
<
DataDictionary
>
dictionaryList
,
List
<
EquipmentCategory
>
equipmentCategories
)
{
JSONObject
result
=
new
JSONObject
();
JSONObject
ApiModel
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
clazz
.
getAnnotation
(
ApiModel
.
class
)));
List
<
Field
>
declaredFields
=
Lists
.
newArrayList
(
clazz
.
getSuperclass
().
getDeclaredFields
());
declaredFields
.
addAll
(
Arrays
.
asList
(
clazz
.
getDeclaredFields
()));
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
if
(!
ValidationUtil
.
isEmpty
(
declaredFields
))
{
for
(
Field
field
:
declaredFields
)
{
if
(
"sequenceNbr"
.
equals
(
field
.
getName
())
||
"recDate"
.
equals
(
field
.
getName
())
||
"recUserId"
.
equals
(
field
.
getName
())
||
"recUserName"
.
equals
(
field
.
getName
())
||
"isDelete"
.
equals
(
field
.
getName
()))
{
continue
;
}
if
(
field
.
getAnnotation
(
ApiModelProperty
.
class
)
!=
null
&&
!
ValidationUtil
.
isEmpty
(
field
.
getAnnotation
(
ApiModelProperty
.
class
).
value
()))
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
String
filedName
=
field
.
getAnnotation
(
ApiModelProperty
.
class
).
value
();
// key和value可根据需求存
// 这存的key为注解的值,value为类属性名
map
.
put
(
"fieldName"
,
filedName
);
map
.
put
(
"fieldKey"
,
field
.
getName
());
if
(!
ValidationUtil
.
isEmpty
(
jsonObject
))
{
map
.
put
(
"fieldValue"
,
jsonObject
.
getString
(
field
.
getName
()));
getCon
(
field
.
getName
(),
jsonObject
,
map
,
dictionaryList
,
equipmentCategories
);
}
else
{
map
.
put
(
"fieldValue"
,
""
);
}
if
(
null
!=
putMap
&&
putMap
.
containsKey
(
field
.
getName
()))
{
if
(
null
!=
map
.
get
(
"fieldValue"
))
{
putMap
.
put
(
field
.
getName
(),
map
.
get
(
"fieldValue"
));
}
}
// 街道信息处理
if
(
String
.
valueOf
(
map
.
get
(
"fieldKey"
)).
equals
(
"factoryUseSiteStreet"
))
{
map
.
put
(
"fieldValue"
,
getStreet
(
String
.
valueOf
(
map
.
get
(
"fieldValue"
))));
}
list
.
add
(
map
);
}
}
}
// 整理出现多个附件的情况
Iterator
<
Map
<
String
,
Object
>>
iterator
=
list
.
iterator
();
JSONArray
array
=
new
JSONArray
();
Boolean
bool
=
true
;
String
name
=
""
;
while
(
iterator
.
hasNext
())
{
Map
<
String
,
Object
>
map
=
iterator
.
next
();
String
fieldName
=
map
.
get
(
"fieldName"
).
toString
();
if
(
fieldName
.
contains
(
"附件"
))
{
if
(
bool
)
{
// 第一个出现的附件名称为表单显示的名称
name
=
fieldName
;
bool
=
false
;
}
if
(!
ValidationUtil
.
isEmpty
(
map
.
get
(
"fieldValue"
)))
{
JSONArray
jsonArray
=
JSON
.
parseArray
(
String
.
valueOf
(
map
.
get
(
"fieldValue"
)));
JSONArray
json
=
new
JSONArray
();
for
(
Object
obj
:
jsonArray
)
{
JSONObject
object
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
obj
));
if
(!
ValidationUtil
.
isEmpty
(
object
))
{
object
.
getString
(
"url"
);
object
.
put
(
"url"
,
object
.
getString
(
"url"
));
json
.
add
(
object
);
}
}
array
.
addAll
(
json
);
}
// 删除所有附件
iterator
.
remove
();
}
}
// 如果有附件 整理为一个附件 添加入list里
if
(!
bool
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"fieldKey"
,
"files"
);
map
.
put
(
"fieldValue"
,
array
);
map
.
put
(
"fieldName"
,
name
);
list
.
add
(
map
);
}
if
(!
ValidationUtil
.
isEmpty
(
count
))
{
result
.
put
(
"groupCount"
,
count
);
}
result
.
put
(
"groupName"
,
ApiModel
.
getString
(
"description"
));
result
.
put
(
"groupKey"
,
ApiModel
.
getString
(
"value"
));
result
.
put
(
"groupValue"
,
list
);
return
result
;
}
public
String
getStreet
(
String
code
)
{
List
<
LinkedHashMap
<
String
,
Object
>>
streetList
=
null
;
if
(
redisUtil
.
hasKey
(
STREET
))
{
streetList
=
(
List
<
LinkedHashMap
<
String
,
Object
>>)
redisUtil
.
get
(
STREET
);
}
if
(!
ObjectUtils
.
isEmpty
(
code
)
&&
!
ObjectUtils
.
isEmpty
(
streetList
))
{
List
<
LinkedHashMap
<
String
,
Object
>>
collect
=
streetList
.
stream
().
filter
(
item
->
item
.
get
(
"regionCode"
).
toString
().
equals
(
code
)).
collect
(
Collectors
.
toList
());
if
(!
org
.
apache
.
commons
.
lang3
.
ObjectUtils
.
isEmpty
(
collect
))
{
return
String
.
valueOf
(
collect
.
get
(
0
).
get
(
"regionName"
));
}
}
return
null
;
}
/**
* 获取焊口编号
*
* @return
*/
public
JSONObject
getQRCode
(
String
code
)
{
String
url
=
""
;
JSONObject
jsonObject
=
new
JSONObject
();
byte
[]
bytes
=
QRCodeUtil
.
generateQRCodeImageByteData
(
code
,
50
);
InputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
try
{
MultipartFile
file
=
new
MockMultipartFile
(
code
+
".jpg"
,
code
+
".jpg"
,
ContentType
.
APPLICATION_OCTET_STREAM
.
toString
(),
inputStream
);
FeignClientResult
<
Map
<
String
,
String
>>
date
=
Systemctl
.
fileStorageClient
.
updateCommonFileFree
(
file
,
"ugp/qrcode"
);
if
(
date
!=
null
)
{
Map
<
String
,
String
>
map
=
date
.
getResult
();
Iterator
<
String
>
it
=
map
.
keySet
().
iterator
();
String
urlString
=
it
.
next
();
jsonObject
.
put
(
"fileUrl"
,
urlString
);
jsonObject
.
put
(
"fileName"
,
code
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
jsonObject
;
}
public
Object
getEquipInfoBySuperviseCode
(
String
supervisoryCode
)
{
CategoryOtherInfo
categoryOtherInfo
=
categoryOtherInfoMapper
.
selectOne
(
new
QueryWrapper
<
CategoryOtherInfo
>().
eq
(
"SUPERVISORY_CODE"
,
supervisoryCode
));
return
ObjectUtils
.
isEmpty
(
categoryOtherInfo
)
?
null
:
getEquipmentInfo
(
categoryOtherInfo
.
getRecord
());
}
public
Map
<
String
,
Object
>
login
(
MobileLoginParam
param
)
{
Map
<
String
,
Object
>
result
=
new
LinkedHashMap
<>();
IdPasswordAuthModel
idPasswordAuthModel
=
new
IdPasswordAuthModel
();
idPasswordAuthModel
.
setLoginId
(
param
.
getPhoneNo
());
idPasswordAuthModel
.
setPassword
(
param
.
getVerifyCode
());
FeignClientResult
<
Map
<
String
,
String
>>
idpassword
=
new
FeignClientResult
<>();
RequestContext
.
setToken
(
""
);
RequestContext
.
setProduct
(
product
);
RequestContext
.
setAppKey
(
appKey
);
try
{
idpassword
=
Privilege
.
authClient
.
idpassword
(
idPasswordAuthModel
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
idpassword
.
getStatus
()
!=
successsCode
)
{
log
.
error
(
"远程调用Privilege服务失败"
,
idpassword
.
getDevMessage
());
String
message
=
idpassword
.
getMessage
();
if
(
StringUtils
.
isEmpty
(
message
))
{
message
=
"账号或密码错误"
;
}
throw
new
CommonException
(
600001
,
message
);
}
if
(
ValidationUtil
.
isEmpty
(
idpassword
)
||
ValidationUtil
.
isEmpty
(
idpassword
.
getResult
())
||
ValidationUtil
.
isEmpty
(
idpassword
.
getResult
().
get
(
"userId"
)))
{
log
.
error
(
"未修改成功"
);
return
new
HashMap
<
String
,
Object
>();
}
HashMap
<
Object
,
Object
>
authInfo
=
new
HashMap
<>();
// 设置authInfo信息
authInfo
.
put
(
"token"
,
idpassword
.
getResult
().
get
(
"token"
));
authInfo
.
put
(
"personId"
,
idpassword
.
getResult
().
get
(
"userId"
));
authInfo
.
put
(
"appKey"
,
appKey
);
authInfo
.
put
(
"product"
,
product
);
result
.
put
(
"authInfo"
,
authInfo
);
//查询用户信息
RequestContext
.
setToken
(
idpassword
.
getResult
().
get
(
"token"
));
FeignClientResult
<
AgencyUserModel
>
getme
=
Privilege
.
agencyUserClient
.
getme
();
getme
.
getResult
().
setPassword
(
""
);
getme
.
getResult
().
setAppCodes
(
new
ArrayList
());
result
.
put
(
"userInfo"
,
getme
.
getResult
());
return
result
;
}
@SneakyThrows
public
JSONObject
wxUserLogin
(
JSONObject
wx
)
{
JSONObject
obj
=
getSessionKey
(
wx
);
String
sessionKey
=
obj
.
getString
(
"session_key"
);
//被加密的数据
byte
[]
dataByte
=
Base64
.
getDecoder
().
decode
(
wx
.
getString
(
"encryptedData"
));
//加密秘钥
byte
[]
keyByte
=
Base64
.
getDecoder
().
decode
(
sessionKey
);
//偏移量
byte
[]
ivByte
=
Base64
.
getDecoder
().
decode
(
wx
.
getString
(
"iv"
));
JSONObject
res
=
null
;
// 如果密钥不足16位,那么就补足. 这个if 中的内容很重要
int
base
=
16
;
if
(
keyByte
.
length
%
base
!=
0
)
{
int
groups
=
keyByte
.
length
/
base
+
(
keyByte
.
length
%
base
!=
0
?
1
:
0
);
byte
[]
temp
=
new
byte
[
groups
*
base
];
Arrays
.
fill
(
temp
,
(
byte
)
0
);
System
.
arraycopy
(
keyByte
,
0
,
temp
,
0
,
keyByte
.
length
);
keyByte
=
temp
;
}
// 初始化
Security
.
addProvider
(
new
BouncyCastleProvider
());
Cipher
cipher
=
Cipher
.
getInstance
(
"AES/CBC/PKCS7Padding"
,
"BC"
);
SecretKeySpec
spec
=
new
SecretKeySpec
(
keyByte
,
"AES"
);
AlgorithmParameters
parameters
=
AlgorithmParameters
.
getInstance
(
"AES"
);
parameters
.
init
(
new
IvParameterSpec
(
ivByte
));
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
spec
,
parameters
);
// 初始化
byte
[]
resultByte
=
cipher
.
doFinal
(
dataByte
);
if
(
null
!=
resultByte
&&
resultByte
.
length
>
0
)
{
String
result
=
new
String
(
resultByte
,
"UTF-8"
);
res
=
JSONObject
.
parseObject
(
result
);
return
res
;
}
return
res
;
}
private
JSONObject
getSessionKey
(
JSONObject
wx
)
{
StringBuffer
buffer
=
new
StringBuffer
(
"https://api.weixin.qq.com/sns/jscode2session?appid="
)
.
append
(
WxAppAppId
).
append
(
"&secret="
).
append
(
WxAppSecret
).
append
(
"&js_code="
).
append
(
wx
.
getString
(
"js_code"
))
.
append
(
"&grant_type="
).
append
(
WxAppGrantType
);
String
responseStr
=
HttpUtils
.
doGet
(
buffer
.
toString
());
JSONObject
response
=
JSONObject
.
parseObject
(
responseStr
);
return
response
;
}
public
Page
equipmentCount
(
String
companyCode
)
{
Page
page
=
new
Page
<>();
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
resourceJson
=
JsonUtils
.
getResourceJson
(
equipCategory
);
List
<
Map
<
String
,
Object
>>
mapList
=
resourceJson
.
get
(
EquipmentClassifityEnum
.
BDLS
.
getCode
());
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
SearchSourceBuilder
builder
=
new
SearchSourceBuilder
();
builder
.
trackTotalHits
(
true
);
SearchRequest
request
=
new
SearchRequest
();
request
.
indices
(
"idx_biz_view_jg_all"
);
BoolQueryBuilder
boolMust
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
query
=
QueryBuilders
.
boolQuery
();
query
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"USE_UNIT_CREDIT_CODE"
,
companyCode
));
boolMust
.
must
(
query
);
TermsAggregationBuilder
field1Aggregation
=
AggregationBuilders
.
terms
(
"group_by_code"
)
.
field
(
"EQU_LIST_CODE"
)
.
size
(
1000
);
TermsAggregationBuilder
field2Aggregation
=
AggregationBuilders
.
terms
(
"group_by_status"
)
.
field
(
"STATUS"
)
.
size
(
1000
);
builder
.
query
(
boolMust
);
field1Aggregation
.
subAggregation
(
field2Aggregation
);
builder
.
aggregation
(
field1Aggregation
);
builder
.
size
(
0
);
request
.
source
(
builder
);
Map
<
String
,
Object
>
statusCountMap
=
new
HashMap
<>();
try
{
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
Terms
field1Terms
=
response
.
getAggregations
().
get
(
"group_by_code"
);
for
(
Terms
.
Bucket
field1Bucket
:
field1Terms
.
getBuckets
())
{
Terms
field2Terms
=
field1Bucket
.
getAggregations
().
get
(
"group_by_status"
);
for
(
Terms
.
Bucket
field2Bucket
:
field2Terms
.
getBuckets
())
{
String
field1Value
=
field1Bucket
.
getKeyAsString
();
String
field2Value
=
EquipmentCategoryEnum
.
YRL
.
getName
().
equals
(
field2Bucket
.
getKeyAsString
())
?
"alreadyClaim"
:
EquipmentCategoryEnum
.
DRL
.
getName
().
equals
(
field2Bucket
.
getKeyAsString
())
?
"waitClaim"
:
EquipmentCategoryEnum
.
YJL
.
getName
().
equals
(
field2Bucket
.
getKeyAsString
())
?
"refuseClaim"
:
"caogao"
;
long
docCount
=
field2Bucket
.
getDocCount
();
statusCountMap
.
put
(
field1Value
+
"|"
+
field2Value
,
docCount
);
}
}
}
catch
(
IOException
e
)
{
throw
new
BadRequest
(
"es数据查询失败"
);
}
for
(
Map
<
String
,
Object
>
item
:
mapList
)
{
item
.
put
(
"waitClaim"
,
getCountNumber
(
item
.
get
(
"code"
).
toString
(),
"waitClaim"
,
statusCountMap
));
item
.
put
(
"alreadyClaim"
,
getCountNumber
(
item
.
get
(
"code"
).
toString
(),
"alreadyClaim"
,
statusCountMap
));
item
.
put
(
"refuseClaim"
,
getCountNumber
(
item
.
get
(
"code"
).
toString
(),
"refuseClaim"
,
statusCountMap
));
item
.
put
(
"sum"
,
Long
.
parseLong
(
item
.
get
(
"waitClaim"
).
toString
())
+
Long
.
parseLong
(
item
.
get
(
"alreadyClaim"
).
toString
())
+
Long
.
parseLong
(
item
.
get
(
"refuseClaim"
).
toString
()));
list
.
add
(
item
);
}
page
.
setCurrent
(
1
);
page
.
setTotal
(
list
.
size
());
page
.
setRecords
(
list
);
return
page
;
}
private
Long
getCountNumber
(
String
type
,
String
status
,
Map
<
String
,
Object
>
statusCountMap
)
{
String
key
=
type
+
"|"
+
status
;
return
Long
.
parseLong
(
statusCountMap
.
getOrDefault
(
key
,
"0"
).
toString
());
}
public
Page
<
Map
<
String
,
Object
>>
getTable
(
Map
<
String
,
Object
>
map
)
{
Page
<
Map
<
String
,
Object
>>
table
=
null
;
String
teqy
=
(
String
)
map
.
get
(
"teqy"
);
if
(
ValidationUtil
.
isEmpty
(
teqy
))
{
table
=
equipmentCategoryServiceImpl
.
getTable
(
map
);
}
else
{
map
.
remove
(
"teqy"
);
table
=
idxFeignService
.
getPage
(
map
).
getResult
();
}
return
table
;
}
public
JSONArray
getRegionName
()
{
JSONArray
jsonArray
=
new
JSONArray
();
if
(
redisUtils
.
hasKey
(
regionRedis
))
{
jsonArray
=
JSONArray
.
parseArray
(
redisUtils
.
get
(
regionRedis
).
toString
());
}
else
{
Collection
<
RegionModel
>
regionChild
=
new
ArrayList
<>();
RegionModel
regionModel1
=
new
RegionModel
();
regionChild
.
add
(
regionModel1
);
FeignClientResult
<
Collection
<
RegionModel
>>
collectionFeignClientResult
=
Systemctl
.
regionClient
.
queryForTreeParent
(
610000L
);
Collection
<
RegionModel
>
result
=
collectionFeignClientResult
.
getResult
();
for
(
RegionModel
regionModel
:
result
)
{
for
(
RegionModel
child
:
regionModel
.
getChildren
())
{
for
(
RegionModel
childChild
:
child
.
getChildren
())
{
jsonArray
.
add
(
childChild
);
}
child
.
setChildren
(
regionChild
);
jsonArray
.
add
(
child
);
}
regionModel
.
setChildren
(
regionChild
);
jsonArray
.
add
(
regionModel
);
}
redisUtils
.
set
(
regionRedis
,
jsonArray
);
}
return
jsonArray
;
}
//查询字典值(只针对设备一码通详情字典,其他勿用)
public
List
<
DataDictionary
>
getDictionary
()
{
LambdaQueryWrapper
<
DataDictionary
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
ge
(
DataDictionary:
:
getSequenceNbr
,
5951L
).
le
(
DataDictionary:
:
getSequenceNbr
,
6529L
);
List
<
DataDictionary
>
dataDictionaryList
=
dataDictionaryMapper
.
selectList
(
wrapper
);
return
dataDictionaryList
;
}
// 处理字典值
public
void
getCon
(
String
fileName
,
JSONObject
jsonObject
,
Map
<
String
,
Object
>
map
,
List
<
DataDictionary
>
dictionaryList
,
List
<
EquipmentCategory
>
equipmentCategories
)
{
if
(
"city"
.
contains
(
fileName
)
||
"county"
.
contains
(
fileName
))
{
JSONArray
regionName
=
getRegionName
();
List
<
RegionModel
>
list
=
JSONArray
.
parseArray
(
regionName
.
toJSONString
(),
RegionModel
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
list
)
&&
!
ValidationUtil
.
isEmpty
(
jsonObject
.
getString
(
fileName
)))
{
String
cityName
=
list
.
stream
().
filter
(
i
->
i
.
getRegionCode
().
equals
(
Integer
.
valueOf
(
jsonObject
.
getString
(
"city"
)))).
findFirst
().
orElse
(
new
RegionModel
()).
getRegionName
();
String
countyName
=
list
.
stream
().
filter
(
i
->
i
.
getRegionCode
().
equals
(
Integer
.
valueOf
(
jsonObject
.
getString
(
"county"
)))).
findFirst
().
orElse
(
new
RegionModel
()).
getRegionName
();
map
.
put
(
"fieldValue"
,
cityName
+
"/"
+
countyName
);
}
}
if
(
"designStandard"
.
indexOf
(
fileName
)
!=
-
1
)
{
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
jsonObject
.
getString
(
fileName
));
map
.
put
(
"fieldValue"
,
jsonArray
);
}
getIf
(
"imported"
,
fileName
,
"BOOLEN"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"changes"
,
fileName
,
"BGSX"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"usePlace"
,
fileName
,
"ADDRESS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"equManageDt"
,
fileName
,
"ZGBM"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"equState"
,
fileName
,
"SHZT"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"denselyPopulatedAreas"
,
fileName
,
"BOOLEN"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"importantPlaces"
,
fileName
,
"BOOLEN"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"registerState"
,
fileName
,
"ZC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"inspectType"
,
fileName
,
"JYLX"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"inspectConclusion"
,
fileName
,
"JYJL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"constructionType"
,
fileName
,
"SGLX"
,
dictionaryList
,
jsonObject
,
map
);
for
(
EquipmentCategory
equipmentCategory
:
equipmentCategories
)
{
if
(
"equDefine"
.
contains
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
.
getCode
())
&&
!
ValidationUtil
.
isEmpty
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
jsonObject
.
getString
(
fileName
))
&&
equipmentCategory
.
getCode
().
contains
(
jsonObject
.
getString
(
fileName
)))
{
map
.
put
(
"fieldValue"
,
equipmentCategory
.
getName
());
}
if
(
"equCategory"
.
contains
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
.
getCode
())
&&
!
ValidationUtil
.
isEmpty
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
jsonObject
.
getString
(
fileName
))
&&
equipmentCategory
.
getCode
().
contains
(
jsonObject
.
getString
(
fileName
)))
{
map
.
put
(
"fieldValue"
,
equipmentCategory
.
getName
());
}
}
getIf
(
"carrierLine"
,
fileName
,
"YZS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"deviceLevel"
,
fileName
,
"GLJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"fuelType"
,
fileName
,
"GLZL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"nameOfPressureParts"
,
fileName
,
"GLBJMC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"nonDestructiveTestingMethodsForPressureParts"
,
fileName
,
"GLWSJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"qpLossless"
,
fileName
,
"RQJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"glLossless"
,
fileName
,
"RQJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"mainStructureType"
,
fileName
,
"RQJG"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"checkLossless"
,
fileName
,
"RQJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"pipelineClass"
,
fileName
,
"GDLB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"deviceLevel"
,
fileName
,
"GBI"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"workLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"mainStructureType"
,
fileName
,
"JGS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"luffingMode"
,
fileName
,
"BFFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"towerStandardType"
,
fileName
,
"JXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"baseType"
,
fileName
,
"JZXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"outriggerType"
,
fileName
,
"ZT"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"mainBeamType"
,
fileName
,
"ZLXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"boomType"
,
fileName
,
"BJXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"boomStructureType"
,
fileName
,
"BJJGXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"gantryStructureType"
,
fileName
,
"MJJG"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"use"
,
fileName
,
"YT"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"controlMode"
,
fileName
,
"CZFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"hangingCagesNumber"
,
fileName
,
"DLSL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"driveMechanismType"
,
fileName
,
"QDJG"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"guideRailFrame"
,
fileName
,
"DS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"liftingDriveMode"
,
fileName
,
"QD"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"operationMode"
,
fileName
,
"JXCZ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"liftingMode"
,
fileName
,
"QSFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"explosionProofGrade"
,
fileName
,
"FBDJ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"hoistWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"bigcarTraveWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"smallcarTraveWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"hoistWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"smallcarSideswayWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"partName"
,
fileName
,
"ZYLBJ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"workType"
,
fileName
,
"GZLX"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"controlMode"
,
fileName
,
"KZFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"jackingType"
,
fileName
,
"DSXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"explosionproofType"
,
fileName
,
"FBXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"explosionproofGrade"
,
fileName
,
"FBDJ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"xgxlMediaType"
,
fileName
,
"XGJZZL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"designation"
,
fileName
,
"KYSDBJMC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"designation"
,
fileName
,
"CCFJDCLLBJMC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"isMonitor"
,
fileName
,
"HAVE"
,
dictionaryList
,
jsonObject
,
map
);
if
(
"equList"
.
indexOf
(
fileName
)
!=
-
1
)
{
String
equList
=
EquipmentClassifityEnum
.
getName
.
get
(
jsonObject
.
getString
(
fileName
));
map
.
put
(
"fieldValue"
,
equList
);
}
}
public
void
getIf
(
String
name
,
String
fileName
,
String
type
,
List
<
DataDictionary
>
dictionaryList
,
JSONObject
jsonObject
,
Map
<
String
,
Object
>
map
)
{
if
(
name
.
indexOf
(
fileName
)
!=
-
1
)
{
List
<
DataDictionary
>
list
=
dictionaryList
.
stream
().
filter
(
t
->
t
.
getType
().
equals
(
type
)
&&
t
.
getCode
().
equals
(
jsonObject
.
getString
(
fileName
))).
collect
(
Collectors
.
toList
());
if
(
list
.
size
()
>
0
)
{
map
.
put
(
"fieldValue"
,
list
.
get
(
0
).
getName
());
}
}
}
/**
* 产品appkey
*/
@Value
(
"${amos.biz.appCode:AMOS_STUDIO}"
)
private
String
appKey
;
/**
* 产品product
*/
private
static
final
String
product
=
"AMOS_STUDIO_WEB"
;
private
static
final
String
regionRedis
=
"app_region_redis"
;
private
final
int
successsCode
=
200
;
@Autowired
DesignInfoService
designInfoService
;
@Autowired
DataDictionaryMapper
dataDictionaryMapper
;
@Autowired
IdxFeignService
idxFeignService
;
@Autowired
EquipmentCategoryMapper
equipmentCategoryMapper
;
@Autowired
EquipmentCategoryServiceImpl
equipmentCategoryServiceImpl
;
@Autowired
ProduceInfoService
produceInfoService
;
@Autowired
ConstructionInfoService
constructionInfoService
;
@Autowired
RegistrationInfoService
registrationInfoService
;
@Autowired
EquipTechParamBoilerService
boilerService
;
@Autowired
EquipTechParamElevatorService
elevatorService
;
@Autowired
EquipTechParamPipelineService
pipelineService
;
@Autowired
EquipTechParamRidesService
ridesService
;
@Autowired
EquipTechParamRopewayService
ropewayService
;
@Autowired
EquipTechParamVehicleService
vehicleService
;
@Autowired
EquipTechParamVesselService
vesselService
;
@Autowired
MainPartsServiceImpl
mainPartsService
;
@Autowired
ProtectionDevicesServiceImpl
protectionDevicesService
;
@Autowired
UseInfoService
unseInfoService
;
@Autowired
MaintenanceInfoService
maintenanceInfoService
;
@Autowired
InspectionDetectionInfoServiceImpl
inspectionDetectionInfoService
;
@Autowired
OtherInfoService
otherInfoService
;
@Autowired
CategoryOtherInfoMapper
categoryOtherInfoMapper
;
@Autowired
RedisUtils
redisUtils
;
@Value
(
"${tzs.WxApp.appId}"
)
String
WxAppAppId
;
@Value
(
"${tzs.WxApp.secret}"
)
String
WxAppSecret
;
@Value
(
"${tzs.WxApp.grant-type}"
)
String
WxAppGrantType
;
@Value
(
"classpath:/json/equipCategory.json"
)
private
Resource
equipCategory
;
@Autowired
RestHighLevelClient
restHighLevelClient
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
AppCommonMapper
commonMapper
;
private
static
final
String
REG_TYPE_VEHICLE
=
"车用气瓶登记"
;
private
static
final
String
STREET
=
"STREET"
;
public
Map
<
String
,
Object
>
getEquipmentInfo
(
String
record
)
{
List
<
DataDictionary
>
dictionaryList
=
getDictionary
();
List
<
EquipmentCategory
>
equipmentCategories
=
equipmentCategoryMapper
.
selectList
(
null
);
Map
<
String
,
Object
>
map
=
new
HashMap
();
map
.
put
(
"SEQUENCE_NBR"
,
record
);
map
.
put
(
"tableName"
,
"idx_biz_view_jg_claim"
);
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
model
=
idxFeignService
.
getPage
(
map
);
List
<
Map
<
String
,
Object
>>
detailMapList
=
model
.
getResult
().
getRecords
();
if
(!
ValidationUtil
.
isEmpty
(
detailMapList
))
{
map
=
detailMapList
.
iterator
().
next
();
}
map
.
putAll
(
getQRCode
(
record
));
JSONArray
jsonArray
=
new
JSONArray
();
// 出厂
JSONObject
exFactoryJsonObject
=
new
JSONObject
();
List
exFactoryList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
DesignInfo
.
class
,
DesignInfoModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
null
,
record
,
ProduceInfo
.
class
,
ProduceInfoModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
exFactoryJsonObject
.
put
(
"title"
,
"出厂"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 施工
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
ConstructionInfo
.
class
,
ConstructionInfoModel
.
class
,
constructionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"施工"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
// 注册
JSONObject
registrationJsonObject
=
new
JSONObject
();
String
equipType
=
String
.
valueOf
(
map
.
get
(
"EQU_LIST_CODE"
));
List
registrationList
=
new
ArrayList
();
switch
(
equipType
)
{
case
"4000"
:
getGroupList
(
null
,
record
,
EquipTechParamLifting
.
class
,
EquipTechParamLiftingModel
.
class
,
elevatorService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"3000"
:
getGroupList
(
null
,
record
,
EquipTechParamElevator
.
class
,
EquipTechParamElevatorModel
.
class
,
elevatorService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"5000"
:
getGroupList
(
null
,
record
,
EquipTechParamVehicle
.
class
,
EquipTechParamVehicleModel
.
class
,
vehicleService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"1000"
:
getGroupList
(
null
,
record
,
EquipTechParamBoiler
.
class
,
EquipTechParamBoilerModel
.
class
,
boilerService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"2000"
:
getGroupList
(
null
,
record
,
EquipTechParamVessel
.
class
,
EquipTechParamVesselModel
.
class
,
vesselService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"8000"
:
getGroupList
(
null
,
record
,
EquipTechParamPipeline
.
class
,
EquipTechParamPipelineModel
.
class
,
pipelineService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"6000"
:
getGroupList
(
null
,
record
,
EquipTechParamRides
.
class
,
EquipTechParamRidesModel
.
class
,
ridesService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
case
"9000"
:
getGroupList
(
null
,
record
,
EquipTechParamRopeway
.
class
,
EquipTechParamRopewayModel
.
class
,
ropewayService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
break
;
}
getGroupList
(
null
,
record
,
RegistrationInfo
.
class
,
RegistrationInfoModel
.
class
,
registrationInfoService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
null
,
record
,
MainParts
.
class
,
MainPartsModel
.
class
,
mainPartsService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
null
,
record
,
ProtectionDevices
.
class
,
ProtectionDevicesModel
.
class
,
protectionDevicesService
,
registrationList
,
false
,
dictionaryList
,
equipmentCategories
);
registrationJsonObject
.
put
(
"title"
,
"注册"
);
registrationJsonObject
.
put
(
"tabValue"
,
registrationList
);
jsonArray
.
add
(
registrationJsonObject
);
// 使用
JSONObject
useJsonObject
=
new
JSONObject
();
List
useList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
UseInfo
.
class
,
UseInfoModel
.
class
,
unseInfoService
,
useList
,
false
,
dictionaryList
,
equipmentCategories
);
useJsonObject
.
put
(
"title"
,
"使用"
);
useJsonObject
.
put
(
"tabValue"
,
useList
);
jsonArray
.
add
(
useJsonObject
);
// 维保
JSONObject
maintenanceJsonObject
=
new
JSONObject
();
List
maintenanceList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
MaintenanceInfo
.
class
,
MaintenanceInfoModel
.
class
,
maintenanceInfoService
,
maintenanceList
,
true
,
dictionaryList
,
equipmentCategories
);
maintenanceJsonObject
.
put
(
"title"
,
"维保"
);
maintenanceJsonObject
.
put
(
"tabValue"
,
maintenanceList
);
jsonArray
.
add
(
maintenanceJsonObject
);
// 检验
JSONObject
inspectionJsonObject
=
new
JSONObject
();
List
inspectionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModel
.
class
,
inspectionDetectionInfoService
,
inspectionList
,
true
,
dictionaryList
,
equipmentCategories
);
inspectionJsonObject
.
put
(
"title"
,
"检验"
);
inspectionJsonObject
.
put
(
"tabValue"
,
inspectionList
);
jsonArray
.
add
(
inspectionJsonObject
);
// 其他
JSONObject
otherJsonObject
=
new
JSONObject
();
List
otherList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
OtherInfo
.
class
,
OtherInfoModel
.
class
,
otherInfoService
,
otherList
,
false
,
dictionaryList
,
equipmentCategories
);
otherJsonObject
.
put
(
"title"
,
"其他"
);
otherJsonObject
.
put
(
"tabValue"
,
otherList
);
jsonArray
.
add
(
otherJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
return
map
;
}
public
Map
<
String
,
Object
>
getCertInfoForWX
(
String
applyNo
,
String
from
)
{
// 单位办理方式[unit](气瓶、压力管道)、台套办理方式[set](7大类,不包含压力管道)、车用气瓶(压力容器->气瓶)
JgUseRegistrationManageDto
jgUseRegistrationManage
=
commonMapper
.
selectOneCert
(
applyNo
);
// 使用登记、车用气瓶登记
String
regType
=
jgUseRegistrationManage
.
getRegType
();
// unit、set、null
String
manageType
=
jgUseRegistrationManage
.
getManageType
()
==
null
?
"set"
:
jgUseRegistrationManage
.
getManageType
();
if
(
REG_TYPE_VEHICLE
.
equals
(
regType
))
{
return
SearchDetailStrategyContext
.
getHandler
(
"vehicle"
).
hanlder
(
applyNo
,
from
);
}
return
SearchDetailStrategyContext
.
getHandler
(
manageType
).
hanlder
(
applyNo
,
from
);
}
public
Map
<
String
,
Object
>
getEquipmentInfoWX
(
String
record
)
{
List
<
DataDictionary
>
dictionaryList
=
getDictionary
();
List
<
EquipmentCategory
>
equipmentCategories
=
equipmentCategoryMapper
.
selectList
(
null
);
Map
<
String
,
Object
>
map
=
new
HashMap
();
map
.
put
(
"SEQUENCE_NBR"
,
record
);
map
.
put
(
"tableName"
,
"idx_biz_view_jg_claim"
);
ResponseModel
<
Page
<
Map
<
String
,
Object
>>>
model
=
idxFeignService
.
getPage
(
map
);
List
<
Map
<
String
,
Object
>>
detailMapList
=
model
.
getResult
().
getRecords
();
if
(!
ValidationUtil
.
isEmpty
(
detailMapList
))
{
map
=
detailMapList
.
iterator
().
next
();
}
if
(!
ObjectUtils
.
isEmpty
(
model
.
getResult
().
getRecords
().
get
(
0
).
get
(
"SUPERVISORY_CODE"
)))
{
map
.
putAll
(
getQRCode
(
model
.
getResult
().
getRecords
().
get
(
0
).
get
(
"SUPERVISORY_CODE"
).
toString
()));
}
JSONArray
jsonArray
=
new
JSONArray
();
JSONObject
exFactoryJsonObject
=
new
JSONObject
();
List
exFactoryList
=
new
ArrayList
();
HashMap
putMap
=
new
HashMap
();
Field
[]
fields
=
EquBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
if
(
EquipmentClassifityEnum
.
DT
.
getCode
().
equals
(
map
.
get
(
"EQU_LIST_CODE"
)))
{
// 基本信息
Field
[]
fields1
=
ElevatorBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields1
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
getGroupList
(
putMap
,
record
,
RegistrationInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
registrationInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
DesignInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
OtherInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
otherInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
UseInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
unseInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
ProduceInfo
.
class
,
ElevatorBaseInfoForWXModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
if
(
exFactoryList
.
size
()
>
0
)
{
String
area
=
map
.
get
(
"USE_PLACE"
).
toString
();
JSONObject
jsonObject
=
(
JSONObject
)
exFactoryList
.
get
(
0
);
List
<
HashMap
<
String
,
Object
>>
groupValue
=
(
List
<
HashMap
<
String
,
Object
>>)
jsonObject
.
get
(
"groupValue"
);
groupValue
.
forEach
(
e
->
{
e
.
put
(
"fieldValue"
,
putMap
.
get
(
e
.
get
(
"fieldKey"
)));
if
(
e
.
get
(
"fieldKey"
).
equals
(
"area"
))
{
e
.
put
(
"fieldValue"
,
area
);
}
});
Object
ob
=
exFactoryList
.
get
(
0
);
exFactoryList
.
clear
();
exFactoryList
.
add
(
ob
);
}
exFactoryJsonObject
.
put
(
"title"
,
"基本信息"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 最近检验信息
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModelForWX
.
class
,
inspectionDetectionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"最近检验信息"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
// 设备维保信息
JSONObject
useJsonObject
=
new
JSONObject
();
List
maintenanceList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
MaintenanceInfo
.
class
,
MaintenanceInfoModelForWX
.
class
,
maintenanceInfoService
,
maintenanceList
,
false
,
dictionaryList
,
equipmentCategories
);
useJsonObject
.
put
(
"title"
,
"设备维保信息"
);
if
(
maintenanceList
.
size
()
>
1
)
{
List
maintenanceList1
=
new
ArrayList
();
maintenanceList1
.
add
(
maintenanceList
.
get
(
0
));
maintenanceList
.
clear
();
maintenanceList
.
add
(
maintenanceList1
.
get
(
0
));
}
useJsonObject
.
put
(
"tabValue"
,
maintenanceList
);
jsonArray
.
add
(
useJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
}
else
if
(
"气瓶"
.
equals
(
map
.
get
(
"EQU_CATEGORY"
)))
{
// 基本信息
Field
[]
fields2
=
CylinderEquBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields2
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
getGroupList
(
putMap
,
record
,
RegistrationInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
registrationInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
DesignInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
OtherInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
otherInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
UseInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
unseInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
ProduceInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
if
(
exFactoryList
.
size
()
>
0
)
{
JSONObject
jsonObject
=
(
JSONObject
)
exFactoryList
.
get
(
0
);
List
<
HashMap
<
String
,
Object
>>
groupValue
=
(
List
<
HashMap
<
String
,
Object
>>)
jsonObject
.
get
(
"groupValue"
);
groupValue
.
forEach
(
e
->
{
e
.
put
(
"fieldValue"
,
putMap
.
get
(
e
.
get
(
"fieldKey"
)));
});
Object
ob
=
exFactoryList
.
get
(
0
);
exFactoryList
.
clear
();
exFactoryList
.
add
(
ob
);
}
exFactoryJsonObject
.
put
(
"title"
,
"基本信息"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 最近检验信息
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModelForWX
.
class
,
inspectionDetectionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"最近检验信息"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
}
else
{
// 基本信息
Field
[]
fields3
=
OtherEquBaseInfoForWXModel
.
class
.
getDeclaredFields
();
for
(
Field
f
:
fields3
)
{
putMap
.
put
(
f
.
getName
(),
""
);
}
getGroupList
(
putMap
,
record
,
RegistrationInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
registrationInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
DesignInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
designInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
OtherInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
otherInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
UseInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
unseInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
getGroupList
(
putMap
,
record
,
ProduceInfo
.
class
,
OtherEquBaseInfoForWXModel
.
class
,
produceInfoService
,
exFactoryList
,
false
,
dictionaryList
,
equipmentCategories
);
if
(
exFactoryList
.
size
()
>
0
)
{
JSONObject
jsonObject
=
(
JSONObject
)
exFactoryList
.
get
(
0
);
List
<
HashMap
<
String
,
Object
>>
groupValue
=
(
List
<
HashMap
<
String
,
Object
>>)
jsonObject
.
get
(
"groupValue"
);
groupValue
.
forEach
(
e
->
{
e
.
put
(
"fieldValue"
,
putMap
.
get
(
e
.
get
(
"fieldKey"
)));
});
Object
ob
=
exFactoryList
.
get
(
0
);
exFactoryList
.
clear
();
exFactoryList
.
add
(
ob
);
}
exFactoryJsonObject
.
put
(
"title"
,
"基本信息"
);
exFactoryJsonObject
.
put
(
"tabValue"
,
exFactoryList
);
jsonArray
.
add
(
exFactoryJsonObject
);
// 最近检验信息
JSONObject
constructionJsonObject
=
new
JSONObject
();
List
constructionList
=
new
ArrayList
();
getGroupList
(
null
,
record
,
InspectionDetectionInfo
.
class
,
InspectionDetectionInfoModelForWX
.
class
,
inspectionDetectionInfoService
,
constructionList
,
true
,
dictionaryList
,
equipmentCategories
);
constructionJsonObject
.
put
(
"title"
,
"最近检验信息"
);
constructionJsonObject
.
put
(
"tabValue"
,
constructionList
);
jsonArray
.
add
(
constructionJsonObject
);
map
.
put
(
"tab"
,
jsonArray
);
}
return
map
;
}
public
void
getGroupList
(
HashMap
putMap
,
String
record
,
Class
entity
,
Class
dto
,
BaseService
service
,
List
list
,
boolean
isOne
,
List
<
DataDictionary
>
dictionaryList
,
List
<
EquipmentCategory
>
equipmentCategories
)
{
TableInfoHelper
.
initTableInfo
(
new
MapperBuilderAssistant
(
new
MybatisConfiguration
(),
""
),
entity
);
QueryWrapper
wrapper
=
new
QueryWrapper
();
wrapper
.
eq
(
"RECORD"
,
record
);
if
(
isOne
)
{
wrapper
.
orderByDesc
(
"REC_DATE"
);
}
List
entityList
=
service
.
list
(
wrapper
);
Iterator
iterator
=
entityList
.
iterator
();
JSONObject
result
;
if
(!
isOne
)
{
if
(!
ValidationUtil
.
isEmpty
(
entityList
))
{
if
(
entityList
.
size
()
>
0
)
{
while
(
iterator
.
hasNext
())
{
JSONObject
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
iterator
.
next
()));
result
=
getFieldList
(
putMap
,
dto
,
jsonObject
,
null
,
dictionaryList
,
equipmentCategories
);
list
.
add
(
result
);
}
}
}
}
else
{
int
count
=
entityList
.
size
();
JSONObject
jsonObject
=
null
;
if
(
count
>
0
)
{
jsonObject
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
iterator
.
next
()));
}
else
{
jsonObject
=
new
JSONObject
();
}
result
=
getFieldList
(
putMap
,
dto
,
jsonObject
,
count
,
dictionaryList
,
equipmentCategories
);
list
.
add
(
result
);
}
}
public
JSONObject
getFieldList
(
HashMap
putMap
,
Class
clazz
,
JSONObject
jsonObject
,
Integer
count
,
List
<
DataDictionary
>
dictionaryList
,
List
<
EquipmentCategory
>
equipmentCategories
)
{
JSONObject
result
=
new
JSONObject
();
JSONObject
ApiModel
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
clazz
.
getAnnotation
(
ApiModel
.
class
)));
List
<
Field
>
declaredFields
=
Lists
.
newArrayList
(
clazz
.
getSuperclass
().
getDeclaredFields
());
declaredFields
.
addAll
(
Arrays
.
asList
(
clazz
.
getDeclaredFields
()));
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
if
(!
ValidationUtil
.
isEmpty
(
declaredFields
))
{
for
(
Field
field
:
declaredFields
)
{
if
(
"sequenceNbr"
.
equals
(
field
.
getName
())
||
"recDate"
.
equals
(
field
.
getName
())
||
"recUserId"
.
equals
(
field
.
getName
())
||
"recUserName"
.
equals
(
field
.
getName
())
||
"isDelete"
.
equals
(
field
.
getName
()))
{
continue
;
}
if
(
field
.
getAnnotation
(
ApiModelProperty
.
class
)
!=
null
&&
!
ValidationUtil
.
isEmpty
(
field
.
getAnnotation
(
ApiModelProperty
.
class
).
value
()))
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
String
filedName
=
field
.
getAnnotation
(
ApiModelProperty
.
class
).
value
();
// key和value可根据需求存
// 这存的key为注解的值,value为类属性名
map
.
put
(
"fieldName"
,
filedName
);
map
.
put
(
"fieldKey"
,
field
.
getName
());
if
(!
ValidationUtil
.
isEmpty
(
jsonObject
))
{
map
.
put
(
"fieldValue"
,
jsonObject
.
getString
(
field
.
getName
()));
getCon
(
field
.
getName
(),
jsonObject
,
map
,
dictionaryList
,
equipmentCategories
);
}
else
{
map
.
put
(
"fieldValue"
,
""
);
}
if
(
null
!=
putMap
&&
putMap
.
containsKey
(
field
.
getName
()))
{
if
(
null
!=
map
.
get
(
"fieldValue"
))
{
putMap
.
put
(
field
.
getName
(),
map
.
get
(
"fieldValue"
));
}
}
// 街道信息处理
if
(
String
.
valueOf
(
map
.
get
(
"fieldKey"
)).
equals
(
"factoryUseSiteStreet"
))
{
map
.
put
(
"fieldValue"
,
getStreet
(
String
.
valueOf
(
map
.
get
(
"fieldValue"
))));
}
list
.
add
(
map
);
}
}
}
// 整理出现多个附件的情况
Iterator
<
Map
<
String
,
Object
>>
iterator
=
list
.
iterator
();
JSONArray
array
=
new
JSONArray
();
Boolean
bool
=
true
;
String
name
=
""
;
while
(
iterator
.
hasNext
())
{
Map
<
String
,
Object
>
map
=
iterator
.
next
();
String
fieldName
=
map
.
get
(
"fieldName"
).
toString
();
if
(
fieldName
.
contains
(
"附件"
))
{
if
(
bool
)
{
// 第一个出现的附件名称为表单显示的名称
name
=
fieldName
;
bool
=
false
;
}
if
(!
ValidationUtil
.
isEmpty
(
map
.
get
(
"fieldValue"
)))
{
JSONArray
jsonArray
=
JSON
.
parseArray
(
String
.
valueOf
(
map
.
get
(
"fieldValue"
)));
JSONArray
json
=
new
JSONArray
();
for
(
Object
obj
:
jsonArray
)
{
JSONObject
object
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
obj
));
if
(!
ValidationUtil
.
isEmpty
(
object
))
{
object
.
getString
(
"url"
);
object
.
put
(
"url"
,
object
.
getString
(
"url"
));
json
.
add
(
object
);
}
}
array
.
addAll
(
json
);
}
// 删除所有附件
iterator
.
remove
();
}
}
// 如果有附件 整理为一个附件 添加入list里
if
(!
bool
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"fieldKey"
,
"files"
);
map
.
put
(
"fieldValue"
,
array
);
map
.
put
(
"fieldName"
,
name
);
list
.
add
(
map
);
}
if
(!
ValidationUtil
.
isEmpty
(
count
))
{
result
.
put
(
"groupCount"
,
count
);
}
result
.
put
(
"groupName"
,
ApiModel
.
getString
(
"description"
));
result
.
put
(
"groupKey"
,
ApiModel
.
getString
(
"value"
));
result
.
put
(
"groupValue"
,
list
);
return
result
;
}
public
String
getStreet
(
String
code
)
{
List
<
LinkedHashMap
<
String
,
Object
>>
streetList
=
null
;
if
(
redisUtil
.
hasKey
(
STREET
))
{
streetList
=
(
List
<
LinkedHashMap
<
String
,
Object
>>)
redisUtil
.
get
(
STREET
);
}
if
(!
ObjectUtils
.
isEmpty
(
code
)
&&
!
ObjectUtils
.
isEmpty
(
streetList
))
{
List
<
LinkedHashMap
<
String
,
Object
>>
collect
=
streetList
.
stream
().
filter
(
item
->
item
.
get
(
"regionCode"
).
toString
().
equals
(
code
)).
collect
(
Collectors
.
toList
());
if
(!
org
.
apache
.
commons
.
lang3
.
ObjectUtils
.
isEmpty
(
collect
))
{
return
String
.
valueOf
(
collect
.
get
(
0
).
get
(
"regionName"
));
}
}
return
null
;
}
/**
* 获取焊口编号
*
* @return
*/
public
JSONObject
getQRCode
(
String
code
)
{
String
url
=
""
;
JSONObject
jsonObject
=
new
JSONObject
();
byte
[]
bytes
=
QRCodeUtil
.
generateQRCodeImageByteData
(
code
,
50
);
InputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
try
{
MultipartFile
file
=
new
MockMultipartFile
(
code
+
".jpg"
,
code
+
".jpg"
,
ContentType
.
APPLICATION_OCTET_STREAM
.
toString
(),
inputStream
);
FeignClientResult
<
Map
<
String
,
String
>>
date
=
Systemctl
.
fileStorageClient
.
updateCommonFileFree
(
file
,
"ugp/qrcode"
);
if
(
date
!=
null
)
{
Map
<
String
,
String
>
map
=
date
.
getResult
();
Iterator
<
String
>
it
=
map
.
keySet
().
iterator
();
String
urlString
=
it
.
next
();
jsonObject
.
put
(
"fileUrl"
,
urlString
);
jsonObject
.
put
(
"fileName"
,
code
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
jsonObject
;
}
public
Object
getEquipInfoBySuperviseCode
(
String
supervisoryCode
)
{
CategoryOtherInfo
categoryOtherInfo
=
categoryOtherInfoMapper
.
selectOne
(
new
QueryWrapper
<
CategoryOtherInfo
>().
eq
(
"SUPERVISORY_CODE"
,
supervisoryCode
));
return
ObjectUtils
.
isEmpty
(
categoryOtherInfo
)
?
null
:
getEquipmentInfo
(
categoryOtherInfo
.
getRecord
());
}
public
Map
<
String
,
Object
>
login
(
MobileLoginParam
param
)
{
Map
<
String
,
Object
>
result
=
new
LinkedHashMap
<>();
IdPasswordAuthModel
idPasswordAuthModel
=
new
IdPasswordAuthModel
();
idPasswordAuthModel
.
setLoginId
(
param
.
getPhoneNo
());
idPasswordAuthModel
.
setPassword
(
param
.
getVerifyCode
());
FeignClientResult
<
Map
<
String
,
String
>>
idpassword
=
new
FeignClientResult
<>();
RequestContext
.
setToken
(
""
);
RequestContext
.
setProduct
(
product
);
RequestContext
.
setAppKey
(
appKey
);
try
{
idpassword
=
Privilege
.
authClient
.
idpassword
(
idPasswordAuthModel
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
idpassword
.
getStatus
()
!=
successsCode
)
{
log
.
error
(
"远程调用Privilege服务失败"
,
idpassword
.
getDevMessage
());
String
message
=
idpassword
.
getMessage
();
if
(
StringUtils
.
isEmpty
(
message
))
{
message
=
"账号或密码错误"
;
}
throw
new
CommonException
(
600001
,
message
);
}
if
(
ValidationUtil
.
isEmpty
(
idpassword
)
||
ValidationUtil
.
isEmpty
(
idpassword
.
getResult
())
||
ValidationUtil
.
isEmpty
(
idpassword
.
getResult
().
get
(
"userId"
)))
{
log
.
error
(
"未修改成功"
);
return
new
HashMap
<
String
,
Object
>();
}
HashMap
<
Object
,
Object
>
authInfo
=
new
HashMap
<>();
// 设置authInfo信息
authInfo
.
put
(
"token"
,
idpassword
.
getResult
().
get
(
"token"
));
authInfo
.
put
(
"personId"
,
idpassword
.
getResult
().
get
(
"userId"
));
authInfo
.
put
(
"appKey"
,
appKey
);
authInfo
.
put
(
"product"
,
product
);
result
.
put
(
"authInfo"
,
authInfo
);
//查询用户信息
RequestContext
.
setToken
(
idpassword
.
getResult
().
get
(
"token"
));
FeignClientResult
<
AgencyUserModel
>
getme
=
Privilege
.
agencyUserClient
.
getme
();
getme
.
getResult
().
setPassword
(
""
);
getme
.
getResult
().
setAppCodes
(
new
ArrayList
());
result
.
put
(
"userInfo"
,
getme
.
getResult
());
return
result
;
}
@SneakyThrows
public
JSONObject
wxUserLogin
(
JSONObject
wx
)
{
JSONObject
obj
=
getSessionKey
(
wx
);
String
sessionKey
=
obj
.
getString
(
"session_key"
);
//被加密的数据
byte
[]
dataByte
=
Base64
.
getDecoder
().
decode
(
wx
.
getString
(
"encryptedData"
));
//加密秘钥
byte
[]
keyByte
=
Base64
.
getDecoder
().
decode
(
sessionKey
);
//偏移量
byte
[]
ivByte
=
Base64
.
getDecoder
().
decode
(
wx
.
getString
(
"iv"
));
JSONObject
res
=
null
;
// 如果密钥不足16位,那么就补足. 这个if 中的内容很重要
int
base
=
16
;
if
(
keyByte
.
length
%
base
!=
0
)
{
int
groups
=
keyByte
.
length
/
base
+
(
keyByte
.
length
%
base
!=
0
?
1
:
0
);
byte
[]
temp
=
new
byte
[
groups
*
base
];
Arrays
.
fill
(
temp
,
(
byte
)
0
);
System
.
arraycopy
(
keyByte
,
0
,
temp
,
0
,
keyByte
.
length
);
keyByte
=
temp
;
}
// 初始化
Security
.
addProvider
(
new
BouncyCastleProvider
());
Cipher
cipher
=
Cipher
.
getInstance
(
"AES/CBC/PKCS7Padding"
,
"BC"
);
SecretKeySpec
spec
=
new
SecretKeySpec
(
keyByte
,
"AES"
);
AlgorithmParameters
parameters
=
AlgorithmParameters
.
getInstance
(
"AES"
);
parameters
.
init
(
new
IvParameterSpec
(
ivByte
));
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
spec
,
parameters
);
// 初始化
byte
[]
resultByte
=
cipher
.
doFinal
(
dataByte
);
if
(
null
!=
resultByte
&&
resultByte
.
length
>
0
)
{
String
result
=
new
String
(
resultByte
,
"UTF-8"
);
res
=
JSONObject
.
parseObject
(
result
);
return
res
;
}
return
res
;
}
private
JSONObject
getSessionKey
(
JSONObject
wx
)
{
StringBuffer
buffer
=
new
StringBuffer
(
"https://api.weixin.qq.com/sns/jscode2session?appid="
)
.
append
(
WxAppAppId
).
append
(
"&secret="
).
append
(
WxAppSecret
).
append
(
"&js_code="
).
append
(
wx
.
getString
(
"js_code"
))
.
append
(
"&grant_type="
).
append
(
WxAppGrantType
);
String
responseStr
=
HttpUtils
.
doGet
(
buffer
.
toString
());
JSONObject
response
=
JSONObject
.
parseObject
(
responseStr
);
return
response
;
}
public
Page
equipmentCount
(
String
companyCode
)
{
Page
page
=
new
Page
<>();
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
resourceJson
=
JsonUtils
.
getResourceJson
(
equipCategory
);
List
<
Map
<
String
,
Object
>>
mapList
=
resourceJson
.
get
(
EquipmentClassifityEnum
.
BDLS
.
getCode
());
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
SearchSourceBuilder
builder
=
new
SearchSourceBuilder
();
builder
.
trackTotalHits
(
true
);
SearchRequest
request
=
new
SearchRequest
();
request
.
indices
(
"idx_biz_view_jg_all"
);
BoolQueryBuilder
boolMust
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
query
=
QueryBuilders
.
boolQuery
();
query
.
must
(
QueryBuilders
.
matchPhraseQuery
(
"USE_UNIT_CREDIT_CODE"
,
companyCode
));
boolMust
.
must
(
query
);
TermsAggregationBuilder
field1Aggregation
=
AggregationBuilders
.
terms
(
"group_by_code"
)
.
field
(
"EQU_LIST_CODE"
)
.
size
(
1000
);
TermsAggregationBuilder
field2Aggregation
=
AggregationBuilders
.
terms
(
"group_by_status"
)
.
field
(
"STATUS"
)
.
size
(
1000
);
builder
.
query
(
boolMust
);
field1Aggregation
.
subAggregation
(
field2Aggregation
);
builder
.
aggregation
(
field1Aggregation
);
builder
.
size
(
0
);
request
.
source
(
builder
);
Map
<
String
,
Object
>
statusCountMap
=
new
HashMap
<>();
try
{
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
Terms
field1Terms
=
response
.
getAggregations
().
get
(
"group_by_code"
);
for
(
Terms
.
Bucket
field1Bucket
:
field1Terms
.
getBuckets
())
{
Terms
field2Terms
=
field1Bucket
.
getAggregations
().
get
(
"group_by_status"
);
for
(
Terms
.
Bucket
field2Bucket
:
field2Terms
.
getBuckets
())
{
String
field1Value
=
field1Bucket
.
getKeyAsString
();
String
field2Value
=
EquipmentCategoryEnum
.
YRL
.
getName
().
equals
(
field2Bucket
.
getKeyAsString
())
?
"alreadyClaim"
:
EquipmentCategoryEnum
.
DRL
.
getName
().
equals
(
field2Bucket
.
getKeyAsString
())
?
"waitClaim"
:
EquipmentCategoryEnum
.
YJL
.
getName
().
equals
(
field2Bucket
.
getKeyAsString
())
?
"refuseClaim"
:
"caogao"
;
long
docCount
=
field2Bucket
.
getDocCount
();
statusCountMap
.
put
(
field1Value
+
"|"
+
field2Value
,
docCount
);
}
}
}
catch
(
IOException
e
)
{
throw
new
BadRequest
(
"es数据查询失败"
);
}
for
(
Map
<
String
,
Object
>
item
:
mapList
)
{
item
.
put
(
"waitClaim"
,
getCountNumber
(
item
.
get
(
"code"
).
toString
(),
"waitClaim"
,
statusCountMap
));
item
.
put
(
"alreadyClaim"
,
getCountNumber
(
item
.
get
(
"code"
).
toString
(),
"alreadyClaim"
,
statusCountMap
));
item
.
put
(
"refuseClaim"
,
getCountNumber
(
item
.
get
(
"code"
).
toString
(),
"refuseClaim"
,
statusCountMap
));
item
.
put
(
"sum"
,
Long
.
parseLong
(
item
.
get
(
"waitClaim"
).
toString
())
+
Long
.
parseLong
(
item
.
get
(
"alreadyClaim"
).
toString
())
+
Long
.
parseLong
(
item
.
get
(
"refuseClaim"
).
toString
()));
list
.
add
(
item
);
}
page
.
setCurrent
(
1
);
page
.
setTotal
(
list
.
size
());
page
.
setRecords
(
list
);
return
page
;
}
private
Long
getCountNumber
(
String
type
,
String
status
,
Map
<
String
,
Object
>
statusCountMap
)
{
String
key
=
type
+
"|"
+
status
;
return
Long
.
parseLong
(
statusCountMap
.
getOrDefault
(
key
,
"0"
).
toString
());
}
public
Page
<
Map
<
String
,
Object
>>
getTable
(
Map
<
String
,
Object
>
map
)
{
Page
<
Map
<
String
,
Object
>>
table
=
null
;
String
teqy
=
(
String
)
map
.
get
(
"teqy"
);
if
(
ValidationUtil
.
isEmpty
(
teqy
))
{
table
=
equipmentCategoryServiceImpl
.
getTable
(
map
);
}
else
{
map
.
remove
(
"teqy"
);
table
=
idxFeignService
.
getPage
(
map
).
getResult
();
}
return
table
;
}
public
JSONArray
getRegionName
()
{
JSONArray
jsonArray
=
new
JSONArray
();
if
(
redisUtils
.
hasKey
(
regionRedis
))
{
jsonArray
=
JSONArray
.
parseArray
(
redisUtils
.
get
(
regionRedis
).
toString
());
}
else
{
Collection
<
RegionModel
>
regionChild
=
new
ArrayList
<>();
RegionModel
regionModel1
=
new
RegionModel
();
regionChild
.
add
(
regionModel1
);
FeignClientResult
<
Collection
<
RegionModel
>>
collectionFeignClientResult
=
Systemctl
.
regionClient
.
queryForTreeParent
(
610000L
);
Collection
<
RegionModel
>
result
=
collectionFeignClientResult
.
getResult
();
for
(
RegionModel
regionModel
:
result
)
{
for
(
RegionModel
child
:
regionModel
.
getChildren
())
{
for
(
RegionModel
childChild
:
child
.
getChildren
())
{
jsonArray
.
add
(
childChild
);
}
child
.
setChildren
(
regionChild
);
jsonArray
.
add
(
child
);
}
regionModel
.
setChildren
(
regionChild
);
jsonArray
.
add
(
regionModel
);
}
redisUtils
.
set
(
regionRedis
,
jsonArray
);
}
return
jsonArray
;
}
//查询字典值(只针对设备一码通详情字典,其他勿用)
public
List
<
DataDictionary
>
getDictionary
()
{
LambdaQueryWrapper
<
DataDictionary
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
ge
(
DataDictionary:
:
getSequenceNbr
,
5951L
).
le
(
DataDictionary:
:
getSequenceNbr
,
6529L
);
List
<
DataDictionary
>
dataDictionaryList
=
dataDictionaryMapper
.
selectList
(
wrapper
);
return
dataDictionaryList
;
}
// 处理字典值
public
void
getCon
(
String
fileName
,
JSONObject
jsonObject
,
Map
<
String
,
Object
>
map
,
List
<
DataDictionary
>
dictionaryList
,
List
<
EquipmentCategory
>
equipmentCategories
)
{
if
(
"city"
.
contains
(
fileName
)
||
"county"
.
contains
(
fileName
))
{
JSONArray
regionName
=
getRegionName
();
List
<
RegionModel
>
list
=
JSONArray
.
parseArray
(
regionName
.
toJSONString
(),
RegionModel
.
class
);
if
(!
ValidationUtil
.
isEmpty
(
list
)
&&
!
ValidationUtil
.
isEmpty
(
jsonObject
.
getString
(
fileName
)))
{
String
cityName
=
list
.
stream
().
filter
(
i
->
i
.
getRegionCode
().
equals
(
Integer
.
valueOf
(
jsonObject
.
getString
(
"city"
)))).
findFirst
().
orElse
(
new
RegionModel
()).
getRegionName
();
String
countyName
=
list
.
stream
().
filter
(
i
->
i
.
getRegionCode
().
equals
(
Integer
.
valueOf
(
jsonObject
.
getString
(
"county"
)))).
findFirst
().
orElse
(
new
RegionModel
()).
getRegionName
();
map
.
put
(
"fieldValue"
,
cityName
+
"/"
+
countyName
);
}
}
if
(
"designStandard"
.
indexOf
(
fileName
)
!=
-
1
)
{
JSONArray
jsonArray
=
JSONArray
.
parseArray
(
jsonObject
.
getString
(
fileName
));
map
.
put
(
"fieldValue"
,
jsonArray
);
}
getIf
(
"imported"
,
fileName
,
"BOOLEN"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"changes"
,
fileName
,
"BGSX"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"usePlace"
,
fileName
,
"ADDRESS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"equManageDt"
,
fileName
,
"ZGBM"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"equState"
,
fileName
,
"SHZT"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"denselyPopulatedAreas"
,
fileName
,
"BOOLEN"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"importantPlaces"
,
fileName
,
"BOOLEN"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"registerState"
,
fileName
,
"ZC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"inspectType"
,
fileName
,
"JYLX"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"inspectConclusion"
,
fileName
,
"JYJL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"constructionType"
,
fileName
,
"SGLX"
,
dictionaryList
,
jsonObject
,
map
);
for
(
EquipmentCategory
equipmentCategory
:
equipmentCategories
)
{
if
(
"equDefine"
.
contains
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
.
getCode
())
&&
!
ValidationUtil
.
isEmpty
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
jsonObject
.
getString
(
fileName
))
&&
equipmentCategory
.
getCode
().
contains
(
jsonObject
.
getString
(
fileName
)))
{
map
.
put
(
"fieldValue"
,
equipmentCategory
.
getName
());
}
if
(
"equCategory"
.
contains
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
)
&&
!
ValidationUtil
.
isEmpty
(
equipmentCategory
.
getCode
())
&&
!
ValidationUtil
.
isEmpty
(
fileName
)
&&
!
ValidationUtil
.
isEmpty
(
jsonObject
.
getString
(
fileName
))
&&
equipmentCategory
.
getCode
().
contains
(
jsonObject
.
getString
(
fileName
)))
{
map
.
put
(
"fieldValue"
,
equipmentCategory
.
getName
());
}
}
getIf
(
"carrierLine"
,
fileName
,
"YZS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"deviceLevel"
,
fileName
,
"GLJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"fuelType"
,
fileName
,
"GLZL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"nameOfPressureParts"
,
fileName
,
"GLBJMC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"nonDestructiveTestingMethodsForPressureParts"
,
fileName
,
"GLWSJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"qpLossless"
,
fileName
,
"RQJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"glLossless"
,
fileName
,
"RQJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"mainStructureType"
,
fileName
,
"RQJG"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"checkLossless"
,
fileName
,
"RQJCFF"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"pipelineClass"
,
fileName
,
"GDLB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"deviceLevel"
,
fileName
,
"GBI"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"workLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"mainStructureType"
,
fileName
,
"JGS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"luffingMode"
,
fileName
,
"BFFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"towerStandardType"
,
fileName
,
"JXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"baseType"
,
fileName
,
"JZXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"outriggerType"
,
fileName
,
"ZT"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"mainBeamType"
,
fileName
,
"ZLXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"boomType"
,
fileName
,
"BJXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"boomStructureType"
,
fileName
,
"BJJGXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"gantryStructureType"
,
fileName
,
"MJJG"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"use"
,
fileName
,
"YT"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"controlMode"
,
fileName
,
"CZFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"hangingCagesNumber"
,
fileName
,
"DLSL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"driveMechanismType"
,
fileName
,
"QDJG"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"guideRailFrame"
,
fileName
,
"DS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"liftingDriveMode"
,
fileName
,
"QD"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"operationMode"
,
fileName
,
"JXCZ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"liftingMode"
,
fileName
,
"QSFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"explosionProofGrade"
,
fileName
,
"FBDJ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"hoistWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"bigcarTraveWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"smallcarTraveWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"hoistWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"smallcarSideswayWorkingLevel"
,
fileName
,
"GZJB"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"partName"
,
fileName
,
"ZYLBJ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"workType"
,
fileName
,
"GZLX"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"controlMode"
,
fileName
,
"KZFS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"jackingType"
,
fileName
,
"DSXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"explosionproofType"
,
fileName
,
"FBXS"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"explosionproofGrade"
,
fileName
,
"FBDJ"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"xgxlMediaType"
,
fileName
,
"XGJZZL"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"designation"
,
fileName
,
"KYSDBJMC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"designation"
,
fileName
,
"CCFJDCLLBJMC"
,
dictionaryList
,
jsonObject
,
map
);
getIf
(
"isMonitor"
,
fileName
,
"HAVE"
,
dictionaryList
,
jsonObject
,
map
);
if
(
"equList"
.
indexOf
(
fileName
)
!=
-
1
)
{
String
equList
=
EquipmentClassifityEnum
.
getName
.
get
(
jsonObject
.
getString
(
fileName
));
map
.
put
(
"fieldValue"
,
equList
);
}
}
public
void
getIf
(
String
name
,
String
fileName
,
String
type
,
List
<
DataDictionary
>
dictionaryList
,
JSONObject
jsonObject
,
Map
<
String
,
Object
>
map
)
{
if
(
name
.
indexOf
(
fileName
)
!=
-
1
)
{
List
<
DataDictionary
>
list
=
dictionaryList
.
stream
().
filter
(
t
->
t
.
getType
().
equals
(
type
)
&&
t
.
getCode
().
equals
(
jsonObject
.
getString
(
fileName
))).
collect
(
Collectors
.
toList
());
if
(
list
.
size
()
>
0
)
{
map
.
put
(
"fieldValue"
,
list
.
get
(
0
).
getName
());
}
}
}
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/service/impl/TzsAuthServiceImpl.java
View file @
998abdd7
...
...
@@ -248,7 +248,6 @@ public class TzsAuthServiceImpl implements TzsAuthService {
this
.
loginUser
(
weRobotUser
,
weRobotPassword
,
weChatToken
);
}
}
String
weToken
=
redisUtils
.
get
(
weChatToken
).
toString
();
return
weToken
;
return
redisUtils
.
get
(
weChatToken
).
toString
();
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/service/impl/UnitSearchDetailDetailHandlerImpl.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
biz
.
service
.
impl
;
import
com.yeejoin.amos.boot.module.app.biz.strategy.ISearchDetailHandler
;
import
org.springframework.stereotype.Component
;
import
java.util.Collections
;
import
java.util.Map
;
@Component
public
class
UnitSearchDetailDetailHandlerImpl
implements
ISearchDetailHandler
<
Map
<
String
,
Object
>>
{
@Override
public
String
manageType
()
{
return
"unit"
;
}
@Override
public
Map
<
String
,
Object
>
hanlder
(
String
applyNo
,
String
from
)
{
return
Collections
.
emptyMap
();
}
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/service/impl/VehicleSearchDetailDetailHandlerImpl.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
biz
.
service
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil
;
import
com.yeejoin.amos.boot.module.app.api.annotation.Converter
;
import
com.yeejoin.amos.boot.module.app.api.annotation.FieldDisplayDefine
;
import
com.yeejoin.amos.boot.module.app.api.dto.CylinderInfoForWX
;
import
com.yeejoin.amos.boot.module.app.api.dto.VehicleInfoForWX
;
import
com.yeejoin.amos.boot.module.app.api.mapper.AppCommonMapper
;
import
com.yeejoin.amos.boot.module.app.biz.strategy.ISearchDetailHandler
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.feign.systemctl.Systemctl
;
import
org.apache.http.entity.ContentType
;
import
org.springframework.mock.web.MockMultipartFile
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.lang.reflect.Field
;
import
java.util.*
;
@Component
public
class
VehicleSearchDetailDetailHandlerImpl
implements
ISearchDetailHandler
<
Map
<
String
,
Object
>>
{
private
final
AppCommonMapper
appCommonMapper
;
public
VehicleSearchDetailDetailHandlerImpl
(
AppCommonMapper
appCommonMapper
)
{
this
.
appCommonMapper
=
appCommonMapper
;
}
@Override
public
String
manageType
()
{
return
"vehicle"
;
}
@Override
public
Map
<
String
,
Object
>
hanlder
(
String
applyNo
,
String
from
)
{
return
this
.
getQueryCarCylinderInfo
(
applyNo
);
}
private
Map
<
String
,
Object
>
getQueryCarCylinderInfo
(
String
qrCode
)
{
VehicleInfoForWX
baseInfo
=
appCommonMapper
.
queryVehicleBaseInfo
(
qrCode
);
List
<
CylinderInfoForWX
>
cylinderInfos
=
appCommonMapper
.
queryCylinderIfoOfVehicle
(
qrCode
);
fillEquDefine
(
baseInfo
,
cylinderInfos
);
Map
<
String
,
Object
>
result
=
new
LinkedHashMap
<>();
JSONArray
tabs
=
new
JSONArray
();
buildFixFields
(
qrCode
,
baseInfo
,
result
);
buildOneItemTypeMap
(
baseInfo
,
tabs
);
buildManyItemTypeTab
(
cylinderInfos
,
tabs
);
result
.
put
(
"tab"
,
tabs
);
return
result
;
}
private
void
fillEquDefine
(
VehicleInfoForWX
baseInfo
,
List
<
CylinderInfoForWX
>
cylinderInfos
)
{
cylinderInfos
.
forEach
(
c
->
c
.
setEquDefine
(
baseInfo
.
getEquDefine
()));
}
private
void
buildFixFields
(
String
qrCode
,
VehicleInfoForWX
baseInfo
,
Map
<
String
,
Object
>
result
)
{
result
.
putAll
(
getQRCode
(
qrCode
));
result
.
put
(
"unitName"
,
baseInfo
.
getUseUnitName
());
result
.
put
(
"equList"
,
baseInfo
.
getEquList
());
}
private
void
buildManyItemTypeTab
(
List
<
CylinderInfoForWX
>
cylinderInfos
,
JSONArray
tabs
)
{
JSONObject
tab
=
new
JSONObject
();
tab
.
put
(
"title"
,
"气瓶信息"
);
tab
.
put
(
"tabValue"
,
this
.
buildFieldsWithGroup
(
cylinderInfos
));
tab
.
put
(
"isGroup"
,
true
);
tabs
.
add
(
tab
);
}
private
void
buildOneItemTypeMap
(
VehicleInfoForWX
baseInfo
,
JSONArray
tabs
)
{
JSONObject
tab
=
new
JSONObject
();
tab
.
put
(
"title"
,
"基本信息"
);
tab
.
put
(
"tabValue"
,
this
.
buildFieldsNoGroup
(
baseInfo
));
tab
.
put
(
"isGroup"
,
false
);
tabs
.
add
(
tab
);
}
private
Object
buildFieldsNoGroup
(
VehicleInfoForWX
baseInfo
)
{
JSONArray
fieldArray
=
new
JSONArray
();
Field
[]
fields
=
baseInfo
.
getClass
().
getDeclaredFields
();
for
(
Field
field
:
fields
)
{
field
.
setAccessible
(
true
);
FieldDisplayDefine
displayDefine
=
field
.
getAnnotation
(
FieldDisplayDefine
.
class
);
try
{
if
(
displayDefine
!=
null
&&
displayDefine
.
isExist
())
{
String
fieldName
=
displayDefine
.
value
();
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"fieldName"
,
fieldName
);
json
.
put
(
"fieldKey"
,
field
.
getName
());
json
.
put
(
"fieldValue"
,
field
.
get
(
baseInfo
));
fieldArray
.
add
(
json
);
}
}
catch
(
IllegalAccessException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
return
fieldArray
;
}
private
Object
buildFieldsWithGroup
(
List
<
CylinderInfoForWX
>
cylinderInfos
)
{
JSONArray
groupArray
=
new
JSONArray
();
for
(
CylinderInfoForWX
cylinderInfo:
cylinderInfos
){
JSONObject
group
=
new
JSONObject
();
JSONArray
fieldArray
=
new
JSONArray
();
Field
[]
fields
=
cylinderInfo
.
getClass
().
getDeclaredFields
();
for
(
Field
field
:
fields
)
{
field
.
setAccessible
(
true
);
FieldDisplayDefine
displayDefine
=
field
.
getAnnotation
(
FieldDisplayDefine
.
class
);
try
{
if
(
displayDefine
!=
null
&&
displayDefine
.
isExist
())
{
String
fieldName
=
displayDefine
.
value
();
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"fieldName"
,
fieldName
);
json
.
put
(
"fieldKey"
,
field
.
getName
());
Converter
<
String
>
converter
=
displayDefine
.
converter
().
newInstance
();
if
(
field
.
get
(
cylinderInfo
)
!=
null
){
json
.
put
(
"fieldValue"
,
converter
.
convertToLabelData
((
String
)
field
.
get
(
cylinderInfo
)));
}
else
{
json
.
put
(
"fieldValue"
,
""
);
}
fieldArray
.
add
(
json
);
}
}
catch
(
IllegalAccessException
|
InstantiationException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
group
.
put
(
"groupName"
,
String
.
format
(
"气瓶(%s)"
,
cylinderInfo
.
getFactoryNum
()));
group
.
put
(
"groupFields"
,
fieldArray
);
groupArray
.
add
(
group
);
}
return
groupArray
;
}
private
JSONObject
getQRCode
(
String
code
)
{
JSONObject
jsonObject
=
new
JSONObject
();
byte
[]
bytes
=
QRCodeUtil
.
generateQRCodeImageByteData
(
code
,
50
);
InputStream
inputStream
=
new
ByteArrayInputStream
(
bytes
);
try
{
MultipartFile
file
=
new
MockMultipartFile
(
code
+
".jpg"
,
code
+
".jpg"
,
ContentType
.
APPLICATION_OCTET_STREAM
.
toString
(),
inputStream
);
FeignClientResult
<
Map
<
String
,
String
>>
date
=
Systemctl
.
fileStorageClient
.
updateCommonFileFree
(
file
,
"ugp/qrcode"
);
if
(
date
!=
null
)
{
Map
<
String
,
String
>
map
=
date
.
getResult
();
Iterator
<
String
>
it
=
map
.
keySet
().
iterator
();
String
urlString
=
it
.
next
();
jsonObject
.
put
(
"fileUrl"
,
urlString
);
jsonObject
.
put
(
"fileName"
,
code
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
jsonObject
;
}
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/strategy/ISearchDetailHandler.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
biz
.
strategy
;
import
java.util.Map
;
public
interface
ISearchDetailHandler
<
T
extends
Map
<
String
,
Object
>>
{
/**
* 可处理方式
* @return 处理方式
*/
String
manageType
();
/**
* 处理处理
* @param applyNo 单号
* @param from 来源
* @return T
*/
T
hanlder
(
String
applyNo
,
String
from
);
}
amos-boot-system-tzs/amos-boot-module-app/amos-boot-module-app-biz/src/main/java/com/yeejoin/amos/boot/module/app/biz/strategy/SearchDetailStrategyContext.java
0 → 100644
View file @
998abdd7
package
com
.
yeejoin
.
amos
.
boot
.
module
.
app
.
biz
.
strategy
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.concurrent.ConcurrentHashMap
;
@Component
public
class
SearchDetailStrategyContext
implements
ApplicationContextAware
{
private
static
final
Map
<
String
,
ISearchDetailHandler
>
handlerMap
=
new
ConcurrentHashMap
<>();
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
Map
<
String
,
ISearchDetailHandler
>
searchHandlerMap
=
applicationContext
.
getBeansOfType
(
ISearchDetailHandler
.
class
);
if
(
searchHandlerMap
.
isEmpty
())
{
return
;
}
for
(
ISearchDetailHandler
handler
:
searchHandlerMap
.
values
())
{
handlerMap
.
put
(
handler
.
manageType
(),
handler
);
}
}
public
static
ISearchDetailHandler
getHandler
(
String
type
)
{
return
Optional
.
ofNullable
(
handlerMap
.
get
(
type
)).
orElseThrow
(()
->
new
RuntimeException
(
String
.
format
(
"not found %s type strategy"
,
type
)));
}
}
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