Commit c0be2fa0 authored by tianbo's avatar tianbo

feat(jg): 新增监管机构与审批局相关功能支持

- 新增查询监督单位编码接口及实现 - 调整机构树过滤逻辑以支持多种单位类型 - 更新机构类型判断方式,使用companyType字段替代companyName - 优化deleteData方法,支持多单位类型筛选 - 增加companyType分隔符处理逻辑,提高匹配准确性 - 注释旧版setRegName调用,适配新流程要求 - 更新消息监听器中机构类型判断条件,增加审批局支持
parent 7e5a1bdf
......@@ -388,5 +388,7 @@ public interface CommonMapper extends BaseMapper<EquipmentCategory> {
List<Map<String, Object>> queryInMaintenanceRecord();
List<Map<String, Object>> queryInInspectionRecord();
List<String> querySupervisionCompanyCode();
}
......@@ -3562,4 +3562,11 @@
where
company_code = #{receiveCompanyCode}
</select>
<select id="querySupervisionCompanyCode" resultType="java.lang.String">
select
supervision_company_code as supervisionCompanyCode
from
tz_supervision_approval_mapping
</select>
</mapper>
......@@ -79,8 +79,9 @@ public class PlatformUserTopicMessage extends EmqxListener {
private void processDataResult(JSONObject dataResultObject) {
try {
String companyType = "监管机构";
String companyType2 = "行政审批局";
String companyTypeValue = dataResultObject.getString("companyType");
if (StringUtils.isNotEmpty(companyTypeValue) && companyTypeValue.contains(companyType)) {
if (StringUtils.isNotEmpty(companyTypeValue) && (companyTypeValue.contains(companyType) || companyTypeValue.contains(companyType2))) {
commonService.creatApproveTree();
}
} catch (Exception e) {
......
......@@ -212,6 +212,11 @@ public class CommonServiceImpl implements ICommonService {
private static final String UNIT = "unit";
private static final String SET = "set";
private static final String OVER_DESIGN = "overDesign";
private static final String COMPANY_TYPE_KEY = "companyType";
private static final String CHILDREN_KEY = "children";
private static final String COMPANY_TYPE_DELIMITER = "/";
@Autowired
EquipmentCategoryMapper equipmentCategoryMapper;
@Autowired
......@@ -502,7 +507,7 @@ public class CommonServiceImpl implements ICommonService {
public List<LinkedHashMap> getCreatTreeByInstallationTree() {
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
List<LinkedHashMap> treeData = deleteData(result, REGULATOR_UNIT);
List<LinkedHashMap> treeData = deleteData(result, Collections.singletonList(REGULATOR_UNIT));
List<LinkedHashMap> supervisionTree = treeData.stream().filter(e -> code.equals(e.get("orgCode"))).collect(Collectors.toList());
List<LinkedHashMap> resultTree = updateNullChildren(supervisionTree);
redisUtils.set(REGULATOR_UNIT_TREE_ALL, resultTree);
......@@ -644,7 +649,8 @@ public class CommonServiceImpl implements ICommonService {
// 日期设置
setNextDate(useFlagParamDto, paramMap);
// 登记机关调整为H列内容(原因目前公司结构无行政审批局)
setRegName(useFlagParamDto, paramMap);
// 20251203行政审批局调整:直接使用单据选择的接收机构
// setRegName(useFlagParamDto, paramMap);
String ftlPath = this.getFtlPathByBiz(useFlagParamDto);
if (StringUtils.isEmpty(ftlPath)) {
throw new BadRequest("无法找到使用标志模板!");
......@@ -769,7 +775,7 @@ public class CommonServiceImpl implements ICommonService {
public List<LinkedHashMap> creatTree() {
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
List<LinkedHashMap> treeData = deleteTreeData(result, REGULATOR_UNIT);
List<LinkedHashMap> treeData = deleteData(result, Lists.newArrayList(REGULATOR_UNIT));
List<LinkedHashMap> supervisionTree = treeData.stream().filter(e -> code.equals(e.get("orgCode"))).collect(Collectors.toList());
List<LinkedHashMap> resultTree = updateNullChildren(supervisionTree);
redisUtils.set(REGULATOR_UNIT_TREE, resultTree);
......@@ -779,7 +785,7 @@ public class CommonServiceImpl implements ICommonService {
public List<LinkedHashMap> creatlLoginUnitAndBelowGetTree(String orgCode) {
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
List<LinkedHashMap> treeData = deleteTreeData(result, REGULATOR_UNIT);
List<LinkedHashMap> treeData = deleteData(result, Lists.newArrayList(REGULATOR_UNIT));
List<LinkedHashMap> supervisionTree = orgCodeAndBelowGetTree(treeData, orgCode);
List<LinkedHashMap> resultTree = updateNullChildren(supervisionTree);
redisUtils.set(REGULATOR_UNIT_TREE + "_" + orgCode, resultTree);
......@@ -807,8 +813,8 @@ public class CommonServiceImpl implements ICommonService {
private List<LinkedHashMap> creatReceiveUnitTree(String bizType) {
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
// 删除非监管机构的单位
deleteData(result, REGULATOR_UNIT);
// 删除非监管机构、非审批局的单位
deleteData(result, Lists.newArrayList(REGULATOR_UNIT, ADMINISTRATION_UNIT));
// 过滤符合指定业务的监管单位
filterTreeDataByType(result, bizType);
List<LinkedHashMap> supervisionTree = result.stream().filter(e -> code.equals(e.get("orgCode"))).collect(Collectors.toList());
......@@ -840,7 +846,7 @@ public class CommonServiceImpl implements ICommonService {
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
List<LinkedHashMap> result = (List<LinkedHashMap>) tree.getResult();
List<LinkedHashMap> children = (List<LinkedHashMap>) result.get(0).get("children");
List<LinkedHashMap> treeData = deleteTreeData(children, REGULATOR_UNIT);
List<LinkedHashMap> treeData = deleteData(children, Lists.newArrayList(REGULATOR_UNIT, ADMINISTRATION_UNIT));
List<LinkedHashMap> resultTree = updateNullChildren(treeData);
redisUtils.set(ADMINISTRATION_UNIT_TREE, resultTree);
return resultTree;
......@@ -887,22 +893,6 @@ public class CommonServiceImpl implements ICommonService {
}
private List<LinkedHashMap> deleteTreeData(List<LinkedHashMap> result, String companyType) {
Iterator it = result.iterator();
while (it.hasNext()) {
LinkedHashMap e = (LinkedHashMap) it.next();
// 删除非监管机构
Object companyTypeObj = e.get("companyType");
if (companyTypeObj == null || !companyTypeObj.toString().contains(companyType)) {
it.remove();
}
if (!ObjectUtils.isEmpty(e.get("children"))) {
deleteTreeData((List<LinkedHashMap>) e.get("children"), companyType);
}
}
return result;
}
private List<LinkedHashMap> filterTreeDataByType(List<LinkedHashMap> result, String type) {
Iterator<LinkedHashMap> it = result.iterator();
while (it.hasNext()) {
......@@ -918,24 +908,44 @@ public class CommonServiceImpl implements ICommonService {
}
if (!ObjectUtils.isEmpty(e.get("children"))) {
filterTreeDataByType((List<LinkedHashMap>) e.get("children"), type);
}
}
return result;
}
private List<LinkedHashMap> deleteData(List<LinkedHashMap> result, String companyType) {
Iterator it = result.iterator();
private List<LinkedHashMap> deleteData(List<LinkedHashMap> result, List<String> companyTypes) {
if (result == null || companyTypes == null || companyTypes.isEmpty()) {
return result;
}
// 使用迭代器遍历并删除元素
Iterator<LinkedHashMap> it = result.iterator();
while (it.hasNext()) {
LinkedHashMap e = (LinkedHashMap) it.next();
LinkedHashMap<String, Object> e = it.next();
Object companyTypeObj = e.get(COMPANY_TYPE_KEY);
Object childrenObj = e.get(CHILDREN_KEY);
// 删除非指定的单位类型
if (e.get("companyType") != null && !e.get("companyType").toString().contains(companyType)) {
it.remove();
}
if (!ObjectUtils.isEmpty(e.get("children"))) {
deleteData((List<LinkedHashMap>) e.get("children"), companyType);
}
if (companyTypeObj != null) {
String companyType = companyTypeObj.toString();
String[] companyTypeArray = companyType.split(COMPANY_TYPE_DELIMITER);
boolean matches = false;
for (String type : companyTypeArray) {
if (companyTypes.contains(type)) {
matches = true;
break;
}
}
if (!matches) {
it.remove();
} else if (childrenObj instanceof List) {
@SuppressWarnings("unchecked")
List<LinkedHashMap> children = (List<LinkedHashMap>) childrenObj;
deleteData(children, companyTypes);
}}
}
return result;
}
......@@ -3051,7 +3061,7 @@ public class CommonServiceImpl implements ICommonService {
Map<String, Object> paramMap = Bean.BeantoMap(useFlagParamDto);
setNextDate(useFlagParamDto, paramMap);
setRegName(useFlagParamDto, paramMap);
// setRegName(useFlagParamDto, paramMap);
// 生成二维码,之前为设备监管码,调整为证编号
String qrCode = ImageUtils.generateQRCode(getEncodeQrCode(useFlagParamDto.getCertificateNo(), "useFlag", useFlagParamDto.getVersion() + ""), 100, 100);
paramMap.put("supervisoryCode", qrCode);
......
......@@ -369,7 +369,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
// 一行数据可能 满足几个remove,所以需要删除后,继续下一循环
continue;
}
if (e.get("companyName").toString().contains("行政审批局")) {
if (e.get("companyType").toString().contains("行政审批局")) {
it.remove();
// 一行数据可能 满足几个remove,所以需要删除后,继续下一循环
continue;
......
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