Commit 7ad89fcb authored by tianbo's avatar tianbo

Merge remote-tracking branch 'origin/develop_tzs_bugfix' into develop_tzs_register

parents 78342079 2110acdb
...@@ -71,7 +71,7 @@ public class DataDockTemplateVersionUtils { ...@@ -71,7 +71,7 @@ public class DataDockTemplateVersionUtils {
VERSION_MAP.put("新设备_压力容器设备_固定式", "V1.0.1"); VERSION_MAP.put("新设备_压力容器设备_固定式", "V1.0.1");
VERSION_MAP.put("新设备_压力容器设备_氧舱", "V1.0.1"); VERSION_MAP.put("新设备_压力容器设备_氧舱", "V1.0.1");
VERSION_MAP.put("新设备_游乐设施设备", "V1.0.0"); VERSION_MAP.put("新设备_游乐设施设备", "V1.0.0");
VERSION_MAP.put("压力容器设备", "V1.0.2"); VERSION_MAP.put("压力容器设备", "V1.0.3");
VERSION_MAP.put("长输管道设备", "V1.0.0"); VERSION_MAP.put("长输管道设备", "V1.0.0");
} }
......
...@@ -2527,16 +2527,17 @@ ...@@ -2527,16 +2527,17 @@
and (a.apply_status <![CDATA[ <> ]]> '6617') and (a.apply_status <![CDATA[ <> ]]> '6617')
) )
</select> </select>
<update id="updateTechParamDynamic"> <update id="updateTechParamDynamic">
update ${tableName} <if test="columns != null and columns.size() > 0">
<set> update
${tableName}
set
<foreach collection="columns" item="column" separator=","> <foreach collection="columns" item="column" separator=",">
<if test="column.columnValue != null and column.columnValue != ''"> ${column.columnName} = #{column.columnValue}
${column.columnName} = #{column.columnValue}
</if>
</foreach> </foreach>
</set> where record = #{record}
where record = #{record} </if>
</update> </update>
<select id="countBizNumAfterUseReg" resultType="java.lang.Long"> <select id="countBizNumAfterUseReg" resultType="java.lang.Long">
......
...@@ -596,7 +596,7 @@ ...@@ -596,7 +596,7 @@
</select> </select>
<select id="getListPageCount" resultType="long"> <select id="getListPageCount" resultType="long">
SELECT <![CDATA[/*+ set(query_dop 16)*/]]> COUNT(*) SELECT <![CDATA[/*+ set(query_dop 16)*/]]> COUNT(DISTINCT ur.sequence_nbr)
FROM tzs_jg_use_registration ur FROM tzs_jg_use_registration ur
<if test="dto.equList != null or dto.equCategory != null or dto.equDefine != null or <if test="dto.equList != null or dto.equCategory != null or dto.equDefine != null or
dto.equCode != null or dto.code96333 != null or dto.supervisoryCode != null"> dto.equCode != null or dto.code96333 != null or dto.supervisoryCode != null">
......
...@@ -361,4 +361,18 @@ public class DataHandlerController extends BaseController { ...@@ -361,4 +361,18 @@ public class DataHandlerController extends BaseController {
public ResponseModel<String> refreshXianData2ES(@RequestParam(value = "isUpdate", defaultValue = "false") boolean isUpdate) throws IOException { public ResponseModel<String> refreshXianData2ES(@RequestParam(value = "isUpdate", defaultValue = "false") boolean isUpdate) throws IOException {
return ResponseHelper.buildResponse(dataHandlerService.refreshXianData2ES(isUpdate)); return ResponseHelper.buildResponse(dataHandlerService.refreshXianData2ES(isUpdate));
} }
/**
* @return
* @apiNote 删除useInfo表中status等于待删除(手动修改为待删除)的设备
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "PUT", value = "删除useInfo表中status等于待删除(手动修改为待删除)的设备", notes = "删除useInfo表中status等于待删除(手动修改为待删除)的设备")
@PutMapping(value = "/equip/deleteEquipIsNotClaimed")
public ResponseModel<Integer> deleteEquip(@RequestParam(value = "useUnitCreditCode") String useUnitCreditCode,
@RequestParam(value = "equList") String equList,
@RequestParam(value = "dataSource", defaultValue = "jg_pl") String dataSource,
@RequestParam(value = "isDelete", defaultValue = "false") boolean isDelete) {
return ResponseHelper.buildResponse(dataHandlerService.deleteEquipIsNotClaimed(useUnitCreditCode, equList, dataSource, isDelete));
}
} }
\ No newline at end of file
...@@ -284,7 +284,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController { ...@@ -284,7 +284,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
**/ **/
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/importData") @PostMapping(value = "/importData")
@ApiOperation(httpMethod = "POST", value = "气瓶批量导入", notes = "气瓶批量导入") @ApiOperation(httpMethod = "POST", value = "气瓶批量导入校验", notes = "气瓶批量导入校验")
public ResponseModel<?> importPressureData(@RequestPart("file") MultipartFile multipartFile) throws Exception { public ResponseModel<?> importPressureData(@RequestPart("file") MultipartFile multipartFile) throws Exception {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.importPressureData(multipartFile)); return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.importPressureData(multipartFile));
} }
......
...@@ -31,7 +31,10 @@ public class NewProjectEditUpdateService { ...@@ -31,7 +31,10 @@ public class NewProjectEditUpdateService {
public void updateBizInfo(String projectContraptionId) { public void updateBizInfo(String projectContraptionId) {
IdxBizJgProjectContraption projectContraption = commonEquipDataProcessService.getIdxBizJgProjectContraptionServiceImpl().getOne(new LambdaQueryWrapper<IdxBizJgProjectContraption>().eq(BaseEntity::getSequenceNbr, projectContraptionId).select(BaseEntity::getSequenceNbr, IdxBizJgProjectContraption::getUseRegistrationCode)); IdxBizJgProjectContraption projectContraption = commonEquipDataProcessService.getIdxBizJgProjectContraptionServiceImpl().getOne(new LambdaQueryWrapper<IdxBizJgProjectContraption>().eq(BaseEntity::getSequenceNbr, projectContraptionId).select(BaseEntity::getSequenceNbr, IdxBizJgProjectContraption::getUseRegistrationCode));
// 按照装置id查询装置下管道,更新为已纳管状态写入使用登记证编号 // 按照装置id查询装置下管道,更新为已纳管状态写入使用登记证编号
List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(IdxBizJgUseInfo::getRecord, TzsBaseEntity::getSequenceNbr)); List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>()
.eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId)
//.eq(IdxBizJgUseInfo::getIsIntoManagement, false)修改已纳管管道编辑使用登记证号,不更新bug
.select(IdxBizJgUseInfo::getRecord, TzsBaseEntity::getSequenceNbr));
useInfos.parallelStream().forEach(e -> { useInfos.parallelStream().forEach(e -> {
commonEquipDataProcessService.setNewPipelineUseState(e, projectContraption.getUseRegistrationCode()); commonEquipDataProcessService.setNewPipelineUseState(e, projectContraption.getUseRegistrationCode());
commonEquipDataProcessService.updateUseOrgCode2NewPipeline(e, projectContraption.getUseRegistrationCode()); commonEquipDataProcessService.updateUseOrgCode2NewPipeline(e, projectContraption.getUseRegistrationCode());
......
...@@ -1137,7 +1137,10 @@ public class CommonEquipDataProcessService { ...@@ -1137,7 +1137,10 @@ public class CommonEquipDataProcessService {
} }
public void updatePipeline2InUse(String projectContraptionId, String useRegistrationCode) { public void updatePipeline2InUse(String projectContraptionId, String useRegistrationCode) {
List<IdxBizJgUseInfo> useInfos = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(TzsBaseEntity::getSequenceNbr, IdxBizJgUseInfo::getRecord)); List<IdxBizJgUseInfo> useInfos = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>()
.eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId)
.eq(IdxBizJgUseInfo::getIsIntoManagement, false)
.select(TzsBaseEntity::getSequenceNbr, IdxBizJgUseInfo::getRecord));
useInfos.parallelStream().forEach(e -> { useInfos.parallelStream().forEach(e -> {
this.setNewPipelineUseState(e, useRegistrationCode); this.setNewPipelineUseState(e, useRegistrationCode);
this.updateUseOrgCode2NewPipeline(e, useRegistrationCode); this.updateUseOrgCode2NewPipeline(e, useRegistrationCode);
......
...@@ -1722,8 +1722,8 @@ public class DataDockServiceImpl { ...@@ -1722,8 +1722,8 @@ public class DataDockServiceImpl {
//Optional.ofNullable(data.getWallThickness()).ifPresent(item -> checkPipeSpecifications(item, "公称壁厚请输入数字或者/分割的范围,如2/6;", rowError)); //Optional.ofNullable(data.getWallThickness()).ifPresent(item -> checkPipeSpecifications(item, "公称壁厚请输入数字或者/分割的范围,如2/6;", rowError));
//checkNotBlank(data.getNominalDiameter(), "公称直径不能为空;", rowError); //checkNotBlank(data.getNominalDiameter(), "公称直径不能为空;", rowError);
//Optional.ofNullable(data.getNominalDiameter()).ifPresent(item -> checkPipeSpecifications(item, "公称直径请输入数字或者/分割的范围,如2/6;", rowError)); //Optional.ofNullable(data.getNominalDiameter()).ifPresent(item -> checkPipeSpecifications(item, "公称直径请输入数字或者/分割的范围,如2/6;", rowError));
//checkNotBlank(data.getPipeLength(), "管道长度不能为空;", rowError); checkNotBlank(data.getPipeLength(), "管道长度不能为空;", rowError);
//Optional.ofNullable(data.getPipeLength()).ifPresent(item -> checkDateFormatNumber(item, "管道长度必须为数字", rowError)); Optional.ofNullable(data.getPipeLength()).ifPresent(item -> checkDateFormatNumber(item, "管道长度必须为数字", rowError));
//checkNotBlank(data.getPressure(), "设计-压力不能为空;", rowError); //checkNotBlank(data.getPressure(), "设计-压力不能为空;", rowError);
//checkNotBlank(data.getMedium(), "设计-介质不能为空;", rowError); //checkNotBlank(data.getMedium(), "设计-介质不能为空;", rowError);
//checkNotBlank(data.getTemperature(), "设计-温度不能为空;", rowError); //checkNotBlank(data.getTemperature(), "设计-温度不能为空;", rowError);
......
...@@ -2279,4 +2279,26 @@ public class DataHandlerServiceImpl { ...@@ -2279,4 +2279,26 @@ public class DataHandlerServiceImpl {
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
public Integer deleteEquipIsNotClaimed(String useUnitCreditCode, String equList,
String dataSource, boolean isDelete) {
List<IdxBizJgRegisterInfo> jgRegisterInfoList = registerInfoMapper.selectDeleteEquipIsNotClaimed(useUnitCreditCode, equList, dataSource );
List<String> records = Optional.ofNullable(jgRegisterInfoList)
.orElse(Collections.emptyList())
.stream()
.filter(Objects::nonNull)
.map(IdxBizJgRegisterInfo::getRecord)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!records.isEmpty() && isDelete) {
int batchSize = 1000;
for (int i = 0; i < records.size(); i += batchSize) {
int end = Math.min(i + batchSize, records.size());
List<String> batch = records.subList(i, end);
superviseInfoMapper.deleteDataAll(batch);
deleteFromEs(batch);
}
}
return records.size();
}
} }
...@@ -95,6 +95,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ ...@@ -95,6 +95,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
public static final String EQU_DEFINE = "equDefine"; public static final String EQU_DEFINE = "equDefine";
public static final String PROJECT_CONTRAPTION_NO = "projectContraptionNo"; public static final String PROJECT_CONTRAPTION_NO = "projectContraptionNo";
public static final String ORG_BRANCH_CODE = "orgBranchCode"; public static final String ORG_BRANCH_CODE = "orgBranchCode";
public static final String DATA_SOURCE = "dataSource";
public static final String DATA_QUALITY_SCORE = "dataQualityScore"; public static final String DATA_QUALITY_SCORE = "dataQualityScore";
public static final String DATA_QUALITY = "dataQuality"; public static final String DATA_QUALITY = "dataQuality";
...@@ -270,6 +271,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ ...@@ -270,6 +271,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
String projectContraptionNo = params.get(PROJECT_CONTRAPTION_NO); String projectContraptionNo = params.get(PROJECT_CONTRAPTION_NO);
//属地监管部门code //属地监管部门code
String orgBranchCode = params.get(ORG_BRANCH_CODE); String orgBranchCode = params.get(ORG_BRANCH_CODE);
String dataSource = params.get(DATA_SOURCE);
// 设备类别code // 设备类别code
String equCategory = params.get(EQU_CATEGORY); String equCategory = params.get(EQU_CATEGORY);
// 设备类品种code // 设备类品种code
...@@ -367,6 +369,17 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ ...@@ -367,6 +369,17 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
.eq(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_COMPANY.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 企业 等于匹配 .eq(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_COMPANY.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 企业 等于匹配
.likeRight(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_SUPERVISION.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 监管 右模糊匹配 .likeRight(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_SUPERVISION.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 监管 右模糊匹配
.like(!ValidationUtil.isEmpty(projectContraptionNo), IdxBizJgProjectContraption::getProjectContraptionNo, projectContraptionNo) .like(!ValidationUtil.isEmpty(projectContraptionNo), IdxBizJgProjectContraption::getProjectContraptionNo, projectContraptionNo)
.and(!ValidationUtil.isEmpty(dataSource), w -> {
if ("jg".equals(dataSource)) {
w.likeRight(IdxBizJgProjectContraption::getDataSource, "jg").notLike(IdxBizJgProjectContraption::getDataSource, "jg_his");
} else if ("jg_his".equals(dataSource)) {
w.likeRight(IdxBizJgProjectContraption::getDataSource, "jg_his").notLike(IdxBizJgProjectContraption::getDataSource, "jg_his_black");
} else if ("jg_his_black".equals(dataSource)) {
w.eq(IdxBizJgProjectContraption::getDataSource, "jg_his_black").or().likeRight(IdxBizJgProjectContraption::getDataSource, "jg_his_black_");
} else {
w.eq(IdxBizJgProjectContraption::getDataSource, dataSource);
}
})
.isNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.TRUE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode) .isNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.TRUE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode)
.isNotNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.FALSE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode) .isNotNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.FALSE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode)
.isNull(IdxBizJgProjectContraption::getProjectContraptionParentId) .isNull(IdxBizJgProjectContraption::getProjectContraptionParentId)
......
...@@ -6,6 +6,7 @@ import cn.hutool.core.date.DatePattern; ...@@ -6,6 +6,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder; import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.event.AnalysisEventListener;
...@@ -205,6 +206,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -205,6 +206,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private static final Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>(); private static final Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
public static final String CAR_NUMBER = "CAR_NUMBER"; public static final String CAR_NUMBER = "CAR_NUMBER";
public static final String USE_UNIT_NAME = "USE_UNIT_NAME"; public static final String USE_UNIT_NAME = "USE_UNIT_NAME";
private static final String PRODUCT_NAME = "PRODUCT_NAME";
// 需要转化成jsonObject的附件字段 // 需要转化成jsonObject的附件字段
public static String[] jsonFields = {"insOtherAccessories", "installContractAttachment", "installProxyStatementAttachment"}; public static String[] jsonFields = {"insOtherAccessories", "installContractAttachment", "installProxyStatementAttachment"};
private final List<String> resultError = new ArrayList<>(); private final List<String> resultError = new ArrayList<>();
...@@ -316,7 +318,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -316,7 +318,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Autowired @Autowired
private SnowflakeIdUtil sequence; private SnowflakeIdUtil sequence;
@Autowired @Autowired
private JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService; private JgCertificateChangeRecordEqMapper certificateChangeRecordEqMapper;
@Autowired @Autowired
private JgUseRegistrationServiceImpl jgUseRegistrationService; private JgUseRegistrationServiceImpl jgUseRegistrationService;
@Autowired @Autowired
...@@ -2602,7 +2604,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -2602,7 +2604,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 只查历史,前缀为 jg_his // 只查历史,前缀为 jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his")); dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
dBuilder.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));// 排除黑设备 dBuilder.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));// 排除黑设备
} else { } else if("jg_his_black".equals(dataSource)) {
// 只查黑设备,前缀为 jg_his_black
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));
}else {
// 只查新增,前缀为 jg 且前缀不为 jg_his // 只查新增,前缀为 jg 且前缀不为 jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg")) dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg"))
.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his")); .mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
...@@ -2742,6 +2747,13 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -2742,6 +2747,13 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
pBuilder.must(QueryBuilders.matchPhraseQuery("USE_PLACE", "*" + param + "*")); pBuilder.must(QueryBuilders.matchPhraseQuery("USE_PLACE", "*" + param + "*"));
boolMust.must(pBuilder); boolMust.must(pBuilder);
} }
// 设备名称
if (!ObjectUtils.isEmpty(map.getString(PRODUCT_NAME))) {
BoolQueryBuilder elcBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString(PRODUCT_NAME));
elcBuilder.must(QueryBuilders.matchPhraseQuery(PRODUCT_NAME, test));
boolMust.must(elcBuilder);
}
// 设备状态 // 设备状态
if (!ObjectUtils.isEmpty(map.getString("EQU_STATE"))) { if (!ObjectUtils.isEmpty(map.getString("EQU_STATE"))) {
BoolQueryBuilder esBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder esBuilder = QueryBuilders.boolQuery();
...@@ -4317,6 +4329,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -4317,6 +4329,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
List<JgUseRegistrationEq> jgRelationEquipList = new ArrayList<>(); List<JgUseRegistrationEq> jgRelationEquipList = new ArrayList<>();
List<Map<String, Object>> equipmentLists = new ArrayList<>(); List<Map<String, Object>> equipmentLists = new ArrayList<>();
List<IdxBizJgSupervisionInfo> supervisionInfoList = new ArrayList<>(); List<IdxBizJgSupervisionInfo> supervisionInfoList = new ArrayList<>();
List<JgCertificateChangeRecordEq> jgCertificateChangeRecordEqList = new ArrayList<>();
if (paramMap == null) { if (paramMap == null) {
throw new IllegalArgumentException("参数Map不能为空"); throw new IllegalArgumentException("参数Map不能为空");
...@@ -4331,6 +4344,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -4331,6 +4344,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String orgBranchCode = equipInfoDto.getOrgBranchCode(); String orgBranchCode = equipInfoDto.getOrgBranchCode();
String orgBranchName = equipInfoDto.getOrgBranchName(); String orgBranchName = equipInfoDto.getOrgBranchName();
Set<String> recordSet = new HashSet<>(); Set<String> recordSet = new HashSet<>();
List<DictionarieValueModel> fillingMedium = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult();
Map<String, Object> fillingMediumMap = fillingMedium.stream().collect(Collectors.toMap(DictionarieValueModel::getDictDataValue,
DictionarieValueModel::getDictDataKey));
equipInfoCylinderExcelDtoList.forEach(data -> { equipInfoCylinderExcelDtoList.forEach(data -> {
JgUseRegistrationEq jgRelationEquip = new JgUseRegistrationEq(); JgUseRegistrationEq jgRelationEquip = new JgUseRegistrationEq();
if ("his".equals(equipInfoDto.getDataSource()) && "1".equals(data.getWhetherVehicleCylinder())) { if ("his".equals(equipInfoDto.getDataSource()) && "1".equals(data.getWhetherVehicleCylinder())) {
...@@ -4430,7 +4446,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -4430,7 +4446,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
registerInfo.setEquCategory(equipInfoDto.getEquCategoryCode()); registerInfo.setEquCategory(equipInfoDto.getEquCategoryCode());
registerInfo.setEquDefine(equipInfoDto.getEquDefineCode()); registerInfo.setEquDefine(equipInfoDto.getEquDefineCode());
registerInfo.setEquList(equipInfoDto.getEquListCode()); registerInfo.setEquList(equipInfoDto.getEquListCode());
registerInfo.setRegisterState(idxBizJgRegisterInfoService.getRegCode()); registerInfo.setRegisterState("his".equals(equipInfoDto.getDataSource()) ? "6045":"6046");
registerInfo.setProductPhoto(productPhoto); registerInfo.setProductPhoto(productPhoto);
registerInfo.setOtherAccessoriesReg(otherAccessoriesReg); registerInfo.setOtherAccessoriesReg(otherAccessoriesReg);
registerInfo.setUseOrgCode(equipInfoDto.getUseOrgCode()); registerInfo.setUseOrgCode(equipInfoDto.getUseOrgCode());
...@@ -4450,8 +4466,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -4450,8 +4466,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
inspectionDetectionInfo.setRecDate(new Date()); inspectionDetectionInfo.setRecDate(new Date());
inspectionDetectionInfo.setInspectType("ZZJDJY"); inspectionDetectionInfo.setInspectType("ZZJDJY");
inspectionDetectionInfo.setInspectConclusion("6040");// 默认合格 inspectionDetectionInfo.setInspectConclusion("6040");// 默认合格
inspectionDetectionInfo.setInspectDate(DateUtil.parse(data.getInspectDate(), "yyyy-MM-dd")); Optional.ofNullable(data.getInspectDate())
inspectionDetectionInfo.setNextInspectDate(DateUtil.parse(data.getNextInspectDate(), "yyyy-MM-dd")); .filter(StrUtil::isNotBlank)
.map(s -> DateUtil.parse(s, "yyyy-MM-dd"))
.ifPresent(inspectionDetectionInfo::setInspectDate);
Optional.ofNullable(data.getNextInspectDate())
.filter(StrUtil::isNotBlank)
.map(s -> DateUtil.parse(s, "yyyy-MM-dd"))
.ifPresent(inspectionDetectionInfo::setNextInspectDate);
// 根据条件确定增加的年数(杨生元说监管让去掉,企业自己输入) // 根据条件确定增加的年数(杨生元说监管让去掉,企业自己输入)
// Optional.ofNullable(data.getInspectDate()) // Optional.ofNullable(data.getInspectDate())
// .filter(s -> !s.trim().isEmpty()) // .filter(s -> !s.trim().isEmpty())
...@@ -4482,9 +4504,6 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -4482,9 +4504,6 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
setSupervisionInfo(orgBranchCode, orgBranchName, record, supervisionInfoList); setSupervisionInfo(orgBranchCode, orgBranchName, record, supervisionInfoList);
// 技术参数 // 技术参数
List<DictionarieValueModel> fillingMedium = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult();
Map<String, Object> fillingMediumMap = fillingMedium.stream().collect(Collectors.toMap(DictionarieValueModel::getDictDataValue,
DictionarieValueModel::getDictDataKey));
IdxBizJgTechParamsVessel paramsVessel = new IdxBizJgTechParamsVessel(); IdxBizJgTechParamsVessel paramsVessel = new IdxBizJgTechParamsVessel();
BeanUtils.copyProperties(data, paramsVessel); BeanUtils.copyProperties(data, paramsVessel);
paramsVessel.setRecord(record); paramsVessel.setRecord(record);
...@@ -4533,7 +4552,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -4533,7 +4552,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
changeRecordEq.setChangeRecordId(String.valueOf(changeRecordId));// 登记证记录主键 changeRecordEq.setChangeRecordId(String.valueOf(changeRecordId));// 登记证记录主键
changeRecordEq.setEquId(registerInfo.getRecord());// 设备主键 changeRecordEq.setEquId(registerInfo.getRecord());// 设备主键
changeRecordEq.setProductCode(factoryInfo.getFactoryNum());// 产品编号 changeRecordEq.setProductCode(factoryInfo.getFactoryNum());// 产品编号
certificateChangeRecordEqService.save(changeRecordEq); jgCertificateChangeRecordEqList.add(changeRecordEq);
} }
String nextInspectDateStr = Optional.ofNullable(inspectionDetectionInfo.getNextInspectDate()) String nextInspectDateStr = Optional.ofNullable(inspectionDetectionInfo.getNextInspectDate())
.map(date -> date.toInstant() .map(date -> date.toInstant()
...@@ -4667,35 +4686,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -4667,35 +4686,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
.collect(Collectors.toList()) .collect(Collectors.toList())
); );
} }
List<CompletableFuture<Void>> futures = new ArrayList<>(); batchInsert(idxBizJgSupervisionInfoMapper, supervisionInfoList, "监督信息");
futures.add(CompletableFuture.runAsync(() -> batchInsert(idxBizJgUseInfoMapper, useInfoList, "使用信息");
batchInsert(idxBizJgSupervisionInfoMapper, supervisionInfoList, "监督信息") batchInsert(idxBizJgDesignInfoMapper, designInfoList, "设计信息");
)); batchInsert(idxBizJgRegisterInfoMapper, registerInfoList, "注册信息");
futures.add(CompletableFuture.runAsync(() -> batchInsert(idxBizJgFactoryInfoMapper, factoryInfoList, "制造信息");
batchInsert(idxBizJgUseInfoMapper, useInfoList, "使用信息") batchInsert(otherInfoMapper, otherInfoList, "其他信息");
)); batchInsert(idxBizJgTechParamsVesselMapper, paramsVesselList, "容器参数信息");
futures.add(CompletableFuture.runAsync(() -> batchInsert(idxBizJgInspectionDetectionInfoMapper, inspectionDetectionInfoList, "检验检测信息");
batchInsert(idxBizJgDesignInfoMapper, designInfoList, "设计信息") batchInsert(certificateChangeRecordEqMapper, jgCertificateChangeRecordEqList, "登记证关系信息");
)); esEquipmentCategory.saveAll(esEquipmentCategoryList);
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgRegisterInfoMapper, registerInfoList, "注册信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgFactoryInfoMapper, factoryInfoList, "制造信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(otherInfoMapper, otherInfoList, "其他信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgTechParamsVesselMapper, paramsVesselList, "容器参数信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgInspectionDetectionInfoMapper, inspectionDetectionInfoList, "检验检测信息")
));
if (!esEquipmentCategoryList.isEmpty()) {
futures.add(CompletableFuture.runAsync(() -> esEquipmentCategory.saveAll(esEquipmentCategoryList)));
}
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip)); eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
return String.format("导入完成,成功导入: %d 条数据!", useInfoList.size()); return String.format("导入完成,成功导入: %d 条数据!", useInfoList.size());
} }
......
...@@ -25,7 +25,9 @@ import com.yeejoin.amos.boot.module.jg.api.enums.*; ...@@ -25,7 +25,9 @@ import com.yeejoin.amos.boot.module.jg.api.enums.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.*; import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationUnitService; import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationUnitService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext; import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser; import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher; import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
...@@ -327,175 +329,187 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg ...@@ -327,175 +329,187 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
*/ */
@GlobalTransactional(rollbackFor = Exception.class) @GlobalTransactional(rollbackFor = Exception.class)
public JgChangeRegistrationUnitDto updateInstallationNotice(String submitType, JgChangeRegistrationUnitDto noticeDto, String op, ReginParams reginParams) { public JgChangeRegistrationUnitDto updateInstallationNotice(String submitType, JgChangeRegistrationUnitDto noticeDto, String op, ReginParams reginParams) {
if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) { try {
throw new IllegalArgumentException("参数不能为空"); if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) {
} throw new IllegalArgumentException("参数不能为空");
if (PipelineEnum.PRESSURE_PIPELINE.getCode().equals(noticeDto.getEquListCode())) {
dealProjectContraptionToUpdate(submitType, noticeDto, op, reginParams);
} else {
// 字段转换
this.convertField(noticeDto);
// 获取单位变更使用登记证列表
List<Map<String, Object>> registrationList = noticeDto.getRegistrationList();
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空");
}
//根据使用登记证查询设备
List<Long> registrationIdList = registrationList.stream().filter(v -> v.containsKey("sequenceNbr") &&
ObjectUtils.isNotEmpty(v.get("sequenceNbr")) && canConvertToLong(v.get("sequenceNbr").toString()))
.map(v -> Long.parseLong(v.get("sequenceNbr").toString())).collect(Collectors.toList());
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
//场车区分区外还是区内
if (EQU_CODE_CC.equals(noticeDto.getEquListCode())) {
String city = Objects.toString(noticeDto.getCity(), "");
String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
this.validateDeviceCity(deviceList, userCity, "0".equals(noticeDto.getChangeType()));
this.setEquAddress(noticeDto);
} }
ArrayList<String> roleListAll = new ArrayList<>(); if (PipelineEnum.PRESSURE_PIPELINE.getCode().equals(noticeDto.getEquListCode())) {
ArrayList<String> roleListNext = new ArrayList<>(); dealProjectContraptionToUpdate(submitType, noticeDto, op, reginParams);
if (SUBMIT_TYPE_FLOW.equals(submitType)) { } else {
// 发起流程 // 字段转换
if (!StringUtils.hasText(noticeDto.getInstanceId())) { this.convertField(noticeDto);
List<ProcessTaskDTO> processTasks = new ArrayList<>(); // 获取单位变更使用登记证列表
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO(); List<Map<String, Object>> registrationList = noticeDto.getRegistrationList();
List<ActWorkflowStartDTO> list = new ArrayList<>(); if (CollectionUtils.isEmpty(registrationList)) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); throw new BadRequest("使用登记证不能为空");
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY); }
dto.setBusinessKey(String.valueOf(new Date().getTime())); //根据使用登记证查询设备
dto.setCompleteFirstTask(true); List<Long> registrationIdList = registrationList.stream().filter(v -> v.containsKey("sequenceNbr") &&
list.add(dto); ObjectUtils.isNotEmpty(v.get("sequenceNbr")) && canConvertToLong(v.get("sequenceNbr").toString()))
actWorkflowBatchDTO.setProcess(list); .map(v -> Long.parseLong(v.get("sequenceNbr").toString())).collect(Collectors.toList());
dto.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode()); // 获取单位变更设备列表
processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO); if (CollectionUtils.isEmpty(registrationIdList)) {
String instanceId = processTasks.get(0).getProcessInstance().getId(); throw new BadRequest("使用登记证不能为空");
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId(); }
String taskname = processTasks.get(0).getNextTask().get(0).getName(); List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
this.buildRoleList(processTasks, roleListNext, roleListAll); // 获取单位变更设备列表
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTasks); if (CollectionUtils.isEmpty(deviceList)) {
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds(); throw new BadRequest("使用登记证下无设备");
}
JgChangeRegistrationUnit notice = new JgChangeRegistrationUnit(); //场车区分区外还是区内
BeanUtils.copyProperties(noticeDto, notice); if (EQU_CODE_CC.equals(noticeDto.getEquListCode())) {
notice.setChangeCertificate(noticeDto.getChangeCertificate()); String city = Objects.toString(noticeDto.getCity(), "");
notice.setRemark(noticeDto.getRemark()); String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) { this.validateDeviceCity(deviceList, userCity, "0".equals(noticeDto.getChangeType()));
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListAll); this.setEquAddress(noticeDto);
}
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
if (!StringUtils.hasText(noticeDto.getInstanceId())) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
dto.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO);
String instanceId = processTasks.get(0).getProcessInstance().getId();
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
String taskname = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
JgChangeRegistrationUnit notice = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, notice);
notice.setChangeCertificate(noticeDto.getChangeCertificate());
notice.setRemark(noticeDto.getRemark());
if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListAll);
} else {
notice.setInstanceStatus(String.join(",", roleListAll));
}
notice.setInstanceId(instanceId);
notice.setNextTaskId(nextTaskId);
notice.setSupervisoryCode(noticeDto.getSupervisoryCode());
notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecutorIds(String.join(",", roleListNext));
notice.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
notice.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, notice);
JgChangeRegistrationUnitMapper.updateById(notice);
commonServiceImpl.deleteTasksByRelationId(notice.getSequenceNbr() + "");
createTaskModel(notice, taskname, "1", nextUserIds);
commonServiceImpl.saveExecuteFlowData2Redis(notice.getInstanceId(), buildInstanceRuntimeData(notice));
} else { } else {
notice.setInstanceStatus(String.join(",", roleListAll)); ArrayList<String> roleList = new ArrayList<>();
String taskId = noticeDto.getNextTaskId();
//组装信息
TaskResultDTO task = new TaskResultDTO();
task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
if (!ObjectUtils.isEmpty(noticeDto.getInstanceStatus()) &&
(noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getReject()) ||
noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getRollBack()))) {
map.put("approvalStatus", "提交");
}
task.setVariable(map);
//执行流程
task.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(taskId, task, op);
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if (processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() > 0) {
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
bean.setNextExecutorIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(bean.getInstanceStatus())) {
bean.setInstanceStatus(bean.getInstanceStatus() + "," + String.join(",", roleList));
} else {
bean.setInstanceStatus(String.join(",", roleList));
}
bean.setNextTaskId(nextTaskId);
bean.setPromoter(RequestContext.getExeUserId());
bean.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
executeOneStep(bean, taskName1, nextUserIds, op);
bean.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
commonServiceImpl.saveExecuteFlowData2Redis(bean.getInstanceId(), buildInstanceRuntimeData(bean));
} }
notice.setInstanceId(instanceId);
notice.setNextTaskId(nextTaskId);
notice.setSupervisoryCode(noticeDto.getSupervisoryCode());
notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecutorIds(String.join(",", roleListNext));
notice.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
notice.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, notice);
JgChangeRegistrationUnitMapper.updateById(notice);
commonServiceImpl.deleteTasksByRelationId(notice.getSequenceNbr() + "");
createTaskModel(notice, taskname, "1", nextUserIds);
commonServiceImpl.saveExecuteFlowData2Redis(notice.getInstanceId(), buildInstanceRuntimeData(notice));
} else { } else {
ArrayList<String> roleList = new ArrayList<>();
String taskId = noticeDto.getNextTaskId();
//组装信息
TaskResultDTO task = new TaskResultDTO();
task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
if (!ObjectUtils.isEmpty(noticeDto.getInstanceStatus()) &&
(noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getReject()) ||
noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getRollBack()))) {
map.put("approvalStatus", "提交");
}
task.setVariable(map);
//执行流程
task.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(taskId, task, op);
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit(); JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean); BeanUtils.copyProperties(noticeDto, bean);
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if (processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() > 0) {
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
bean.setNextExecutorIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(bean.getInstanceStatus())) {
bean.setInstanceStatus(bean.getInstanceStatus() + "," + String.join(",", roleList));
} else {
bean.setInstanceStatus(String.join(",", roleList));
}
bean.setNextTaskId(nextTaskId);
bean.setPromoter(RequestContext.getExeUserId());
bean.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
executeOneStep(bean, taskName1, nextUserIds, op);
bean.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, bean); setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean); JgChangeRegistrationUnitMapper.updateById(bean);
commonServiceImpl.saveExecuteFlowData2Redis(bean.getInstanceId(), buildInstanceRuntimeData(bean));
}
} else {
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
}
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
} }
if (device.containsKey("SEQUENCE_NBR")) { List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键 deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(noticeDto.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(noticeDto.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, noticeDto.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, noticeDto.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
} }
unitEq.setUnitChangeRegistrationId(noticeDto.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(noticeDto.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, noticeDto.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, noticeDto.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
} }
return noticeDto;
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest(e.getMessage());
} finally {
FlowingEquipRedisContext.clean();
} }
return noticeDto;
} }
/** /**
...@@ -802,199 +816,217 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg ...@@ -802,199 +816,217 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
@Override @Override
@GlobalTransactional(rollbackFor = Exception.class) @GlobalTransactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationUnitDto> saveNotice(String submitType, JSONObject map, ReginParams reginParams) { public List<JgChangeRegistrationUnitDto> saveNotice(String submitType, JSONObject map, ReginParams reginParams) {
JgChangeRegistrationUnitDto model = BeanUtil.toBeanIgnoreError(map.get("changeRegisInfo"), JgChangeRegistrationUnitDto.class); try {
Map<String, Object> tableData = (Map<String, Object>) map.get("changeRegisInfo"); JgChangeRegistrationUnitDto model = BeanUtil.toBeanIgnoreError(map.get("changeRegisInfo"), JgChangeRegistrationUnitDto.class);
String[] taskName = new String[]{"流程结束"}; Map<String, Object> tableData = (Map<String, Object>) map.get("changeRegisInfo");
// 字段转换 String[] taskName = new String[]{"流程结束"};
convertField(model); // 字段转换
// 获取单位变更使用登记证列表 convertField(model);
List<Map<String, Object>> registrationList = model.getRegistrationList(); // 获取单位变更使用登记证列表
if (CollectionUtils.isEmpty(registrationList)) { List<Map<String, Object>> registrationList = model.getRegistrationList();
throw new BadRequest("使用登记证不能为空"); if (CollectionUtils.isEmpty(registrationList)) {
} throw new BadRequest("使用登记证不能为空");
//根据使用登记证查询设备
List<Long> registrationIdList = new ArrayList<>();//使用登记证id
List<String> registrationNoList = new ArrayList<>();//使用登记证编号
for (Map<String, Object> objectMap : registrationList) {
if (objectMap.containsKey("sequenceNbr") && ObjectUtils.isNotEmpty(objectMap.get("sequenceNbr"))
&& canConvertToLong(objectMap.get("sequenceNbr").toString())) {
registrationIdList.add(Long.parseLong(objectMap.get("sequenceNbr").toString()));
} }
if (objectMap.containsKey("useRegistrationCode") && ObjectUtils.isNotEmpty(objectMap.get("useRegistrationCode"))) { //根据使用登记证查询设备
registrationNoList.add(objectMap.get("useRegistrationCode").toString()); List<Long> registrationIdList = new ArrayList<>();//使用登记证id
List<String> registrationNoList = new ArrayList<>();//使用登记证编号
for (Map<String, Object> objectMap : registrationList) {
if (objectMap.containsKey("sequenceNbr") && ObjectUtils.isNotEmpty(objectMap.get("sequenceNbr"))
&& canConvertToLong(objectMap.get("sequenceNbr").toString())) {
registrationIdList.add(Long.parseLong(objectMap.get("sequenceNbr").toString()));
}
if (objectMap.containsKey("useRegistrationCode") && ObjectUtils.isNotEmpty(objectMap.get("useRegistrationCode"))) {
registrationNoList.add(objectMap.get("useRegistrationCode").toString());
}
}
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
} }
}
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表 List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
//场车区分区外还是区内
if (EQU_CODE_CC.equals(model.getEquListCode())) {
String city = Objects.toString(tableData.get("city"), "");
String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
this.validateDeviceCity(deviceList, userCity, "0".equals(model.getChangeType()));
this.setEquAddress(model);
}
// 获取单位变更单号 // 获取单位变更设备列表
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.DWBG.getCode(), 1); if (CollectionUtils.isEmpty(deviceList)) {
List<String> applyNoList = listResponseModel.getResult(); throw new BadRequest("使用登记证下无设备");
if (CollectionUtils.isEmpty(applyNoList)) { }
log.error("生成申请变更单位编码失败"); //场车区分区外还是区内
return new ArrayList<>(); if (EQU_CODE_CC.equals(model.getEquListCode())) {
} String city = Objects.toString(tableData.get("city"), "");
if (SUBMIT_TYPE_FLOW.equals(submitType)) {//放在最后面防止前面有异常 String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中 this.validateDeviceCity(deviceList, userCity, "0".equals(model.getChangeType()));
CompanyBo company = reginParams.getCompany(); this.setEquAddress(model);
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
ArrayList<String> roleListFirst = new ArrayList<>();
List<String> instanceIdList = new ArrayList<>();
List<String> nextExecutorUserIds = new ArrayList<>();
List<String> taskIds = new ArrayList<>();
List<WorkflowResultDto> workflowResultDtos = new ArrayList<>();
String nextExecutorRoleIds = "";
// 判断当前是否为提交
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setNextExecuteUserCompanyCode(model.getReceiveCompanyCode());
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
nextExecutorRoleIds = workflowResultDtos.get(0).getNextExecutorRoleIds();
nextExecutorUserIds.add(workflowResultDtos.get(0).getNextExecutorUserIds());
for (WorkflowResultDto processTaskDTO : workflowResultDtos) {
instanceIdList.add(processTaskDTO.getInstanceId());
taskIds.add(processTaskDTO.getNextTaskId());
} }
}
String finalNextExecutorRoleIds = nextExecutorRoleIds; // 获取单位变更单号
CompanyBo companyBo = commonServiceImpl.getOneCompany(model.getReceiveCompanyCode()); ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.DWBG.getCode(), 1);
model.setApplyNo(applyNoList.get(0)); List<String> applyNoList = listResponseModel.getResult();
model.setReceiveCompanyOrgCode(companyBo.getOrgCode()); if (CollectionUtils.isEmpty(applyNoList)) {
model.setCreateUserId(RequestContext.getExeUserId()); log.error("生成申请变更单位编码失败");
model.setApplyDate(new Date()); return new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) { }
model.setNextExecutorIds(finalNextExecutorRoleIds); if (SUBMIT_TYPE_FLOW.equals(submitType)) {//放在最后面防止前面有异常
model.setInstanceStatus(String.join(",", roleListFirst)); //如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
model.setPromoter(reginParams.getUserModel().getUserId()); CompanyBo company = reginParams.getCompany();
model.setStatus(taskName[0]); deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
} .equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
if (!CollectionUtils.isEmpty(nextExecutorUserIds)) { CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
model.setNextExecuteUserIds(nextExecutorUserIds.get(0)); company.getCompanyCode().split("_")[1] :
} company.getCompanyCode()));
if (!CollectionUtils.isEmpty(instanceIdList)) { }
model.setInstanceId(instanceIdList.get(0)); ArrayList<String> roleListFirst = new ArrayList<>();
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass()); List<String> instanceIdList = new ArrayList<>();
} else { List<String> nextExecutorUserIds = new ArrayList<>();
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_SUBMIT.getPass()); List<String> taskIds = new ArrayList<>();
} List<WorkflowResultDto> workflowResultDtos = new ArrayList<>();
if (!CollectionUtils.isEmpty(taskIds)) { String nextExecutorRoleIds = "";
model.setNextTaskId(taskIds.get(0)); // 判断当前是否为提交
} if (SUBMIT_TYPE_FLOW.equals(submitType)) {
model.setSequenceNbr(sequence.nextId()); //发起流程
model.setCreateDate(new Date()); ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
model.setCreateUserName(reginParams.getUserModel().getRealName()); List<ActWorkflowStartDTO> list = new ArrayList<>();
model.setUseRegistCode(String.join(",", registrationNoList)); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
model.setEquList(registrationList.get(0).get("equList").toString()); dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
JgChangeRegistrationUnit registrationUnit = new JgChangeRegistrationUnit(); dto.setBusinessKey(String.valueOf(new Date().getTime()));
BeanUtils.copyProperties(model, registrationUnit); dto.setNextExecuteUserCompanyCode(model.getReceiveCompanyCode());
setNewUnitInfo(reginParams, registrationUnit); dto.setCompleteFirstTask(true);
JgChangeRegistrationUnitMapper.insert(registrationUnit); list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
nextExecutorRoleIds = workflowResultDtos.get(0).getNextExecutorRoleIds();
nextExecutorUserIds.add(workflowResultDtos.get(0).getNextExecutorUserIds());
for (WorkflowResultDto processTaskDTO : workflowResultDtos) {
instanceIdList.add(processTaskDTO.getInstanceId());
taskIds.add(processTaskDTO.getNextTaskId());
}
}
List<TaskModelDto> modelDtos = new ArrayList<>(); String finalNextExecutorRoleIds = nextExecutorRoleIds;
if (SUBMIT_TYPE_FLOW.equals(submitType)) { CompanyBo companyBo = commonServiceImpl.getOneCompany(model.getReceiveCompanyCode());
TaskModelDto taskModelDto = new TaskModelDto(); model.setApplyNo(applyNoList.get(0));
TaskMessageDto ta = new TaskMessageDto(); model.setReceiveCompanyOrgCode(companyBo.getOrgCode());
ta.setInstanceId(registrationUnit.getInstanceId()); model.setCreateUserId(RequestContext.getExeUserId());
ta.setStatus(registrationUnit.getStatus()); model.setApplyDate(new Date());
ta.setPromoter(registrationUnit.getPromoter()); if (SUBMIT_TYPE_FLOW.equals(submitType)) {
ta.setNextExecuteUserIds(registrationUnit.getNextExecuteUserIds()); model.setNextExecutorIds(finalNextExecutorRoleIds);
ta.setSequenceNbr(registrationUnit.getSequenceNbr()); model.setInstanceStatus(String.join(",", roleListFirst));
ta.setNextTaskId(registrationUnit.getNextTaskId()); model.setPromoter(reginParams.getUserModel().getUserId());
taskModelDto.setModel(ta); model.setStatus(taskName[0]);
taskModelDto.setFlowCreateDate(new Date()); }
taskModelDto.setTaskName(workflowResultDtos.get(0).getNextTaskName()); if (!CollectionUtils.isEmpty(nextExecutorUserIds)) {
taskModelDto.setFlowCode(registrationUnit.getNextTaskId()); model.setNextExecuteUserIds(nextExecutorUserIds.get(0));
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit)); }
taskModelDto.setTaskCode(registrationUnit.getApplyNo()); if (!CollectionUtils.isEmpty(instanceIdList)) {
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode()); model.setInstanceId(instanceIdList.get(0));
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName()); model.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
taskModelDto.setRelationId(registrationUnit.getInstanceId()); } else {
taskModelDto.setExecuteUserIds(workflowResultDtos.get(0).getNextExecutorUserIds()); model.setStatus(WorkFlowStatusEnum.UNITCHANGE_SUBMIT.getPass());
taskModelDto.setTaskStatusLabel("未处理"); }
taskModelDto.setFlowStatus(commonServiceImpl.getDictionaryCodeByName(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass())); if (!CollectionUtils.isEmpty(taskIds)) {
taskModelDto.setFlowStatusLabel(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass()); model.setNextTaskId(taskIds.get(0));
taskModelDto.setStartUserId(RequestContext.getExeUserId()); }
taskModelDto.setStartUser(workflowResultDtos.get(0).getStartUserName()); model.setSequenceNbr(sequence.nextId());
taskModelDto.setStartUserCompanyName(reginParams.getCompany().getCompanyName()); model.setCreateDate(new Date());
taskModelDto.setStartDate(new Date()); model.setCreateUserName(reginParams.getUserModel().getRealName());
taskModelDto.setNextExecuteUser(workflowResultDtos.get(0).getNextExecutorRoleIds()); model.setUseRegistCode(String.join(",", registrationNoList));
modelDtos.add(taskModelDto); model.setEquList(registrationList.get(0).get("equList").toString());
} else { JgChangeRegistrationUnit registrationUnit = new JgChangeRegistrationUnit();
TaskModelDto taskModelDto = new TaskModelDto(); BeanUtils.copyProperties(model, registrationUnit);
//行数据 setNewUnitInfo(reginParams, registrationUnit);
taskModelDto.setModel(registrationUnit); JgChangeRegistrationUnitMapper.insert(registrationUnit);
//摘要 按原有规则组装
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit)); List<TaskModelDto> modelDtos = new ArrayList<>();
//申请单号 if (SUBMIT_TYPE_FLOW.equals(submitType)) {
taskModelDto.setTaskCode(registrationUnit.getApplyNo()); TaskModelDto taskModelDto = new TaskModelDto();
//业务类型枚举code值 TaskMessageDto ta = new TaskMessageDto();
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode()); ta.setInstanceId(registrationUnit.getInstanceId());
////业务主键 ta.setStatus(registrationUnit.getStatus());
taskModelDto.setRelationId(registrationUnit.getSequenceNbr() + ""); ta.setPromoter(registrationUnit.getPromoter());
modelDtos.add(taskModelDto); ta.setNextExecuteUserIds(registrationUnit.getNextExecuteUserIds());
ta.setSequenceNbr(registrationUnit.getSequenceNbr());
ta.setNextTaskId(registrationUnit.getNextTaskId());
taskModelDto.setModel(ta);
taskModelDto.setFlowCreateDate(new Date());
taskModelDto.setTaskName(workflowResultDtos.get(0).getNextTaskName());
taskModelDto.setFlowCode(registrationUnit.getNextTaskId());
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
taskModelDto.setRelationId(registrationUnit.getInstanceId());
taskModelDto.setExecuteUserIds(workflowResultDtos.get(0).getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel("未处理");
taskModelDto.setFlowStatus(commonServiceImpl.getDictionaryCodeByName(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass()));
taskModelDto.setFlowStatusLabel(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
taskModelDto.setStartUserId(RequestContext.getExeUserId());
taskModelDto.setStartUser(workflowResultDtos.get(0).getStartUserName());
taskModelDto.setStartUserCompanyName(reginParams.getCompany().getCompanyName());
taskModelDto.setStartDate(new Date());
taskModelDto.setNextExecuteUser(workflowResultDtos.get(0).getNextExecutorRoleIds());
modelDtos.add(taskModelDto);
} else {
TaskModelDto taskModelDto = new TaskModelDto();
//行数据
taskModelDto.setModel(registrationUnit);
//摘要 按原有规则组装
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
//申请单号
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
//业务类型枚举code值
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
////业务主键
taskModelDto.setRelationId(registrationUnit.getSequenceNbr() + "");
modelDtos.add(taskModelDto);
// } // }
}
commonServiceImpl.saveExecuteFlowData2Redis(registrationUnit.getInstanceId(), buildInstanceRuntimeData(registrationUnit));
commonServiceImpl.buildTaskModel(modelDtos);
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(registrationUnit.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(registrationUnit.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registrationUnit.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, registrationUnit.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
return Collections.singletonList(model);
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest(e.getMessage());
} finally {
FlowingEquipRedisContext.clean();
} }
commonServiceImpl.saveExecuteFlowData2Redis(registrationUnit.getInstanceId(), buildInstanceRuntimeData(registrationUnit)); }
commonServiceImpl.buildTaskModel(modelDtos);
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>(); private void rollBackForDelRedisData() {
deviceList.forEach(device -> { FlowingEquipRedisContext.getContext().forEach(e -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq(); EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY).delDataForCheckWithKey(e.getData(), e.getRedisKey());
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(registrationUnit.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
}); });
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(registrationUnit.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registrationUnit.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, registrationUnit.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
return Collections.singletonList(model);
} }
public void setEquAddress(JgChangeRegistrationUnitDto model) { public void setEquAddress(JgChangeRegistrationUnitDto model) {
......
channals:
id:
name: zookeeper
auth: ADF248A492D2E89B943B3626DE32DB7E6619CD10B5BCA9502AC76AFA624104D4A5AAF320B865300FCF49E88D433564312E4B387931E4E14F5EE60A1CCCE3C9BF41C7500CE9E199DA134FD99355A628B1
host: 192.169.82.2
path: /688ca77ef14c054d94cb8e19/metadata/logic_db/rule
port: '2281'
scheme: digest
keys:
configSignature: 14666B5866B08058360FB75FF264B4143EBDFC8FCF9888C9CAAFD6B1EBADF02EA1CD85E696A0697D1760BDAD53CF29B668A47713B6C3EF106F736812A647955E
logMacKey: 4B2701E612E5A376E7B9980722105EF9BEE8F494F81E666A0AEC70BCA18FEF2C
sm2PrvKey: B79F0CB80D6C5D18CC254DA9817B86EEA662A3EFE0A3B3BDA5C1C155564FC6EDFC342D511AD50C9030DD7DB5A9D122AB
sm2PubKey: 046AE3DE41488D7BE1AA5A7C98ADB320B0ECD392DB295A30B5A1A0BB6320FBC9296775BF14319FFB0A6690060DC370EB33C983F43C37E50A196705D371CBA8D68E
userPIN: 3517382078297947681464213757066358386295150902737251965376941307
userPINCtx:
sdkconfig:
invokeMode: local
timeInterval: 6000
tracing:
host:
port:
scheme:
unionServer:
applicationID: 688ca77e4e31c23383e1ab3e
applicationKey: 3BA3D34E2192A53163B08236C17FD77543EE707C2C94559BE08E9B12D8B2B80264967D0AFAEBDE7A26D0E696A1619727
clientId: IcFjcOgrSkWoTxun
clientSecret: uOKWDyGd1KVjG9JTxF59WrOAuFz9EN0i
serverCloudCipherIp: 172.30.42.218
serverCloudCipherKeyPort: '5443'
...@@ -11,6 +11,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission; ...@@ -11,6 +11,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo; import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo; import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.tcm.api.enums.UnitTypeEnum; import com.yeejoin.amos.boot.module.tcm.api.enums.UnitTypeEnum;
import com.yeejoin.amos.boot.module.tcm.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo; import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl; import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
...@@ -40,11 +41,14 @@ public class HistoryDataDealServiceImpl { ...@@ -40,11 +41,14 @@ public class HistoryDataDealServiceImpl {
private RegUnitInfoServiceImpl regUnitInfoService; private RegUnitInfoServiceImpl regUnitInfoService;
public HistoryDataDealServiceImpl(TzsUserInfoServiceImpl userInfoService, TzsUserPermissionServiceImpl userPermissionService, TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService, RegUnitInfoServiceImpl regUnitInfoService) { private RedisUtil redisUtil;
public HistoryDataDealServiceImpl(TzsUserInfoServiceImpl userInfoService, TzsUserPermissionServiceImpl userPermissionService, TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService, RegUnitInfoServiceImpl regUnitInfoService, RedisUtil redisUtil) {
this.userInfoService = userInfoService; this.userInfoService = userInfoService;
this.userPermissionService = userPermissionService; this.userPermissionService = userPermissionService;
this.baseEnterpriseInfoService = baseEnterpriseInfoService; this.baseEnterpriseInfoService = baseEnterpriseInfoService;
this.regUnitInfoService = regUnitInfoService; this.regUnitInfoService = regUnitInfoService;
this.redisUtil = redisUtil;
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -186,8 +190,8 @@ public class HistoryDataDealServiceImpl { ...@@ -186,8 +190,8 @@ public class HistoryDataDealServiceImpl {
try { try {
regUnitInfo.setAppId(regUnitInfoService.createAppId(user)); regUnitInfo.setAppId(regUnitInfoService.createAppId(user));
} catch (Exception e) { } catch (Exception e) {
log.error("为没有appId的企业生成appId异常", e); log.error("为没有appId的企业生成appId异常:{}", JSON.toJSONString(user));
throw new RuntimeException(e); redisUtil.set("createAppIdError-unit"+ "_" + System.currentTimeMillis(), JSON.toJSONString(user));
} }
} }
companyListWithOutAppId.stream().filter(company -> company.getUseUnitCode().equals(regUnitInfo.getUnitCode())).forEach(company -> company.setAppId(regUnitInfo.getAppId())); companyListWithOutAppId.stream().filter(company -> company.getUseUnitCode().equals(regUnitInfo.getUnitCode())).forEach(company -> company.setAppId(regUnitInfo.getAppId()));
...@@ -207,8 +211,8 @@ public class HistoryDataDealServiceImpl { ...@@ -207,8 +211,8 @@ public class HistoryDataDealServiceImpl {
try { try {
map.put("appId", regUnitInfoService.createAppId(user)); map.put("appId", regUnitInfoService.createAppId(user));
} catch (Exception e) { } catch (Exception e) {
log.error("为没有appId的企业生成appId异常", e); log.error("为没有appId的个人主体生成appId异常:{}", JSON.toJSONString(user));
throw new RuntimeException(e); redisUtil.set("createAppIdError-individual"+ "_" + System.currentTimeMillis(), JSON.toJSONString(user));
} }
}); });
} }
......
...@@ -78,4 +78,8 @@ public interface IdxBizJgRegisterInfoMapper extends CustomBaseMapper<IdxBizJgReg ...@@ -78,4 +78,8 @@ public interface IdxBizJgRegisterInfoMapper extends CustomBaseMapper<IdxBizJgReg
" AND (jri.car_number = CAST(#{carNumber} AS VARCHAR) OR CAST(#{carNumber} AS VARCHAR) IS NULL)\n" + " AND (jri.car_number = CAST(#{carNumber} AS VARCHAR) OR CAST(#{carNumber} AS VARCHAR) IS NULL)\n" +
" AND (jri.use_org_code <> CAST(#{useOrgCode} AS VARCHAR) OR CAST(#{useOrgCode} AS VARCHAR) IS NULL)") " AND (jri.use_org_code <> CAST(#{useOrgCode} AS VARCHAR) OR CAST(#{useOrgCode} AS VARCHAR) IS NULL)")
Integer checkCarNumberUniqueness(@Param("carNumber") String carNumber, @Param("useOrgCode") String useOrgCode); Integer checkCarNumberUniqueness(@Param("carNumber") String carNumber, @Param("useOrgCode") String useOrgCode);
List<IdxBizJgRegisterInfo> selectDeleteEquipIsNotClaimed(@Param("useUnitCreditCode") String useUnitCreditCode,
@Param("equList")String equList,
@Param("dataSource")String dataSource);
} }
...@@ -67,6 +67,16 @@ ...@@ -67,6 +67,16 @@
#{equCode} #{equCode}
</foreach> </foreach>
</update> </update>
<select id="selectDeleteEquipIsNotClaimed" resultType="com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo">
SELECT jri.RECORD
FROM idx_biz_jg_register_info jri
JOIN idx_biz_jg_use_info jui ON jri.record = jui.record
WHERE jui.STATUS = '待删除'
AND jri.EQU_LIST = #{equList}
AND jui.DATA_SOURCE = #{dataSource}
AND jui.USE_UNIT_CREDIT_CODE = #{useUnitCreditCode}
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment