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

咨询机构管理优化

parent 173910b1
...@@ -5,14 +5,12 @@ import com.dsk.common.core.controller.BaseController; ...@@ -5,14 +5,12 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; 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.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo; import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo; import com.dsk.cscec.domain.bo.ProjectSearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo; import com.dsk.cscec.domain.vo.*;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo; import com.dsk.cscec.service.AdvisoryBodyProjectService;
import com.dsk.cscec.domain.vo.ProjectDetailVo; import com.dsk.cscec.service.AdvisoryBodyService;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import com.dsk.cscec.service.IDProjectService; import com.dsk.cscec.service.IDProjectService;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -33,11 +31,12 @@ import javax.validation.constraints.NotNull; ...@@ -33,11 +31,12 @@ import javax.validation.constraints.NotNull;
@RestController @RestController
@RequestMapping("advisory/body") @RequestMapping("advisory/body")
public class AdvisoryBodyManageController extends BaseController { public class AdvisoryBodyManageController extends BaseController {
/**
* 服务对象
*/
@Resource @Resource
private IDProjectService baseService; private IDProjectService baseService;
@Resource
private AdvisoryBodyService advisoryBodyService;
@Resource
private AdvisoryBodyProjectService advisoryBodyProjectService;
/** /**
* 获取所有项目列表数据 * 获取所有项目列表数据
...@@ -52,7 +51,7 @@ public class AdvisoryBodyManageController extends BaseController { ...@@ -52,7 +51,7 @@ public class AdvisoryBodyManageController extends BaseController {
*/ */
@GetMapping("/getAdvisoryBodyList") @GetMapping("/getAdvisoryBodyList")
public TableDataInfo<AdvisoryBodySearchVo> getAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery) { 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 { ...@@ -75,8 +74,8 @@ public class AdvisoryBodyManageController extends BaseController {
* 根据咨询机构ID查询咨询机构详情 * 根据咨询机构ID查询咨询机构详情
*/ */
@GetMapping("/getAdvisoryBodyDetail/{advisoryBodyId}") @GetMapping("/getAdvisoryBodyDetail/{advisoryBodyId}")
public R<AdvisoryBody> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) { public R<AdvisoryBodyDetailVo> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) {
return R.ok(baseService.queryAdvisoryBodyDetail(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; package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.DProject; import com.dsk.cscec.domain.DProject;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
...@@ -17,7 +18,7 @@ import lombok.NoArgsConstructor; ...@@ -17,7 +18,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class ProjectDetailVo extends DProject { public class ProjectDetailVo extends DProject {
/** /**
* 咨询机构名称 * 咨询机构
*/ */
private String advisoryBodyName; private AdvisoryBody advisoryBody;
} }
...@@ -34,11 +34,11 @@ public interface AdvisoryBodyMapper extends BaseMapper<AdvisoryBody> { ...@@ -34,11 +34,11 @@ public interface AdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
Page<AdvisoryBodyVo> queryListByBo(IPage<AdvisoryBodyBo> build, @Param("bo") AdvisoryBodyBo bo); Page<AdvisoryBodyVo> queryListByBo(IPage<AdvisoryBodyBo> build, @Param("bo") AdvisoryBodyBo bo);
/** /**
* 根据咨询机构名称查询对应的项目IDs * 根据咨询机构名称查询咨询机构Cids
* @param advisoryBodyName 咨询机构名称 * @param advisoryBodyName 咨询机构名称
* @return 项目IDs * @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; ...@@ -2,6 +2,9 @@ package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.AdvisoryBodyProject; import com.dsk.cscec.domain.AdvisoryBodyProject;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 咨询机构和项目关联表(AdvisoryBodyProject)表数据库访问层 * 咨询机构和项目关联表(AdvisoryBodyProject)表数据库访问层
...@@ -11,5 +14,12 @@ import com.dsk.cscec.domain.AdvisoryBodyProject; ...@@ -11,5 +14,12 @@ import com.dsk.cscec.domain.AdvisoryBodyProject;
*/ */
public interface AdvisoryBodyProjectMapper extends BaseMapper<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; package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService; 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.AdvisoryBody;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyDetailVo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
/** /**
* 咨询机构(SysAdvisoryBody)表服务接口 * 咨询机构(SysAdvisoryBody)表服务接口
...@@ -10,6 +15,21 @@ import com.dsk.cscec.domain.AdvisoryBody; ...@@ -10,6 +15,21 @@ import com.dsk.cscec.domain.AdvisoryBody;
* @since 2023-12-12 10:12:09 * @since 2023-12-12 10:12:09
*/ */
public interface AdvisoryBodyService extends IService<AdvisoryBody> { 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; ...@@ -3,12 +3,9 @@ package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.DProject; 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.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo; 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.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo; import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo; import com.dsk.cscec.domain.vo.ProjectSearchVo;
...@@ -29,15 +26,6 @@ public interface IDProjectService extends IService<DProject> { ...@@ -29,15 +26,6 @@ public interface IDProjectService extends IService<DProject> {
*/ */
TableDataInfo<ProjectSearchVo> queryProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery); 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> { ...@@ -54,13 +42,5 @@ public interface IDProjectService extends IService<DProject> {
* @return 项目详情 * @return 项目详情
*/ */
ProjectDetailVo queryProjectDetail(Long projectKey); ProjectDetailVo queryProjectDetail(Long projectKey);
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
AdvisoryBody queryAdvisoryBodyDetail(Long advisoryBodyId);
} }
package com.dsk.cscec.service.impl; 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.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.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.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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/** /**
* 咨询机构(SysAdvisoryBody)表服务实现类 * 咨询机构(SysAdvisoryBody)表服务实现类
* *
...@@ -14,6 +35,93 @@ import org.springframework.stereotype.Service; ...@@ -14,6 +35,93 @@ import org.springframework.stereotype.Service;
*/ */
@Service("advisoryBodyService") @Service("advisoryBodyService")
public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, AdvisoryBody> implements 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;
}
} }
package com.dsk.cscec.service.impl; package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -15,10 +17,8 @@ import com.dsk.cscec.constant.QueryConstants; ...@@ -15,10 +17,8 @@ import com.dsk.cscec.constant.QueryConstants;
import com.dsk.cscec.domain.AdvisoryBody; import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.AdvisoryBodyProject; import com.dsk.cscec.domain.AdvisoryBodyProject;
import com.dsk.cscec.domain.DProject; 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.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo; 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.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo; import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo; import com.dsk.cscec.domain.vo.ProjectSearchVo;
...@@ -26,16 +26,13 @@ import com.dsk.cscec.mapper.AdvisoryBodyMapper; ...@@ -26,16 +26,13 @@ import com.dsk.cscec.mapper.AdvisoryBodyMapper;
import com.dsk.cscec.mapper.AdvisoryBodyProjectMapper; import com.dsk.cscec.mapper.AdvisoryBodyProjectMapper;
import com.dsk.cscec.mapper.DProjectMapper; import com.dsk.cscec.mapper.DProjectMapper;
import com.dsk.cscec.service.IDProjectService; import com.dsk.cscec.service.IDProjectService;
import com.dsk.jsk.domain.EnterpriseInfoHeaderBody;
import com.dsk.system.utils.DskOpenApiUtil; import com.dsk.system.utils.DskOpenApiUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 咨询机构管理 * 咨询机构管理
...@@ -64,34 +61,29 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -64,34 +61,29 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
*/ */
@Override @Override
public TableDataInfo<ProjectSearchVo> queryProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery) { public TableDataInfo<ProjectSearchVo> queryProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery) {
//根据咨询机构名称查询对应的项目IDs
String advisoryBodyName = projectSearchBo.getAdvisoryBodyName(); String advisoryBodyName = projectSearchBo.getAdvisoryBodyName();
List<Long> projectIds = advisoryBodyMapper.selectProjectIdsByAdvisoryBodyName(advisoryBodyName); List<Long> projectKeys = null;
if (StringUtils.isNotBlank(advisoryBodyName)) { if (StringUtils.isNotBlank(advisoryBodyName)) {
//根据咨询机构名称查询咨询机构 //根据咨询机构名称查询咨询机构Cids
for (AdvisoryBody advisoryBody : advisoryBodyMapper.selectList(new LambdaQueryWrapper<AdvisoryBody>() List<Long> advisoryBodyCids = advisoryBodyMapper.selectAdvisoryBodyCidsByName(advisoryBodyName);
.like(AdvisoryBody::getAdvisoryBodyName, advisoryBodyName))) { //根据咨询机构Cids查询项目Keys
//根据咨询机构CID查询项目主键 List<Long> projectKeys1 = advisoryBodyProjectMapper.selectProjectKeysByAdvisoryBodyCids(advisoryBodyCids);
for (AdvisoryBodyProject advisoryBodyProject : advisoryBodyProjectMapper.selectList(new LambdaQueryWrapper<AdvisoryBodyProject>() if (projectKeys1.isEmpty()) {
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBody.getAdvisoryBodyCid()))) { return TableDataInfo.build();
projectIds.add(advisoryBodyProject.getProjectKey());
}
} }
projectKeys = projectKeys1;
} }
Page<ProjectSearchVo> page = baseMapper.selectPageProjectList(pageQuery.build(), this.buildProjectQueryWrapper(projectSearchBo, projectIds)); Page<ProjectSearchVo> page = baseMapper.selectPageProjectList(pageQuery.build(), this.buildProjectQueryWrapper(projectSearchBo, projectKeys));
//补充咨询机构信息 //补充咨询机构信息
for (ProjectSearchVo projectSearchVo : page.getRecords()) { for (ProjectSearchVo projectSearchVo : page.getRecords()) {
AdvisoryBody advisoryBody = this.getAdvisoryBodyByProjectKey(projectSearchVo.getProjectKey()); projectSearchVo.setAdvisoryBody(this.getAdvisoryBodyByProjectKey(projectSearchVo.getProjectKey()));
if (ObjectUtil.isNotNull(advisoryBody)) {
projectSearchVo.setAdvisoryBody(advisoryBody);
}
} }
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
private Wrapper<DProject> buildProjectQueryWrapper(ProjectSearchBo projectSearchBo, List<Long> projectIds) { private Wrapper<DProject> buildProjectQueryWrapper(ProjectSearchBo projectSearchBo, List<Long> projectKeys) {
QueryWrapper<DProject> wrapper = Wrappers.query(); QueryWrapper<DProject> wrapper = Wrappers.query();
//咨询机构的项目数据取中建一局集团第二建筑有限公司和他的下级组织 //咨询机构的项目数据取中建一局集团第二建筑有限公司和他的下级组织
wrapper wrapper
...@@ -102,7 +94,7 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -102,7 +94,7 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
//项目名称 //项目名称
.like(StringUtils.isNotBlank(projectSearchBo.getProjectName()), "p.project_name", projectSearchBo.getProjectName()) .like(StringUtils.isNotBlank(projectSearchBo.getProjectName()), "p.project_name", projectSearchBo.getProjectName())
//根据咨询机构名称查出来对应的项目ID //根据咨询机构名称查出来对应的项目ID
.in(!projectIds.isEmpty(), "p.project_id", projectIds) .in(ObjectUtil.isNotNull(projectKeys) && !projectKeys.isEmpty(), "p.project_key", projectKeys)
//业主单位 //业主单位
.like(StringUtils.isNotBlank(projectSearchBo.getOwnerUnit()), "p.owner_name", projectSearchBo.getOwnerUnit()) .like(StringUtils.isNotBlank(projectSearchBo.getOwnerUnit()), "p.owner_name", projectSearchBo.getOwnerUnit())
//项目创建时间(字段去的合同签约日期) //项目创建时间(字段去的合同签约日期)
...@@ -135,58 +127,6 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -135,58 +127,6 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
return advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectKey); return advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectKey);
} }
/**
* 获取所有企业列表(咨询机构)数据
*
* @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 = advisoryBodyMapper.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::getCreateBy));
advisoryBodySearchVo.setLastCooperateTime(advisoryBodyProjectList.get(0).getCreateTime());
//经营范围
advisoryBodySearchVo.setBusinessStatus(MapUtils.getString(companyData, "businessStatus", ""));
advisoryBodySearchVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
String provinceName = MapUtils.getString(companyData, "provinceName", "");
String cityName = MapUtils.getString(companyData, "cityName", "");
String districtName = MapUtils.getString(companyData, "districtName", "");
advisoryBodySearchVo.setRegCapital(provinceName + "-" + cityName + "-" + districtName);
advisoryBodySearchVo.setRegArea(MapUtils.getString(companyData, "regArea", ""));
advisoryBodySearchVo.setRegisteredDate(MapUtils.getString(companyData, "registeredDate", ""));
advisoryBodySearchVo.setBusinessScope(MapUtils.getString(companyData, "businessScope", ""));
//合作项目数量
advisoryBodySearchVo.setCooperateProjectCount(advisoryBodyMapper.selectCount(new LambdaQueryWrapper<AdvisoryBody>()
.eq(AdvisoryBody::getAdvisoryBodyId, advisoryBodySearchVo.getAdvisoryBodyId())));
}
return TableDataInfo.build(page);
}
/** /**
* 获取合作项目明细 * 获取合作项目明细
* *
...@@ -196,21 +136,14 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -196,21 +136,14 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
*/ */
@Override @Override
public TableDataInfo<CooperateProjectDetailSearchVo> queryCooperateProjectDetailList(CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery) { public TableDataInfo<CooperateProjectDetailSearchVo> queryCooperateProjectDetailList(CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery) {
//先根据咨询机构CID查出所有该咨询机构下的记录 //先根据咨询机构CID查出所有该咨询机构下的项目主键keys
List<AdvisoryBody> advisoryBodyList = advisoryBodyMapper.selectList(new LambdaQueryWrapper<AdvisoryBody>() List<Long> projectKeys = advisoryBodyProjectMapper.selectProjectKeysByAdvisoryBodyCids(Collections.singletonList(cooperateProjectDetailSearchBo.getAdvisoryBodyCid()));
.eq(AdvisoryBody::getAdvisoryBodyCid, cooperateProjectDetailSearchBo.getAdvisoryBodyCid()));
//提取所有项目主键
ArrayList<Long> projectKeyList = new ArrayList<>();
for (AdvisoryBody advisoryBody : advisoryBodyList) {
//projectKeyList.add(advisoryBody.getProjectKey());
}
//再根据记录终改的项目主键查询项目详情 //再根据记录终改的项目主键查询项目详情
QueryWrapper<DProject> wrapper = Wrappers.query(); QueryWrapper<DProject> wrapper = Wrappers.query();
wrapper wrapper
//项目主键 //项目主键
.in(!projectKeyList.isEmpty(), "project_key", projectKeyList) .in(!projectKeys.isEmpty(), "project_key", projectKeys)
//项目名称 //项目名称
.like(StringUtils.isNotBlank(cooperateProjectDetailSearchBo.getProjectName()), "project_name", cooperateProjectDetailSearchBo.getProjectName()) .like(StringUtils.isNotBlank(cooperateProjectDetailSearchBo.getProjectName()), "project_name", cooperateProjectDetailSearchBo.getProjectName())
//项目承接类型 //项目承接类型
...@@ -225,15 +158,12 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -225,15 +158,12 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
.in(!cooperateProjectDetailSearchBo.getCityName().isEmpty(), "city_name", cooperateProjectDetailSearchBo.getCityName()); .in(!cooperateProjectDetailSearchBo.getCityName().isEmpty(), "city_name", cooperateProjectDetailSearchBo.getCityName());
Page<CooperateProjectDetailSearchVo> page = baseMapper.selectPageCooperateProjectDetailList(pageQuery.build(), wrapper); Page<CooperateProjectDetailSearchVo> page = baseMapper.selectPageCooperateProjectDetailList(pageQuery.build(), wrapper);
////填充结算天数 //填充结算天数
//for (CooperateProjectDetailSearchVo cooperateProjectDetailSearchVo : page.getRecords()) { for (CooperateProjectDetailSearchVo cooperateProjectDetailSearchVo : page.getRecords()) {
// for (AdvisoryBody advisoryBody : advisoryBodyList) { AdvisoryBodyProject advisoryBodyProject = advisoryBodyProjectMapper.selectById(cooperateProjectDetailSearchVo.getProjectKey());
// if (Objects.equals(advisoryBody.getProjectKey(), cooperateProjectDetailSearchVo.getProjectKey())) { long betweenDays = DateUtil.between(advisoryBodyProject.getSettleStartTime(), advisoryBodyProject.getSettleFinishTime(), DateUnit.DAY);
// long betweenDays = DateUtil.between(advisoryBody.getSettleStartTime(), advisoryBody.getSettleFinishTime(), DateUnit.DAY); cooperateProjectDetailSearchVo.setSettlementDays(betweenDays);
// cooperateProjectDetailSearchVo.setSettlementDays(betweenDays); }
// }
// }
//}
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
...@@ -249,22 +179,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -249,22 +179,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
DProject dProject = baseMapper.selectOne(new LambdaQueryWrapper<DProject>() DProject dProject = baseMapper.selectOne(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectKey, projectKey)); .eq(DProject::getProjectKey, projectKey));
ProjectDetailVo projectDetailVo = BeanUtil.toBean(dProject, ProjectDetailVo.class); ProjectDetailVo projectDetailVo = BeanUtil.toBean(dProject, ProjectDetailVo.class);
//查询咨询机构信息 //查询咨询机构信息并填充
AdvisoryBody advisoryBody = advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectKey); projectDetailVo.setAdvisoryBody(advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectKey));
//填充咨询机构名称
projectDetailVo.setAdvisoryBodyName(advisoryBody.getAdvisoryBodyName());
return projectDetailVo; return projectDetailVo;
} }
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
@Override
public AdvisoryBody queryAdvisoryBodyDetail(Long advisoryBodyId) {
return null;
}
} }
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
<mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyMapper"> <mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyMapper">
<select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo"> <select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
select select
<include refid="allColumnOfAdvisoryBody"></include> <include refid="allColumn"></include>
from advisory_body ${ew.getCustomSqlSegment} from advisory_body ab ${ew.getCustomSqlSegment}
</select> </select>
<select id="queryListByBo" resultType="com.dsk.cscec.domain.vo.AdvisoryBodyVo"> <select id="queryListByBo" resultType="com.dsk.cscec.domain.vo.AdvisoryBodyVo">
...@@ -62,33 +62,34 @@ ...@@ -62,33 +62,34 @@
order by dp.load_time desc order by dp.load_time desc
</select> </select>
<select id="selectProjectIdsByAdvisoryBodyName" resultType="java.lang.Long"> <select id="selectAdvisoryBodyCidsByName" resultType="java.lang.Long">
select select
<include refid="allColumnOfAdvisoryBody"></include> ab.advisory_body_cid
from advisory_body from advisory_body ab
where <where>
<if test="advisoryBodyName != null"> <if test="advisoryBodyName != null">
and advisory_body_name like concat('%',#{advisoryBodyName},'%') advisory_body_name like concat('%',#{advisoryBodyName},'%')
</if> </if>
</where>
</select> </select>
<select id="queryAdvisoryBodyByProjectKey" resultType="com.dsk.cscec.domain.AdvisoryBody"> <select id="queryAdvisoryBodyByProjectKey" resultType="com.dsk.cscec.domain.AdvisoryBody">
select select
<include refid="allColumnOfAdvisoryBody"></include> <include refid="allColumn"></include>
from advisory_body ab from advisory_body ab
left join advisory_body_project abp left join advisory_body_project abp
on abp.advisory_body_cid = ab.advisory_body_cid on abp.advisory_body_cid = ab.advisory_body_cid
where abp.project_key = ${projectKey}; where abp.project_key = ${projectKey};
</select> </select>
<sql id="allColumnOfAdvisoryBody"> <sql id="allColumn">
advisory_body_id, ab.advisory_body_id,
advisory_body_cid, ab.advisory_body_cid,
advisory_body_name, ab.advisory_body_name,
business_scope, ab.business_scope,
create_by, ab.create_by,
create_time, ab.create_time,
update_by, ab.update_by,
update_time ab.update_time
</sql> </sql>
</mapper> </mapper>
\ No newline at end of file
...@@ -4,4 +4,13 @@ ...@@ -4,4 +4,13 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyProjectMapper"> <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> </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