Commit 740920bb authored by liuChang's avatar liuChang

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

parents a8f2c632 4df8ef78
......@@ -49,7 +49,7 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://111.204.34.146:63308/cscec_bms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://111.204.34.146:63308/cscec_bms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
username: dev
password: DskSzh!456
# 从库数据源
......
......@@ -49,7 +49,7 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://111.204.34.146:63308/cscec_bms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://111.204.34.146:63308/cscec_bms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
username: dev
password: DskSzh!456
# 从库数据源
......
......@@ -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;
}
......@@ -39,6 +39,11 @@ public class AddAdvisoryBodyBo {
*/
@NotBlank(message = "经营范围不能为空")
private String businessScope;
/**
* 合作时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date cooperatorDate;
/**
* 项目负责人
*/
......
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;
}
package com.dsk.cscec.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 供应商准入情况
......@@ -31,6 +33,9 @@ public class CustomerApproveVo {
* 注册资金
*/
private Double registerCapital;
/**
* 证件选择
*/
/**
* 统一社会信用代码
*/
......@@ -63,6 +68,9 @@ public class CustomerApproveVo {
* 纳税人税率
*/
private String taxRate;
/**
* 享受优惠政策说明
*/
/**
* 法人代表
*/
......@@ -75,6 +83,9 @@ public class CustomerApproveVo {
* 联系电话
*/
private String contactPhone;
/**
* 主项资质
*/
/**
* 业主性质
*/
......@@ -166,6 +177,42 @@ public class CustomerApproveVo {
* 授权委托书到期时间7
*/
private String expireDate7;
/**
*营业执照url
*/
private List<CertificateVo> businessLicenseList;
/**
* 组织机构代码证url
*/
private List<CertificateVo> orgCertificateList;
/**
* 税务登记证url
*/
private List<CertificateVo> taxCertificateList;
/**
* 资质证书url
*/
private List<CertificateVo> qualificationCertificateList;
/**
* 安全生产url
*/
private List<CertificateVo> safetyCertificateList;
/**
* 增值税一般纳税人资格证明url
*/
private List<CertificateVo> ratepayerCertificateList;
/**
* 业绩报告url
*/
private List<CertificateVo> performanceCertificateList;
/**
* 考察报告url
*/
private List<CertificateVo> inspectionCertificateList;
/**
* 其他url
*/
private List<CertificateVo> otherCertificateList;
//审批意见
/**
* 是否同意准入/准入情况
......
package com.dsk.cscec.domain.vo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.AdvisoryBodyProject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -57,6 +58,11 @@ public class ProjectSearchVo {
*/
private String projectType;
/**
* 项目与咨询机构关系
*/
private AdvisoryBodyProject advisoryBodyProject;
/**
* 合同金额
*/
......
......@@ -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);
}
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -28,9 +29,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 咨询机构(SysAdvisoryBody)表服务实现类
......@@ -59,15 +58,18 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
//先按照分页要求从咨询机构表中查出分页数据
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);
Date minLastCooperateDate = advisoryBodySearchBo.getMinLastCooperateDate();
Date maxLastCooperateDate = advisoryBodySearchBo.getMaxLastCooperateDate();
//根据咨询机构cid查询对应的企业信息
for (AdvisoryBodySearchVo advisoryBodySearchVo : page.getRecords()) {
List<AdvisoryBodySearchVo> advisoryBodySearchVoList = page.getRecords();
Iterator<AdvisoryBodySearchVo> iterator = advisoryBodySearchVoList.iterator();
while (iterator.hasNext()) {
AdvisoryBodySearchVo advisoryBodySearchVo = iterator.next();
EnterpriseInfoHeaderBody infoHeaderBody = new EnterpriseInfoHeaderBody();
//有Cid的才去建设库查数据
if (ObjectUtil.isNotNull(advisoryBodySearchVo.getAdvisoryBodyCid())) {
......@@ -77,14 +79,30 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
}
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));
Date lastCooperateDate = null;
if (ObjectUtil.isNotNull(advisoryBodyProjectList) && !advisoryBodyProjectList.isEmpty()) {
advisoryBodySearchVo.setLastCooperateTime(advisoryBodyProjectList.get(0).getCreateTime());
//暂时取记录生成作为最近一次合作时间
//TODO:AdvisoryBodyProject表中保留了cooperate_time字段,应当取该字段作为最近一次合作时间,但产品并未给存入这个字段的需求
lastCooperateDate = advisoryBodyProjectList.get(0).getCreateTime();
advisoryBodySearchVo.setLastCooperateTime(lastCooperateDate);
}
//筛选最近一次合作时间
if (ObjectUtil.isNotNull(lastCooperateDate)
&& ObjectUtil.isNotNull(minLastCooperateDate)
&& ObjectUtil.isNotNull(maxLastCooperateDate)) {
if (DateUtil.isExpired(minLastCooperateDate, maxLastCooperateDate, lastCooperateDate)) {
iterator.remove();
continue;
}
}
//经营范围
advisoryBodySearchVo.setBusinessStatus(MapUtils.getString(companyData, "businessStatus", ""));
//法人
......@@ -104,6 +122,7 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
advisoryBodySearchVo.setCooperateProjectCount(advisoryBodyProjectMapper.selectCount(new LambdaQueryWrapper<AdvisoryBodyProject>()
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())));
}
return TableDataInfo.build(page);
}
......@@ -132,7 +151,7 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
List<Map<String, Object>> data = (List<Map<String, Object>>) jskData.get("list");
for (Map<String, Object> companyData : data) {
//企业名称完全匹配上,则直接返回给前端
String companyName = StringUtils.removeRed(MapUtils.getString(companyData, "name","NotExist"));
String companyName = StringUtils.removeRed(MapUtils.getString(companyData, "name", "NotExist"));
if (advisoryBodyName.equals(companyName)) {
AdvisoryBodyExistVo advisoryBodyExistVo = new AdvisoryBodyExistVo();
advisoryBodyExistVo.setAdvisoryBodyCid(Math.toIntExact(MapUtils.getLong(companyData, "jskEid")));
......@@ -158,7 +177,8 @@ public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, Adv
@Override
@Transactional(rollbackFor = Exception.class)
public Integer addAdvisoryBody(AddAdvisoryBodyBo addAdvisoryBodyBo) {
long advisoryBodyId = IdUtil.getSnowflakeNextId();;
long advisoryBodyId = IdUtil.getSnowflakeNextId();
;
//如果是新增咨询机构,则需要新增记录到咨询机构表
if (addAdvisoryBodyBo.getIsNewAdvisoryBody()) {
AdvisoryBody newAdvisoryBody = BeanUtil.toBean(addAdvisoryBodyBo, AdvisoryBody.class);
......
......@@ -85,7 +85,7 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
item.setCompanyId(companyId);
}
}catch (Exception e){
//
log.error("CustomerInfoServiceImpl.queryPageList() error:" + e);
}
});
}
......@@ -105,6 +105,27 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
lqw.orderByDesc(DCustomer::getApproveDate2);
lqw.last("limit 1");
DCustomer dCustomer = baseMapper.selectOne(lqw);
if(ObjectUtil.isNotEmpty(dCustomer)){
//营业执照url
dCustomer.setBusinessLicenseList(baseMapper.selectBusinessLicense(dCustomer.getCustomerId()));
//组织机构代码证url
dCustomer.setOrgCertificateList(baseMapper.selectOrgCertificate(dCustomer.getCustomerId()));
//税务登记证url
dCustomer.setTaxCertificateList(baseMapper.selectTaxCertificate(dCustomer.getCustomerId()));
//资质证书url
dCustomer.setQualificationCertificateList(baseMapper.selectQualificationCertificate(dCustomer.getCustomerId()));
//安全生产url
dCustomer.setSafetyCertificateList(baseMapper.selectSafetyCertificate(dCustomer.getCustomerId()));
//增值税一般纳税人资格证明url
// dCustomer.setRatepayerCertificateList(baseMapper.selectRatepayerCertificate(dCustomer.getCustomerId()));
//业绩报告url
dCustomer.setPerformanceCertificateList(baseMapper.selectPerformanceCertificate(dCustomer.getCustomerId()));
//考察报告url
dCustomer.setInspectionCertificateList(baseMapper.selectInspectionCertificate(dCustomer.getCustomerId()));
//其他url
dCustomer.setOtherCertificateList(baseMapper.selectOtherCertificate(dCustomer.getCustomerId()));
}
CustomerApproveVo vo = BeanUtil.toBean(dCustomer, CustomerApproveVo.class);
return vo;
}
......
......@@ -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<>();
......
......@@ -85,6 +85,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
//补充咨询机构信息
projectSearchVo.setAdvisoryBody(this.getAdvisoryBodyByProjectKey(projectSearchVo.getProjectKey()));
//补充项目与咨询机构关联信息
projectSearchVo.setAdvisoryBodyProject(advisoryBodyProjectMapper.selectById(projectSearchVo.getProjectKey()));
//关键字标红
if (StringUtils.isNotBlank(projectSearchBo.getProjectName())) {
projectSearchVo.setProjectName(StringUtils.markInRed(projectSearchVo.getProjectName(), projectSearchBo.getProjectName()));
......
......@@ -71,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.controller;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.*;
import com.dsk.jsk.service.service.EconomicService;
import com.dsk.jsk.util.IpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
/**
* @ClassName RegionalEconomicDataController
* @Description 区域经济大全
* @Author Dgm
* @Date 2023/5/18 10:09
* @Version 1.0.0
*/
@Slf4j
@RestController
@RequestMapping(value ="/economic")
public class RegionalEconomicDataController {
@Autowired
private EconomicService economicService;
/***
*@Description: 全国经济大全分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/national/nationalPage")
public AjaxResult nationalPage(@RequestBody @Valid OpRegionalEconomicDataV1PageDto dto) {
return economicService.nationalPage(dto);
}
/***
*@Description: 获取年份
*@Param:
*@return: com.dsk.acc.security.common.msg.RestResponse
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/years/list")
public AjaxResult yearsList(@RequestBody OpRegionalEconomicDataYearsListDto dto) {
return economicService.yearsList(dto);
}
/***
*@Description: 全国经济大全详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/details")
public AjaxResult details(@RequestBody @Valid OpRegionalEconomicDataDetailsDto detailsDto) {
return economicService.details(detailsDto);
}
/***
*@Description: 获取当前地区
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping(value = "location")
public AjaxResult location(@RequestBody OpRegionalLocalDto vo, HttpServletRequest request){
String ip = IpUtil.getIpAddr(request);
vo.setIp(ip);
return economicService.location(vo);
}
/***
*@Description: 地区经济-统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/statistics/regional")
public AjaxResult statisticsRegional(@RequestBody OpRegionalEconomicDataStatisticsRegionalDto dto) {
return economicService.statisticsRegional(dto);
}
/***
*@Description: 地区经济-主要指标列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/list")
public AjaxResult regionalList(@RequestBody OpRegionalEconomicDataRegionalListDto dto) {
return economicService.regionalList(dto);
}
/***
*@Description: 地区经济
*@Param:
*@return: com.dsk.acc.security.common.msg.RestResponse
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/compare")
public AjaxResult regionalCompare(@RequestBody OpRegionalEconomicDataStatisticsRegionalDto dto) {
return economicService.regionalCompare(dto);
}
/***
*@Description: 地区经济-对比
*@Param:
*@return: com.dsk.acc.security.common.msg.RestResponse
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@PostMapping("/regional/multipleCompare")
public AjaxResult regionalMultipleCompare(@RequestBody OpRegionalEconomicRegionalCompareDto compareDto) {
return economicService.regionalMultipleCompare(compareDto);
}
}
package com.dsk.jsk.domain;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 区域经济大全-详情
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataDetailsDto {
/**
* id
*/
@NotNull(message = "id 不能为空")
private Integer id;
}
package com.dsk.jsk.domain;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataRegionalListDto {
/**
* id
*/
@NotNull(message = "id 不能为空")
private Integer id;
/**
* 省Id
*/
@NotNull(message = "provinceId 不能为空")
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
}
package com.dsk.jsk.domain;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 地区经济
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataStatisticsRegionalDto {
/**
* id
*/
@NotNull(message = "id 不能为空")
private Integer id;
/**
* 年份
*/
private Integer year;
/**
* 省Id
*/
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
}
package com.dsk.jsk.domain;
import lombok.Data;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataV1Dto {
/**
* id
*/
private Integer id;
/**
* 年份
*/
private Integer year;
/**
* 省Id
*/
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
/**
* 城市类型 1:直辖市
*/
private Integer cityType;
/**
* 城市类型 1:直辖市
*/
private Integer provinceType;
}
package com.dsk.jsk.domain;
import lombok.Data;
import java.util.List;
/**
* @ClassName OpRegionalEconomicDataV1PageDto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataV1PageDto extends BasePage {
/**
* 年份
*/
private Integer year;
/**
* 省
*/
private List<Integer> provinceIds;
/**
* 市
*/
private List<Integer> cityIds;
/**
* 区
*/
private List<Integer> areaIds;
/**
* 全国宏观经济:1 / 辖区经济:2 / 地区对比:3
*/
private Integer type;
/**
* 排序字段 默认gdp
*/
private String field = "gdp";
/**
* 排序 (降序desc 升序asc)
*/
private String order = "desc";
}
package com.dsk.jsk.domain;
import lombok.Data;
/**
* @ClassName OpRegionalEconomicDataYearsListDto
* @Description 获取年份
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class OpRegionalEconomicDataYearsListDto {
private Integer year;
}
package com.dsk.jsk.domain;
import cn.hutool.core.util.ObjectUtil;
import java.util.List;
/**
* @ClassName OpRegionalEconomicRegionalCompareDto
* @Description 地区经济-对比
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
public class OpRegionalEconomicRegionalCompareDto {
/**
* 年份
*/
private Integer year;
private List<OpRegionalEconomicDataStatisticsRegionalDto> compareList;
public Integer getYear() {
return year;
}
public void setYear(Integer year) {
this.year = year;
}
public List<OpRegionalEconomicDataStatisticsRegionalDto> getCompareList() {
if (ObjectUtil.isNotEmpty(compareList)) {
for (OpRegionalEconomicDataStatisticsRegionalDto dataStatisticsRegionalDto : compareList) {
dataStatisticsRegionalDto.setYear(year);
}
}
return compareList;
}
public void setCompareList(List<OpRegionalEconomicDataStatisticsRegionalDto> compareList) {
this.compareList = compareList;
}
@Override
public String toString() {
return "OpRegionalEconomicRegionalCompareDto{" +
"year=" + year +
", compareList=" + compareList +
'}';
}
}
......@@ -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);
}
......
package com.dsk.jsk.service.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.*;
/**
* @ClassName EconomicService
* @Description 经济大全业务层
* @Author Dgm
* @Date 2023/5/18 10:17
* @Version 1.00
*/
public interface EconomicService {
/***
*@Description: 全国经济大全分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto);
/***
*@Description: 全国经济大全分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult yearsList(OpRegionalEconomicDataYearsListDto dataYearsListDto);
/***
*@Description: 全国经济大全详情
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult details(OpRegionalEconomicDataDetailsDto detailsDto);
/***
*@Description: 获取当前地区
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult location(OpRegionalLocalDto detailsDto);
/***
*@Description: 地区经济统计
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult statisticsRegional(OpRegionalEconomicDataStatisticsRegionalDto dto);
/***
*@Description: 地区经济-分页列表
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalList(OpRegionalEconomicDataRegionalListDto dto);
/***
*@Description: 对比经济
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalCompare(OpRegionalEconomicDataStatisticsRegionalDto dto);
/***
*@Description: 地区经济-对比
*@Param:
*@return: com.dsk.common.core.domain.AjaxResult
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult regionalMultipleCompare (OpRegionalEconomicRegionalCompareDto dto);
}
package com.dsk.jsk.service.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.constant.CacheConstants;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.DateUtils;
import com.dsk.jsk.domain.*;
import com.dsk.system.utils.DskOpenApiUtil;
import com.dsk.common.utils.JsonUtils;
import com.dsk.jsk.domain.bo.*;
import com.dsk.jsk.service.service.EconomicService;
import com.dsk.jsk.util.RedisCache;
import org.apache.commons.collections4.MapUtils;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Map;
/**
* @ClassName EconomicServiceImpl
* @Description 经济大全实现
* @Author Dgm
* @Date 2023/5/18 10:23
* @Version
*/
@Service
public class EconomicServiceImpl implements EconomicService {
@Resource
private DskOpenApiUtil dskOpenApiUtil;
@Resource
private RedisCache redisCache;
/**
* 全国宏观经济:1 / 辖区经济:2 / 地区对比:3
*/
private static final Integer TYPE = 1;
/**
* 默认排序
*/
private static final String FIELD = "gdp";
private static final String ORDER = "desc";
@Override
public AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto) {
if (ObjectUtil.isEmpty(dto.getYear())) {
dto.setYear(DateUtils.getYear() - 1);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/national/nationalPage", BeanUtil.beanToMap(dto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException();
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult yearsList(OpRegionalEconomicDataYearsListDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/years/list", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult details(OpRegionalEconomicDataDetailsDto detailsDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/details", BeanUtil.beanToMap(detailsDto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult location(OpRegionalLocalDto detailsDto) {
Long userId = LoginHelper.getUserId();
String redisKey = CacheConstants.PERSONAL_LOCATION + userId;
if (ObjectUtil.isEmpty(detailsDto.getProvinceId()) && ObjectUtil.isEmpty(detailsDto.getCityId()) && ObjectUtil.isEmpty(detailsDto.getAreaId())) {
if (ObjectUtil.isNotEmpty(redisKey)) {
Map<Object, Object> cacheMap = JsonUtils.parseObject(redisCache.getCacheObject(redisKey), Map.class);
if (MapUtils.isNotEmpty(cacheMap)) {
return AjaxResult.success(cacheMap);
}
}
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/location", BeanUtil.beanToMap(detailsDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException();
}
Map data = MapUtils.getMap(map, "data", null);
if (ObjectUtil.isNotEmpty(detailsDto.getProvinceId()) || ObjectUtil.isNotEmpty(detailsDto.getCityId()) || ObjectUtil.isNotEmpty(detailsDto.getAreaId())) {
redisCache.setCacheObject(redisKey, JsonUtils.toJsonString(data));
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult statisticsRegional(OpRegionalEconomicDataStatisticsRegionalDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/statistics/regional", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult regionalList(OpRegionalEconomicDataRegionalListDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/regional/list", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult regionalCompare(OpRegionalEconomicDataStatisticsRegionalDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/regional/compare", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult regionalMultipleCompare(OpRegionalEconomicRegionalCompareDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/economic/regional/multipleCompare", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -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
......@@ -152,9 +152,6 @@
border-right: 1px solid #E6E9F0;
border-bottom: 1px solid #E6E9F0;
background: #fff;
&.bg{
background: #F9FCFF;
}
.label {
width: 10%;
height: auto;
......@@ -205,6 +202,33 @@
}
}
.table-box{
margin-top: 16px;
border: 1px solid #E6E9F0;
width: 100%;
border-top: 0;
thead{
background: #F0F3FA;
}
tr:nth-child(2n+1){
background: #F9FCFF;
}
tr:hover{
background: #dcebff;
}
td{
border-top: 1px solid #E6E9F0;
border-right: 1px solid #E6E9F0;
height: auto;
font-weight: 400;
font-size: 12px;
padding: 12px;
}
.blue{
color: #0081ff;
cursor: pointer;
}
}
}
.table-supplier .fixed-table .el-table__fixed-header-wrapper{
top: -16px !important;
......
......@@ -6,8 +6,8 @@
<div class="design-header fields-header">字段组件</div>
<div class="design-main fields-main">
<vuedraggable :list="defaultComOptions" :group="{name: 'customComGroup', pull: 'clone', put: false}" class="design-draggable-fields"
draggable=".draggable-fields-item" ghostClass="dragClass" :clone="targetComClone" :sort="false" :disabled="!subfieldModuleList.length"
@end="fieldsOnEnd">
draggable=".draggable-fields-item" ghostClass="subfield-origin-dragClass" :clone="targetComClone" :sort="false"
:disabled="!subfieldModuleList.length" @end="endCheck">
<transition-group name="fade" tag="div" class="draggable-fields-list">
<div class="draggable-fields-item" :class="{'has-no-subfield-module' : !subfieldModuleList.length}"
v-for="(item,index) of defaultComOptions" :key="index" @click="fieldsItemClick">
......@@ -22,22 +22,23 @@
<div class="custom-form-design-options">
<div class="design-header options-header">表单配置</div>
<div class="design-main options-main">
<el-form class="custom-design-el-form" ref="customDesignFormRef" :rules="{}" @submit.native.prevent>
<el-form class="custom-design-el-form" ref="customDesignFormRef" :model="{}" :rules="{}" @submit.native.prevent>
<!-- 最外层dragg容器 拖动模块module .subfield-module-dragg-target-icon -->
<vuedraggable :list="subfieldModuleList" group="customSubfieldmodule" class="subfield-module-container"
draggable=".subfield-module-item-container" handle=".subfield-module-dragg-target-icon" :animation="340">
<!-- 添加的分栏模块以及chidren模块 -->
<transition-group name="fade" tag="div" class="subfield-module-list">
<vuedraggable v-for="(item,index) of subfieldModuleList" draggable=".subfield-item-container"
<!-- <div class="subfield-module-draggable-list" v-for="(item,index) of subfieldModuleList" :key="item.uid"> -->
<vuedraggable v-for="(item,index) of subfieldModuleList" :key="item.uid" draggable=".subfield-item-container"
handle=".subfield-module-item-dragg-target-icon" tag="subfield-module" :list="item.children" group="customComGroup"
:component-data="createComponentData(item)" :key="item.uid" :animation="340">
:component-data="createComponentData(item)" :animation="340" ghostClass="subfield-item-dragClass" :sort="true" @end="endCheck">
<subfield-item v-for="(child,index) of item.children" :key="child.uid" :parentUid="item.uid" :childModuleInfo="child"
@removeModuleItem="removeModuleItem"></subfield-item>
</vuedraggable>
<!-- </div> -->
</transition-group>
</vuedraggable>
<!-- 添加分栏 -->
<div class="add-field-bar" @click="addSubfieldModule">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_add@2x.png" alt="">
......@@ -90,7 +91,9 @@ export default {
// 删除分栏提示
removeSubFiledModuleDialog: false,
// 要删除的分栏信息
removeSubfieldModule: {}
removeSubfieldModule: {},
// 当前选中正在编辑的组件id
activeUid: ""
};
},
//可访问data属性
......@@ -105,22 +108,24 @@ export default {
methods: {
// 克隆目标组件
targetComClone(v) {
console.log("clone", v);
const cloneTarget = JSON.parse(JSON.stringify(v));
cloneTarget.uid = v4();
console.log(cloneTarget);
return cloneTarget;
},
// 字段组件结束拖动
fieldsOnEnd(e) {
console.log(e);
console.log(this.subfieldModuleList);
},
// 字段组件点击事件
fieldsItemClick() {
if (!this.subfieldModuleList?.length) {
this.$message.warning("请先添加分栏");
}
},
endCheck(e) {
console.log("成功", e);
},
subFieldItemActive(childItem) {
console.log(childItem);
this.activeUid = childItem.uid;
},
// 添加分栏
addSubfieldModule() {
const _temp = JSON.parse(JSON.stringify(subfieldModuleTemplate));
......@@ -147,6 +152,7 @@ export default {
// 更新源数据标题
const index = parentModule?.children?.findIndex(item => item.uid == itemModule.uid);
if (index > -1) {
if (itemModule.uid == this.activeUid) this.activeUid = "";
parentModule?.children?.splice(index, 1);
}
}
......@@ -158,10 +164,11 @@ export default {
if (findModule) {
// 更新源数据标题
findModule.subfieldModuleName = module.subfieldModuleName;
this.activeUid = "";
}
},
removeDialogClose() {
this.removeSubfieldModuleUid = "";
this.removeSubfieldModule = {};
},
removeOk() {
const index = this.subfieldModuleList.findIndex(item => item.uid == this.removeSubfieldModule.uid);
......@@ -184,8 +191,31 @@ export default {
display: flex;
min-width: 1140px;
.dragClass {
border: 1px solid #0081ff;
.subfield-origin-dragClass,
.subfield-item-dragClass {
display: flex;
align-items: center;
background: rgba(0, 129, 255, 0.3);
height: 56px;
padding: 0px 16px;
box-sizing: border-box;
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
font-weight: 400;
.subfield-item-container {
background: rgba(0, 129, 255, 0.3);
}
& > img {
width: 16px;
height: 16px;
margin-right: 16px;
}
}
.subfield-origin-dragClass {
height: auto;
}
.design-header {
......@@ -254,7 +284,7 @@ export default {
padding: 0px 16px;
box-sizing: border-box;
margin-top: 12px;
cursor: pointer;
cursor: move;
user-select: none;
&:hover {
......@@ -302,6 +332,14 @@ export default {
.custom-design-el-form {
width: 100%;
height: 100%;
/* .subfield-module-draggable-list {
margin-bottom: 12px;
width: 100%;
border: 1px solid #dcdfe6;
box-sizing: border-box;
border-radius: 4px;
} */
}
}
}
......
......@@ -57,7 +57,7 @@ export default {
.subfield-module-item-dragg-target-icon {
width: 14px;
height: 14px;
cursor: pointer;
cursor: move;
}
::v-deep .subfield-module-form-item {
......
......@@ -4,7 +4,8 @@
<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-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>
......@@ -18,9 +19,7 @@
<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>
<slot></slot>
</div>
</template>
<script>
......@@ -79,6 +78,7 @@ export default {
border: 1px solid #dcdfe6;
box-sizing: border-box;
border-radius: 4px;
overflow: hidden;
.subfield-module-header {
display: flex;
......@@ -97,7 +97,7 @@ export default {
& > img {
width: 14px;
height: 14px;
cursor: pointer;
cursor: move;
}
& > span {
font-size: 14px;
......
......@@ -153,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;
......
......@@ -22,7 +22,7 @@
<!--<img class="img" slot="prefix" src="../assets/images/phone.png"/>-->
<!--</el-input>-->
<!--</el-form-item>-->
<!--<el-form-item prop="captchaCode" v-if="captchaEnabled">-->
<!--<el-form-item prop="captchaCode" v-if="captchaEnabled" class="el-item-with-code">-->
<!--<el-input-->
<!--v-model="dxform.captchaCode"-->
<!--auto-complete="off"-->
......@@ -35,7 +35,7 @@
<!--<img :src="codeUrl" @click="getCode" class="login-code-img"/>-->
<!--</div>-->
<!--</el-form-item>-->
<!--<el-form-item prop="smsCode">-->
<!--<el-form-item prop="smsCode" class="el-item-with-code">-->
<!--<el-input-->
<!--v-model="dxform.smsCode"-->
<!--auto-complete="off"-->
......@@ -71,7 +71,7 @@
<!--<div @click="isDXlogin = true">快捷登录</div>-->
<!--</div>-->
<div class="loginname"><img src="../assets/images/login/ztlogo.png">中建一局集团第二建筑有限公司</div>
<el-form-item prop="username">
<el-form-item prop="username" >
<el-input
v-model="loginForm.username"
type="text"
......@@ -94,7 +94,7 @@
<img class="img" slot="prefix" src="../assets/images/password.png"/>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-form-item prop="code" v-if="captchaEnabled" class="el-item-with-code">
<el-input
v-model="loginForm.code"
auto-complete="off"
......@@ -136,7 +136,7 @@
<img class="img" slot="prefix" src="../assets/images/phone.png"/>
</el-input>
</el-form-item>
<el-form-item prop="captchaCode" v-if="captchaEnabled && showcode">
<el-form-item prop="captchaCode" v-if="captchaEnabled && showcode" class="el-item-with-code">
<el-input
v-model="dxform.captchaCode"
@focus="getCode"
......@@ -150,7 +150,7 @@
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div>
</el-form-item>
<el-form-item prop="smsCode">
<el-form-item prop="smsCode" class="el-item-with-code">
<el-input
v-model="dxform.smsCode"
auto-complete="off"
......@@ -697,4 +697,59 @@
background: #566380;
}
}
@media screen and (max-width : 750px){
.left {
display: none;
}
.login-form {
width: 90%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
margin-top: 0px;
box-sizing: border-box;
box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
.el-input {
width: 100%;
.el-input__inner::placeholder {
font-size: 12px !important;
}
}
.el-item-with-code {
.el-form-item__content {
display: flex;
line-height: 1;
.el-input {
float: unset !important;
width: 175px !important;
min-width: 175px;
}
.login-code {
height: 48px;
width: auto;
flex: 1;
float: unset !important;
&>img {
width: 100%;
height: 100%;
}
.hqyzm {
width: 100%;
font-size: 12px;
border: unset;
border-radius: unset;
}
}
}
}
}
}
</style>
......@@ -86,7 +86,7 @@
<el-button type="primary" @click="handleConfirm">确定取消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="qyVisible" custom-class='dialog-claim dialogAdd' title="添加监控企业" width="480px" :close-on-click-modal="false">
<el-dialog :visible.sync="qyVisible" custom-class='dialog-claim dialogAdd' title="添加监控企业" width="480px" :close-on-click-modal="false" @close="handleCancel1">
<div class="add-content">
<div class="enterprise">
<div class="label">企业名称</div>
......@@ -115,7 +115,7 @@
<el-button type="primary" @click="handleAdd">确定</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="pldrVisible" custom-class='dialog-claim' title="批量导入监控企业" width="480px" :close-on-click-modal="false">
<el-dialog :visible.sync="pldrVisible" custom-class='dialog-claim' title="批量导入监控企业" width="480px" :close-on-click-modal="false" @close="handleUploadCancel1">
<div class="upload-content">
<el-upload
class="upload-demo"
......@@ -219,7 +219,6 @@
},
methods: {
async querySubmit() {
console.log(this.queryParams)
companyPage(this.queryParams).then(res => {
console.log(res)
this.isSkeleton = false;
......@@ -247,13 +246,18 @@
let data={
cid:this.cid
}
companyAdd(data).then(res => {
this.qyVisible=false;
this.companyName=''
this.dataList=[]
this.$message.success("新增成功");
this.querySubmit()
})
if(this.cid.length > 0){
companyAdd(data).then(res => {
this.qyVisible=false;
this.companyName=''
this.dataList=[]
this.$message.success("新增成功");
this.querySubmit()
})
}else {
this.$message.warning("请选择要添加的企业");
}
},
radioBtn(val){
......@@ -385,7 +389,12 @@
a.remove();
},
submitUpload() {
this.$refs.upload.submit();
if(this.fileList.length > 0){
this.$refs.upload.submit();
}else {
this.$message.warning("请选择要上传的内容");
}
},
}
}
......
......@@ -447,26 +447,16 @@
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:
case 3:
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:
case 4:
this.date=[]
break;
default:
......
......@@ -101,78 +101,152 @@
</div>
<div class="acc-title i">上传证书及其他信息</div>
<skeleton v-if="fbsisSkeleton"></skeleton>
<div class="main3-box">
<p>
<label class="label tab">证书类型</label>
<label class="label tab">到期时间</label>
<label class="label tab">状态</label>
<label class="label tab">查看</label>
<label class="label tab">操作</label>
</p>
<p>
<span class="tab">营业执照</span>
<span class="tab">{{custmerInfo.expireDate1 || '--'}}</span>
<span class="tab">{{custmerInfo.status1}}</span>
<span class="tab blue"></span>
<span class="tab blue">下载</span>
</p>
<p class="bg">
<span class="tab">组织机构代码</span>
<span class="tab">{{custmerInfo.expireDate2 || '--'}}</span>
<span class="tab">{{custmerInfo.status2}}</span>
<span class="tab blue"></span>
<span class="tab blue">下载</span>
</p>
<p>
<span class="tab">税务登记证</span>
<span class="tab">{{custmerInfo.expireDate3 || '--'}}</span>
<span class="tab">{{custmerInfo.status3}}</span>
<span class="tab blue"></span>
<span class="tab blue">下载</span>
</p>
<p class="bg">
<span class="tab">资质证书</span>
<span class="tab">{{custmerInfo.expireDate4 || '--'}}</span>
<span class="tab">{{custmerInfo.status4}}</span>
<span class="tab blue"></span>
<span class="tab blue">下载</span>
</p>
<p>
<span class="tab">安全生产</span>
<span class="tab">{{custmerInfo.expireDate5 || '--'}}</span>
<span class="tab">{{custmerInfo.status5}}</span>
<span class="tab blue"></span>
<span class="tab blue">下载</span>
</p>
<p class="bg">
<span class="tab">增值税一般纳税人资格证明</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
</p>
<p>
<span class="tab">业绩报告</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
</p>
<p class="bg">
<span class="tab">考察报告</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
</p>
<p>
<span class="tab">其他</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
<span class="tab">--</span>
</p>
</div>
<table class="table-box" border="0" cellspacing="0" >
<thead>
<td width="30%">证书类型</td>
<td width="25%">到期时间</td>
<td width="10%">状态</td>
<td width="35%">查看</td>
</thead>
<template v-if="custmerInfo.businessLicenseList&&custmerInfo.businessLicenseList.length>0">
<tr v-for="(item,index) in custmerInfo.businessLicenseList">
<td :rowspan="custmerInfo.businessLicenseList.length" v-if="index == 0">营业执照</td>
<td>{{custmerInfo.expireDate1 || '--'}}</td>
<td>{{custmerInfo.status1}}</td>
<td class="blue">
<el-link :href="`${item.docLink}`" :underline="false" target="_blank">
<span class="blue"> {{item.docName}}</span>
</el-link>
</td>
</tr>
</template>
<template v-else>
<tr>
<td>营业执照</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
</template>
<template v-if="custmerInfo.orgCertificateList&&custmerInfo.orgCertificateList.length>0">
<tr v-for="(item,index) in custmerInfo.orgCertificateList">
<td :rowspan="custmerInfo.orgCertificateList.length" v-if="index == 0">组织机构代码</td>
<td>{{custmerInfo.expireDate2 || '--'}}</td>
<td>{{custmerInfo.status2}}</td>
<td class="blue">
<el-link :href="`${item.docLink}`" :underline="false" target="_blank">
<span class="blue"> {{item.docName}}</span>
</el-link>
</td>
</tr>
</template>
<template v-else>
<tr>
<td>组织机构代码</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
</template>
<template v-if="custmerInfo.taxCertificateList&&custmerInfo.taxCertificateList.length>0">
<tr v-for="(item,index) in custmerInfo.taxCertificateList">
<td :rowspan="custmerInfo.taxCertificateList.length" v-if="index == 0">税务登记证</td>
<td>{{custmerInfo.expireDate3 || '--'}}</td>
<td>{{custmerInfo.status3}}</td>
<td class="blue">
<el-link :href="`${item.docLink}`" :underline="false" target="_blank">
<span class="blue"> {{item.docName}}</span>
</el-link>
</td>
</tr>
</template>
<template v-else>
<tr>
<td>税务登记证</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
</template>
<template v-if="custmerInfo.qualificationCertificateList&&custmerInfo.qualificationCertificateList.length>0">
<tr v-for="(item,index) in custmerInfo.qualificationCertificateList">
<td :rowspan="custmerInfo.qualificationCertificateList.length" v-if="index == 0">资质证书</td>
<td>{{custmerInfo.expireDate4 || '--'}}</td>
<td>{{custmerInfo.status4}}</td>
<td class="blue">
<el-link :href="`${item.docLink}`" :underline="false" target="_blank">
<span class="blue"> {{item.docName}}</span>
</el-link>
</td>
</tr>
</template>
<template v-else>
<tr>
<td>资质证书</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
</template>
<template v-if="custmerInfo.safetyCertificateList&&custmerInfo.safetyCertificateList.length>0">
<tr v-for="(item,index) in custmerInfo.safetyCertificateList">
<td :rowspan="custmerInfo.safetyCertificateList.length" v-if="index == 0">安全生产</td>
<td>{{custmerInfo.expireDate5 || '--'}}</td>
<td>{{custmerInfo.status5}}</td>
<td class="blue">
<el-link :href="`${item.docLink}`" :underline="false" target="_blank">
<span class="blue"> {{item.docName}}</span>
</el-link>
</td>
</tr>
</template>
<template v-else>
<tr>
<td>安全生产</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
</template>
<template v-if="custmerInfo.ratepayerCertificateList&&custmerInfo.ratepayerCertificateList.length>0">
<tr v-for="(item,index) in custmerInfo.ratepayerCertificateList">
<td :rowspan="custmerInfo.ratepayerCertificateList.length" v-if="index == 0">增值税一般纳税人资格证明</td>
<td></td>
<td></td>
<td class="blue">
<el-link :href="`${item.docLink}`" :underline="false" target="_blank">
<span class="blue">{{item.docName}}</span>
</el-link>
</td>
</tr>
</template>
<template v-else>
<tr>
<td>增值税一般纳税人资格证明</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
</template>
<tr>
<td>业绩报告</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
<tr>
<td>考察报告</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
<tr>
<td>其他</td>
<td>--</td>
<td>--</td>
<td>--</td>
</tr>
</table>
<div class="acc-title i">项目部意见</div>
<div class="main3-box">
<p>
......
......@@ -225,7 +225,7 @@
</el-table-column>
<el-table-column label="分包商等级" min-width="120" :resizable="false">
<template slot-scope="scope">
<span class="creditLevel" @click="getFBS(scope.row)">{{scope.row.creditLevel||"--"}}</span>
<span class="wordprimary" @click="getFBS(scope.row)">{{scope.row.creditLevel||"--"}}</span>
</template>
</el-table-column>
<el-table-column label="链接" min-width="160" :resizable="false">
......
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