|
@@ -0,0 +1,256 @@
|
|
|
|
+package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.json.JSONArray;
|
|
|
|
+import cn.hutool.json.JSONNull;
|
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmQccInfo;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.WmQccInfoMapper;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmQccInfoService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.util.QccUtils;
|
|
|
|
+import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 企查查信息服务实现
|
|
|
|
+ *
|
|
|
|
+ * @author jimmy
|
|
|
|
+ * @date 10/07/2024 11:12
|
|
|
|
+ */
|
|
|
|
+@Slf4j
|
|
|
|
+@Service
|
|
|
|
+@AllArgsConstructor
|
|
|
|
+public class WmQccInfoServiceImpl extends ServiceImpl<WmQccInfoMapper, WmQccInfo> implements WmQccInfoService {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 刷新企查查信息
|
|
|
|
+ *
|
|
|
|
+ * @param regCode 信用代码
|
|
|
|
+ * @param user 操作人
|
|
|
|
+ * @return 刷新结果
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public Map<String, Object> refresh(String regCode, HnqzUser user) {
|
|
|
|
+
|
|
|
|
+ Map<String, Object> result = new HashMap<>(3);
|
|
|
|
+ WmQccInfo qccInfo = new WmQccInfo();
|
|
|
|
+ qccInfo.setCreateBy(user.getUsername());
|
|
|
|
+ qccInfo.setCreateTime(LocalDateTime.now());
|
|
|
|
+ qccInfo.setRegCode(regCode);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 刷新企业信息
|
|
|
|
+ JSONObject eciInfo = QccUtils.getECIInfo(regCode);
|
|
|
|
+ boolean ok = QccUtils.ok(eciInfo);
|
|
|
|
+ if (ok) {
|
|
|
|
+ JSONObject resp = QccUtils.getResult(eciInfo);
|
|
|
|
+ // 照面信息
|
|
|
|
+ Map<String, Object> bizInfo = new HashMap<>();
|
|
|
|
+ bizInfo.put("KeyNo", resp.getStr("KeyNo"));
|
|
|
|
+ bizInfo.put("Name", resp.getStr("Name"));
|
|
|
|
+ bizInfo.put("CreditCode", resp.getStr("CreditCode"));
|
|
|
|
+ bizInfo.put("BelongOrg", resp.getStr("BelongOrg"));
|
|
|
|
+ bizInfo.put("OperId", resp.getStr("OperId"));
|
|
|
|
+ bizInfo.put("OperName", resp.getStr("OperName"));
|
|
|
|
+ bizInfo.put("StartDate", resp.getStr("StartDate"));
|
|
|
|
+ bizInfo.put("EndDate", resp.getStr("EndDate"));
|
|
|
|
+ bizInfo.put("Status", resp.getStr("Status"));
|
|
|
|
+ bizInfo.put("RegistCapi", resp.getStr("RegistCapi"));
|
|
|
|
+ bizInfo.put("EconKind", resp.getStr("EconKind"));
|
|
|
|
+ bizInfo.put("Address", resp.getStr("Address"));
|
|
|
|
+ bizInfo.put("TermStart", resp.getStr("TermStart"));
|
|
|
|
+ bizInfo.put("TeamEnd", resp.getStr("TeamEnd"));
|
|
|
|
+ bizInfo.put("CheckDate", resp.getStr("CheckDate"));
|
|
|
|
+ bizInfo.put("OrgNo", resp.getStr("OrgNo"));
|
|
|
|
+ bizInfo.put("IsOnStock", resp.getStr("IsOnStock"));
|
|
|
|
+ bizInfo.put("StockNumber", resp.getStr("StockNumber"));
|
|
|
|
+ bizInfo.put("StockType", resp.getStr("StockType"));
|
|
|
|
+ bizInfo.put("RecCap", resp.getStr("RecCap"));
|
|
|
|
+ bizInfo.put("AreaCode", resp.getStr("AreaCode"));
|
|
|
|
+ bizInfo.put("ImageUrl", resp.getStr("ImageUrl"));
|
|
|
|
+ qccInfo.setBizInfo(bizInfo);
|
|
|
|
+
|
|
|
|
+ // qccInfo.setRevokeInfo((Map<String, Object>) resp.get("RevokeInfo"));
|
|
|
|
+
|
|
|
|
+ JSONArray partners = (JSONArray) resp.get("Partners");
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> partner1 = partners.stream().map(p -> {
|
|
|
|
+ JSONObject partner = (JSONObject) p;
|
|
|
|
+ Map<String, Object> partnerInfo = new HashMap<>(4);
|
|
|
|
+ partnerInfo.put("StockName", partner.getStr("StockName"));
|
|
|
|
+ partnerInfo.put("StockPercent", partner.getStr("StockPercent"));
|
|
|
|
+ partnerInfo.put("FinalBenefitPercent", partner.getStr("FinalBenefitPercent"));
|
|
|
|
+ partnerInfo.put("StockType", partner.getStr("StockType"));
|
|
|
|
+ return partnerInfo;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ qccInfo.setPartnerList(partner1);
|
|
|
|
+
|
|
|
|
+ JSONArray employees = (JSONArray) resp.get("Employees");
|
|
|
|
+ List<Map<String, Object>> emps = employees.stream().map(emp -> {
|
|
|
|
+ JSONObject employee = (JSONObject) emp;
|
|
|
|
+ Map<String, Object> empInfo = new HashMap<>(3);
|
|
|
|
+ empInfo.put("Name", employee.getStr("Name"));
|
|
|
|
+ empInfo.put("KeyNo", employee.getStr("KeyNo"));
|
|
|
|
+ empInfo.put("Job", employee.getStr("Job"));
|
|
|
|
+ return empInfo;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ qccInfo.setEmployeeList(emps);
|
|
|
|
+
|
|
|
|
+ JSONArray changeRecords = (JSONArray) resp.get("ChangeRecords");
|
|
|
|
+ List<Map<String, Object>> changeRecord1 = changeRecords.stream().map(cr -> {
|
|
|
|
+ JSONObject changeRecord = (JSONObject) cr;
|
|
|
|
+ Map<String, Object> changeInfo = new HashMap<>(4);
|
|
|
|
+ changeInfo.put("ProjectName", changeRecord.getStr("ProjectName"));
|
|
|
|
+ changeInfo.put("ChangeDate", changeRecord.getStr("ChangeDate"));
|
|
|
|
+ changeInfo.put("AfterContent", changeRecord.getStr("AfterContent"));
|
|
|
|
+ changeInfo.put("BeforeContent", changeRecord.getStr("BeforeContent"));
|
|
|
|
+ return changeInfo;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ qccInfo.setChangeList(changeRecord1);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // qccInfo.setBankInfo();
|
|
|
|
+ // qccInfo.setScale();
|
|
|
|
+ // qccInfo.setTaxAbnormal();
|
|
|
|
+
|
|
|
|
+ // 严重违法查询
|
|
|
|
+ JSONObject seriousIllegalList = QccUtils.getSeriousIllegalList(regCode);
|
|
|
|
+ if (QccUtils.ok(seriousIllegalList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(seriousIllegalList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setSeriousIllegal(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 失信查询
|
|
|
|
+ JSONObject shixinList = QccUtils.getShixinList(regCode);
|
|
|
|
+ if (QccUtils.ok(shixinList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(shixinList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setShiXin(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 实际控制人
|
|
|
|
+ JSONObject actualControlList = QccUtils.getActualControlList(regCode);
|
|
|
|
+ if (QccUtils.ok(actualControlList)) {
|
|
|
|
+ JSONArray array = QccUtils.getArray(actualControlList);
|
|
|
|
+ List<Map<String, Object>> collect = array.stream().map(a -> (Map<String, Object>) a).collect(Collectors.toList());
|
|
|
|
+ qccInfo.setActualControllerList(collect);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 清算信息
|
|
|
|
+ JSONObject liquidationDetail = QccUtils.getLiquidationDetail(regCode);
|
|
|
|
+ if (QccUtils.ok(liquidationDetail)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(liquidationDetail);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setLiquidation(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 税务等级信息
|
|
|
|
+ JSONObject taxCreditList = QccUtils.getTaxCreditList(regCode);
|
|
|
|
+ if (QccUtils.ok(taxCreditList)) {
|
|
|
|
+ JSONArray array = QccUtils.getArray(taxCreditList);
|
|
|
|
+ List<Map<String, Object>> collect = array.stream().map(a -> (Map<String, Object>) a).collect(Collectors.toList());
|
|
|
|
+ qccInfo.setTaxCreditList(collect);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 经营异常
|
|
|
|
+ JSONObject exceptionList = QccUtils.getExceptionList(regCode);
|
|
|
|
+ if (QccUtils.ok(exceptionList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(exceptionList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setExp(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 执行人
|
|
|
|
+ JSONObject zhixingList = QccUtils.getZhixingList(regCode);
|
|
|
|
+ if (QccUtils.ok(zhixingList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(zhixingList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setZhiXing(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 税收违法
|
|
|
|
+ JSONObject taxIllegalList = QccUtils.getTaxIllegalList(regCode);
|
|
|
|
+ if (QccUtils.ok(taxIllegalList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(taxIllegalList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setTaxIllegal(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 破产重组
|
|
|
|
+ JSONObject bankruptcyList = QccUtils.getBankruptcyList(regCode);
|
|
|
|
+ if (QccUtils.ok(bankruptcyList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(bankruptcyList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setBankruptcy(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 动产抵押
|
|
|
|
+ JSONObject chattelMortgageList = QccUtils.getChattelMortgageList(regCode);
|
|
|
|
+ if (QccUtils.ok(chattelMortgageList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(chattelMortgageList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setChattelMortgage(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 行政处罚
|
|
|
|
+ JSONObject adminPenaltyList = QccUtils.getAdminPenaltyList(regCode);
|
|
|
|
+ if (QccUtils.ok(adminPenaltyList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(adminPenaltyList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setAdminPenalty((List<Map<String, Object>>) data);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 限制高消费
|
|
|
|
+ JSONObject sumptuaryList = QccUtils.getSumptuaryList(regCode);
|
|
|
|
+ if (QccUtils.ok(sumptuaryList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(sumptuaryList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setSumptuary(data instanceof JSONNull ? Collections.emptyMap() : (Map<String, Object>) result1.get("Data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 行政许可
|
|
|
|
+ JSONObject adminLicenseList = QccUtils.getAdminLicenseList(regCode);
|
|
|
|
+ if (QccUtils.ok(adminLicenseList)) {
|
|
|
|
+ JSONObject result1 = QccUtils.getResult(adminLicenseList);
|
|
|
|
+ Object data = result1.get("Data");
|
|
|
|
+ qccInfo.setAdminLicenseList((List<Map<String, Object>>) data);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 保存
|
|
|
|
+ this.save(qccInfo);
|
|
|
|
+
|
|
|
|
+ result.put("status", ok);
|
|
|
|
+ result.put("msg", QccUtils.getMessage(eciInfo));
|
|
|
|
+ result.put("qccInfo", qccInfo);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取企业企查查信息
|
|
|
|
+ *
|
|
|
|
+ * @param regCode 企业信用代码
|
|
|
|
+ * @return 企查查信息
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public WmQccInfo getQccInfo(String regCode) {
|
|
|
|
+ List<WmQccInfo> list = this.list(Wrappers.<WmQccInfo>lambdaQuery().eq(WmQccInfo::getRegCode, regCode));
|
|
|
|
+ return CollUtil.isEmpty(list) ? null : list.get(0);
|
|
|
|
+ }
|
|
|
|
+}
|