Commit 61ba3c6a authored by fulixin's avatar fulixin

修改/advisory/body/getAdvisoryBodyList 查合作企业合作时间选项的逻辑

parent 5829b3b9
......@@ -146,7 +146,7 @@ security:
- /api/**
- /actuator/**
- /monitor/push/insert/**
# - /**
# 多租户配置
......
......@@ -25,7 +25,7 @@ public class AddLaborLeaderCustomerRiskBo {
* 劳务队长身份证号
*/
@NotBlank(message = "劳务队长身份证号不能为空")
private String laborCaptainIdcard;
private String laborCaptainIdCard;
/**
* 劳务队长联系电话
*/
......@@ -35,7 +35,7 @@ public class AddLaborLeaderCustomerRiskBo {
* 挂靠单位(供应商名称)
*/
@NotBlank(message = "挂靠单位名称不能为空")
private String cusomerName;
private String customerName;
/**
* 不良事由
*/
......
......@@ -34,4 +34,16 @@ public class AdvisoryBodySearchBo {
* 经营范围
*/
private String businessScope;
/**
* 条数
*/
private Integer pageSize = 50;
/**
* 页数
*/
private Integer pageNum = 1;
}
......@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import org.apache.ibatis.annotations.Param;
......@@ -20,6 +21,29 @@ import java.util.List;
* @since 2023-12-12 10:12:04
*/
public interface AdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
/**
* 得到咨询机构及项目相关信息总条数
* @param bo
* @param bo
* @return
*/
Integer getAdvisoryBodyAndProjectMsgCount(@Param("bo") AdvisoryBodySearchBo bo);
/**
* 得到咨询机构及项目相关信息
* @param bo
* @return
*/
List<AdvisoryBodySearchVo> getAdvisoryBodyAndProjectMsg(@Param("bo") AdvisoryBodySearchBo bo);
/**
* 获取所有企业列表(咨询机构)数据
*/
......
......@@ -56,78 +56,130 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
*/
@Override
public TableDataInfo<AdvisoryBodySearchVo> queryAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery) {
//先按照分页要求从咨询机构表中查出分页数据
QueryWrapper<AdvisoryBody> wrapper = Wrappers.query();
wrapper.like(StringUtils.isNotBlank(advisoryBodySearchBo.getAdvisoryBodyName()), "advisory_body_name", advisoryBodySearchBo.getAdvisoryBodyName())
.like(StringUtils.isNotBlank(advisoryBodySearchBo.getBusinessScope()), "business_scope", advisoryBodySearchBo.getBusinessScope())
.between("create_time",advisoryBodySearchBo.getMinLastCooperateDate(),advisoryBodySearchBo.getMaxLastCooperateDate());
Page<AdvisoryBodySearchVo> page = baseMapper.selectPageAdvisoryBodyList(pageQuery.build(), wrapper);
Date minLastCooperateDate = advisoryBodySearchBo.getMinLastCooperateDate();
Date maxLastCooperateDate = advisoryBodySearchBo.getMaxLastCooperateDate();
//连表查AdvisoryBody AdvisoryBodyProject
Page<AdvisoryBodySearchVo> page = new Page<>();
Integer count = baseMapper.getAdvisoryBodyAndProjectMsgCount(advisoryBodySearchBo);
if(count.equals(0)){
page.setTotal(count);
return TableDataInfo.build(page);
}
// Integer pageNum = (advisoryBodySearchBo.getPageNum()-1)*advisoryBodySearchBo.getPageSize();
Integer pageIndex = advisoryBodySearchBo.getPageNum() == 0?1:advisoryBodySearchBo.getPageNum(), pageSize = advisoryBodySearchBo.getPageSize();
Integer pageNum = (pageIndex-1)*pageSize;
advisoryBodySearchBo.setPageNum(pageNum);
//根据咨询机构cid查询对应的企业信息
List<AdvisoryBodySearchVo> advisoryBodySearchVoList = page.getRecords();
List<AdvisoryBodySearchVo> advisoryBodyAndProjectMsg = baseMapper.getAdvisoryBodyAndProjectMsg(advisoryBodySearchBo);
Iterator<AdvisoryBodySearchVo> iterator = advisoryBodySearchVoList.iterator();
while (iterator.hasNext()) {
AdvisoryBodySearchVo advisoryBodySearchVo = iterator.next();
advisoryBodyAndProjectMsg.stream().forEach(dto ->{
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
//有Cid的才去建设库查数据
if (ObjectUtil.isNotNull(advisoryBodySearchVo.getAdvisoryBodyCid())) {
infoHeaderBody.setCompanyId(Math.toIntExact(advisoryBodySearchVo.getAdvisoryBodyCid()));
} else {
continue;
if (ObjectUtil.isNotNull(dto.getAdvisoryBodyCid())) {
infoHeaderBody.setCompanyId(Math.toIntExact(dto.getAdvisoryBodyCid()));
}
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, AdvisoryBodyProject::getCreateBy)
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())
.orderByDesc(AdvisoryBodyProject::getCreateTime));
Date lastCooperateDate = null;
if (ObjectUtil.isNotNull(advisoryBodyProjectList) && !advisoryBodyProjectList.isEmpty()) {
//暂时取记录生成作为最近一次合作时间
//TODO:AdvisoryBodyProject表中保留了cooperate_time字段,应当取该字段作为最近一次合作时间,但产品并未给存入这个字段的需求
lastCooperateDate = advisoryBodyProjectList.get(0).getCreateTime();
advisoryBodySearchVo.setLastCooperateTime(lastCooperateDate);
advisoryBodySearchVo.setInfoRecorder(advisoryBodyProjectList.get(0).getCreateBy());
}
//筛选最近一次合作时间
if (ObjectUtil.isNotNull(lastCooperateDate)
&& ObjectUtil.isNotNull(minLastCooperateDate)
&& ObjectUtil.isNotNull(maxLastCooperateDate)) {
if (DateUtil.isExpired(minLastCooperateDate, maxLastCooperateDate, lastCooperateDate)) {
iterator.remove();//这里是原逻辑 page的总条数是后面添加的逻辑 有问题就直接去掉这一批逻辑(不知道之前为什么写这个逻辑)
Long count = page.getTotal()-1;
page.setTotal(count);
continue;
}
}
//经营范围
advisoryBodySearchVo.setBusinessStatus(MapUtils.getString(companyData, "businessStatus", ""));
dto.setBusinessStatus(MapUtils.getString(companyData, "businessStatus", ""));
//法人
advisoryBodySearchVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
dto.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
//注册资本
advisoryBodySearchVo.setRegCapital(MapUtils.getString(companyData, "regCapital", ""));
dto.setRegCapital(MapUtils.getString(companyData, "regCapital", ""));
//拼接地区
String provinceName = MapUtils.getString(companyData, "provinceName", "");
String cityName = MapUtils.getString(companyData, "cityName", "");
String districtName = MapUtils.getString(companyData, "districtName", "");
advisoryBodySearchVo.setRegArea(provinceName + "-" + cityName + "-" + districtName);
dto.setRegArea(provinceName + "-" + cityName + "-" + districtName);
//成立日期
advisoryBodySearchVo.setRegisteredDate(MapUtils.getString(companyData, "registeredDate", ""));
dto.setRegisteredDate(MapUtils.getString(companyData, "registeredDate", ""));
//经营范围
advisoryBodySearchVo.setBusinessScope(MapUtils.getString(companyData, "businessScope", ""));
dto.setBusinessScope(MapUtils.getString(companyData, "businessScope", ""));
//合作项目数量
advisoryBodySearchVo.setCooperateProjectCount(advisoryBodyProjectMapper.selectCount(new LambdaQueryWrapper<AdvisoryBodyProject>()
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())));
}
dto.setCooperateProjectCount(advisoryBodyProjectMapper.selectCount(new LambdaQueryWrapper<AdvisoryBodyProject>()
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, dto.getAdvisoryBodyCid())));
});
//
// //先按照分页要求从咨询机构表中查出分页数据
// QueryWrapper<AdvisoryBody> wrapper = Wrappers.query();
// wrapper.like(StringUtils.isNotBlank(advisoryBodySearchBo.getAdvisoryBodyName()), "advisory_body_name", advisoryBodySearchBo.getAdvisoryBodyName())
// .like(StringUtils.isNotBlank(advisoryBodySearchBo.getBusinessScope()), "business_scope", advisoryBodySearchBo.getBusinessScope());
// if(ObjectUtil.isNotNull(advisoryBodySearchBo.getMinLastCooperateDate())
// || ObjectUtil.isNotNull(advisoryBodySearchBo.getMaxLastCooperateDate()) ){
// wrapper.between("create_time",advisoryBodySearchBo.getMinLastCooperateDate(),advisoryBodySearchBo.getMaxLastCooperateDate());
// }
//
// Page<AdvisoryBodySearchVo> page = baseMapper.selectPageAdvisoryBodyList(pageQuery.build(), wrapper);
//
// Date minLastCooperateDate = advisoryBodySearchBo.getMinLastCooperateDate();
// Date maxLastCooperateDate = advisoryBodySearchBo.getMaxLastCooperateDate();
//
// //根据咨询机构cid查询对应的企业信息
// 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())) {
// infoHeaderBody.setCompanyId(Math.toIntExact(advisoryBodySearchVo.getAdvisoryBodyCid()));
// } else {
// continue;
// }
// 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, AdvisoryBodyProject::getCreateBy)
// .eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())
// .orderByDesc(AdvisoryBodyProject::getCreateTime));
// Date lastCooperateDate = null;
// if (ObjectUtil.isNotNull(advisoryBodyProjectList) && !advisoryBodyProjectList.isEmpty()) {
// //暂时取记录生成作为最近一次合作时间
// //TODO:AdvisoryBodyProject表中保留了cooperate_time字段,应当取该字段作为最近一次合作时间,但产品并未给存入这个字段的需求
// lastCooperateDate = advisoryBodyProjectList.get(0).getCreateTime();
// advisoryBodySearchVo.setLastCooperateTime(lastCooperateDate);
// advisoryBodySearchVo.setInfoRecorder(advisoryBodyProjectList.get(0).getCreateBy());
// }
//
// //筛选最近一次合作时间
// if (ObjectUtil.isNotNull(lastCooperateDate)
// && ObjectUtil.isNotNull(minLastCooperateDate)
// && ObjectUtil.isNotNull(maxLastCooperateDate)) {
// if (DateUtil.isExpired(minLastCooperateDate, maxLastCooperateDate, lastCooperateDate)) {
// iterator.remove();//这里是原逻辑 page的总条数是后面添加的逻辑 有问题就直接去掉这一批逻辑(不知道之前为什么写这个逻辑)
// Long count = page.getTotal()-1;
// page.setTotal(count);
// continue;
// }
// }
//
// //经营范围
// advisoryBodySearchVo.setBusinessStatus(MapUtils.getString(companyData, "businessStatus", ""));
// //法人
// advisoryBodySearchVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
// //注册资本
// advisoryBodySearchVo.setRegCapital(MapUtils.getString(companyData, "regCapital", ""));
// //拼接地区
// String provinceName = MapUtils.getString(companyData, "provinceName", "");
// String cityName = MapUtils.getString(companyData, "cityName", "");
// String districtName = MapUtils.getString(companyData, "districtName", "");
// advisoryBodySearchVo.setRegArea(provinceName + "-" + cityName + "-" + districtName);
// //成立日期
// advisoryBodySearchVo.setRegisteredDate(MapUtils.getString(companyData, "registeredDate", ""));
// //经营范围
// advisoryBodySearchVo.setBusinessScope(MapUtils.getString(companyData, "businessScope", ""));
// //合作项目数量
// advisoryBodySearchVo.setCooperateProjectCount(advisoryBodyProjectMapper.selectCount(new LambdaQueryWrapper<AdvisoryBodyProject>()
// .eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())));
// }
page.setTotal(count);
page.setRecords(advisoryBodyAndProjectMsg);
page.setSize(pageSize);
page.setCurrent(pageIndex);
return TableDataInfo.build(page);
}
......
......@@ -48,15 +48,15 @@ public class LaborLeaderCustomerRiskServiceImpl extends ServiceImpl<LaborLeaderC
LaborLeaderCustomerRisk risk = BeanUtil.toBean(addBo, LaborLeaderCustomerRisk.class);
risk.setRiskId(IdUtil.getSnowflakeNextId());
//查询供应商cid
Map<String, Object> map = opportunityRadarService.enterpriseByName(addBo.getCusomerName());
Map<String, Object> map = opportunityRadarService.enterpriseByName(addBo.getCustomerName());
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
Integer companyId = MapUtil.getInt(data, "jskEid");
Assert.notNull(companyId, "挂靠单位不存在或请填写完整单位名称");
risk.setCustomerCid(companyId);
}
risk.setLaborCaptainIdCard(addBo.getLaborCaptainIdcard());
risk.setCustomerName(addBo.getCusomerName());
risk.setLaborCaptainIdCard(addBo.getLaborCaptainIdCard());
risk.setCustomerName(addBo.getCustomerName());
return baseMapper.insert(risk);
}
......
......@@ -3,6 +3,77 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyMapper">
<select id="getAdvisoryBodyAndProjectMsgCount" parameterType="object" resultType="int">
SELECT
count(*)
FROM
advisory_body ab
LEFT JOIN advisory_body_project abp ON ab.advisory_body_cid = abp.advisory_body_cid
<where>
<if test='bo.advisoryBodyName != null and bo.advisoryBodyName != ""'>
and ab.advisory_body_name like concat('%',#{bo.advisoryBodyName},'%')
</if>
<if test='bo.businessScope != null and bo.businessScope != ""'>
and ab.business_scope like concat('%',#{bo.businessScope},'%')
</if>
<if test='bo.minLastCooperateDate != null'>
and abp.create_time >= #{bo.minLastCooperateDate }
</if>
<if test='bo.maxLastCooperateDate != null'>
and #{bo.maxLastCooperateDate } >= abp.create_time
</if>
</where>
</select>
<select id="getAdvisoryBodyAndProjectMsg" parameterType="object" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
SELECT
ab.*,
abp.create_by,
abp.create_time lastCooperateTime
FROM
advisory_body ab
LEFT JOIN advisory_body_project abp ON ab.advisory_body_cid = abp.advisory_body_cid
<where>
<if test='bo.advisoryBodyName != null and bo.advisoryBodyName != ""'>
and ab.advisory_body_name like concat('%',#{bo.advisoryBodyName},'%')
</if>
<if test='bo.businessScope != null and bo.businessScope != ""'>
and ab.business_scope like concat('%',#{bo.businessScope},'%')
</if>
<if test='bo.minLastCooperateDate != null'>
and abp.create_time >= #{bo.minLastCooperateDate }
</if>
<if test='bo.maxLastCooperateDate != null'>
and #{bo.maxLastCooperateDate } >= abp.create_time
</if>
</where>
ORDER BY abp.create_time desc
limit #{bo.pageNum},#{bo.pageSize}
</select>
<select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
select
<include refid="allColumn"></include>
......
......@@ -14,7 +14,7 @@
from d_customer dc
left join f_supplier_limited fsl on (fsl.flaowufbid = dc.customer_id
or fsl.fzhuanyefbid = dc.customer_id or fsl.ffgid = dc.customer_id or fsl.fzlid = dc.customer_id)
where dc.recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475'
where (dc.recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475' OR recommend_org_id IS NULL)
<if test="bo.customerName != null and bo.customerName != '' "> and dc.customer_name like concat('%',#{bo.customerName},'%')</if>
<if test="bo.province != null and bo.province.size > 0 and (bo.city == null or bo.city.size == 0) ">
and dc.register_province in
......@@ -81,7 +81,7 @@
from d_customer dc
left join f_supplier_limited fsl on (fsl.flaowufbid = dc.customer_id
or fsl.fzhuanyefbid = dc.customer_id or fsl.ffgid = dc.customer_id or fsl.fzlid = dc.customer_id)
where dc.recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475'
where (dc.recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475' OR recommend_org_id IS NULL)
<if test="bo.customerName != null and bo.customerName != '' "> and dc.customer_name like concat('%',#{bo.customerName},'%')</if>
<if test="bo.province != null and bo.province.size > 0 and (bo.city == null or bo.city.size == 0) ">
and dc.register_province in
......
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