Commit ce1a3b91 authored by huangjie's avatar huangjie

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 8e9c8e90 48e021e3
...@@ -9,6 +9,7 @@ import cn.hutool.core.lang.tree.Tree; ...@@ -9,6 +9,7 @@ import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.annotation.Log; import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit;
import com.dsk.common.constant.GlobalConstants; import com.dsk.common.constant.GlobalConstants;
import com.dsk.common.constant.TenantConstants; import com.dsk.common.constant.TenantConstants;
import com.dsk.common.core.controller.BaseController; import com.dsk.common.core.controller.BaseController;
...@@ -187,6 +188,7 @@ public class SysUserController extends BaseController { ...@@ -187,6 +188,7 @@ public class SysUserController extends BaseController {
/** /**
* 新增用户 * 新增用户
*/ */
@RepeatSubmit
@SaCheckPermission("system:user:add") @SaCheckPermission("system:user:add")
@Log(title = "用户管理", businessType = BusinessType.INSERT) @Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
......
...@@ -187,7 +187,7 @@ sms: ...@@ -187,7 +187,7 @@ sms:
territory: ap-guangzhou territory: ap-guangzhou
dsk: dsk:
exportBackUrl: http://47.104.91.229:9099/prod-api/export/backUrl exportBackUrl: http://111.204.34.146:9099/prod-api/export/backUrl
sa-token: sa-token:
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
......
...@@ -187,7 +187,7 @@ sms: ...@@ -187,7 +187,7 @@ sms:
territory: ap-guangzhou territory: ap-guangzhou
dsk: dsk:
exportBackUrl: http://47.104.91.229:9099/prod-api/export/backUrl exportBackUrl: http://111.204.34.146:9099/prod-api/export/backUrl
sa-token: sa-token:
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
......
...@@ -24,6 +24,11 @@ public class TableDataInfo<T> implements Serializable { ...@@ -24,6 +24,11 @@ public class TableDataInfo<T> implements Serializable {
*/ */
private long total; private long total;
/**
* 当前页
*/
private long currentPage;
/** /**
* 列表数据 * 列表数据
*/ */
...@@ -77,6 +82,7 @@ public class TableDataInfo<T> implements Serializable { ...@@ -77,6 +82,7 @@ public class TableDataInfo<T> implements Serializable {
rspData.setMsg("查询成功"); rspData.setMsg("查询成功");
rspData.setRows(page.getRecords()); rspData.setRows(page.getRecords());
rspData.setTotal(page.getTotal()); rspData.setTotal(page.getTotal());
rspData.setCurrentPage(page.getCurrent());
return rspData; return rspData;
} }
......
...@@ -5,23 +5,23 @@ import com.dsk.common.core.controller.BaseController; ...@@ -5,23 +5,23 @@ 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.ProjectDetailBo;
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.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;
import com.dsk.cscec.service.AdvisoryBodyProjectService;
import com.dsk.cscec.service.AdvisoryBodyService;
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;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
/** /**
* 咨询机构管理控制层 * 咨询机构管理控制层
...@@ -33,11 +33,12 @@ import javax.validation.constraints.NotNull; ...@@ -33,11 +33,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 +53,7 @@ public class AdvisoryBodyManageController extends BaseController { ...@@ -52,7 +53,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);
} }
/** /**
...@@ -66,17 +67,8 @@ public class AdvisoryBodyManageController extends BaseController { ...@@ -66,17 +67,8 @@ public class AdvisoryBodyManageController extends BaseController {
/** /**
* 根据项目主键查询项目详情 * 根据项目主键查询项目详情
*/ */
@GetMapping("/getProjectDetail/{projectKey}") @GetMapping("/getProjectDetail")
public R<ProjectDetailVo> getProjectDetail(@NotNull(message = "项目主键不能为空") @PathVariable Long projectKey) { public R<ProjectDetailVo> getProjectDetail(ProjectDetailBo projectDetailBo) {
return R.ok(baseService.queryProjectDetail(projectKey)); return R.ok(baseService.queryProjectDetail(projectDetailBo));
} }
}
/** \ No newline at end of file
* 根据咨询机构ID查询咨询机构详情
*/
@GetMapping("/getAdvisoryBodyDetail/{advisoryBodyId}")
public R<AdvisoryBody> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) {
return R.ok(baseService.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));
//}
}
...@@ -7,9 +7,11 @@ import com.dsk.common.core.domain.R; ...@@ -7,9 +7,11 @@ import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.poi.ExcelUtil; import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo; import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerCooperationBo;
import com.dsk.cscec.domain.bo.CustomerInfoBo; import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo; import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import com.dsk.cscec.domain.vo.CustomerApproveVo; import com.dsk.cscec.domain.vo.CustomerApproveVo;
import com.dsk.cscec.domain.vo.CustomerCooperationVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo; import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.service.ICustomerInfoService; import com.dsk.cscec.service.ICustomerInfoService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -63,10 +65,20 @@ public class CustomerInfoController extends BaseController { ...@@ -63,10 +65,20 @@ public class CustomerInfoController extends BaseController {
/** /**
* 合作记录-供应商准入情况 * 合作记录-供应商准入情况
*/ */
@GetMapping("/getApproveInfo") @GetMapping("/approveInfo")
public R<CustomerApproveVo> getApproveInfo(CustomerInfoBo bo) { public R<CustomerApproveVo> getApproveInfo(CustomerInfoBo bo) {
return R.ok(iCustomerInfoService.queryApproveByBo(bo)); return R.ok(iCustomerInfoService.queryApproveByBo(bo));
} }
/**
* 内部合作-供应商合作记录
*/
@GetMapping("/cooperationList")
public TableDataInfo<CustomerCooperationVo> cooperationList(@Validated CustomerCooperationBo bo, PageQuery query) {
return iCustomerInfoService.queryCooperationList(bo, query);
}
} }
...@@ -56,7 +56,7 @@ public class DCustomerController extends BaseController { ...@@ -56,7 +56,7 @@ public class DCustomerController extends BaseController {
public void export(@RequestBody DCustomerSearchBo bo, HttpServletResponse response) { public void export(@RequestBody DCustomerSearchBo bo, HttpServletResponse response) {
List<DCustomerListVo> list = baseService.exportList(bo); List<DCustomerListVo> list = baseService.exportList(bo);
ExcelUtils<DCustomerListVo> util = new ExcelUtils<>(DCustomerListVo.class); ExcelUtils<DCustomerListVo> util = new ExcelUtils<>(DCustomerListVo.class);
util.exportExcel(response, list, "集团中标","", true); util.exportExcel(response, list, "sheet1","大数据经营管理支撑服务平台供应商导出", true);
} }
......
package com.dsk.cscec.domain.bo;
import lombok.Data;
import java.util.List;
/**
* 供应商合作记录
*
* @author
* @since 2023-12-18
*/
@Data
public class CustomerCooperationBo {
/**
* 签订单位ID
*/
private String signOrgId;
/**
* 签订单位名称
*/
private String signOrgName;
/**
* 供应商ID
*/
private String customerId;
/**
* 供应商名称
*/
private String customerName;
/**
* 区域名称
*/
private List<String> areaName;
/**
* 省份名称
*/
private List<String> provinceName;
/**
* 城市名称
*/
private List<String> cityName;
}
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 lombok.Data;
/**
* 供应商合作记录
*
* @author
* @since 2023-12-18
*/
@Data
public class CustomerCooperationVo {
/**
* 分包合同主键
*/
private Long subcontractKey;
/**
* 分包合同ID
*/
private String subcontractId;
/**
* 项目名称
*/
private String projectName;
/**
* 分包合同金额
*/
private Double subcontractValue;
/**
* 签订单位ID
*/
private String signOrgId;
/**
* 签订单位名称
*/
private String signOrgName;
/**
* 合同签订日期
*/
private String signDate;
/**
* 分包范围
*/
private String jobScope;
/**
* 结算价
*/
private Double settleValue;
/**
* 区域名称
*/
private String areaName;
/**
* 省份名称
*/
private String provinceName;
/**
* 城市名称
*/
private String cityName;
/**
* 项目经理名称
*/
private String projectManagerName;
/**
* 项目经理电话
*/
private String projectManagerPhone;
/**
* 工程类型名称
*/
private String projectType2;
}
package com.dsk.cscec.domain.vo; package com.dsk.cscec.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.dsk.common.annotation.Excel; import com.dsk.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
...@@ -17,6 +16,9 @@ public class DCustomerListVo implements Serializable { ...@@ -17,6 +16,9 @@ public class DCustomerListVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Excel(name = "序号", width = 6)
private Integer num;
/** /**
* jsk企业id * jsk企业id
*/ */
...@@ -33,129 +35,139 @@ public class DCustomerListVo implements Serializable { ...@@ -33,129 +35,139 @@ public class DCustomerListVo implements Serializable {
* 税号 * 税号
*/ */
private String taxNumber; private String taxNumber;
/**
* 供应商编号
*/
@Excel(name = "供应商编号", width = 5)
private String customerCode;
/** /**
* 供应商名称 * 供应商名称
*/ */
@Excel(name = "供应商名称", width = 10) @Excel(name = "供应商名称", width = 30)
private String customerName; private String customerName;
/**
* 供应商编号
*/
@Excel(name = "供应商编号", width = 15)
private String customerCode;
/** /**
* 推荐公司 * 推荐公司
*/ */
@Excel(name = "推荐公司", width = 10) @Excel(name = "推荐单位", width = 30)
private String recommendOrg; private String recommendOrg;
/** /**
* 注册地区域 * 注册地区域
*/ */
@Excel(name = "注册地区域", width = 5) @Excel(name = "公司注册区域", width = 10)
private String registerRegion; private String registerRegion;
/** /**
* 省份 * 省份
*/ */
@Excel(name = "省份", width = 5) @Excel(name = "公司注册省", width = 10)
private String registerProvince; private String registerProvince;
/** /**
* 城市 * 城市
*/ */
@Excel(name = "城市", width = 5) @Excel(name = "公司注册市", width = 10)
private String registerCity; private String registerCity;
/**
* 注册资金
*/
@Excel(name = "注册资金", width = 5)
private Double registerCapital;
/** /**
* 供应商类别 * 供应商类别
*/ */
@Excel(name = "供应商类别", width = 5) @Excel(name = "供应商类别", width = 10)
private String customerClass; private String customerClass;
/** /**
* 集团专业类别 * 集团专业类别
*/ */
@Excel(name = "专业类别", width = 5) @Excel(name = "专业类别", width = 20)
private String groupSpecialty; private String groupSpecialty;
/** /**
* 纳税人身份 * 纳税人身份
*/ */
@Excel(name = "纳税人身份", width = 5) @Excel(name = "纳税人身份", width = 10)
private String paytaxType; private String paytaxType;
/** /**
* 纳税人税率 * 纳税人税率
*/ */
@Excel(name = "纳税人税率", width = 5) @Excel(name = "纳税人税率", width = 10)
private String taxRate; private String taxRate;
/** /**
* 供应商状态 * 供应商状态
*/ */
@Excel(name = "供应商状态", width = 5) @Excel(name = "状态", width = 10)
private String customerState; private String customerState;
/** /**
* 队长名称 * 限用/禁用状态
*/ */
@Excel(name = "劳务队长", width = 5) @Excel(name = "限用/禁用状态", width = 10)
private String leaderName; private String badnessState;
/** /**
* 劳务队长身份证号 * 队长名称
*/ */
@Excel(name = "劳务队长身份证号", width = 5) @Excel(name = "劳务队长", width = 10)
private String laborCaptainIdcard; private String leaderName;
/** /**
* 劳务队长联系电话 * 劳务队长联系电话
*/ */
@Excel(name = "劳务队长联系电话", width = 5) @Excel(name = "队长联系电话", width = 10)
private String laborCaptainPhone; private String laborCaptainPhone;
/**
* 劳务队长身份证号
*/
@Excel(name = "队长身份证号", width = 10)
private String laborCaptainIdcard;
/** /**
* 队伍规模人数 * 队伍规模人数
*/ */
@Excel(name = "队伍规模人数", width = 5) @Excel(name = "队伍规模", width = 10)
private Double serviceTeamPersonnum; private Double serviceTeamPersonnum;
/** /**
* 专业特长 * 专业特长
*/ */
@Excel(name = "专业特长", width = 5) @Excel(name = "专业特长", width = 10)
private String serviceTeamSpeciality; private String serviceTeamSpeciality;
/** /**
* 施工承包范围 * 施工承包范围
*/ */
@Excel(name = "施工承包范围", width = 5) @Excel(name = "施工承包范围", width = 25)
private String constructJobScope; private String constructJobScope;
/** /**
* 资质等级 * 资质等级
*/ */
@Excel(name = "资质等级", width = 5) @Excel(name = "资质等级", width = 10)
private String credential; private String credential;
/**
* 注册资金
*/
@Excel(name = "注册资金(万元)", width = 10)
private Double registerCapital;
/** /**
* 联系人 * 联系人
*/ */
@Excel(name = "联系人", width = 5) @Excel(name = "公司联系人", width = 10)
private String contactPerson; private String contactPerson;
/** /**
* 电话 * 电话
*/ */
@Excel(name = "电话", width = 5) @Excel(name = "联系人电话", width = 10)
private String contactPhone; private String contactPhone;
/** /**
* 准入时间 * 准入时间
*/ */
@Excel(name = "准入时间", width = 5 , dateFormat = "yyyy-MM-dd") @Excel(name = "准入时间", width = 10 , dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date approveDate2; private Date approveDate2;
/**
* 考评等级
*/
@Excel(name = "考评等级", width = 5)
private String creditLevel;
/** /**
* 企业合作数量 * 企业合作数量
*/ */
@Excel(name = "公司合作数量", width = 10 )
private Integer enterpriseCooperationCount; private Integer enterpriseCooperationCount;
/** /**
* 项目合作数量 * 项目合作数量
*/ */
@Excel(name = "合作项目数量", width = 10 )
private Integer projectCooperationCount; private Integer projectCooperationCount;
/**
* 考评等级
*/
@Excel(name = "分包商等级", width = 10)
private String creditLevel;
} }
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,15 @@ import lombok.NoArgsConstructor; ...@@ -17,7 +18,15 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class ProjectDetailVo extends DProject { public class ProjectDetailVo extends DProject {
/** /**
* 咨询机构名称 * 咨询机构
*/ */
private String advisoryBodyName; private AdvisoryBody advisoryBody;
/**
* 法定代表人
*/
private String corporatePerson;
/**
* 注册地址
*/
private String regAddress;
} }
...@@ -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);
} }
...@@ -2,7 +2,13 @@ package com.dsk.cscec.mapper; ...@@ -2,7 +2,13 @@ package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.cscec.domain.DSubcontract; import com.dsk.cscec.domain.DSubcontract;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import com.dsk.cscec.domain.bo.CustomerCooperationBo;
import com.dsk.cscec.domain.vo.CustomerCooperationVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 分包分供合同(DSubcontract)表数据库访问层 * 分包分供合同(DSubcontract)表数据库访问层
...@@ -16,5 +22,14 @@ public interface DSubcontractMapper extends BaseMapper<DSubcontract> { ...@@ -16,5 +22,14 @@ public interface DSubcontractMapper extends BaseMapper<DSubcontract> {
Integer selectProjectCountByCustomerId(String customerId); Integer selectProjectCountByCustomerId(String customerId);
DCustomerListVo selectStatisticByCustomerId(String customerId);
/**
* 供应商合作记录
* @param build
* @param bo
* @return
*/
Page<CustomerCooperationVo> selectCooperationList(IPage<CustomerCooperationBo> build, @Param("bo")CustomerCooperationBo bo);
} }
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.AdvisoryBodySearchVo;
/** /**
* 咨询机构(SysAdvisoryBody)表服务接口 * 咨询机构(SysAdvisoryBody)表服务接口
...@@ -10,6 +14,13 @@ import com.dsk.cscec.domain.AdvisoryBody; ...@@ -10,6 +14,13 @@ 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);
} }
...@@ -5,9 +5,11 @@ import com.dsk.common.core.domain.PageQuery; ...@@ -5,9 +5,11 @@ 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.DCustomer; import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo; import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerCooperationBo;
import com.dsk.cscec.domain.bo.CustomerInfoBo; import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo; import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import com.dsk.cscec.domain.vo.CustomerApproveVo; import com.dsk.cscec.domain.vo.CustomerApproveVo;
import com.dsk.cscec.domain.vo.CustomerCooperationVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo; import com.dsk.cscec.domain.vo.CustomerInfoVo;
/** /**
...@@ -23,4 +25,12 @@ public interface ICustomerInfoService extends IService<DCustomer> { ...@@ -23,4 +25,12 @@ public interface ICustomerInfoService extends IService<DCustomer> {
CustomerApproveVo queryApproveByBo(CustomerInfoBo bo); CustomerApproveVo queryApproveByBo(CustomerInfoBo bo);
TableDataInfo<AdvisoryBodyVo> queryAdvisoryList(AdvisoryBodyBo bo, PageQuery query); TableDataInfo<AdvisoryBodyVo> queryAdvisoryList(AdvisoryBodyBo bo, PageQuery query);
/**
* 供应商合作记录
* @param bo
* @param query
* @return
*/
TableDataInfo<CustomerCooperationVo> queryCooperationList(CustomerCooperationBo bo,PageQuery query);
} }
...@@ -3,12 +3,10 @@ package com.dsk.cscec.service; ...@@ -3,12 +3,10 @@ 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.ProjectDetailBo;
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 +27,6 @@ public interface IDProjectService extends IService<DProject> { ...@@ -29,15 +27,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);
/** /**
* 获取合作项目明细 * 获取合作项目明细
* *
...@@ -50,17 +39,9 @@ public interface IDProjectService extends IService<DProject> { ...@@ -50,17 +39,9 @@ public interface IDProjectService extends IService<DProject> {
/** /**
* 根据项目主键查询项目详情 * 根据项目主键查询项目详情
* *
* @param projectKey 项目主键 * @param projectDetailBo 查询实体
* @return 项目详情 * @return 项目详情
*/ */
ProjectDetailVo queryProjectDetail(Long projectKey); ProjectDetailVo queryProjectDetail(ProjectDetailBo projectDetailBo);
/**
* 根据咨询机构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.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 +34,71 @@ import org.springframework.stereotype.Service; ...@@ -14,6 +34,71 @@ 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);
}
} }
...@@ -11,12 +11,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -11,12 +11,15 @@ 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.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.common.utils.StringUtils;
import com.dsk.cscec.constant.QueryConstants; import com.dsk.cscec.constant.QueryConstants;
import com.dsk.cscec.domain.DCustomer; import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo; import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerCooperationBo;
import com.dsk.cscec.domain.bo.CustomerInfoBo; import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo; import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import com.dsk.cscec.domain.vo.CustomerApproveVo; import com.dsk.cscec.domain.vo.CustomerApproveVo;
import com.dsk.cscec.domain.vo.CustomerCooperationVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo; import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.mapper.AdvisoryBodyMapper; import com.dsk.cscec.mapper.AdvisoryBodyMapper;
import com.dsk.cscec.mapper.DCustomerMapper; import com.dsk.cscec.mapper.DCustomerMapper;
...@@ -48,6 +51,9 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto ...@@ -48,6 +51,9 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
@Autowired @Autowired
private AdvisoryBodyMapper advisoryBodyMapper; private AdvisoryBodyMapper advisoryBodyMapper;
@Autowired
private DSubcontractMapper dSubcontractMapper;
@Override @Override
public TableDataInfo<CustomerInfoVo> queryPageList(CustomerInfoBo bo, PageQuery query) { public TableDataInfo<CustomerInfoVo> queryPageList(CustomerInfoBo bo, PageQuery query) {
if("劳务分包".equals(bo.getCustomerClass())){ if("劳务分包".equals(bo.getCustomerClass())){
...@@ -64,6 +70,14 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto ...@@ -64,6 +70,14 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
item.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(item.getCustomerId())); item.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(item.getCustomerId()));
//项目合作数量 //项目合作数量
item.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(item.getCustomerId())); item.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(item.getCustomerId()));
//关键字标红
if(!ObjectUtils.isEmpty(bo.getCustomerName())){
item.setCustomerName(StringUtils.markInRed(item.getCustomerName(), bo.getCustomerName()));
}
//关键字标红
if(!ObjectUtils.isEmpty(bo.getLeaderName())){
item.setCustomerName(StringUtils.markInRed(item.getLeaderName(), bo.getLeaderName()));
}
try { try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(item.getCustomerName()); Map<String, Object> map = opportunityRadarService.enterpriseByName(item.getCustomerName());
if (!ObjectUtils.isEmpty(map.get("data"))) { if (!ObjectUtils.isEmpty(map.get("data"))) {
...@@ -101,4 +115,14 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto ...@@ -101,4 +115,14 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
Page<AdvisoryBodyVo> page = advisoryBodyMapper.queryListByBo(query.build(),bo); Page<AdvisoryBodyVo> page = advisoryBodyMapper.queryListByBo(query.build(),bo);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@Override
public TableDataInfo<CustomerCooperationVo> queryCooperationList(CustomerCooperationBo bo, PageQuery query) {
if(StringUtil.isBlank(bo.getCustomerId()) && StringUtil.isBlank(bo.getCustomerName())){
Assert.isTrue(false,"供应商不能为空");
}
bo.setSignOrgId(QueryConstants.LEVEL1_COMPANY_ID);
Page<CustomerCooperationVo> page = dSubcontractMapper.selectCooperationList(query.build(),bo);
return TableDataInfo.build(page);
}
} }
...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -7,6 +7,7 @@ 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.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.common.utils.StringUtils;
import com.dsk.cscec.domain.DCustomer; import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo; import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.DCustomerListVo; import com.dsk.cscec.domain.vo.DCustomerListVo;
...@@ -44,11 +45,17 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -44,11 +45,17 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
dealWithCustomerClass(bo); dealWithCustomerClass(bo);
Page<DCustomerListVo> page = baseMapper.allSearchList(query.build(), bo); Page<DCustomerListVo> page = baseMapper.allSearchList(query.build(), bo);
if (CollectionUtils.isNotEmpty(page.getRecords())) { if (CollectionUtils.isNotEmpty(page.getRecords())) {
page.getRecords().parallelStream().forEach(item->{ page.getRecords().parallelStream().forEach(item -> {
DCustomerListVo vo = subcontractMapper.selectStatisticByCustomerId(item.getCustomerId());
//企业合作数量 //企业合作数量
item.setEnterpriseCooperationCount(subcontractMapper.selectEnterpriseCountByCustomerId(item.getCustomerId())); item.setEnterpriseCooperationCount(vo.getEnterpriseCooperationCount());
//项目合作数量 //项目合作数量
item.setProjectCooperationCount(subcontractMapper.selectProjectCountByCustomerId(item.getCustomerId())); item.setProjectCooperationCount(vo.getProjectCooperationCount());
showCustomerClass(item);
//关键字标红
if (!ObjectUtils.isEmpty(bo.getCustomerName())) {
item.setCustomerName(StringUtils.markInRed(item.getCustomerName(), bo.getCustomerName()));
}
try { try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(item.getCustomerName()); Map<String, Object> map = opportunityRadarService.enterpriseByName(item.getCustomerName());
if (!ObjectUtils.isEmpty(map.get("data"))) { if (!ObjectUtils.isEmpty(map.get("data"))) {
...@@ -56,7 +63,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -56,7 +63,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
Integer companyId = MapUtil.getInt(data, "jskEid"); Integer companyId = MapUtil.getInt(data, "jskEid");
item.setCompanyId(companyId); item.setCompanyId(companyId);
} }
}catch (Exception e){ } catch (Exception e) {
// //
} }
}); });
...@@ -68,9 +75,18 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -68,9 +75,18 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
public List<DCustomerListVo> exportList(DCustomerSearchBo bo) { public List<DCustomerListVo> exportList(DCustomerSearchBo bo) {
dealWithCustomerClass(bo); dealWithCustomerClass(bo);
PageQuery query = new PageQuery(); PageQuery query = new PageQuery();
query.setPageNum(1); List<DCustomerListVo> records = baseMapper.allSearchList(query.build(), bo).getRecords();
query.setPageSize(1000); if (CollectionUtils.isNotEmpty(records)) {
return baseMapper.allSearchList(query.build(), bo).getRecords(); records.parallelStream().forEach(item -> {
DCustomerListVo vo = subcontractMapper.selectStatisticByCustomerId(item.getCustomerId());
//企业合作数量
item.setEnterpriseCooperationCount(vo.getEnterpriseCooperationCount());
//项目合作数量
item.setProjectCooperationCount(vo.getProjectCooperationCount());
showCustomerClass(item);
});
}
return records;
} }
private void dealWithCustomerClass(DCustomerSearchBo bo) { private void dealWithCustomerClass(DCustomerSearchBo bo) {
...@@ -78,7 +94,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -78,7 +94,7 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
Integer isTeam = null; Integer isTeam = null;
for (String customerClass : bo.getCustomerClass()) { for (String customerClass : bo.getCustomerClass()) {
switch (customerClass){ switch (customerClass) {
case "专业分包": case "专业分包":
list.add("专业分包"); list.add("专业分包");
break; break;
...@@ -89,17 +105,17 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -89,17 +105,17 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
list.add("租赁"); list.add("租赁");
break; break;
case "劳务分包": case "劳务分包":
if(isTeam == null){ if (isTeam == null) {
isTeam = 0; isTeam = 0;
}else if(isTeam == 1) { } else if (isTeam == 1) {
isTeam = null; isTeam = null;
} }
list.add("劳务分包"); list.add("劳务分包");
break; break;
case "劳务队伍": case "劳务队伍":
if(isTeam == null) { if (isTeam == null) {
isTeam = 1; isTeam = 1;
}else if(isTeam == 0) { } else if (isTeam == 0) {
isTeam = null; isTeam = null;
} }
list.add("劳务分包"); list.add("劳务分包");
...@@ -112,5 +128,25 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer ...@@ -112,5 +128,25 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
bo.setIsTeam(isTeam); bo.setIsTeam(isTeam);
} }
} }
private void showCustomerClass(DCustomerListVo vo) {
if (!ObjectUtils.isEmpty(vo.getCustomerClass())) {
switch (vo.getCustomerClass()) {
case "分供":
vo.setCustomerClass("物资设备");
break;
case "租赁":
vo.setCustomerClass("施工机械");
break;
case "劳务分包":
if (!ObjectUtils.isEmpty(vo.getLeaderName())) {
vo.setCustomerClass("劳务队伍");
}
break;
default:
break;
}
}
}
} }
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,9 @@ import com.dsk.cscec.constant.QueryConstants; ...@@ -15,10 +17,9 @@ 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.ProjectDetailBo;
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;
...@@ -33,7 +34,7 @@ import org.apache.commons.collections4.MapUtils; ...@@ -33,7 +34,7 @@ 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; import java.util.Map;
...@@ -64,34 +65,29 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -64,34 +65,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 +98,7 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -102,7 +98,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 +131,6 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -135,58 +131,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 +140,14 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -196,21 +140,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,46 +162,39 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject> ...@@ -225,46 +162,39 @@ 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);
} }
/** /**
* 根据项目主键查询项目详情 * 根据项目主键查询项目详情
* *
* @param projectKey 项目主键 * @param projectDetailBo 查询实体
* @return 项目详情 * @return 项目详情
*/ */
@Override @Override
public ProjectDetailVo queryProjectDetail(Long projectKey) { public ProjectDetailVo queryProjectDetail(ProjectDetailBo projectDetailBo) {
//查询项目明细 //查询项目明细
DProject dProject = baseMapper.selectOne(new LambdaQueryWrapper<DProject>() DProject dProject = baseMapper.selectOne(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectKey, projectKey)); .eq(DProject::getProjectKey, projectDetailBo.getProjectKey()));
ProjectDetailVo projectDetailVo = BeanUtil.toBean(dProject, ProjectDetailVo.class); ProjectDetailVo projectDetailVo = BeanUtil.toBean(dProject, ProjectDetailVo.class);
//查询咨询机构信息 //查询咨询机构信息并填充
AdvisoryBody advisoryBody = advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectKey); projectDetailVo.setAdvisoryBody(advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectDetailBo.getProjectKey()));
//填充咨询机构名称
projectDetailVo.setAdvisoryBodyName(advisoryBody.getAdvisoryBodyName()); EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
infoHeaderBody.setCompanyId(Math.toIntExact(projectDetailBo.getAdvisoryBodyCid()));
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData = MapUtils.getMap(companyMap, "data", null);
//法人
projectDetailVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
//注册地址
projectDetailVo.setRegAddress(MapUtils.getString(companyData, "addressDetail", ""));
return projectDetailVo; return projectDetailVo;
} }
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
@Override
public AdvisoryBody queryAdvisoryBodyDetail(Long advisoryBodyId) {
return null;
}
} }
package com.dsk.jsk.controller;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.UrbanInvestmentPlatformDto;
import com.dsk.jsk.service.service.UrbanInvestmentPlatformService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @ClassName UrbanInvestmentPlatformController
* @Description 城投平台
* @Author Dgm
* @Date 2023/12/18 10:09
* @Version 1.0.0
*/
@RestController
@RequestMapping(value ="/urbanInvestment")
public class UrbanInvestmentPlatformController {
@Autowired
private UrbanInvestmentPlatformService urbanInvestmentPlatformService;
/***
*@Description: 城投平台分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/page")
public AjaxResult page(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.page(dto);
}
/***
*@Description: 城投平台详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/details/{id}")
public AjaxResult details(@PathVariable("id") String id) {
return urbanInvestmentPlatformService.details(id);
}
/***
*@Description: 城投平台统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/statistics")
public AjaxResult statistics(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.statistics(dto);
}
@PostMapping("/export/pre")
public AjaxResult exportPre(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.esportPre(dto);
}
}
...@@ -93,7 +93,7 @@ public class MonitorServiceImpl implements MonitorService { ...@@ -93,7 +93,7 @@ public class MonitorServiceImpl implements MonitorService {
@Override @Override
public TableDataInfo companyDynamicPage(PushMonitorDynamicPageVo pageVo) throws Exception { public TableDataInfo companyDynamicPage(PushMonitorDynamicPageVo pageVo) throws Exception {
pageVo.setPageSize(3); pageVo.setPageSize(3);
Long userId = 1733058034734989314L; Long userId = LoginHelper.getUserId();
if (ObjectUtil.isNotEmpty(userId)) { if (ObjectUtil.isNotEmpty(userId)) {
pageVo.setUserId(userId); pageVo.setUserId(userId);
pageVo.getCondition().setUserId(userId); pageVo.getCondition().setUserId(userId);
......
...@@ -5,6 +5,7 @@ import com.dsk.common.core.domain.AjaxResult; ...@@ -5,6 +5,7 @@ import com.dsk.common.core.domain.AjaxResult;
import com.dsk.component.UploadComponent; import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.bo.ComposeQueryDto; import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.search.service.BusinessOpportunityRadarService; import com.dsk.search.service.BusinessOpportunityRadarService;
import com.dsk.search.util.PageQueryLimit;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
......
...@@ -2,9 +2,9 @@ package com.dsk.search.controller; ...@@ -2,9 +2,9 @@ package com.dsk.search.controller;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.StringUtils;
import com.dsk.jsk.domain.bo.ComposeQueryDto; import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.search.service.BusinessOpportunityRadarService; import com.dsk.search.service.BusinessOpportunityRadarService;
import com.dsk.search.util.PageQueryLimit;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
......
...@@ -54,8 +54,11 @@ public class ExportService { ...@@ -54,8 +54,11 @@ public class ExportService {
list.add(companyNameList.get(i).getCompanyName()); list.add(companyNameList.get(i).getCompanyName());
} }
composeQueryDto.setKeyword(String.join(",",list)); composeQueryDto.setKeyword(String.join(",",list));
SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMdd");
String dayformat = sdf.format(new Date());
SysUserFileRecord fileRecord = new SysUserFileRecord(); SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName("批量导出".concat(Constants.SUFFIX_XLSX)); String fileName = "供应商资质批量查询".concat(dayformat);
fileRecord.setFileName(fileName);
fileRecord.setType(1); fileRecord.setType(1);
//生成中 //生成中
fileRecord.setStatus(2); fileRecord.setStatus(2);
...@@ -64,9 +67,7 @@ public class ExportService { ...@@ -64,9 +67,7 @@ public class ExportService {
composeQueryDto.setExportUniqueCode(fileId.toString()); composeQueryDto.setExportUniqueCode(fileId.toString());
//回调函数 //回调函数
composeQueryDto.setExportBackUrl(EXPORT_BACK_URL); composeQueryDto.setExportBackUrl(EXPORT_BACK_URL);
SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMdd"); composeQueryDto.setExportExeclName(fileName);
String dayformat = sdf.format(new Date());
composeQueryDto.setExportExeclName("供应商资质批量查询"+dayformat+".xlsx");
dskOpenApiUtil.requestBody("/operate/export/zjyj/aptitude", BeanUtil.beanToMap(composeQueryDto,false,false)); dskOpenApiUtil.requestBody("/operate/export/zjyj/aptitude", BeanUtil.beanToMap(composeQueryDto,false,false));
return AjaxResult.success(); return AjaxResult.success();
} }
......
package com.dsk.search.controller; package com.dsk.search.util;
import com.dsk.jsk.domain.bo.Page; import com.dsk.jsk.domain.bo.Page;
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
<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">
select abp.advisory_body_id,abp.advisory_body_cid,abp.project_key,abp.project_leader,abp.project_leader_major, select abp.advisory_body_id,abp.advisory_body_cid,abp.project_key,abp.project_leader,abp.project_leader_major,
abp.project_leader_phone, abp.project_leader_phone,
ab.advisory_body_name, ab.advisory_body_name,
dp.project_name,dp.project_code,dp.province_name,dp.city_name,dp.isinvestproject,dp.project_type1, 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 dp.project_type,dp.contract_orig_value,dp.owner_name,dp.contract_org_name,dp.load_time
from advisory_body_project abp from advisory_body_project abp
...@@ -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
...@@ -6,10 +6,11 @@ ...@@ -6,10 +6,11 @@
<select id="allSearchList" resultType="com.dsk.cscec.domain.vo.DCustomerListVo"> <select id="allSearchList" resultType="com.dsk.cscec.domain.vo.DCustomerListVo">
select 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, 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, 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 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' where recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475'
<if test="bo.customerName != null and bo.customerName != '' "> and customer_name like concat('%',#{bo.customerName},'%')</if> <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) "> <if test="bo.province != null and bo.province.size > 0 and (bo.city == null or bo.city.size == 0) ">
...@@ -60,7 +61,7 @@ ...@@ -60,7 +61,7 @@
</foreach> </foreach>
</if> </if>
<if test="bo.approveDateBegion != null and bo.approveDateBegion != '' ">and approve_date2 &gt;= #{bo.approveDateBegion}</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.approveDateEnd != null and bo.approveDateEnd != '' ">and approve_date2 &lt;= #{bo.approveDateEnd} </if>
<if test="bo.isTeam != null"> and leader_name is <if test="bo.isTeam == 1">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 order by approve_date2 desc
</select> </select>
......
...@@ -17,4 +17,58 @@ ...@@ -17,4 +17,58 @@
) a ) a
</select> </select>
<select id="selectStatisticByCustomerId" resultType="com.dsk.cscec.domain.vo.DCustomerListVo">
select
count(DISTINCT org.customer_id) enterpriseCooperationCount,
count(DISTINCT project.customer_id) projectCooperationCount
from d_customer dc
left join d_subcontract org on org.customer_id = dc.customer_id
left join d_subcontract project on project.customer_id = dc.customer_id
where dc.customer_id = #{customerId}
</select>
<select id="selectCooperationList" resultType="com.dsk.cscec.domain.vo.CustomerCooperationVo">
select ds.subcontract_key,ds.subcontract_id,ds.project_name,ds.sign_org_name,ds.sign_date,ds.subcontract_value,ds.settle_value,ds.job_scope,
dp.area_name,dp.province_name,dp.city_name,dp.project_manager_name,dp.project_manager_phone,dp.project_type2
from d_subcontract ds
left join d_project dp on dp.project_id = ds.project_id
<where>
<if test="bo.signOrgId != null and bo.signOrgId != ''">
and ds.sign_org_id =#{bo.signOrgId}
</if>
<if test="bo.signOrgName != null and bo.signOrgName != ''">
and ds.sign_org_name =#{bo.signOrgName}
</if>
<if test="bo.customerId != null and bo.customerId != ''">
and ds.customer_id =#{bo.customerId}
</if>
<if test="bo.customerName != null and bo.customerName != ''">
and ds.customer_name =#{bo.customerName}
</if>
<if test="bo.areaName != null and bo.areaName.size > 0 or (bo.provinceName != null and bo.provinceName.size > 0) or (bo.cityName != null and bo.cityName.size > 0)">
and
<trim prefix="(" suffix=")" prefixOverrides="or">
<if test="bo.areaName != null and bo.areaName.size > 0 ">
or dp.area_name in
<foreach collection="bo.areaName" item="areaName" open="(" close=")" separator=",">
#{areaName}
</foreach>
</if>
<if test="bo.provinceName != null and bo.provinceName.size > 0 ">
or dp.province_name in
<foreach collection="bo.provinceName" item="provinceName" open="(" close=")" separator=",">
#{provinceName}
</foreach>
</if>
<if test="bo.cityName != null and bo.cityName.size > 0 ">
or dp.city_name in
<foreach collection="bo.cityName" item="cityName" open="(" close=")" separator=",">
#{cityName}
</foreach>
</if>
</trim>
</if>
</where>
order by ds.sign_date desc
</select>
</mapper> </mapper>
\ No newline at end of file
import request from '@/utils/request' import request from '@/utils/request';
// 行政处罚列表 // 行政处罚列表
export function penalizePage(data) { export function penalizePage(data) {
return request({ return request({
url: '/enterpriseCredit/penalizePage', url: '/enterpriseCredit/penalizePage',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 行政处罚类型 // 行政处罚类型
export function penalizeReasonType(data) { export function penalizeReasonType(data) {
return request({ return request({
url: '/enterpriseCredit/penalizeReasonType', url: '/enterpriseCredit/penalizeReasonType',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 经营异常列表 // 经营异常列表
...@@ -22,16 +22,16 @@ export function abnormalPage(data) { ...@@ -22,16 +22,16 @@ export function abnormalPage(data) {
return request({ return request({
url: '/enterpriseCredit/abnormalPage', url: '/enterpriseCredit/abnormalPage',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 经营异常年份 // 经营异常年份
export function abnormalYears(data) { export function abnormalYears(data) {
return request({ return request({
url: '/enterpriseCredit/abnormalYears', url: '/enterpriseCredit/abnormalYears',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 被执行人列表 // 被执行人列表
...@@ -39,8 +39,8 @@ export function executedPersonsPage(data) { ...@@ -39,8 +39,8 @@ export function executedPersonsPage(data) {
return request({ return request({
url: '/enterpriseCredit/executedPersonsPage', url: '/enterpriseCredit/executedPersonsPage',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 失信被执行人列表 // 失信被执行人列表
...@@ -48,8 +48,8 @@ export function executedPage(data) { ...@@ -48,8 +48,8 @@ export function executedPage(data) {
return request({ return request({
url: '/enterpriseCredit/executedPage', url: '/enterpriseCredit/executedPage',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 裁判文书列表 // 裁判文书列表
...@@ -57,24 +57,24 @@ export function lawsuitsPage(data) { ...@@ -57,24 +57,24 @@ export function lawsuitsPage(data) {
return request({ return request({
url: '/enterpriseCredit/lawsuitsPage', url: '/enterpriseCredit/lawsuitsPage',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 裁判文书案由 // 裁判文书案由
export function lawsuitsCauseAction(data) { export function lawsuitsCauseAction(data) {
return request({ return request({
url: '/enterpriseCredit/lawsuitsCauseAction', url: '/enterpriseCredit/lawsuitsCauseAction',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 裁判文书身份 // 裁判文书身份
export function lawsuitsRole(data) { export function lawsuitsRole(data) {
return request({ return request({
url: '/enterpriseCredit/lawsuitsRole', url: '/enterpriseCredit/lawsuitsRole',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 法院公告列表 // 法院公告列表
...@@ -82,32 +82,32 @@ export function noticesPage(data) { ...@@ -82,32 +82,32 @@ export function noticesPage(data) {
return request({ return request({
url: '/enterpriseCredit/noticesPage', url: '/enterpriseCredit/noticesPage',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 法院公告类型 // 法院公告类型
export function noticesType(data) { export function noticesType(data) {
return request({ return request({
url: '/enterpriseCredit/noticesType', url: '/enterpriseCredit/noticesType',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 法院公告身份 // 法院公告身份
export function noticesRole(data) { export function noticesRole(data) {
return request({ return request({
url: '/enterpriseCredit/noticesRole', url: '/enterpriseCredit/noticesRole',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 法院公告案由 // 法院公告案由
export function noticesCaseReason(data) { export function noticesCaseReason(data) {
return request({ return request({
url: '/enterpriseCredit/noticesCaseReason', url: '/enterpriseCredit/noticesCaseReason',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 开庭公告列表 // 开庭公告列表
...@@ -115,23 +115,37 @@ export function kaitingPage(data) { ...@@ -115,23 +115,37 @@ export function kaitingPage(data) {
return request({ return request({
url: '/enterpriseCredit/kaitingPage', url: '/enterpriseCredit/kaitingPage',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 开庭公告案由 // 开庭公告案由
export function kaitingCauseAction(data) { export function kaitingCauseAction(data) {
return request({ return request({
url: '/enterpriseCredit/kaitingCauseAction', url: '/enterpriseCredit/kaitingCauseAction',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 开庭公告当事人身份 // 开庭公告当事人身份
export function kaitingPureRole(data) { export function kaitingPureRole(data) {
return request({ return request({
url: '/enterpriseCredit/kaitingPureRole', url: '/enterpriseCredit/kaitingPureRole',
method: 'post', method: 'post',
data:data data: data
}) });
} }
// 风险信息 限制高消费
export const getLimitHighConsumptionApi = (data) => request({
url: "/enterpriseCredit/restrictedConsumerPage",
method: "post",
data
});
// 风险信息 股权冻结
export const getEquityFreezingApi = (data) => request({
url: "/enterpriseCredit/judicialFreezesPage",
method: "post",
data
})
...@@ -42,6 +42,14 @@ export function companyAdd(data) { ...@@ -42,6 +42,14 @@ export function companyAdd(data) {
data: data data: data
}) })
} }
// 获取监控推荐企业
export function queryMonitorCompany(data) {
return request({
url: '/monitor/system/queryMonitorCompany',
method: 'post',
data: data
})
}
// 取消监控企业 // 取消监控企业
export function companyCancel(data) { export function companyCancel(data) {
return request({ return request({
......
...@@ -311,7 +311,6 @@ li { ...@@ -311,7 +311,6 @@ li {
.table-item { .table-item {
width: 100%; width: 100%;
height: 100%;
.el-table { .el-table {
width: 100%; width: 100%;
height: 100%; height: 100%;
......
...@@ -836,15 +836,55 @@ export function generateDirectSubtreeAndRemove(targetIds, tree, idKey = "id") { ...@@ -836,15 +836,55 @@ export function generateDirectSubtreeAndRemove(targetIds, tree, idKey = "id") {
return result ? JSON.parse(JSON.stringify({ ...result, children: result.children[0]?.children || [] })) : null; return result ? JSON.parse(JSON.stringify({ ...result, children: result.children[0]?.children || [] })) : null;
} }
// 甲方详情左侧菜单映射 // 甲方详情左侧菜单映射 key 服务器返回字段 value 菜单 pathName
export const detailSideBar = new Map([ export const detailSideBar = new Map([
// 企业速览 // 企业概要 股东信息
["holderinfo", "ownershipStructure"], ["ownershipStructure", "holderinfo"],
// 高管信息 // 企业概要 高管信息
["execuinfo", "leadingMember"], ["leadingMember", "execuinfo"],
// 对外投资 // 企业概要 对外投资
["overseas", "outboundInvestment"], ["outboundInvestment", "overseas"],
// 分支机构 // 企业概要 分支机构
["branch", "branch"], ["branch", "branch"],
// 项目商机 重点项目
["importantBusiness", "majorProject"],
// 项目商机 土地交易 城投分析 城投拿地
["landInfo", ["landtransaction", "landAcquisition"]],
// 拟建项目
["busProposedProjectV1", "proposed"],
// 专项债项目
["specialDebt", "bond"],
// 招标计划
["bidPlan", "biddingplan"],
// 招标公告
["biddingAnnouncement", "announcement"],
// 标讯Pro
["proBiddingAnnouncement", "tencent"],
// 行政许可
["adminLicensing", "administrative"],
// 业务往来 客户
["customerV1", "custom"],
// 业务往来 供应商
["supplierV1", "supplier"],
// 业务往来 招标代理
["coopBiddingAgency", "bidagency"],
// 业务往来 历史发包
["historySend", "hiscontract"],
// 开标记录
["tenderRecordV1", "bidrecords"],
// 风险信息 行政处罚
["adminSanction", "punish"],
// 风险信息 经营异常
["abnormalOperation", "businessAnomaly"],
// 风险信息 被执行人
["dishonestExecutee", "ifThePerson"],
// 风险信息 失信被执行人
["dishonestExecutor", "dishonesty"],
// 风险信息 裁判文书
["adjudicativeDoc", "judgment"],
// 风险信息 法院公告
["courtAnnouncement", "courtNotice"],
// 风险信息 开庭公告
["openAnnouncement", "openacourtsessionNotice"]
]) ])
...@@ -96,21 +96,21 @@ export default { ...@@ -96,21 +96,21 @@ export default {
// 列表表头 // 列表表头
formColum: [ formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, fixed: false, uid: v4() }, { label: '序号', prop: "staticSerialNumber", type: "index", lock: true, fixed: false, uid: v4() },
{ label: '咨询机构名称', prop: 'advisoryBodyName', width: "198px", lock: true, fixed: false, slot: true, uid: v4(), showOverflowTooltip: true }, { label: '项目列表', prop: 'projectName', width: "222px", lock: true, fixed: false, slot: true, uid: v4(), showOverflowTooltip: true },
{ label: '最近一次合作时间', prop: 'lastCooperateTime', width: "201px", uid: v4() }, { label: '合同编码', prop: 'projectCode', width: "123px", uid: v4() },
{ label: '经营状态', prop: 'businessStatus', width: "74px", uid: v4() }, { label: '省市', prop: 'provinceName', width: "102px", uid: v4() },
{ label: '法定代表人', prop: 'corporatePerson', width: "86px", uid: v4() }, { label: '项目承接类型', prop: 'isinvestproject', width: "102px", uid: v4() },
{ label: '注册资本', prop: 'regCapital', width: "107px", uid: v4() }, { label: '工程基础大类', prop: 'projectType1', width: "98px", uid: v4() },
{ label: '注册地区', prop: 'regArea', width: "149px", uid: v4() }, { label: '工程类别明细', prop: 'projectType', width: "98px", uid: v4() },
{ label: '成立日期', prop: 'registeredDate', width: "97px", uid: v4() }, { label: '项目负责人姓名', prop: 'projectLeader', width: "110px", uid: v4() },
{ label: '经营范围', prop: 'businessScope', width: "417px", uid: v4() }, { label: '项目负责人专业', prop: 'projectLeaderMajor', width: "110px", uid: v4() },
{ label: '合作项目数量', prop: 'cooperateProjectCount', width: "98px", uid: v4(), slot: true }, { label: '项目负责人联系电话', prop: 'projectLeaderPhone', width: "134px", uid: v4() },
], ],
queryParams: { queryParams: {
pageSize: 20, pageSize: 20,
pageNum: 1, pageNum: 1,
// 咨询机构ID // 咨询机构ID
advisoryBodyId: "", advisoryBodyCid: "",
}, },
tableDataList: [], tableDataList: [],
total: 0, total: 0,
...@@ -164,8 +164,8 @@ export default { ...@@ -164,8 +164,8 @@ export default {
methods: { methods: {
async init() { async init() {
try { try {
// if (!this.$routes?.params?.advisoryBodyId) return this.$message.error("缺少咨询机构Id"); if (!this.$routes?.params?.advisoryBodyCid) return this.$message.error("缺少咨询机构Id");
// this.queryParams.advisoryBodyId = !this.$routes?.params?.advisoryBodyId; this.queryParams.advisoryBodyCid = !this.$routes?.params?.advisoryBodyCid;
await this.getList(this.queryParams); await this.getList(this.queryParams);
} catch (error) { } catch (error) {
......
...@@ -44,7 +44,8 @@ ...@@ -44,7 +44,8 @@
</template> </template>
<!-- 合作项目数量 --> <!-- 合作项目数量 -->
<template slot="cooperateProjectCount" slot-scope="{data,row}"> <template slot="cooperateProjectCount" slot-scope="{data,row}">
<div v-if="row.cooperateProjectCount" class="no-line-feed ">{{row.cooperateProjectCount}}</div> <div v-if="row.cooperateProjectCount" class="no-line-feed" @click="toCooperateDetail(row)">{{row.cooperateProjectCount}}
</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
</table-list-com> </table-list-com>
...@@ -125,6 +126,10 @@ export default { ...@@ -125,6 +126,10 @@ export default {
} }
}, },
toCooperateDetail(row) {
if (!row.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(`${row.advisoryBodyName}合作明细`, `/consultingOrgManagement/detailsOfCooperation/${row.advisoryBodyCid}`);
},
// 创建最终查询条件 // 创建最终查询条件
mergeCondition() { mergeCondition() {
const _queryParams = JSON.parse(JSON.stringify(this.queryParams)); const _queryParams = JSON.parse(JSON.stringify(this.queryParams));
......
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
<transition name="fade-position" appear mode="out-in"> <transition name="fade-position" appear mode="out-in">
<span v-if="!form.hover && !form.value">搜索</span> <span v-if="!form.hover && !form.value">搜索</span>
<el-input v-model="form.value" :placeholder="form.placeholder ? form.placeholder : '输入关键词查询'" <el-input v-model="form.value" :placeholder="form.placeholder ? form.placeholder : '输入关键词查询'"
:style="form.width?'width:'+form.width+'px':'width:238px'" @focus.stop="searchFocus($event,form)" @blur.stop="searchBlur($event,form)" :style="form.width?'width:'+form.width+'px':'width:238px'" @focus.stop="searchFocus($event,form)"
@input="value => searchInput(value,form)" v-else @keydown.native.enter="changeSelect"> @blur.stop="searchBlur($event,form)" @input="value => searchInput(value,form)" v-else @keydown.native.enter="changeSelect">
<template slot="suffix"> <template slot="suffix">
<transition mode="out-in" appear name="fade"> <transition mode="out-in" appear name="fade">
<img src="@/assets/images/enterprise/search-input-clear-icon.svg" @click.stop="form.value = '';changeSelect()" <img src="@/assets/images/enterprise/search-input-clear-icon.svg" @click.stop="form.value = '';changeSelect()"
...@@ -78,8 +78,8 @@ ...@@ -78,8 +78,8 @@
</template> </template>
<div v-else class="flex-box"> <div v-else class="flex-box">
<span class="flex-box ability-total" v-if="isTotal">共有{{ total }}条</span> <span class="flex-box ability-total" v-if="isTotal">共有{{ total }}条</span>
<span class="flex-box ability-excel" v-hasPermi="['combine:info:export:win:bid','combine:info:export:bid']" v-if="isExcel && title ==='集团业绩'|| title ==='集团招标' " <span class="flex-box ability-excel" v-hasPermi="['combine:info:export:win:bid','combine:info:export:bid']"
@click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span> v-if="isExcel && title ==='集团业绩'|| title ==='集团招标' " @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box ability-excel" v-else @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span> <span class="flex-box ability-excel" v-else @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div> </div>
</div> </div>
...@@ -283,7 +283,8 @@ export default { ...@@ -283,7 +283,8 @@ export default {
textContainer.style.setProperty("box-sizing", "border-box"); textContainer.style.setProperty("box-sizing", "border-box");
textContainer.textContent = iptChild.value ? iptChild.value : iptChild.getAttribute("placeholder"); textContainer.textContent = iptChild.value ? iptChild.value : iptChild.getAttribute("placeholder");
document.body.append(textContainer); document.body.append(textContainer);
let containerWidth = textContainer.offsetWidth + 12 + 8; // 1px 误差
let containerWidth = textContainer.offsetWidth + 12 + 8 + 1;
textContainer.remove(); textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`); dom.style.setProperty("width", `${containerWidth}px`);
} }
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
<script> <script>
import { financial } from '@/api/detail/party-a/financial'; import { financial } from '@/api/detail/party-a/financial';
import { detailSideBar } from "@/utils";
export default { export default {
name: 'Sidebar', name: 'Sidebar',
props: { props: {
...@@ -60,23 +61,23 @@ export default { ...@@ -60,23 +61,23 @@ export default {
title: '企业概要', pathName: '', children: [ title: '企业概要', pathName: '', children: [
{ title: '企业速览', pathName: 'overview' }, { title: '企业速览', pathName: 'overview' },
{ title: '工商信息', pathName: 'businfo' }, { title: '工商信息', pathName: 'businfo' },
{ title: '股东信息', pathName: 'holderinfo'}, { title: '股东信息', pathName: 'holderinfo' },
{ title: '高管信息', pathName: 'execuinfo'}, { title: '高管信息', pathName: 'execuinfo' },
{ title: '对外投资', pathName: 'overseas'}, { title: '对外投资', pathName: 'overseas' },
{ title: '分支机构', pathName: 'branch'} { title: '分支机构', pathName: 'branch' }
] ]
}, },
{ title: '财务简析', pathName: 'financial' }, { title: '财务简析', pathName: 'financial' },
{ {
title: '项目商机', pathName: '', children: [ title: '项目商机', pathName: '', children: [
{ title: '重点项目', pathName: 'majorProject' }, { title: '重点项目', pathName: 'majorProject' },
{ title: '土地交易', pathName: 'landtransaction'}, { title: '土地交易', pathName: 'landtransaction' },
{ title: '拟建项目', pathName: 'proposed' }, { title: '拟建项目', pathName: 'proposed' },
{ title: '专项债项目', pathName: 'bond'}, { title: '专项债项目', pathName: 'bond' },
{ title: '招标计划', pathName: 'biddingplan'}, { title: '招标计划', pathName: 'biddingplan' },
{ title: '招标公告', pathName: 'announcement'}, { title: '招标公告', pathName: 'announcement' },
{ title: '标讯Pro', pathName: 'tencent'}, { title: '标讯Pro', pathName: 'tencent' },
{ title: '行政许可', pathName: 'administrative'} { title: '行政许可', pathName: 'administrative' }
] ]
}, },
{ {
...@@ -101,9 +102,11 @@ export default { ...@@ -101,9 +102,11 @@ export default {
{ title: '经营异常', pathName: 'businessAnomaly' }, { title: '经营异常', pathName: 'businessAnomaly' },
{ title: '被执行人', pathName: 'ifThePerson' }, { title: '被执行人', pathName: 'ifThePerson' },
{ title: '失信被执行人', pathName: 'dishonesty' }, { title: '失信被执行人', pathName: 'dishonesty' },
{ title: '裁判文书', pathName: 'judgment' }, { title: '限制高消费', pathName: 'limitHighConsumption' },
{ title: '法院公告', pathName: 'courtNotice' }, { title: '股权冻结', pathName: 'equityFreezing' },
{ title: '开庭公告', pathName: 'openacourtsessionNotice' }, // { title: '裁判文书', pathName: 'judgment' },
// { title: '法院公告', pathName: 'courtNotice' },
// { title: '开庭公告', pathName: 'openacourtsessionNotice' },
// {title: '信用中国', pathName: ''} // {title: '信用中国', pathName: ''}
] ]
}, },
...@@ -159,9 +162,11 @@ export default { ...@@ -159,9 +162,11 @@ export default {
{ title: '经营异常', pathName: 'businessAnomaly' }, { title: '经营异常', pathName: 'businessAnomaly' },
{ title: '被执行人', pathName: 'ifThePerson' }, { title: '被执行人', pathName: 'ifThePerson' },
{ title: '失信被执行人', pathName: 'dishonesty' }, { title: '失信被执行人', pathName: 'dishonesty' },
{ title: '裁判文书', pathName: 'judgment' }, { title: '限制高消费', pathName: 'limitHighConsumption' },
{ title: '法院公告', pathName: 'courtNotice' }, { title: '股权冻结', pathName: 'equityFreezing' },
{ title: '开庭公告', pathName: 'openacourtsessionNotice' }, // { title: '裁判文书', pathName: 'judgment' },
// { title: '法院公告', pathName: 'courtNotice' },
// { title: '开庭公告', pathName: 'openacourtsessionNotice' },
// {title: '信用中国', pathName: ''} // {title: '信用中国', pathName: ''}
] ]
}, },
...@@ -192,15 +197,6 @@ export default { ...@@ -192,15 +197,6 @@ export default {
}; };
}, },
computed: { computed: {
sideHeight() {
let sideHeight = document.getElementById("detailPart") ? document.getElementById("detailPart").offsetHeight : null, bowerHeight = document.body.clientHeight - 170 || null;
if (this.partBoxHeight < bowerHeight) {
sideHeight = bowerHeight;
} else {
sideHeight = '1222';/*this.partBoxHeight*/
}
return sideHeight;
},
routeIndex() { routeIndex() {
let idx = this.getRouteIdx('', this.pathName) || '0-0'; let idx = this.getRouteIdx('', this.pathName) || '0-0';
return idx; return idx;
...@@ -212,142 +208,7 @@ export default { ...@@ -212,142 +208,7 @@ export default {
watch: { watch: {
statisticObj: { statisticObj: {
handler(val) { handler(val) {
this.sideRoute = JSON.parse(JSON.stringify(this.defaultRoute)); this.createSideBarWithServerData(val);
let arr = JSON.parse(JSON.stringify(val));
for (var i in arr) {
for (var j in arr[i]) {
switch (j) {
case 'ownershipStructure':
if (arr[i][j] < 1) {
this.sideRoute[0].children[2].disabled = true;
}
break;
case 'leadingMember':
if (arr[i][j] < 1) {
this.sideRoute[0].children[3].disabled = true;
}
break;
case 'outboundInvestment':
if (arr[i][j] < 1) {
this.sideRoute[0].children[4].disabled = true;
}
break;
case 'branch':
if (arr[i][j] < 1) {
this.sideRoute[0].children[5].disabled = true;
}
break;
case 'importantBusiness':
if (arr[i][j] < 1) {
this.sideRoute[2].children[0].disabled = true;
}
break;
case 'landInfo':
if (arr[i][j] < 1) {
this.sideRoute[2].children[1].disabled = true;
this.sideRoute[4].children[1].disabled = true;
}
break;
case 'busProposedProjectV1':
if (arr[i][j] < 1) {
this.sideRoute[2].children[2].disabled = true;
}
break;
case 'specialDebt':
if (arr[i][j] < 1) {
this.sideRoute[2].children[3].disabled = true;
}
break;
case 'bidPlan':
if (arr[i][j] < 1) {
this.sideRoute[2].children[4].disabled = true;
}
break;
case 'biddingAnnouncement':
if (arr[i][j] < 1) {
this.sideRoute[2].children[5].disabled = true;
}
break;
case 'proBiddingAnnouncement':
if (arr[i][j] < 1) {
this.sideRoute[2].children[6].disabled = true;
}
break;
case 'adminLicensing':
if (arr[i][j] < 1) {
this.sideRoute[2].children[7].disabled = true;
}
break;
case 'customerV1':
if (arr[i][j] < 1) {
this.sideRoute[3].children[0].disabled = true;
}
break;
case 'supplierV1':
if (arr[i][j] < 1) {
this.sideRoute[3].children[1].disabled = true;
}
break;
case 'coopBiddingAgency':
if (arr[i][j] < 1) {
this.sideRoute[3].children[2].disabled = true;
}
break;
case 'historySend':
if (arr[i][j] < 1) {
this.sideRoute[3].children[3].disabled = true;
}
break;
case 'tenderRecordV1':
if (arr[i][j] < 1) {
this.sideRoute[3].children[4].disabled = true;
}
break;
case 'adminSanction':
if (arr[i][j] < 1) {
this.sideRoute[5].children[0].disabled = true;
}
break;
case 'abnormalOperation':
if (arr[i][j] < 1) {
this.sideRoute[5].children[1].disabled = true;
}
break;
case 'dishonestExecutee':
if (arr[i][j] < 1) {
this.sideRoute[5].children[2].disabled = true;
}
break;
case 'dishonestExecutor':
if (arr[i][j] < 1) {
this.sideRoute[5].children[3].disabled = true;
}
break;
case 'adjudicativeDoc':
if (arr[i][j] < 1) {
this.sideRoute[5].children[4].disabled = true;
}
break;
case 'courtAnnouncement':
if (arr[i][j] < 1) {
this.sideRoute[5].children[5].disabled = true;
}
break;
case 'openAnnouncement':
if (arr[i][j] < 1) {
this.sideRoute[5].children[6].disabled = true;
}
break;
default:
break;
}
}
}
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute));
} }
}, },
}, },
...@@ -360,6 +221,73 @@ export default { ...@@ -360,6 +221,73 @@ export default {
} }
}); });
}, },
createSideBarWithServerData(value) {
this.sideRoute = JSON.parse(JSON.stringify(this.defaultRoute));
// server返回菜单统计数据
const _sideBarData = JSON.parse(JSON.stringify(value));
// {basic,behavior,business,combineMember,credit,evaluation,global,performance,personnel,qualification}
/**
* @type {Map<string,string>}
*/
const _tempMap = detailSideBar;
_tempMap.forEach((value, key, mapOrigin) => {
// 找到对应的数据源
const data = this.findDataOrigin(_sideBarData, key);
const sideBarOption = this.findSideBarOption(this.sideRoute, value);
// 禁用菜单 小于一 或 server返回的对象数据不存在
if (data < 1 || !data) {
if (sideBarOption) {
sideBarOption instanceof Array ? sideBarOption.forEach(item => this.$set(item, "disabled", true)) : this.$set(sideBarOption, "disabled", true);
}
}
});
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute));
},
findDataOrigin(originData, key) {
if (originData && Object.keys(originData).length) {
for (const dataKey in originData) {
if (originData.hasOwnProperty(dataKey)) {
if (dataKey == key) {
return originData[dataKey];
}
// 是对象 递归处理
if (Object.prototype.toString.call(originData[dataKey]) == "[object Object]") {
const result = this.findDataOrigin(originData[dataKey], key);
if (result || result == "0") return result;
}
}
}
}
},
// 找菜单对象
findSideBarOption(sideBarData, key) {
for (const iterator of sideBarData) {
if (iterator.pathName === key) {
return iterator;
}
// map的值是数组的情况
if (key instanceof Array) {
const _tempArray = [];
key.forEach(item => {
// 找到数组中的每一个菜单对象
const itemNode = this.findSideBarOption(sideBarData, item);
if (itemNode) _tempArray.push(itemNode);
});
if (_tempArray.length == key.length) return _tempArray;
}
// 有children 递归处理
if (iterator?.children?.length) {
const _result = this.findSideBarOption(iterator?.children, key);
if (_result) return _result;
}
}
},
handleOpen(key, keyPath) { handleOpen(key, keyPath) {
}, },
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
<slot :name="cld.prop" :row="cldscope.row" :data="cld"></slot> <slot :name="cld.prop" :row="cldscope.row" :data="cld"></slot>
</template> </template>
<template v-else> <template v-else>
<span>{{cldscope.row[cld.prop] || '--'}}</span> <span>{{cldscope.row[cld.prop] || '-'}}</span>
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot> <slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot>
<span v-else> <span v-else>
{{ scope.row[item.prop] || '--' }} {{ scope.row[item.prop] || '-' }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -41,9 +41,13 @@ ...@@ -41,9 +41,13 @@
<BusinessAnomaly v-if="currentPath.pathName=='businessAnomaly'" :company-id="companyId" /> <BusinessAnomaly v-if="currentPath.pathName=='businessAnomaly'" :company-id="companyId" />
<IfThePerson v-if="currentPath.pathName=='ifThePerson'" :company-id="companyId" /> <IfThePerson v-if="currentPath.pathName=='ifThePerson'" :company-id="companyId" />
<Dishonesty v-if="currentPath.pathName=='dishonesty'" :company-id="companyId" /> <Dishonesty v-if="currentPath.pathName=='dishonesty'" :company-id="companyId" />
<Judgment v-if="currentPath.pathName=='judgment'" :company-id="companyId" /> <!-- 限制高消费 -->
<limit-high-consumption v-if="currentPath.pathName=='limitHighConsumption'" :company-id="companyId"></limit-high-consumption>
<!-- 股权冻结 -->
<equity-freezing v-if="currentPath.pathName=='equityFreezing'" :company-id="companyId"></equity-freezing>
<!-- <Judgment v-if="currentPath.pathName=='judgment'" :company-id="companyId" />
<CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" /> <CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" /> <OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" /> -->
</template> </template>
<template v-if="customerId && isCustomer"> <template v-if="customerId && isCustomer">
<!-- 商务信息 --> <!-- 商务信息 -->
...@@ -101,6 +105,8 @@ import Punish from "./riskInformation/punish"; //风险信息-行政处罚 ...@@ -101,6 +105,8 @@ import Punish from "./riskInformation/punish"; //风险信息-行政处罚
import BusinessAnomaly from "./riskInformation/businessAnomaly"; //风险信息-经营异常 import BusinessAnomaly from "./riskInformation/businessAnomaly"; //风险信息-经营异常
import IfThePerson from "./riskInformation/ifThePerson"; //风险信息-被执行人 import IfThePerson from "./riskInformation/ifThePerson"; //风险信息-被执行人
import Dishonesty from "./riskInformation/dishonesty"; //风险信息-失信被执行 import Dishonesty from "./riskInformation/dishonesty"; //风险信息-失信被执行
import LimitHighConsumption from "./riskInformation/limitHighConsumption"; //风险信息-限制高消费
import EquityFreezing from "./riskInformation/equityFreezing"; //风险信息-股权冻结
import Judgment from "./riskInformation/judgment"; //风险信息-判决文书 import Judgment from "./riskInformation/judgment"; //风险信息-判决文书
import CourtNotice from "./riskInformation/courtNotice"; //风险信息-法院公告 import CourtNotice from "./riskInformation/courtNotice"; //风险信息-法院公告
import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice"; //风险信息-开庭公告 import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice"; //风险信息-开庭公告
...@@ -145,6 +151,8 @@ export default { ...@@ -145,6 +151,8 @@ export default {
BusinessAnomaly, BusinessAnomaly,
IfThePerson, IfThePerson,
Dishonesty, Dishonesty,
LimitHighConsumption,
EquityFreezing,
Judgment, Judgment,
CourtNotice, CourtNotice,
OpenacourtsessionNotice, OpenacourtsessionNotice,
...@@ -166,7 +174,18 @@ export default { ...@@ -166,7 +174,18 @@ export default {
currentPath: { currentPath: {
pathName: 'overview' //默认展示页 pathName: 'overview' //默认展示页
}, },
statisticObj: {}, statisticObj: {
basic: {},
behavior: {},
business: {},
combineMember: {},
credit: {},
evaluation: {},
global: {},
performance: {},
personnel: {},
qualification: {}
},
partBoxHeight: null, partBoxHeight: null,
cooDetail: false cooDetail: false
}; };
...@@ -218,28 +237,25 @@ export default { ...@@ -218,28 +237,25 @@ export default {
} }
} }
}, },
beforeRouteLeave(to, from, next) {
next(vm => {
});
},
beforeRouteEnter(to, from, next) {
next(vm => {
});
},
created() { created() {
if (this.$route.params.id) { // 获取companyId this.init();
let companyId = this.$route.params.id;
this.getCompanyId(companyId);
}
if (this.$route.query.path) { // 获取跳转对应板块
this.currentPath.pathName = this.$route.query.path;
}
}, },
mounted() { mounted() {
}, },
methods: { methods: {
async init() {
try {
if (this.$route.params.id) { // 获取companyId
let companyId = this.$route.params.id;
await this.getCompanyId(companyId);
}
if (this.$route.query.path) { // 获取跳转对应板块
this.currentPath.pathName = this.$route.query.path;
}
} catch (error) {
console.log(error);
}
},
showPartPage(e) { showPartPage(e) {
this.currentPath = e; this.currentPath = e;
}, },
...@@ -248,19 +264,18 @@ export default { ...@@ -248,19 +264,18 @@ export default {
let { data } = await idRemark({ mark: companyId }); let { data } = await idRemark({ mark: companyId });
if (data) { if (data) {
this.companyId = data; this.companyId = data;
this.$nextTick(() => { await this.$nextTick();
this.listenSider(); this.listenSider();
}); await this.getStatistic();
this.getStatistic(); await this.handleQuery();
this.handleQuery(); await this.association(this.$route.query.customerId);
this.association(this.$route.query.customerId);
this.$refs.sidebar.financial(data); this.$refs.sidebar.financial(data);
} }
}, },
async getStatistic() { async getStatistic() {
let res = await statistic({ companyId: this.companyId }); let res = await statistic({ companyId: this.companyId });
if (res.code == 200) { if (res.code == 200) {
this.statisticObj = res.data; this.statisticObj = { ...this.statisticObj, ...res.data };
} }
}, },
async handleQuery() { async handleQuery() {
...@@ -275,27 +290,21 @@ export default { ...@@ -275,27 +290,21 @@ export default {
provinceIds: [this.companyInfo.provinceId], provinceIds: [this.companyInfo.provinceId],
cityIds: [this.companyInfo.cityId], cityIds: [this.companyInfo.cityId],
}; };
urbanInvestmentPage(data).then(res => { const result = await urbanInvestmentPage(data);
if (res.code == 200) { if (result.code == 200) {
if (res.data.totalCount < 1) { if (result.data.totalCount < 1) {
let arr = JSON.parse(JSON.stringify(this.$refs.sidebar.sideRoute)); let arr = JSON.parse(JSON.stringify(this.$refs.sidebar.sideRoute));
arr[4].children[2].disabled = true; arr[4].children[2].disabled = true;
this.$refs.sidebar.sideRoute = arr; this.$refs.sidebar.sideRoute = arr;
}
} }
}); }
if (this.companyInfo && this.companyInfo.companyName) { if (this.companyInfo && this.companyInfo.companyName) {
this.$nextTick(() => { this.$nextTick(() => {
document.getElementById('tagTitle').innerText = this.companyInfo.companyName; document.getElementById('tagTitle').innerText = this.companyInfo.companyName;
// let lists = this.$store.state.tagsView.visitedViews
// lists.forEach(item=>{
// if(item.fullPath == this.$route.fullPath){
let titlename = document.getElementById('tagTitles'); let titlename = document.getElementById('tagTitles');
if (titlename) { if (titlename) {
titlename.innerText = this.companyInfo.companyName; titlename.innerText = this.companyInfo.companyName;
} }
// }
// })
}); });
} }
} }
...@@ -313,60 +322,49 @@ export default { ...@@ -313,60 +322,49 @@ export default {
this.cooDetail = false; this.cooDetail = false;
}, },
// 判断客户是否关联显示修改 // 判断客户是否关联显示修改
association(id) { async association(id) {
if (id) { if (id) {
customerInfo(id).then(res => { try {
const res = await customerInfo(id);
if (res.code == 200) { if (res.code == 200) {
if (res.data.userId == this.$store.state.user.userId) { if (res.data.userId == this.$store.state.user.userId) {
this.$nextTick(() => { await this.$nextTick();
this.customerInfo = res.data; this.customerInfo = res.data;
this.customerId = res.data.customerId; this.customerId = res.data.customerId;
});
if (res.data.companyId == this.companyId) { if (res.data.companyId == this.companyId) {
this.$nextTick(() => { await this.$nextTick();
this.isCustomer = true; this.isCustomer = true;
this.isCompany = true; this.isCompany = true;
});
} else { } else {
this.$nextTick(() => { await this.$nextTick();
this.isCustomer = true; this.isCustomer = true;
this.isCompany = false; this.isCompany = false;
this.currentPath.pathName = this.$route.query.path || 'business'; this.currentPath.pathName = this.$route.query.path || 'business';
this.companyInfo = { this.companyInfo = {
companyName: this.customerInfo.companyName companyName: this.customerInfo.companyName
}; };
document.getElementById('tagTitle').innerText = this.customerInfo.companyName; document.getElementById('tagTitle').innerText = this.customerInfo.companyName;
// let lists = this.$store.state.tagsView.visitedViews let titlename = document.getElementById('tagTitles');
// lists.forEach(item=>{ if (titlename) {
// if(item.fullPath == this.$route.fullPath){ titlename.innerText = this.customerInfo.companyName;
let titlename = document.getElementById('tagTitles'); }
if (titlename) {
titlename.innerText = this.customerInfo.companyName;
}
// }
// })
});
} }
} else { } else {
this.$nextTick(() => { await this.$nextTick();
this.isCustomer = true; this.isCustomer = true;
this.isCompany = true; this.isCompany = true;
this.currentPath.pathName = 'overview'; this.currentPath.pathName = 'overview';
});
} }
} }
}).catch(err => { } catch (err) {
this.$nextTick(() => { await this.$nextTick();
this.currentPath.pathName = 'overview'; this.currentPath.pathName = 'overview';
this.isCompany = true;
});
});
} else {
this.$nextTick(() => {
this.isCompany = true; this.isCompany = true;
// this.currentPath.pathName = 'overview'; }
this.currentPath.pathName = this.$routes.query.path; } else {
}); await this.$nextTick();
this.isCompany = true;
this.currentPath.pathName = 'overview';
} }
}, },
......
...@@ -95,7 +95,8 @@ export default { ...@@ -95,7 +95,8 @@ export default {
this.handleQuery1(); this.handleQuery1();
}, },
methods: { methods: {
handleClick() { handleClick(v) {
if (v.name == this.activeName) return;
if (this.activeName == 'first') { if (this.activeName == 'first') {
this.handleQuery(); this.handleQuery();
} else { } else {
......
...@@ -72,7 +72,7 @@ export default { ...@@ -72,7 +72,7 @@ export default {
let res = await projectTenderDataGroup({ cid: this.companyId, type: this.activeIndex }); let res = await projectTenderDataGroup({ cid: this.companyId, type: this.activeIndex });
if (res.code == 200 && res.data) { if (res.code == 200 && res.data) {
this.isSkeleton = false; this.isSkeleton = false;
let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur); let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => {prev + cur},0);
this.viewData = data.map(item => { this.viewData = data.map(item => {
let it = { name: item.name, value: item.value, percent: parseFloat(Number(Number(item.value) / Number(totalVal) * 100).toFixed(2)) }; let it = { name: item.name, value: item.value, percent: parseFloat(Number(Number(item.value) / Number(totalVal) * 100).toFixed(2)) };
return it; return it;
......
<template>
<div class="equity-freezing-container">
<el-tabs v-model="queryParams.type" @tab-click="handleClick" class="detail-tab">
<el-tab-pane label="股权冻结" name="0"></el-tab-pane>
<el-tab-pane label="历史股权冻结" :disabled="tableDataTotal==0" name="1"></el-tab-pane>
</el-tabs>
<head-form-new ref="headFormNew" title="" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables v-if="!isSkeleton" :indexFixed="true" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
<template slot="operation-table" slot-scope="scope">
<span style="color: #0081FF;cursor: pointer;" @click="viewDetail(scope.row)">操作</span>
</template>
</tables>
</div>
</template>
<script>
import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin';
import { getEquityFreezingApi } from "@/api/detail/party-a/riskInformation";
export default {
name: "equityFreezingContainer",
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
return {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10,
type: "0"
},
forData: [
{ label: '执行通知书文号', prop: 'name', width: '164' },
{ label: '被执行人', prop: 'companyName', minWidth: '146' },
{ label: '股权数额', prop: 'executionApplicant', width: '113' },
{ label: '执行法院', prop: 'court', minWidth: '146' },
{ label: '状态', prop: 'releaseDate', width: '50' },
{ label: '冻结起止日期', prop: 'source', width: '171' },
{ label: '公式时间', prop: 'source', width: '93' },
{ label: '操作', prop: 'operation-table', width: '50', slot: true },
],
formData: [
{ type: 5, fieldName: 'time', value: '', placeholder: '选择日期', startTime: 'dateFrom', endTime: 'dateTo', uid: this.getUid() },
],
//列表
tableLoading: false,
tableData: [],
tableDataTotal: 0,
showList: [],
isSkeleton: true,
resetStatus: false
};
},
//可访问data属性
created() {
this.initDetail();
},
//计算集
computed: {
},
//方法集
methods: {
async initDetail() {
try {
await this.handleQuery();
} catch (error) {
}
},
resetQueryParams() {
const data = this.$options.data.call(this);
this.queryParams = { ...data.queryParams, type: this.queryParams.type };
this.formData[0].value = "";
},
async handleQuery(params) {
try {
let data = params ? params : this.queryParams;
this.isSkeleton = true;
const res = await getEquityFreezingApi(data);
this.tableData = res.rows ? res.rows : [];
this.tableDataTotal = res.total ? res.total : 0;
} catch (error) {
console.log(error);
} finally {
this.isSkeleton = false;
}
},
handleClick(v) {
if (v.name == this.queryParams.type) return;
this.resetQueryParams();
this.handleQuery();
},
// 查看详情
viewDetail(row) {
}
},
}
</script>
<style lang="scss" scoped>
.equity-freezing-container {
padding: 16px;
background: #ffffff;
border-radius: 4px;
input {
border: 1px solid #efefef;
}
::v-deep .el-form-item {
margin-right: 8px !important;
}
.query-box {
margin: 10px 0 20px;
}
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
> span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
.detail-tab {
margin: 0 0 0 -16px;
::v-deep .el-tabs__nav-wrap::after {
display: none;
}
::v-deep .el-tabs__item {
font-size: 16px;
height: 30px;
line-height: 30px;
padding: 0 16px;
&.is-active {
font-weight: bold;
}
}
}
@import "@/assets/styles/search-common.scss";
}
</style>
<template>
<div class="limit-high-consumption-container">
<head-form-new title="限制高消费" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables v-if="!isSkeleton" :indexFixed="true" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
<template slot="source" slot-scope="scope">
<span v-if="scope.row.source" style="color: #0081FF;cursor: pointer;" @click="viewOriginalArticle(scope.row)">查看原文</span>
<span v-else>-</span>
</template>
</tables>
</div>
</template>
<script>
import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin';
import { getLimitHighConsumptionApi } from "@/api/detail/party-a/riskInformation";
export default {
name: "limitHighConsumptionContainer",
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
return {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10
},
forData: [
{ label: '限消令对象', prop: 'name', width: '215' },
{ label: '关联对象', prop: 'companyName', minWidth: '136' },
{ label: '申请执行人', prop: 'executionApplicant', width: '136' },
{ label: '执行法院', prop: 'court', minWidth: '171' },
{ label: '发布日期', prop: 'releaseDate', width: '136' },
{ label: '原文', prop: 'source', width: '136', slot: true },
],
formData: [
{ type: 5, fieldName: 'time', value: '', placeholder: '发布日期', startTime: 'dateFrom', endTime: 'dateTo', uid: this.getUid() },
],
//列表
tableLoading: false,
tableData: [],
tableDataTotal: 0,
showList: [],
isSkeleton: true
};
},
//可访问data属性
created() {
this.initDetail();
},
//计算集
computed: {
},
//方法集
methods: {
async initDetail() {
try {
await this.handleQuery();
} catch (error) {
}
},
async handleQuery(params) {
try {
let data = params ? params : this.queryParams;
this.isSkeleton = true;
const res = await getLimitHighConsumptionApi(data);
this.tableData = res.rows ? res.rows : [];
this.tableDataTotal = res.total ? res.total : 0;
} catch (error) {
console.log(error);
} finally {
this.isSkeleton = false;
}
},
// 查看原文
viewOriginalArticle(row) {
}
},
}
</script>
<style lang="scss" scoped>
.limit-high-consumption-container {
background: #ffffff;
border-radius: 4px;
padding: 16px;
input {
border: 1px solid #efefef;
}
::v-deep .el-form-item {
margin-right: 8px !important;
}
.query-box {
margin: 10px 0 20px;
}
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
> span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
@import "@/assets/styles/search-common.scss";
}
</style>
...@@ -25,46 +25,57 @@ ...@@ -25,46 +25,57 @@
</div> </div>
<div class="content"> <div class="content">
<div class="table-search"> <div class="table-search">
<div class="total">162</div> <div class="total">{{tableDataTotal}}</div>
<div class="right"> <div class="right">
<span class="add" @click="addEnterprise">添加企业</span> <span class="add" @click="addEnterprise">添加企业</span>
<span class="add1" @click="handleBatch">批量监控</span> <span class="add1" @click="handleBatch">批量监控</span>
</div> </div>
</div> </div>
<div class="table-item"> <div class="table-item">
<el-table <div v-if="tableDataTotal > 0 && !isSkeleton">
class="fixed-table" <el-table
element-loading-text="Loading" class="fixed-table"
:data="tableData" element-loading-text="Loading"
border :data="tableData"
highlight-current-row border
> highlight-current-row
<el-table-column label="序号" width="60" align="left" fixed>
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="监控对象" align="left" prop="companyName"></el-table-column>
<el-table-column label="风险动态" align="left">
<template slot-scope="scope">
<span class="color1 span">高风险 {{scope.row.highRiskCount}}</span>
<span class="color2 span">中风险 {{scope.row.middleRiskCount}}</span>
<span class="color3 span">低风险 {{scope.row.lowRiskCount}}</span>
<span class="color4 span">提示 {{scope.row.promptCount}}</span>
<span class="color5 span">正向 {{scope.row.positiveCount}}</span>
</template>
</el-table-column>
<el-table-column label="监控时间" width="240" align="left" prop="createTime"></el-table-column>
<el-table-column
label="操作"
align="left"
width="180"
class-name="small-padding fixed-width"
fixed="right"
> >
<template slot-scope="scope"> <el-table-column label="序号" width="60" align="left" fixed>
<span style="color:#0081FF;" @click="handleCancel(scope.row.companyId)">取消监控</span> <template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</template> </el-table-column>
</el-table-column> <el-table-column label="监控对象" align="left" prop="companyName"></el-table-column>
</el-table> <el-table-column label="风险动态" align="left">
<template slot-scope="scope">
<span class="color1 span">高风险 {{scope.row.highRiskCount}}</span>
<span class="color2 span">中风险 {{scope.row.middleRiskCount}}</span>
<span class="color3 span">低风险 {{scope.row.lowRiskCount}}</span>
<span class="color4 span">提示 {{scope.row.promptCount}}</span>
<span class="color5 span">正向 {{scope.row.positiveCount}}</span>
</template>
</el-table-column>
<el-table-column label="监控时间" width="240" align="left" prop="createTime"></el-table-column>
<el-table-column
label="操作"
align="left"
width="180"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span style="color:#0081FF;" @click="handleCancel(scope.row.companyId)">取消监控</span>
</template>
</el-table-column>
</el-table>
</div>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="tableDataTotal === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
</div>
<div class="pagination-box" v-if="tableDataTotal>queryParams.pageSize">
<el-pagination background :current-page="queryParams.pageNum" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
...@@ -75,7 +86,7 @@ ...@@ -75,7 +86,7 @@
<el-button type="primary" @click="handleConfirm">确定取消</el-button> <el-button type="primary" @click="handleConfirm">确定取消</el-button>
</div> </div>
</el-dialog> </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="add-content">
<div class="enterprise"> <div class="enterprise">
<div class="label">企业名称</div> <div class="label">企业名称</div>
...@@ -83,31 +94,24 @@ ...@@ -83,31 +94,24 @@
<el-button slot="append" @click="handleKeyword()">搜索</el-button> <el-button slot="append" @click="handleKeyword()">搜索</el-button>
</el-input> </el-input>
</div> </div>
<div class="companyList" v-if="dataList.length > 0"> <div class="companyList">
<div class="list"> <div class="list">
<div class="item" v-for="item in dataList"> <div class="item" v-for="item in dataList">
<div class="item-left"> <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-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.name.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>
<div class="item-right"> <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> <p class="right-tips">推荐监控</p>
</div> </div>
<el-checkbox @change="changeCheckbox(item)"></el-checkbox> <el-checkbox @change="changeCheckbox(item)"></el-checkbox>
</div> </div>
</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> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button>取消</el-button> <el-button @click="handleCancel1">取消</el-button>
<el-button type="primary" @click="handleAdd">确定</el-button> <el-button type="primary" @click="handleAdd">确定</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -141,15 +145,24 @@ ...@@ -141,15 +145,24 @@
</template> </template>
<script> <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' import { getToken } from '@/utils/auth'
import skeleton from '../component/skeleton'
export default { export default {
name: 'EnterpriseMonitoring', name: 'EnterpriseMonitoring',
components: {
skeleton
},
data() { data() {
return { return {
radio:null, radio:null,
date:[], date:[],
isSkeleton:true,
radioList:[ radioList:[
{
type:null,
label:'全部'
},
{ {
type:1, type:1,
label:'今天' label:'今天'
...@@ -205,31 +218,26 @@ ...@@ -205,31 +218,26 @@
console.log(this.queryParams) console.log(this.queryParams)
companyPage(this.queryParams).then(res => { companyPage(this.queryParams).then(res => {
console.log(res) console.log(res)
this.isSkeleton = false;
this.tableData=res.rows this.tableData=res.rows
this.tableDataTotal=res.total this.tableDataTotal=res.total
}) })
}, },
handleKeyword(){ handleKeyword(){
let data={ this.addEnterprise()
keyword:this.companyName,
page:{
"page": 1,
"limit": 50,
}
}
companyList(data).then(res => {
console.log(res.data.list)
this.dataList=res.data.list
})
}, },
changeCheckbox(item){ changeCheckbox(item){
console.log(item)
if (this.cid.indexOf(item.id) == -1) { if (this.cid.indexOf(item.id) == -1) {
this.cid.push(item.id) this.cid.push(item.id)
} else { } else {
this.cid.splice(this.cid.indexOf(item.id), 1) this.cid.splice(this.cid.indexOf(item.id), 1)
} }
}, },
handleCancel1(){
this.qyVisible=false;
this.companyName=''
this.dataList=[]
},
handleAdd(){ handleAdd(){
let data={ let data={
cid:this.cid cid:this.cid
...@@ -239,6 +247,7 @@ ...@@ -239,6 +247,7 @@
this.$modal.success("新增成功"); this.$modal.success("新增成功");
this.querySubmit() this.querySubmit()
}) })
}, },
radioBtn(val){ radioBtn(val){
let endTime = new Date() let endTime = new Date()
...@@ -272,9 +281,24 @@ ...@@ -272,9 +281,24 @@
this.date=[] this.date=[]
break; break;
default: default:
this.queryParams.condition.beginTime =''
this.queryParams.condition.endTime =''
this.querySubmit()
break; break;
} }
}, },
// 重置页数
handleSizeChange(val) {
this.queryParams.pageNum = 1
this.queryParams.pageSize = val
this.querySubmit()
},
// 跳转指定页数
handleCurrentChange(val) {
this.queryParams.pageNum = val
this.querySubmit()
window.scrollTo(0, 0);
},
// 时间选择改变后的回调 // 时间选择改变后的回调
changePicker(value) { changePicker(value) {
if(value && value.length) { if(value && value.length) {
...@@ -304,6 +328,16 @@ ...@@ -304,6 +328,16 @@
}, },
addEnterprise(){ addEnterprise(){
this.qyVisible=true; 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(){ handleBatch(){
this.pldrVisible=true; this.pldrVisible=true;
...@@ -429,6 +463,89 @@ ...@@ -429,6 +463,89 @@
color: #0CBC6D; color: #0CBC6D;
} }
} }
.empty{
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
}
::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{ ::v-deep .dialog-claim{
margin:0 !important; margin:0 !important;
...@@ -472,8 +589,9 @@ ...@@ -472,8 +589,9 @@
} }
} }
.add-content{ .add-content{
height: 200px; height: 300px;
.enterprise{ .enterprise{
margin: 0 20px 10px;
display: -webkit-box; display: -webkit-box;
align-items: flex-start; align-items: flex-start;
line-height: 32px; line-height: 32px;
...@@ -495,58 +613,6 @@ ...@@ -495,58 +613,6 @@
color: #0081FF; 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{ .dialog-footer{
......
...@@ -9,18 +9,22 @@ ...@@ -9,18 +9,22 @@
<div class="main-right"> <div class="main-right">
<div class="select-popper"> <div class="select-popper">
<span :class="{ color_text: sffx.length }">司法风险{{sffx.length > 0 ? sffx.length:''}}<i class="el-icon-caret-bottom"></i></span> <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-select ref="tenderTypeSelect" v-model="sffx" class="select-multiple" collapse-tags multiple @change="handleSelect" placeholder="请选择">
<el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName"> <el-checkbox-group v-model="sffx">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox> <el-option v-for="(i,index) in selectList" :key="index" :label="i.dimensionName" :value="i.dimensionName">
</el-option> <el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeSffx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-checkbox-group>
</el-select> </el-select>
</div> </div>
<div class="select-popper"> <div class="select-popper">
<span :class="{ color_text: gsfx.length }">工商风险{{gsfx.length > 0 ? gsfx.length:''}}<i class="el-icon-caret-bottom"></i></span> <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-select ref="tenderTypeSelect" v-model="gsfx" class="select-multiple" collapse-tags multiple placeholder="请选择">
<el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" :value="i.dimensionName"> <el-checkbox-group v-model="gsfx">
<el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox> <el-option v-for="(i,index) in selectList1" :key="index" :label="i.dimensionName" @change="handleSelect1" :value="i.dimensionName">
</el-option> <el-checkbox style="width: 100%;" :label="i.dimensionName" @change="changeGsfx(i)">{{i.dimensionName}}</el-checkbox>
</el-option>
</el-checkbox-group>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -36,17 +40,29 @@ ...@@ -36,17 +40,29 @@
</div> </div>
<div class="main-item" style="line-height: 32px;"> <div class="main-item" style="line-height: 32px;">
<div class="label">推送时段</div> <div class="label">推送时段</div>
<el-time-picker <el-time-select
is-range placeholder="起始时间"
class="timePicker" v-model="startTime"
v-model="time" @change="startChangeTime"
:picker-options="{ step: '01:00' }" :clearable="false"
@change="changeTime" :picker-options="{
range-separator="至" start: '00:00',
start-placeholder="开始时间" step: '01:00',
end-placeholder="结束时间" end: '22:00'
placeholder="选择时间范围"> }">
</el-time-picker> </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> </div>
<div class="m-title">监控接收方式</div> <div class="m-title">监控接收方式</div>
...@@ -59,7 +75,7 @@ ...@@ -59,7 +75,7 @@
</div> </div>
<div class="main-item" style="line-height: 32px;"> <div class="main-item" style="line-height: 32px;">
<div class="label">手机号码</div> <div class="label">手机号码</div>
<el-input class="phone" v-model="queryParams.phones" placeholder="请输入手机号"></el-input> <el-input class="phone" v-model="queryParams.phones" placeholder="请输入手机号" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</div> </div>
</div> </div>
<div class="search"> <div class="search">
...@@ -79,18 +95,19 @@ ...@@ -79,18 +95,19 @@
return { return {
selectList:[], selectList:[],
selectList1:[], selectList1:[],
arr:[],
sffx:[], sffx:[],
gsfx:[], gsfx:[],
checkFx: true, checkFx: true,
checkJkwd: true, checkJkwd: true,
queryParams:{ queryParams:{
fxType:[],
jkwdType:[],
pushFrequency:'0', pushFrequency:'0',
receiveMode:'0', receiveMode:'0',
phones:'' phones:''
}, },
time:'' startTime: '',
endTime: '',
detail:{}
} }
}, },
created() { created() {
...@@ -98,16 +115,35 @@ ...@@ -98,16 +115,35 @@
this.selectList=res.data; this.selectList=res.data;
for(let i in res.data){ for(let i in res.data){
if(res.data[i].dimensionName === '司法风险'){ 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 === '工商风险'){ if(res.data[i].dimensionName === '工商风险'){
this.selectList1=res.data[i].children 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: { methods: {
changeSffx(val) { changeSffx(val) {
...@@ -125,7 +161,14 @@ ...@@ -125,7 +161,14 @@
} }
}, },
handleSelect(val) { handleSelect(val) {
// console.log(val)
},
handleSelect1(val) {
},
// 开始时间改变
startChangeTime(value){
this.endTime = ""
}, },
handleAdd(){ handleAdd(){
let params={ let params={
...@@ -147,38 +190,20 @@ ...@@ -147,38 +190,20 @@
params.riskType='工商风险' params.riskType='工商风险'
params.dimension=this.gsfx.join() params.dimension=this.gsfx.join()
} }
if(this.time.length > 0){ if(this.startTime){
params.timePeriodStart=this.time[0] params.timePeriodStart=this.startTime
params.timePeriodEnd=this.time[1] }
if(this.endTime){
params.timePeriodEnd=this.endTime
} }
console.log(params) console.log(params)
insertOrUpdate(params).then(res => { insertOrUpdate(params).then(res => {
console.log(res) this.$modal.success(res.msg);
}) })
}, },
changeTime(val){ changeTime(val){
console.log(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> </script>
...@@ -265,9 +290,12 @@ ...@@ -265,9 +290,12 @@
} }
} }
} }
::v-deep .timePicker{ ::v-deep .el-date-editor.el-input{
width: 228px; width: 160px;
height: 32px; height: 32px;
.el-input__inner{
height: 32px;
}
.el-range__icon{ .el-range__icon{
line-height: 27px; line-height: 27px;
} }
......
...@@ -67,42 +67,53 @@ ...@@ -67,42 +67,53 @@
<div class="content"> <div class="content">
<div class="total">{{tableDataTotal}}</div> <div class="total">{{tableDataTotal}}</div>
<div class="table-item"> <div class="table-item">
<el-table <div v-if="tableDataTotal > 0 && !isSkeleton">
class="fixed-table" <el-table
:data="tableData" class="fixed-table"
element-loading-text="Loading" :data="tableData"
border element-loading-text="Loading"
highlight-current-row border
> highlight-current-row
<el-table-column label="序号" width="60" align="left" fixed>
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="监控对象" prop="companyName" align="left" width="250"></el-table-column>
<el-table-column label="风险级别" prop="riskLevel" align="left" width="120"></el-table-column>
<el-table-column label="监控类型" prop="parentName" align="left" width="150"></el-table-column>
<el-table-column label="动态内容" prop="details" align="left">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.Array" :key="index">
<div>
<span style="color: #999;">{{item.key}}</span>
<span>{{item.value}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="更新时间" prop="createTime" align="left" width="150"></el-table-column>
<el-table-column
label="操作"
align="center"
width="150"
class-name="small-padding fixed-width"
fixed="right"
> >
<template slot-scope="scope"> <el-table-column label="序号" width="60" align="left" fixed>
<span style="cursor: pointer;" @click="handleDetail">查看详情</span> <template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</template> </el-table-column>
</el-table-column> <el-table-column label="监控对象" prop="companyName" align="left" width="250"></el-table-column>
</el-table> <el-table-column label="风险级别" prop="riskLevel" align="left" width="120"></el-table-column>
<el-table-column label="监控类型" prop="parentName" align="left" width="150"></el-table-column>
<el-table-column label="动态内容" prop="details" align="left">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.Array" :key="index">
<div>
<span style="color: #999;">{{item.key}}</span>
<span>{{item.value}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="更新时间" prop="createTime" align="left" width="150"></el-table-column>
<el-table-column
label="操作"
align="center"
width="150"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span style="cursor: pointer;" @click="handleDetail">查看详情</span>
</template>
</el-table-column>
</el-table>
</div>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="tableDataTotal === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
</div>
<div class="pagination-box" v-if="tableDataTotal>queryParams.pageSize">
<el-pagination background :current-page="queryParams.pageNum" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
<el-dialog :visible.sync="dialogVisible" custom-class='dialog-claim' :title="title" width="720px" > <el-dialog :visible.sync="dialogVisible" custom-class='dialog-claim' :title="title" width="720px" >
...@@ -149,17 +160,23 @@ ...@@ -149,17 +160,23 @@
import {changeTime} from "@/assets/js/common.js" import {changeTime} from "@/assets/js/common.js"
import { dynamicPage,companyDetail,rulesSelect } from '@/api/monitoring/monitoring' import { dynamicPage,companyDetail,rulesSelect } from '@/api/monitoring/monitoring'
import InfoTable from '../detail/party-a/component/infoTable'; import InfoTable from '../detail/party-a/component/infoTable';
import skeleton from '../component/skeleton'
export default { export default {
name: 'MonitoringDynamics', name: 'MonitoringDynamics',
components: { components: {
InfoTable InfoTable,skeleton
}, },
data() { data() {
return { return {
changeTime, changeTime,
radio:1, isSkeleton:true,
radio:null,
date:'', date:'',
radioList:[ radioList:[
{
type:null,
label:'全部'
},
{ {
type:1, type:1,
label:'今天' label:'今天'
...@@ -333,6 +350,7 @@ ...@@ -333,6 +350,7 @@
this.queryParams.condition.fxjbType=this.riskLevel.join() this.queryParams.condition.fxjbType=this.riskLevel.join()
} }
dynamicPage(this.queryParams).then(res => { dynamicPage(this.queryParams).then(res => {
this.isSkeleton = false;
this.tableData=res.rows; this.tableData=res.rows;
this.tableDataTotal=res.total; this.tableDataTotal=res.total;
this.tableData.forEach(el => { this.tableData.forEach(el => {
...@@ -423,9 +441,24 @@ ...@@ -423,9 +441,24 @@
this.date=[] this.date=[]
break; break;
default: default:
this.queryParams.condition.beginTime=''
this.queryParams.condition.endTime=''
this.querySubmit()
break; break;
} }
}, },
// 重置页数
handleSizeChange(val) {
this.queryParams.pageNum = 1
this.queryParams.pageSize = val
this.querySubmit()
},
// 跳转指定页数
handleCurrentChange(val) {
this.queryParams.pageNum = val
this.querySubmit()
window.scrollTo(0, 0);
},
// 时间选择改变后的回调 // 时间选择改变后的回调
changePicker(value) { changePicker(value) {
if(value && value.length) { if(value && value.length) {
...@@ -696,6 +729,27 @@ ...@@ -696,6 +729,27 @@
margin-right: 4px; margin-right: 4px;
} }
} }
.empty{
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
} }
::v-deep .dialog-claim{ ::v-deep .dialog-claim{
.el-dialog__header{ .el-dialog__header{
......
...@@ -9,14 +9,14 @@ ...@@ -9,14 +9,14 @@
</el-tabs> </el-tabs>
</div> </div>
<div class="report-content"> <div class="report-content">
<div class="list" v-for="item in dataList"> <div class="list" v-if="tableDataTotal > 0 && !isSkeleton" v-for="item in dataList">
<div class="list-title"> <div class="list-title">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">{{item.period}}</span> <span class="common-title">{{item.period}}</span>
</div> </div>
<div class="flex-box query-ability"> <div class="flex-box query-ability">
<span style="color:#0081FF;padding: 0 4px;">13</span>家企业发生<span style="color:#F7965B;padding: 0 4px;">651</span>条动态信息 <span style="color:#0081FF;padding: 0 4px;">{{item.companyNum}}</span>家企业发生<span style="color:#F7965B;padding: 0 4px;">{{item.dynamicNum}}</span>条动态信息
</div> </div>
</div> </div>
</div> </div>
...@@ -33,28 +33,39 @@ ...@@ -33,28 +33,39 @@
<span class="right-label">提示:</span> <span class="right-label">提示:</span>
<span class="right-color color1">{{i.promptCount}}</span> <span class="right-color color1">{{i.promptCount}}</span>
<span class="right-label">正向:</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-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-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-label">高风险:</span>
<span class="right-color color1">{{i.highRiskCount}}</span> <span class="right-color color5">{{i.highRiskCount}}</span>
</p> </p>
<div class="tips">新增<span style="color:#0081FF;padding: 0 4px;">{{i.dynamicTotal}}</span>条动态信息</div> <div class="tips">新增<span style="color:#0081FF;padding: 0 4px;">{{i.dynamicTotal}}</span>条动态信息</div>
</div> </div>
</div> </div>
</div> </div>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="tableDataTotal === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { reportPage } from '@/api/monitoring/monitoring' import { reportPage } from '@/api/monitoring/monitoring'
import skeleton from '../component/skeleton'
export default { export default {
name: 'MonitoringReport', name: 'MonitoringReport',
components: {
skeleton
},
data() { data() {
return { return {
isSkeleton:true,
activeName:'1', activeName:'1',
dataList:[ dataList:[
{ {
...@@ -68,7 +79,8 @@ ...@@ -68,7 +79,8 @@
condition:{ condition:{
reportType:1 reportType:1
} }
} },
tableDataTotal:0,
} }
}, },
created() { created() {
...@@ -78,7 +90,9 @@ ...@@ -78,7 +90,9 @@
async querySubmit() { async querySubmit() {
reportPage(this.queryParams).then(res => { reportPage(this.queryParams).then(res => {
console.log(res) console.log(res)
this.dataList=res.rows this.isSkeleton = false;
this.dataList=res.rows;
this.tableDataTotal=res.total
}) })
}, },
handleClick() { handleClick() {
...@@ -217,6 +231,28 @@ ...@@ -217,6 +231,28 @@
border-bottom:0; border-bottom:0;
} }
} }
.empty{
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
background: #ffffff;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
} }
} }
</style> </style>
...@@ -74,42 +74,53 @@ ...@@ -74,42 +74,53 @@
<div class="content"> <div class="content">
<div class="total">{{tableDataTotal}}</div> <div class="total">{{tableDataTotal}}</div>
<div class="table-item"> <div class="table-item">
<el-table <div v-if="tableDataTotal > 0 && !isSkeleton">
class="fixed-table" <el-table
:data="tableData" class="fixed-table"
element-loading-text="Loading" :data="tableData"
border element-loading-text="Loading"
highlight-current-row border
> highlight-current-row
<el-table-column label="序号" width="60" align="left" fixed>
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="监控对象" prop="companyName" align="left" width="250"></el-table-column>
<el-table-column label="风险级别" prop="riskLevel" align="left" width="120"></el-table-column>
<el-table-column label="监控类型" prop="parentName" align="left" width="150"></el-table-column>
<el-table-column label="动态内容" prop="details" align="left">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.Array" :key="index">
<div>
<span style="color: #999;">{{item.key}}</span>
<span>{{item.value}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="更新时间" prop="createTime" align="left" width="150"></el-table-column>
<el-table-column
label="操作"
align="center"
width="150"
class-name="small-padding fixed-width"
fixed="right"
> >
<template slot-scope="scope"> <el-table-column label="序号" width="60" align="left" fixed>
<span style="cursor: pointer;" @click="handleDetail">查看详情</span> <template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</template> </el-table-column>
</el-table-column> <el-table-column label="监控对象" prop="companyName" align="left" width="250"></el-table-column>
</el-table> <el-table-column label="风险级别" prop="riskLevel" align="left" width="120"></el-table-column>
<el-table-column label="监控类型" prop="parentName" align="left" width="150"></el-table-column>
<el-table-column label="动态内容" prop="details" align="left">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.Array" :key="index">
<div>
<span style="color: #999;">{{item.key}}</span>
<span>{{item.value}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="更新时间" prop="createTime" align="left" width="150"></el-table-column>
<el-table-column
label="操作"
align="center"
width="150"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<span style="cursor: pointer;" @click="handleDetail">查看详情</span>
</template>
</el-table-column>
</el-table>
</div>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="empty" v-if="tableDataTotal === 0 && !isSkeleton">
<img class="img" src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
</div>
</div>
<div class="pagination-box" v-if="tableDataTotal>queryParams.pageSize">
<el-pagination background :current-page="queryParams.pageNum" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
<el-dialog :visible.sync="dialogVisible" custom-class='dialog-claim' :title="title" width="720px" > <el-dialog :visible.sync="dialogVisible" custom-class='dialog-claim' :title="title" width="720px" >
...@@ -142,14 +153,16 @@ ...@@ -142,14 +153,16 @@
import { dynamicPage,rulesSelect,companyDetail } from '@/api/monitoring/monitoring' import { dynamicPage,rulesSelect,companyDetail } from '@/api/monitoring/monitoring'
import InfoTable from '../detail/party-a/component/infoTable'; import InfoTable from '../detail/party-a/component/infoTable';
import {changeTime} from "@/assets/js/common.js" import {changeTime} from "@/assets/js/common.js"
import skeleton from '../component/skeleton'
export default { export default {
name: 'MonitoringDynamics', name: 'MonitoringDynamics',
components: { components: {
InfoTable InfoTable,skeleton
}, },
data() { data() {
return { return {
changeTime, changeTime,
isSkeleton:true,
radio:0, radio:0,
date:'', date:'',
radioList:[ radioList:[
...@@ -194,16 +207,6 @@ ...@@ -194,16 +207,6 @@
], ],
checkFx: true, checkFx: true,
fxlxType:[], fxlxType:[],
jkType:[
{
value:'1',
label:'司法风险'
},
{
value:'2',
label:'工商变更'
},
],
selectList:[], selectList:[],
selectList1:[], selectList1:[],
sffx:[], sffx:[],
...@@ -337,6 +340,7 @@ ...@@ -337,6 +340,7 @@
this.queryParams.condition.fxjbType=this.riskLevel.join() this.queryParams.condition.fxjbType=this.riskLevel.join()
} }
dynamicPage(this.queryParams).then(res => { dynamicPage(this.queryParams).then(res => {
this.isSkeleton = false;
this.object=res.object; this.object=res.object;
this.tableData=res.rows; this.tableData=res.rows;
this.tableDataTotal=res.total; this.tableDataTotal=res.total;
...@@ -377,6 +381,18 @@ ...@@ -377,6 +381,18 @@
handleDetail(){ handleDetail(){
this.dialogVisible=true; this.dialogVisible=true;
}, },
// 重置页数
handleSizeChange(val) {
this.queryParams.pageNum = 1
this.queryParams.pageSize = val
this.querySubmit()
},
// 跳转指定页数
handleCurrentChange(val) {
this.queryParams.pageNum = val
this.querySubmit()
window.scrollTo(0, 0);
},
// 时间格式化 // 时间格式化
formatDate(timeStr) { formatDate(timeStr) {
let date = new Date(Number(timeStr)); let date = new Date(Number(timeStr));
...@@ -643,6 +659,27 @@ ...@@ -643,6 +659,27 @@
margin-right: 4px; margin-right: 4px;
} }
} }
.empty{
margin: 0 auto;
height: 550px;
text-align: center;
border-top: 1px solid #EFEFEF;
.img{
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 150px;
}
.p1{
color: #333333;
font-size: 16px;
}
.p2{
color: #999999;
font-size: 14px;
margin-top: 8px;
}
}
} }
::v-deep .dialog-claim{ ::v-deep .dialog-claim{
.el-dialog__header{ .el-dialog__header{
......
...@@ -53,18 +53,31 @@ ...@@ -53,18 +53,31 @@
</div> </div>
<div class="main-item" style="line-height: 32px;"> <div class="main-item" style="line-height: 32px;">
<div class="label">推送时段</div> <div class="label">推送时段</div>
<el-time-picker <el-time-select
is-range placeholder="起始时间"
class="timePicker" v-model="startTime"
v-model="time" @change="startChangeTime"
value-format="HH:mm:ss" :clearable="false"
@change="changeTime" :picker-options="{
range-separator="至" start: '00:00',
start-placeholder="开始时间" step: '01:00',
end-placeholder="结束时间" end: '22:00'
placeholder="选择时间范围"> }">
</el-time-picker> </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>
<el-button type="primary" @click="handleSave">保存</el-button>
</div> </div>
</div> </div>
<el-dialog :visible.sync="visible" custom-class='dialog-claim' title="新增推送人信息" width="480px" > <el-dialog :visible.sync="visible" custom-class='dialog-claim' title="新增推送人信息" width="480px" >
...@@ -127,7 +140,8 @@ ...@@ -127,7 +140,8 @@
tableData:[], tableData:[],
visible:false, visible:false,
radioTime:'0', radioTime:'0',
time:[], startTime: '',
endTime: '',
tableDataTotal:0, tableDataTotal:0,
pageSize:10, pageSize:10,
pageNum:1, pageNum:1,
...@@ -145,7 +159,9 @@ ...@@ -145,7 +159,9 @@
this.radioTime=response.data.configValue this.radioTime=response.data.configValue
}); });
configKey("customer-badness-time-frame").then(response => { 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() this.getList()
}, },
...@@ -178,6 +194,10 @@ ...@@ -178,6 +194,10 @@
} }
this.id=item.id this.id=item.id
}, },
// 开始时间改变
startChangeTime(value){
this.endTime = ""
},
handleAdd(){ handleAdd(){
let params={ let params={
pushTypeCode:'custoemr-badness', pushTypeCode:'custoemr-badness',
...@@ -214,9 +234,8 @@ ...@@ -214,9 +234,8 @@
this.getList() this.getList()
}) })
}, },
changeTime(val){ handleSave(){
console.log(val) let time=this.startTime.substring(0,2)+'-'+this.endTime.substring(0,2)
let time=val[0]+'-'+val[1]
configUpdate({configKey:'customer-badness-time-frame',configValue:time}).then(res => { configUpdate({configKey:'customer-badness-time-frame',configValue:time}).then(res => {
this.$modal.success(res.msg); this.$modal.success(res.msg);
}); });
......
...@@ -38,7 +38,7 @@ module.exports = { ...@@ -38,7 +38,7 @@ module.exports = {
// target: `http://47.104.91.229:9099/prod-api`,//测试-旧 // target: `http://47.104.91.229:9099/prod-api`,//测试-旧
target: `http://111.204.34.146:9099/prod-api`,//测试 target: `http://111.204.34.146:9099/prod-api`,//测试
// target: `http://192.168.60.5:9098`,//陈跃方 // target: `http://192.168.60.5:9098`,//陈跃方
// target: `http://192.168.60.27:9098`,//邓
// target: `http://122.9.160.122:9011`, //线上 // target: `http://122.9.160.122:9011`, //线上
// target: `http://192.168.0.165:9098`,//施-无线 // target: `http://192.168.0.165:9098`,//施-无线
// target: `http://192.168.60.46:9098`,//施-有线 // target: `http://192.168.60.46:9098`,//施-有线
......
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