Commit 4e409f63 authored by tianhongyang's avatar tianhongyang

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys...

Merge branch 'V20231129-中建一局二公司' of http://192.168.60.201/root/dsk-operate-sys into V20231129-中建一局二公司
parents cf8d5b0e 32e33f1a
......@@ -24,6 +24,11 @@ public class TableDataInfo<T> implements Serializable {
*/
private long total;
/**
* 当前页
*/
private long currentPage;
/**
* 列表数据
*/
......@@ -39,6 +44,11 @@ public class TableDataInfo<T> implements Serializable {
*/
private String msg;
/**
* object
*/
private Object object;
/**
* 分页
*
......@@ -52,12 +62,27 @@ public class TableDataInfo<T> implements Serializable {
this.msg = "查询成功";
}
/**
* 分页
*
* @param list 列表数据
* @param total 总记录数
*/
public TableDataInfo(List<T> list, long total, Object object) {
this.rows = list;
this.object = object;
this.total = total;
this.code = HttpStatus.HTTP_OK;
this.msg = "查询成功";
}
public static <T> TableDataInfo<T> build(IPage<T> page) {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(page.getRecords());
rspData.setTotal(page.getTotal());
rspData.setCurrentPage(page.getCurrent());
return rspData;
}
......
......@@ -5,22 +5,23 @@ 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.ProjectDetailBo;
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.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;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
/**
* 咨询机构管理控制层
......@@ -28,14 +29,16 @@ import javax.validation.constraints.NotNull;
* @author sxk
* @since 2023-12-10 15:34:46
*/
@Validated
@RestController
@RequestMapping("advisory/body")
public class AdvisoryBodyManageController extends BaseController {
/**
* 服务对象
*/
@Resource
private IDProjectService baseService;
@Resource
private AdvisoryBodyService advisoryBodyService;
@Resource
private AdvisoryBodyProjectService advisoryBodyProjectService;
/**
* 获取所有项目列表数据
......@@ -50,7 +53,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);
}
/**
......@@ -64,17 +67,8 @@ public class AdvisoryBodyManageController extends BaseController {
/**
* 根据项目主键查询项目详情
*/
@GetMapping("/getProjectDetail/{projectKey}")
public R<ProjectDetailVo> getProjectDetail(@NotNull(message = "项目主键不能为空") @PathVariable Long projectKey) {
return R.ok(baseService.queryProjectDetail(projectKey));
@GetMapping("/getProjectDetail")
public R<ProjectDetailVo> getProjectDetail(ProjectDetailBo projectDetailBo) {
return R.ok(baseService.queryProjectDetail(projectDetailBo));
}
/**
* 根据咨询机构ID查询咨询机构详情
*/
@GetMapping("/getAdvisoryBodyDetail/{advisoryBodyId}")
public R<AdvisoryBody> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) {
return R.ok(baseService.queryAdvisoryBodyDetail(advisoryBodyId));
}
}
}
\ No newline at end of file
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 makejava
* @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));
//}
}
......@@ -5,12 +5,19 @@ 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.common.excel.ExcelUtils;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import com.dsk.cscec.service.IDCustomerService;
import com.dsk.jsk.domain.JskCombineSearchDto;
import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 组织维表(DCustomer)表控制层
*
......@@ -30,7 +37,7 @@ public class DCustomerController extends BaseController {
* 供应商总台账筛选
*/
@PostMapping("/all/searchList")
public TableDataInfo<DCustomer> allSearchList(@RequestBody DCustomerSearchBo bo,@RequestBody PageQuery query) {
public TableDataInfo<DCustomerListVo> allSearchList(@RequestBody DCustomerSearchBo bo,@RequestBody PageQuery query) {
return baseService.allSearchList(bo,query);
}
......@@ -42,6 +49,16 @@ public class DCustomerController extends BaseController {
return R.ok(baseService.getById(customerKey));
}
/**
* 供应商信息
*/
@PostMapping("/export")
public void export(@RequestBody DCustomerSearchBo bo, HttpServletResponse response) {
List<DCustomerListVo> list = baseService.exportList(bo);
ExcelUtils<DCustomerListVo> util = new ExcelUtils<>(DCustomerListVo.class);
util.exportExcel(response, list, "sheet1","大数据经营管理支撑服务平台供应商导出", true);
}
}
......@@ -6,7 +6,6 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
......@@ -31,54 +30,14 @@ public class AdvisoryBody implements Serializable {
* 咨询机构cid(用于查询建设库数据)
*/
private Integer advisoryBodyCid;
/**
* 项目主键(用作关联d_project)
*/
private Long projectKey;
/**
* 咨询机构名称
*/
private String advisoryBodyName;
/**
* 法人代表
*/
private String legalPerson;
/**
* 法人联系电话
*/
private String legalPersonPhone;
/**
* 注册地址
*/
private String regAddress;
/**
* 项目负责人
*/
private String projectLeader;
/**
* 项目负责人专业
*/
private String projectLeaderMajor;
/**
* 项目负责人联系电话
*/
private String projectLeaderPhone;
/**
* 结算金额(万元)
*/
private BigDecimal settleAmount;
/**
* 结算开始时间
*/
private Date settleStartTime;
/**
* 结算完成时间
*/
private Date settleFinishTime;
/**
* 是否为终审单位(0代表是 1代表否)
* 经营范围
*/
private String isFinalJudgeUnit;
private String businessScope;
/**
* 创建者
*/
......
package com.dsk.cscec.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
......@@ -18,6 +19,7 @@ public class AdvisoryBodyProject implements Serializable {
/**
* 项目主键
*/
@TableId(value = "project_key")
private Long projectKey;
/**
* 咨询机构ID
......
......@@ -3,6 +3,7 @@ package com.dsk.cscec.domain.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......@@ -22,10 +23,12 @@ public class AdvisoryBodySearchBo {
/**
* 最小最近合作时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date minLastCooperateDate;
/**
* 最大最近合作时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date maxLastCooperateDate;
/**
* 经营范围
......
......@@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
......@@ -16,9 +17,10 @@ import java.util.List;
@NoArgsConstructor
public class CooperateProjectDetailSearchBo {
/**
* 咨询机构ID
* 咨询机构CID
*/
private Long advisoryBodyId;
@NotNull(message = "咨询机构CID不能为空")
private Long advisoryBodyCid;
/**
* 项目名称
*/
......
package com.dsk.cscec.domain.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author sxk
* @date 2023.12.18
* @time 17:43
*/
@Data
public class ProjectDetailBo {
/**
* 项目主键
*/
@NotNull(message = "项目主键不能为空")
private Long projectKey;
/**
* 咨询机构Cid
*/
@NotNull(message = "咨询机构Cid不能为空")
private Long advisoryBodyCid;
}
package com.dsk.cscec.domain.vo;
import com.dsk.common.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author lcl
* @Data 2023/12/18 14:14
*/
@Data
public class DCustomerListVo implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "序号", width = 6)
private Integer num;
/**
* jsk企业id
*/
private Integer companyId;
/**
* 客商主键
*/
private Long customerKey;
/**
* ipm供应商id
*/
private String customerId;
/**
* 税号
*/
private String taxNumber;
/**
* 供应商名称
*/
@Excel(name = "供应商名称", width = 30)
private String customerName;
/**
* 供应商编号
*/
@Excel(name = "供应商编号", width = 15)
private String customerCode;
/**
* 推荐公司
*/
@Excel(name = "推荐单位", width = 30)
private String recommendOrg;
/**
* 注册地区域
*/
@Excel(name = "公司注册区域", width = 10)
private String registerRegion;
/**
* 省份
*/
@Excel(name = "公司注册省", width = 10)
private String registerProvince;
/**
* 城市
*/
@Excel(name = "公司注册市", width = 10)
private String registerCity;
/**
* 供应商类别
*/
@Excel(name = "供应商类别", width = 10)
private String customerClass;
/**
* 集团专业类别
*/
@Excel(name = "专业类别", width = 20)
private String groupSpecialty;
/**
* 纳税人身份
*/
@Excel(name = "纳税人身份", width = 10)
private String paytaxType;
/**
* 纳税人税率
*/
@Excel(name = "纳税人税率", width = 10)
private String taxRate;
/**
* 供应商状态
*/
@Excel(name = "状态", width = 10)
private String customerState;
/**
* 限用/禁用状态
*/
@Excel(name = "限用/禁用状态", width = 10)
private String badnessState;
/**
* 队长名称
*/
@Excel(name = "劳务队长", width = 10)
private String leaderName;
/**
* 劳务队长联系电话
*/
@Excel(name = "队长联系电话", width = 10)
private String laborCaptainPhone;
/**
* 劳务队长身份证号
*/
@Excel(name = "队长身份证号", width = 10)
private String laborCaptainIdcard;
/**
* 队伍规模人数
*/
@Excel(name = "队伍规模", width = 10)
private Double serviceTeamPersonnum;
/**
* 专业特长
*/
@Excel(name = "专业特长", width = 10)
private String serviceTeamSpeciality;
/**
* 施工承包范围
*/
@Excel(name = "施工承包范围", width = 25)
private String constructJobScope;
/**
* 资质等级
*/
@Excel(name = "资质等级", width = 10)
private String credential;
/**
* 注册资金
*/
@Excel(name = "注册资金(万元)", width = 10)
private Double registerCapital;
/**
* 联系人
*/
@Excel(name = "公司联系人", width = 10)
private String contactPerson;
/**
* 电话
*/
@Excel(name = "联系人电话", width = 10)
private String contactPhone;
/**
* 准入时间
*/
@Excel(name = "准入时间", width = 10 , dateFormat = "yyyy-MM-dd")
private Date approveDate2;
/**
* 企业合作数量
*/
@Excel(name = "公司合作数量", width = 10 )
private Integer enterpriseCooperationCount;
/**
* 项目合作数量
*/
@Excel(name = "合作项目数量", width = 10 )
private Integer projectCooperationCount;
/**
* 考评等级
*/
@Excel(name = "分包商等级", width = 10)
private String creditLevel;
}
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,15 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class ProjectDetailVo extends DProject {
/**
* 咨询机构名称
* 咨询机构
*/
private String advisoryBodyName;
private AdvisoryBody advisoryBody;
/**
* 法定代表人
*/
private String corporatePerson;
/**
* 注册地址
*/
private String regAddress;
}
......@@ -11,7 +11,7 @@ import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 咨询机构(SysAdvisoryBody)表数据库访问层
......@@ -20,11 +20,6 @@ import java.util.Date;
* @since 2023-12-12 10:12:04
*/
public interface AdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
/**
* 查询最近一次合作时间
*/
Date selectLastCooperateTime(@Param("advisoryBodyId") Long advisoryBodyId);
/**
* 获取所有企业列表(咨询机构)数据
*/
......@@ -37,5 +32,20 @@ public interface AdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
* @return
*/
Page<AdvisoryBodyVo> queryListByBo(IPage<AdvisoryBodyBo> build, @Param("bo") AdvisoryBodyBo bo);
/**
* 根据咨询机构名称查询咨询机构Cids
* @param advisoryBodyName 咨询机构名称
* @return 项目IDs
*/
List<Long> selectAdvisoryBodyCidsByName(@Param("advisoryBodyName") String advisoryBodyName);
/**
* 根据项目主键查询咨询机构
*
* @param projectKey 项目主键
* @return 咨询机构
*/
AdvisoryBody queryAdvisoryBodyByProjectKey(@Param("projectKey") Long projectKey);
}
......@@ -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);
}
......@@ -8,6 +8,7 @@ import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -20,7 +21,7 @@ import java.util.List;
*/
public interface DCustomerMapper extends BaseMapper<DCustomer> {
Page<DCustomer> allSearchList(IPage<DCustomerSearchBo> build, @Param("bo") DCustomerSearchBo bo);
Page<DCustomerListVo> allSearchList(IPage<DCustomerSearchBo> build, @Param("bo") DCustomerSearchBo bo);
/**
* 分类查询供应商列表
......
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.AdvisoryBodySearchVo;
/**
* 咨询机构(SysAdvisoryBody)表服务接口
......@@ -10,6 +14,13 @@ 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);
}
......@@ -5,6 +5,9 @@ import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import java.util.List;
/**
* 组织维表(DCustomer)表服务接口
......@@ -14,7 +17,9 @@ import com.dsk.cscec.domain.bo.DCustomerSearchBo;
*/
public interface IDCustomerService extends IService<DCustomer> {
TableDataInfo<DCustomer> allSearchList(DCustomerSearchBo bo, PageQuery query);
TableDataInfo<DCustomerListVo> allSearchList(DCustomerSearchBo bo, PageQuery query);
List<DCustomerListVo> exportList(DCustomerSearchBo bo);
}
......@@ -3,12 +3,10 @@ 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.ProjectDetailBo;
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 +27,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);
/**
* 获取合作项目明细
*
......@@ -50,17 +39,9 @@ public interface IDProjectService extends IService<DProject> {
/**
* 根据项目主键查询项目详情
*
* @param projectKey 项目主键
* @param projectDetailBo 查询实体
* @return 项目详情
*/
ProjectDetailVo queryProjectDetail(Long projectKey);
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
AdvisoryBody queryAdvisoryBodyDetail(Long advisoryBodyId);
ProjectDetailVo queryProjectDetail(ProjectDetailBo projectDetailBo);
}
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.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)表服务实现类
*
* @author sxk
* @since 2023-12-12 10:12:09
*/
@Service("sysAdvisoryBodyService")
@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);
}
}
......@@ -9,6 +9,7 @@ import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import com.dsk.cscec.mapper.DCustomerMapper;
import com.dsk.cscec.mapper.DSubcontractMapper;
import com.dsk.cscec.service.IDCustomerService;
......@@ -39,9 +40,9 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
private BusinessOpportunityRadarService opportunityRadarService;
@Override
public TableDataInfo<DCustomer> allSearchList(DCustomerSearchBo bo, PageQuery query) {
public TableDataInfo<DCustomerListVo> allSearchList(DCustomerSearchBo bo, PageQuery query) {
dealWithCustomerClass(bo);
Page<DCustomer> page = baseMapper.allSearchList(query.build(), bo);
Page<DCustomerListVo> page = baseMapper.allSearchList(query.build(), bo);
if (CollectionUtils.isNotEmpty(page.getRecords())) {
page.getRecords().parallelStream().forEach(item->{
//企业合作数量
......@@ -63,6 +64,22 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
return TableDataInfo.build(page);
}
@Override
public List<DCustomerListVo> exportList(DCustomerSearchBo bo) {
dealWithCustomerClass(bo);
PageQuery query = new PageQuery();
List<DCustomerListVo> records = baseMapper.allSearchList(query.build(), bo).getRecords();
if(CollectionUtils.isNotEmpty(records)){
records.parallelStream().forEach(item->{
//企业合作数量
item.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(item.getCustomerId()));
//项目合作数量
item.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(item.getCustomerId()));
});
}
return records;
}
private void dealWithCustomerClass(DCustomerSearchBo bo) {
if (!ObjectUtils.isEmpty(bo.getCustomerClass())) {
List<String> list = new ArrayList<>();
......
......@@ -107,6 +107,18 @@ public class MonitorController {
return monitorService.companyPage(pageVo);
}
/***
*@Description: 添加企业监控列表 分页
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/12/9 9:29
*/
@PostMapping(value = "system/queryMonitorCompany")
public TableDataInfo queryMonitorCompany(@RequestBody MonitorQueryMonitorCompanyPageVo pageVo) throws Exception{
return monitorService.queryMonitorCompany(pageVo);
}
/***
*@Description: 添加监控
*@Param:
......
......@@ -42,12 +42,12 @@ public class PushMonitorRules implements Serializable {
/**
* 推送时段-起
*/
private Integer timePeriodStart;
private String timePeriodStart;
/**
* 推送时段-止
*/
private Integer timePeriodEnd;
private String timePeriodEnd;
/**
* 接收方式 手机:0 PC:1
......
......@@ -2,6 +2,8 @@ package com.dsk.monitor.domain.vo;
import lombok.Data;
import java.util.List;
/**
* @ClassName ConditionVo
* @Description 共用条件
......@@ -18,7 +20,7 @@ public class ConditionVo {
/**
* 条件查询企业id
*/
private Integer companyOrstaffId;
private Integer companyId;
/**
* 条件查询企业名称(模糊查询)
*/
......@@ -26,15 +28,15 @@ public class ConditionVo {
/**
* 条件查询风险等级:正向,负向,中立,警示
*/
private String riskLevel;
private List<String> riskLevel;
/**
* 条件查询监控维度子级名称
* 条件查询监控维度父级名称数组
*/
private String dimensionId;
private List<String> parentDimension;
/**
* 条件查询监控维度父级名称
* 条件查询监控维度子级名称数组
*/
private String parentId;
private List<String> dimension;
/**
* 条件查询开始时间
*/
......@@ -49,4 +51,9 @@ public class ConditionVo {
*/
private Integer reportType;
/**
* 系统来源(ZJYJ)
*/
private String sysType = "ZJYJ";
}
package com.dsk.monitor.domain.vo;
import com.dsk.jsk.domain.BasePage;
import lombok.Data;
/**
* @ClassName PushMonitorRulesVo
* @Description 添加企业监控列表 分页
* @Author Dgm
* @Date 2023/12/9 11:05
* @Version
*/
@Data
public class MonitorQueryMonitorCompanyPageVo extends BasePage {
/**
* 查询条件
*/
private String companyName;
/**
* 用户id
*/
private Long userId = 7324L;
}
package com.dsk.monitor.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsk.common.utils.DateUtils;
import com.dsk.monitor.domain.dto.PushMonitorRules;
import com.dsk.monitor.mapper.PushMonitorInfoMapper;
import com.dsk.monitor.mapper.PushMonitorRulesMapper;
import com.dsk.monitor.util.SendMessageUtil;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;
/**
* @ClassName PushScheduling
* @Description 发送短信
* @Author Dgm
* @Date 2023/12/9 13:51
* @Version
*/
public class PushScheduling {
@Resource
private PushMonitorInfoMapper monitorInfoMapper;
@Resource
private PushMonitorRulesMapper rulesMapper;
@Scheduled(cron = "0 0 5 * * * ?")
public void receiveModePhone() {
// 获取当前整点时间
Integer concurrentHour = DateUtils.getHour();
QueryWrapper queryWrapper = new QueryWrapper();
PushMonitorRules detail = rulesMapper.selectOne(queryWrapper);
// 推送时段-起
Integer timePeriodStart = detail.getTimePeriodStart();
// 推送时段-止
Integer timePeriodEnd = detail.getTimePeriodEnd();
if (concurrentHour > timePeriodStart && concurrentHour < timePeriodEnd) {
QueryWrapper monitorInfoWrapper = new QueryWrapper();
// 风险类型
monitorInfoWrapper.in("risk_type", detail.getRiskType());
// 监控维度
monitorInfoWrapper.in("dimension", detail.getDimension());
Long count = monitorInfoMapper.selectCount(monitorInfoWrapper);
if (count >0 ) {
SendMessageUtil.sendMessage(detail.getPhones(), count.toString());
}
}
}
}
//package com.dsk.monitor.job;
//
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.dsk.common.utils.DateUtils;
//import com.dsk.monitor.domain.dto.PushMonitorRules;
//import com.dsk.monitor.mapper.PushMonitorInfoMapper;
//import com.dsk.monitor.mapper.PushMonitorRulesMapper;
//import com.dsk.monitor.util.SendMessageUtil;
//import org.springframework.scheduling.annotation.Scheduled;
//
//import javax.annotation.Resource;
//
///**
// * @ClassName PushScheduling
// * @Description 发送短信
// * @Author Dgm
// * @Date 2023/12/9 13:51
// * @Version
// */
//public class PushScheduling {
//
// @Resource
// private PushMonitorInfoMapper monitorInfoMapper;
//
// @Resource
// private PushMonitorRulesMapper rulesMapper;
//
// @Scheduled(cron = "0 0 5 * * * ?")
// public void receiveModePhone() {
// // 获取当前整点时间
// Integer concurrentHour = DateUtils.getHour();
// QueryWrapper queryWrapper = new QueryWrapper();
// PushMonitorRules detail = rulesMapper.selectOne(queryWrapper);
// // 推送时段-起
// Integer timePeriodStart = detail.getTimePeriodStart();
// // 推送时段-止
// Integer timePeriodEnd = detail.getTimePeriodEnd();
// if (concurrentHour > timePeriodStart && concurrentHour < timePeriodEnd) {
// QueryWrapper monitorInfoWrapper = new QueryWrapper();
// // 风险类型
// monitorInfoWrapper.in("risk_type", detail.getRiskType());
// // 监控维度
// monitorInfoWrapper.in("dimension", detail.getDimension());
// Long count = monitorInfoMapper.selectCount(monitorInfoWrapper);
// if (count >0 ) {
// SendMessageUtil.sendMessage(detail.getPhones(), count.toString());
// }
// }
// }
//}
......@@ -79,6 +79,17 @@ public interface MonitorService {
TableDataInfo companyPage(PushMonitorCompanyPageVo pageVo) throws Exception;
/***
*@Description: 企业监控列表 分页
*@Param: pageVo 信息
*@return: R
*@Author: Dgm
*@date: 2023/12/9 10:03
*/
TableDataInfo queryMonitorCompany(MonitorQueryMonitorCompanyPageVo pageVo) throws Exception;
/***
*@Description: 添加监控
*@Param: addVo 信息
......
......@@ -92,13 +92,15 @@ public class MonitorServiceImpl implements MonitorService {
@Override
public TableDataInfo companyDynamicPage(PushMonitorDynamicPageVo pageVo) throws Exception {
Long userId = LoginHelper.getUserId();
pageVo.setPageSize(3);
Long userId = 1733058034734989314L;
if (ObjectUtil.isNotEmpty(userId)) {
pageVo.setUserId(userId);
pageVo.getCondition().setUserId(userId);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/company/info/companyDynamicList", BeanUtil.beanToMap(pageVo, false, false));
return dskOpenApiUtil.responsePage(map);
log.info("companyDynamicPage=============================>"+map);
return dskOpenApiUtil.responsePageT(map);
}
@Override
......@@ -123,6 +125,16 @@ public class MonitorServiceImpl implements MonitorService {
return dskOpenApiUtil.responsePage(map);
}
@Override
public TableDataInfo queryMonitorCompany(MonitorQueryMonitorCompanyPageVo pageVo) throws Exception {
Long userId = LoginHelper.getUserId();
if (ObjectUtil.isNotEmpty(userId)) {
pageVo.setUserId(userId);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/company/supplier/system/queryCancelMonitorCompany", BeanUtil.beanToMap(pageVo, false, false));
return dskOpenApiUtil.responsePage(map);
}
@Override
public R systemAdd(PushMonitorCompanyAddVo addVo) {
Long userId = LoginHelper.getUserId();
......@@ -248,6 +260,13 @@ public class MonitorServiceImpl implements MonitorService {
return BeanUtil.toBean(map, R.class);
}
/***
*@Description: 参数处理
*@Param:
*@return: com.dsk.monitor.domain.vo.PushMonitorSystemDetailVo
*@Author: Dgm
*@date: 2023/12/15 15:43
*/
public PushMonitorSystemDetailVo getDetailVo(PushMonitorSystemDetailVo detailVo) {
String value1 = null;
String value2 = null;
......
......@@ -8,6 +8,7 @@ import com.dsk.search.service.BusinessOpportunityRadarService;
import com.dsk.search.service.ExportService;
import com.dsk.system.domain.vo.AptitudeVo;
import com.dsk.system.domain.vo.SysUserImportVo;
import com.dsk.system.service.ISysUserFileRecordService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -30,6 +31,18 @@ public class ExportController {
@Resource
private ExportService exportService;
@Resource
private ISysUserFileRecordService sysUserFileRecordService;
/**
* 导出回调接口
* @param object
* @return
*/
@PostMapping(value = "/backUrl")
public AjaxResult exportBack(@RequestBody JSONObject object) {
return sysUserFileRecordService.exportBack(object);
}
/**
* 获取导入模板
......@@ -37,10 +50,8 @@ public class ExportController {
@PostMapping("/aptitude/importTemplate")
public void importTemplate(HttpServletResponse response) {
List<Object> list = new ArrayList<>();
AptitudeVo aptitudeVo = new AptitudeVo();
aptitudeVo.setCompanyName("重庆市轨道交通(集团)有限公司");
list.add(aptitudeVo);
ExcelUtil.exportTemplate(list, "企业数据", "excel/userImportTemplate.xlsx", response);
list.add(new AptitudeVo("重庆市轨道交通(集团)有限公司"));
ExcelUtil.exportTemplate(list, "企业数据", "excel/aptitudeImportTemplate.xlsx", response);
}
/*
......
......@@ -3,35 +3,18 @@
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="selectLastCooperateTime" resultType="java.util.Date">
select ab.create_time
from advisory_body ab
where ab.advisory_body_id = ${advisoryBodyId};
</select>
<select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
select advisory_body_id,
project_key,
advisory_body_name,
legal_person,
legal_person_phone,
reg_address,
project_leader,
project_leader_major,
project_leader_phone,
settle_start_time,
settle_finish_time,
is_final_judge_unit
from advisory_body ${ew.getCustomSqlSegment}
select
<include refid="allColumn"></include>
from advisory_body ab ${ew.getCustomSqlSegment}
</select>
<select id="queryListByBo" resultType="com.dsk.cscec.domain.vo.AdvisoryBodyVo">
select abp.advisory_body_id,abp.advisory_body_cid,abp.project_key,abp.project_leader,abp.project_leader_major,
abp.project_leader_phone,
ab.advisory_body_name,
dp.project_name,dp.project_code,dp.province_name,dp.city_name,dp.isinvestproject,dp.project_type1,
dp.project_type,dp.contract_orig_value,dp.owner_name,dp.contract_org_name,dp.load_time
abp.project_leader_phone,
ab.advisory_body_name,
dp.project_name,dp.project_code,dp.province_name,dp.city_name,dp.isinvestproject,dp.project_type1,
dp.project_type,dp.contract_orig_value,dp.owner_name,dp.contract_org_name,dp.load_time
from advisory_body_project abp
left join advisory_body ab on ab.advisory_body_id = abp.advisory_body_id
left join d_project dp on dp.project_key = abp.project_key
......@@ -78,4 +61,35 @@
</where>
order by dp.load_time desc
</select>
<select id="selectAdvisoryBodyCidsByName" resultType="java.lang.Long">
select
ab.advisory_body_cid
from advisory_body ab
<where>
<if test="advisoryBodyName != null">
advisory_body_name like concat('%',#{advisoryBodyName},'%')
</if>
</where>
</select>
<select id="queryAdvisoryBodyByProjectKey" resultType="com.dsk.cscec.domain.AdvisoryBody">
select
<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="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
......@@ -4,12 +4,13 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.DCustomerMapper">
<select id="allSearchList" resultType="com.dsk.cscec.domain.DCustomer">
<select id="allSearchList" resultType="com.dsk.cscec.domain.vo.DCustomerListVo">
select
@row_number:=@row_number + 1 AS num,
customer_key, customer_id, customer_code, customer_name, recommend_org, register_region, register_province, register_city, customer_class, primary_business,
paytax_type, tax_rate, customer_state, leader_name, labor_captain_phone, labor_captain_idcard, service_team_personnum, service_team_speciality,
construct_job_scope, credential, register_capital, contact_person, contact_phone, approve_date2, credit_level, group_specialty
from d_customer
from d_customer , (SELECT @row_number:=0) AS t
where recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475'
<if test="bo.customerName != null and bo.customerName != '' "> and 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) ">
......@@ -61,7 +62,7 @@
</if>
<if test="bo.approveDateBegion != null and bo.approveDateBegion != '' ">and approve_date2 &gt;= #{bo.approveDateBegion}</if>
<if test="bo.approveDateEnd != null and bo.approveDateEnd != '' ">and approve_date2 &lt;= #{bo.approveDateBegion} </if>
<if test="bo.isTeam != null"> and leader_name is <if test="bo.isTeam == 0">not</if> null </if>
<if test="bo.isTeam != null"> and leader_name is <if test="bo.isTeam == 1">not</if> null </if>
order by approve_date2 desc
</select>
......
......@@ -202,7 +202,7 @@
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载央企数字化经营管理系统</div>
<div class="load_title">正在加载大数据经营管理支撑服务平台</div>
</div>
</div>
</body>
......
......@@ -42,6 +42,14 @@ export function companyAdd(data) {
data: data
})
}
// 获取监控推荐企业
export function queryMonitorCompany(data) {
return request({
url: '/monitor/system/queryMonitorCompany',
method: 'post',
data: data
})
}
// 取消监控企业
export function companyCancel(data) {
return request({
......
......@@ -15,6 +15,15 @@ export function customerAll(param) {
method: 'POSt',
});
}
//总台账导出
export function customerExport(param) {
return request({
url: '/customer/export',
method: 'post',
data:param,
responseType: 'blob'
});
}
//专业类别选项列表
export function bizDictData() {
return request({
......
......@@ -81,6 +81,7 @@
}
.total-dc{
float: right;
cursor: pointer;
img{
width: 18px;
margin-right: 6px;
......
......@@ -75,7 +75,7 @@
<el-button type="primary" @click="handleConfirm">确定取消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="qyVisible" custom-class='dialog-claim' title="添加监控企业" width="480px" >
<el-dialog :visible.sync="qyVisible" custom-class='dialog-claim dialogAdd' title="添加监控企业" width="480px" >
<div class="add-content">
<div class="enterprise">
<div class="label">企业名称</div>
......@@ -83,31 +83,24 @@
<el-button slot="append" @click="handleKeyword()">搜索</el-button>
</el-input>
</div>
<div class="companyList" v-if="dataList.length > 0">
<div class="companyList">
<div class="list">
<div class="item" v-for="item in dataList">
<div class="item-left">
<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.companyName.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
<img v-else src="@/assets/images/enterprise.png" :alt="item.companyName.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
</div>
<div class="item-right">
<p class="right-title" v-html="item.name"></p>
<p class="right-title" v-html="item.companyName"></p>
<p class="right-tips">推荐监控</p>
</div>
<el-checkbox @change="changeCheckbox(item)"></el-checkbox>
</div>
</div>
<p class="tips">前往企业查询寻找企业线索<i class="el-icon-arrow-right"></i></p>
<div class="btn">
<div>
<el-button @click="qyVisible===false">取消</el-button>
<el-button type="primary" @click="handleAdd">确定</el-button>
</div>
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button>取消</el-button>
<el-button @click="qyVisible=false">取消</el-button>
<el-button type="primary" @click="handleAdd">确定</el-button>
</div>
</el-dialog>
......@@ -141,7 +134,7 @@
</template>
<script>
import { companyPage,companyList,companyAdd,companyCancel } from '@/api/monitoring/monitoring'
import { companyPage,companyList,companyAdd,companyCancel,queryMonitorCompany } from '@/api/monitoring/monitoring'
import { getToken } from '@/utils/auth'
export default {
name: 'EnterpriseMonitoring',
......@@ -150,6 +143,10 @@
radio:null,
date:[],
radioList:[
{
type:null,
label:'全部'
},
{
type:1,
label:'今天'
......@@ -210,17 +207,7 @@
})
},
handleKeyword(){
let data={
keyword:this.companyName,
page:{
"page": 1,
"limit": 50,
}
}
companyList(data).then(res => {
console.log(res.data.list)
this.dataList=res.data.list
})
this.addEnterprise()
},
changeCheckbox(item){
console.log(item)
......@@ -239,6 +226,7 @@
this.$modal.success("新增成功");
this.querySubmit()
})
},
radioBtn(val){
let endTime = new Date()
......@@ -272,6 +260,9 @@
this.date=[]
break;
default:
this.queryParams.condition.beginTime =''
this.queryParams.condition.endTime =''
this.querySubmit()
break;
}
},
......@@ -304,6 +295,16 @@
},
addEnterprise(){
this.qyVisible=true;
let data={
pageNum:1,
pageSize:10
}
if (this.companyName){
data.companyName=this.companyName;
}
queryMonitorCompany(data).then(res => {
this.dataList=res.rows;
})
},
handleBatch(){
this.pldrVisible=true;
......@@ -430,6 +431,68 @@
}
}
}
::v-deep .dialogAdd{
.el-dialog__body{
padding: 24px 0 !important;
.companyList{
width: 100%;
margin-top: 5px;
background: #FFFFFF;
.list{
max-height:280px;
overflow: auto;
border-top: 1px solid #EEEEEE;
}
.item{
display: flex;
padding: 10px 16px 6px 16px;
position: relative;
border-bottom: 1px solid #EEEEEE;
.item-left{
margin-right: 12px;
img{
width: 40px;
height: 40px;
}
}
.item-right{
width: 360px;
margin-right: 10px;
p{
margin: 0;
padding: 0;
}
.right-title{
font-size: 14px;
color: #232323;
}
.right-tips{
color: rgba(35,35,35,0.4);
font-size: 12px;
}
}
}
.item:last-child{
border-bottom:0;
}
.tips{
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
height: 40px;
line-height: 40px;
color: #0081FF;
font-size: 12px;
padding: 0 0 0 12px;
margin: 0;
}
}
}
.el-dialog__footer{
border-top: 1px solid #EEEEEE;
}
}
::v-deep .dialog-claim{
margin:0 !important;
position:absolute;
......@@ -472,8 +535,9 @@
}
}
.add-content{
height: 200px;
height: 300px;
.enterprise{
margin: 0 20px 10px;
display: -webkit-box;
align-items: flex-start;
line-height: 32px;
......@@ -495,58 +559,6 @@
color: #0081FF;
}
}
.companyList{
width: 372px;
margin-left: 68px;
margin-top: 5px;
background: #FFFFFF;
box-shadow: 0px 4px 8px 2px rgba(0,0,0,0.04), 0px 2px 6px 0px rgba(0,0,0,0.06), 0px 0px 4px 0px rgba(0,0,0,0.08);
border-radius: 4px;
position: absolute;
.list{
max-height:372px;
overflow: auto;
}
.item{
display: flex;
margin: 0 16px;
padding: 14px 0 10px 0;
position: relative;
border-bottom: 1px solid #EEEEEE;
.item-left{
margin-right: 12px;
img{
width: 40px;
height: 40px;
}
}
.item-right{
width: 250px;
p{
margin: 0;
padding: 0;
}
}
}
.item:last-child{
border-bottom: 0;
}
.tips{
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
height: 40px;
line-height: 40px;
color: #0081FF;
font-size: 12px;
padding: 0 0 0 12px;
margin: 0;
}
.btn{
padding: 16px 20px 24px 0;
display: block;
text-align: right;
}
}
}
}
.dialog-footer{
......
......@@ -9,18 +9,22 @@
<div class="main-right">
<div class="select-popper">
<span :class="{ color_text: sffx.length }">司法风险{{sffx.length > 0 ? sffx.length:''}}<i class="el-icon-caret-bottom"></i></span>
<el-select ref="tenderTypeSelect" v-model="sffx" class="select-multiple" collapse-tags @change="handleSelect" multiple placeholder="请选择">
<el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
<el-select ref="tenderTypeSelect" v-model="sffx" class="select-multiple" collapse-tags multiple @change="handleSelect" placeholder="请选择">
<el-checkbox-group v-model="sffx">
<el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-checkbox-group>
</el-select>
</div>
<div class="select-popper">
<span :class="{ color_text: gsfx.length }">工商风险{{gsfx.length > 0 ? gsfx.length:''}}<i class="el-icon-caret-bottom"></i></span>
<el-select ref="tenderTypeSelect" v-model="gsfx" class="select-multiple" collapse-tags @change="handleSelect" multiple placeholder="请选择">
<el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
<el-select ref="tenderTypeSelect" v-model="gsfx" class="select-multiple" collapse-tags multiple placeholder="请选择">
<el-checkbox-group v-model="gsfx">
<el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" @change="handleSelect1" :value="i.dimensionName">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-checkbox-group>
</el-select>
</div>
</div>
......@@ -36,17 +40,29 @@
</div>
<div class="main-item" style="line-height: 32px;">
<div class="label">推送时段</div>
<el-time-picker
is-range
class="timePicker"
v-model="time"
:picker-options="{ step: '01:00' }"
@change="changeTime"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
<el-time-select
placeholder="起始时间"
v-model="startTime"
@change="startChangeTime"
:clearable="false"
:picker-options="{
start: '00:00',
step: '01:00',
end: '22:00'
}">
</el-time-select>
<span style="margin:0 8px;"></span>
<el-time-select
placeholder="结束时间"
v-model="endTime"
:clearable="false"
:picker-options="{
start: '00:00',
step: '01:00',
end: '23:00',
minTime: startTime
}">
</el-time-select>
</div>
</div>
<div class="m-title">监控接收方式</div>
......@@ -79,18 +95,19 @@
return {
selectList:[],
selectList1:[],
arr:[],
sffx:[],
gsfx:[],
checkFx: true,
checkJkwd: true,
queryParams:{
fxType:[],
jkwdType:[],
pushFrequency:'0',
receiveMode:'0',
phones:''
},
time:''
startTime: '',
endTime: '',
detail:{}
}
},
created() {
......@@ -98,16 +115,35 @@
this.selectList=res.data;
for(let i in res.data){
if(res.data[i].dimensionName === '司法风险'){
this.selectList=res.data[i].children
this.selectList=res.data[i].children;
for(let i=0; i<this.selectList.length; i++){
this.arr.push(this.selectList[i].dimensionName)
}
}
if(res.data[i].dimensionName === '工商风险'){
this.selectList1=res.data[i].children
}
}
rulesDetail({}).then(res => {
console.log(res)
let dimension=res.data.dimension.split(',');
this.queryParams={
pushFrequency:res.data.pushFrequency.toString(),
receiveMode:res.data.receiveMode.toString(),
phones:res.data.phones
}
this.startTime =res.data.timePeriodStart
this.endTime = res.data.timePeriodEnd
for(let item in dimension){
if (this.arr.indexOf(dimension[item]) == -1) {
this.gsfx.push(dimension[item])
} else {
this.sffx.push(dimension[item])
}
}
})
})
rulesDetail({}).then(res => {
console.log(res)
})
},
methods: {
changeSffx(val) {
......@@ -125,7 +161,14 @@
}
},
handleSelect(val) {
// console.log(val)
},
handleSelect1(val) {
},
// 开始时间改变
startChangeTime(value){
this.endTime = ""
},
handleAdd(){
let params={
......@@ -147,38 +190,20 @@
params.riskType='工商风险'
params.dimension=this.gsfx.join()
}
if(this.time.length > 0){
params.timePeriodStart=this.time[0]
params.timePeriodEnd=this.time[1]
if(this.startTime){
params.timePeriodStart=this.startTime
}
if(this.endTime){
params.timePeriodEnd=this.endTime
}
console.log(params)
insertOrUpdate(params).then(res => {
console.log(res)
this.$modal.success(res.msg);
})
},
changeTime(val){
console.log(val)
},
checkFx1Btn(val){
console.log(val)
if (val.length > 0) {
this.checkFx = false;
} else if (val.length == 0) {
this.checkFx = true;
}
},
checkJkwdBtn(val) {
this.queryParams.jkwdType = [];
this.checkJkwd = true;
},
checkJkwd1Btn(val){
console.log(val)
if (val.length > 0) {
this.checkJkwd = false;
} else if (val.length == 0) {
this.checkJkwd = true;
}
},
}
}
</script>
......@@ -265,9 +290,12 @@
}
}
}
::v-deep .timePicker{
width: 228px;
::v-deep .el-date-editor.el-input{
width: 160px;
height: 32px;
.el-input__inner{
height: 32px;
}
.el-range__icon{
line-height: 27px;
}
......
......@@ -157,9 +157,13 @@
data() {
return {
changeTime,
radio:1,
radio:null,
date:'',
radioList:[
{
type:null,
label:'全部'
},
{
type:1,
label:'今天'
......@@ -423,6 +427,9 @@
this.date=[]
break;
default:
this.queryParams.condition.beginTime=''
this.queryParams.condition.endTime=''
this.querySubmit()
break;
}
},
......
......@@ -33,13 +33,13 @@
<span class="right-label">提示:</span>
<span class="right-color color1">{{i.promptCount}}</span>
<span class="right-label">正向:</span>
<span class="right-color color1">{{i.positiveCount}}</span>
<span class="right-color color2">{{i.positiveCount}}</span>
<span class="right-label">低风险:</span>
<span class="right-color color1">{{i.lowRiskCount}}</span>
<span class="right-color color3">{{i.lowRiskCount}}</span>
<span class="right-label">中风险:</span>
<span class="right-color color1">{{i.middleRiskCount}}</span>
<span class="right-color color4">{{i.middleRiskCount}}</span>
<span class="right-label">高风险:</span>
<span class="right-color color1">{{i.highRiskCount}}</span>
<span class="right-color color5">{{i.highRiskCount}}</span>
</p>
<div class="tips">新增<span style="color:#0081FF;padding: 0 4px;">{{i.dynamicTotal}}</span>条动态信息</div>
</div>
......
......@@ -70,9 +70,9 @@
<div class="table-supplier">
<div class="total-title">
<div class="totals">{{total}}</div>
<p class="total-dc">
<p class="total-dc" @click="customerExport">
<img src="@/assets/images/EXCEL.png" alt="">
<span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span>
<span class="excel">导出EXCEL</span>
</p>
</div>
<div class="table-item-jf table-item-jf1 empty-table" v-if="total == 0 && !isSkeleton">
......@@ -174,7 +174,7 @@
</el-table-column>
<el-table-column label="队伍规模" min-width="120" :resizable="false">
<template slot-scope="scope">
{{scope.row.legalPerson||"--"}}
{{scope.row.serviceTeamPersonnum||"--"}}
</template>
</el-table-column>
<el-table-column label="专业特长" min-width="120" :resizable="false">
......@@ -293,7 +293,7 @@
import "@/assets/styles/public.scss";
import "@/assets/styles/supplierlist.scss";
import skeleton from '@/views/project/projectList/component/skeleton';
import {customerAll,areaAll} from '@/api/supplier/supplier';
import {customerAll,areaAll,customerExport} from '@/api/supplier/supplier';
import { getDicts } from "@/api/system/dict/data";
export default {
name: 'ledger',
......@@ -367,6 +367,38 @@
this.litigationstatus = res.data
})
},
customerExport(){
let param = this.formdata
if(param.times){
param.approveDateBegion = param.times[0]
param.approveDateEnd = param.times[1]
}else{
param.approveDateBegion = ''
param.approveDateEnd = ''
}
if(param.areas){
let province = []
let city = []
param.areas.forEach(item=>{
if(item.length == 3){//到市
if(item[1].indexOf('重庆')>-1||item[1].indexOf('北京')>-1||item[1].indexOf('天津')>-1||item[1].indexOf('上海')>-1){
province.push(item[1])
}else{
city.push(item[2])
}
}
})
param.province = province
param.city = city
}else{
param.province = []
param.city = []
}
// this.download('/customer/export', param, `type_${new Date().getTime()}.xlsx`)
customerExport(param).then(blob => {
this.$download.saveAs(blob, `type_${new Date().getTime()}.xlsx`)
})
},
getSearch(){
this.formdata.pageNum = 1
this.customerAll()
......
......@@ -53,18 +53,31 @@
</div>
<div class="main-item" style="line-height: 32px;">
<div class="label">推送时段</div>
<el-time-picker
is-range
class="timePicker"
v-model="time"
value-format="HH:mm:ss"
@change="changeTime"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
<el-time-select
placeholder="起始时间"
v-model="startTime"
@change="startChangeTime"
:clearable="false"
:picker-options="{
start: '00:00',
step: '01:00',
end: '22:00'
}">
</el-time-select>
<span style="margin:0 8px;"></span>
<el-time-select
placeholder="结束时间"
v-model="endTime"
:clearable="false"
:picker-options="{
start: '00:00',
step: '01:00',
end: '23:00',
minTime: startTime
}">
</el-time-select>
</div>
<el-button type="primary" @click="handleSave">保存</el-button>
</div>
</div>
<el-dialog :visible.sync="visible" custom-class='dialog-claim' title="新增推送人信息" width="480px" >
......@@ -127,7 +140,8 @@
tableData:[],
visible:false,
radioTime:'0',
time:[],
startTime: '',
endTime: '',
tableDataTotal:0,
pageSize:10,
pageNum:1,
......@@ -145,7 +159,9 @@
this.radioTime=response.data.configValue
});
configKey("customer-badness-time-frame").then(response => {
this.time=[this.converTime(response.data.configValue.split('-')[0]),this.converTime(response.data.configValue.split('-')[1])]
let times = response.data.configValue.split("-");
this.startTime = times[0].length<2 ?'0'+times[0]+':00':times[0]
this.endTime = times[1].length<2 ?'0'+times[1]+':00':times[1]
});
this.getList()
},
......@@ -178,6 +194,10 @@
}
this.id=item.id
},
// 开始时间改变
startChangeTime(value){
this.endTime = ""
},
handleAdd(){
let params={
pushTypeCode:'custoemr-badness',
......@@ -214,9 +234,8 @@
this.getList()
})
},
changeTime(val){
console.log(val)
let time=val[0]+'-'+val[1]
handleSave(){
let time=this.startTime.substring(0,2)+'-'+this.endTime.substring(0,2)
configUpdate({configKey:'customer-badness-time-frame',configValue:time}).then(res => {
this.$modal.success(res.msg);
});
......
......@@ -38,7 +38,7 @@ module.exports = {
// target: `http://47.104.91.229:9099/prod-api`,//测试-旧
target: `http://111.204.34.146:9099/prod-api`,//测试
// target: `http://192.168.60.5:9098`,//陈跃方
// target: `http://192.168.60.27:9098`,//邓
// target: `http://122.9.160.122:9011`, //线上
// target: `http://192.168.0.165:9098`,//施-无线
// target: `http://192.168.60.46:9098`,//施-有线
......
......@@ -74,4 +74,8 @@ public class AptitudeVo implements Serializable {
@Excel(name = "经营范围")
private String businessScope;
public AptitudeVo(String deptName) {
this.companyName = deptName.replace(" ", "");
}
}
......@@ -125,6 +125,25 @@ public class DskOpenApiUtil {
return new TableDataInfo((List<?>) list, count);
}
/***
*@Description: 特殊返回
*@Param:
*@return: com.dsk.common.core.page.TableDataInfo
*@Author: Dgm
*@date: 2023/12/15 15:04
*/
public TableDataInfo responsePageT(Map<String, Object> resMap) throws Exception {
Integer code = MapUtils.getInteger(resMap, "code", 300);
Map data = MapUtils.getMap(resMap, "data", null);
if (200 != code) {
throw new RuntimeException();
}
Integer count = MapUtils.getInteger(data, "totalCount", 0);
Object list = MapUtils.getObject(data, "list", "");
Object object = MapUtils.getObject(data, "obj", "");
return new TableDataInfo((List<?>) list, count, object);
}
private void initApiConfig() {
TenantHelper.ignore(() -> {
SysConfig accessKeyId = sysConfigMapper.selectOne(Wrappers.<SysConfig>lambdaQuery().eq(SysConfig::getTenantId, TenantConstants.DEFAULT_TENANT_ID).eq(SysConfig::getConfigKey, "dsk-Appkey"));
......
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