Commit ce2d397f 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 f748cd3d 1f49191c
......@@ -173,6 +173,14 @@ tenant:
- biz_dict_data
- push_monitor_rules
- push_monitor_info
- d_customer_business_license
- d_customer_inspection_certificate
- d_customer_org_certificate
- d_customer_other_certificate
- d_customer_performance_certificate
- d_customer_qualification_certificate
- d_customer_safety_certificate
- d_customer_tax_certificate
# MyBatisPlus配置
......
......@@ -46,7 +46,7 @@ public class DCustomerController extends BaseController {
*/
@GetMapping("/info/{customerKey}")
public R<DCustomer> info(@PathVariable String customerKey) {
return R.ok(baseService.getById(customerKey));
return R.ok(baseService.info(customerKey));
}
/**
......
......@@ -2,9 +2,11 @@ package com.dsk.cscec.domain;
import java.util.Date;
import java.io.Serializable;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.dsk.cscec.domain.vo.CertificateVo;
import lombok.Data;
/**
......@@ -532,19 +534,49 @@ public class DCustomer implements Serializable {
*/
private Date loadTime;
/**
* 企业合作数量
*营业执照url
*/
@TableField(exist = false)
private Integer enterpriseCooperationCount;
private List<CertificateVo> businessLicenseList;
/**
* 项目合作数量
* 组织机构代码证url
*/
@TableField(exist = false)
private Integer projectCooperationCount;
private List<CertificateVo> orgCertificateList;
/**
* jsk企业id
* 税务登记证url
*/
@TableField(exist = false)
private Integer companyId;
private List<CertificateVo> taxCertificateList;
/**
* 资质证书url
*/
@TableField(exist = false)
private List<CertificateVo> qualificationCertificateList;
/**
* 安全生产url
*/
@TableField(exist = false)
private List<CertificateVo> safetyCertificateList;
/**
* 增值税一般纳税人资格证明url
*/
@TableField(exist = false)
private List<CertificateVo> ratepayerCertificateList;
/**
* 业绩报告url
*/
@TableField(exist = false)
private List<CertificateVo> performanceCertificateList;
/**
* 考察报告url
*/
@TableField(exist = false)
private List<CertificateVo> inspectionCertificateList;
/**
* 其他url
*/
@TableField(exist = false)
private List<CertificateVo> otherCertificateList;
}
......@@ -62,7 +62,7 @@ public class AdvisoryBodyVo {
* 工程类别明细
*/
@ExcelProperty(value = "工程类别明细", index = 6)
private String projectType;
private String projectType2;
/**
* 咨询机构ID
......@@ -97,7 +97,7 @@ public class AdvisoryBodyVo {
* 合同金额
*/
@ExcelProperty(value = "合同金额", index = 10)
private BigDecimal contractOrigValue;
private BigDecimal contractValue;
/**
* 业主单位
......
package com.dsk.cscec.domain.vo;
import lombok.Data;
/**
* @Author lcl
* @Data 2023/12/28 14:13
*/
@Data
public class CertificateVo {
/**
* 文件链接
*/
private String docLink;
/**
* 文件名称
*/
private String docName;
/**
* 记录时间
*/
private String loadTime;
}
......@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.CertificateVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import org.apache.ibatis.annotations.Param;
......@@ -31,5 +32,23 @@ public interface DCustomerMapper extends BaseMapper<DCustomer> {
*/
Page<CustomerInfoVo> queryListByType(IPage<CustomerInfoBo> build, @Param("bo") CustomerInfoBo bo);
List<CertificateVo> selectBusinessLicense(String customerId);
List<CertificateVo> selectOrgCertificate(String customerId);
List<CertificateVo> selectTaxCertificate(String customerId);
List<CertificateVo> selectQualificationCertificate(String customerId);
List<CertificateVo> selectSafetyCertificate(String customerId);
List<CertificateVo> selectRatepayerCertificate(String customerId);
List<CertificateVo> selectPerformanceCertificate(String customerId);
List<CertificateVo> selectInspectionCertificate(String customerId);
List<CertificateVo> selectOtherCertificate(String customerId);
}
......@@ -21,5 +21,7 @@ public interface IDCustomerService extends IService<DCustomer> {
List<DCustomerListVo> exportList(DCustomerSearchBo bo);
DCustomer info(String customerKey);
}
......@@ -52,10 +52,6 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
//项目合作数量
item.setProjectCooperationCount(vo.getProjectCooperationCount());
showCustomerClass(item);
//关键字标红
if (!ObjectUtils.isEmpty(bo.getCustomerName())) {
item.setCustomerName(StringUtils.markInRed(item.getCustomerName(), bo.getCustomerName()));
}
try {
Map<String, Object> map = opportunityRadarService.enterpriseByName(item.getCustomerName());
if (!ObjectUtils.isEmpty(map.get("data"))) {
......@@ -66,6 +62,10 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
} catch (Exception e) {
//
}
//关键字标红
if (!ObjectUtils.isEmpty(bo.getCustomerName())) {
item.setCustomerName(StringUtils.markInRed(item.getCustomerName(), bo.getCustomerName()));
}
});
}
return TableDataInfo.build(page);
......@@ -89,6 +89,35 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
return records;
}
@Override
public DCustomer info(String customerKey) {
DCustomer customer = baseMapper.selectById(customerKey);
setCertificate(customer);
return customer;
}
private void setCertificate(DCustomer customer) {
if (ObjectUtils.isEmpty(customer)) return;
//营业执照url
customer.setBusinessLicenseList(baseMapper.selectBusinessLicense(customer.getCustomerId()));
//组织机构代码证url
customer.setOrgCertificateList(baseMapper.selectOrgCertificate(customer.getCustomerId()));
//税务登记证url
customer.setTaxCertificateList(baseMapper.selectTaxCertificate(customer.getCustomerId()));
//资质证书url
customer.setQualificationCertificateList(baseMapper.selectQualificationCertificate(customer.getCustomerId()));
//安全生产url
customer.setSafetyCertificateList(baseMapper.selectSafetyCertificate(customer.getCustomerId()));
//增值税一般纳税人资格证明url
// customer.setRatepayerCertificateList(baseMapper.selectRatepayerCertificate(customer.getCustomerId()));
//业绩报告url
customer.setPerformanceCertificateList(baseMapper.selectPerformanceCertificate(customer.getCustomerId()));
//考察报告url
customer.setInspectionCertificateList(baseMapper.selectInspectionCertificate(customer.getCustomerId()));
//其他url
customer.setOtherCertificateList(baseMapper.selectOtherCertificate(customer.getCustomerId()));
}
private void dealWithCustomerClass(DCustomerSearchBo bo) {
if (!ObjectUtils.isEmpty(bo.getCustomerClass())) {
List<String> list = new ArrayList<>();
......
......@@ -2,6 +2,7 @@ package com.dsk.jsk.controller;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.jsk.domain.JskCompanyRelationTableV1DetailPageDto;
import com.dsk.jsk.domain.JskCompanyRelationTableV1Dto;
import com.dsk.jsk.service.CompanyRelationTableV1Service;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -46,7 +47,7 @@ public class CompanyRelationTableV1Controller {
*@date: 2023/5/18 10:29
*/
@PostMapping("/detailPage")
public TableDataInfo detailPage(@RequestBody JskCompanyRelationTableV1Dto dto) throws Exception{
public TableDataInfo detailPage(@RequestBody JskCompanyRelationTableV1DetailPageDto dto) throws Exception{
return relationTableV1Service.detailPage(dto);
}
......@@ -70,7 +71,7 @@ public class CompanyRelationTableV1Controller {
*@date: 2023/5/18 10:29
*/
@PostMapping("/statistics")
public R statistics(@RequestBody JskCompanyRelationTableV1Dto dto) throws Exception{
public R statistics(@RequestBody JskCompanyRelationTableV1DetailPageDto dto) throws Exception{
return relationTableV1Service.statistics(dto);
}
......
package com.dsk.jsk.domain;
import lombok.Data;
import java.util.List;
/**
* @ClassName JskCompanyRelationTableV1DetailPageDto
* @Description 查看详情
* @Author Dgm
* @Date 2023/12/11 20:37
* @Version
*/
@Data
public class JskCompanyRelationTableV1DetailPageDto extends BasePage {
/**
* 搜-关键字素
*/
private String keyword;
/**
* 企业类型
*/
private String companyRole;
/**
* 项目类型
*/
private List<String> counterpartCompanyRoles;
/**
* 工程类型
*/
private List<String> projectTypes;
/**
* 咨询机构业务类型
*/
private List<String> businessTypes;
/**
* 公布日期-开始时间
*/
private String beginTime;
/**
* 公布日期-结束时间
*/
private String endTime;
/**
* 本次合作合同金额(万元)-最大金额
*/
private Double maxAmount;
/**
* 本次合作合同金额(万元)-最小金额
*/
private Double minAmount;
/**
* 企业Id
*/
private Integer companyId;
/**
* 企业类型 1:业主 2:施工 3:集团
*/
private Integer companyType;
/**
* 排序 1:金额降序 2:金额升序 3: 时间降序 4: 时间升区5: 数量降序6:数量升序
*/
private Integer sort = 5;
/**
* 集团Id
*/
private String combineId;
/**
* 成员Id(常合作集团成员详情)
*/
private Integer memberId;
}
......@@ -34,7 +34,7 @@ public class CompanyRelationTableV1Service {
return dskOpenApiUtil.responsePage(map);
}
public TableDataInfo detailPage(JskCompanyRelationTableV1Dto dto) throws Exception {
public TableDataInfo detailPage(JskCompanyRelationTableV1DetailPageDto dto) throws Exception {
Map<String, Object> map = null;
if (dto.getCompanyType().equals(3) || dto.getCompanyType().equals(4)) {
map = dskOpenApiUtil.requestBody("/operate/consultancy/combineDetailPage", BeanUtil.beanToMap(dto, false, false));
......@@ -63,8 +63,13 @@ public class CompanyRelationTableV1Service {
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
public R statistics(JskCompanyRelationTableV1Dto dto) throws Exception{
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/consultancy/statistics", BeanUtil.beanToMap(dto, false, false));
public R statistics(JskCompanyRelationTableV1DetailPageDto dto) throws Exception{
Map<String, Object> map = null;
if (dto.getCompanyType().equals(3) || dto.getCompanyType().equals(4)) {
map = dskOpenApiUtil.requestBody("/operate/consultancy/combineDetail/statistics", BeanUtil.beanToMap(dto, false, false));
} else {
map = dskOpenApiUtil.requestBody("/operate/consultancy/statistics", BeanUtil.beanToMap(dto, false, false));
}
return BeanUtil.toBean(map, R.class);
}
......
......@@ -21,43 +21,15 @@ public class PushMonitorInfo implements Serializable {
/**
* 对外开放的id
*/
private String id;
private Integer id;
/**
* 源表id
* 用户id
*/
private String sourceId;
private Long userId;
/**
* 源表名
* 动态次数
*/
private String sourceTable;
/**
* 公司Id
*/
private Integer companyId;
/**
* 企业名称
*/
private String companyName;
/**
* 风险等级:正向,负向,中立,警示
*/
private String riskLevel;
/**
* 监控维度父级
*/
private String parentDimension;
/**
* 监控维度
*/
private String dimension;
/**
* 动态内容
*/
private String details;
/**
* 发布时间
*/
private Date publishTime;
private Integer count;
/**
* 创建时间
*/
......@@ -66,27 +38,5 @@ public class PushMonitorInfo implements Serializable {
* 更新时间
*/
private Date updateTime;
/**
* 变更时间-暂时用于法人变更
*/
private Date changeDate;
/**
* 更新次数
*/
private Integer versionNum;
/**
* 是否发送 0否 1是
*/
private Integer isSend;
/**
* 数据来源(jsk,fy)
*/
private String source;
/**
* 系统类型 JSK/BRIS
*/
private String sysType;
}
package com.dsk.monitor.domain.vo;
import lombok.Data;
/**
* @ClassName PushMonitorRulesVo
* @Description 是否工作日
* @Author Dgm
* @Date 2023/12/9 11:05
* @Version
*/
@Data
public class PushSettingHolidayVo {
/**
* 时间戳
*/
private Long timestamp;
}
......@@ -4,13 +4,16 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsk.common.tenant.helper.TenantHelper;
import com.dsk.common.utils.DateUtils;
import com.dsk.monitor.domain.dto.PushMonitorInfo;
import com.dsk.monitor.domain.dto.PushMonitorRules;
import com.dsk.monitor.domain.vo.ConditionVo;
import com.dsk.monitor.domain.vo.PushMonitorDynamicPageVo;
import com.dsk.monitor.domain.vo.PushSettingHolidayVo;
import com.dsk.monitor.mapper.PushMonitorInfoMapper;
import com.dsk.monitor.mapper.PushMonitorRulesMapper;
import com.dsk.monitor.service.MonitorService;
import com.dsk.monitor.util.SendMessageUtil;
import org.apache.commons.collections4.MapUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
......@@ -18,6 +21,7 @@ import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @ClassName PushScheduling
......@@ -43,10 +47,14 @@ public class PushScheduling {
public void receiveModePhone() throws Exception {
// 是否是周末
boolean isWeekend = DateUtil.isWeekend(new Date());
String aa = DateUtil.now();
PushSettingHolidayVo holidayVo = new PushSettingHolidayVo();
holidayVo.setTimestamp(System.currentTimeMillis());
Map<String, Object> settingHolidayMap = monitorService.settingHoliday(holidayVo);
Integer settingHolidayCode = MapUtils.getInteger(settingHolidayMap, "code", 300);
Boolean settingHolidayData = MapUtils.getBoolean(settingHolidayMap, "data", null);
if (200 == settingHolidayCode) {
isWeekend = !settingHolidayData;
}
TenantHelper.setTenantId("1");
// 获取当前整点时间
Integer concurrentHour = DateUtils.getHour();
......@@ -74,9 +82,6 @@ public class PushScheduling {
Integer timeStart = Integer.valueOf(timePeriodStart);
Integer timeEnd = Integer.valueOf(timePeriodEnd);
if (concurrentHour >= timeStart && concurrentHour <= timeEnd) {
QueryWrapper monitorInfoWrapper = new QueryWrapper();
// 风险类型
// monitorInfoWrapper.in("risk_type", detail.getRiskType());
PushMonitorDynamicPageVo pageVo = new PushMonitorDynamicPageVo();
pageVo.setUserId(detail.getUserId());
ConditionVo vo = new ConditionVo();
......@@ -84,21 +89,32 @@ public class PushScheduling {
vo.setEndTime(DateUtils.getDate());
vo.setBeginTime(DateUtils.format(DateUtils.addDays(new Date(),-1)));
// 监控维度
vo.setDimension(getDimension(detail.getDimension()));
vo.setDimension(getParamList(detail.getDimension()));
vo.setUserId(detail.getUserId());
pageVo.setCondition(vo);;
Integer count = monitorService.companyDynamicPage2(pageVo);
Map<String, Object> resMap = monitorService.companyDynamicPageScheduled(pageVo);
Integer code = MapUtils.getInteger(resMap, "code", 300);
Map data = MapUtils.getMap(resMap, "data", null);
if (200 != code) {
continue;
}
Integer count = MapUtils.getInteger(data, "totalCount", 0);
if (count > 0 ) {
SendMessageUtil.sendMessage(detail.getPhones(), count.toString());
}
if (count > 0) {
PushMonitorInfo pushMonitorInfo = new PushMonitorInfo();
pushMonitorInfo.setUserId(detail.getUserId());
pushMonitorInfo.setCount(count);
monitorInfoMapper.insert(pushMonitorInfo);
}
}
}
}
public List<String> getDimension(String dimension) {
List<String> dimensionList = Arrays.asList(dimension.split(","));
return dimensionList;
public List<String> getParamList(String dimension) {
List<String> getParamList = Arrays.asList(dimension.split(","));
return getParamList;
}
}
......@@ -5,6 +5,8 @@ import com.dsk.common.core.page.TableDataInfo;
import com.dsk.monitor.domain.vo.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
/**
* @ClassName MonitorService
* @Description 监控service
......@@ -67,7 +69,7 @@ public interface MonitorService {
*@Author: Dgm
*@date: 2023/12/9 10:03
*/
Integer companyDynamicPage2(PushMonitorDynamicPageVo pageVo) throws Exception;
Map<String, Object> companyDynamicPageScheduled(PushMonitorDynamicPageVo pageVo) throws Exception;
/***
*@Description: 监控报告
......@@ -134,4 +136,13 @@ public interface MonitorService {
*@date: 2023/12/9 10:03
*/
R systemDetail(PushMonitorSystemDetailVo importAddVo);
/***
*@Description: 是否工作日
*@Param: holidayVo 信息
*@return: R
*@Author: Dgm
*@date: 2023/12/9 10:03
*/
Map<String, Object> settingHoliday(PushSettingHolidayVo holidayVo) throws Exception;
}
......@@ -104,16 +104,10 @@ public class MonitorServiceImpl implements MonitorService {
}
@Override
public Integer companyDynamicPage2(PushMonitorDynamicPageVo pageVo) throws Exception {
public Map<String, Object> companyDynamicPageScheduled(PushMonitorDynamicPageVo pageVo) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/company/info/companyDynamicList", BeanUtil.beanToMap(pageVo, false, false));
log.info("companyDynamicPage=============================>"+map);
Integer code = MapUtils.getInteger(map, "code", 300);
Map data = MapUtils.getMap(map, "data", null);
Integer count = 0;
if (code.equals(200)) {
count = MapUtils.getInteger(data, "totalCount", 0);
}
return count;
return map;
}
@Override
......@@ -320,4 +314,11 @@ public class MonitorServiceImpl implements MonitorService {
}
return detailVo;
}
@Override
public Map<String, Object> settingHoliday(PushSettingHolidayVo holidayVo) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/monitor/push/settingHoliday", BeanUtil.beanToMap(holidayVo, false, false));
log.info("companyDynamicPage=============================>"+map);
return map;
}
}
package com.dsk.search.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.jsk.domain.JskCombineSearchDto;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.search.service.BusinessOpportunityRadarService;
import com.dsk.search.service.ExportService;
......@@ -62,4 +64,26 @@ public class ExportController {
return exportService.aptitudeFile(file);
}
/**
* 集团成员列表导出
*/
@PostMapping("/combine/memberList")
public AjaxResult memberListExportPre(@RequestBody JskCombineSearchDto dto) throws Exception {
return exportService.memberListExport(dto);
}
//集团中标业绩导出
@PostMapping("/combine/win/bid")
@SaCheckPermission("combine:info:export:win:bid")
public AjaxResult exportWinBid(@RequestBody JskCombineSearchDto dto) {
return exportService.exportWinBid(dto);
}
//集团招标业绩导出
@PostMapping("/combine/bid")
@SaCheckPermission("combine:info:export:win:bid")
public AjaxResult exportBid(@RequestBody JskCombineSearchDto dto) {
return exportService.exportBid(dto);
}
}
package com.dsk.search.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.constant.Constants;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.excel.ExcelUtils;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.jsk.domain.JskCombineSearchDto;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.jsk.service.EnterpriseService;
import com.dsk.system.domain.SysUserFileRecord;
......@@ -22,6 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.util.*;
/**
......@@ -40,18 +44,25 @@ public class ExportService {
private String EXPORT_BACK_URL;
public AjaxResult aptitudeFile(MultipartFile file) throws Exception {
int exportCount = 1;
if (RedisUtils.hasKey("aptitudeFileExportCount")){
exportCount = RedisUtils.getCacheObject("aptitudeFileExportCount");
if (exportCount>=3){
return AjaxResult.error("每天最多导出3次");
}
}
ComposeQueryDto composeQueryDto = new ComposeQueryDto();
//识别Excel内容
List<AptitudeVo> companyNameList = new ExcelUtils<>(AptitudeVo.class).importExcel(file.getInputStream(), 2);
if (companyNameList.isEmpty()) {
throw new ServiceException("表格中不存在待导入数据!");
throw new ServiceException("表格中不存在待查询数据!");
}
List<String> list = new ArrayList<>();
for (int i = 0; i < companyNameList.size(); i++) {
if (i>499){
break;
if (i<500){
list.add(companyNameList.get(i).getCompanyName());
}
list.add(companyNameList.get(i).getCompanyName());
}
composeQueryDto.setKeyword(String.join(",",list));
SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMdd");
......@@ -63,12 +74,66 @@ public class ExportService {
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("资质批量导出");
fileRecord.setCreateTime(new DateTime());
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
composeQueryDto.setExportUniqueCode(fileId.toString());
//回调函数
composeQueryDto.setExportBackUrl(EXPORT_BACK_URL);
composeQueryDto.setExportExeclName(fileName);
dskOpenApiUtil.requestBody("/operate/export/zjyj/aptitude", BeanUtil.beanToMap(composeQueryDto,false,false));
RedisUtils.setCacheObject("aptitudeFileExportCount",exportCount);
RedisUtils.expire("aptitudeFileExportCount", Duration.ofHours(24));
return AjaxResult.success();
}
//集团成员导出
public AjaxResult memberListExport(JskCombineSearchDto dto) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(dto.getExportExeclName().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("集团成员列表导出");
fileRecord.setCreateTime(new DateTime());
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
dto.setExportUniqueCode(fileId.toString());
//回调函数
dto.setExportBackUrl(EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/member", BeanUtil.beanToMap(dto, false, false));
return AjaxResult.success();
}
//集团中标业绩导出
public AjaxResult exportWinBid(JskCombineSearchDto dto) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(dto.getExportExeclName().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("集团中标业绩导出");
fileRecord.setCreateTime(new DateTime());
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
dto.setExportUniqueCode(fileId.toString());
//回调函数
dto.setExportBackUrl(EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/combineBid", BeanUtil.beanToMap(dto, false, false));
return AjaxResult.success();
}
//集团招标业绩
public AjaxResult exportBid(JskCombineSearchDto dto) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(dto.getExportExeclName().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("集团招标业绩导出");
fileRecord.setCreateTime(new DateTime());
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
dto.setExportUniqueCode(fileId.toString());
//回调函数
dto.setExportBackUrl(EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/combine/tender", BeanUtil.beanToMap(dto, false, false));
return AjaxResult.success();
}
......
......@@ -14,7 +14,7 @@
abp.project_leader_phone,
ab.advisory_body_name,
dp.project_name,dp.project_code,dp.province_name,dp.city_name,dp.isinvestproject,dp.project_type1,
dp.project_type,dp.contract_orig_value,dp.owner_name,dp.contract_org_name,dp.contract_sign_date
dp.project_type2,dp.contract_value,dp.owner_name,dp.contract_org_name,dp.contract_sign_date
from advisory_body_project abp
left join advisory_body ab on ab.advisory_body_id = abp.advisory_body_id
left join d_project dp on dp.project_key = abp.project_key
......
......@@ -180,4 +180,31 @@
</if>
order by approve_date2 desc
</select>
<select id="selectBusinessLicense" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_business_license where customer_id =#{customerId}
</select>
<select id="selectOrgCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_org_certificate where customer_id =#{customerId}
</select>
<select id="selectTaxCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_tax_certificate where customer_id =#{customerId}
</select>
<select id="selectQualificationCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_qualification_certificate where customer_id =#{customerId}
</select>
<select id="selectSafetyCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_safety_certificate where customer_id =#{customerId}
</select>
<select id="selectRatepayerCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_business_license where customer_id =#{customerId}
</select>
<select id="selectPerformanceCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_performance_certificate where customer_id =#{customerId}
</select>
<select id="selectInspectionCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_inspection_certificate where customer_id =#{customerId}
</select>
<select id="selectOtherCertificate" resultType="com.dsk.cscec.domain.vo.CertificateVo">
select * from d_customer_other_certificate where customer_id =#{customerId}
</select>
</mapper>
\ No newline at end of file
......@@ -26,6 +26,7 @@
},
"dependencies": {
"@cell-x/el-table-sticky": "^1.0.2",
"@form-create/element-ui": "^2.5.33",
"@riophae/vue-treeselect": "0.4.0",
"@vue/composition-api": "^1.7.2",
"axios": "0.24.0",
......
......@@ -97,29 +97,29 @@ div:focus {
}
}
aside {
background: #eef1f6;
padding: 8px 24px;
margin-bottom: 20px;
border-radius: 2px;
display: block;
line-height: 32px;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
color: #2c3e50;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
a {
color: #337ab7;
cursor: pointer;
&:hover {
color: rgb(32, 160, 255);
}
}
}
// aside {
// background: #eef1f6;
// padding: 8px 24px;
// margin-bottom: 20px;
// border-radius: 2px;
// display: block;
// line-height: 32px;
// font-size: 16px;
// font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
// Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
// color: #2c3e50;
// -webkit-font-smoothing: antialiased;
// -moz-osx-font-smoothing: grayscale;
// a {
// color: #337ab7;
// cursor: pointer;
// &:hover {
// color: rgb(32, 160, 255);
// }
// }
// }
.components-container {
margin: 30px 50px;
......
import Vue from 'vue';
import VCA from '@vue/composition-api' //composition APi
import VCA from '@vue/composition-api'; //composition APi
import Cookies from 'js-cookie';
import Element from 'element-ui';
import formCreate from '@form-create/element-ui';
import './assets/styles/element-variables.scss';
import "@/assets/styles/common.css";
......@@ -25,6 +26,11 @@ import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// 分栏组件
import SubfieldModule from "@/views/consultingOrgManagement/components/CustomForm/components/SubfieldModule";
// 分栏子组件
import SubfieldItem from "@/views/consultingOrgManagement/components/CustomForm/components/SubfieldItem";
// 分页组件
import Pagination from "@/components/Pagination";
// 自定义表格工具组件
......@@ -63,6 +69,8 @@ Vue.component('Editor', Editor);
Vue.component('FileUpload', FileUpload);
Vue.component('ImageUpload', ImageUpload);
Vue.component('ImagePreview', ImagePreview);
Vue.component("subfield-module", SubfieldModule);
Vue.component("subfield-item", SubfieldItem);
Vue.use(VCA);
Vue.use(horizontalScroll);
......@@ -84,6 +92,7 @@ DictData.install();
Vue.use(Element, {
size: Cookies.get('size') || 'medium' // set element-ui default size
});
Vue.use(formCreate);
Vue.config.productionTip = false;
......
// 默认自定义表单组件
/**
* 模块模板
*/
export const subfieldModuleTemplate = {
defaultSubfieldModuleName: "分栏名称",
subfieldModuleName: "",
subfieldModuleNameRules: {
required: true,
message: "请输入分栏名称",
trigger: "change"
},
subfieldModulePlaceholder: "请输入分栏标题",
edit: false,
children: []
};
export const defaultComOptions = [
{
comLabel: "单行文本",
// 组件类型
comType: "el-input",
// 组件展示图标
comShowIcon: require("@/assets/images/consultingAgencyManagement/customForm/icon_single_line_text@2x.png"),
// 验证规则
rules: {},
// 绑定的值
value: "",
// 输入值为空提示
placeholder: "请输入"
}
];
\ No newline at end of file
<template>
<div class="subfield-item-container">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_drag@2x.png" alt="" class="subfield-module-item-dragg-target-icon">
<el-form-item class="subfield-module-form-item" :label="comChildModuleInfo.comLabel">
<el-input v-model="comChildModuleInfo.value" :placeholder="comChildModuleInfo.placeholder" clearable></el-input>
</el-form-item>
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_delete@2x.png" alt="" class="remove-subfield-item-icon"
@click.stop="removeModuleItem">
</div>
</template>
<script>
export default {
name: "subfieldItem",
props: {
childModuleInfo: Object,
parentUid: String
},
watch: {
childModuleInfo: {
handler(newValue) {
this.comChildModuleInfo = newValue;
},
deep: true
}
},
data() {
return {
comChildModuleInfo: this.childModuleInfo
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
removeModuleItem() {
this.$emit("removeModuleItem", this.comChildModuleInfo, this.parentUid);
},
},
}
</script>
<style lang="scss" scoped>
.subfield-item-container {
width: 100%;
min-height: 56px;
padding: 0px 16px 0px 32px;
box-sizing: border-box;
display: flex;
align-items: center;
background: #dcebff;
.subfield-module-item-dragg-target-icon {
width: 14px;
height: 14px;
cursor: move;
}
::v-deep .subfield-module-form-item {
display: flex;
.el-form-item__label {
line-height: 32px;
font-size: 14px;
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
}
.el-form-item__content {
flex: 1;
}
}
.remove-subfield-item-icon {
width: 16px;
height: 16px;
margin-left: 12px;
cursor: pointer;
}
}
</style>
<template>
<div class="subfield-module-item-container">
<div class="subfield-module-header">
<div class="subfield-module-title">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_drag@2x.png" alt="" class="subfield-module-dragg-target-icon">
<el-form-item v-if="comModuleInfo.edit" class="subfield-module-form-item" :rules="comModuleInfo.subfieldModuleNameRules" prop="">
<el-input v-model="comModuleInfo.subfieldModuleName" :placeholder="comModuleInfo.subfieldModulePlaceholder" clearable @keyup.enter.native.stop="editOK"></el-input>
</el-form-item>
<span v-else>{{comModuleInfo.defaultSubfieldModuleName}}</span>
</div>
<div class="subfield-module-title-tool" v-if="comModuleInfo.edit">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_verify@2x.png" alt="" class="title-tool-edit-ok" @click="editOK">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_cancle@2x.png" alt="" class="title-tool-edit-cancel"
@click.stop="editCancel">
</div>
<div class="subfield-module-title-tool" v-else>
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_edit@2x.png" alt="" class="title-tool-edit" @click="editModule">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_delete@2x.png" alt="" class="title-tool-delete" @click="removeModule">
</div>
</div>
<div class="subfield-module-item-list">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
name: "subfieldModule",
props: {
moduleInfo: Object
},
watch: {
moduleInfo: {
handler(newValue, oldValue) {
this.comModuleInfo = newValue;
},
deep: true
},
},
data() {
return {
oldComModuleName: this.moduleInfo.subfieldModuleName,
comModuleInfo: this.moduleInfo
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
removeModule() {
this.$emit("removeModule", this.comModuleInfo);
},
editModule() {
this.comModuleInfo.edit = true;
},
editCancel() {
this.comModuleInfo.edit = false;
this.comModuleInfo.subfieldModuleName = this.oldComModuleName;
},
editOK() {
this.comModuleInfo.edit = false;
this.comModuleInfo.defaultSubfieldModuleName = this.comModuleInfo.subfieldModuleName;
this.oldComModuleName = this.comModuleInfo.subfieldModuleName;
this.$emit("editOk", this.comModuleInfo);
}
},
}
</script>
<style lang="scss" scoped>
.subfield-module-item-container {
margin-bottom: 12px;
width: 100%;
border: 1px solid #dcdfe6;
box-sizing: border-box;
border-radius: 4px;
.subfield-module-header {
display: flex;
align-items: center;
justify-content: space-between;
height: 56px;
background: #f0f3fa;
padding: 0px 16px;
box-sizing: border-box;
.subfield-module-title {
display: flex;
align-items: center;
flex: 1;
& > img {
width: 14px;
height: 14px;
cursor: move;
}
& > span {
font-size: 14px;
font-weight: 400;
margin-left: 12px;
color: rgba(35, 35, 35, 0.8);
}
}
.subfield-module-title-tool {
display: flex;
align-items: center;
justify-content: center;
margin-left: 12px;
& > img {
width: 16px;
height: 16px;
cursor: pointer;
}
.title-tool-delete,
.title-tool-edit-cancel {
margin-left: 16px;
}
}
}
::v-deep .subfield-module-form-item {
margin-bottom: 0px;
margin-left: 12px;
flex: 1;
.el-form-item__content {
line-height: 32px;
}
.el-input {
width: 100%;
.el-input__inner {
width: 100%;
height: 32px;
line-height: 32px;
padding-left: 12px;
&::placeholder {
color: #c0c4cc !important;
font-size: 14px !important;
}
}
.el-input__suffix {
.el-input__icon {
line-height: 32px;
}
}
}
}
}
</style>
<template>
<div class="custom-form-container">
<div class="custom-form-inner">
<div class="custom-form-header">
<div class="custom-form-title">咨询机构结算信息表单配置</div>
<!-- 提示 -->
<div class="custom-form-tip">
<img src="@/assets/images/consultingAgencyManagement/custom-form-tip-icon.png" alt="">
<span>自定义表格模板保存方案后将同步更新至项目详情 “咨询机构结算信息” 表格。</span>
</div>
</div>
<!-- 表单设计组件部分 -->
<div class="custom-form-design-container">
<div class="custom-form-design-outer">
<custom-form-design></custom-form-design>
</div>
</div>
</div>
</div>
</template>
<script>
import CustomFormDesign from "@/views/consultingOrgManagement/components/CustomForm/components/CustomFormDesign";
export default {
name: "customForm",
components: {
CustomFormDesign
},
data() {
return {
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
},
}
</script>
<style lang="scss" scoped>
.custom-form-container {
width: 100%;
height: 100%;
padding: 16px 24px 24px 24px;
overflow: hidden;
.custom-form-inner {
width: 100%;
height: 100%;
background: #fff;
border-radius: 4px;
.custom-form-header {
width: 100%;
height: 108px;
padding: 16px;
box-sizing: border-box;
border-bottom: 1px solid #eeeeee;
display: flex;
flex-direction: column;
.custom-form-title {
color: #232323;
font-size: 20px;
font-weight: bold;
line-height: 24px;
}
.custom-form-tip {
background: #ffedc7;
display: flex;
align-items: center;
height: 40px;
padding: 0px 16px;
border-radius: 2px;
margin-top: 12px;
border: 1px solid #ffedc7;
box-sizing: border-box;
& > img {
width: 16px;
height: 16px;
}
& > span {
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
font-weight: 400;
line-height: 22px;
margin-left: 8px;
}
}
}
.custom-form-design-container {
height: calc(100% - 108px);
width: 100%;
box-sizing: border-box;
.custom-form-design-outer {
width: 100%;
height: calc(100% - 32px);
padding: 16px;
box-sizing: border-box;
}
}
}
}
</style>
......@@ -143,6 +143,7 @@ export default {
},
// 跳转到企业详情
viewEnterprise(row) {
if (!row.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(row.advisoryBodyName ? row.advisoryBodyName : "咨询机构详情", `/enterprise/${encodeStr(row.advisoryBodyCid)}`);
},
// 创建最终查询条件
......@@ -152,8 +153,8 @@ export default {
const _form = queryConditionFiltering(this.form);
// 处理时间
if (_form?.cooperationTime?.length) {
_form.projectStartTime = _form?.cooperationTime[0];
_form.projectEndTime = _form?.cooperationTime[1];
_form.minLastCooperateDate = _form?.cooperationTime[0];
_form.maxLastCooperateDate = _form?.cooperationTime[1];
}
delete _form.cooperationTime;
......
......@@ -271,7 +271,6 @@ export default {
} else {
this.$message.error(result.msg);
}
console.log(result);
} catch (error) {
} finally {
......@@ -320,10 +319,12 @@ export default {
},
// 查看项目详情
viewProjectDetail(row) {
if (!row?.advisoryBody?.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(row.projectName, `/consultingOrgManagement/projectDetail/${row.advisoryBody?.advisoryBodyCid}?projectKey=${row.projectKey}`);
},
// 跳转到企业详情
viewEnterprise(row) {
if (!row?.advisoryBody?.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(row.advisoryBody.advisoryBodyName ? row.advisoryBody.advisoryBodyName : "咨询机构详情", `/enterprise/${encodeStr(row.advisoryBody.advisoryBodyCid)}`);
}
},
......
......@@ -196,6 +196,8 @@ export default {
isSkeleton: true,
companyInfo: {},
customerInfo: {},
// 企业名称
companyName: "",
companyId: '', //企业Id(测试默认3068)
customerId: '', //企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
isCompany: false, //判断是否有建设库数据
......@@ -274,7 +276,9 @@ export default {
try {
if (this.$route.params.id) { // 获取companyId
let companyId = this.$route.params.id;
await this.getCompanyId(companyId);
// 有企业名的情况下带上企业名称
let companyName = this.$route.query.companyName;
await this.getCompanyId(companyId, companyName);
}
} catch (error) {
console.log(error);
......@@ -284,20 +288,25 @@ export default {
this.currentPath = e;
},
// 解密
async getCompanyId(companyId) {
async getCompanyId(companyId, companyName = "") {
if (companyName) this.companyName = companyName;
let { data } = await idRemark({ mark: companyId });
if (data) {
this.companyId = data;
await this.$nextTick();
this.listenSider();
await this.getStatistic();
await this.getStatistic(this.companyName);
await this.handleQuery();
await this.association(this.$route.query.customerId);
this.$refs.sidebar.getFinancial(data);
}
},
async getStatistic() {
let res = await statistic({ companyId: this.companyId });
async getStatistic(companyName) {
let params = {
companyId: this.companyId
};
companyName ? params["companyName"] = companyName : null;
let res = await statistic(params);
if (res.code == 200) {
this.statisticObj = { ...this.statisticObj, ...res.data };
}
......
......@@ -61,10 +61,10 @@
</div>
</div>
<div class="company-menu">
<el-button v-if="companyInfo.claimStatus==0" @click="cancelClaimClick()" class="hasClaim"><i class="el-ico-claim" alt="已认领" title="已认领"></i>
<!-- <el-button v-if="companyInfo.claimStatus==0" @click="cancelClaimClick()" class="hasClaim"><i class="el-ico-claim" alt="已认领" title="已认领"></i>
已认领</el-button>
<el-button @click="handleClaim" v-else class="claim" v-loading="claimLoading"><i class="el-ico-claim" alt="认领客户" title="认领客户"></i>
认领客户</el-button>
认领客户</el-button> -->
</div>
<div class="company-info">
......
......@@ -49,8 +49,8 @@
<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>
<!--<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="200" align="left" prop="createTime"></el-table-column>
......@@ -95,7 +95,7 @@
</el-input>
</div>
<div class="companyList">
<div class="list">
<div class="list" v-loading="loading">
<div class="item" v-for="item in dataList">
<div class="item-left">
<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.companyName.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
......@@ -209,6 +209,8 @@
},
companyId:'',
downloadhref: '',//样例地址
// 加载状态
loading: false,
}
},
created() {
......@@ -226,6 +228,7 @@
})
},
handleKeyword(){
this.dataList=[]
this.addEnterprise()
},
changeCheckbox(item){
......@@ -334,6 +337,7 @@
},
addEnterprise(){
this.qyVisible=true;
this.loading = true
let data={
pageNum:1,
pageSize:10
......@@ -342,6 +346,7 @@
data.companyName=this.companyName;
}
queryMonitorCompany(data).then(res => {
this.loading = false
this.dataList=res.rows;
})
},
......
......@@ -80,7 +80,7 @@
</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="dimensionName" 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">
......@@ -202,14 +202,6 @@
},
],
fxjb:[
{
value:'提示',
label:'提示'
},
{
value:'正向',
label:'正向'
},
{
value:'低风险',
label:'低风险'
......
......@@ -7,7 +7,7 @@
<img src="@/assets/images/enterprise.png"/>
<span>{{object.companyName}}</span>
</div>
<p>
<p style="margin: 12px 0;">
<span class="label">法定代表人:</span>
<span class="val">{{object.corporatePerson}}</span>
<span class="label">注册资本:</span>
......@@ -54,7 +54,7 @@
<div class="label">时间筛选</div>
<div class="checkbox">
<el-radio-group v-model="radio">
<el-radio v-for="item in radioList" :label="item.type">{{item.label}}</el-radio>
<el-radio v-for="item in radioList" @change="radioBtn" :label="item.type">{{item.label}}</el-radio>
</el-radio-group>
<el-date-picker
v-if="radio==4"
......@@ -63,6 +63,7 @@
value-format="yyyy-MM-dd"
unlink-panels
size="small"
@change="changePicker"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
......@@ -87,7 +88,7 @@
</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="dimensionName" 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">
......@@ -189,23 +190,15 @@
],
fxjb:[
{
value:'1',
label:'提示'
},
{
value:'2',
label:'正向'
},
{
value:'3',
value:'低风险',
label:'低风险'
},
{
value:'4',
value:'中风险',
label:'中风险'
},
{
value:'5',
value:'高风险',
label:'高风险'
},
],
......@@ -443,6 +436,46 @@
break;
}
},
radioBtn(val){
let endTime = new Date()
this.queryParams.pageNum=1
this.queryParams.pageSize=10
switch (val) {
case 1:
this.queryParams.condition.beginTime=this.formatDate(endTime)
this.queryParams.condition.endTime=this.formatDate(endTime)
this.querySubmit()
break;
case 2:
this.queryParams.condition.beginTime = this.formatDate(new Date(endTime.getTime() - 3600 * 1000 * 24 * 3))
this.queryParams.condition.endTime = this.formatDate(endTime)
this.querySubmit()
break;
case 3:
this.queryParams.condition.beginTime = this.formatDate(new Date(endTime.getTime() - 3600 * 1000 * 24 * 7))
this.queryParams.condition.endTime = this.formatDate(endTime)
this.querySubmit()
break;
case 4:
this.queryParams.condition.beginTime = this.formatDate(new Date(endTime.getTime() - 3600 * 1000 * 24 * 15))
this.queryParams.condition.endTime = this.formatDate(endTime)
this.querySubmit()
break;
case 5:
this.queryParams.condition.beginTime = this.formatDate(new Date(endTime.getTime() - 3600 * 1000 * 24 * 30))
this.queryParams.condition.endTime = this.formatDate(endTime)
this.querySubmit()
break;
case 6:
this.date=[]
break;
default:
this.queryParams.condition.beginTime=''
this.queryParams.condition.endTime=''
this.querySubmit()
break;
}
},
// 重置页数
handleSizeChange(val) {
this.queryParams.pageNum = 1
......@@ -455,6 +488,16 @@
this.querySubmit()
window.scrollTo(0, 0);
},
// 时间选择改变后的回调
changePicker(value) {
if(value && value.length) {
this.queryParams.condition.beginTime = value[0]
this.queryParams.condition.endTime = value[1]
}
this.queryParams.pageNum=1
this.queryParams.pageSize=10
this.querySubmit()
},
// 时间格式化
formatDate(timeStr) {
let date = new Date(Number(timeStr));
......
......@@ -26,19 +26,19 @@
<el-table :data="info.list" :span-method="objectSpanMethod" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column label="资质名称" fixed >
<el-table-column :resizable="false" label="资质名称" fixed >
<template slot-scope="scope">
{{scope.row.name}}
</template>
</el-table-column>
<el-table-column label="等级" width="274">
<el-table-column :resizable="false" label="等级" width="274">
<template slot-scope="scope">
{{scope.row.level||"--"}}
</template>
</el-table-column>
<el-table-column label="经营范围" >
<el-table-column :resizable="false" label="经营范围" >
<template slot-scope="scope">
{{scope.row.contractScope||"--"}}
</template>
......
<template>
<el-dialog title="批量查资质" custom-class="batch_import_dialog" :visible.sync="visible">
<el-dialog title="批量查资质" :close-on-click-modal="false" custom-class="batch_import_dialog" :visible.sync="visible">
<div class="upload" >
<div class="up_title">导入Excel文件,高效查询或导出企业信息;查询成功后可使用筛选项二次筛选</div>
<div>
......@@ -18,6 +18,7 @@
:file-list="fileList"
:on-change="handleFileListChange"
:headers="headers"
:on-remove="onRemove"
:on-success="onSuccess">
<img class="up_img" src="@/assets/images/plus.png">
<div class="up_text">点击选择文件或将文件拖拽至此导入企业名录</div>
......@@ -97,14 +98,19 @@ import {importTemplate} from '@/api/supplier/assistant.js';
this.isUpload = true
}
},
onRemove(){
this.isUpload = false
},
onSuccess(res, file, fileList) {
this.$refs["upload"].clearFiles()
this.isUpload = false;
if (res.code == 200) {
this.addsuccess = true;
this.$emit("loadingFn",true);
this.$refs["upload"].clearFiles();
this.isUpload = false;
}else {
this.importCancel()
this.$emit("loadingFn",false);
this.$message.error({ message: res.msg, showClose: true })
}
},
......
......@@ -80,41 +80,41 @@
</div>
<el-table :data="item.aptitudeListude" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column label="证书编号" fixed width="119">
<el-table-column :resizable="false" label="证书编号" fixed width="119">
<template slot-scope="scope">
{{scope.row.serial||"--"}}
</template>
</el-table-column>
<el-table-column label="资质名称" fixed width="273">
<el-table-column :resizable="false" label="资质名称" fixed width="273">
<template slot-scope="scope">
{{scope.row.name||"--"}}
</template>
</el-table-column>
<el-table-column label="承包工程范围" width="415">
<el-table-column :resizable="false" label="承包工程范围" width="415">
<template slot-scope="scope">
{{scope.row.contractScope||"--"}}
</template>
</el-table-column>
<el-table-column label="发证日期" width="119">
<el-table-column :resizable="false" label="发证日期" width="119">
<template slot-scope="scope">
{{scope.row.issuTime||"--"}}
</template>
</el-table-column>
<el-table-column label="有效期至" width="119">
<el-table-column :resizable="false" label="有效期至" width="119">
<template slot-scope="scope">
{{scope.row.validate||"--"}}
</template>
</el-table-column>
<el-table-column label="发证机关" width="204">
<el-table-column :resizable="false" label="发证机关" width="204">
<template slot-scope="scope">
{{scope.row.organ||"--"}}
</template>
</el-table-column>
<el-table-column label="经营范围" width="415">
<el-table-column :resizable="false" label="经营范围" width="415">
<template slot-scope="scope">
<el-tooltip class="item" effect="light" :content="scope.row.businessScope" placement="bottom">
<span class="line_2"> {{scope.row.businessScope||"--"}}</span>
......@@ -125,7 +125,7 @@
</div>
</div>
<div class="pagination clearfix" v-show="total>0">
<el-pagination background :page-size="pageSize" :current-page="pageNum" @current-change="handleCurrentChange" layout="prev, pager, next"
<el-pagination background :page-size="pageSize" :current-page.sync="pageNum" @current-change="handleCurrentChange" layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
......@@ -140,41 +140,41 @@
<span class="float_r">共有 <span style="color: #0081FF;">{{ dialogData.total }}</span> 个资质</span>
</div>
<el-table :data="dialogData.list" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'" class="table-item1 fixed-table" border highlight-current-row>
<el-table-column label="证书编号" fixed width="119">
<el-table-column :resizable="false" label="证书编号" fixed width="119">
<template slot-scope="scope">
{{scope.row.serial||"--"}}
</template>
</el-table-column>
<el-table-column label="资质名称" fixed width="273">
<el-table-column :resizable="false" label="资质名称" fixed width="273">
<template slot-scope="scope">
{{scope.row.name||"--"}}
</template>
</el-table-column>
<el-table-column label="承包工程范围" width="415">
<el-table-column :resizable="false" label="承包工程范围" width="415">
<template slot-scope="scope">
{{scope.row.contractScope||"--"}}
</template>
</el-table-column>
<el-table-column label="发证日期" width="119">
<el-table-column :resizable="false" label="发证日期" width="119">
<template slot-scope="scope">
{{scope.row.issuTime||"--"}}
</template>
</el-table-column>
<el-table-column label="有效期至" width="119">
<el-table-column :resizable="false" label="有效期至" width="119">
<template slot-scope="scope">
{{scope.row.validate||"--"}}
</template>
</el-table-column>
<el-table-column label="发证机关" width="204">
<el-table-column :resizable="false" label="发证机关" width="204">
<template slot-scope="scope">
{{scope.row.organ||"--"}}
</template>
</el-table-column>
<el-table-column label="经营范围" width="415">
<el-table-column :resizable="false" label="经营范围" width="415">
<template slot-scope="scope">
<el-tooltip class="item" effect="light" :content="scope.row.businessScope" placement="bottom">
<span class="line_2"> {{scope.row.businessScope||"--"}}</span>
......@@ -374,8 +374,14 @@ export default {
},
handleCurrentChange(pageNum) {
this.pageNum = pageNum;
this.search();
if(pageNum*this.pageSize>10000){
this.$message.warning("数据达上限")
this.pageNum = 10000/this.pageSize
}else{
this.pageNum = pageNum;
}
this.search()
},
handleCurrentChange1(pageNum) {
this.pageNum1 = pageNum;
......
......@@ -2,25 +2,25 @@
<div class="search_result_box">
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column type="index" label="序号" fixed width="60">
<el-table-column :resizable="false" type="index" label="序号" fixed width="60">
<template slot-scope="scope">
<span>{{(pageNum - 1) *pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="表格名称" >
<el-table-column :resizable="false" label="表格名称" >
<template slot-scope="scope">
{{scope.row.fileName||"--"}}
</template>
</el-table-column>
<el-table-column label="查询时间" width="189">
<el-table-column :resizable="false" label="查询时间" width="189">
<template slot-scope="scope">
{{scope.row.createTime||"--"}}
</template>
</el-table-column>
<el-table-column label="操作" width="154">
<el-table-column :resizable="false" label="操作" width="154">
<template slot-scope="scope">
<a class="download_span" :href="scope.row.url" v-if="scope.row.url">下载</a>
<span v-else >--</span>
......
......@@ -23,7 +23,7 @@
>
<template slot-scope="scope">
<span v-if="scope.row.status===0" style="cursor: pointer;margin-right: 16px;color: #0081FF;" @click="handleClick(scope.row,1)">停用</span>
<span v-if="scope.row.status===1" style="cursor: pointer;margin-right: 16px;color: #0081FF;" @click="handleClick(scope.row,1)">启用</span>
<span v-if="scope.row.status===1" style="cursor: pointer;margin-right: 16px;color: #0081FF;" @click="handleClick(scope.row,0)">启用</span>
<span style="cursor: pointer;color: #FF3C3C;" @click="handleClick(scope.row,2)">删除</span>
</template>
</el-table-column>
......@@ -168,7 +168,7 @@
methods: {
radioBtn(val){
configUpdate({configKey:'customer-badness-date-type',configValue:val}).then(res => {
this.$modal.success(res.msg);
this.$message.success(res.msg);
});
},
getList(){
......@@ -181,7 +181,8 @@
console.log(res)
this.isSkeleton = false;
this.tableData=res.rows;
this.tableDataTotal=res.total
this.tableDataTotal=res.total;
})
},
handleClick(item,key){
......@@ -209,7 +210,7 @@
console.log(res)
if(res.code === 200){
this.visible=false;
this.$modal.success("新增成功");
this.$message.success("新增成功");
this.getList()
}else {
this.$message.error(res.msg);
......@@ -237,7 +238,7 @@
handleSave(){
let time=this.startTime.substring(0,2)+'-'+this.endTime.substring(0,2)
configUpdate({configKey:'customer-badness-time-frame',configValue:time}).then(res => {
this.$modal.success(res.msg);
this.$message.success(res.msg);
});
},
converTime(time) {
......
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