Commit aba08dbe authored by 施翔轲's avatar 施翔轲

修复咨询机构管理-企业列表根据最近合作时间无法查询bug

parent fa399750
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -28,9 +29,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 咨询机构(SysAdvisoryBody)表服务实现类
......@@ -59,15 +58,18 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
//先按照分页要求从咨询机构表中查出分页数据
QueryWrapper<AdvisoryBody> wrapper = Wrappers.query();
wrapper.like(StringUtils.isNotBlank(advisoryBodySearchBo.getAdvisoryBodyName()), "advisory_body_name", advisoryBodySearchBo.getAdvisoryBodyName())
.between(ObjectUtil.isNotNull(advisoryBodySearchBo.getMinLastCooperateDate()) && ObjectUtil.isNotNull(advisoryBodySearchBo.getMaxLastCooperateDate()),
"create_time",
advisoryBodySearchBo.getMinLastCooperateDate(),
advisoryBodySearchBo.getMaxLastCooperateDate())
.like(StringUtils.isNotBlank(advisoryBodySearchBo.getBusinessScope()), "business_scope", advisoryBodySearchBo.getBusinessScope());
Page<AdvisoryBodySearchVo> page = baseMapper.selectPageAdvisoryBodyList(pageQuery.build(), wrapper);
Date minLastCooperateDate = advisoryBodySearchBo.getMinLastCooperateDate();
Date maxLastCooperateDate = advisoryBodySearchBo.getMaxLastCooperateDate();
//根据咨询机构cid查询对应的企业信息
for (AdvisoryBodySearchVo advisoryBodySearchVo : page.getRecords()) {
List<AdvisoryBodySearchVo> advisoryBodySearchVoList = page.getRecords();
Iterator<AdvisoryBodySearchVo> iterator = advisoryBodySearchVoList.iterator();
while (iterator.hasNext()) {
AdvisoryBodySearchVo advisoryBodySearchVo = iterator.next();
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
//有Cid的才去建设库查数据
if (ObjectUtil.isNotNull(advisoryBodySearchVo.getAdvisoryBodyCid())) {
......@@ -77,14 +79,30 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
}
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData = MapUtils.getMap(companyMap, "data", null);
//最近一次合作时间
//查询最近一次合作时间
List<AdvisoryBodyProject> advisoryBodyProjectList = advisoryBodyProjectMapper.selectList(new LambdaQueryWrapper<AdvisoryBodyProject>()
.select(AdvisoryBodyProject::getCreateTime)
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())
.orderByDesc(AdvisoryBodyProject::getCreateTime));
Date lastCooperateDate = null;
if (ObjectUtil.isNotNull(advisoryBodyProjectList) && !advisoryBodyProjectList.isEmpty()) {
advisoryBodySearchVo.setLastCooperateTime(advisoryBodyProjectList.get(0).getCreateTime());
//暂时取记录生成作为最近一次合作时间
//TODO:AdvisoryBodyProject表中保留了cooperate_time字段,应当取该字段作为最近一次合作时间,但产品并未给存入这个字段的需求
lastCooperateDate = advisoryBodyProjectList.get(0).getCreateTime();
advisoryBodySearchVo.setLastCooperateTime(lastCooperateDate);
}
//筛选最近一次合作时间
if (ObjectUtil.isNotNull(lastCooperateDate)
&& ObjectUtil.isNotNull(minLastCooperateDate)
&& ObjectUtil.isNotNull(maxLastCooperateDate)) {
if (DateUtil.isExpired(minLastCooperateDate, maxLastCooperateDate, lastCooperateDate)) {
iterator.remove();
continue;
}
}
//经营范围
advisoryBodySearchVo.setBusinessStatus(MapUtils.getString(companyData, "businessStatus", ""));
//法人
......@@ -104,6 +122,7 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
advisoryBodySearchVo.setCooperateProjectCount(advisoryBodyProjectMapper.selectCount(new LambdaQueryWrapper<AdvisoryBodyProject>()
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())));
}
return TableDataInfo.build(page);
}
......@@ -132,7 +151,7 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
List<Map<String, Object>> data = (List<Map<String, Object>>) jskData.get("list");
for (Map<String, Object> companyData : data) {
//企业名称完全匹配上,则直接返回给前端
String companyName = StringUtils.removeRed(MapUtils.getString(companyData, "name","NotExist"));
String companyName = StringUtils.removeRed(MapUtils.getString(companyData, "name", "NotExist"));
if (advisoryBodyName.equals(companyName)) {
AdvisoryBodyExistVo advisoryBodyExistVo = new AdvisoryBodyExistVo();
advisoryBodyExistVo.setAdvisoryBodyCid(Math.toIntExact(MapUtils.getLong(companyData, "jskEid")));
......@@ -158,7 +177,8 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
@Override
@Transactional(rollbackFor = Exception.class)
public Integer addAdvisoryBody(AddAdvisoryBodyBo addAdvisoryBodyBo) {
long advisoryBodyId = IdUtil.getSnowflakeNextId();;
long advisoryBodyId = IdUtil.getSnowflakeNextId();
;
//如果是新增咨询机构,则需要新增记录到咨询机构表
if (addAdvisoryBodyBo.getIsNewAdvisoryBody()) {
AdvisoryBody newAdvisoryBody = BeanUtil.toBean(addAdvisoryBodyBo, AdvisoryBody.class);
......
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