Commit 2abecd33 authored by 施翔轲's avatar 施翔轲

咨询机构管理优化

parent 173910b1
......@@ -5,14 +5,12 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import com.dsk.cscec.domain.vo.*;
import com.dsk.cscec.service.AdvisoryBodyProjectService;
import com.dsk.cscec.service.AdvisoryBodyService;
import com.dsk.cscec.service.IDProjectService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -33,11 +31,12 @@ import javax.validation.constraints.NotNull;
@RestController
@RequestMapping("advisory/body")
public class AdvisoryBodyManageController extends BaseController {
/**
* 服务对象
*/
@Resource
private IDProjectService baseService;
@Resource
private AdvisoryBodyService advisoryBodyService;
@Resource
private AdvisoryBodyProjectService advisoryBodyProjectService;
/**
* 获取所有项目列表数据
......@@ -52,7 +51,7 @@ public class AdvisoryBodyManageController extends BaseController {
*/
@GetMapping("/getAdvisoryBodyList")
public TableDataInfo<AdvisoryBodySearchVo> getAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery) {
return baseService.queryAdvisoryBodyList(advisoryBodySearchBo, pageQuery);
return advisoryBodyService.queryAdvisoryBodyList(advisoryBodySearchBo, pageQuery);
}
/**
......@@ -75,8 +74,8 @@ public class AdvisoryBodyManageController extends BaseController {
* 根据咨询机构ID查询咨询机构详情
*/
@GetMapping("/getAdvisoryBodyDetail/{advisoryBodyId}")
public R<AdvisoryBody> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) {
return R.ok(baseService.queryAdvisoryBodyDetail(advisoryBodyId));
public R<AdvisoryBodyDetailVo> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) {
return R.ok(advisoryBodyService.queryAdvisoryBodyDetail(advisoryBodyId));
}
}
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.cscec.service.AdvisoryBodyProjectService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 咨询机构和项目关联表(AdvisoryBodyProject)表控制层
*
* @author sxk
* @since 2023-12-15 15:57:54
*/
@RestController
@RequestMapping("advisoryBodyProject")
public class AdvisoryBodyProjectController extends BaseController {
/**
* 服务对象
*/
@Resource
private AdvisoryBodyProjectService advisoryBodyProjectService;
///**
// * 分页查询所有数据
// *
// * @param page 分页对象
// * @param advisoryBodyProject 查询实体
// * @return 所有数据
// */
//@GetMapping
//public R selectAll(Page<AdvisoryBodyProject> page, AdvisoryBodyProject advisoryBodyProject) {
// return success(this.advisoryBodyProjectService.page(page, new QueryWrapper<>(advisoryBodyProject)));
//}
//
///**
// * 通过主键查询单条数据
// *
// * @param id 主键
// * @return 单条数据
// */
//@GetMapping("{id}")
//public R selectOne(@PathVariable Serializable id) {
// return success(this.advisoryBodyProjectService.getById(id));
//}
//
///**
// * 新增数据
// *
// * @param advisoryBodyProject 实体对象
// * @return 新增结果
// */
//@PostMapping
//public R insert(@RequestBody AdvisoryBodyProject advisoryBodyProject) {
// return success(this.advisoryBodyProjectService.save(advisoryBodyProject));
//}
//
///**
// * 修改数据
// *
// * @param advisoryBodyProject 实体对象
// * @return 修改结果
// */
//@PutMapping
//public R update(@RequestBody AdvisoryBodyProject advisoryBodyProject) {
// return success(this.advisoryBodyProjectService.updateById(advisoryBodyProject));
//}
//
///**
// * 删除数据
// *
// * @param idList 主键结合
// * @return 删除结果
// */
//@DeleteMapping
//public R delete(@RequestParam("idList") List<Long> idList) {
// return success(this.advisoryBodyProjectService.removeByIds(idList));
//}
}
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.AdvisoryBody;
import lombok.Data;
/**
* @author sxk
* @date 2023.12.18
* @time 14:30
*/
@Data
public class AdvisoryBodyDetailVo extends AdvisoryBody {
/**
* 经营状态
*/
private String businessStatus;
/**
* 法定代表人
*/
private String corporatePerson;
/**
* 法定代表人联系电话
*/
private String corporatePersonPhone;
/**
* 注册地址
*/
private String regAddress;
}
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.DProject;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -17,7 +18,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class ProjectDetailVo extends DProject {
/**
* 咨询机构名称
* 咨询机构
*/
private String advisoryBodyName;
private AdvisoryBody advisoryBody;
}
......@@ -34,11 +34,11 @@ public interface AdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
Page<AdvisoryBodyVo> queryListByBo(IPage<AdvisoryBodyBo> build, @Param("bo") AdvisoryBodyBo bo);
/**
* 根据咨询机构名称查询对应的项目IDs
* 根据咨询机构名称查询咨询机构Cids
* @param advisoryBodyName 咨询机构名称
* @return 项目IDs
*/
List<Long> selectProjectIdsByAdvisoryBodyName(@Param("advisoryBodyName") String advisoryBodyName);
List<Long> selectAdvisoryBodyCidsByName(@Param("advisoryBodyName") String advisoryBodyName);
/**
* 根据项目主键查询咨询机构
......
......@@ -2,6 +2,9 @@ package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.AdvisoryBodyProject;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 咨询机构和项目关联表(AdvisoryBodyProject)表数据库访问层
......@@ -11,5 +14,12 @@ import com.dsk.cscec.domain.AdvisoryBodyProject;
*/
public interface AdvisoryBodyProjectMapper extends BaseMapper<AdvisoryBodyProject> {
/**
* 根据咨询机构Cids查询项目Keys
*
* @param advisoryBodyCids 咨询机构Cids
* @return 项目Keys
*/
List<Long> selectProjectKeysByAdvisoryBodyCids(@Param("advisoryBodyCids") List<Long> advisoryBodyCids);
}
package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyDetailVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
/**
* 咨询机构(SysAdvisoryBody)表服务接口
......@@ -10,6 +15,21 @@ import com.dsk.cscec.domain.AdvisoryBody;
* @since 2023-12-12 10:12:09
*/
public interface AdvisoryBodyService extends IService<AdvisoryBody> {
/**
* 获取所有企业列表(咨询机构)数据
*
* @param advisoryBodySearchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
TableDataInfo<AdvisoryBodySearchVo> queryAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery);
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
AdvisoryBodyDetailVo queryAdvisoryBodyDetail(Long advisoryBodyId);
}
......@@ -3,12 +3,9 @@ package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
......@@ -29,15 +26,6 @@ public interface IDProjectService extends IService<DProject> {
*/
TableDataInfo<ProjectSearchVo> queryProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery);
/**
* 获取所有企业列表(咨询机构)数据
*
* @param advisoryBodySearchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
TableDataInfo<AdvisoryBodySearchVo> queryAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery);
/**
* 获取合作项目明细
*
......@@ -54,13 +42,5 @@ public interface IDProjectService extends IService<DProject> {
* @return 项目详情
*/
ProjectDetailVo queryProjectDetail(Long projectKey);
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
AdvisoryBody queryAdvisoryBodyDetail(Long advisoryBodyId);
}
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.mapper.AdvisoryBodyMapper;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.AdvisoryBodyProject;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyDetailVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.mapper.AdvisoryBodyMapper;
import com.dsk.cscec.mapper.AdvisoryBodyProjectMapper;
import com.dsk.cscec.service.AdvisoryBodyService;
import com.dsk.jsk.domain.EnterpriseInfoHeaderBody;
import com.dsk.system.utils.DskOpenApiUtil;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 咨询机构(SysAdvisoryBody)表服务实现类
*
......@@ -14,6 +35,93 @@ import org.springframework.stereotype.Service;
*/
@Service("advisoryBodyService")
public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, AdvisoryBody> implements AdvisoryBodyService {
@Resource
private AdvisoryBodyMapper baseMapper;
@Resource
private DskOpenApiUtil dskOpenApiUtil;
@Resource
private AdvisoryBodyProjectMapper advisoryBodyProjectMapper;
/**
* 获取所有企业列表(咨询机构)数据
*
* @param advisoryBodySearchBo 查询实体
* @param pageQuery 分页对象
* @return 所有数据
*/
@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())
.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);
//根据咨询机构cid查询对应的企业信息
for (AdvisoryBodySearchVo advisoryBodySearchVo : page.getRecords()) {
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)
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())
.orderByDesc(AdvisoryBodyProject::getCreateTime));
if (ObjectUtil.isNotNull(advisoryBodyProjectList) && !advisoryBodyProjectList.isEmpty()) {
advisoryBodySearchVo.setLastCooperateTime(advisoryBodyProjectList.get(0).getCreateTime());
}
//经营范围
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())));
}
return TableDataInfo.build(page);
}
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
@Override
public AdvisoryBodyDetailVo queryAdvisoryBodyDetail(Long advisoryBodyId) {
AdvisoryBodyDetailVo advisoryBodyDetailVo = BeanUtil.toBean(baseMapper.selectById(advisoryBodyId), AdvisoryBodyDetailVo.class);
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
infoHeaderBody.setCompanyId(Math.toIntExact(advisoryBodyDetailVo.getAdvisoryBodyCid()));
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData = MapUtils.getMap(companyMap, "data", null);
//法人
advisoryBodyDetailVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
//TODO:法人电话
//advisoryBodyDetailVo.setCorporatePersonPhone(MapUtils.getString(companyData, "corporatePersonPhone", ""));
//注册地址
advisoryBodyDetailVo.setRegAddress(MapUtils.getString(companyData, "addressDetail", ""));
return advisoryBodyDetailVo;
}
}
......@@ -5,8 +5,8 @@
<mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyMapper">
<select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
select
<include refid="allColumnOfAdvisoryBody"></include>
from advisory_body ${ew.getCustomSqlSegment}
<include refid="allColumn"></include>
from advisory_body ab ${ew.getCustomSqlSegment}
</select>
<select id="queryListByBo" resultType="com.dsk.cscec.domain.vo.AdvisoryBodyVo">
......@@ -62,33 +62,34 @@
order by dp.load_time desc
</select>
<select id="selectProjectIdsByAdvisoryBodyName" resultType="java.lang.Long">
<select id="selectAdvisoryBodyCidsByName" resultType="java.lang.Long">
select
<include refid="allColumnOfAdvisoryBody"></include>
from advisory_body
where
ab.advisory_body_cid
from advisory_body ab
<where>
<if test="advisoryBodyName != null">
and advisory_body_name like concat('%',#{advisoryBodyName},'%')
advisory_body_name like concat('%',#{advisoryBodyName},'%')
</if>
</where>
</select>
<select id="queryAdvisoryBodyByProjectKey" resultType="com.dsk.cscec.domain.AdvisoryBody">
select
<include refid="allColumnOfAdvisoryBody"></include>
<include refid="allColumn"></include>
from advisory_body ab
left join advisory_body_project abp
on abp.advisory_body_cid = ab.advisory_body_cid
where abp.project_key = ${projectKey};
</select>
<sql id="allColumnOfAdvisoryBody">
advisory_body_id,
advisory_body_cid,
advisory_body_name,
business_scope,
create_by,
create_time,
update_by,
update_time
<sql id="allColumn">
ab.advisory_body_id,
ab.advisory_body_cid,
ab.advisory_body_name,
ab.business_scope,
ab.create_by,
ab.create_time,
ab.update_by,
ab.update_time
</sql>
</mapper>
\ No newline at end of file
......@@ -4,4 +4,13 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyProjectMapper">
<select id="selectProjectKeysByAdvisoryBodyCids" resultType="java.lang.Long">
select abp.project_key
from advisory_body_project abp
<where>
<if test="advisoryBodyCids != null">
abp.advisory_body_cid = #{advisoryBodyCids}
</if>
</where>
</select>
</mapper>
\ No newline at end of file
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