Commit c7500d25 authored by danfuman's avatar danfuman

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

parents 7ed7865d dd3840a0
package com.dsk.web.controller.dsk;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.dsk.dto.JskCombineSearchDto;
import com.dsk.system.dskService.JskCombineInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 集团户相关信息
* @author lcl
* @create 2023/8/7
*/
@Slf4j
@RestController
@RequestMapping(value = "/combine/info")
public class JskCombineInfoController extends BaseController {
@Autowired
private JskCombineInfoService baseService;
/**
* 集团成员列表
*/
@GetMapping("/memberList")
public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception {
return baseService.memberList(dto);
}
/**
* 分组成员数量
*/
@GetMapping("/group/memberCount")
public R groupMemberCount(JskCombineSearchDto dto) {
return baseService.groupMemberCount(dto);
}
/**
* 集团业绩列表
*/
@GetMapping("/businessList")
public TableDataInfo businessList(JskCombineSearchDto dto) throws Exception {
return baseService.businessList(dto);
}
}
......@@ -55,8 +55,6 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.certGroupByMajorProvinceLevel();
}
/*
* 产业结构-按年份选择 各个项目类型项目总数
*/
......@@ -72,6 +70,14 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.bidMoneyGroupByProjectType(object);
}
//-----------------------------------中标----------------------------------
//全攻中标项目统计
@RequestMapping("/countBidByType")
public AjaxResult countBidByType(@RequestBody JSONObject object) {
return marketAnalysisService.countBidByType( object);
}
/*
* 全国各地区中标统计TOP10
*/
......@@ -80,7 +86,32 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.countBidGroupByProvince(object);
}
//全国中标金额分析
@RequestMapping("/rangeBidMoney")
public AjaxResult rangeBidMoney(@RequestBody JSONObject object) {
return marketAnalysisService.rangeBidMoney( object);
}
//全国中标趋势分析
@RequestMapping("/rangeBidFiveYears")
public AjaxResult rangeBidFiveYears() {
return marketAnalysisService.rangeBidFiveYears();
}
//全国中标下浮率分析
@RequestMapping("/lowerRateByYear")
public AjaxResult lowerRateByYear(@RequestBody JSONObject object) {
return marketAnalysisService.lowerRateByYear( object);
}
//全国中标业绩项目类型下浮率
@RequestMapping("/lowerRangeTenderType")
public AjaxResult lowerRangeTenderType(@RequestBody JSONObject object) {
return marketAnalysisService.lowerRangeTenderType( object);
}
//-----------------------------------土地----------------------------------
//央企数字化经营系统 土地交易
@RequestMapping("/countLandMarketByType")
public AjaxResult countLandMarketByType(@RequestBody JSONObject object){
......@@ -99,6 +130,10 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.countLandMarketByYear();
}
//-----------------------------------招标----------------------------------
//央企数字化经营系统 全国公招项目统计
@RequestMapping("/countNewsBidByYear")
public AjaxResult countNewsBidByYear(){
......
......@@ -206,6 +206,7 @@
class="popups"
:visible.sync="dialogVisible"
width="534px"
:close-on-click-modal="false"
@close="resetForm('ruleForm')"
>
<div class="poptitle">
......@@ -214,9 +215,9 @@
</div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="企业名称:" class="row" prop="companyName">
<el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany"></el-input>
<div class="resultlist" v-if="showlist" id="box">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
<el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany(1)"></el-input>
<div class="resultlist infinite-list" v-if="showlist" id="box" v-infinite-scroll="load" style="overflow:auto">
<div class="infinite-list-item" v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name" :key="companypage"></span></div>
</div>
</el-form-item>
<el-form-item label="客户等级:" class="row">
......@@ -310,6 +311,8 @@
showlist:false,
keys:1,
isSkeleton:true,
companypage:1,
isscroll:false,
}
},
created() {
......@@ -428,22 +431,48 @@
//获取建设库客户
getCompany(value){
this.queryParam.companyId = null
if (value.length>=2){
if(value == 1){
this.companData = []
this.companypage = 1
}
if (this.queryParam.companyName.length>=2){
let param = {
keyword:value,
keyword:this.queryParam.companyName,
page:{
limit:20,
page:1
page:this.companypage
}
}
getEnterprise(JSON.stringify(param)).then(result=>{
if(result.code != 200)
return
this.showlist = true
this.companData = result.data.list
if(result.code != 200){
return false
}
if(result.data.list != null && result.data.list.length>0){
this.isscroll = true
if (this.companData.length===0) {
this.companData = result.data.list
} else {
let arr2 = result.data.list
arr2.unshift(2, 0);
Array.prototype.splice.apply(this.companData, arr2);
}
if(this.companData.length===0) {
this.showlist = false
}else{
this.showlist = true
}
this.companypage += 1
}else{
this.isscroll = false
}
})
}
},
load(){
if(this.isscroll){
this.getCompany(2)
}
},
selCompany(item){
this.queryParam.companyId = item.jskEid
this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '')
......
......@@ -3,6 +3,7 @@
class="popups"
width="534px"
:visible.sync="isshow"
:close-on-click-modal="false"
@close="resetForm('ruleForm')"
>
<div @click = 'handleALL'>
......
......@@ -313,7 +313,7 @@
return false
editXMNR(param).then(result=>{
if(result.code == 200){
this.$message.success('修改成功!')
// this.$message.success('修改成功!')
if(param.investmentAmount){//修改项目阶段
this.$emit('Refrehmoney')
}
......
......@@ -276,7 +276,7 @@
editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){
if(!param.projectStage){
this.$message.success('修改成功!')
// this.$message.success('修改成功!')
}
}else{
this.$message.error(res.msg)
......@@ -314,7 +314,7 @@
}
addLabel(JSON.stringify(param)).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
// this.$message.success('修改成功!')
this.tipsvalue = ""
this.getXMSL()
}else{
......@@ -330,7 +330,7 @@
}
removeLabel(JSON.stringify(param)).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
// this.$message.success('修改成功!')
this.getXMSL()
}else{
this.$message.error(res.msg)
......
......@@ -287,7 +287,7 @@
}
editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
// this.$message.success('修改成功!')
if(this.nowedit == 1){
let _this = this
setTimeout(function() {
......
......@@ -113,7 +113,7 @@
<ul class="bottomlist-content" v-if="!isSkeleton&&tableData.length>0">
<li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel">
<router-link :to="'/radar/debtProject/details/'+ item.uuid" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
<router-link :to="'/radar/debtProject/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
</p>
<div class="content-label" v-if="item.domicile">
......
......@@ -196,4 +196,4 @@ export default {
}
}
};
</script>
\ No newline at end of file
</script>
......@@ -667,4 +667,4 @@ export default {
}
}
};
</script>
\ No newline at end of file
</script>
package com.dsk.system.domain.dsk.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 集团户相关查询条件实体类
*
* @author lcl
* @create 2023/8/7
*/
@Data
public class JskCombineSearchDto implements Serializable {
/**
* 集团id
*/
@NotNull(message = "集团id不能为空!")
private String combineId;
/**
* 筛选参数
*/
private String searchValue;
/**
* 集团层级
*/
private String combineMemberLevel;
/**
* 省id
*/
private List<Integer> provinceIds;
/**
* 市id
*/
private List<Integer> cityIds;
/**
* 区id
*/
private List<Integer> districtIds;
/**
* 最大金额
*/
private Integer maxAmount;
/**
* 最小金额
*/
private Integer minAmount;
/**
* 业务类型
*/
private String businessType;
/**
* 科技型企业类型
*/
private List<String> companyTypes;
/**
* 企业类型
*/
private String companyType;
/**
* 最大持股比例
*/
private Double maxStockPercent;
/**
* 最小持股比例
*/
private Double minStockPercent;
/**
* 中标时间(开始)
*/
private Date startBidTime;
/**
* 中标时间(结束)
*/
private Date endBidTime;
/**
* 业绩类型
*/
private List<String> boundTypes;
/**
* 项目类型
*/
private List<String> projectTypes;
/**
* 页码
*/
private Integer pageNum;
/**
* 每页条数
*/
private Integer pageSize;
}
......@@ -415,22 +415,34 @@ public class EnterpriseService {
if (!ObjectUtils.isEmpty(map.get("data"))) {
result.put("companyId", MapUtil.getInt(BeanUtil.beanToMap(map.get("data")), "jskEid"));
}
if (!ObjectUtil.isEmpty(result.get("companyId"))) {
R res = this.getUipIdByCid(Collections.singletonList(MapUtils.getInteger(result,"companyId")));
result.put("uipId", this.getUipIdByCompanyNameOrCompanyId(companyName, MapUtils.getInteger(result, "companyId")));
} catch (Exception e) {
log.debug("获取企业id错误!error:{}", e.getMessage());
}
return result;
}
//企业uipId
public String getUipIdByCompanyNameOrCompanyId(String companyName, Integer companyId) {
try {
String uipId = null;
if (!ObjectUtil.isEmpty(companyId)) {
R res = this.getUipIdByCid(Collections.singletonList(companyId));
if (!ObjectUtils.isEmpty(res.getData())) {
List<Map<String, Object>> data = (List<Map<String, Object>>) res.getData();
result.put("uipId", MapUtil.getStr(BeanUtil.beanToMap(data.get((0))), "uipId"));
uipId = MapUtil.getStr(BeanUtil.beanToMap(data.get((0))), "uipId");
}
}
if (ObjectUtil.isEmpty(result.get("uipId"))) {
if (ObjectUtil.isEmpty(uipId)) {
R res = this.getUipId(companyName);
if (!ObjectUtils.isEmpty(res.getData())) {
result.put("uipId", MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId"));
uipId = MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId");
}
}
return uipId;
} catch (Exception e) {
log.debug("获取企业id错误!error:{}", e.getMessage());
log.debug("获取企业uipId错误!error:{}", e.getMessage());
}
return result;
return null;
}
}
package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanException;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.domain.dsk.dto.JskCombineSearchDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.ibatis.util.MapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
/**
* @author lcl
* @create 2023/8/7
*/
@Slf4j
@Service
public class JskCombineInfoService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Autowired
private EnterpriseService enterpriseService;
public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberList", BeanUtil.beanToMap(dto, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R groupMemberCount(JskCombineSearchDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/group/memberCount", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo businessList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/businessList", BeanUtil.beanToMap(dto, false, false));
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(data.get("list"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list");
list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "companyId");
String companyName = MapUtils.getString(res, "companyName");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
Integer projectUnitId = MapUtils.getInteger(res, "projectUnitId");
String projectUnit = MapUtils.getString(res, "projectUnit");
res.put("projectUnitUipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(projectUnit, projectUnitId));
});
}
}
return dskOpenApiUtil.responsePage(map);
}
}
......@@ -80,13 +80,38 @@ public class MarketAnalysisService {
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countLandMarketByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countLandMarketByType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countBidGroupByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countBidGroupByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countLandMarketByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countLandMarketByType", object);
public AjaxResult countBidByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countBidByType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult rangeBidMoney(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/rangeBidMoney", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult rangeBidFiveYears() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/rangeBidFiveYears", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult lowerRateByYear(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/lowerRateByYear", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult lowerRangeTenderType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/lowerRangeTenderType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -148,7 +148,9 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
BusinessLikeProjectNameListVo vo = new BusinessLikeProjectNameListVo();
vo.setProjectName(StringUtils.markInRed(MapUtil.getStr(map, "projectName"), dto.getProjectName()));
vo.setCompanyName(MapUtil.getStr(map, "tenderee"));
vo.setInvestmentAmount(Double.parseDouble(MapUtil.getStr(map, "projectContractAmount")));
if (null!=map.get("projectContractAmount")&&ObjectUtil.isNotEmpty(map.get("projectContractAmount"))){
vo.setInvestmentAmount(MapUtil.getDouble(map, "projectContractAmount"));
}
vo.setProjectType(MapUtil.getStr(map, "projectType"));
vo.setProjectCategory(MapUtil.getStr(map, "projectPurposes"));
vos.add(vo);
......@@ -156,7 +158,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
}
}
} catch (Exception e) {
log.error("模糊查询项目名称调用失败!");
log.error("模糊查询项目名称调用失败!",e);
}
return vos;
......
......@@ -83,25 +83,7 @@ public class CustomerServiceImpl implements ICustomerService {
@Transactional(rollbackFor = Exception.class)
public boolean add(Customer customer) {
dealWithcustomerData(customer);
if (ObjectUtils.isEmpty(customer.getUipId())) {
try {
List<Integer> list = new ArrayList<>();
list.add(customer.getCompanyId());
R res = enterpriseService.getUipIdByCid(list);
if (!ObjectUtils.isEmpty(res.getData())) {
List<Map<String, Object>> data = (List<Map<String, Object>>) res.getData();
customer.setUipId(MapUtil.getStr(BeanUtil.beanToMap(data.get((0))), "uipId"));
}
if (ObjectUtils.isEmpty(customer.getUipId())) {
res = enterpriseService.getUipId(customer.getCompanyName());
if (!ObjectUtils.isEmpty(res.getData())) {
customer.setUipId(MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId"));
}
}
} catch (Exception e) {
log.error("获取城投平台企业id错误!error:{}", e.getMessage());
}
}
customer.setUipId(enterpriseService.getUipIdByCompanyNameOrCompanyId(customer.getCompanyName(), customer.getCompanyId()));
Long userId = SecurityUtils.getUserId();
customer.setCreateId(userId);
customer.setUpdateId(userId);
......
......@@ -40,29 +40,25 @@ public class EconomicServiceImpl implements EconomicService {
*/
private static final Integer TYPE = 1;
/**
* 默认排序
*/
private static final String FIELD = "gdp";
private static final String ORDER = "desc";
@Override
public AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto) {
if (ObjectUtil.isEmpty(dto.getYear())) {
dto.setYear(DateUtils.getYear() - 1);
}
String redisKey = CacheConstants.DATA_ECONOMIC + dto.getYear() + dto.getProvinceIds() + dto.getCityIds() + dto.getAreaIds();
Map<String, Object> cacheMap = redisCache.getCacheObject(redisKey);
if (ObjectUtil.isNotEmpty(cacheMap)) {
return BeanUtil.toBean(cacheMap, AjaxResult.class);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/national/nationalPage", BeanUtil.beanToMap(dto, false, false));
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 (ObjectUtil.isNotEmpty(list) && TYPE.equals(dto.getType())) {
if (ObjectUtil.isEmpty(dto.getProvinceIds()) && ObjectUtil.isEmpty(dto.getCityIds()) && ObjectUtil.isEmpty(dto.getAreaIds())) {
redisCache.setCacheObject(redisKey, map);
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
......
......@@ -73,7 +73,7 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
List<Map<String, Object>> companyNameList = (List<Map<String, Object>>)MapUtils.getObject(topSupplierMap, "data", null);
for (Map<String, Object> comMap : companyNameList) {
Integer id = MapUtils.getInteger(comMap, "id", 0);
if (id.equals(topCustomerId)) {
if (id.equals(topSupplierId)) {
String companyName = MapUtils.getString(comMap, "companyName", null);
companyMap.put("topSupplier", companyName);
}
......
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