Commit 28b907bc authored by danfuman's avatar danfuman

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys...

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys into V20231129-中建一局二公司
parents b8ce74c7 158089d4
......@@ -2,6 +2,8 @@ package com.dsk.cscec.domain.bo;
import lombok.Data;
import java.util.List;
/**
* @ClassName DCustomerDynamicRiskTypeVo
* @Description 查询供应商风险类型分布
......@@ -28,4 +30,14 @@ public class DCustomerDynamicRiskTypeVo {
* 条件查询结束时间
*/
private String endTime;
/**
* 供应商类型
*/
private String customerClass;
/**
* 供应商cid列表
*/
private List<Integer> cidList;
}
......@@ -167,6 +167,29 @@ public class DCustomerListVo implements Serializable {
*/
@Excel(name = "分包商等级", width = 10)
private String creditLevel;
/**
* 风险总数
*/
private Long riskTotal = 0L;
/**
* 司法风险数量
*/
private Long judicatureRiskCount = 0L;
/**
* 经营风险数量
*/
private Long operatingRiskCount = 0L;
/**
* 工商风险数量
*/
private Long businessRiskCount = 0L;
/**
* 不良行为数量
*/
private Long badBehaviorCount = 0L;
/**
* 涉诉限用/禁用数量
*/
private Long limitedCount = 0L;
}
......@@ -3,6 +3,7 @@ package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -20,9 +21,11 @@ import com.dsk.cscec.domain.vo.DCustomerListVo;
import com.dsk.cscec.mapper.DCustomerMapper;
import com.dsk.cscec.mapper.DSubcontractMapper;
import com.dsk.cscec.service.IDCustomerService;
import com.dsk.monitor.domain.vo.PushMonitorCompanyAddVo;
import com.dsk.search.service.BusinessOpportunityRadarService;
import com.dsk.system.utils.DskOpenApiUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
......@@ -54,6 +57,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
@Override
public TableDataInfo<DCustomerListVo> allSearchList(DCustomerSearchBo bo, PageQuery query) {
dealWithCustomerClass(bo);
ArrayList<Integer> companyIdList = new ArrayList<>();
Page<DCustomerListVo> page = baseMapper.allSearchList(query.build(), bo);
if (CollectionUtils.isNotEmpty(page.getRecords())) {
page.getRecords().parallelStream().forEach(item -> {
......@@ -68,6 +72,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
companyIdList.add(companyId);
item.setCompanyId(companyId);
}
} catch (Exception e) {
......@@ -79,6 +84,42 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
}
});
}
//填充供应商风险列表相关风险数量
PushMonitorCompanyAddVo addVo = new PushMonitorCompanyAddVo();
//列表中的企业无数据,下面三个cid有数据,用于测试
//companyIdList.clear();
//companyIdList.add(6034);
//companyIdList.add(68152);
//companyIdList.add(3068);
addVo.setCid(companyIdList);
Long userId = LoginHelper.getUserId();
if (ObjectUtil.isNotEmpty(userId)) {
addVo.setUserId(userId);
}
Map<String, Object> riskMap = dskOpenApiUtil.requestBody("/operate/monitor/riskList", BeanUtil.beanToMap(addVo, false, false));
if (MapUtils.getInteger(riskMap, "code", 300) != 200) {
return TableDataInfo.build(page);
}
Object riskData = MapUtils.getObject(riskMap, "data", null);
if (ObjectUtil.isEmpty(riskData)) {
return TableDataInfo.build(page);
}
for (Map<String, Object> risk : ((List<Map<String, Object>>) riskData)) {
for (DCustomerListVo vo : page.getRecords()) {
if (vo.getCompanyId() == risk.get("cid")) {
vo.setRiskTotal((Long) risk.get("riskCount"));
vo.setJudicatureRiskCount((Long) risk.get("sfCount"));
vo.setOperatingRiskCount((Long) risk.get("jyCount"));
vo.setBusinessRiskCount((Long) risk.get("gsCount"));
//TODO:不良行为与涉诉限用禁用需对接甲方数据
vo.setBadBehaviorCount(0L);
vo.setLimitedCount(0L);
}
}
}
return TableDataInfo.build(page);
}
......@@ -206,10 +247,76 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
if (ObjectUtil.isNotEmpty(userId)) {
riskTypeVo.setUserId(userId);
}
//riskTypeVo.setCidList(this.queryCidByCustomerClass(riskTypeVo.getCustomerClass()));
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/riskType", BeanUtil.beanToMap(riskTypeVo, false, false));
return BeanUtil.toBean(map, R.class);
}
/**
* 根据供应商类型查询cid
*
* @param customerClass 供应商类型
* @return cidList
*/
private List<Integer> queryCidByCustomerClass(String customerClass) {
List<Integer> cidList = new ArrayList<>();
List<DCustomer> customerList = new ArrayList<>();
//customerClass = "专业分包";
if (StringUtils.isEmpty(customerClass)) {
customerList.addAll(baseMapper.selectList(new LambdaQueryWrapper<DCustomer>()
.select(DCustomer::getCustomerName)
.eq(DCustomer::getRecommendOrgId, "F17305B4EA4444CBAB12892C7B99E475")
.eq(DCustomer::getCustomerClass, "专业分包")));
customerList.addAll(baseMapper.selectList(new LambdaQueryWrapper<DCustomer>()
.select(DCustomer::getCustomerName)
.eq(DCustomer::getRecommendOrgId, "F17305B4EA4444CBAB12892C7B99E475")
.eq(DCustomer::getCustomerClass, "租赁")));
customerList.addAll(baseMapper.selectList(new LambdaQueryWrapper<DCustomer>()
.select(DCustomer::getCustomerName)
.eq(DCustomer::getRecommendOrgId, "F17305B4EA4444CBAB12892C7B99E475")
.eq(DCustomer::getCustomerClass, "分供")));
customerList.addAll(baseMapper.selectList(new LambdaQueryWrapper<DCustomer>()
.select(DCustomer::getCustomerName)
.eq(DCustomer::getRecommendOrgId, "F17305B4EA4444CBAB12892C7B99E475")
.eq(DCustomer::getCustomerClass, "劳务分包")
.eq(DCustomer::getServiceTeamLogo, "N")));
customerList.addAll(baseMapper.selectList(new LambdaQueryWrapper<DCustomer>()
.select(DCustomer::getCustomerName)
.eq(DCustomer::getRecommendOrgId, "F17305B4EA4444CBAB12892C7B99E475")
.eq(DCustomer::getCustomerClass, "劳务分包")
.eq(DCustomer::getServiceTeamLogo, "Y")));
} else {
//劳务队伍标志(Y/N)
String serviceTeamLogo = null;
if ("劳务分包".equals(customerClass)) {
serviceTeamLogo = "N";
}
if ("劳务分包队伍".equals(customerClass)) {
customerClass = "劳务分包";
serviceTeamLogo = "Y";
}
customerList = baseMapper.selectList(new LambdaQueryWrapper<DCustomer>()
.select(DCustomer::getCustomerName)
.eq(DCustomer::getRecommendOrgId, "F17305B4EA4444CBAB12892C7B99E475")
.eq(DCustomer::getCustomerClass, customerClass)
.eq(StringUtils.isNoneEmpty(serviceTeamLogo), DCustomer::getServiceTeamLogo, serviceTeamLogo));
}
customerList.forEach(item -> {
try {
Map<String, Object> map = opportunityRadarService.enterpriseByName("山东兴华建设集团有限公司");
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
cidList.add(companyId);
}
} catch (Exception e) {
//
}
});
return cidList;
}
@Override
public R riskChange(DCustomerDynamicRiskChangeVo riskChangeVo) {
Long userId = LoginHelper.getUserId();
......
......@@ -134,4 +134,54 @@ public class EnterpriseController {
return enterpriseService.financialData(vo);
}
/**
*@Description: 资质变更分页列表
*@Param:
*@return: com.dsk.common.core.page.TableDataInfo
*@Author: Dgm
*@date: 2024/5/17 15:06
*/
@PostMapping(value = "enterpriseCert/certChangePage")
public TableDataInfo certChangePage(@RequestBody @Valid EnterpriseCertBody vo) throws Exception {
return enterpriseService.certChangePage(vo);
}
/**
*@Description: 安许证列表
*@Param:
*@return: com.dsk.common.core.page.TableDataInfo
*@Author: Dgm
*@date: 2024/5/17 15:06
*/
@PostMapping(value = "enterpriseCert/liceList")
public R liceList(@RequestBody @Valid EnterpriseCertBody vo) throws Exception {
return enterpriseService.liceList(vo);
}
/**
*@Description: 备案网站列表
*@Param:
*@return: com.dsk.common.core.page.TableDataInfo
*@Author: Dgm
*@date: 2024/5/17 15:06
*/
@PostMapping(value = "enterpriseCert/recordWebSiteList")
public R recordWebSiteList(@RequestBody @Valid EnterpriseCertBody vo) throws Exception {
return enterpriseService.recordWebSiteList(vo);
}
/**
*@Description: 备案地列表
*@Param:
*@return: com.dsk.common.core.page.TableDataInfo
*@Author: Dgm
*@date: 2024/5/17 15:06
*/
@PostMapping(value = "enterpriseCert/recordAreaList")
public R recordAreaList(@RequestBody @Valid EnterpriseCertBody vo) throws Exception {
return enterpriseService.recordAreaList(vo);
}
}
package com.dsk.jsk.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseCertBody extends BasePage
{
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
public boolean isVaildCid() {
return 0 == cid;
}
}
package com.dsk.jsk.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author sxk
* @date 2024.05.11
* @time 15:51
*/
@Data
@AllArgsConstructor
public class QualificationVo {
/**
* 资质参数名
*/
private String qualificationParamName;
/**
* 资质中文名
*/
private String qualificationParamNameCn;
/**
* 资质数量
*/
private Long qualificationMount;
}
......@@ -7,9 +7,11 @@ import com.dsk.common.constant.CacheConstants;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.EncodeIdUtil;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.cscec.service.ICustomerInfoService;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.vo.QualificationVo;
import com.dsk.system.utils.DskOpenApiUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
......@@ -20,10 +22,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.time.Duration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @ClassName enterpriseService
......@@ -46,6 +45,49 @@ public class EnterpriseService {
@Autowired
private CompanyRelationTableV1Service relationTableV1Service;
//开放平台返回的企业资质资格接口字段
private static final Map<String, String> qualificationMap = new HashMap<>();
static {
qualificationMap.put("construction", "建筑业企业资质");
qualificationMap.put("engineeringDesign", "工程设计资质");
qualificationMap.put("engineeringInvestigation", "工程勘察资质");
qualificationMap.put("engineeringSupervision", "工程监理");
qualificationMap.put("costConsultation", "造价咨询企业资质");
qualificationMap.put("designConstruction", "设计施工一体化企业资质");
qualificationMap.put("biddingAgency", "招标代理机构资质");
qualificationMap.put("constructionLabor", "施工劳务资质");
qualificationMap.put("powerFacilityLicense", "承装(修、试)电力设施许可证");
qualificationMap.put("realEstateAppraisal", "房地产估价资质");
qualificationMap.put("cqHighwayMaintenance", "重庆公路养护资质");
qualificationMap.put("blastingUnit", "爆破从业单位资质");
qualificationMap.put("exhibitionEngineering", "展览工程");
qualificationMap.put("culturalRelicsProtection", "文物保护资质");
qualificationMap.put("geologicalDisasterControl", "地质灾害治理工程");
qualificationMap.put("securityEngineering", "安防工程资质");
qualificationMap.put("realEstateDevelopment", "房地产开发资质");
qualificationMap.put("engineeringConsultingUnit", "工程咨询资信单位资质");
qualificationMap.put("mapping", "测绘资质");
qualificationMap.put("urbanPlanning", "城乡规划编制资质");
qualificationMap.put("waterResourcesSurvey", "水文、水资源调查评价资质");
qualificationMap.put("systemIntegration", "信息系统集成及服务");
qualificationMap.put("fireFightingTechnology", "消防技术服务机构");
qualificationMap.put("waterInspection", "公路水运工程试验检测机构");
qualificationMap.put("transportationSafety", "交通运输企业安全生产标准化");
qualificationMap.put("waterSafety", "水利安全生产标准化企业");
qualificationMap.put("itss", "itss信息技术服务标准");
qualificationMap.put("powerLicense", "电力业务许可证");
qualificationMap.put("specialEquipment", "特种设备安装改造维修许可");
qualificationMap.put("placeOfFiling", "备案地");
qualificationMap.put("geology", "地质勘查资质");
qualificationMap.put("roadCuring", "公路养护从业资格");
qualificationMap.put("websiteOfFiling", "备案网站");
qualificationMap.put("museum", "博物馆资质");
qualificationMap.put("safeCert", "安许证");
qualificationMap.put("mediumLess", "缺人资质");
qualificationMap.put("certificateChange", "资质变更");
}
public R label(EnterpriseInfoLabelBody body) throws Exception {
List<Map<String, Object>> mapList = new ArrayList<>();
if (body.isVaildCid()) {
......@@ -60,7 +102,7 @@ public class EnterpriseService {
List<Map<String, Object>> data = (List<Map<String, Object>>) companyMap.get("data");
if (ObjectUtil.isNotEmpty(data)) {
for (Map<String, Object> labelsMap : data) {
String labelName = MapUtils.getString(labelsMap,"labelName", "");
String labelName = MapUtils.getString(labelsMap, "labelName", "");
if (labelName.equals("央企企业") || labelName.equals("国企") || labelName.equals("央企") ||
labelName.equals("央企子公司") || labelName.equals("国有企业") || labelName.equals("省属国企")) {
mapList.add(labelsMap);
......@@ -124,9 +166,39 @@ public class EnterpriseService {
return R.ok();
}
//处理资质资格
Map qualification = MapUtils.getMap(statisticMapData, "qualification");
ArrayList<QualificationVo> qualificationVoList = new ArrayList<>();
Set<Map.Entry<String, Long>> entries = qualification.entrySet();
for (Map.Entry<String, Long> entry : entries) {
String paramName = entry.getKey();
if (
//企业没有的资质不做展示
entry.getValue() == 0
//qualification字段表示资质资格数量,无需返回
|| paramName.contains("qualification")
|| paramName.contains("companyId")
//如果返回字段中包含V1版本,则跳过该字段取该字段的V1版本
//eg:xxx,xxxV1
|| qualification.containsKey(paramName + "V1")
|| qualification.containsKey(paramName + "V2")) {
continue;
}
//字段对应中文名
String paramNameCn = qualificationMap.get(paramName.contains("V1") ? paramName.replace("V1", "") : paramName.contains("V2") ? paramName.replace("V2", "") : paramName);
//给字段填充中文名
if (StringUtils.isNoneBlank(paramNameCn)) {
qualificationVoList.add(new QualificationVo(paramName, paramNameCn, entry.getValue()));
} else {
//映射不上的是接口文档中没写,只有拿着paramName找张毅问
qualificationVoList.add(new QualificationVo(paramName, null, entry.getValue()));
}
}
statisticMapData.put("newQualification", qualificationVoList);
//内部合作
Map<String,Object> cooperation = iCustomerInfoService.cooperationStatistic(body.getCompanyName());
statisticMapData.put("cooperation",cooperation);
Map<String, Object> cooperation = iCustomerInfoService.cooperationStatistic(body.getCompanyName());
statisticMapData.put("cooperation", cooperation);
Map performance = MapUtils.getMap(statisticMapData, "performance");
Map business = MapUtils.getMap(statisticMapData, "business");
......@@ -171,7 +243,7 @@ public class EnterpriseService {
TableDataInfo page3 = relationTableV1Service.page(v1Dto);
long total3 = page3.getTotal();
businessTransactionsMap.put("combine", total3);
if (total1+total2+total3 >0) {
if (total1 + total2 + total3 > 0) {
statisticMapData.put("businessTransactions", businessTransactionsMap);
} else {
statisticMapData.put("businessTransactions", null);
......@@ -455,4 +527,37 @@ public class EnterpriseService {
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo certChangePage(EnterpriseCertBody body) throws Exception {
if (body.isVaildCid()) {
return new TableDataInfo(new ArrayList<>(), 0);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCert/certChangePage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R liceList(EnterpriseCertBody body) throws Exception {
if (body.isVaildCid()) {
return R.ok();
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCert/liceList", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R recordWebSiteList(EnterpriseCertBody body) throws Exception {
if (body.isVaildCid()) {
return R.ok();
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCert/recordWebSiteList", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
public R recordAreaList(EnterpriseCertBody body) throws Exception {
if (body.isVaildCid()) {
return R.ok();
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseCert/recordAreaList", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
}
......@@ -342,17 +342,27 @@ public class MonitorServiceImpl implements MonitorService {
@Override
public R addDefaultCompany() {
//获取所有供应商企业名称
List<String> list = customerMapper.allSearchCompanyNameList();
List<Integer> idList = new ArrayList<>();
for (String companyName : list) {
//循环匹配 得到能关联上的企业id
Map<String, Object> map = opportunityRadarService.enterpriseByName(companyName);
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
idList.add(companyId);
//如果没有上一次的企业id数据则直接返回
if (RedisUtils.hasKey("monitorCompanyList")){
idList = RedisUtils.getCacheList("monitorCompanyList");
}else {
List<String> list = customerMapper.allSearchCompanyNameList();
for (String companyName : list) {
//循环匹配 得到能关联上的企业id
Map<String, Object> map = opportunityRadarService.enterpriseByName(companyName);
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
idList.add(companyId);
}
}
RedisUtils.setCacheList("monitorCompanyList",idList);
//设置过期时间两天
RedisUtils.expire("monitorCompanyList",172800);
}
PushMonitorCompanyAddVo addVo = new PushMonitorCompanyAddVo();
addVo.setSystemCode("ZJYJ");
addVo.setCid(idList);
......
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