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
e0bbb0a3
Commit
e0bbb0a3
authored
Nov 25, 2025
by
tianbo
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop_tzs_test' into develop_tzs_register
parents
3e4662ae
befd8474
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
1170 additions
and
335 deletions
+1170
-335
XiAnDataDockController.java
...n/amos/api/openapi/controller/XiAnDataDockController.java
+2
-2
OpenapiBizTokenMapper.java
.../amos/api/openapi/face/orm/dao/OpenapiBizTokenMapper.java
+4
-1
OpenapiBizTokenService.java
...amos/api/openapi/face/service/OpenapiBizTokenService.java
+2
-3
XiAnDataDockServiceImpl.java
...oin/amos/api/openapi/service/XiAnDataDockServiceImpl.java
+5
-5
CylinderSyncServiceImpl.java
...ylinder/flc/biz/service/impl/CylinderSyncServiceImpl.java
+1
-1
DictParamsConverter.java
...mos/boot/module/jg/api/converter/DictParamsConverter.java
+2
-0
JgChangeRegistrationUnit.java
...s/boot/module/jg/api/entity/JgChangeRegistrationUnit.java
+1
-1
CommonMapper.java
.../yeejoin/amos/boot/module/jg/api/mapper/CommonMapper.java
+4
-0
CommonMapper.xml
...-module-jg-api/src/main/resources/mapper/CommonMapper.xml
+46
-1
JgUseRegistrationMapper.xml
...api/src/main/resources/mapper/JgUseRegistrationMapper.xml
+2
-2
JgChangeRegistrationUnitController.java
...jg/biz/controller/JgChangeRegistrationUnitController.java
+13
-0
CommonServiceImpl.java
...os/boot/module/jg/biz/service/impl/CommonServiceImpl.java
+5
-3
DataDockServiceImpl.java
.../boot/module/jg/biz/service/impl/DataDockServiceImpl.java
+194
-126
ElevatorDataTransactionService.java
...e/jg/biz/service/impl/ElevatorDataTransactionService.java
+26
-0
IdxBizJgInspectionDetectionInfoServiceImpl.java
...vice/impl/IdxBizJgInspectionDetectionInfoServiceImpl.java
+1
-1
IdxBizJgProjectContraptionServiceImplService.java
...ce/impl/IdxBizJgProjectContraptionServiceImplService.java
+3
-4
IdxBizJgRegisterInfoServiceImpl.java
.../jg/biz/service/impl/IdxBizJgRegisterInfoServiceImpl.java
+5
-4
JgCertificateReplenishServiceImpl.java
...g/biz/service/impl/JgCertificateReplenishServiceImpl.java
+18
-4
JgChangeRegistrationTransferServiceImpl.java
...service/impl/JgChangeRegistrationTransferServiceImpl.java
+1
-1
JgChangeRegistrationUnitServiceImpl.java
...biz/service/impl/JgChangeRegistrationUnitServiceImpl.java
+234
-5
SafetyProblemTracingGenServiceImpl.java
.../biz/service/impl/SafetyProblemTracingGenServiceImpl.java
+84
-20
CertificateReplenish.ftl
...biz/src/main/resources/templates/CertificateReplenish.ftl
+172
-146
unit-registration-certificate-report.ftl
...ources/templates/unit-registration-certificate-report.ftl
+150
-0
unit-use-registration-model.ftl
.../main/resources/templates/unit-use-registration-model.ftl
+179
-1
ComprehensiveStatisticalAnalysisServiceImpl.java
...ice/impl/ComprehensiveStatisticalAnalysisServiceImpl.java
+9
-1
CylinderOpenApiServiceImpl.java
...tatistcs/biz/service/impl/CylinderOpenApiServiceImpl.java
+1
-1
ThreeSystemsMapper.xml
...-tcm-api/src/main/resources/mapper/ThreeSystemsMapper.xml
+1
-0
TzsUserInfoMapper.xml
...e-tcm-api/src/main/resources/mapper/TzsUserInfoMapper.xml
+1
-0
IdxBizJgProjectContraptionMapper.xml
...ain/resources/mapper/IdxBizJgProjectContraptionMapper.xml
+2
-2
TzBaseEnterpriseInfoMapper.xml
.../src/main/resources/mapper/TzBaseEnterpriseInfoMapper.xml
+2
-0
No files found.
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/controller/XiAnDataDockController.java
View file @
e0bbb0a3
...
...
@@ -28,7 +28,7 @@ public class XiAnDataDockController {
/**
* 西安除电梯外七大类设备批量导入
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/importData"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"西安除电梯外七大类设备批量导入"
,
notes
=
"西安除电梯外七大类设备批量导入"
)
public
Object
importPressureData
(
@RequestParam
MultipartFile
file
)
{
...
...
@@ -53,7 +53,7 @@ public class XiAnDataDockController {
/**
* 西安电梯历史设备以及业务数据批量导入
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@PostMapping
(
value
=
"/importElevatorData"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"西安电梯历史设备以及业务数据批量导入"
,
notes
=
"西安电梯历史设备以及业务数据批量导入"
)
public
Object
importElevatorData
(
@RequestParam
MultipartFile
file
,
@RequestParam
(
required
=
false
,
defaultValue
=
"true"
)
Boolean
isRegistration
)
{
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/orm/dao/OpenapiBizTokenMapper.java
View file @
e0bbb0a3
package
com
.
yeejoin
.
amos
.
api
.
openapi
.
face
.
orm
.
dao
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.api.openapi.face.orm.entity.OpenapiBizToken
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -32,6 +33,7 @@ public interface OpenapiBizTokenMapper extends BaseMapper<OpenapiBizToken> {
@Select
(
"select DEVELOPER_AGENCY from iot_openapi_biz_token where DEVELOPER_AGENCY is not null AND DATA_TYPE = 'cyl' group by DEVELOPER_AGENCY"
)
public
List
<
String
>
getServiceList
();
@Select
(
"select use_unit_code, use_unit from amos_tzs_biz.tz_base_enterprise_info where app_id = '${appId}'"
)
@Select
(
"select use_unit_code, use_unit from amos_tzs_biz.tz_base_enterprise_info where app_id = #{appId}"
)
@DS
(
"tzs"
)
Map
<
String
,
String
>
queryUnitInfoByAppId
(
@Param
(
"appId"
)
String
appId
);
}
\ No newline at end of file
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/OpenapiBizTokenService.java
View file @
e0bbb0a3
...
...
@@ -66,6 +66,8 @@ public class OpenapiBizTokenService extends BaseService<OpenapiBizTokenModel, Op
idPasswordAuthModel
.
setPassword
(
DesUtil
.
encode
(
systemUserInfo
.
getPassword
(),
Constant
.
PASSWORD_ENCODE_KEY
));
BizTokenModel
bizTokenModel
=
new
BizTokenModel
();
bizTokenModel
.
setAppId
(
appId
);
bizTokenModel
.
setProduct
(
appId
);
RequestContext
.
setProduct
(
appId
);
RequestContext
.
setAppKey
(
bizTokenModel
.
getAppKey
());
FeignClientResult
<
HashMap
<
String
,
Object
>>
responseModel
=
Privilege
.
authClient
.
idpassword
(
idPasswordAuthModel
);
...
...
@@ -73,9 +75,6 @@ public class OpenapiBizTokenService extends BaseService<OpenapiBizTokenModel, Op
String
token
=
(
String
)
authModel
.
get
(
"token"
);
bizTokenModel
.
setToken
(
token
);
RequestContext
.
setToken
(
token
);
// AgencyUserModel user = Privilege.agencyUserClient.getme().getResult();
// bizTokenModel.setApiCompanyCode(user.getCompanys().get(0).getCompanyCode()); // 当前一个人只能有一个单位
// bizTokenModel.setApiCompanyName(user.getCompanys().get(0).getCompanyName()); // 当前一个人只能有一个单位
// 调整为从业务表根据appId查询单位信息
bizTokenModel
.
setApiCompanyCode
(
unitCode
);
bizTokenModel
.
setApiCompanyName
(
unitName
);
...
...
amos-boot-data/amos-boot-data-openapi/src/main/java/com/yeejoin/amos/api/openapi/service/XiAnDataDockServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -783,7 +783,7 @@ public class XiAnDataDockServiceImpl {
Map
<
String
,
Object
>
rMap
=
new
HashMap
<>();
// 主线程中获取登录信息传递到异步线程中
RequestContextWrapper
contextWrapper
=
RequestContextWrapper
.
capture
();
Set
<
String
>
import
Result
=
ConcurrentHashMap
.
newKeySet
();
// 使用线程安全的Set
Set
<
String
>
error
Result
=
ConcurrentHashMap
.
newKeySet
();
// 使用线程安全的Set
// 分批处理,但限制同时运行的批次数
int
maxConcurrentBatches
=
5
;
// 最大并发批次数
Semaphore
semaphore
=
new
Semaphore
(
maxConcurrentBatches
);
...
...
@@ -812,7 +812,7 @@ public class XiAnDataDockServiceImpl {
Collection
<?>
data
=
(
Collection
<?>)
resultMap
.
get
(
"result"
);
data
.
stream
()
.
filter
(
item
->
item
instanceof
String
)
.
forEach
(
item
->
import
Result
.
add
((
String
)
item
));
.
forEach
(
item
->
error
Result
.
add
((
String
)
item
));
}
if
(
resultMap
.
containsKey
(
"status"
)
&&
Integer
.
parseInt
(
resultMap
.
get
(
"status"
).
toString
())
!=
200
)
{
throw
new
RuntimeException
(
resultMap
.
get
(
"message"
).
toString
());
...
...
@@ -828,9 +828,9 @@ public class XiAnDataDockServiceImpl {
}
// 等待所有异步任务完成
CompletableFuture
.
allOf
(
futures
.
toArray
(
new
CompletableFuture
[
0
])).
join
();
if
(!
ValidationUtil
.
isEmpty
(
import
Result
))
{
rMap
.
put
(
"message"
,
import
Result
);
log
.
info
(
"更新失败:{}"
,
import
Result
);
if
(!
ValidationUtil
.
isEmpty
(
error
Result
))
{
rMap
.
put
(
"message"
,
error
Result
);
log
.
info
(
"更新失败:{}"
,
error
Result
);
return
rMap
;
}
log
.
info
(
"设备保存成功"
);
...
...
amos-boot-system-tzs/amos-boot-module-cylinder/amos-boot-module-cylinder-biz/src/main/java/com/yeejoin/amos/boot/module/cylinder/flc/biz/service/impl/CylinderSyncServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -19,7 +19,7 @@ import java.util.List;
* @date 2022-03-04
*/
@Service
@DS
(
"
cyl
"
)
@DS
(
"
openapi
"
)
public
class
CylinderSyncServiceImpl
{
@Autowired
private
CylCylinderFillingCheckMapper
fillingCheckMapper
;
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/converter/DictParamsConverter.java
View file @
e0bbb0a3
...
...
@@ -73,6 +73,8 @@ public class DictParamsConverter implements Converter<String> {
dictMap
.
put
(
"GD2"
,
"6007"
);
dictMap
.
put
(
"GB1"
,
"8890"
);
dictMap
.
put
(
"GB2"
,
"8891"
);
dictMap
.
put
(
"GA1"
,
"8888"
);
dictMap
.
put
(
"GA2"
,
"8889"
);
dictMap
.
put
(
"压缩天然气"
,
"COMPRESSED_NATURAL_GAS"
);
dictMap
.
put
(
"液化天然气"
,
"LIQUEFIED_NATURAL_GAS"
);
dictMap
.
put
(
"液化石油气"
,
"LIQUEFIED_PETROLEUM_GAS"
);
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/entity/JgChangeRegistrationUnit.java
View file @
e0bbb0a3
...
...
@@ -26,7 +26,7 @@ public class JgChangeRegistrationUnit extends BaseEntity {
private
static
final
long
serialVersionUID
=
1L
;
/**
* 变更类型(0
转出,1转入
)
* 变更类型(0
-区内,1-区外
)
*/
@TableField
(
"change_type"
)
private
String
changeType
;
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/mapper/CommonMapper.java
View file @
e0bbb0a3
...
...
@@ -375,6 +375,10 @@ public interface CommonMapper extends BaseMapper<EquipmentCategory> {
Map
<
String
,
String
>
queryTcmUnitInfoBySeq
(
@Param
(
"unitSeq"
)
String
unitSeq
,
@Param
(
"unitType"
)
String
unitType
);
String
queryTcmUnitSeqByCreditCode
(
@Param
(
"unitCreditCode"
)
String
unitCreditCode
,
@Param
(
"unitType"
)
String
unitType
);
// 产权单位调整为可输入或选择--结束
List
<
Map
<
String
,
Object
>>
queryInMaintenanceRecord
();
List
<
Map
<
String
,
Object
>>
queryInInspectionRecord
();
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/resources/mapper/CommonMapper.xml
View file @
e0bbb0a3
...
...
@@ -1177,7 +1177,7 @@
SELECT "RECORD","NEXT_INSPECT_DATE",rowNum1
FROM
(
SELECT ROW_NUMBER () OVER ( PARTITION BY "RECORD" ORDER BY "INSPECT_DATE" DESC) AS rowNum1,"RECORD", "NEXT_INSPECT_DATE"
SELECT ROW_NUMBER () OVER ( PARTITION BY "RECORD" ORDER BY "INSPECT_DATE" DESC
, REC_DATE DESC
) AS rowNum1,"RECORD", "NEXT_INSPECT_DATE"
FROM
idx_biz_jg_inspection_detection_info where "NEXT_INSPECT_DATE" is not null
) d
...
...
@@ -3501,4 +3501,49 @@
and unit_type = #{unitType}
</if>
</select>
<select
id=
"queryInMaintenanceRecord"
resultType=
"java.util.Map"
>
SELECT
ui."RECORD"
FROM
idx_biz_jg_use_info ui
LEFT JOIN idx_biz_jg_other_info oi ON oi."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_supervision_info si on si."RECORD" = ui."RECORD"
LEFT JOIN (
SELECT
"RECORD", "INFORM_END", rowNum1
FROM
(
SELECT ROW_NUMBER() OVER (PARTITION BY "RECORD" ORDER BY "REC_DATE" DESC) AS rowNum1, "RECORD", "INFORM_END"
FROM
idx_biz_jg_maintenance_record_info where "INFORM_END" is not null
) d
WHERE d.rowNum1 = 1 and d."INFORM_END" >= CURRENT_DATE
) tt on tt."RECORD" = ui."RECORD"
WHERE si."ORG_BRANCH_CODE" like '50%'
and oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领')
and tt."INFORM_END" is not null
</select>
<select
id=
"queryInInspectionRecord"
resultType=
"java.util.Map"
>
SELECT
ui."RECORD"
FROM
idx_biz_jg_use_info ui
LEFT JOIN idx_biz_jg_other_info oi ON oi."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_supervision_info si on si."RECORD" = ui."RECORD"
LEFT JOIN (
SELECT "RECORD", "NEXT_INSPECT_DATE", rowNum1
FROM
(
SELECT ROW_NUMBER () OVER ( PARTITION BY "RECORD" ORDER BY "INSPECT_DATE" DESC, "REC_DATE" DESC) AS rowNum1, "RECORD", "NEXT_INSPECT_DATE"
FROM
idx_biz_jg_inspection_detection_info where "NEXT_INSPECT_DATE" is not null
) d
WHERE d.rowNum1 =1 and d."NEXT_INSPECT_DATE" >= CURRENT_DATE
) tt on tt."RECORD" = ui."RECORD"
WHERE si."ORG_BRANCH_CODE" like '50%'
AND oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领')
AND tt."NEXT_INSPECT_DATE" is not null
</select>
</mapper>
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/resources/mapper/JgUseRegistrationMapper.xml
View file @
e0bbb0a3
...
...
@@ -1322,7 +1322,7 @@
</if>
</otherwise>
</choose>
ORDER BY ui.REC_DATE DESC
ORDER BY
factoryNum ASC,
ui.REC_DATE DESC
) aa
<where>
<if
test=
"jsonObject.equDefineName != null and jsonObject.equDefineName != ''"
>
...
...
@@ -1443,7 +1443,7 @@
<foreach
collection=
"records"
item=
"record"
open=
"("
close=
")"
separator=
","
>
#{record}
</foreach>
ORDER BY ui.REC_DATE DESC
ORDER BY
factoryNum ASC,
ui.REC_DATE DESC
</select>
<select
id=
"queryForFlowingEquipList"
resultType=
"com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto"
>
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/JgChangeRegistrationUnitController.java
View file @
e0bbb0a3
...
...
@@ -232,4 +232,17 @@ public class JgChangeRegistrationUnitController extends BaseController {
return
ResponseHelper
.
buildResponse
(
businessType
.
equals
(
"1"
)
?
"单位变更"
:
"注销"
+
"业务,"
+
"申请单号:"
+
applyNos
+
"数据修改成功"
);
}
/**
* 处理单位变更流程结束,业务未结束单子问题
* @param applyNo 申请单号
* @return s
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/handleChangeRegistrationUnitWrongData"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"处理单位变更流程结束,业务未结束单子问题"
,
notes
=
"处理单位变更流程结束,业务未结束单子问题"
)
public
ResponseModel
<
Object
>
handleChangeRegistrationUnitWrongData
(
@RequestParam
(
"applyNo"
)
String
applyNo
)
{
jgChangeRegistrationUnitServiceImpl
.
handleChangeRegistrationUnitWrongData
(
applyNo
);
return
ResponseHelper
.
buildResponse
(
"ok"
);
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/CommonServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -2501,9 +2501,11 @@ public class CommonServiceImpl implements ICommonService {
wrapper
.
eq
(
TzBaseEnterpriseInfo:
:
getUseUnitCode
,
formData
.
getString
(
"estateUnitName"
).
split
(
"_"
)[
0
]);
//产权单位联系电话
TzBaseEnterpriseInfo
tzBaseEnterpriseInfo
=
enterpriseInfoMapper
.
selectOne
(
wrapper
);
String
contactPhone
=
tzBaseEnterpriseInfo
.
getContactPhone
();
if
(
StringUtils
.
isNotEmpty
(
contactPhone
))
{
formData
.
put
(
"estatePhone"
,
contactPhone
);
if
(!
ValidationUtil
.
isEmpty
(
tzBaseEnterpriseInfo
))
{
String
contactPhone
=
tzBaseEnterpriseInfo
.
getContactPhone
();
if
(
StringUtils
.
isNotEmpty
(
contactPhone
))
{
formData
.
put
(
"estatePhone"
,
contactPhone
);
}
}
formData
.
put
(
"CQUnitCode"
,
formData
.
getString
(
"estateUnitName"
).
split
(
"_"
)[
0
]);
formData
.
put
(
"estateUnitName"
,
formData
.
getString
(
"estateUnitName"
).
split
(
"_"
)[
1
]);
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/DataDockServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -37,6 +37,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.*;
import
com.yeejoin.amos.boot.module.jg.api.entity.*
;
import
com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.CertificateStatusEnum
;
import
com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemStatusEnum
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationManageMapper
;
...
...
@@ -175,6 +176,8 @@ public class DataDockServiceImpl {
private
final
PieLineDataChangeServiceImpl
pieLineDataChangeService
;
private
final
ElevatorDataTransactionService
elevatorDataTransactionService
;
@Value
(
"${equip.detail.path:/mixuap?appId=1742358052905971713&id=1734100233714954241&formType=detail&record=%s&DATA_SOURCE=%s}"
)
private
String
equipRoutePath
;
...
...
@@ -242,7 +245,7 @@ public class DataDockServiceImpl {
}
catch
(
Exception
e
)
{
esEquipmentCategory
.
deleteById
(
record
);
e
.
printStackTrace
();
log
.
error
(
"{}数据:保存时出现异常,对应数据:{}"
,
dataSource
,
JSONObject
.
toJSONString
(
equ
));
log
.
error
(
"{}数据:保存时出现异常,对应数据:{}"
,
dataSource
,
toJSONString
(
equ
));
log
.
error
(
"异常信息:{}"
,
e
.
getMessage
());
throw
new
RuntimeException
(
e
);
}
...
...
@@ -824,6 +827,7 @@ public class DataDockServiceImpl {
equipmentCategoryDto
.
setSTATUS
(
"已认领"
);
equipmentCategoryDto
.
setIS_DO_BUSINESS
(
Boolean
.
TRUE
);
equipmentCategoryDto
.
setIS_COMPLETE_XA
(
Objects
.
equals
(
"0"
,
isCompleteXa
));
equipmentCategoryDto
.
setProblemStatus
(
SafetyProblemStatusEnum
.
HANDLED
.
getCode
());
esEquipmentCategory
.
save
(
equipmentCategoryDto
);
}
}
...
...
@@ -1025,6 +1029,8 @@ public class DataDockServiceImpl {
* @param rowError 错误集合
*/
private
void
commonFieldCheck
(
EquipInfoExcelDto
data
,
StringBuffer
rowError
,
String
remark
)
{
ReginParams
reginParams
=
JSONObject
.
parseObject
(
redisUtils
.
get
(
RedisKey
.
buildReginKey
(
RequestContext
.
getExeUserId
(),
RequestContext
.
getToken
())).
toString
(),
ReginParams
.
class
);
CompanyBo
company
=
reginParams
.
getCompany
();
boolean
isYLRQ
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
YLRQ
.
getCode
().
equals
(
data
.
getEquList
());
// 是否压力容器
boolean
isYLGD
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
YLGD
.
getCode
().
equals
(
data
.
getEquList
());
// 是否压力管道
boolean
isDT
=
!
ObjectUtils
.
isEmpty
(
data
.
getEquList
())
&&
EquipmentClassifityEnum
.
DT
.
getCode
().
equals
(
data
.
getEquList
());
// 是否电梯
...
...
@@ -1086,27 +1092,35 @@ public class DataDockServiceImpl {
}
// 同一工程装置下管道编号不能重复
if
(!
ValidationUtil
.
isEmpty
(
data
.
getProjectContraption
()))
{
String
useUnitCode
=
null
,
useUnit
=
null
,
uscUnitCode
=
null
,
uscUnitName
=
null
;
if
(
company
!=
null
)
{
if
(
"使用单位"
.
equals
(
company
.
getCompanyType
()))
{
useUnitCode
=
company
.
getCompanyCode
();
useUnit
=
company
.
getCompanyName
();
}
else
if
(
"安装改造维修单位"
.
equals
(
company
.
getCompanyType
()))
{
uscUnitCode
=
company
.
getCompanyCode
();
uscUnitName
=
company
.
getCompanyName
();
}
}
// 默认使用导入的数据
if
(
useUnitCode
==
null
&&
uscUnitCode
==
null
)
{
useUnitCode
=
String
.
valueOf
(
data
.
getUseUnitCode
()).
trim
();
}
String
useUnitCode
=
String
.
valueOf
(
data
.
getUseUnitCode
()).
trim
();
// 使用单位Code
String
useUnit
=
String
.
valueOf
(
data
.
getUseUnit
()).
trim
();
// 使用单位名称
String
proConName
=
data
.
getProjectContraption
().
trim
();
// 工程装置名称
String
proConNo
=
data
.
getProjectContraptionNo
().
trim
();
// 查询该企业下工程装置名称
IdxBizJgProjectContraption
oldContraption
=
idxBizJgProjectContraptionService
.
lambdaQuery
()
.
eq
(
IdxBizJgProjectContraption:
:
getUseUnitCreditCode
,
useUnitCode
)
.
eq
(
IdxBizJgProjectContraption:
:
getUseUnitName
,
useUnit
)
.
eq
(
IdxBizJgProjectContraption:
:
getProjectContraption
,
proConName
)
.
list
().
stream
().
findFirst
().
orElse
(
null
);
Optional
.
ofNullable
(
oldContraption
).
ifPresent
(
old
->
{
List
<
String
>
pipelineNumberList
=
idxBizJgProjectContraptionServiceImpl
.
getBaseMapper
()
.
selectEquipList
(
String
.
valueOf
(
old
.
getSequenceNbr
()))
.
stream
()
.
map
(
item
->
(
String
)
item
.
get
(
"pipelineNumber"
))
.
collect
(
Collectors
.
toList
());
// if (pipelineNumberList.contains(data.getPipelineNumber())) {
// rowError.append(String.format("系统中工程装置(%s)下已经存在管道编号(%s);", data.getProjectContraption(), data.getPipelineNumber()));
// }
});
IdxBizJgProjectContraption
oldContraption
=
idxBizJgProjectContraptionService
.
lambdaQuery
()
.
eq
(
StringUtils
.
isNotBlank
(
useUnitCode
),
IdxBizJgProjectContraption:
:
getUseUnitCreditCode
,
useUnitCode
)
.
eq
(
StringUtils
.
isNotBlank
(
uscUnitCode
),
IdxBizJgProjectContraption:
:
getUscUnitCreditCode
,
uscUnitCode
)
.
eq
(
IdxBizJgProjectContraption:
:
getProjectContraptionNo
,
proConNo
)
.
list
().
stream
().
findFirst
().
orElse
(
null
);
if
(!
ObjectUtils
.
isEmpty
(
oldContraption
))
{
String
unit
=
uscUnitName
!=
null
?
uscUnitName
:
useUnit
;
rowError
.
append
(
String
.
format
(
"该单位(%s)下已存在已纳管工程装置编号为(%s),不能导入该装置;"
,
unit
,
proConNo
));
}
List
<
String
>
list
=
projectContraptionMap
.
get
(
data
.
getProjectContraption
());
if
(
null
!=
list
)
{
...
...
@@ -2642,39 +2656,114 @@ public class DataDockServiceImpl {
public
Set
<
String
>
saveElevatorData
(
List
<
Map
<
String
,
Object
>>
equLists
)
{
RequestContextWrapper
contextWrapper
=
RequestContextWrapper
.
capture
();
Set
<
String
>
recordSet
=
Sets
.
newConcurrentHashSet
();
Set
<
String
>
inUseRecordSet
=
Sets
.
newConcurrentHashSet
();
try
{
CompletableFuture
.
allOf
(
equLists
.
parallelStream
().
map
(
equ
->
CompletableFuture
.
runAsync
(()
->
{
Set
<
String
>
resultSet
=
Sets
.
newConcurrentHashSet
();
// 分批处理大小
int
batchSize
=
100
;
int
totalSize
=
equLists
.
size
();
int
successCount
=
0
;
int
failedCount
=
0
;
// 分批处理数据
for
(
int
i
=
0
;
i
<
totalSize
;
i
+=
batchSize
)
{
int
endIndex
=
Math
.
min
(
i
+
batchSize
,
totalSize
);
List
<
Map
<
String
,
Object
>>
batch
=
equLists
.
subList
(
i
,
endIndex
);
// 批内并行处理(但每个数据项独立事务)
List
<
CompletableFuture
<
Map
<
String
,
Object
>>>
futures
=
batch
.
stream
()
.
map
(
equ
->
CompletableFuture
.
supplyAsync
(()
->
{
contextWrapper
.
apply
();
try
{
Object
resultObj
=
saveElevatorDataInTransaction
(
equ
,
"jg_his_xa"
,
null
);
if
(
resultObj
instanceof
String
)
{
recordSet
.
add
(
resultObj
.
toString
());
}
if
(
resultObj
instanceof
Map
)
{
Map
<
String
,
Object
>
result
=
(
Map
<
String
,
Object
>)
resultObj
;
inUseRecordSet
.
add
(
JSONObject
.
toJSONString
(
result
));
}
}
catch
(
LocalBadRequest
e
)
{
inUseRecordSet
.
add
(
e
.
getMessage
());
Object
resultObj
=
elevatorDataTransactionService
.
saveSingleElevatorData
(
equ
);
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"success"
,
true
);
result
.
put
(
"data"
,
resultObj
);
result
.
put
(
"equ"
,
equ
);
return
result
;
}
catch
(
Exception
e
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"success"
,
false
);
result
.
put
(
"exception"
,
e
);
result
.
put
(
"equ"
,
equ
);
return
result
;
}
},
executorService
)).
toArray
(
CompletableFuture
[]::
new
)
).
join
();
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
TransactionSynchronizationManager
.
registerSynchronization
(
new
TransactionSynchronization
()
{
@Override
public
void
afterCommit
()
{
eventPublisher
.
publish
(
new
EquipCreateOrEditEvent
(
this
,
BusinessTypeEnum
.
JG_NEW_EQUIP
.
name
(),
recordSet
,
EquipCreateOrEditEvent
.
EquipType
.
equip
));
},
executorService
))
.
collect
(
Collectors
.
toList
());
// 等待批内所有任务完成
CompletableFuture
.
allOf
(
futures
.
toArray
(
new
CompletableFuture
[
0
])).
join
();
// 处理批内结果
for
(
CompletableFuture
<
Map
<
String
,
Object
>>
future
:
futures
)
{
try
{
Map
<
String
,
Object
>
result
=
future
.
get
();
if
((
Boolean
)
result
.
get
(
"success"
))
{
Object
resultObj
=
result
.
get
(
"data"
);
if
(
resultObj
instanceof
String
)
{
recordSet
.
add
(
resultObj
.
toString
());
successCount
++;
}
if
(
resultObj
instanceof
Map
)
{
resultSet
.
add
(
JSONObject
.
toJSONString
(
resultObj
));
failedCount
++;
}
}
else
{
Exception
e
=
(
Exception
)
result
.
get
(
"exception"
);
Map
<
String
,
Object
>
equ
=
(
Map
<
String
,
Object
>)
result
.
get
(
"equ"
);
handleProcessException
(
e
,
equ
,
resultSet
);
failedCount
++;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"获取处理结果时发生异常"
,
e
);
failedCount
++;
}
}
});
log
.
info
(
"未更新设备record:{}"
,
inUseRecordSet
);
return
inUseRecordSet
;
log
.
info
(
"已处理数据 {}/{} - 成功: {}, 失败: {}"
,
Math
.
min
(
i
+
batchSize
,
totalSize
),
totalSize
,
successCount
,
failedCount
);
}
// 发布成功记录的事件
if
(!
recordSet
.
isEmpty
())
{
TransactionSynchronizationManager
.
registerSynchronization
(
new
TransactionSynchronization
()
{
@Override
public
void
afterCommit
()
{
eventPublisher
.
publish
(
new
EquipCreateOrEditEvent
(
this
,
BusinessTypeEnum
.
JG_NEW_EQUIP
.
name
(),
recordSet
,
EquipCreateOrEditEvent
.
EquipType
.
equip
));
}
});
}
log
.
info
(
"数据导入完成 - 总计: {}条, 成功: {}条, 失败: {}条"
,
totalSize
,
successCount
,
failedCount
);
log
.
info
(
"未更新设备record:{}"
,
resultSet
);
return
resultSet
;
}
private
void
handleProcessException
(
Exception
e
,
Map
<
String
,
Object
>
equ
,
Set
<
String
>
inUseRecordSet
)
{
try
{
String
traceInfo
=
Arrays
.
stream
(
e
.
getStackTrace
())
.
filter
(
x
->
x
.
getClassName
().
contains
(
"com.yeejoin"
))
.
map
(
x
->
x
.
getClassName
()
+
"."
+
x
.
getMethodName
()
+
":"
+
x
.
getLineNumber
())
.
collect
(
Collectors
.
toList
())
.
toString
();
String
record
=
Optional
.
ofNullable
(
equ
.
get
(
"record"
))
.
map
(
String:
:
valueOf
)
.
orElse
(
UUID
.
randomUUID
().
toString
());
// esEquipmentCategory.deleteById(record);
ExcelImportErrorLogDto
errorLogDto
=
JSON
.
parseObject
(
toJSONString
(
equ
),
ExcelImportErrorLogDto
.
class
);
errorLogDto
.
setErrorInfo
(
e
.
getMessage
());
errorLogDto
.
setTraceInfo
(
traceInfo
);
errorLogDto
.
setCreateTime
(
new
Date
());
excelImportErrorLogDao
.
save
(
errorLogDto
);
inUseRecordSet
.
add
(
JSONObject
.
toJSONString
(
errorLogDto
));
log
.
error
(
"处理数据时发生异常,record: {}"
,
record
,
e
);
}
catch
(
Exception
handleException
)
{
log
.
error
(
"处理异常信息时发生错误"
,
handleException
);
}
}
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
public
Object
saveElevatorDataInTransaction
(
Map
<
String
,
Object
>
equ
,
String
dataSource
,
String
remark
)
{
Map
<
String
,
String
>
errorResult
=
Maps
.
newConcurrentMap
();
String
record
=
Optional
.
ofNullable
(
equ
.
get
(
"record"
)).
map
(
String:
:
valueOf
).
orElse
(
UUID
.
randomUUID
().
toString
());
...
...
@@ -2685,83 +2774,61 @@ public class DataDockServiceImpl {
String
useRegistrationCode
=
Optional
.
ofNullable
(
equ
.
get
(
"useOrgCode"
)).
map
(
String:
:
valueOf
).
orElse
(
""
).
trim
();
dataSource
=
!
ValidationUtil
.
isEmpty
(
equ
.
get
(
"dataSource"
))
?
MapUtil
.
getStr
(
equ
,
"dataSource"
)
:
dataSource
;
try
{
if
(!
equList
.
isEmpty
())
{
// 判断设备是否已经做过除历史登记外的其他业务,如果做了其他业务则不能更新并记录反馈
Integer
useCount
=
commonMapper
.
countEquipInUseTimesForXaElevator
(
record
);
if
(
useCount
>
0
)
{
errorResult
.
put
(
"id"
,
record
);
errorResult
.
put
(
"type"
,
"inUse"
);
errorResult
.
put
(
"msg"
,
inUseError
);
return
errorResult
;
}
// 判断是否做过历史登记
boolean
isRegistered
=
true
;
Map
<
String
,
Object
>
useRegistrationMap
=
jgUseRegistrationServiceImpl
.
getJgUseRegistrationMapper
().
getUseRegistrationDetail
(
record
);
if
(
ValidationUtil
.
isEmpty
(
useRegistrationMap
)
||
ValidationUtil
.
isEmpty
(
useRegistrationMap
.
get
(
"UseRegistratSequenceNbr"
)))
{
isRegistered
=
false
;
}
IdxBizJgRegisterInfo
oldRegisterInfo
=
idxBizJgRegisterInfoService
.
getOne
(
new
QueryWrapper
<
IdxBizJgRegisterInfo
>().
eq
(
"record"
,
record
));
IdxBizJgUseInfo
useInfo
=
this
.
saveUseInfo
(
equ
,
record
,
dataSource
,
remark
,
null
);
this
.
saveDesignInfo
(
equ
,
record
);
this
.
saveFactoryInfo
(
equ
,
record
);
IdxBizJgRegisterInfo
registerInfo
=
this
.
saveRegisterInfo
(
equ
,
record
,
equCategory
,
null
);
// 西安导入电梯属地监管部门处理
this
.
handleSupervisionOffice
(
equ
);
this
.
saveSupervisionInfo
(
equ
,
record
);
IdxBizJgOtherInfo
otherInfo
=
this
.
saveOtherInfo
(
equ
,
record
,
equList
);
this
.
saveInspectInfo
(
equ
,
record
);
this
.
saveTechParams
(
equ
,
record
,
equList
);
this
.
saveEquInfoToEs
(
record
,
isCompleteXa
);
this
.
saveInstallInfo
(
equ
);
//安装信息
this
.
historyEquUpdateMaintenanceInfo
(
equ
);
//维保信息
// isRegistered=false是未做过登记设备,且dataSource=jg_his,且有使用登记证号则做历史登记
if
(!
ValidationUtil
.
isEmpty
(
useRegistrationCode
)
&&
!
isRegistered
&&
"jg_his_xa"
.
equals
(
dataSource
))
{
this
.
handleHistoryEquip
(
equ
);
//历史登记
}
// isRegistered=true表示已做过历史平台登记,则需更新历史单据等信息。
if
(
isRegistered
)
{
this
.
updateHistoryInfo
(
equ
,
registerInfo
,
otherInfo
,
oldRegisterInfo
,
useInfo
);
}
// 西安未做登记的新设备修改纳管状态为已纳管
if
(
"jg_xa"
.
equals
(
dataSource
))
{
this
.
updateUseManagementStatus
(
useInfo
);
this
.
saveNewEquipResumeInfo
(
useInfo
);
}
}
else
if
(!
businessId
.
isEmpty
())
{
this
.
saveResumeInfo
(
equ
);
equ
.
put
(
"record"
,
equ
.
get
(
"resumeSeq"
));
equ
.
put
(
"xaSerial"
,
equ
.
get
(
"resumeSeq"
));
}
else
{
String
orgBranchName
=
(
String
)
Optional
.
ofNullable
(
equ
.
get
(
"supervisionOffice"
))
.
orElseGet
(()
->
equ
.
get
(
"supervisionDepartment"
));
String
orgBranchCode
=
(
String
)
Optional
.
ofNullable
(
equ
.
get
(
"supervisionOfficeCode"
))
.
orElseGet
(()
->
equ
.
get
(
"supervisionDepartmentCode"
));
this
.
updateOrgBranchInfo
(
record
,
orgBranchName
,
orgBranchCode
);
}
return
record
;
}
catch
(
Exception
e
)
{
String
traceInfo
=
Arrays
.
stream
(
e
.
getStackTrace
()).
filter
(
x
->
x
.
getClassName
().
contains
(
"com.yeejoin"
)).
map
(
x
->
x
.
getClassName
()
+
"."
+
x
.
getMethodName
()
+
":"
+
x
.
getLineNumber
()).
collect
(
Collectors
.
toList
()).
toString
();
esEquipmentCategory
.
deleteById
(
record
);
// superviseInfoMapper.deleteDataAll(Collections.singletonList(record));
ExcelImportErrorLogDto
errorLogDto
=
JSON
.
parseObject
(
toJSONString
(
equ
),
ExcelImportErrorLogDto
.
class
);
errorLogDto
.
setErrorInfo
(
e
.
getMessage
());
errorLogDto
.
setTraceInfo
(
traceInfo
);
errorLogDto
.
setCreateTime
(
new
Date
());
excelImportErrorLogDao
.
save
(
errorLogDto
);
String
errorMessage
=
e
.
getMessage
();
if
(
errorMessage
==
null
)
{
errorMessage
=
"Unknown error occurred: "
+
e
.
getClass
().
getName
();
}
log
.
error
(
"{}数据:保存时出现异常,对应数据:{}"
,
dataSource
,
toJSONString
(
equ
),
e
);
errorResult
.
put
(
"id"
,
record
);
errorResult
.
put
(
"type"
,
"error"
);
errorResult
.
put
(
"msg"
,
errorMessage
);
errorResult
.
put
(
"traceInfo"
,
traceInfo
);
throw
new
LocalBadRequest
(
JSON
.
toJSONString
(
errorResult
));
if
(!
equList
.
isEmpty
())
{
// 判断设备是否已经做过除历史登记外的其他业务,如果做了其他业务则不能更新并记录反馈
Integer
useCount
=
commonMapper
.
countEquipInUseTimesForXaElevator
(
record
);
if
(
useCount
>
0
)
{
errorResult
.
put
(
"id"
,
record
);
errorResult
.
put
(
"type"
,
"inUse"
);
errorResult
.
put
(
"msg"
,
inUseError
);
return
errorResult
;
}
// 判断是否做过历史登记
boolean
isRegistered
=
true
;
Map
<
String
,
Object
>
useRegistrationMap
=
jgUseRegistrationServiceImpl
.
getJgUseRegistrationMapper
().
getUseRegistrationDetail
(
record
);
if
(
ValidationUtil
.
isEmpty
(
useRegistrationMap
)
||
ValidationUtil
.
isEmpty
(
useRegistrationMap
.
get
(
"UseRegistratSequenceNbr"
)))
{
isRegistered
=
false
;
}
IdxBizJgRegisterInfo
oldRegisterInfo
=
idxBizJgRegisterInfoService
.
getOne
(
new
QueryWrapper
<
IdxBizJgRegisterInfo
>().
eq
(
"record"
,
record
));
IdxBizJgUseInfo
useInfo
=
this
.
saveUseInfo
(
equ
,
record
,
dataSource
,
remark
,
null
);
this
.
saveDesignInfo
(
equ
,
record
);
this
.
saveFactoryInfo
(
equ
,
record
);
IdxBizJgRegisterInfo
registerInfo
=
this
.
saveRegisterInfo
(
equ
,
record
,
equCategory
,
null
);
// 西安导入电梯属地监管部门处理
this
.
handleSupervisionOffice
(
equ
);
this
.
saveSupervisionInfo
(
equ
,
record
);
IdxBizJgOtherInfo
otherInfo
=
this
.
saveOtherInfo
(
equ
,
record
,
equList
);
this
.
saveInspectInfo
(
equ
,
record
);
this
.
saveTechParams
(
equ
,
record
,
equList
);
this
.
saveEquInfoToEs
(
record
,
isCompleteXa
);
this
.
saveInstallInfo
(
equ
);
//安装信息
this
.
historyEquUpdateMaintenanceInfo
(
equ
);
//维保信息
// isRegistered=false是未做过登记设备,且dataSource=jg_his,且有使用登记证号则做历史登记
if
(!
ValidationUtil
.
isEmpty
(
useRegistrationCode
)
&&
!
isRegistered
&&
"jg_his_xa"
.
equals
(
dataSource
))
{
this
.
handleHistoryEquip
(
equ
);
//历史登记
}
// isRegistered=true表示已做过历史平台登记,则需更新历史单据等信息。
if
(
isRegistered
)
{
this
.
updateHistoryInfo
(
equ
,
registerInfo
,
otherInfo
,
oldRegisterInfo
,
useInfo
);
}
// 西安未做登记的新设备修改纳管状态为已纳管
if
(
"jg_xa"
.
equals
(
dataSource
))
{
this
.
updateUseManagementStatus
(
useInfo
);
this
.
saveNewEquipResumeInfo
(
useInfo
);
}
}
else
if
(!
businessId
.
isEmpty
())
{
this
.
saveResumeInfo
(
equ
);
equ
.
put
(
"record"
,
equ
.
get
(
"resumeSeq"
));
equ
.
put
(
"xaSerial"
,
equ
.
get
(
"resumeSeq"
));
}
else
{
String
orgBranchName
=
(
String
)
Optional
.
ofNullable
(
equ
.
get
(
"supervisionOffice"
))
.
orElseGet
(()
->
equ
.
get
(
"supervisionDepartment"
));
String
orgBranchCode
=
(
String
)
Optional
.
ofNullable
(
equ
.
get
(
"supervisionOfficeCode"
))
.
orElseGet
(()
->
equ
.
get
(
"supervisionDepartmentCode"
));
this
.
updateOrgBranchInfo
(
record
,
orgBranchName
,
orgBranchCode
);
}
return
record
;
}
private
void
saveNewEquipResumeInfo
(
IdxBizJgUseInfo
useInfo
)
{
...
...
@@ -3370,18 +3437,19 @@ public class DataDockServiceImpl {
private
void
saveInspectInfo
(
Map
<
String
,
Object
>
equ
,
String
record
)
{
InspectionDetectionInfo
inspectionDetectionInfo
=
new
InspectionDetectionInfo
();
BeanUtil
.
copyProperties
(
equ
,
inspectionDetectionInfo
);
inspectionDetectionInfo
.
setRecord
(
record
);
inspectionDetectionInfo
.
setRecDate
(
new
Date
());
inspectionDetectionInfo
.
setSequenceNbr
(
String
.
valueOf
(
sequence
.
nextId
()));
//杨生元说:不管有没有数据,都新增一条,防止编辑设备检验信息,保存不了
if
(
inspectionDetectionInfo
.
getInspectType
()
!=
null
&&
inspectionDetectionInfo
.
getInspectConclusion
()
!=
null
)
{
inspectionDetectionInfo
.
setRecord
(
record
);
inspectionDetectionInfo
.
setRecDate
(
new
Date
());
inspectionDetectionInfo
.
setSequenceNbr
(
String
.
valueOf
(
sequence
.
nextId
()));
if
(!
ValidationUtil
.
isEmpty
(
equ
.
get
(
"xaSerial"
)))
{
inspectionDetectionInfo
.
setInspectType
(
InspectTypeConverter
.
dictMap
.
get
(
inspectionDetectionInfo
.
getInspectType
()));
inspectionDetectionInfo
.
setInspectConclusion
(
InspectConclusionConverter
.
dictMap
.
get
(
inspectionDetectionInfo
.
getInspectConclusion
()));
}
inspectionDetectionInfoMapper
.
insert
(
inspectionDetectionInfo
);
equ
.
put
(
"inspectType"
,
inspectionDetectionInfo
.
getInspectType
());
equ
.
put
(
"inspectConclusion"
,
inspectionDetectionInfo
.
getInspectConclusion
());
}
inspectionDetectionInfoMapper
.
insert
(
inspectionDetectionInfo
);
}
public
String
updatePipingUseInfo
()
{
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/ElevatorDataTransactionService.java
0 → 100644
View file @
e0bbb0a3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
io.seata.spring.annotation.GlobalTransactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Map
;
@Service
public
class
ElevatorDataTransactionService
{
private
final
DataDockServiceImpl
dataDockService
;
@Autowired
public
ElevatorDataTransactionService
(
@Lazy
DataDockServiceImpl
dataDockService
)
{
this
.
dataDockService
=
dataDockService
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@GlobalTransactional
(
rollbackFor
=
Exception
.
class
)
public
Object
saveSingleElevatorData
(
Map
<
String
,
Object
>
equ
)
{
return
dataDockService
.
saveElevatorDataInTransaction
(
equ
,
"jg_his_xa"
,
null
);
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/IdxBizJgInspectionDetectionInfoServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -31,7 +31,7 @@ public class IdxBizJgInspectionDetectionInfoServiceImpl extends BaseService<IdxB
public
IdxBizJgInspectionDetectionInfo
queryNewestDetailByRecord
(
String
record
)
{
IdxBizJgInspectionDetectionInfo
result
=
new
IdxBizJgInspectionDetectionInfo
();
QueryWrapper
<
IdxBizJgInspectionDetectionInfo
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
lambda
().
eq
(
IdxBizJgInspectionDetectionInfo:
:
getRecord
,
record
).
orderByDesc
(
IdxBizJgInspectionDetectionInfo:
:
getInspectDate
);
queryWrapper
.
lambda
().
eq
(
IdxBizJgInspectionDetectionInfo:
:
getRecord
,
record
).
orderByDesc
(
IdxBizJgInspectionDetectionInfo:
:
getInspectDate
,
IdxBizJgInspectionDetectionInfo:
:
getRecDate
);
List
<
IdxBizJgInspectionDetectionInfo
>
inspectionDetectionInfoList
=
list
(
queryWrapper
);
if
(!
ValidationUtil
.
isEmpty
(
inspectionDetectionInfoList
))
{
BeanUtils
.
copyProperties
(
inspectionDetectionInfoList
.
get
(
0
),
result
);
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/IdxBizJgProjectContraptionServiceImplService.java
View file @
e0bbb0a3
...
...
@@ -523,14 +523,13 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
return
getCheckResultMap
(
projectContraptionIdList
,
resultMap
,
inUseTimeMap
);
}
private
Map
<
String
,
Boolean
>
getCheckResultMap
(
List
<
Long
>
projectContraptionIdList
,
Map
<
String
,
Boolean
>
resultMap
,
List
<
Map
<
String
,
Integer
>>
inUseTimeMap
)
{
private
Map
<
String
,
Boolean
>
getCheckResultMap
(
List
<
Long
>
projectContraptionIdList
,
Map
<
String
,
Boolean
>
resultMap
,
List
<
Map
<
String
,
Integer
>>
inUseTimeMap
)
{
for
(
Long
projectContraptionId
:
projectContraptionIdList
)
{
Optional
<
Integer
>
inUseCountOpt
=
inUseTimeMap
.
stream
()
.
filter
(
map
->
projectContraptionId
.
toString
().
equals
(
map
.
get
(
"project_contraption_id"
)))
.
filter
(
map
->
String
.
valueOf
(
projectContraptionId
)
.
equals
(
String
.
valueOf
(
map
.
get
(
"project_contraption_id"
))))
.
map
(
map
->
map
.
get
(
"inUseNumber"
))
.
filter
(
Objects:
:
nonNull
)
.
findFirst
();
Integer
inUseCount
=
inUseCountOpt
.
orElse
(
0
);
resultMap
.
put
(
String
.
valueOf
(
projectContraptionId
),
inUseCount
<=
0
);
}
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/IdxBizJgRegisterInfoServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -1231,10 +1231,11 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
esEquipmentCategoryDto
.
setSEQUENCE_NBR
(
recordList
.
toString
());
list
.
add
(
esEquipmentCategoryDto
);
}
// 删除校验,被引用时不可删除。管道不做是否引用校验,直接删除已有管道
if
(!
PipelineEnum
.
PRESSURE_PIPELINE
.
getCode
().
equals
(
map
.
get
(
"equList"
)))
{
this
.
checkForDelete
(
records
);
}
// 删除校验,被引用时不可删除。管道不做是否引用校验,直接删除已有管道(20251121注释,管道引用不能删除)
//if(!PipelineEnum.PRESSURE_PIPELINE.getCode().equals(map.get("equList"))) {
//this.checkForDelete(records);
//}
this
.
checkForDelete
(
records
);
if
(
CollUtil
.
isNotEmpty
(
records
))
{
// 删除涉及的19张表的数据
superviseInfoMapper
.
deleteDataAll
(
records
);
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/JgCertificateReplenishServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -82,6 +82,8 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
public
static
final
String
IDX_BIZ_VIEW_JG_ALL
=
"idx_biz_view_jg_all"
;
public
static
final
String
equUseAddress
=
"equUseAddress"
;
public
static
final
String
useRegistrationCode
=
"useRegistrationCode"
;
public
static
final
String
whetherVehicleCylinder
=
"WHETHER_VEHICLE_CYLINDER"
;
public
static
final
String
manageType
=
"manageType"
;
public
static
final
String
USE_ORG_CODE
=
"USE_ORG_CODE"
;
public
static
final
String
STATUS
=
"STATUS"
;
public
static
final
String
record
=
"record"
;
...
...
@@ -809,6 +811,9 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
JSONObject
result
=
new
JSONObject
();
result
.
put
(
"applyNo"
,
applyNo
);
result
.
put
(
"useUnitName"
,
jsonObject
.
getString
(
"useUnitName"
));
result
.
put
(
"manageType"
,
Objects
.
toString
(
jsonObject
.
get
(
manageType
),
"set"
));
result
.
put
(
"whetherVehicleCylinder"
,
Objects
.
toString
(
jsonObject
.
get
(
whetherVehicleCylinder
),
"0"
));
result
.
put
(
"equCategoryCode"
,
jsonObject
.
getString
(
"equCategoryCode"
));
result
.
put
(
"equUseAddress"
,
jsonObject
.
getString
(
"equUseAddress"
));
result
.
put
(
"applicationReason"
,
jsonObject
.
getString
(
"applicationReason"
));
result
.
put
(
"lossDamageTime"
,
jsonObject
.
getString
(
"lossDamageTime"
).
substring
(
0
,
10
));
...
...
@@ -834,15 +839,24 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
* @return
*/
public
Map
<
String
,
Object
>
queryEquByCertSeq
(
String
sequenceNbr
)
{
JgUseRegistrationManage
registrationManage
=
registrationManageService
.
getBaseMapper
().
selectOne
(
new
LambdaQueryWrapper
<
JgUseRegistrationManage
>().
eq
(
JgUseRegistrationManage:
:
getSequenceNbr
,
sequenceNbr
).
eq
(
JgUseRegistrationManage:
:
getIsDelete
,
0
).
select
(
JgUseRegistrationManage:
:
getUseRegistrationCode
,
JgUseRegistrationManage:
:
getEquUseAddress
));
JgUseRegistrationManage
registrationManage
=
registrationManageService
.
getBaseMapper
()
.
selectOne
(
new
LambdaQueryWrapper
<
JgUseRegistrationManage
>()
.
eq
(
JgUseRegistrationManage:
:
getSequenceNbr
,
sequenceNbr
)
.
eq
(
JgUseRegistrationManage:
:
getIsDelete
,
0
)
.
select
(
JgUseRegistrationManage:
:
getUseRegistrationCode
,
JgUseRegistrationManage:
:
getUseUnitAddress
,
JgUseRegistrationManage:
:
getEquUseAddress
,
JgUseRegistrationManage:
:
getManageType
));
HashMap
<
String
,
Object
>
result
=
new
HashMap
<>();
if
(
ValidationUtil
.
isEmpty
(
registrationManage
))
{
return
result
;
}
List
<
JSONObject
>
equipmentLists
=
this
.
queryEquByCert
(
registrationManage
.
getUseRegistrationCode
());
result
.
put
(
EQU_LISTS
,
equipmentLists
);
List
<
JSONObject
>
list
=
queryEquByCert
(
registrationManage
.
getUseRegistrationCode
());
result
.
put
(
EQU_LISTS
,
list
);
result
.
put
(
"whetherVehicleCylinder"
,
list
.
stream
().
findFirst
().
map
(
j
->
j
.
get
(
whetherVehicleCylinder
))
.
orElse
(
"0"
));
result
.
put
(
useRegistrationCode
,
registrationManage
.
getUseRegistrationCode
());
result
.
put
(
equUseAddress
,
StringUtils
.
isEmpty
(
registrationManage
.
getEquUseAddress
())?
""
:
registrationManage
.
getEquUseAddress
());
result
.
put
(
manageType
,
registrationManage
.
getManageType
());
result
.
put
(
equUseAddress
,
"unit"
.
equals
(
registrationManage
.
getManageType
())
?
registrationManage
.
getUseUnitAddress
()
:
registrationManage
.
getEquUseAddress
());
return
result
;
}
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/JgChangeRegistrationTransferServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -652,7 +652,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
*/
@Override
@ResultFieldMapping
({
@ResultFieldMapping
.
ResultFieldMap
(
sourceField
=
"changeRegistrationTransfer.
transferUseInfo
"
,
@ResultFieldMapping
.
ResultFieldMap
(
sourceField
=
"changeRegistrationTransfer.
estateUnitCode
"
,
targetField
=
"changeRegistrationTransfer.estateUnitSeq"
,
serviceClass
=
CommonServiceImpl
.
class
,
queryMethod
=
"queryTcmUnitSeqByCreditCode"
,
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/JgChangeRegistrationUnitServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
...
...
@@ -1960,10 +1961,6 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
List
<
JgUseRegistrationManage
>
newList
=
new
ArrayList
<>();
for
(
JgUseRegistrationManage
registrationManage
:
list
)
{
// 修改使用登记证管理使用单位信息
registrationManage
.
setUseUnitName
(
registration
.
getNewUseUnitName
());
registrationManage
.
setUseUnitCreditCode
(
registration
.
getNewUseUnitCreditCode
());
registrationManage
.
setReceiveOrgName
(
registration
.
getReceiveOrgName
());
registrationManage
.
setReceiveCompanyCode
(
registration
.
getReceiveOrgCode
());
registrationManage
.
setAuditPassDate
(
registration
.
getAuditPassDate
());
registrationManage
.
setVersion
(
registrationManage
.
getVersion
()
+
1
);
if
(
"1"
.
equals
(
registration
.
getChangeType
())
&&
EQU_CODE_CC
.
equals
(
dto
.
getEquListCode
()))
{
...
...
@@ -1983,6 +1980,12 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
newManage
.
setVersion
(
1
);
newManage
.
setRegistrationType
(
"0"
);
newManage
.
setEquUseAddress
(
registration
.
getEquAddress
());
newManage
.
setUseUnitName
(
registration
.
getNewUseUnitName
());
newManage
.
setUseUnitCreditCode
(
registration
.
getNewUseUnitCreditCode
());
newManage
.
setReceiveOrgName
(
registration
.
getReceiveOrgName
());
newManage
.
setReceiveCompanyCode
(
registration
.
getReceiveOrgCode
());
newManage
.
setSuperviseOrgCode
(
registration
.
getOrgBranchCode
());
newManage
.
setSuperviseOrgName
(
registration
.
getOrgBranchName
());
// 如果 equListCode = 5000,则设置车牌号
if
(
EQU_CODE_CC
.
equals
(
registrationManage
.
getEquListCode
()))
{
String
targetCode
=
registrationManage
.
getUseRegistrationCode
();
...
...
@@ -2009,8 +2012,13 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
newManage
.
setSequenceNbr
(
null
);
newList
.
add
(
newManage
);
}
else
{
registrationManage
.
setUseUnitName
(
registration
.
getNewUseUnitName
());
registrationManage
.
setUseUnitCreditCode
(
registration
.
getNewUseUnitCreditCode
());
registrationManage
.
setReceiveOrgName
(
registration
.
getReceiveOrgName
());
registrationManage
.
setReceiveCompanyCode
(
registration
.
getReceiveOrgCode
());
registrationManage
.
setSuperviseOrgCode
(
registration
.
getOrgBranchCode
());
registrationManage
.
setSuperviseOrgName
(
registration
.
getOrgBranchName
());
registrationManage
.
setCertificateStatus
(
"已登记"
);
registrationManage
.
setEquUseAddress
(
registration
.
getEquAddress
());
if
(
EQU_CODE_CC
.
equals
(
registrationManage
.
getEquListCode
()))
{
String
targetCode
=
registrationManage
.
getUseRegistrationCode
();
dto
.
getRegistrationList
().
stream
()
...
...
@@ -2019,6 +2027,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
.
filter
(
carNumber
->
carNumber
!=
null
&&
!
"null"
.
equalsIgnoreCase
(
carNumber
.
trim
()))
.
findFirst
()
.
ifPresent
(
registrationManage:
:
setCarNumber
);
registrationManage
.
setEquUseAddress
(
registration
.
getEquAddress
());
}
registrationManage
.
setChangeReason
(
BusinessTypeEnum
.
JG_COMPANY_CHANGE_REGISTRATION
.
getName
());
if
(!
ObjectUtils
.
isEmpty
(
registration
.
getNewUseUnitCreditCode
()))
{
...
...
@@ -3419,4 +3428,223 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
resultMap
.
put
(
"equipInfo"
,
projectContraptionMap
);
return
resultMap
;
}
public
void
handleChangeRegistrationUnitWrongData
(
String
applyNo
)
{
String
[]
taskName
=
new
String
[]{
"已完成"
};
JgChangeRegistrationUnit
registration
=
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
JgChangeRegistrationUnit
>()
.
eq
(
JgChangeRegistrationUnit:
:
getApplyNo
,
applyNo
)
.
eq
(
JgChangeRegistrationUnit:
:
getIsDelete
,
0
));
WorkflowResultDto
workflowResultDto
=
new
WorkflowResultDto
();
workflowResultDto
.
setNextTaskCode
(
"已完成"
);
workflowResultDto
.
setNextTaskId
(
registration
.
getNextTaskId
());
workflowResultDto
.
setNextExecutorUserIds
(
registration
.
getNextExecuteUserIds
());
registration
.
setStatus
(
taskName
[
0
]);
registration
.
setAuditPassDate
(
new
Date
());
JgChangeRegistrationUnitDto
dto
=
new
JgChangeRegistrationUnitDto
();
BeanUtils
.
copyProperties
(
registration
,
dto
);
JgRegistrationHistory
history
=
registrationHistoryService
.
lambdaQuery
()
.
eq
(
JgRegistrationHistory:
:
getCurrentDocumentId
,
registration
.
getApplyNo
())
.
eq
(
JgRegistrationHistory:
:
getIsDelete
,
false
).
one
();
//如果是工业管道 如果工程装置对应一个证就直接变更给新单位;如果工程装置对应证下还有其他装置就变更后直接给新单位再重新生成一个登记证号;如果两个工程装置对应同一个使用登记证变更后生成两个新的登记证
if
(
PipelineEnum
.
PRESSURE_PIPELINE
.
getCode
().
equals
(
registration
.
getEquListCode
()))
{
dto
.
setProjectContraptionList
(
JSON
.
parseObject
(
history
.
getChangeData
(),
new
TypeReference
<
List
<
Map
<
String
,
Object
>>>(){}));
this
.
dealProjectContraption
(
dto
,
registration
.
getNextTaskId
(),
registration
,
"0"
);
}
//气瓶单位变更,如果新单位没有证,则生成新的使用登记证,如果新单位有证且是系统生成的证,则选择增补到已有的证下面同时,更新设备其他信息
else
if
(
CylinderTypeEnum
.
CYLINDER
.
getCode
().
equals
(
registration
.
getEquCategoryCode
()))
{
dto
.
setDeviceList
(
JSON
.
parseObject
(
history
.
getChangeData
(),
new
TypeReference
<
List
<
Map
<
String
,
Object
>>>(){}));
this
.
dealCylinderAuditPassData
(
dto
,
registration
.
getNextTaskId
(),
registration
,
"0"
);
}
else
{
dto
.
setRegistrationList
(
JSON
.
parseObject
(
history
.
getChangeData
(),
new
TypeReference
<
List
<
Map
<
String
,
Object
>>>(){}));
// 生成新的使用登记编号,使用登记证修改设备的使用登记信息表,使用单位名称,使用单位统一信用代码,使用登记证编号,更新ES
LambdaQueryWrapper
<
JgChangeRegistrationUnitEq
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
JgChangeRegistrationUnitEq:
:
getUnitChangeRegistrationId
,
registration
.
getSequenceNbr
());
List
<
JgChangeRegistrationUnitEq
>
jgChangeRegistrationUnitEqs
=
JgChangeRegistrationUnitEqMapper
.
selectList
(
queryWrapper
);
//修改ES中使用单位信息和使用单位代码
Map
<
String
,
Map
<
String
,
Object
>>
resultMap
=
new
HashMap
<>();
//更新产权信息
dto
.
getRegistrationList
().
forEach
(
v
->
{
String
useCode
=
String
.
valueOf
(
v
.
get
(
"useRegistrationCode"
));
String
newCarNumber
=
String
.
valueOf
(
v
.
get
(
"newCarNumber"
));
String
estateUnitSeq
=
String
.
valueOf
(
v
.
get
(
"estateUnitName"
));
TzBaseEnterpriseInfo
enterpriseInfo
=
(
estateUnitSeq
!=
null
&&
!
estateUnitSeq
.
isEmpty
())
?
tzBaseEnterpriseInfoMapper
.
selectById
(
estateUnitSeq
)
:
null
;
List
<
String
>
records
=
idxBizJgRegisterInfoService
.
getBaseMapper
()
.
selectList
(
new
LambdaQueryWrapper
<
IdxBizJgRegisterInfo
>()
.
eq
(
IdxBizJgRegisterInfo:
:
getUseOrgCode
,
useCode
))
.
stream
()
.
map
(
IdxBizJgRegisterInfo:
:
getRecord
)
.
collect
(
Collectors
.
toList
());
if
(!
records
.
isEmpty
()
&&
enterpriseInfo
!=
null
)
{
idxBizJgUseInfoService
.
update
(
new
IdxBizJgUseInfo
()
.
setEstateUnitCreditCode
(
enterpriseInfo
.
getUseUnitCode
())
.
setEquState
(
EquimentEnum
.
ZAIYONG
.
getCode
().
toString
())
.
setEstateUnitName
(
enterpriseInfo
.
getUseUnit
()),
new
LambdaQueryWrapper
<
IdxBizJgUseInfo
>()
.
in
(
IdxBizJgUseInfo:
:
getRecord
,
records
)
);
}
//场车更新车牌号
if
(
EQU_CODE_CC
.
equals
(
dto
.
getEquListCode
())
&&
newCarNumber
!=
null
&&
!
"null"
.
equals
(
newCarNumber
)
&&
useCode
!=
null
)
{
idxBizJgRegisterInfoService
.
update
(
new
IdxBizJgRegisterInfo
().
setCarNumber
(
newCarNumber
),
new
LambdaQueryWrapper
<
IdxBizJgRegisterInfo
>().
in
(
IdxBizJgRegisterInfo:
:
getUseOrgCode
,
useCode
)
);
}
});
Map
<
String
,
String
>
seqToEquId
=
new
HashMap
<>();
for
(
JgChangeRegistrationUnitEq
jgChangeRegistrationUnitEq
:
jgChangeRegistrationUnitEqs
)
{
String
equipId
=
jgChangeRegistrationUnitEq
.
getEquId
();
LambdaQueryWrapper
<
IdxBizJgUseInfo
>
useInfoLambdaQueryWrapper
=
new
LambdaQueryWrapper
<>();
useInfoLambdaQueryWrapper
.
eq
(
IdxBizJgUseInfo:
:
getRecord
,
equipId
);
IdxBizJgUseInfo
useInfo
=
useInfoMapper
.
selectOne
(
useInfoLambdaQueryWrapper
);
if
(
ObjectUtils
.
isNotEmpty
(
useInfo
))
{
useInfo
.
setUseUnitName
(
registration
.
getNewUseUnitName
());
useInfo
.
setUseUnitCreditCode
(
registration
.
getNewUseUnitCreditCode
());
// 只有变更类型为场车时,更新地址相关字段
if
(
EQU_CODE_CC
.
equals
(
registration
.
getEquListCode
()))
{
this
.
updateUseInfoAddress
(
useInfo
,
registration
);
IdxBizJgSupervisionInfo
supervisionInfo
=
new
IdxBizJgSupervisionInfo
();
supervisionInfo
.
setOrgBranchCode
(
registration
.
getOrgBranchCode
());
supervisionInfo
.
setOrgBranchName
(
registration
.
getOrgBranchName
());
idxBizJgSupervisionInfoMapper
.
update
(
supervisionInfo
,
Wrappers
.<
IdxBizJgSupervisionInfo
>
lambdaQuery
()
.
eq
(
IdxBizJgSupervisionInfo:
:
getRecord
,
equipId
));
}
useInfoMapper
.
updateById
(
useInfo
);
}
LambdaQueryWrapper
<
IdxBizJgRegisterInfo
>
registerInfoLambdaQueryWrapper
=
new
LambdaQueryWrapper
<>();
registerInfoLambdaQueryWrapper
.
eq
(
IdxBizJgRegisterInfo:
:
getRecord
,
equipId
);
IdxBizJgRegisterInfo
registerInfo
=
registerInfoMapper
.
selectOne
(
registerInfoLambdaQueryWrapper
);
Map
<
String
,
Object
>
esUpdateParams
=
new
HashMap
<>();
String
[]
companyCode
=
registration
.
getNewUseUnitCreditCode
().
split
(
"_"
);
esUpdateParams
.
put
(
"USE_UNIT_CREDIT_CODE"
,
companyCode
.
length
>
1
?
companyCode
[
1
]
:
registration
.
getNewUseUnitCreditCode
());
esUpdateParams
.
put
(
"USE_UNIT_NAME"
,
registration
.
getNewUseUnitName
());
esUpdateParams
.
put
(
"REC_DATE"
,
new
Date
());
// 更新时间,设备筛选时排在前面 bug-21476
esUpdateParams
.
put
(
"EQU_STATE"
,
"1"
);
if
(
EQU_CODE_CC
.
equals
(
registration
.
getEquListCode
()))
{
esUpdateParams
.
put
(
"USE_PLACE"
,
joinWithSeparator
(
"/"
,
useInfo
.
getProvinceName
(),
useInfo
.
getCityName
(),
useInfo
.
getCountyName
(),
useInfo
.
getStreetName
()));
esUpdateParams
.
put
(
"USE_PLACE_CODE"
,
joinWithSeparator
(
"#"
,
useInfo
.
getProvince
(),
useInfo
.
getCity
(),
useInfo
.
getCounty
(),
useInfo
.
getFactoryUseSiteStreet
()));
esUpdateParams
.
put
(
"ORG_BRANCH_CODE"
,
registration
.
getOrgBranchCode
());
esUpdateParams
.
put
(
"ORG_BRANCH_NAME"
,
registration
.
getOrgBranchName
());
}
// 如果是变更类型=1,还需要更新证号到 ES
if
(
"1"
.
equals
(
registration
.
getChangeType
())
&&
EQU_CODE_CC
.
equals
(
registration
.
getEquListCode
()))
{
// 新证号生成逻辑
String
newCode
=
commonServiceImpl
.
generateRegistrationCode
(
equipId
,
registration
.
getReceiveCompanyCode
(),
false
);
esUpdateParams
.
put
(
"USE_ORG_CODE"
,
newCode
);
seqToEquId
.
put
(
registerInfo
.
getUseOrgCode
(),
newCode
);
registerInfo
.
setUseOrgCode
(
newCode
);
registerInfoMapper
.
updateById
(
registerInfo
);
}
if
(
ObjectUtils
.
isNotEmpty
(
registerInfo
)
&&
ObjectUtils
.
isNotEmpty
(
registerInfo
.
getCarNumber
()))
{
esUpdateParams
.
put
(
"CAR_NUMBER"
,
registerInfo
.
getCarNumber
());
}
resultMap
.
put
(
equipId
,
esUpdateParams
);
//修改各类告知列表,置为废弃
this
.
updataInvalidStatusByHistory
(
equipId
,
registration
.
getApplyNo
());
tzsServiceFeignClient
.
commonUpdateEsDataByIds
(
resultMap
);
}
registration
.
setNextTaskId
(
registration
.
getNextTaskId
());
TaskV2Model
taskV2Model
=
updateTaskModel
(
registration
,
"0"
);
JSONArray
historyJson
=
JSON
.
parseArray
(
history
.
getChangeData
());
// 更新历史表中一二级审批车牌号
history
.
setChangeData
(
JSONObject
.
toJSONString
(
dto
.
getRegistrationList
()));
registrationHistoryService
.
updateById
(
history
);
List
<
String
>
ids
=
historyJson
.
stream
().
map
(
v
->
JSON
.
parseObject
(
v
.
toString
()).
getString
(
SEQUENCE_NBR
)).
collect
(
Collectors
.
toList
());
List
<
JgUseRegistrationManage
>
list
=
useRegistrationManageService
.
lambdaQuery
().
in
(
BaseEntity:
:
getSequenceNbr
,
ids
).
list
();
// 用来存放新生成的登记证
List
<
JgUseRegistrationManage
>
newList
=
new
ArrayList
<>();
for
(
JgUseRegistrationManage
registrationManage
:
list
)
{
// 修改使用登记证管理使用单位信息
registrationManage
.
setUseUnitName
(
registration
.
getNewUseUnitName
());
registrationManage
.
setUseUnitCreditCode
(
registration
.
getNewUseUnitCreditCode
());
registrationManage
.
setReceiveOrgName
(
registration
.
getReceiveOrgName
());
registrationManage
.
setReceiveCompanyCode
(
registration
.
getReceiveOrgCode
());
registrationManage
.
setAuditPassDate
(
registration
.
getAuditPassDate
());
registrationManage
.
setVersion
(
registrationManage
.
getVersion
()
+
1
);
if
(
"1"
.
equals
(
registration
.
getChangeType
())
&&
EQU_CODE_CC
.
equals
(
dto
.
getEquListCode
()))
{
// -------------------- 旧证处理 --------------------
registrationManage
.
setCertificateStatus
(
"已注销"
);
registrationManage
.
setChangeReason
(
BusinessTypeEnum
.
JG_COMPANY_CHANGE_REGISTRATION
.
getName
());
// -------------------- 新证处理 --------------------
JgUseRegistrationManage
newManage
=
new
JgUseRegistrationManage
();
BeanUtils
.
copyProperties
(
registrationManage
,
newManage
);
String
newCode
=
seqToEquId
.
get
(
registrationManage
.
getUseRegistrationCode
());
newManage
.
setUseRegistrationCode
(
newCode
);
registration
.
setUseRegistCode
(
newCode
);
// 新证属性重置
newManage
.
setCertificateStatus
(
"已登记"
);
newManage
.
setVersion
(
1
);
newManage
.
setRegistrationType
(
"0"
);
newManage
.
setEquUseAddress
(
registration
.
getEquAddress
());
// 如果 equListCode = 5000,则设置车牌号
if
(
EQU_CODE_CC
.
equals
(
registrationManage
.
getEquListCode
()))
{
String
targetCode
=
registrationManage
.
getUseRegistrationCode
();
dto
.
getRegistrationList
().
stream
()
.
filter
(
item
->
targetCode
.
equals
(
item
.
get
(
"useRegistrationCode"
)))
.
map
(
item
->
String
.
valueOf
(
item
.
get
(
"newCarNumber"
)))
.
filter
(
carNumber
->
carNumber
!=
null
&&
!
"null"
.
equalsIgnoreCase
(
carNumber
.
trim
()))
.
findFirst
()
.
ifPresent
(
newManage:
:
setCarNumber
);
}
newManage
.
setChangeReason
(
BusinessTypeEnum
.
JG_COMPANY_CHANGE_REGISTRATION
.
getName
());
// 回填新单位地址
if
(!
ObjectUtils
.
isEmpty
(
registration
.
getNewUseUnitCreditCode
()))
{
TzBaseEnterpriseInfo
useCodeResult
=
tzBaseEnterpriseInfoMapper
.
selectOne
(
new
QueryWrapper
<
TzBaseEnterpriseInfo
>()
.
eq
(
"use_unit_code"
,
registration
.
getNewUseUnitCreditCode
())
);
if
(
useCodeResult
!=
null
)
{
newManage
.
setUseUnitAddress
(
useCodeResult
.
getAddress
());
}
}
newManage
.
setSequenceNbr
(
null
);
newList
.
add
(
newManage
);
}
else
{
registrationManage
.
setCertificateStatus
(
"已登记"
);
registrationManage
.
setEquUseAddress
(
registration
.
getEquAddress
());
if
(
EQU_CODE_CC
.
equals
(
registrationManage
.
getEquListCode
()))
{
String
targetCode
=
registrationManage
.
getUseRegistrationCode
();
dto
.
getRegistrationList
().
stream
()
.
filter
(
item
->
targetCode
.
equals
(
item
.
get
(
"useRegistrationCode"
)))
.
map
(
item
->
String
.
valueOf
(
item
.
get
(
"newCarNumber"
)))
.
filter
(
carNumber
->
carNumber
!=
null
&&
!
"null"
.
equalsIgnoreCase
(
carNumber
.
trim
()))
.
findFirst
()
.
ifPresent
(
registrationManage:
:
setCarNumber
);
}
registrationManage
.
setChangeReason
(
BusinessTypeEnum
.
JG_COMPANY_CHANGE_REGISTRATION
.
getName
());
if
(!
ObjectUtils
.
isEmpty
(
registration
.
getNewUseUnitCreditCode
()))
{
TzBaseEnterpriseInfo
useCodeResult
=
tzBaseEnterpriseInfoMapper
.
selectOne
(
new
QueryWrapper
<
TzBaseEnterpriseInfo
>()
.
eq
(
"use_unit_code"
,
registration
.
getNewUseUnitCreditCode
())
);
if
(
useCodeResult
!=
null
)
{
registrationManage
.
setUseUnitAddress
(
useCodeResult
.
getAddress
());
}
}
}
}
if
(
CollUtil
.
isNotEmpty
(
newList
))
{
list
.
addAll
(
newList
);
}
useRegistrationManageService
.
saveOrUpdateBatch
(
list
);
this
.
createResume
(
registration
,
jgChangeRegistrationUnitEqs
,
taskV2Model
.
getRoutePath
());
}
//新增使用登记证和设备变更记录
this
.
saveRecord
(
registration
);
// 发送数据变更消息
this
.
sendDataRefreshMsg
(
registration
);
JgChangeRegistrationUnitMapper
.
updateById
(
registration
);
// redis流程实时数据更新
commonServiceImpl
.
saveExecuteFlowData2Redis
(
dto
.
getInstanceId
(),
this
.
buildInstanceRuntimeData
(
registration
));
this
.
delRepeatUseEquipData
(
registration
.
getApplyNo
(),
registration
.
getStatus
(),
registration
.
getNewUseUnitCreditCode
());
}
}
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/SafetyProblemTracingGenServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -91,7 +91,6 @@ public class SafetyProblemTracingGenServiceImpl{
}
}
public
void
executePersonnalCertificationCheck
()
{
logger
.
info
(
"开始人员资质超期检查"
);
List
<
Map
<
String
,
Object
>>
certificationRecords
=
commonMapper
.
queryOutOfCertificationRecord
();
...
...
@@ -252,14 +251,20 @@ public class SafetyProblemTracingGenServiceImpl{
public
void
repairMaintenanceAndInspectionOverdueProblem
()
{
logger
.
info
(
"开始设备维保备案和检验检测超期数据修正"
);
Set
<
String
>
realOutOfMaintenanceRecord
=
commonMapper
.
queryOutOfMaintenanceRecord
().
stream
().
map
(
m
->
m
.
get
(
"RECORD"
).
toString
()).
collect
(
Collectors
.
toSet
());
Set
<
String
>
realOutOfInspectRecord
=
commonMapper
.
queryOutOfInspectionRecord
().
stream
().
map
(
m
->
m
.
get
(
"RECORD"
).
toString
()).
collect
(
Collectors
.
toSet
());
Set
<
String
>
realOutOfMaintenanceRecord
=
Sets
.
newHashSet
();
processLargeResultSet
(()
->
commonMapper
.
queryOutOfMaintenanceRecord
(),
realOutOfMaintenanceRecord
);
Set
<
String
>
inMaintenanceRecord
=
Sets
.
newHashSet
();
processLargeResultSet
(()
->
commonMapper
.
queryInMaintenanceRecord
(),
inMaintenanceRecord
);
Set
<
String
>
realOutOfInspectRecord
=
Sets
.
newHashSet
();
processLargeResultSet
(()
->
commonMapper
.
queryOutOfInspectionRecord
(),
realOutOfInspectRecord
);
Set
<
String
>
inInspectRecord
=
Sets
.
newHashSet
();
processLargeResultSet
(()
->
commonMapper
.
queryInInspectionRecord
(),
inInspectRecord
);
// 需要修正业务表+es的数据
List
<
String
>
correctData
=
Lists
.
newArrayList
();
// 1.处理维保超期错误数据
List
<
String
>
outOfMaintenanceErrorData
=
handleOutOfMaintenanceErrorData
(
realOutOfMaintenanceRecord
);
List
<
String
>
outOfMaintenanceErrorData
=
handleOutOfMaintenanceErrorData
(
realOutOfMaintenanceRecord
,
inMaintenanceRecord
);
// 2.处理检验超期错误数据
List
<
String
>
outOfInspectionErrorData
=
handleOutOfInspectionErrorData
(
realOutOfInspectRecord
);
List
<
String
>
outOfInspectionErrorData
=
handleOutOfInspectionErrorData
(
realOutOfInspectRecord
,
inInspectRecord
);
// 3.修正业务表+es数据状态
if
(
ValidationUtil
.
isEmpty
(
outOfMaintenanceErrorData
)
&&
ValidationUtil
.
isEmpty
(
outOfInspectionErrorData
))
{
// 没有需要修正的数据
...
...
@@ -279,11 +284,11 @@ public class SafetyProblemTracingGenServiceImpl{
// 再次查询维保备案这些数据有没有检验超期的问题
// 找出仅在maintenanceSet中而不在realOutOfInspectRecord中的元素(真正需要更新的维保数据)
List
<
String
>
maintenanceOnly
=
maintenanceSet
.
stream
()
.
filter
(
id
->
!
realOutOf
Maintenance
Record
.
contains
(
id
))
.
filter
(
id
->
!
realOutOf
Inspect
Record
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
// 找出仅在inspectionSet中而不在realOutOfMaintenanceRecord中的元素(真正需要更新的检验数据)
List
<
String
>
inspectionOnly
=
inspectionSet
.
stream
()
.
filter
(
id
->
!
realOutOf
Inspect
Record
.
contains
(
id
))
.
filter
(
id
->
!
realOutOf
Maintenance
Record
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
correctData
.
addAll
(
maintenanceOnly
);
...
...
@@ -300,9 +305,16 @@ public class SafetyProblemTracingGenServiceImpl{
}
}
private
List
<
String
>
handleOutOfMaintenanceErrorData
(
Set
<
String
>
realOutOfMaintenanceRecord
)
{
/**
* 处理维保超期错误数据
*
* @param realOutOfMaintenanceRecord 真正超期设备
* @param inMaintenanceRecord 维保正常设备
* @return 需要修正的错误数据
*/
private
List
<
String
>
handleOutOfMaintenanceErrorData
(
Set
<
String
>
realOutOfMaintenanceRecord
,
Set
<
String
>
inMaintenanceRecord
)
{
// 设备表到今日维保超期设备realOutOfMaintenanceRecord
if
(
ValidationUtil
.
isEmpty
(
realOutOfMaintenanceRecord
))
{
if
(
ValidationUtil
.
isEmpty
(
realOutOfMaintenanceRecord
)
&&
ValidationUtil
.
isEmpty
(
inMaintenanceRecord
)
)
{
return
Lists
.
newArrayList
();
}
logger
.
info
(
"设备维保超期safety表数据修正开始,实际检验超期数据:{}条"
,
realOutOfMaintenanceRecord
.
size
());
...
...
@@ -316,11 +328,21 @@ public class SafetyProblemTracingGenServiceImpl{
return
Lists
.
newArrayList
();
}
// 追溯问题表中未处理的维保超期设备
List
<
String
>
outOfMaintenanceEquipIds
=
Lists
.
newArrayList
();
// 未超期但错误生成的维保超期设备
List
<
String
>
outOfMaintenanceEquipIds
=
problemList
.
stream
()
.
map
(
SafetyProblemTracing:
:
getSourceId
)
.
filter
(
id
->
!
realOutOfMaintenanceRecord
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
if
(!
ValidationUtil
.
isEmpty
(
realOutOfMaintenanceRecord
))
{
outOfMaintenanceEquipIds
.
addAll
(
problemList
.
stream
()
.
map
(
SafetyProblemTracing:
:
getSourceId
)
.
filter
(
id
->
!
realOutOfMaintenanceRecord
.
contains
(
id
))
.
collect
(
Collectors
.
toList
()));
}
// 维保已经正常但错误生成维保超期的设备
if
(!
ValidationUtil
.
isEmpty
(
inMaintenanceRecord
))
{
outOfMaintenanceEquipIds
.
addAll
(
problemList
.
stream
()
.
map
(
SafetyProblemTracing:
:
getSourceId
)
.
filter
(
inMaintenanceRecord:
:
contains
)
.
collect
(
Collectors
.
toList
()));
}
if
(
ValidationUtil
.
isEmpty
(
outOfMaintenanceEquipIds
))
{
return
Lists
.
newArrayList
();
}
...
...
@@ -335,16 +357,16 @@ public class SafetyProblemTracingGenServiceImpl{
.
set
(
SafetyProblemTracing:
:
getRecDate
,
new
Date
())
.
in
(
SafetyProblemTracing:
:
getSourceId
,
batch
)
.
eq
(
SafetyProblemTracing:
:
getProblemTypeCode
,
SafetyProblemTypeEnum
.
WBCQ
.
getProblemTypeCode
())
.
eq
(
SafetyProblemTracing:
:
getIsDelete
,
Boolean
.
FALSE
)
.
eq
(
SafetyProblemTracing:
:
getIsDelete
,
Boolean
.
FALSE
)
.
update
();
}
logger
.
info
(
"设备维保超期safety表数据修正完成,已更新数据:{}条"
,
outOfMaintenanceEquipIds
.
size
());
return
outOfMaintenanceEquipIds
;
}
private
List
<
String
>
handleOutOfInspectionErrorData
(
Set
<
String
>
realOutOfInspectRecord
)
{
private
List
<
String
>
handleOutOfInspectionErrorData
(
Set
<
String
>
realOutOfInspectRecord
,
Set
<
String
>
inInspectRecord
)
{
// 设备表到今日检验超期设备realOutOfInspectRecord
if
(
ValidationUtil
.
isEmpty
(
realOutOfInspectRecord
))
{
if
(
ValidationUtil
.
isEmpty
(
realOutOfInspectRecord
)
&&
ValidationUtil
.
isEmpty
(
inInspectRecord
)
)
{
return
Lists
.
newArrayList
();
}
logger
.
info
(
"设备检验超期safety表数据修正开始,实际检验超期数据:{}条"
,
realOutOfInspectRecord
.
size
());
...
...
@@ -358,11 +380,21 @@ public class SafetyProblemTracingGenServiceImpl{
return
Lists
.
newArrayList
();
}
// 追溯问题表中未处理的检验超期设备
List
<
String
>
outOfInspectionEquipIds
=
Lists
.
newArrayList
();
// 未超期但错误生成的检验超期设备
List
<
String
>
outOfInspectionEquipIds
=
problemList
.
stream
()
.
map
(
SafetyProblemTracing:
:
getSourceId
)
.
filter
(
id
->
!
realOutOfInspectRecord
.
contains
(
id
))
.
collect
(
Collectors
.
toList
());
if
(!
ValidationUtil
.
isEmpty
(
realOutOfInspectRecord
))
{
outOfInspectionEquipIds
.
addAll
(
problemList
.
stream
()
.
map
(
SafetyProblemTracing:
:
getSourceId
)
.
filter
(
id
->
!
realOutOfInspectRecord
.
contains
(
id
))
.
collect
(
Collectors
.
toList
()));
}
// 检验已经正常但错误生成检验超期的设备
if
(!
ValidationUtil
.
isEmpty
(
inInspectRecord
))
{
outOfInspectionEquipIds
.
addAll
(
problemList
.
stream
()
.
map
(
SafetyProblemTracing:
:
getSourceId
)
.
filter
(
inInspectRecord:
:
contains
)
.
collect
(
Collectors
.
toList
()));
}
if
(
ValidationUtil
.
isEmpty
(
outOfInspectionEquipIds
))
{
return
Lists
.
newArrayList
();
}
...
...
@@ -384,6 +416,38 @@ public class SafetyProblemTracingGenServiceImpl{
return
outOfInspectionEquipIds
;
}
private
void
processLargeResultSet
(
Supplier
<
List
<
Map
<
String
,
Object
>>>
dataSupplier
,
Set
<
String
>
targetSet
)
{
int
batchSize
=
5000
;
// 每批处理的记录数
int
processedCount
=
0
;
// 由于无法分页,这里假设一次性获取所有数据,但在处理过程中及时释放内存
List
<
Map
<
String
,
Object
>>
allRecords
=
dataSupplier
.
get
();
for
(
Map
<
String
,
Object
>
record
:
allRecords
)
{
targetSet
.
add
(
record
.
get
(
"RECORD"
).
toString
());
processedCount
++;
// 每处理一定数量的记录,让出CPU时间片,避免长时间占用
if
(
processedCount
%
batchSize
==
0
)
{
try
{
Thread
.
sleep
(
10
);
// 短暂休眠,让出CPU
}
catch
(
InterruptedException
e
)
{
Thread
.
currentThread
().
interrupt
();
break
;
}
}
}
// 清理临时数据,帮助垃圾回收
allRecords
.
clear
();
}
// 函数式接口定义
@FunctionalInterface
private
interface
Supplier
<
T
>
{
T
get
();
}
private
void
updateEquipAndSendMessage
(
List
<
Map
<
String
,
Object
>>
mapList
,
SafetyProblemTypeEnum
safetyProblemTypeEnum
)
{
if
(
ValidationUtil
.
isEmpty
(
mapList
))
{
return
;
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/resources/templates/CertificateReplenish.ftl
View file @
e0bbb0a3
...
...
@@ -256,7 +256,11 @@
<w:sz
w:val=
"28"
/>
<w:szCs
w:val=
"28"
/>
</w:rPr>
<w:t>
设备使用地址
</w:t>
<
#if equCategoryCode??
&&
(equCategoryCode == '2300')>
<w:t>
使用单位地址
</w:t>
<
#else>
<w:t>
设备使用地址
</w:t>
<
/#if>
</w:r>
</w:p>
</w:tc>
...
...
@@ -617,7 +621,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"
58
0"
w:type=
"dxa"
/>
<w:tcW
w:w=
"
76
0"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"54CA17F1"
>
...
...
@@ -744,164 +748,186 @@
</w:p>
</w:tc>
</w:tr>
<
#list equLists as equLists>
<w:tr
w14:paraId=
"2395894C"
>
<w:tblPrEx>
<w:tblBorders>
<w:top
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:left
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:bottom
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:right
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:insideH
w:val=
"single"
w:color=
"auto"
w:sz=
"6"
w:space=
"0"
/>
<w:insideV
w:val=
"single"
w:color=
"auto"
w:sz=
"6"
w:space=
"0"
/>
</w:tblBorders>
<w:tblCellMar>
<w:top
w:w=
"0"
w:type=
"dxa"
/>
<w:left
w:w=
"108"
w:type=
"dxa"
/>
<w:bottom
w:w=
"0"
w:type=
"dxa"
/>
<w:right
w:w=
"108"
w:type=
"dxa"
/>
</w:tblCellMar>
</w:tblPrEx>
<
#if !(manageType == "unit"
&&
whetherVehicleCylinder != "1")>
<
#list equLists as equLists>
<w:tr
w14:paraId=
"2395894C"
>
<w:tblPrEx>
<w:tblBorders>
<w:top
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:left
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:bottom
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:right
w:val=
"single"
w:color=
"auto"
w:sz=
"12"
w:space=
"0"
/>
<w:insideH
w:val=
"single"
w:color=
"auto"
w:sz=
"6"
w:space=
"0"
/>
<w:insideV
w:val=
"single"
w:color=
"auto"
w:sz=
"6"
w:space=
"0"
/>
</w:tblBorders>
<w:tblCellMar>
<w:top
w:w=
"0"
w:type=
"dxa"
/>
<w:left
w:w=
"108"
w:type=
"dxa"
/>
<w:bottom
w:w=
"0"
w:type=
"dxa"
/>
<w:right
w:w=
"108"
w:type=
"dxa"
/>
</w:tblCellMar>
</w:tblPrEx>
<w:trPr>
<w:trHeight
w:val=
"681"
w:hRule=
"exact"
/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"580"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"64578F63"
>
<w:pPr>
<w:spacing
w:line=
"240"
w:lineRule=
"exact"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"仿宋_GB2312"
w:eastAsia=
"仿宋_GB2312"
/>
<w:sz
w:val=
"24"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:hint=
"eastAsia"
w:ascii=
"仿宋_GB2312"
w:eastAsia=
"仿宋_GB2312"
/>
<w:sz
w:val=
"24"
/>
</w:rPr>
<w:t>
${(equLists.index)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"1658"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"0E24B04B"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.productName)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"2573"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"308BF33B"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.equCode)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"2117"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"03FEEAF0"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.useRegistrationCode)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"1964"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"6587BE1F"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.factoryNum)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
<
/#list>
<
#else>
<w:tr>
<w:trPr>
<w:trHeight
w:val=
"
681
"
w:hRule=
"exact"
/>
<w:trHeight
w:val=
"
580
"
w:hRule=
"exact"
/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:
tcW
w:w=
"580"
w:type=
"dxa
"
/>
<w:
gridSpan
w:val=
"5
"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"64578F63"
>
<w:p>
<w:pPr>
<w:spacing
w:line=
"240"
w:lineRule=
"exact"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"仿宋_GB2312"
w:eastAsia=
"仿宋_GB2312"
/>
<w:sz
w:val=
"24"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:hint=
"eastAsia"
w:ascii=
"仿宋_GB2312"
w:eastAsia=
"仿宋_GB2312"
/>
<w:sz
w:val=
"24"
/>
</w:rPr>
<w:t>
${(equLists.index)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"1658"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"0E24B04B"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.productName)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"2573"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"308BF33B"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.equCode)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"2117"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"03FEEAF0"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.useRegistrationCode)!''}
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW
w:w=
"1964"
w:type=
"dxa"
/>
<w:vAlign
w:val=
"center"
/>
</w:tcPr>
<w:p
w14:paraId=
"6587BE1F"
>
<w:pPr>
<w:adjustRightInd
w:val=
"0"
/>
<w:snapToGrid
w:val=
"0"
/>
<w:jc
w:val=
"center"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"21"
/>
<w:sz-cs
w:val=
"21"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(equLists.factoryNum)!''}
</w:t>
<w:t>
详见设备汇总表
</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
<
/#
list
>
<
/#
if
>
<w:tr
w14:paraId=
"17B658C7"
>
<w:tblPrEx>
<w:tblBorders>
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/resources/templates/unit-registration-certificate-report.ftl
View file @
e0bbb0a3
...
...
@@ -1364,6 +1364,156 @@ zl/OZWMbAAAAAIAowjYAAAAAAFGEbQAAAAAAovwPNj8bRIboD6oAAAAASUVORK5CYII=
</v:shape>
</w:pict>
</w:r>
<
#if reissueDateYear != ""
&&
reissueDateMonth != ""
&&
reissueDateDay != "">
<w:r>
<w:rPr>
<w:sz
w:val=
"24"
/>
</w:rPr>
<w:pict>
<v:shape
id=
"文本框 14"
o:spid=
"_x0000_s1027"
o:spt=
"202"
type=
"#_x0000_t202"
style=
"position:absolute;left:0pt;margin-left:205.05pt;margin-top:655.65pt;height:30.25pt;width:320.7pt;z-index:251664384;mso-width-relative:page;mso-height-relative:page;"
fillcolor=
"#FFFFFF"
filled=
"t"
stroked=
"f"
coordsize=
"21600,21600"
>
<v:path/>
<v:fill
on=
"t"
color2=
"#FFFFFF"
focussize=
"0,0"
/>
<v:stroke
on=
"f"
weight=
"0.5pt"
/>
<v:imagedata
o:title=
""
/>
<o:lock
v:ext=
"edit"
aspectratio=
"f"
/>
<v:textbox>
<w:txbxContent>
<w:p>
<w:pPr>
<w:keepNext
w:val=
"off"
/>
<w:keepLines
w:val=
"off"
/>
<w:pageBreakBefore
w:val=
"off"
/>
<w:widowControl
w:val=
"off"
/>
<w:kinsoku/>
<w:wordWrap/>
<w:overflowPunct/>
<w:topLinePunct
w:val=
"off"
/>
<w:adjustRightInd
w:val=
"off"
/>
<w:snapToGrid/>
<w:spacing
w:line=
"400"
w:line-rule=
"exact"
/>
<w:ind
w:left=
"0"
w:first-line=
"420"
/>
<w:jc
w:val=
"left"
/>
<w:textAlignment
w:val=
"auto"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
</w:rPr>
<w:t>
补证日期:
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"宋体"
w:h-ansi=
"宋体"
w:fareast=
"宋体"
w:cs=
"宋体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"24"
/>
<w:sz-cs
w:val=
"24"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(reissueDateYear)!''}
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
</w:rPr>
<w:t>
年
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"24"
/>
<w:sz-cs
w:val=
"24"
/>
</w:rPr>
<w:t>
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"宋体"
w:h-ansi=
"宋体"
w:fareast=
"宋体"
w:cs=
"宋体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"24"
/>
<w:sz-cs
w:val=
"24"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(reissueDateMonth)!''}
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
</w:rPr>
<w:t>
月
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"24"
/>
<w:sz-cs
w:val=
"24"
/>
</w:rPr>
<w:t>
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"宋体"
w:h-ansi=
"宋体"
w:fareast=
"宋体"
w:cs=
"宋体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"24"
/>
<w:sz-cs
w:val=
"24"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(reissueDateDay)!''}
</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
</w:rPr>
<w:t>
日
</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts
w:hint=
"default"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
</w:p>
</w:txbxContent>
</v:textbox>
</v:shape>
</w:pict>
</w:r>
<
/#if>
<w:r>
<w:rPr>
<w:sz
w:val=
"24"
/>
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/resources/templates/unit-use-registration-model.ftl
View file @
e0bbb0a3
...
...
@@ -629,7 +629,7 @@
<w:sz-cs
w:val=
"28"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${(giveOutYear)!''}
${(giveOutMonth)!''}
${(giveOutDay)!''}
</w:t>
<w:t>
${(giveOutYear)!''}
${(giveOutMonth)!''}
${(giveOutDay)!''}
</w:t>
</w:r>
</w:p>
</w:txbxContent>
...
...
@@ -637,6 +637,184 @@
</v:shape>
</w:pict>
</w:r>
<
#if reissueDateYear?has_content
&&
reissueDateMonth?has_content
&&
reissueDateDay?has_content >
<w:r>
<w:rPr>
<w:sz
w:val=
"24"
/>
</w:rPr>
<w:pict>
<v:shape
id=
"文本框 14"
o:spid=
"_x0000_s1027"
o:spt=
"202"
type=
"#_x0000_t202"
style=
"position:absolute;left:0pt;margin-left:180pt;margin-top:644.35pt;height:32.15pt;width:120pt;z-index:251661316;mso-width-relative:page;mso-height-relative:page;"
fillcolor=
"#FFFFFF"
filled=
"t"
stroked=
"f"
coordsize=
"21600,21600"
>
<v:path/>
<v:fill
on=
"t"
color2=
"#FFFFFF"
focussize=
"0,0"
/>
<v:stroke
on=
"f"
weight=
"0.5pt"
/>
<v:imagedata
o:title=
""
/>
<o:lock
v:ext=
"edit"
aspectratio=
"f"
/>
<v:textbox>
<w:txbxContent>
<w:p>
<w:pPr>
<w:keepNext
w:val=
"off"
/>
<w:keepLines
w:val=
"off"
/>
<w:pageBreakBefore
w:val=
"off"
/>
<w:widowControl
w:val=
"off"
/>
<w:kinsoku/>
<w:wordWrap/>
<w:overflowPunct/>
<w:topLinePunct
w:val=
"off"
/>
<w:adjustRightInd
w:val=
"off"
/>
<w:snapToGrid/>
<w:spacing
w:line=
"400"
w:line-rule=
"exact"
/>
<w:ind
w:left=
"0"
w:first-line=
"420"
/>
<w:jc
w:val=
"left"
/>
<w:textAlignment
w:val=
"auto"
/>
<w:rPr>
<w:rFonts
w:ascii=
"宋体"
w:h-ansi=
"宋体"
w:fareast=
"宋体"
w:cs=
"宋体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"28"
/>
<w:sz-cs
w:val=
"28"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"宋体"
w:h-ansi=
"宋体"
w:fareast=
"宋体"
w:cs=
"宋体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"28"
/>
<w:sz-cs
w:val=
"28"
/>
<w:lang
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
补 证 日 期:
</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:keepNext
w:val=
"off"
/>
<w:keepLines
w:val=
"off"
/>
<w:pageBreakBefore
w:val=
"off"
/>
<w:widowControl
w:val=
"off"
/>
<w:kinsoku/>
<w:wordWrap/>
<w:overflowPunct/>
<w:topLinePunct
w:val=
"off"
/>
<w:adjustRightInd
w:val=
"off"
/>
<w:snapToGrid/>
<w:spacing
w:line=
"400"
w:line-rule=
"exact"
/>
<w:ind
w:left=
"0"
w:first-line=
"420"
/>
<w:jc
w:val=
"left"
/>
<w:textAlignment
w:val=
"auto"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
</w:rPr>
</w:pPr>
</w:p>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts
w:hint=
"default"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
</w:p>
</w:txbxContent>
</v:textbox>
</v:shape>
</w:pict>
</w:r>
<w:r>
<w:rPr>
<w:sz
w:val=
"24"
/>
</w:rPr>
<w:pict>
<v:shape
id=
"文本框 14"
o:spid=
"_x0000_s1027"
o:spt=
"202"
type=
"#_x0000_t202"
style=
"position:absolute;left:0pt;margin-left:263.05pt;margin-top:644.35pt;height:32.15pt;width:200pt;z-index:251661312;mso-width-relative:page;mso-height-relative:page;"
fillcolor=
"#FFFFFF"
filled=
"t"
stroked=
"f"
coordsize=
"21600,21600"
>
<v:path/>
<v:fill
on=
"t"
color2=
"#FFFFFF"
focussize=
"0,0"
/>
<v:stroke
on=
"f"
weight=
"0.5pt"
/>
<v:imagedata
o:title=
""
/>
<o:lock
v:ext=
"edit"
aspectratio=
"f"
/>
<v:textbox>
<w:txbxContent>
<w:p>
<w:pPr>
<w:keepNext
w:val=
"off"
/>
<w:keepLines
w:val=
"off"
/>
<w:pageBreakBefore
w:val=
"off"
/>
<w:widowControl
w:val=
"off"
/>
<w:kinsoku/>
<w:wordWrap/>
<w:overflowPunct/>
<w:topLinePunct
w:val=
"off"
/>
<w:adjustRightInd
w:val=
"off"
/>
<w:snapToGrid/>
<w:spacing
w:line=
"400"
w:line-rule=
"exact"
/>
<w:ind
w:left=
"0"
w:first-line=
"420"
/>
<w:jc
w:val=
"left"
/>
<w:textAlignment
w:val=
"auto"
/>
<w:rPr>
<w:rFonts
w:ascii=
"宋体"
w:h-ansi=
"宋体"
w:fareast=
"宋体"
w:cs=
"宋体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"28"
/>
<w:sz-cs
w:val=
"28"
/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts
w:ascii=
"宋体"
w:h-ansi=
"宋体"
w:fareast=
"宋体"
w:cs=
"宋体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"28"
/>
<w:sz-cs
w:val=
"28"
/>
<w:lang
w:fareast=
"ZH-CN"
/>
</w:rPr>
<w:t>
${reissueDateYear?string("####")} 年 ${reissueDateMonth} 月 ${reissueDateDay} 日
</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:keepNext
w:val=
"off"
/>
<w:keepLines
w:val=
"off"
/>
<w:pageBreakBefore
w:val=
"off"
/>
<w:widowControl
w:val=
"off"
/>
<w:kinsoku/>
<w:wordWrap/>
<w:overflowPunct/>
<w:topLinePunct
w:val=
"off"
/>
<w:adjustRightInd
w:val=
"off"
/>
<w:snapToGrid/>
<w:spacing
w:line=
"400"
w:line-rule=
"exact"
/>
<w:ind
w:left=
"0"
w:first-line=
"420"
/>
<w:jc
w:val=
"left"
/>
<w:textAlignment
w:val=
"auto"
/>
<w:rPr>
<w:rFonts
w:ascii=
"黑体"
w:h-ansi=
"黑体"
w:fareast=
"黑体"
w:cs=
"黑体"
w:hint=
"fareast"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
</w:rPr>
</w:pPr>
</w:p>
<w:p>
<w:pPr>
<w:rPr>
<w:rFonts
w:hint=
"default"
/>
<w:sz
w:val=
"32"
/>
<w:sz-cs
w:val=
"32"
/>
<w:lang
w:val=
"EN-US"
w:fareast=
"ZH-CN"
/>
</w:rPr>
</w:pPr>
</w:p>
</w:txbxContent>
</v:textbox>
</v:shape>
</w:pict>
</w:r>
<
/#if>
<w:r>
<w:rPr>
<w:sz
w:val=
"24"
/>
...
...
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/ComprehensiveStatisticalAnalysisServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -1005,13 +1005,21 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
}
dto
.
put
(
"INFORMATION_SITUATION"
,
informationSituation
);
}
if
(!
ValidationUtil
.
isEmpty
(
dto
.
getString
(
"CYLINDER_CATEGORY"
)))
{
Optional
.
ofNullable
(
dto
.
getJSONArray
(
"inspections"
))
.
ifPresent
(
arr
->
arr
.
forEach
(
o
->
{
JSONObject
j
=
(
JSONObject
)
o
;
String
v
=
j
.
getString
(
"inspectReportNo"
);
j
.
put
(
"inspectReportNo"
,
(
v
==
null
||
"null"
.
equalsIgnoreCase
(
v
))
?
""
:
v
);
}));
if
(!
ValidationUtil
.
isEmpty
(
dto
.
getString
(
"CYLINDER_CATEGORY"
))
&&
dto
.
getString
(
"EQU_CATEGORY_CODE"
).
equals
(
"2300"
))
{
String
cylinderCategory
=
dto
.
getString
(
"CYLINDER_CATEGORY"
);
boolean
integer
=
isInteger
(
cylinderCategory
);
if
(
integer
)
{
cylinderCategory
=
CylinderCategoryEnum
.
getName
(
cylinderCategory
);
}
dto
.
put
(
"CYLINDER_CATEGORY"
,
cylinderCategory
);
}
else
{
dto
.
put
(
"CYLINDER_CATEGORY"
,
""
);
}
dto
.
put
(
"inspectStatus"
,
inspectStatus
);
list
.
add
(
dto
);
...
...
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/CylinderOpenApiServiceImpl.java
View file @
e0bbb0a3
...
...
@@ -11,7 +11,7 @@ import org.springframework.transaction.annotation.Transactional;
import
org.typroject.tyboot.core.rdbms.annotation.Condition
;
import
org.typroject.tyboot.core.rdbms.annotation.Operator
;
@DS
(
"
cyl
"
)
@DS
(
"
openapi
"
)
@Service
public
class
CylinderOpenApiServiceImpl
{
...
...
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/resources/mapper/ThreeSystemsMapper.xml
View file @
e0bbb0a3
...
...
@@ -30,6 +30,7 @@
LEFT JOIN ${staticTableName} psd ON ei.use_code = psd.unit_code
where
ei.is_delete = '0'
and ei.data_sources = '陕西省内企业'
GROUP BY
ei.use_code
</select>
...
...
amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-api/src/main/resources/mapper/TzsUserInfoMapper.xml
View file @
e0bbb0a3
...
...
@@ -229,6 +229,7 @@
AND pc.org_code IS NOT NULL
AND tzei.is_delete = '0'
AND pc.is_deleted = 'f'
and tzei.data_sources = '陕西省内企业'
AND (tzei.unit_type
<![CDATA[<>]]>
'检验机构' OR tzei.unit_type
<![CDATA[<>]]>
'检测机构')
AND tui.amos_user_id IN (SELECT USER_ID FROM privilege_group_user WHERE GROUP_SEQ = #{groupId})
</select>
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/IdxBizJgProjectContraptionMapper.xml
View file @
e0bbb0a3
...
...
@@ -105,7 +105,7 @@
LEFT JOIN tzs_jg_use_registration ur
ON ur.project_contraption_id = pl.project_contraption_id
AND ur.is_delete = 0
AND ur.project_contraption_id
!= null
AND ur.project_contraption_id
IS NOT NULL
AND ur.status NOT IN ('使用单位待提交','一级受理已驳回','使用单位已撤回','已作废')
LEFT JOIN tzs_jg_installation_notice ins
ON ins.project_contraption_id = pl.project_contraption_id
...
...
@@ -382,7 +382,7 @@
WITH target_use AS MATERIALIZED (
SELECT "RECORD", project_contraption_id
FROM idx_biz_jg_use_info
WHERE project_contraption_id
!=
null and
WHERE project_contraption_id
is not
null and
project_contraption_id IN
<foreach
collection=
"projectContraptionIdList"
item=
"id"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{id}
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/TzBaseEnterpriseInfoMapper.xml
View file @
e0bbb0a3
...
...
@@ -298,6 +298,7 @@
AND tjoa.status = '已完成'
and tjoa.open_biz_type = #{openBizType}
and tjoa.agency_classify != 'JYJGFL_ZJJG'
and info.is_delete = '0'
<if
test=
"list !=null and list.size()>0"
>
AND info.use_code in
<foreach
collection=
"list"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
...
...
@@ -414,6 +415,7 @@
<include
refid=
"unit-list-info"
/>
where
info.use_code = #{unitCode}
and info.is_delete = '0'
and exists (SELECT 1 from tz_jyjc_opening_application where unit_code = #{unitCode} and status = '已完成' and open_biz_type = #{openBizType})
</select>
</mapper>
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