Commit 6e138ab6 authored by danfuman's avatar danfuman

Merge branch 'dev20230707' of http://192.168.60.201/root/dsk-operate-sys into dev20230707

parents 48d8e18e f6bf0f5a
......@@ -14,8 +14,8 @@ import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.searchService.BusinessOpportunityRadarService;
import com.dsk.system.service.ICustomerService;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.ObjectUtils;
......@@ -39,8 +39,8 @@ public class CustomerController extends BaseController {
@Autowired
private ICustomerService baseService;
@Autowired
private BusinessOpportunityRadarService opportunityRadarService;
// @Autowired
// private BusinessOpportunityRadarService opportunityRadarService;
/**
* 查询客户列表
......@@ -68,7 +68,6 @@ public class CustomerController extends BaseController {
@PostMapping()
@RepeatSubmit
public AjaxResult add(@RequestBody Customer customer) {
dealWithcustomerData(customer);
return toAjax(baseService.add(customer));
}
......@@ -80,7 +79,6 @@ public class CustomerController extends BaseController {
@RepeatSubmit
public AjaxResult claim(@RequestBody Customer customer) {
if (ObjectUtils.isEmpty(customer.getUipId())) throw new BeanException("城投uipId不能为空");
dealWithcustomerData(customer);
boolean add = baseService.add(customer);
if (add) {
Map<String, Object> map = new HashMap<>();
......@@ -90,43 +88,6 @@ public class CustomerController extends BaseController {
return AjaxResult.error();
}
private void dealWithcustomerData(Customer customer) {
if (ObjectUtils.isEmpty(customer.getCompanyName())) throw new BeanException("企业名称不能为空");
if (ObjectUtils.isEmpty(customer.getCompanyId())) {
try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(customer.getCompanyName());
if (!ObjectUtils.isEmpty(map.get("data"))) {
customer.setCompanyId(MapUtil.getInt(BeanUtil.beanToMap(map.get("data")), "jskEid"));
if (ObjectUtils.isEmpty(customer.getLegalPerson())) {
customer.setLegalPerson(MapUtil.getStr(map, "legalPerson"));
}
if (ObjectUtils.isEmpty(customer.getRegisterCapital())) {
customer.setRegisterCapital(MapUtil.getStr(map, "registeredCapitalStr"));
}
if (ObjectUtils.isEmpty(customer.getProvinceId())) {
customer.setProvinceId(MapUtil.getInt(map, "provinceId"));
}
if (ObjectUtils.isEmpty(customer.getCityId())) {
customer.setCityId(MapUtil.getInt(map, "cityId"));
}
if (ObjectUtils.isEmpty(customer.getDistrictId())) {
customer.setDistrictId(MapUtil.getInt(map, "countyId"));
}
if (ObjectUtils.isEmpty(customer.getRegisterAddress())) {
customer.setRegisterAddress(MapUtil.getStr(map, "domicile"));
}
if (ObjectUtils.isEmpty(customer.getCreditCode())) {
customer.setCreditCode(MapUtil.getStr(map, "creditCode"));
}
}
} catch (Exception e) {
logger.debug("获取企业id错误!error:{}", e.getMessage());
}
}
}
/**
* 编辑客户
*/
......@@ -167,21 +128,21 @@ public class CustomerController extends BaseController {
continue;
}
try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(customer.getCompanyName());
if (ObjectUtils.isEmpty(map)) {
throw new HttpException("远程调用匹配接口失败!");
}
Map<String, Object> obj = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(obj)) {
customer.setCompanyId(MapUtil.getInt(obj, "jskEid"));
customer.setLegalPerson(MapUtil.getStr(obj, "legalPerson"));
customer.setRegisterCapital(MapUtil.getStr(obj, "registeredCapitalStr"));
customer.setProvinceId(MapUtil.getInt(obj, "provinceId"));
customer.setCityId(MapUtil.getInt(obj, "cityId"));
customer.setDistrictId(MapUtil.getInt(obj, "countyId"));
customer.setRegisterAddress(MapUtil.getStr(obj, "domicile"));
customer.setCreditCode(MapUtil.getStr(obj, "creditCode"));
}
// Map<String, Object> map = opportunityRadarService.enterpriseByName(customer.getCompanyName());
// if (ObjectUtils.isEmpty(map)) {
// throw new HttpException("远程调用匹配接口失败!");
// }
// Map<String, Object> obj = BeanUtil.beanToMap(map.get("data"));
// if (!ObjectUtils.isEmpty(obj)) {
// customer.setCompanyId(MapUtil.getInt(obj, "jskEid"));
// customer.setLegalPerson(MapUtil.getStr(obj, "legalPerson"));
// customer.setRegisterCapital(MapUtil.getStr(obj, "registeredCapitalStr"));
// customer.setProvinceId(MapUtil.getInt(obj, "provinceId"));
// customer.setCityId(MapUtil.getInt(obj, "cityId"));
// customer.setDistrictId(MapUtil.getInt(obj, "countyId"));
// customer.setRegisterAddress(MapUtil.getStr(obj, "domicile"));
// customer.setCreditCode(MapUtil.getStr(obj, "creditCode"));
// }
baseService.add(customer);
successCount++;
} catch (Exception e) {
......
......@@ -3,9 +3,7 @@ package com.dsk.web.controller.search.controller;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.dtos.Page;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import com.dsk.web.controller.search.service.MarketAnalysisService;
import com.dsk.system.searchService.BusinessOpportunityRadarService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......
......@@ -4,7 +4,7 @@ import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import com.dsk.system.searchService.BusinessOpportunityRadarService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
......
......@@ -4,8 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.web.controller.search.service.MarketAnalysisService;
import com.dsk.system.searchService.MarketAnalysisService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......
package com.dsk.web.controller.search.service;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
/**
* @Author liujie
* @ClassName MarketAnalysisService
* @Date 2023/5/15 16:39
**/
public interface BusinessOpportunityRadarService {
AjaxResult jskBidNewsPage(JSONObject object);
AjaxResult jskBidTenderPage(JSONObject object);
AjaxResult jskBidPage(JSONObject object);
AjaxResult landMarketPage( JSONObject object);
AjaxResult establishmentPage(JSONObject object);
AjaxResult enterpriseIndex(JSONObject object);
AjaxResult enterpriseByName(String keyword);
AjaxResult enterprisePage(JSONObject object);
AjaxResult bondProjectPage( JSONObject object);
AjaxResult jskBidPlanPage( JSONObject object);
AjaxResult getCapitalSourceSelect();
AjaxResult keywordList();
AjaxResult bidSourceList( JSONObject object);
}
//package com.dsk.web.controller.search.service;
//
//import com.alibaba.fastjson2.JSONObject;
//import com.dsk.common.core.domain.AjaxResult;
//import com.dsk.common.dtos.ComposeQueryDto;
//
///**
// * @Author liujie
// * @ClassName MarketAnalysisService
// * @Date 2023/5/15 16:39
// **/
//public interface BusinessOpportunityRadarService {
//
//
// AjaxResult jskBidNewsPage(JSONObject object);
//
// AjaxResult jskBidTenderPage(JSONObject object);
//
// AjaxResult jskBidPage(JSONObject object);
//
// AjaxResult landMarketPage( JSONObject object);
//
// AjaxResult establishmentPage(JSONObject object);
//
// AjaxResult enterpriseIndex(JSONObject object);
//
// AjaxResult enterpriseByName(String keyword);
//
// AjaxResult enterprisePage(JSONObject object);
//
// AjaxResult bondProjectPage( JSONObject object);
//
// AjaxResult jskBidPlanPage( JSONObject object);
//
// AjaxResult getCapitalSourceSelect();
//
// AjaxResult keywordList();
//
// AjaxResult bidSourceList( JSONObject object);
//
//}
package com.dsk.web.controller.search.service;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
/**
* @Author liujie
* @ClassName MarketAnalysisService
* @Date 2023/5/15 16:39
**/
public interface MarketAnalysisService {
AjaxResult areaGroupByProvince();
AjaxResult certGroupByMajorAndLevel();
AjaxResult certGroupByMajorProvinceLevel();
AjaxResult countGroupByProvince(JSONObject object);
AjaxResult countGroupByMonth(JSONObject object);
AjaxResult bidMoneyGroupByProjectType(JSONObject object);
AjaxResult bidGroupCountByProjectType(JSONObject object);
}
//package com.dsk.web.controller.search.service;
//
//import com.alibaba.fastjson2.JSONObject;
//import com.dsk.common.core.domain.AjaxResult;
//import com.dsk.common.dtos.ComposeQueryDto;
//
///**
// * @Author liujie
// * @ClassName MarketAnalysisService
// * @Date 2023/5/15 16:39
// **/
//public interface MarketAnalysisService {
//
// AjaxResult areaGroupByProvince();
//
// AjaxResult certGroupByMajorAndLevel();
//
// AjaxResult certGroupByMajorProvinceLevel();
//
// AjaxResult countGroupByProvince(JSONObject object);
//
// AjaxResult countGroupByMonth(JSONObject object);
//
// AjaxResult bidMoneyGroupByProjectType(JSONObject object);
//
// AjaxResult bidGroupCountByProjectType(JSONObject object);
//}
package com.dsk.web.controller.search.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
import com.dsk.web.controller.search.service.MarketAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityRadarService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult jskBidNewsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult jskBidTenderPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult establishmentPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult jskBidPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult landMarketPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterpriseIndex(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterprisePage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult enterpriseByName(String keyword){
Map<String,Object> params = new HashMap<>();
params.put("keyword",keyword);
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/findByName", params);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bondProjectPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult jskBidPlanPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult getCapitalSourceSelect() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult keywordList() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/keywordList", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bidSourceList(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
//package com.dsk.web.controller.search.service.impl;
//
//import cn.hutool.core.bean.BeanUtil;
//import com.alibaba.fastjson2.JSONObject;
//import com.dsk.common.core.domain.AjaxResult;
//import com.dsk.common.dtos.ComposeQueryDto;
//import com.dsk.common.utils.DskOpenApiUtil;
//import com.dsk.web.controller.search.service.BusinessOpportunityRadarService;
//import com.dsk.web.controller.search.service.MarketAnalysisService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @Author liujie
// * @ClassName MarketAnalysisServiceImpl
// * @Date 2023/5/15 16:40
// **/
//@Service
//public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityRadarService {
//
// @Autowired
// private DskOpenApiUtil dskOpenApiUtil;
//
//
// @Override
// public AjaxResult jskBidNewsPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
//
// @Override
// public AjaxResult jskBidTenderPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult establishmentPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult jskBidPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page",object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult landMarketPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult enterpriseIndex(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult enterprisePage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
//
// @Override
// public AjaxResult enterpriseByName(String keyword){
// Map<String,Object> params = new HashMap<>();
// params.put("keyword",keyword);
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/findByName", params);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult bondProjectPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult jskBidPlanPage(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page",object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult getCapitalSourceSelect() {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult keywordList() {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/keywordList", null);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult bidSourceList(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source",object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//}
package com.dsk.web.controller.search.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.http.HttpUtils;
import com.dsk.web.controller.search.service.MarketAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class MarketAnalysisServiceImpl implements MarketAnalysisService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult areaGroupByProvince() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/areaGroupByProvince", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult certGroupByMajorAndLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorAndLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult certGroupByMajorProvinceLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorProvinceLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bidMoneyGroupByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidMoneyGroupByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult bidGroupCountByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidGroupCountByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult countGroupByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult countGroupByMonth(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByMonth", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
//package com.dsk.web.controller.search.service.impl;
//
//import cn.hutool.core.bean.BeanUtil;
//import com.alibaba.fastjson2.JSONObject;
//import com.dsk.common.core.domain.AjaxResult;
//import com.dsk.common.core.domain.R;
//import com.dsk.common.dtos.ComposeQueryDto;
//import com.dsk.common.utils.DskOpenApiUtil;
//import com.dsk.common.utils.http.HttpUtils;
//import com.dsk.web.controller.search.service.MarketAnalysisService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.Map;
//
///**
// * @Author liujie
// * @ClassName MarketAnalysisServiceImpl
// * @Date 2023/5/15 16:40
// **/
//@Service
//public class MarketAnalysisServiceImpl implements MarketAnalysisService {
//
// @Autowired
// private DskOpenApiUtil dskOpenApiUtil;
// @Override
// public AjaxResult areaGroupByProvince() {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/areaGroupByProvince", null);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult certGroupByMajorAndLevel() {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorAndLevel", null);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
//
// @Override
// public AjaxResult certGroupByMajorProvinceLevel() {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorProvinceLevel", null);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
//
// @Override
// public AjaxResult bidMoneyGroupByProjectType(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidMoneyGroupByProjectType", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult bidGroupCountByProjectType(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidGroupCountByProjectType", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult countGroupByProvince(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByProvince", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//
// @Override
// public AjaxResult countGroupByMonth(JSONObject object) {
// Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByMonth", object);
// return BeanUtil.toBean(map, AjaxResult.class);
// }
//}
......@@ -194,11 +194,11 @@ xss:
dsk:
open:
endPoint: 120.27.13.145:8865
accessKeyId: aec7b3ff2y2q8x6t49a7e2c463ce21912
accessKeySecret: ee8a53c7ea04eb3ac311406c8f56f95b
protocol: http
# endPoint: openapi.jiansheku.com
# endPoint: 120.27.13.145:8865
# accessKeyId: aec7b3ff2y2q8x6t49a7e2c463ce21912
# accessKeySecret: ee8a53c7ea04eb3ac311406c8f56f95b
# protocol: https
# protocol: http
endPoint: openapi.jiansheku.com
accessKeyId: aec7b3ff2y2q8x6t49a7e2c463ce21912
accessKeySecret: ee8a53c7ea04eb3ac311406c8f56f95b
protocol: https
spring:
profiles:
active: pre
active: test
# MyBatisPlus配置
# https://baomidou.com/config/
......
......@@ -164,6 +164,28 @@ public class BusinessInfo extends BaseEntity
/** 主管单位联系电话 */
@Excel(name = "主管单位联系电话")
private String supervisorPhone;
/** 建设单位城投id */
@Excel(name = "建设单位城投id")
private String constructionUnitUipId;
/** 建设单位建设库id */
@Excel(name = "建设单位建设库id")
private Integer constructionUnitCid;
public String getConstructionUnitUipId() {
return constructionUnitUipId;
}
public void setConstructionUnitUipId(String constructionUnitUipId) {
this.constructionUnitUipId = constructionUnitUipId;
}
public Integer getConstructionUnitCid() {
return constructionUnitCid;
}
public void setConstructionUnitCid(Integer constructionUnitCid) {
this.constructionUnitCid = constructionUnitCid;
}
public String getConstructionUnit() {
return constructionUnit;
......@@ -514,6 +536,8 @@ public class BusinessInfo extends BaseEntity
.append("supervisorUnit", getSupervisorUnit())
.append("supervisorPrincipal", getSupervisorPrincipal())
.append("supervisorPhone", getSupervisorPhone())
.append("constructionUnitUipId", getConstructionUnitUipId())
.append("constructionUnitCid", getConstructionUnitCid())
.toString();
}
}
......@@ -2,14 +2,11 @@ package com.dsk.common.core.domain.entity;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import com.dsk.common.utils.CheckUtils;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.Pattern;
/**
* 项目关联单位对象 business_relate_company
*
......@@ -29,10 +26,14 @@ public class BusinessRelateCompany extends BaseEntity
@Excel(name = "项目id")
private Integer businessId;
/** 单位id */
@Excel(name = "单位id")
/** 单位建设库id */
@Excel(name = "单位建设库id")
private Integer companyId;
/** 单位城投id */
@Excel(name = "单位城投id")
private String companyUipId;
/** 单位名称 */
@Excel(name = "单位名称")
private String companyName;
......@@ -71,6 +72,7 @@ public class BusinessRelateCompany extends BaseEntity
.append("updateTime", getUpdateTime())
.append("depth", getDepth())
.append("companyType", getCompanyType())
.append("companyUipId", getCompanyUipId())
.toString();
}
......
package com.dsk.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
......@@ -11,11 +17,16 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @author lxl
* @date 2023-05-17
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("business_user")
public class BusinessUser extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
@TableId(value = "id",type = IdType.INPUT)
private Integer id;
/** 项目id(business_info表id) */
......@@ -24,76 +35,17 @@ public class BusinessUser extends BaseEntity
/** 部门id */
@Excel(name = "部门id")
private Integer deptId;
private Long deptId;
/** 用户id */
@Excel(name = "用户id")
private Integer userId;
private Long userId;
/** 是否创建人(1 是,0 否) */
@Excel(name = "是否创建人(1 是,0 否)")
private Integer isFounder;
public void setId(Integer id)
{
this.id = id;
}
public Integer getId()
{
return id;
}
public void setBusinessId(Integer businessId)
{
this.businessId = businessId;
}
public Integer getBusinessId()
{
return businessId;
}
public void setDeptId(Integer deptId)
{
this.deptId = deptId;
}
public Integer getDeptId()
{
return deptId;
}
public void setUserId(Integer userId)
{
this.userId = userId;
}
public Integer getUserId()
{
return userId;
}
public void setIsFounder(Integer isFounder)
{
this.isFounder = isFounder;
}
public Integer getIsFounder()
{
return isFounder;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("businessId", getBusinessId())
.append("deptId",getDeptId() )
.append("userId", getUserId())
.append("isFounder", getIsFounder())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.toString();
}
public BusinessUser(Integer businessId, Integer deptId, Integer userId, Integer isFounder) {
public BusinessUser(Integer businessId, Long deptId, Long userId, Integer isFounder) {
this.businessId = businessId;
this.deptId = deptId;
this.userId = userId;
......
......@@ -21,6 +21,8 @@ public class EnterpriseInvestmentBody extends BasePage {
private Integer hasBid;
private double stockPercentageMin;
private double stockPercentageMax;
//搜索-企业名称
private String keyword;
public boolean isVaildCid() {
return 0 == cid;
......
......@@ -158,6 +158,15 @@ export function addXGQY(param) {
})
}
//编辑相关企业
export function saveXGQY(param) {
return request({
url: '/business/company/edit',
method: 'POST',
data:param
})
}
//删除相关企业
export function delXGQY(param) {
return request({
......
......@@ -524,15 +524,15 @@ ul, li {
line-height: 50px;
height: 50px;
}
.el-tabs__item.is-disabled {
color: #C0C4CC;
cursor: not-allowed;
}
.is-active{
color: #0081FF;
font-weight: bold;
}
}
.el-tabs__item.is-disabled {
color: #C0C4CC;
cursor: not-allowed;
}
//按钮
.btn{
margin-left: 8px;
......
......@@ -33,7 +33,7 @@
box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.12);
border-radius: 2px;
position: absolute;
z-index: 3;
z-index: 20;
text-align: center;
.words{
padding: 24px 0;
......@@ -500,6 +500,12 @@
width: 80px;
}
}
.row.i{
.el-form-item__label{
line-height: 18px;
text-align: left;
}
}
}
.popform.i{
.el-input{
......@@ -907,6 +913,9 @@
.xz{
opacity: 0.8;
}
.xg{
//color: #FF3C3C;
}
.sc{
color: #FF3C3C;
}
......
......@@ -104,7 +104,7 @@
label="注册资本金(万元)"
width="140">
<template slot-scope="scope">
{{scope.row.registerCapital || '--'}}
<span v-if="scope.row.registerCapital && scope.row.registerCapital>0">{{scope.row.registerCapital}}</span><span v-else>--</span>
</template>
</el-table-column>
<el-table-column
......
......@@ -93,7 +93,7 @@
label="注册资本金(万元)"
width="140">
<template slot-scope="scope">
{{scope.row.registerCapital || '--'}}
<span v-if="scope.row.registerCapital && scope.row.registerCapital>0">{{scope.row.registerCapital}}</span><span v-else>--</span>
</template>
</el-table-column>
<el-table-column
......
......@@ -33,7 +33,7 @@
</div>
</div>
<div class="flex">
<el-card class="box-card noborder left" style="position: relative">
<el-card class="box-card noborder left" style="position: relative;padding-bottom: 0">
<div class="cardtitles">客户级别</div>
<div class="chartsum">
<div class="sum">23家</div>
......@@ -67,7 +67,7 @@
</el-card>
<el-card class="box-card noborder right">
<el-card class="box-card noborder right" style="padding-bottom: 0">
<div class="cardtitles">客户跟进动态
<div class="labels">
<div :class="{'on':datatype==1}" @click="getDT(1)">周</div>
......@@ -259,11 +259,11 @@
{
name: '',
type: 'bar',
barWidth: '12px',
barWidth: '18px',
data: [100, 152, 200, 334, 390, 330, 220,256,178],
itemStyle:{
normal: {
barBorderRadius: [4, 4, 0, 0],
barBorderRadius: [9, 9, 0, 0],
color: '#165DFF'
}
}
......@@ -316,11 +316,11 @@
{
name: '',
type: 'bar',
barWidth: '12px',
barWidth: '18px',
data: [110, 112, 190, 234, 310, 350, 220,276,198],
itemStyle:{
normal:{
barBorderRadius:[4,4,0,0],
barBorderRadius:[9,9,0,0],
color:'#14C9C9'
},
}
......@@ -367,7 +367,7 @@
left:'8%',
top:'8%',
right:'5%',
bottom:'10%',
bottom:'42px',
},
tooltip:{
axisPointer:{ //悬浮于圆点展示标签
......
......@@ -107,7 +107,7 @@ export default {
{title: '商务信息', pathName: 'business'},
{title: '招标偏好', pathName: 'preference'},
{title: '合作情况', pathName: 'cooperate'},
{title: '决策链条', pathName: 'decisionMaking'},
{title: '联系人', pathName: 'decisionMaking'},
{title: '跟进记录', pathName: 'gjjl'}
],
defaultRoute: [],
......
......@@ -266,6 +266,17 @@ export default {
this.ifEmpty = true
}
this.tableData = res.rows
this.tableData.forEach(item=>{
let investmentAmount = item.investmentAmount
if(investmentAmount){
investmentAmount = parseFloat(investmentAmount)
if(investmentAmount<=0){
item.investmentAmount = null
}
}else{
item.investmentAmount = null
}
})
this.tableDataTotal = res.total
this.tableLoading = false
}
......
......@@ -33,7 +33,7 @@
<!-- 弹窗添加联系人 -->
<el-dialog
class="popups1"
class="popups"
:visible.sync="dialogVisible"
:before-close="cancel"
width="464px">
......@@ -41,25 +41,28 @@
<img src="@/assets/images/economies/icon.png">
<span>{{ companyInfo && companyInfo.companyName || customerInfo.companyName }}</span>
</div>
<el-form :model="addRorm" :rules="addRules" ref="addRorm" class="popform" label-width="90px">
<el-form-item label="姓名:" prop="name">
<el-form :model="addRorm" :rules="addRules" ref="addRorm" class="popform" label-width="137px">
<el-form-item label="联系人姓名:" prop="name" class="row">
<el-input v-model="addRorm.name" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="角色:" prop="role">
<el-form-item label="联系人性别:" class="row">
<el-radio-group v-model="addRorm.sex">
<el-radio label=1></el-radio>
<el-radio label=0></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="联系人角色:" prop="role" class="row">
<el-input v-model="addRorm.role" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="职位:" prop="workUnit">
<el-input v-model="addRorm.workUnit" placeholder="请输入"></el-input>
<el-form-item label="关联企业:" class="row">
<el-input type="text" v-model="addRorm.office" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="公司/机关:" prop="position">
<el-form-item label="联系人职位:" prop="workUnit" class="row">
<el-input v-model="addRorm.position" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="联系方式:" prop="contactInformation">
<el-form-item label="联系方式:" prop="contactInformation" class="row">
<el-input v-model="addRorm.contactInformation" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input v-model="addRorm.remark" placeholder="请输入"></el-input>
</el-form-item>
<div class="popbot">
<div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32" @click="add">保存</div>
......@@ -93,20 +96,21 @@ export default {
forData: [
{label: '姓名', prop: 'name', width: '124'},
{label: '角色', prop: 'role', width: '110'},
{label: '公司/机关', prop: 'position', width: '268'},
{label: '职位', prop: 'workUnit', width: '110'},
// {label: '公司/机关', prop: 'position', width: '268'},
{label: '职位', prop: 'position', width: '110'},
{label: '联系方式', prop: 'contactInformation', width: '105'},
{label: '内部维护人', prop: 'updateBy', width: '100'},
{label: '备注', prop: 'remark'},
{label: '来源', prop: 'remark'},
],
addRorm: {
customerId:this.customerIds,
name:'',
role:'',
workUnit:'',
sex:"1",
position:'',
// position:'',
contactInformation:'',
remark:'',
// remark:'',
},
addRules:{
name: [
......@@ -151,7 +155,9 @@ export default {
add(){
this.$refs.addRorm.validate((valid) => {
if (valid) {
addChain(this.addRorm).then((res) => {
let param = JSON.parse(JSON.stringify(this.addRorm))
param.sex = parseInt(param.sex)
addChain(param).then((res) => {
if(res.data){
this.$message({
message: '新增成功',
......@@ -263,59 +269,59 @@ export default {
margin-top: 10px;
}
// 弹窗
.popups1{
.poptitle {
line-height: 48px;
border-bottom: 1px solid #E1E1E1;
height: 48px;
position: absolute;
top: 0;
left: 0;
width: 100%;
img {
width: 17px;
margin: 16px;
float: left;
}
span {
font-weight: bold;
font-size: 16px;
color: #232323;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
width: 385px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
::v-deep .el-dialog__body{
padding: 24px 24px 18px;
}
.popform {
padding-top: 14px;
::v-deep .el-form-item__label{
padding:0;
}
.row {
padding-bottom: 16px;
.left {
width: 137px;
display: inline-block;
text-align: right;
opacity: 0.8;
}
::v-deep .el-input {
display: inline-block;
width: 240px;
}
}
.popbot {
text-align: right;
padding-top: 8px;
}
}
}
/*.popups1{*/
/*.poptitle {*/
/*line-height: 48px;*/
/*border-bottom: 1px solid #E1E1E1;*/
/*height: 48px;*/
/*position: absolute;*/
/*top: 0;*/
/*left: 0;*/
/*width: 100%;*/
/*img {*/
/*width: 17px;*/
/*margin: 16px;*/
/*float: left;*/
/*}*/
/*span {*/
/*font-weight: bold;*/
/*font-size: 16px;*/
/*color: #232323;*/
/*font-family: Microsoft YaHei-Bold, Microsoft YaHei;*/
/*width: 385px;*/
/*display: block;*/
/*overflow: hidden;*/
/*white-space: nowrap;*/
/*text-overflow: ellipsis;*/
/*}*/
/*}*/
/*::v-deep .el-dialog__body{*/
/*padding: 24px 24px 18px;*/
/*}*/
/*.popform {*/
/*padding-top: 14px;*/
/*::v-deep .el-form-item__label{*/
/*padding:0;*/
/*}*/
/*.row {*/
/*padding-bottom: 16px;*/
/*.left {*/
/*width: 137px;*/
/*display: inline-block;*/
/*text-align: right;*/
/*opacity: 0.8;*/
/*}*/
/*::v-deep .el-input {*/
/*display: inline-block;*/
/*width: 240px;*/
/*}*/
/*}*/
/*.popbot {*/
/*text-align: right;*/
/*padding-top: 8px;*/
/*}*/
/*}*/
/*}*/
}
::v-deep .el-table__fixed::before, ::v-deep .el-table__fixed-right::before{
background-color:unset;
......
......@@ -61,6 +61,7 @@ export default {
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220},
{ type: 4, fieldName: 'isProjcet', value: '', placeholder: '是否为民间推介项目', options: []},
],
//列表
tableLoading:false,
......
......@@ -2,7 +2,7 @@
<div class="app-container detail-container">
<el-tabs v-model="activeName" @tab-click="handleClick" class="detail-tab">
<el-tab-pane label="工商信息" name="first"></el-tab-pane>
<el-tab-pane label="工商变更" name="second"></el-tab-pane>
<el-tab-pane label="工商变更" :disabled="tableDataTotal>0" name="second"></el-tab-pane>
</el-tabs>
......@@ -91,11 +91,13 @@ export default {
],
//列表
tableLoading:false,
tableData:[]
tableData:[],
tableDataTotal:0
}
},
created() {
this.handleQuery()
this.handleQuery();
this.handleQuery1();
},
methods: {
handleClick(){
......@@ -103,13 +105,20 @@ export default {
},
async handleQuery() {
this.tableLoading = true
let param = this.activeName == 'first' ? this.baseParams : this.queryParams
let res = this.activeName == 'first' ? await icInfo(param) : await changeInfo(param)
let param = this.baseParams;
let res = await icInfo(param);
this.tableLoading = false
if(res.code==200){
this.activeName == 'first' ? this.forInfo = res.data : this.tableData = res.rows
this.forInfo = res.data
}
},
async handleQuery1() {
let param = this.queryParams
let res = await changeInfo(param)
if(res.code==200){
this.tableData = res.rows;
this.tableDataTotal = res.total
}
this.activeName == 'first' ? '' : this.tableDataTotal = res.total
},
showRegion(region){
if(region) {
......
......@@ -3,7 +3,7 @@
<div class="common-title">关系企业</div>
<el-tabs v-model="activeName" @tab-click="handleClick" class="tabpane selfTab">
<el-tab-pane label="股东" name="first"></el-tab-pane>
<el-tab-pane label="对外投资" name="second"></el-tab-pane>
<el-tab-pane label="对外投资" :disabled="shipTotal<1" name="second"></el-tab-pane>
<el-tab-pane label="分支机构" :disabled="affiliatesTotal<1" name="third"></el-tab-pane>
</el-tabs>
<div class="table-item">
......
......@@ -8,7 +8,7 @@
/>
<el-tabs v-model="activeName" @tab-click="handleClick" class="detail-tab">
<el-tab-pane label="股东信息" name="first"></el-tab-pane>
<el-tab-pane label="历史股东" name="second"></el-tab-pane>
<el-tab-pane label="历史股东" :disabled="disabled" name="second"></el-tab-pane>
</el-tabs>
<tables
......@@ -65,11 +65,13 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
disabled:false,
labelArr:['失信联合惩戒企业','严重行政处罚','司法纠纷','注销', '注销企业'],
}
},
created() {
this.handleQuery()
this.handleQuery();
this.handleQuery1();
},
methods: {
handleClick(){
......@@ -85,6 +87,17 @@ export default {
this.tableData = res.rows
}
this.tableDataTotal = res.total
},
async handleQuery1(params) {
let param = params?params:this.queryParams
param.isHistory = 1
let res = await bestStockPage(param)
this.tableLoading = false
if(res.code==200){
if(res.total<1){
this.disabled = true
}
}
}
}
}
......
......@@ -82,7 +82,8 @@ export default {
{name:'不到5%',value:'0~0.05'}
],
width: 130
}
},
{ type: 3, fieldName: 'investName', value: '', placeholder: '输入企业名称查询'},
],
//列表
tableLoading:false,
......
......@@ -253,7 +253,6 @@ export default {
weekdata1.length = time
weekdata2.length = time
weekdata3.length = time
console.log(time)
for(var i=0;i<7;i++){
if(i > time){
weekdata1.push('')
......@@ -304,8 +303,6 @@ export default {
default:
break;
}
console.log(datas)
console.log(labels)
this.initDT(datas,labels)
},
resizeEcharts (){
......@@ -350,8 +347,8 @@ export default {
// trigger: 'axis'
},
legend: {
right: '20px',
top:"30px",
right: '155px',
top:"2px",
data: ['成交金额', '储备项目', '跟进动态'],
itemHeight: 8, // 修改icon图形大小
itemGap: 20
......
......@@ -12,7 +12,10 @@
</div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="项目名称:" class="row" prop="projectName">
<el-input type="text" placeholder="请输入" v-model="queryParam.projectName"></el-input>
<el-input type="text" placeholder="请输入" v-model="queryParam.projectName" @input="getProject"></el-input>
<div class="resultlist" v-if="proList.length>0" id="box1">
<div v-for="(item,index) in proList" @click="selProject(item)"><span v-html="item"></span></div>
</div>
</el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany"></el-input>
......@@ -56,6 +59,7 @@
<script>
import {getEnterprise,getDictType,} from '@/api/main'
import {addProject} from '@/api/project/project'
import {queryProject} from '@/api/detail/party-a/cooperate'
export default {
name: 'addProject',
data(){
......@@ -90,6 +94,7 @@
projectStage:[],//项目阶段
projectType:[],//项目类型
projectCategory:[],//项目类别
proList:[],//项目列表
}
},
mounted(){
......@@ -119,6 +124,12 @@
this.showlist = false
}
}
var two = document.getElementById("box1");
if(two){
if(!two.contains(event.target)){
this.proList = []
}
}
},
//获取建设库客户
getCompany(value){
......@@ -139,11 +150,31 @@
})
}
},
//获取项目名称
getProject(value){
if (value.length>=2){
let param = {
projectName:value,
}
queryProject(JSON.stringify(param)).then(result=>{
if(result.code != 200){
this.proList = []
return false
}
this.proList = result.data
})
}
},
selCompany(item){
this.queryParam.companyId = item.jskEid
this.queryParam.ownerCompany = item.name.replace(/<[^>]+>/g, '')
this.showlist = false
},
selProject(item){
// this.queryParam.companyId = item.jskEid
// this.queryParam.ownerCompany = item.name.replace(/<[^>]+>/g, '')
this.proList = []
},
//添加客户
submitForm(formName) {
this.queryParam.userId = this.$store.state.user.userId
......
......@@ -64,7 +64,7 @@
</div>
</div>
<div class="con i">
<span>建设单位 :</span>
<span>业主单位 :</span>
<div class="inputxt" id="inputxt3" :style="{width:rig1}">
<div class="flex" v-if="nowedit == 3 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input>
......@@ -93,7 +93,7 @@
</div>
</div>
<div class="con i">
<span>建设单位负责人 :</span>
<span>业主单位负责人 :</span>
<div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input>
......@@ -121,7 +121,7 @@
</div>
</div>
<div class="con i">
<span>建设单位联系电话 :</span>
<span>业主单位联系电话 :</span>
<div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7 && isDisabled == false">
<el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input>
......
......@@ -129,7 +129,7 @@
<span>项目类型:</span>
<span>{{item.projectType}}</span>
</div>
<div class="det-con" v-if="item.investmentAmount">
<div class="det-con" v-if="item.investmentAmount&&item.investmentAmount>0">
<span>投资估算(万元):</span>
<span>{{item.investmentAmount}}</span>
</div>
......@@ -139,7 +139,7 @@
</div>
<div class="det-con" v-if="item.ownerCompany ">
<span>业主单位:</span>
<span class="wordprimary">{{item.ownerCompany}}</span>
<span class="wordprimary" @click="toEnterprise(item)">{{item.ownerCompany}}</span>
</div>
</div>
<el-divider v-if="index != datalist.length-1"></el-divider>
......@@ -185,6 +185,7 @@
import addproject from './component/addProject'
import batchimport from './component/batchImport'
import skeleton from './component/skeleton'
import {encodeStr} from "@/assets/js/common.js"
export default {
name: 'ProjectList',
components:{addproject,batchimport,skeleton},
......@@ -387,6 +388,13 @@ export default {
toDetail(id,tag){
this.$router.push({ path: '/project/projectList/detail', query: {id:id,tag:tag} });
},
toEnterprise(item){
if(item.ownerCompanyUipId){
this.$router.push({ path: '/enterprise/'+this.encodeStr(item.ownerCompanyUipId)});
}else{
this.$router.push({ path: '/company/'+this.encodeStr(item.ownerCompanyCid)});
}
},
handleClick(){
this.reset()
},
......
......@@ -18,7 +18,7 @@ public class BusinessAddDto {
/**
* 用户id
*/
private Integer userId;
private Long userId;
/**
* 项目类型
......
......@@ -48,6 +48,16 @@ public class BusinessListVo {
*/
private String ownerCompany;
/**
* 业主单位城投id
*/
private String ownerCompanyUipId;
/**
* 业主单位建设库id
*/
private Integer ownerCompanyCid;
/**
* 最后跟进时间
*/
......
......@@ -145,9 +145,35 @@ public class EnterpriseService {
}
public TableDataInfo investment(EnterpriseInvestmentBody body) throws Exception {
if (body.isVaildCid()) return new TableDataInfo(new ArrayList<>(), 0);
if (body.isVaildCid()) {
return new TableDataInfo(new ArrayList<>(), 0);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
Integer code = MapUtils.getInteger(map, "code", 300);
if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException();
}
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isEmpty(list)) {
return new TableDataInfo(list, 0);
}
List<Object> newList = new ArrayList<>(20);
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
String businessStatus = MapUtils.getString(companyMap, "businessStatus");
if (!"注销".equals(businessStatus)) {
newList.add(companyMap);
}
}
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
String businessStatus = MapUtils.getString(companyMap, "businessStatus");
if ("注销".equals(businessStatus)) {
newList.add(companyMap);
}
}
return new TableDataInfo(newList, MapUtils.getInteger(data, "totalCount", 0));
}
public TableDataInfo affiliates(EnterpriseAffiliatesBody body) throws Exception {
......
......@@ -14,7 +14,7 @@ import java.util.List;
/**
* 项目详情Mapper接口
*
*
* @author lxl
* @date 2023-05-17
*/
......@@ -23,7 +23,7 @@ public interface BusinessInfoMapper extends BaseMapper<BusinessInfo>
{
/**
* 查询项目详情
*
*
* @param id 项目详情主键
* @return 项目详情
*/
......@@ -45,7 +45,7 @@ public interface BusinessInfoMapper extends BaseMapper<BusinessInfo>
/**
* 查询项目详情列表
*
*
* @param dto 项目详情
* @return 项目详情集合
*/
......@@ -53,7 +53,7 @@ public interface BusinessInfoMapper extends BaseMapper<BusinessInfo>
/**
* 新增项目详情
*
*
* @param businessInfo 项目详情
* @return 结果
*/
......@@ -96,7 +96,7 @@ public interface BusinessInfoMapper extends BaseMapper<BusinessInfo>
* @param userId
* @return
*/
int isRepetitionProjectName(@Param("projectName") String projectName,@Param("userId") Integer userId);
int isRepetitionProjectName(@Param("projectName") String projectName,@Param("userId") Long userId);
int selectCountByStatusAndCustomerId(@Param("status") Integer status,@Param("customerId") String customerId);
......
package com.dsk.system.searchService;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class BusinessOpportunityRadarService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public AjaxResult jskBidNewsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidTenderPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidTender/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult establishmentPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/establishment/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult landMarketPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/landMarket/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterpriseIndex(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/index", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterprisePage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult enterpriseByName(String keyword) {
Map<String, Object> params = new HashMap<>();
params.put("keyword", keyword);
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/findByName", params);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bondProjectPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/bondProject/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult jskBidPlanPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult getCapitalSourceSelect() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult keywordList() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/keywordList", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidSourceList(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/source", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
package com.dsk.system.searchService;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @Author liujie
* @ClassName MarketAnalysisServiceImpl
* @Date 2023/5/15 16:40
**/
@Service
public class MarketAnalysisService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public AjaxResult areaGroupByProvince() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/areaGroupByProvince", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult certGroupByMajorAndLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorAndLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult certGroupByMajorProvinceLevel() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/certGroupByMajorProvinceLevel", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidMoneyGroupByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidMoneyGroupByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidGroupCountByProjectType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidGroupCountByProjectType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countGroupByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countGroupByMonth(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countGroupByMonth", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -10,8 +10,8 @@ import com.dsk.system.domain.vo.BusinessBrowseVo;
import com.dsk.system.domain.vo.BusinessListVo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 项目详情Service接口
......@@ -99,4 +99,11 @@ public interface IBusinessInfoService
List<CustomerBusinessListVo> selectCustomerBusinessList(CustomerBusinessSearchDto dto);
/**
* 查询企业的城投id和建设库id
* @param companyName
* @return
*/
Map queryUipIdOrCid (String companyName);
}
package com.dsk.system.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.system.domain.BusinessIdDto;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
......
......@@ -39,4 +39,6 @@ public interface ICustomerService {
boolean historyClaim(String companyName);
Customer selectByCompanyNameAndUserId(String companyName);
}
......@@ -5,12 +5,15 @@ import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.mapper.BusinessRelateCompanyMapper;
import com.dsk.system.service.IBusinessInfoService;
import com.dsk.system.service.IBusinessRelateCompanyService;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -24,6 +27,8 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS
{
@Resource
private BusinessRelateCompanyMapper businessRelateCompanyMapper;
@Resource
private IBusinessInfoService businessInfoService;
/**
* 查询项目关联单位
......@@ -61,6 +66,14 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS
{
// if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的电话号码");
businessRelateCompany.setCreateTime(DateUtils.getNowDate());
//查询企业的城投id和建设库id
Map map = businessInfoService.queryUipIdOrCid(businessRelateCompany.getCompanyName());
if(map.containsKey("jskEid")){
businessRelateCompany.setCompanyId(MapUtils.getInteger(map,"jskEid",null));
}else {
businessRelateCompany.setCompanyUipId(MapUtils.getString(map,"uipId",null));
businessRelateCompany.setCompanyId(MapUtils.getInteger(map,"companyId",null));
}
return businessRelateCompanyMapper.insertBusinessRelateCompany(businessRelateCompany);
}
......@@ -76,6 +89,14 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS
{
// if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的电话号码");
businessRelateCompany.setUpdateTime(DateUtils.getNowDate());
//查询企业的城投id和建设库id
Map map = businessInfoService.queryUipIdOrCid(businessRelateCompany.getCompanyName());
if(map.containsKey("jskEid")){
businessRelateCompany.setCompanyId(MapUtils.getInteger(map,"jskEid",null));
}else {
businessRelateCompany.setCompanyUipId(MapUtils.getString(map,"uipId",null));
businessRelateCompany.setCompanyId(MapUtils.getInteger(map,"companyId",null));
}
return businessRelateCompanyMapper.updateBusinessRelateCompany(businessRelateCompany);
}
......
......@@ -15,6 +15,7 @@ import com.dsk.system.domain.customer.vo.*;
import com.dsk.system.dskService.EnterpriseService;
import com.dsk.system.mapper.CustomerMapper;
import com.dsk.system.mapper.CustomerUserMapper;
import com.dsk.system.searchService.BusinessOpportunityRadarService;
import com.dsk.system.service.IBusinessInfoService;
import com.dsk.system.service.ICustomerService;
import lombok.extern.slf4j.Slf4j;
......@@ -25,6 +26,7 @@ import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 客户信息表(Customer)表服务实现类
......@@ -44,6 +46,8 @@ public class CustomerServiceImpl implements ICustomerService {
private IBusinessInfoService businessInfoService;
@Autowired
private EnterpriseService enterpriseService;
@Autowired
private BusinessOpportunityRadarService opportunityRadarService;
@Override
public List<CustomerListVo> selectList(CustomerSearchDto dto) {
......@@ -65,6 +69,7 @@ public class CustomerServiceImpl implements ICustomerService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(Customer customer) {
dealWithcustomerData(customer);
if (ObjectUtils.isEmpty(customer.getUipId())) {
try {
R res = enterpriseService.getUipId(customer.getCompanyName());
......@@ -153,6 +158,11 @@ public class CustomerServiceImpl implements ICustomerService {
return updateClaimStatus(companyName, 0);
}
@Override
public Customer selectByCompanyNameAndUserId(String companyName) {
return baseMapper.selectByCompanyNameAndUserId(companyName, SecurityUtils.getUserId());
}
//修改客户认领状态
private boolean updateClaimStatus(String companyName, Integer status) {
Customer cus = baseMapper.selectByCompanyNameAndUserId(companyName, SecurityUtils.getUserId());
......@@ -167,5 +177,39 @@ public class CustomerServiceImpl implements ICustomerService {
return customerUserMapper.updateById(customerUser) == 1;
}
private void dealWithcustomerData(Customer customer) {
if (ObjectUtils.isEmpty(customer.getCompanyName())) throw new BeanException("企业名称不能为空");
if (ObjectUtils.isEmpty(customer.getCompanyId())) {
try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(customer.getCompanyName());
if (!ObjectUtils.isEmpty(map.get("data"))) {
customer.setCompanyId(MapUtil.getInt(BeanUtil.beanToMap(map.get("data")), "jskEid"));
if (ObjectUtils.isEmpty(customer.getLegalPerson())) {
customer.setLegalPerson(MapUtil.getStr(map, "legalPerson"));
}
if (ObjectUtils.isEmpty(customer.getRegisterCapital())) {
customer.setRegisterCapital(MapUtil.getStr(map, "registeredCapitalStr"));
}
if (ObjectUtils.isEmpty(customer.getProvinceId())) {
customer.setProvinceId(MapUtil.getInt(map, "provinceId"));
}
if (ObjectUtils.isEmpty(customer.getCityId())) {
customer.setCityId(MapUtil.getInt(map, "cityId"));
}
if (ObjectUtils.isEmpty(customer.getDistrictId())) {
customer.setDistrictId(MapUtil.getInt(map, "countyId"));
}
if (ObjectUtils.isEmpty(customer.getRegisterAddress())) {
customer.setRegisterAddress(MapUtil.getStr(map, "domicile"));
}
if (ObjectUtils.isEmpty(customer.getCreditCode())) {
customer.setCreditCode(MapUtil.getStr(map, "creditCode"));
}
}
} catch (Exception e) {
log.debug("获取企业id错误!error:{}", e.getMessage());
}
}
}
}
......@@ -40,7 +40,7 @@
ORDER BY create_time DESC
</select>
<select id="selectBusinessBacklogById" parameterType="Long" resultMap="BusinessBacklogResult">
<select id="selectBusinessBacklogById" resultMap="BusinessBacklogResult">
<include refid="selectBusinessBacklogVo"/>
where id = #{id}
</select>
......
......@@ -78,7 +78,9 @@
construction_phone,
supervisor_unit,
supervisor_principal,
supervisor_phone
supervisor_phone,
construction_unit_uip_id,
construction_unit_cid
from business_info
</sql>
......@@ -92,6 +94,8 @@
i.district_name districtName,
i.investment_amount investmentAmount,
i.construction_unit ownerCompany,
i.construction_unit_uip_id ownerCompanyUipId,
i.construction_unit_cid ownerCompanyCid,
MAX(f.creat_time) followTime,
u.nick_name nickName,
GROUP_CONCAT(DISTINCT l.label) label
......@@ -284,6 +288,8 @@
<if test="supervisorUnit != null">supervisor_unit,</if>
<if test="supervisorPrincipal != null">supervisor_principal,</if>
<if test="supervisorPhone != null">supervisor_phone,</if>
<if test="constructionUnitUipId != null">construction_unit_uip_id,</if>
<if test="constructionUnitCid != null">construction_unit_cid,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="projectName != null">#{projectName},</if>
......@@ -321,6 +327,8 @@
<if test="supervisorUnit != null">#{supervisorUnit},</if>
<if test="supervisorPrincipal != null">#{supervisorPrincipal},</if>
<if test="supervisorPhone != null">#{supervisorPhone},</if>
<if test="constructionUnitUipId != null">#{constructionUnitUipId},</if>
<if test="constructionUnitCid != null">#{constructionUnitCid},</if>
</trim>
</insert>
......@@ -343,6 +351,8 @@
city_id = #{cityId},
district_name = #{districtName},
district_id = #{districtId},
construction_unit_uip_id = #{constructionUnitUipId},
construction_unit_cid = #{constructionUnitCid},
<if test="projectType != null">project_type = #{projectType},</if>
<if test="projectCategory != null">project_category = #{projectCategory},</if>
<if test="isPrivate != null">is_private = #{isPrivate},</if>
......
......@@ -16,6 +16,7 @@
<result property="updateTime" column="update_time"/>
<result property="depth" column="depth"/>
<result property="companyType" column="company_type"/>
<result property="companyUipId" column="company_uip_id"/>
</resultMap>
<sql id="selectBusinessRelateCompanyVo">
......@@ -29,7 +30,8 @@
depth,
create_time,
update_time,
company_type
company_type,
company_uip_id
from business_relate_company
</sql>
......@@ -68,9 +70,8 @@
<if test="companyRole != null">company_role,</if>
<if test="responsiblePerson != null">responsible_person,</if>
<if test="phone != null">phone,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="companyType != null">company_type,</if>
<if test="companyUipId != null">company_uip_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if>
......@@ -80,9 +81,8 @@
<if test="companyRole != null">#{companyRole},</if>
<if test="responsiblePerson != null">#{responsiblePerson},</if>
<if test="phone != null">#{phone},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="companyType != null">#{companyType},</if>
<if test="companyUipId != null">#{companyUipId},</if>
</trim>
</insert>
......@@ -90,7 +90,8 @@
update business_relate_company
<trim prefix="SET" suffixOverrides=",">
<if test="businessId != null">business_id = #{businessId},</if>
<if test="companyId != null">company_id = #{companyId},</if>
company_id = #{companyId},
company_uip_id = #{companyUipId},
<if test="companyName != null">company_name = #{companyName},</if>
<if test="depth != null">depth = #{depth},</if>
<if test="companyRole != null">company_role = #{companyRole},</if>
......@@ -115,4 +116,4 @@
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
</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