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
6113d10c
Commit
6113d10c
authored
Nov 19, 2024
by
suhuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.使用登记单据变更功能,详情接口
parent
6089fda8
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
346 additions
and
39 deletions
+346
-39
FieldDisplayDefine.java
...n/amos/boot/biz/common/annotation/FieldDisplayDefine.java
+22
-0
BaseChangeDataDto.java
...eejoin/amos/boot/module/jg/api/dto/BaseChangeDataDto.java
+3
-1
DynamicColumnDto.java
...yeejoin/amos/boot/module/jg/api/dto/DynamicColumnDto.java
+20
-0
EquipRegisterChangeDataDto.java
...os/boot/module/jg/api/dto/EquipRegisterChangeDataDto.java
+6
-0
CommonMapper.java
.../yeejoin/amos/boot/module/jg/api/mapper/CommonMapper.java
+3
-0
CommonMapper.xml
...-module-jg-api/src/main/resources/mapper/CommonMapper.xml
+12
-0
BizDataChangeController.java
...oot/module/jg/biz/controller/BizDataChangeController.java
+16
-6
ChangeItemFactory.java
...in/amos/boot/module/jg/biz/factory/ChangeItemFactory.java
+0
-2
IBizDataChangeHandleStrategy.java
...t/module/jg/biz/service/IBizDataChangeHandleStrategy.java
+2
-1
IChangeDataProcessStrategy.java
...oot/module/jg/biz/service/IChangeDataProcessStrategy.java
+3
-0
BatchDataChangeProcessStrategy.java
...e/jg/biz/service/impl/BatchDataChangeProcessStrategy.java
+7
-0
BizDataChangeServiceImpl.java
.../module/jg/biz/service/impl/BizDataChangeServiceImpl.java
+9
-3
EquipChangeDataUpdateService.java
...ule/jg/biz/service/impl/EquipChangeDataUpdateService.java
+23
-4
JgUseRegistrationServiceImpl.java
...ule/jg/biz/service/impl/JgUseRegistrationServiceImpl.java
+3
-3
SingleDataChangeProcessStrategy.java
.../jg/biz/service/impl/SingleDataChangeProcessStrategy.java
+181
-5
UseRegisterDataChangeHandleImpl.java
.../jg/biz/service/impl/UseRegisterDataChangeHandleImpl.java
+36
-14
No files found.
amos-boot-biz-common/src/main/java/com/yeejoin/amos/boot/biz/common/annotation/FieldDisplayDefine.java
0 → 100644
View file @
6113d10c
package
com
.
yeejoin
.
amos
.
boot
.
biz
.
common
.
annotation
;
import
java.lang.annotation.*
;
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
FIELD
)
@Documented
public
@interface
FieldDisplayDefine
{
String
value
();
/**
* 字段别名 兼容前端使用
*
* @return 别名key
*/
String
alias
()
default
""
;
boolean
isExist
()
default
true
;
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/dto/BaseChangeDataDto.java
View file @
6113d10c
...
...
@@ -2,6 +2,8 @@ package com.yeejoin.amos.boot.module.jg.api.dto;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
BaseChangeDataDto
{
public
class
BaseChangeDataDto
implements
Serializable
{
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/dto/DynamicColumnDto.java
0 → 100644
View file @
6113d10c
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
api
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@ApiModel
(
value
=
"字段描述"
)
public
class
DynamicColumnDto
implements
Serializable
{
@ApiModelProperty
(
"数据库字段列"
)
private
String
columnName
;
@ApiModelProperty
(
"字段值"
)
private
String
columnValue
;
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/dto/EquipRegisterChangeDataDto.java
View file @
6113d10c
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
api
.
dto
;
import
com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
EquipRegisterChangeDataDto
extends
BaseChangeDataDto
{
@FieldDisplayDefine
(
value
=
"设备种类"
,
isExist
=
false
)
private
String
equList
;
private
String
equCode
;
private
String
equDefine
;
...
...
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 @
6113d10c
...
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
import
com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto
;
import
com.yeejoin.amos.boot.module.jg.api.bo.JgBizCountDataBO
;
import
com.yeejoin.amos.boot.module.jg.api.dto.DynamicColumnDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.ReportAnalysisSearchDTO
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -183,5 +184,7 @@ public interface CommonMapper extends BaseMapper<EquipmentCategory> {
Page
<
Map
<
String
,
Object
>>
countBizFinishedNumForDPListDQJY
(
@Param
(
"page"
)
Page
<
Map
<
String
,
Object
>>
page
,
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"dto"
)
DPFilterParamDto
dpFilterParamForDetailDto
);
Page
<
Map
<
String
,
Object
>>
countBizFinishedNumForDPListBGDJ
(
@Param
(
"page"
)
Page
<
Map
<
String
,
Object
>>
page
,
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"dto"
)
DPFilterParamDto
dpFilterParamForDetailDto
);
Page
<
Map
<
String
,
Object
>>
countBizFinishedNumForDPListZXBX
(
@Param
(
"page"
)
Page
<
Map
<
String
,
Object
>>
page
,
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"dto"
)
DPFilterParamDto
dpFilterParamForDetailDto
);
void
updateTechParamDynamic
(
@Param
(
value
=
"tableName"
)
String
tableName
,
@Param
(
value
=
"record"
)
String
record
,
@Param
(
value
=
"columns"
)
List
<
DynamicColumnDto
>
columns
);
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/resources/mapper/CommonMapper.xml
View file @
6113d10c
...
...
@@ -105,6 +105,7 @@
where instance_id = #{instanceId}
</update>
<select
id=
"getUserPhone"
resultType=
"java.util.Map"
>
SELECT phone
FROM "tzs_user_info"
...
...
@@ -2297,4 +2298,15 @@
and (a.status
<![CDATA[ <> ]]>
'已作废')
)
</select>
<update
id=
"updateTechParamDynamic"
>
<if
test=
"columns != null and columns.size > 0"
>
update
${tableName}
set
<foreach
collection=
"columns"
item=
"column"
separator=
","
>
${column.columnName} = ${column.columnValue}
</foreach>
where record = #{record}
</if>
</update>
</mapper>
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/BizDataChangeController.java
View file @
6113d10c
...
...
@@ -4,11 +4,9 @@ import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy;
import
com.yeejoin.amos.boot.module.jg.biz.service.impl.BizDataChangeServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
...
...
@@ -27,16 +25,28 @@ public class BizDataChangeController {
this
.
bizDataChangeService
=
bizDataChangeService
;
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/{bizType}/save"
)
@ApiOperation
(
value
=
"业务数据变更保存"
,
httpMethod
=
"GET"
)
public
ResponseModel
<
String
>
save
(
String
applyNo
,
@PathVariable
String
bizType
,
IBizDataChangeHandleStrategy
.
ModelType
model
,
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
changeData
)
{
bizDataChangeService
.
save
(
applyNo
,
bizType
,
model
,
changeData
);
bizDataChangeService
.
save
(
applyNo
,
bizType
,
model
,
changeData
);
return
ResponseHelper
.
buildResponse
(
"success"
);
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/{bizType}/detail"
)
@ApiOperation
(
value
=
"查询可业务变更的字段及默认值"
,
httpMethod
=
"GET"
)
public
ResponseModel
<
Map
<
String
,
List
<
Map
<
String
,
Object
>>>>
getDetail
(
@RequestParam
(
required
=
false
)
String
applyNo
,
@PathVariable
String
bizType
,
IBizDataChangeHandleStrategy
.
ModelType
model
,
@RequestParam
(
required
=
false
)
String
bizId
)
{
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
re
=
bizDataChangeService
.
queryDetail
(
applyNo
,
bizType
,
model
,
bizId
);
return
ResponseHelper
.
buildResponse
(
re
);
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/factory/ChangeItemFactory.java
View file @
6113d10c
...
...
@@ -18,8 +18,6 @@ public class ChangeItemFactory {
ITEM_FACTORY
.
put
(
"equip_factory_info"
,
EquipFactoryChangeDataDto
.
class
);
// 设备-设计信息
ITEM_FACTORY
.
put
(
"equip_design_info"
,
EquipDesignChangeDataDto
.
class
);
// 设备-技术参数
ITEM_FACTORY
.
put
(
"equip_tech_param_info"
,
EquipTechParamChangeDataDto
.
class
);
}
public
static
Class
<?
extends
BaseChangeDataDto
>
getItemGroupClass
(
String
group
)
{
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/IBizDataChangeHandleStrategy.java
View file @
6113d10c
...
...
@@ -17,9 +17,10 @@ public interface IBizDataChangeHandleStrategy {
*
* @param applyNo 单据编号
* @param model single, batch
* @param bizId
* @return 变更信息详情
*/
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getChangeDetail
(
String
applyNo
,
ModelType
model
);
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getChangeDetail
(
String
applyNo
,
ModelType
model
,
String
bizId
);
/**
* 保存
...
...
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/IChangeDataProcessStrategy.java
View file @
6113d10c
...
...
@@ -15,6 +15,9 @@ public interface IChangeDataProcessStrategy {
*/
Map
<
String
,
List
<
ChangeDataDto
>>
handle
(
List
<
Map
<
String
,
Object
>>
changeData
,
String
defaultChangeId
);
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getDetail
(
String
applyNo
,
String
bizId
);
/**
* 可处理类型
*
...
...
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/BatchDataChangeProcessStrategy.java
View file @
6113d10c
...
...
@@ -7,6 +7,7 @@ import com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Component
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -25,6 +26,12 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg
}
@Override
public
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getDetail
(
String
applyNo
,
String
bizId
)
{
return
Collections
.
emptyMap
();
}
@Override
public
IBizDataChangeHandleStrategy
.
ModelType
canHandleMode
()
{
return
IBizDataChangeHandleStrategy
.
ModelType
.
batch
;
}
...
...
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/BizDataChangeServiceImpl.java
View file @
6113d10c
...
...
@@ -12,9 +12,10 @@ public class BizDataChangeServiceImpl {
/**
* 变更保存
* @param applyNo 单据编号
* @param bizType 业务类型
* @param model 单个维护、批量维护
*
* @param applyNo 单据编号
* @param bizType 业务类型
* @param model 单个维护、批量维护
* @param changeData 变化后的数据
*/
public
void
save
(
String
applyNo
,
...
...
@@ -24,4 +25,9 @@ public class BizDataChangeServiceImpl {
IBizDataChangeHandleStrategy
handleStrategy
=
BizDataHandleStrategyContext
.
getStrategy
(
bizType
);
handleStrategy
.
doSave
(
applyNo
,
model
,
changeData
);
}
public
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
queryDetail
(
String
applyNo
,
String
bizType
,
IBizDataChangeHandleStrategy
.
ModelType
model
,
String
bizId
)
{
IBizDataChangeHandleStrategy
handleStrategy
=
BizDataHandleStrategyContext
.
getStrategy
(
bizType
);
return
handleStrategy
.
getChangeDetail
(
applyNo
,
model
,
bizId
);
}
}
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/EquipChangeDataUpdateService.java
View file @
6113d10c
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.druid.support.jconsole.util.TableDataProcessor
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory
;
import
com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipDesignChangeDataDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipFactoryChangeDataDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipRegisterChangeDataDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.*
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgDesignInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgFactoryInfo
;
...
...
@@ -14,10 +16,13 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper
;
import
net.sf.jsqlparser.schema.Column
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
@Service
public
class
EquipChangeDataUpdateService
{
...
...
@@ -30,11 +35,14 @@ public class EquipChangeDataUpdateService {
private
final
IdxBizJgRegisterInfoMapper
idxBizJgRegisterInfoMapper
;
public
EquipChangeDataUpdateService
(
ESEquipmentCategory
esEquipmentCategory
,
IdxBizJgDesignInfoMapper
idxBizJgDesignInfoMapper
,
IdxBizJgFactoryInfoMapper
jgFactoryInfoMapper
,
IdxBizJgRegisterInfoMapper
idxBizJgRegisterInfoMapper
)
{
private
final
CommonMapper
commonMapper
;
public
EquipChangeDataUpdateService
(
ESEquipmentCategory
esEquipmentCategory
,
IdxBizJgDesignInfoMapper
idxBizJgDesignInfoMapper
,
IdxBizJgFactoryInfoMapper
jgFactoryInfoMapper
,
IdxBizJgRegisterInfoMapper
idxBizJgRegisterInfoMapper
,
CommonMapper
commonMapper
)
{
this
.
esEquipmentCategory
=
esEquipmentCategory
;
this
.
idxBizJgDesignInfoMapper
=
idxBizJgDesignInfoMapper
;
this
.
jgFactoryInfoMapper
=
jgFactoryInfoMapper
;
this
.
idxBizJgRegisterInfoMapper
=
idxBizJgRegisterInfoMapper
;
this
.
commonMapper
=
commonMapper
;
}
public
void
updateRegisterChangeData
(
String
record
,
EquipRegisterChangeDataDto
registerChangeDataDto
)
{
...
...
@@ -116,4 +124,15 @@ public class EquipChangeDataUpdateService {
esEquipmentCategory
.
save
(
esEquipmentCategoryDto
);
}
}
public
void
updateTechParamByRecord
(
String
tableName
,
String
record
,
List
<
ChangeDataDto
>
changeDataDtos
)
{
List
<
DynamicColumnDto
>
columns
=
changeDataDtos
.
stream
().
map
(
c
->{
DynamicColumnDto
columnDto
=
new
DynamicColumnDto
();
columnDto
.
setColumnName
(
StrUtil
.
toUnderlineCase
(
c
.
getColumnKey
()));
columnDto
.
setColumnValue
(
c
.
getColumnNewValue
());
return
columnDto
;
}).
collect
(
Collectors
.
toList
());
// sql 动态构建入库
commonMapper
.
updateTechParamDynamic
(
tableName
,
record
,
columns
);
}
}
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/JgUseRegistrationServiceImpl.java
View file @
6113d10c
...
...
@@ -144,7 +144,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
@Autowired
DataDictionaryServiceImpl
iDataDictionaryService
;
String
[]
jsonFields
=
{
"productPhoto"
,
"factoryStandard"
,
"productQualityYieldProve"
,
"insUseMaintainExplain"
,
public
static
final
String
[]
jsonFields
=
{
"productPhoto"
,
"factoryStandard"
,
"productQualityYieldProve"
,
"insUseMaintainExplain"
,
"inspectReport"
,
"designStandard"
,
"designDoc"
,
"longitudeLatitude"
,
"otherAccessoriesDes"
,
"otherAccessoriesFact"
,
"otherAccessoriesReg"
,
"installProxyStatementAttachment"
,
"installContractAttachment"
,
"insOtherAccessories"
,
"maintenanceContract"
,
"maintOtherAccessories"
,
"installProxyStatementAttachment"
,
"installContractAttachment"
,
...
...
@@ -1869,7 +1869,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return
detail
;
}
private
String
setDefaultRecord
(
JgUseRegistration
jgUseRegistration
,
String
record
)
{
String
setDefaultRecord
(
JgUseRegistration
jgUseRegistration
,
String
record
)
{
if
(
StringUtils
.
isEmpty
(
record
))
{
JgUseRegistrationEq
jgUseRegistrationEq
=
jgUseRegistrationEqService
.
getOne
(
new
LambdaQueryWrapper
<
JgUseRegistrationEq
>().
eq
(
JgUseRegistrationEq:
:
getEquipTransferId
,
jgUseRegistration
.
getSequenceNbr
()));
record
=
jgUseRegistrationEq
.
getEquId
();
...
...
@@ -2293,7 +2293,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
* @param jgUseRegistration 使用信息
* @param record 设备唯一标识
*/
private
void
fillHistoryDataWithNewEquip
(
JSONObject
jsonObject
,
JgUseRegistration
jgUseRegistration
,
String
record
)
{
void
fillHistoryDataWithNewEquip
(
JSONObject
jsonObject
,
JgUseRegistration
jgUseRegistration
,
String
record
)
{
// 非已完成、非作废时显示设备最新信息。前置需求:一个设备只能同时发起一个流程
if
(!(
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
().
equals
(
jgUseRegistration
.
getStatus
())
||
FlowStatusEnum
.
TO_BE_DISCARD
.
getName
().
equals
(
jgUseRegistration
.
getStatus
()))
...
...
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/SingleDataChangeProcessStrategy.java
View file @
6113d10c
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jg
.
biz
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipDesignChangeDataDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipFactoryChangeDataDto
;
import
com.yeejoin.amos.boot.module.jg.api.dto.EquipRegisterChangeDataDto
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration
;
import
com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq
;
import
com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper
;
import
com.yeejoin.amos.boot.module.jg.biz.service.*
;
import
com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper
;
import
com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -17,15 +28,180 @@ import java.util.stream.Collectors;
@Component
public
class
SingleDataChangeProcessStrategy
implements
IChangeDataProcessStrategy
{
private
final
IdxBizJgDesignInfoMapper
idxBizJgDesignInfoMapper
;
private
final
IdxBizJgFactoryInfoMapper
jgFactoryInfoMapper
;
private
final
IdxBizJgRegisterInfoMapper
idxBizJgRegisterInfoMapper
;
private
final
JgUseRegistrationServiceImpl
useRegistrationService
;
private
final
JgUseRegistrationEqMapper
jgRelationEquipMapper
;
private
final
IIdxBizJgTechParamsElevatorService
iIdxBizJgTechParamsElevatorService
;
private
final
IIdxBizJgTechParamsVehicleService
iIdxBizJgTechParamsVehicleService
;
private
final
IIdxBizJgTechParamsRopewayService
iIdxBizJgTechParamsRopewayService
;
private
final
IIdxBizJgTechParamsRidesService
iIdxBizJgTechParamsRidesService
;
private
final
IIdxBizJgTechParamsBoilerService
iIdxBizJgTechParamsBoilerService
;
private
final
IIdxBizJgTechParamsVesselService
iIdxBizJgTechParamsVesselService
;
private
final
IIdxBizJgTechParamsPipelineService
iIdxBizJgTechParamsPipelineService
;
private
final
IIdxBizJgTechParamsLiftingService
iIdxBizJgTechParamsLiftingService
;
public
SingleDataChangeProcessStrategy
(
IdxBizJgDesignInfoMapper
idxBizJgDesignInfoMapper
,
IdxBizJgFactoryInfoMapper
jgFactoryInfoMapper
,
IdxBizJgRegisterInfoMapper
idxBizJgRegisterInfoMapper
,
JgUseRegistrationServiceImpl
useRegistrationService
,
JgUseRegistrationEqMapper
jgRelationEquipMapper
,
IIdxBizJgTechParamsElevatorService
iIdxBizJgTechParamsElevatorService
,
IIdxBizJgTechParamsVehicleService
iIdxBizJgTechParamsVehicleService
,
IIdxBizJgTechParamsRopewayService
iIdxBizJgTechParamsRopewayService
,
IIdxBizJgTechParamsRidesService
iIdxBizJgTechParamsRidesService
,
IIdxBizJgTechParamsBoilerService
iIdxBizJgTechParamsBoilerService
,
IIdxBizJgTechParamsVesselService
iIdxBizJgTechParamsVesselService
,
IIdxBizJgTechParamsPipelineService
iIdxBizJgTechParamsPipelineService
,
IIdxBizJgTechParamsLiftingService
iIdxBizJgTechParamsLiftingService
)
{
this
.
idxBizJgDesignInfoMapper
=
idxBizJgDesignInfoMapper
;
this
.
jgFactoryInfoMapper
=
jgFactoryInfoMapper
;
this
.
idxBizJgRegisterInfoMapper
=
idxBizJgRegisterInfoMapper
;
this
.
useRegistrationService
=
useRegistrationService
;
this
.
jgRelationEquipMapper
=
jgRelationEquipMapper
;
this
.
iIdxBizJgTechParamsElevatorService
=
iIdxBizJgTechParamsElevatorService
;
this
.
iIdxBizJgTechParamsVehicleService
=
iIdxBizJgTechParamsVehicleService
;
this
.
iIdxBizJgTechParamsRopewayService
=
iIdxBizJgTechParamsRopewayService
;
this
.
iIdxBizJgTechParamsRidesService
=
iIdxBizJgTechParamsRidesService
;
this
.
iIdxBizJgTechParamsBoilerService
=
iIdxBizJgTechParamsBoilerService
;
this
.
iIdxBizJgTechParamsVesselService
=
iIdxBizJgTechParamsVesselService
;
this
.
iIdxBizJgTechParamsPipelineService
=
iIdxBizJgTechParamsPipelineService
;
this
.
iIdxBizJgTechParamsLiftingService
=
iIdxBizJgTechParamsLiftingService
;
}
@Override
public
Map
<
String
,
List
<
ChangeDataDto
>>
handle
(
List
<
Map
<
String
,
Object
>>
changeData
,
String
defaultChangeId
)
{
public
Map
<
String
,
List
<
ChangeDataDto
>>
handle
(
List
<
Map
<
String
,
Object
>>
changeData
,
String
defaultChangeId
)
{
List
<
ChangeDataDto
>
changeDataDtos
=
BeanUtil
.
copyToList
(
changeData
,
ChangeDataDto
.
class
);
changeDataDtos
=
changeDataDtos
.
stream
().
filter
(
c
->
!
StringUtils
.
equals
(
c
.
getColumnNewValue
(),
c
.
getColumnOldValue
())).
collect
(
Collectors
.
toList
());
return
changeDataDtos
.
stream
().
collect
(
Collectors
.
groupingBy
(
ChangeDataDto:
:
getChangeId
));
}
@Override
public
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getDetail
(
String
applyNo
,
String
bizId
)
{
if
(
StringUtils
.
isNotEmpty
(
applyNo
))
{
return
this
.
getDetailByApplyNo
(
applyNo
);
}
else
{
return
this
.
getDetailByBizId
(
bizId
);
}
}
private
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getDetailByBizId
(
String
record
)
{
// 注册信息(基本信息)
EquipRegisterChangeDataDto
equipRegisterChangeDataDto
=
this
.
getRegisterInfo
(
record
);
// 制造信息
EquipFactoryChangeDataDto
equipFactoryChangeDataDto
=
this
.
getFactoryInfo
(
record
);
// 设计信息
EquipDesignChangeDataDto
equipDesignChangeDataDto
=
this
.
getDesignInfo
(
record
);
// 技术参数赋值
List
<
ChangeDataDto
>
techParam
=
this
.
getTechParamInfo
(
equipRegisterChangeDataDto
,
record
);
return
Collections
.
emptyMap
();
}
private
EquipDesignChangeDataDto
getDesignInfo
(
String
record
)
{
return
null
;
}
private
EquipFactoryChangeDataDto
getFactoryInfo
(
String
record
)
{
return
null
;
}
private
EquipRegisterChangeDataDto
getRegisterInfo
(
String
record
)
{
return
null
;
}
private
List
<
ChangeDataDto
>
getTechParamInfo
(
EquipRegisterChangeDataDto
equipRegisterChangeDataDto
,
String
record
)
{
EquipmentClassifityEnum
equipmentClassifityEnum
=
EquipmentClassifityEnum
.
getOne
(
equipRegisterChangeDataDto
.
getEquList
());
Map
<
String
,
Object
>
echParamMap
=
new
HashMap
<>();
switch
(
Objects
.
requireNonNull
(
equipmentClassifityEnum
))
{
case
GL:
// 锅炉
iIdxBizJgTechParamsBoilerService
.
getOneData
(
record
);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
break
;
case
YLRQ:
// 压力容器
iIdxBizJgTechParamsVesselService
.
getOneData
(
record
);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
break
;
case
DT:
// 电梯
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
iIdxBizJgTechParamsElevatorService
.
getOneData
(
record
);
break
;
case
QZJX:
// 起重机械
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
iIdxBizJgTechParamsLiftingService
.
getOneData
(
record
);
break
;
case
CC:
// 场(厂)内专用机动车辆
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
iIdxBizJgTechParamsVehicleService
.
getOneData
(
record
);
break
;
case
YLSS:
// 大型游乐设施
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
iIdxBizJgTechParamsRidesService
.
getOneData
(
record
);
break
;
case
YLGD:
// 压力管道
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
iIdxBizJgTechParamsPipelineService
.
getOneData
(
record
);
break
;
case
KYSD:
// 客运索道
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
// 字段行转列
iIdxBizJgTechParamsRopewayService
.
getOneData
(
record
);
break
;
default
:
break
;
}
this
.
castStr2JsonField
(
echParamMap
);
return
null
;
}
private
void
castStr2JsonField
(
Map
<
String
,
Object
>
echParamMap
)
{
}
public
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getDetailByApplyNo
(
String
bizId
)
{
Map
<
String
,
List
<
ChangeDataDto
>>
map
=
new
HashMap
<>();
String
record
=
this
.
getRecord
(
bizId
);
// 注册信息(基本信息)
EquipRegisterChangeDataDto
equipRegisterChangeDataDto
=
this
.
getRegisterInfo
(
record
);
// 制造信息
EquipFactoryChangeDataDto
equipFactoryChangeDataDto
=
this
.
getFactoryInfo
(
record
);
// 设计信息
EquipDesignChangeDataDto
equipDesignChangeDataDto
=
this
.
getDesignInfo
(
record
);
// 技术参数赋值
return
Collections
.
emptyMap
();
}
@Override
public
IBizDataChangeHandleStrategy
.
ModelType
canHandleMode
()
{
return
IBizDataChangeHandleStrategy
.
ModelType
.
single
;
}
public
String
getRecord
(
String
applyNo
)
{
JgUseRegistration
jgUseRegistration
=
useRegistrationService
.
getOne
(
new
LambdaQueryWrapper
<
JgUseRegistration
>()
.
eq
(
JgUseRegistration:
:
getApplyNo
,
applyNo
).
select
(
BaseEntity:
:
getSequenceNbr
));
LambdaQueryWrapper
<
JgUseRegistrationEq
>
eq
=
new
QueryWrapper
<
JgUseRegistrationEq
>().
lambda
()
.
eq
(
JgUseRegistrationEq:
:
getEquipTransferId
,
jgUseRegistration
.
getSequenceNbr
())
.
eq
(
JgUseRegistrationEq:
:
getIsDelete
,
false
).
select
(
JgUseRegistrationEq:
:
getEquId
);
JgUseRegistrationEq
jgUseRegistrationEq
=
jgRelationEquipMapper
.
selectOne
(
eq
);
return
jgUseRegistrationEq
.
getEquId
();
}
}
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/UseRegisterDataChangeHandleImpl.java
View file @
6113d10c
...
...
@@ -7,11 +7,16 @@ import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
import
com.yeejoin.amos.boot.module.jg.biz.factory.ChangeItemFactory
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
java.lang.reflect.Field
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
UseRegisterDataChangeHandleImpl
implements
IBizDataChangeHandleStrategy
{
...
...
@@ -36,8 +41,10 @@ public class UseRegisterDataChangeHandleImpl implements IBizDataChangeHandleStra
}
@Override
public
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getChangeDetail
(
String
applyNo
,
ModelType
model
)
{
return
Collections
.
emptyMap
();
public
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
getChangeDetail
(
String
applyNo
,
ModelType
model
,
String
bizId
)
{
IChangeDataProcessStrategy
dataProcessor
=
DataProcessStrategyContext
.
getStrategy
(
model
);
// 兼容:台套类打开变更详情(使用applyNo) 和 单位办理批量时选择单个设备打开详情(使用record)
return
dataProcessor
.
getDetail
(
applyNo
,
bizId
);
}
/**
...
...
@@ -48,16 +55,17 @@ public class UseRegisterDataChangeHandleImpl implements IBizDataChangeHandleStra
* @param changeData 变更数据 key为不同的分组:如使用信息、设计信息、制造信息、技术参数
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
doSave
(
String
applyNo
,
ModelType
model
,
Map
<
String
,
List
<
Map
<
String
,
Object
>>>
changeData
)
{
List
<
ChangeDataDto
>
allChangeColumns
=
new
ArrayList
<>();
// 选择是台套、还是单位办理的方式,进行数据的解析
// 选择是台套、还是单位办理的方式,进行
分类
数据的解析
IChangeDataProcessStrategy
dataProcessor
=
DataProcessStrategyContext
.
getStrategy
(
model
);
changeData
.
forEach
((
k
,
v
)
->
{
Map
<
String
,
List
<
ChangeDataDto
>>
columnsMap
=
new
HashMap
<>();
if
(
k
.
startsWith
(
"biz"
))
{
//
单据信息变化
//
TODO 单据信息变化 目前预览但是未使用到
columnsMap
=
dataProcessor
.
handle
(
v
,
applyNo
);
// 将前端json数据,格式化解析为java对象格式及数据比对去掉未变化的数据,key为
record
, value为字段数组
// 将前端json数据,格式化解析为java对象格式及数据比对去掉未变化的数据,key为
applyNo
, value为字段数组
columnsMap
.
forEach
((
a
,
columns
)
->
{
if
(!
columns
.
isEmpty
())
{
// 将json列转为java-bean
...
...
@@ -71,7 +79,7 @@ public class UseRegisterDataChangeHandleImpl implements IBizDataChangeHandleStra
}
else
if
(
k
.
startsWith
(
"equip"
))
{
// 设备信息变化
columnsMap
=
dataProcessor
.
handle
(
v
,
null
);
// 将前端json数据,格式化解析为java对象格式及数据比对去掉未变化的数据,key为record, value为字段数组
// 将前端json数据,格式化解析为java对象格式及数据比对去掉未变化的数据,key为record, value为字段数组
,代表设备所有发生变化的业务字段集合
columnsMap
.
forEach
((
record
,
columns
)
->
{
if
(!
columns
.
isEmpty
())
{
// 将json列转为java-bean
...
...
@@ -82,16 +90,34 @@ public class UseRegisterDataChangeHandleImpl implements IBizDataChangeHandleStra
this
.
buildLogData
(
allChangeColumns
,
columns
,
record
,
k
);
}
});
}
else
if
(
k
.
startsWith
(
"tech"
))
{
// 技术信息变化
columnsMap
=
dataProcessor
.
handle
(
v
,
null
);
// 将前端json数据,格式化解析为java对象格式及数据比对去掉未变化的数据,key为record, value为字段数组,代表所有变化的技术参数字段集合
columnsMap
.
forEach
((
record
,
columns
)
->
{
if
(!
columns
.
isEmpty
())
{
// 技术参数入库
equipChangeDataUpdateService
.
updateTechParamByRecord
(
this
.
buildTableName
(
k
),
record
,
columns
);
// 日志数据构建
this
.
buildLogData
(
allChangeColumns
,
columns
,
record
,
k
);
}
});
}
});
// 更新历史的JSON的数据
this
.
updateHistoryJson
(
applyNo
);
// 记录日志
if
(!
allChangeColumns
.
isEmpty
())
{
// 更新历史的JSON的数据
this
.
updateHistoryJson
(
applyNo
);
// 异步记录日志
publisher
.
publish
(
new
ChangeDataEvent
(
this
,
allChangeColumns
,
RequestContext
.
cloneRequestContext
()));
}
}
private
String
buildTableName
(
String
group
)
{
return
String
.
format
(
"%s_%s"
,
"idx_biz_jg"
,
group
);
}
private
void
updateHistoryJson
(
String
applyNo
)
{
useRegisterUpdateService
.
updateHisData
(
applyNo
);
}
...
...
@@ -135,10 +161,6 @@ public class UseRegisterDataChangeHandleImpl implements IBizDataChangeHandleStra
EquipRegisterChangeDataDto
registerChangeDataDto
=
(
EquipRegisterChangeDataDto
)
changeDataDto
;
equipChangeDataUpdateService
.
updateRegisterChangeData
(
record
,
registerChangeDataDto
);
}
// 新定义-不同的技术参数要单独处理表
if
(
changeDataDto
instanceof
EquipTechParamChangeDataDto
)
{
EquipTechParamChangeDataDto
techParamChangeDataDto
=
(
EquipTechParamChangeDataDto
)
changeDataDto
;
}
}
...
...
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