Commit a5f84e87 authored by Administrator's avatar Administrator

Merge remote-tracking branch 'origin/V20231129-中建一局二公司' into V20231129-中建一局二公司

parents 886c7634 0195f20c
......@@ -166,7 +166,8 @@ tenant:
- d_customer
- d_project
- d_subcontract
- sys_advisory_body
- advisory_body
- advisory_body_project
- dim_area
- biz_dict_data
......
......@@ -5,6 +5,7 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
......@@ -13,6 +14,7 @@ import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import com.dsk.cscec.service.IDProjectService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -27,6 +29,7 @@ import javax.validation.constraints.NotNull;
* @author sxk
* @since 2023-12-10 15:34:46
*/
@Validated
@RestController
@RequestMapping("advisory/body")
public class AdvisoryBodyManageController extends BaseController {
......@@ -67,5 +70,13 @@ public class AdvisoryBodyManageController extends BaseController {
public R<ProjectDetailVo> getProjectDetail(@NotNull(message = "项目主键不能为空") @PathVariable Long projectKey) {
return R.ok(baseService.queryProjectDetail(projectKey));
}
/**
* 根据咨询机构ID查询咨询机构详情
*/
@GetMapping("/getAdvisoryBodyDetail/{advisoryBodyId}")
public R<AdvisoryBody> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) {
return R.ok(baseService.queryAdvisoryBodyDetail(advisoryBodyId));
}
}
package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.cscec.service.AdvisoryBodyProjectService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 咨询机构和项目关联表(AdvisoryBodyProject)表控制层
*
* @author sxk
* @since 2023-12-15 15:57:54
*/
@RestController
@RequestMapping("advisoryBodyProject")
public class AdvisoryBodyProjectController extends BaseController {
/**
* 服务对象
*/
@Resource
private AdvisoryBodyProjectService advisoryBodyProjectService;
///**
// * 分页查询所有数据
// *
// * @param page 分页对象
// * @param advisoryBodyProject 查询实体
// * @return 所有数据
// */
//@GetMapping
//public R selectAll(Page<AdvisoryBodyProject> page, AdvisoryBodyProject advisoryBodyProject) {
// return success(this.advisoryBodyProjectService.page(page, new QueryWrapper<>(advisoryBodyProject)));
//}
//
///**
// * 通过主键查询单条数据
// *
// * @param id 主键
// * @return 单条数据
// */
//@GetMapping("{id}")
//public R selectOne(@PathVariable Serializable id) {
// return success(this.advisoryBodyProjectService.getById(id));
//}
//
///**
// * 新增数据
// *
// * @param advisoryBodyProject 实体对象
// * @return 新增结果
// */
//@PostMapping
//public R insert(@RequestBody AdvisoryBodyProject advisoryBodyProject) {
// return success(this.advisoryBodyProjectService.save(advisoryBodyProject));
//}
//
///**
// * 修改数据
// *
// * @param advisoryBodyProject 实体对象
// * @return 修改结果
// */
//@PutMapping
//public R update(@RequestBody AdvisoryBodyProject advisoryBodyProject) {
// return success(this.advisoryBodyProjectService.updateById(advisoryBodyProject));
//}
//
///**
// * 删除数据
// *
// * @param idList 主键结合
// * @return 删除结果
// */
//@DeleteMapping
//public R delete(@RequestParam("idList") List<Long> idList) {
// return success(this.advisoryBodyProjectService.removeByIds(idList));
//}
}
......@@ -5,15 +5,19 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import com.dsk.cscec.domain.vo.CustomerApproveVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.service.ICustomerInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 供应商相关
......@@ -35,16 +39,33 @@ public class CustomerInfoController extends BaseController {
* 供应商分类列表
*/
@PostMapping("/list")
public TableDataInfo<CustomerInfoVo> list(@Validated @RequestBody CustomerInfoBo bo,@RequestBody PageQuery query) {
public TableDataInfo<CustomerInfoVo> list(@Validated @RequestBody CustomerInfoBo bo, @RequestBody PageQuery query) {
return iCustomerInfoService.queryPageList(bo, query);
}
/**
* 内部合作-咨询机构合作记录
*/
@GetMapping("/advisoryList")
public TableDataInfo<AdvisoryBodyVo> advisoryList(@Validated AdvisoryBodyBo bo, PageQuery query) {
return iCustomerInfoService.queryAdvisoryList(bo, query);
}
/**
* 内部合作-咨询机构合作记录导出
*/
@GetMapping("/advisoryExport")
public void advisoryExport(@Validated AdvisoryBodyBo bo, PageQuery query, HttpServletResponse response) {
List<AdvisoryBodyVo> listVo = iCustomerInfoService.queryAdvisoryList(bo, query).getRows();
ExcelUtil.exportExcel(listVo, "咨询机构合作记录", AdvisoryBodyVo.class, response);
}
/**
* 合作记录-供应商准入情况
*/
@GetMapping("/getByName/{name}")
public R<DCustomer> list(@NotEmpty(message = "企业名称不能为空") @PathVariable String name) {
return R.ok(iCustomerInfoService.queryByName(name));
@GetMapping("/getApproveInfo")
public R<CustomerApproveVo> getApproveInfo(CustomerInfoBo bo) {
return R.ok(iCustomerInfoService.queryApproveByBo(bo));
}
}
......
......@@ -5,12 +5,19 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.excel.ExcelUtils;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import com.dsk.cscec.service.IDCustomerService;
import com.dsk.jsk.domain.JskCombineSearchDto;
import com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 组织维表(DCustomer)表控制层
*
......@@ -30,7 +37,7 @@ public class DCustomerController extends BaseController {
* 供应商总台账筛选
*/
@PostMapping("/all/searchList")
public TableDataInfo<DCustomer> allSearchList(@RequestBody DCustomerSearchBo bo,@RequestBody PageQuery query) {
public TableDataInfo<DCustomerListVo> allSearchList(@RequestBody DCustomerSearchBo bo,@RequestBody PageQuery query) {
return baseService.allSearchList(bo,query);
}
......@@ -42,6 +49,16 @@ public class DCustomerController extends BaseController {
return R.ok(baseService.getById(customerKey));
}
/**
* 供应商信息
*/
@PostMapping("/export")
public void export(@RequestBody DCustomerSearchBo bo, HttpServletResponse response) {
List<DCustomerListVo> list = baseService.exportList(bo);
ExcelUtils<DCustomerListVo> util = new ExcelUtils<>(DCustomerListVo.class);
util.exportExcel(response, list, "集团中标","", true);
}
}
......@@ -4,6 +4,7 @@ package com.dsk.cscec.controller;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.R;
import com.dsk.cscec.domain.vo.RegionVo;
import com.dsk.cscec.domain.vo.RegionWithLevelVo;
import com.dsk.cscec.service.IDimAreaService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -39,7 +40,7 @@ public class DimAreaController extends BaseController {
* 获取地区树(不含区域)
*/
@GetMapping("/all/withoutRegion")
public R<List<RegionVo>> allAreaWithoutRegion(){
public R<List<RegionWithLevelVo>> allAreaWithoutRegion(){
return R.ok(baseService.allAreaWithoutRegion());
}
}
......
......@@ -6,7 +6,6 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
......@@ -31,54 +30,14 @@ public class AdvisoryBody implements Serializable {
* 咨询机构cid(用于查询建设库数据)
*/
private Integer advisoryBodyCid;
/**
* 项目主键(用作关联d_project)
*/
private Long projectKey;
/**
* 咨询机构名称
*/
private String advisoryBodyName;
/**
* 法人代表
*/
private String legalPerson;
/**
* 法人联系电话
*/
private String legalPersonPhone;
/**
* 注册地址
*/
private String regAddress;
/**
* 项目负责人
*/
private String projectLeader;
/**
* 项目负责人专业
*/
private String projectLeaderMajor;
/**
* 项目负责人联系电话
*/
private String projectLeaderPhone;
/**
* 结算金额(万元)
*/
private BigDecimal settleAmount;
/**
* 结算开始时间
*/
private Date settleStartTime;
/**
* 结算完成时间
*/
private Date settleFinishTime;
/**
* 是否为终审单位(0代表是 1代表否)
* 经营范围
*/
private String isFinalJudgeUnit;
private String businessScope;
/**
* 创建者
*/
......
package com.dsk.cscec.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author sxk
* @date 2023.12.15
* @time 15:58
*/
@Data
public class AdvisoryBodyProject implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 项目主键
*/
@TableId(value = "project_key")
private Long projectKey;
/**
* 咨询机构ID
*/
private Long advisoryBodyId;
/**
* 咨询机构cid(用于查询建设库数据)
*/
private Integer advisoryBodyCid;
/**
* 合作时间
*/
private Date cooperateTime;
/**
* 项目负责人
*/
private String projectLeader;
/**
* 项目负责人专业
*/
private String projectLeaderMajor;
/**
* 项目负责人联系电话
*/
private String projectLeaderPhone;
/**
* 结算金额(万元)
*/
private Double settleAmount;
/**
* 结算开始时间
*/
private Date settleStartTime;
/**
* 结算完成时间
*/
private Date settleFinishTime;
/**
* 是否为终审单位(0代表是 1代表否)
*/
private String isFinalJudgeUnit;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
}
package com.dsk.cscec.domain.bo;
import com.dsk.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.List;
/**
* 咨询机构合作记录查询
*
* @author
* @since 2023-12-14
*/
@Data
public class AdvisoryBodyBo extends BaseEntity {
/**
* 咨询机构ID
*/
private Long advisoryBodyId;
/**
* 咨询机构cid(用于查询建设库数据)
*/
private Integer advisoryBodyCid;
/**
* 项目主键(用作关联d_project)
*/
private Long projectKey;
/**
* 咨询机构名称
*/
private String advisoryBodyName;
/**
* 项目承接单位id
*/
private String contractOrgId;
/**
* 项目承接单位
*/
private String contractOrgName;
/**
* 省份
*/
private List<String> province;
/**
* 城市
*/
private List<String> city;
/**
* 项目承接类型
*/
/**
* 工程类别明细
*/
}
......@@ -3,6 +3,7 @@ package com.dsk.cscec.domain.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
......@@ -22,10 +23,12 @@ public class AdvisoryBodySearchBo {
/**
* 最小最近合作时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date minLastCooperateDate;
/**
* 最大最近合作时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date maxLastCooperateDate;
/**
* 经营范围
......
......@@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
......@@ -16,9 +17,10 @@ import java.util.List;
@NoArgsConstructor
public class CooperateProjectDetailSearchBo {
/**
* 咨询机构ID
* 咨询机构CID
*/
private Long advisoryBodyId;
@NotNull(message = "咨询机构CID不能为空")
private Long advisoryBodyCid;
/**
* 项目名称
*/
......
package com.dsk.cscec.domain.bo;
import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
......@@ -16,6 +17,14 @@ import java.util.List;
*/
@Data
public class CustomerInfoBo extends BaseEntity {
/**
* 客商主键
*/
private Long customerKey;
/**
* 统一社会信用代码
*/
private String unifySocialCode;
/**
* 供应商类别(分供,劳务分包,专业分包,租赁,劳务分包队伍)
*/
......@@ -72,12 +81,12 @@ public class CustomerInfoBo extends BaseEntity {
/**
* 准入时间开始
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date approveDate2Start;
/**
* 准入时间结束
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date approveDate2End;
/**
* 队长名称
......
package com.dsk.cscec.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 咨询机构合作记录
*
* @author
* @since 2023-12-14
*/
@Data
@ExcelIgnoreUnannotated
public class AdvisoryBodyVo {
/**
* 项目主键
*/
private Long projectKey;
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称", index = 0)
private String projectName;
/**
* 项目编码
*/
@ExcelProperty(value = "项目编码", index = 1)
private String projectCode;
/**
* 省
*/
@ExcelProperty(value = "省", index = 2)
private String provinceName;
/**
* 市
*/
@ExcelProperty(value = "市", index = 3)
private String cityName;
/**
* 项目承接类型
*/
@ExcelProperty(value = "项目承接类型", index = 4)
private String isinvestproject;
/**
* 工程基础大类
*/
@ExcelProperty(value = "工程基础大类", index = 5)
private String projectType1;
/**
* 工程类别明细
*/
@ExcelProperty(value = "工程类别明细", index = 6)
private String projectType;
/**
* 咨询机构ID
*/
private Long advisoryBodyId;
/**
* 咨询机构cid(用于查询建设库数据)
*/
private Integer advisoryBodyCid;
/**
* 咨询机构名称
*/
private String advisoryBodyName;
/**
* 项目负责人
*/
@ExcelProperty(value = "项目负责人姓名", index = 7)
private String projectLeader;
/**
* 项目负责人专业
*/
@ExcelProperty(value = "项目负责人专业", index = 8)
private String projectLeaderMajor;
/**
* 项目负责人联系电话
*/
@ExcelProperty(value = "项目负责人联系电话", index = 9)
private String projectLeaderPhone;
/**
* 合同金额
*/
@ExcelProperty(value = "合同金额", index = 10)
private BigDecimal contractOrigValue;
/**
* 业主单位
*/
@ExcelProperty(value = "业主单位", index = 11)
private String ownerName;
/**
* 项目承接单位
*/
@ExcelProperty(value = "项目承接单位", index = 12)
private String contractOrgName;
/**
* 创建时间
*/
@ExcelProperty(value = "创建时间", index = 13)
private Date loadTime;
}
package com.dsk.cscec.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.Data;
import java.util.Date;
/**
* 供应商准入情况
*
* @author
* @since 2023-12-15
*/
@Data
@ExcelIgnoreUnannotated
public class CustomerApproveVo {
/**
* 客商主键
*/
private Long customerKey;
/**
* 供应商编号
*/
private String customerCode;
/**
* 供应商名称
*/
private String customerName;
/**
* 注册资金
*/
private Double registerCapital;
/**
* 统一社会信用代码
*/
private String unifySocialCode;
/**
* 工商注册号
*/
private String registerNo;
/**
* 组织机构代码号
*/
private String orgnizationCode;
/**
* 税务登记号
*/
private String businessLicense;
/**
* 身份信息选择
*/
private String cardType;
/**
* 身份证号
*/
private String idCard;
/**
* 纳税人身份
*/
private String paytaxType;
/**
* 纳税人税率
*/
private String taxRate;
/**
* 法人代表
*/
private String representative;
/**
* 联系人
*/
private String contactPerson;
/**
* 联系电话
*/
private String contactPhone;
/**
* 业主性质
*/
private String ownerKind;
/**
* 资质等级
*/
private String credential;
/**
* 施工承包范围
*/
private String constructJobScope;
/**
* 专业类别id
*/
private String groupSpecialtyId;
/**
* 集团专业类别
*/
private String groupSpecialty;
/**
* 城市id
*/
private String registerCityId;
/**
* 注册地区域
*/
private String registerRegion;
/**
* 省份
*/
private String registerProvince;
/**
* 城市
*/
private String registerCity;
/**
* 企业注册地
*/
private String registerAddress;
/**
* 开户行
*/
private String openBank;
/**
* 银行账号
*/
private String bankAccount;
/**
* 主营业务
*/
private String primaryBusiness;
/**
* 税号
*/
private String taxNumber;
/**
* 企业性质
*/
private String customerProperty;
//证书信息
/**
* 营业执照到期时间1
*/
private Date expireDate1;
/**
* 组织机构代码证到期时间2
*/
private Date expireDate2;
/**
* 税务登记证到期时间3
*/
private Date expireDate3;
/**
* 资质证书到期时间4
*/
private Date expireDate4;
/**
* 安全生产许可证到期时间5
*/
private Date expireDate5;
/**
* 施工队长资格证到期时间6
*/
private String expireDate6;
/**
* 授权委托书到期时间7
*/
private String expireDate7;
//审批意见
/**
* 经办人
*/
private String responsiblePerson;
/**
* 经办人签字时间
*/
private Date approveDate1;
/**
* 商务经理
*/
private String businessManager;
/**
* 商务经理签字时间
*/
private Date approveDate3;
/**
* 项目经理
*/
private String projectManager;
/**
* 项目经理签字时间
*/
private Date approveDate4;
/**
* 采购部门负责人/公司意见
*/
private String purchasePrincipal;
/**
* 准入时间
*/
private Date approveDate2;
}
package com.dsk.cscec.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.dsk.common.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author lcl
* @Data 2023/12/18 14:14
*/
@Data
public class DCustomerListVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* jsk企业id
*/
private Integer companyId;
/**
* 客商主键
*/
private Long customerKey;
/**
* ipm供应商id
*/
private String customerId;
/**
* 税号
*/
private String taxNumber;
/**
* 供应商编号
*/
@Excel(name = "供应商编号", width = 5)
private String customerCode;
/**
* 供应商名称
*/
@Excel(name = "供应商名称", width = 10)
private String customerName;
/**
* 推荐公司
*/
@Excel(name = "推荐公司", width = 10)
private String recommendOrg;
/**
* 注册地区域
*/
@Excel(name = "注册地区域", width = 5)
private String registerRegion;
/**
* 省份
*/
@Excel(name = "省份", width = 5)
private String registerProvince;
/**
* 城市
*/
@Excel(name = "城市", width = 5)
private String registerCity;
/**
* 注册资金
*/
@Excel(name = "注册资金", width = 5)
private Double registerCapital;
/**
* 供应商类别
*/
@Excel(name = "供应商类别", width = 5)
private String customerClass;
/**
* 集团专业类别
*/
@Excel(name = "专业类别", width = 5)
private String groupSpecialty;
/**
* 纳税人身份
*/
@Excel(name = "纳税人身份", width = 5)
private String paytaxType;
/**
* 纳税人税率
*/
@Excel(name = "纳税人税率", width = 5)
private String taxRate;
/**
* 供应商状态
*/
@Excel(name = "供应商状态", width = 5)
private String customerState;
/**
* 队长名称
*/
@Excel(name = "劳务队长", width = 5)
private String leaderName;
/**
* 劳务队长身份证号
*/
@Excel(name = "劳务队长身份证号", width = 5)
private String laborCaptainIdcard;
/**
* 劳务队长联系电话
*/
@Excel(name = "劳务队长联系电话", width = 5)
private String laborCaptainPhone;
/**
* 队伍规模人数
*/
@Excel(name = "队伍规模人数", width = 5)
private Double serviceTeamPersonnum;
/**
* 专业特长
*/
@Excel(name = "专业特长", width = 5)
private String serviceTeamSpeciality;
/**
* 施工承包范围
*/
@Excel(name = "施工承包范围", width = 5)
private String constructJobScope;
/**
* 资质等级
*/
@Excel(name = "资质等级", width = 5)
private String credential;
/**
* 联系人
*/
@Excel(name = "联系人", width = 5)
private String contactPerson;
/**
* 电话
*/
@Excel(name = "电话", width = 5)
private String contactPhone;
/**
* 准入时间
*/
@Excel(name = "准入时间", width = 5 , dateFormat = "yyyy-MM-dd")
private Date approveDate2;
/**
* 考评等级
*/
@Excel(name = "考评等级", width = 5)
private String creditLevel;
/**
* 企业合作数量
*/
private Integer enterpriseCooperationCount;
/**
* 项目合作数量
*/
private Integer projectCooperationCount;
}
package com.dsk.cscec.domain.vo;
import lombok.Data;
import java.util.List;
/**
* @Author sxk
* @Data 2023/12/13 14:14
*/
@Data
public class RegionWithLevelVo {
String level;
String value;
List<RegionWithLevelVo> children;
Integer childrenLength;
}
......@@ -2,13 +2,16 @@ package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* 咨询机构(SysAdvisoryBody)表数据库访问层
......@@ -16,15 +19,33 @@ import java.util.Date;
* @author sxk
* @since 2023-12-12 10:12:04
*/
public interface SysAdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
public interface AdvisoryBodyMapper extends BaseMapper<AdvisoryBody> {
/**
* 查询最近一次合作时间
* 获取所有企业列表(咨询机构)数据
*/
Date selectLastCooperateTime(@Param("advisoryBodyId") Long advisoryBodyId);
Page<AdvisoryBodySearchVo> selectPageAdvisoryBodyList(@Param("page") Page<AdvisoryBodySearchVo> page, @Param(Constants.WRAPPER) Wrapper<AdvisoryBody> queryWrapper);
/**
* 获取所有企业列表(咨询机构)数据
* 咨询机构合作记录
* @param build
* @param bo
* @return
*/
Page<AdvisoryBodySearchVo> selectPageAdvisoryBodyList(@Param("page") Page<AdvisoryBodySearchVo> page, @Param(Constants.WRAPPER) Wrapper<AdvisoryBody> queryWrapper);
Page<AdvisoryBodyVo> queryListByBo(IPage<AdvisoryBodyBo> build, @Param("bo") AdvisoryBodyBo bo);
/**
* 根据咨询机构名称查询对应的项目IDs
* @param advisoryBodyName 咨询机构名称
* @return 项目IDs
*/
List<Long> selectProjectIdsByAdvisoryBodyName(@Param("advisoryBodyName") String advisoryBodyName);
/**
* 根据项目主键查询咨询机构
*
* @param projectKey 项目主键
* @return 咨询机构
*/
AdvisoryBody queryAdvisoryBodyByProjectKey(@Param("projectKey") Long projectKey);
}
package com.dsk.cscec.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.AdvisoryBodyProject;
/**
* 咨询机构和项目关联表(AdvisoryBodyProject)表数据库访问层
*
* @author makejava
* @since 2023-12-15 15:57:54
*/
public interface AdvisoryBodyProjectMapper extends BaseMapper<AdvisoryBodyProject> {
}
......@@ -8,6 +8,7 @@ import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -20,7 +21,7 @@ import java.util.List;
*/
public interface DCustomerMapper extends BaseMapper<DCustomer> {
Page<DCustomer> allSearchList(IPage<DCustomerSearchBo> build, @Param("bo") DCustomerSearchBo bo);
Page<DCustomerListVo> allSearchList(IPage<DCustomerSearchBo> build, @Param("bo") DCustomerSearchBo bo);
/**
* 分类查询供应商列表
......
package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.AdvisoryBodyProject;
/**
* 咨询机构和项目关联表(AdvisoryBodyProject)表服务接口
*
* @author makejava
* @since 2023-12-15 15:57:57
*/
public interface AdvisoryBodyProjectService extends IService<AdvisoryBodyProject> {
}
......@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import com.dsk.cscec.domain.vo.CustomerApproveVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
/**
......@@ -17,5 +20,7 @@ public interface ICustomerInfoService extends IService<DCustomer> {
TableDataInfo<CustomerInfoVo> queryPageList(CustomerInfoBo bo, PageQuery query);
DCustomer queryByName(String name);
CustomerApproveVo queryApproveByBo(CustomerInfoBo bo);
TableDataInfo<AdvisoryBodyVo> queryAdvisoryList(AdvisoryBodyBo bo, PageQuery query);
}
......@@ -5,6 +5,9 @@ import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import java.util.List;
/**
* 组织维表(DCustomer)表服务接口
......@@ -14,7 +17,9 @@ import com.dsk.cscec.domain.bo.DCustomerSearchBo;
*/
public interface IDCustomerService extends IService<DCustomer> {
TableDataInfo<DCustomer> allSearchList(DCustomerSearchBo bo, PageQuery query);
TableDataInfo<DCustomerListVo> allSearchList(DCustomerSearchBo bo, PageQuery query);
List<DCustomerListVo> exportList(DCustomerSearchBo bo);
}
......@@ -3,6 +3,7 @@ package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
......@@ -53,5 +54,13 @@ public interface IDProjectService extends IService<DProject> {
* @return 项目详情
*/
ProjectDetailVo queryProjectDetail(Long projectKey);
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
AdvisoryBody queryAdvisoryBodyDetail(Long advisoryBodyId);
}
......@@ -3,6 +3,7 @@ package com.dsk.cscec.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.DimArea;
import com.dsk.cscec.domain.vo.RegionVo;
import com.dsk.cscec.domain.vo.RegionWithLevelVo;
import java.util.List;
......@@ -17,7 +18,7 @@ public interface IDimAreaService extends IService<DimArea> {
List<RegionVo> allArea();
List<RegionVo> allAreaWithoutRegion();
List<RegionWithLevelVo> allAreaWithoutRegion();
}
package com.dsk.cscec.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.mapper.AdvisoryBodyProjectMapper;
import com.dsk.cscec.domain.AdvisoryBodyProject;
import com.dsk.cscec.service.AdvisoryBodyProjectService;
import org.springframework.stereotype.Service;
/**
* 咨询机构和项目关联表(AdvisoryBodyProject)表服务实现类
*
* @author makejava
* @since 2023-12-15 15:57:57
*/
@Service("advisoryBodyProjectService")
public class AdvisoryBodyProjectServiceImpl extends ServiceImpl<AdvisoryBodyProjectMapper, AdvisoryBodyProject> implements AdvisoryBodyProjectService {
}
package com.dsk.cscec.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.cscec.mapper.SysAdvisoryBodyMapper;
import com.dsk.cscec.mapper.AdvisoryBodyMapper;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.service.AdvisoryBodyService;
import org.springframework.stereotype.Service;
......@@ -12,8 +12,8 @@ import org.springframework.stereotype.Service;
* @author sxk
* @since 2023-12-12 10:12:09
*/
@Service("sysAdvisoryBodyService")
public class AdvisoryBodyServiceImpl extends ServiceImpl<SysAdvisoryBodyMapper, AdvisoryBody> implements AdvisoryBodyService {
@Service("advisoryBodyService")
public class AdvisoryBodyServiceImpl extends ServiceImpl<AdvisoryBodyMapper, AdvisoryBody> implements AdvisoryBodyService {
}
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -9,13 +11,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.constant.QueryConstants;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.AdvisoryBodyBo;
import com.dsk.cscec.domain.bo.CustomerInfoBo;
import com.dsk.cscec.domain.vo.AdvisoryBodyVo;
import com.dsk.cscec.domain.vo.CustomerApproveVo;
import com.dsk.cscec.domain.vo.CustomerInfoVo;
import com.dsk.cscec.mapper.AdvisoryBodyMapper;
import com.dsk.cscec.mapper.DCustomerMapper;
import com.dsk.cscec.mapper.DSubcontractMapper;
import com.dsk.cscec.service.ICustomerInfoService;
import com.dsk.search.service.BusinessOpportunityRadarService;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
......@@ -37,6 +45,9 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
@Autowired
private BusinessOpportunityRadarService opportunityRadarService;
@Autowired
private AdvisoryBodyMapper advisoryBodyMapper;
@Override
public TableDataInfo<CustomerInfoVo> queryPageList(CustomerInfoBo bo, PageQuery query) {
if("劳务分包".equals(bo.getCustomerClass())){
......@@ -69,11 +80,25 @@ public class CustomerInfoServiceImpl extends ServiceImpl<DCustomerMapper, DCusto
}
@Override
public DCustomer queryByName(String name) {
public CustomerApproveVo queryApproveByBo(CustomerInfoBo bo) {
if(ObjectUtil.isNull(bo.getCustomerKey()) && StringUtil.isBlank(bo.getCustomerName()) && StringUtil.isBlank(bo.getUnifySocialCode())){
Assert.isTrue(false,"参数不能为空");
}
LambdaQueryWrapper<DCustomer> lqw = Wrappers.lambdaQuery();
lqw.eq(DCustomer::getCustomerName,name);
lqw.eq(ObjectUtil.isNotNull(bo.getCustomerKey()),DCustomer::getCustomerKey,bo.getCustomerKey());
lqw.eq(StringUtil.isNotBlank(bo.getUnifySocialCode()),DCustomer::getUnifySocialCode,bo.getUnifySocialCode());
lqw.eq(StringUtil.isNotBlank(bo.getCustomerName()),DCustomer::getCustomerName,bo.getCustomerName());
lqw.orderByDesc(DCustomer::getApproveDate2);
lqw.last("limit 1");
return baseMapper.selectOne(lqw);
DCustomer dCustomer = baseMapper.selectOne(lqw);
CustomerApproveVo vo = BeanUtil.toBean(dCustomer, CustomerApproveVo.class);
return vo;
}
@Override
public TableDataInfo<AdvisoryBodyVo> queryAdvisoryList(AdvisoryBodyBo bo, PageQuery query) {
bo.setContractOrgId(QueryConstants.LEVEL1_COMPANY_ID);
Page<AdvisoryBodyVo> page = advisoryBodyMapper.queryListByBo(query.build(),bo);
return TableDataInfo.build(page);
}
}
......@@ -9,6 +9,7 @@ import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.DCustomer;
import com.dsk.cscec.domain.bo.DCustomerSearchBo;
import com.dsk.cscec.domain.vo.DCustomerListVo;
import com.dsk.cscec.mapper.DCustomerMapper;
import com.dsk.cscec.mapper.DSubcontractMapper;
import com.dsk.cscec.service.IDCustomerService;
......@@ -39,9 +40,9 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
private BusinessOpportunityRadarService opportunityRadarService;
@Override
public TableDataInfo<DCustomer> allSearchList(DCustomerSearchBo bo, PageQuery query) {
public TableDataInfo<DCustomerListVo> allSearchList(DCustomerSearchBo bo, PageQuery query) {
dealWithCustomerClass(bo);
Page<DCustomer> page = baseMapper.allSearchList(query.build(), bo);
Page<DCustomerListVo> page = baseMapper.allSearchList(query.build(), bo);
if (CollectionUtils.isNotEmpty(page.getRecords())) {
page.getRecords().parallelStream().forEach(item->{
//企业合作数量
......@@ -63,6 +64,15 @@ public class DCustomerServiceImpl extends ServiceImpl<DCustomerMapper, DCustomer
return TableDataInfo.build(page);
}
@Override
public List<DCustomerListVo> exportList(DCustomerSearchBo bo) {
dealWithCustomerClass(bo);
PageQuery query = new PageQuery();
query.setPageNum(1);
query.setPageSize(1000);
return baseMapper.allSearchList(query.build(), bo).getRecords();
}
private void dealWithCustomerClass(DCustomerSearchBo bo) {
if (!ObjectUtils.isEmpty(bo.getCustomerClass())) {
List<String> list = new ArrayList<>();
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.entity.SysDictData;
import com.dsk.cscec.domain.DimArea;
import com.dsk.cscec.domain.vo.RegionVo;
import com.dsk.cscec.domain.vo.RegionWithLevelVo;
import com.dsk.cscec.mapper.DimAreaMapper;
import com.dsk.cscec.service.IDimAreaService;
import com.dsk.system.service.ISysDictTypeService;
......@@ -77,8 +78,8 @@ public class DimAreaServiceImpl extends ServiceImpl<DimAreaMapper, DimArea> impl
}
@Override
public List<RegionVo> allAreaWithoutRegion() {
List<RegionVo> vos = new ArrayList<>();
public List<RegionWithLevelVo> allAreaWithoutRegion() {
List<RegionWithLevelVo> vos = new ArrayList<>();
//区域
List<SysDictData> sysDictData = sysDictTypeService.selectDictDataByType(AREA_TYPE);
if(CollectionUtils.isNotEmpty(sysDictData)){
......@@ -92,9 +93,10 @@ public class DimAreaServiceImpl extends ServiceImpl<DimAreaMapper, DimArea> impl
if(CollectionUtils.isNotEmpty(provinces)){
for (Object province : provinces) {
RegionVo provinceVo = new RegionVo();
RegionWithLevelVo provinceVo = new RegionWithLevelVo();
provinceVo.setValue(String.valueOf(province));
List<RegionVo> cityVos = new ArrayList<>();
provinceVo.setLevel("1");
List<RegionWithLevelVo> cityVos = new ArrayList<>();
//市
List<Object> citys = baseMapper.selectObjs(Wrappers.<DimArea>lambdaQuery()
.select(DimArea::getAreaName3)
......@@ -103,12 +105,14 @@ public class DimAreaServiceImpl extends ServiceImpl<DimAreaMapper, DimArea> impl
.groupBy(DimArea::getAreaName3));
if(CollectionUtils.isNotEmpty(citys)){
for (Object city : citys) {
RegionVo cityVo = new RegionVo();
RegionWithLevelVo cityVo = new RegionWithLevelVo();
cityVo.setValue(String.valueOf(city));
cityVo.setLevel("2");
cityVos.add(cityVo);
}
}
provinceVo.setChildren(cityVos);
provinceVo.setChildrenLength(provinceVo.getChildren().size());
vos.add(provinceVo);
}
}
......
package com.dsk.cscec.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -14,8 +12,9 @@ import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.constant.QueryConstants;
import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.AdvisoryBodyProject;
import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
......@@ -23,8 +22,9 @@ import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import com.dsk.cscec.mapper.AdvisoryBodyMapper;
import com.dsk.cscec.mapper.AdvisoryBodyProjectMapper;
import com.dsk.cscec.mapper.DProjectMapper;
import com.dsk.cscec.mapper.SysAdvisoryBodyMapper;
import com.dsk.cscec.service.IDProjectService;
import com.dsk.jsk.domain.EnterpriseInfoHeaderBody;
import com.dsk.system.utils.DskOpenApiUtil;
......@@ -36,7 +36,6 @@ import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 咨询机构管理
......@@ -50,7 +49,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
@Resource
private DProjectMapper baseMapper;
@Resource
private SysAdvisoryBodyMapper advisoryBodyMapper;
private AdvisoryBodyMapper advisoryBodyMapper;
@Resource
private AdvisoryBodyProjectMapper advisoryBodyProjectMapper;
@Resource
private DskOpenApiUtil dskOpenApiUtil;
......@@ -65,12 +66,15 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
public TableDataInfo<ProjectSearchVo> queryProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery) {
//根据咨询机构名称查询对应的项目IDs
String advisoryBodyName = projectSearchBo.getAdvisoryBodyName();
List<Long> projectIds = new ArrayList<>();
List<Long> projectIds = advisoryBodyMapper.selectProjectIdsByAdvisoryBodyName(advisoryBodyName);
if (StringUtils.isNotBlank(advisoryBodyName)) {
//根据咨询机构名称查询咨询机构
for (AdvisoryBody advisoryBody : advisoryBodyMapper.selectList(new LambdaQueryWrapper<AdvisoryBody>()
.like(AdvisoryBody::getAdvisoryBodyName, advisoryBodyName))) {
if (ObjectUtil.isNotNull(advisoryBody.getProjectKey())) {
projectIds.add(advisoryBody.getProjectKey());
//根据咨询机构CID查询项目主键
for (AdvisoryBodyProject advisoryBodyProject : advisoryBodyProjectMapper.selectList(new LambdaQueryWrapper<AdvisoryBodyProject>()
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBody.getAdvisoryBodyCid()))) {
projectIds.add(advisoryBodyProject.getProjectKey());
}
}
}
......@@ -122,14 +126,13 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
}
/**
* 根据项目ID查询咨询机构
* 根据项目主键查询咨询机构
*
* @param projectKey 项目主键
* @return 咨询机构
*/
private AdvisoryBody getAdvisoryBodyByProjectKey(Long projectKey) {
return advisoryBodyMapper.selectOne(new LambdaQueryWrapper<AdvisoryBody>()
.eq(AdvisoryBody::getProjectKey, projectKey));
return advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectKey);
}
/**
......@@ -162,7 +165,12 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
Map<String, Object> companyMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(infoHeaderBody, false, false));
Map companyData = MapUtils.getMap(companyMap, "data", null);
//最近一次合作时间
advisoryBodySearchVo.setLastCooperateTime(advisoryBodyMapper.selectLastCooperateTime(advisoryBodySearchVo.getAdvisoryBodyId()));
List<AdvisoryBodyProject> advisoryBodyProjectList = advisoryBodyProjectMapper.selectList(new LambdaQueryWrapper<AdvisoryBodyProject>()
.select(AdvisoryBodyProject::getCreateTime)
.eq(AdvisoryBodyProject::getAdvisoryBodyCid, advisoryBodySearchVo.getAdvisoryBodyCid())
.orderByDesc(AdvisoryBodyProject::getCreateBy));
advisoryBodySearchVo.setLastCooperateTime(advisoryBodyProjectList.get(0).getCreateTime());
//经营范围
advisoryBodySearchVo.setBusinessStatus(MapUtils.getString(companyData, "businessStatus", ""));
advisoryBodySearchVo.setCorporatePerson(MapUtils.getString(companyData, "corporatePerson", ""));
String provinceName = MapUtils.getString(companyData, "provinceName", "");
......@@ -188,14 +196,14 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
*/
@Override
public TableDataInfo<CooperateProjectDetailSearchVo> queryCooperateProjectDetailList(CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery) {
//先根据咨询机构ID查出所有该咨询机构下的记录
//先根据咨询机构CID查出所有该咨询机构下的记录
List<AdvisoryBody> advisoryBodyList = advisoryBodyMapper.selectList(new LambdaQueryWrapper<AdvisoryBody>()
.eq(AdvisoryBody::getAdvisoryBodyId, cooperateProjectDetailSearchBo.getAdvisoryBodyId()));
.eq(AdvisoryBody::getAdvisoryBodyCid, cooperateProjectDetailSearchBo.getAdvisoryBodyCid()));
//提取所有项目主键
ArrayList<Long> projectKeyList = new ArrayList<>();
for (AdvisoryBody advisoryBody : advisoryBodyList) {
projectKeyList.add(advisoryBody.getProjectKey());
//projectKeyList.add(advisoryBody.getProjectKey());
}
//再根据记录终改的项目主键查询项目详情
......@@ -217,15 +225,15 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
.in(!cooperateProjectDetailSearchBo.getCityName().isEmpty(), "city_name", cooperateProjectDetailSearchBo.getCityName());
Page<CooperateProjectDetailSearchVo> page = baseMapper.selectPageCooperateProjectDetailList(pageQuery.build(), wrapper);
//填充结算天数
for (CooperateProjectDetailSearchVo cooperateProjectDetailSearchVo : page.getRecords()) {
for (AdvisoryBody advisoryBody : advisoryBodyList) {
if (Objects.equals(advisoryBody.getProjectKey(), cooperateProjectDetailSearchVo.getProjectKey())) {
long betweenDays = DateUtil.between(advisoryBody.getSettleStartTime(), advisoryBody.getSettleFinishTime(), DateUnit.DAY);
cooperateProjectDetailSearchVo.setSettlementDays(betweenDays);
}
}
}
////填充结算天数
//for (CooperateProjectDetailSearchVo cooperateProjectDetailSearchVo : page.getRecords()) {
// for (AdvisoryBody advisoryBody : advisoryBodyList) {
// if (Objects.equals(advisoryBody.getProjectKey(), cooperateProjectDetailSearchVo.getProjectKey())) {
// long betweenDays = DateUtil.between(advisoryBody.getSettleStartTime(), advisoryBody.getSettleFinishTime(), DateUnit.DAY);
// cooperateProjectDetailSearchVo.setSettlementDays(betweenDays);
// }
// }
//}
return TableDataInfo.build(page);
}
......@@ -242,10 +250,21 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
.eq(DProject::getProjectKey, projectKey));
ProjectDetailVo projectDetailVo = BeanUtil.toBean(dProject, ProjectDetailVo.class);
//查询咨询机构信息
AdvisoryBody advisoryBody = advisoryBodyMapper.selectOne(new LambdaQueryWrapper<AdvisoryBody>().eq(AdvisoryBody::getProjectKey, projectKey));
AdvisoryBody advisoryBody = advisoryBodyMapper.queryAdvisoryBodyByProjectKey(projectKey);
//填充咨询机构名称
projectDetailVo.setAdvisoryBodyName(advisoryBody.getAdvisoryBodyName());
return projectDetailVo;
}
/**
* 根据咨询机构ID查询咨询机构详情
*
* @param advisoryBodyId 咨询机构ID
* @return 咨询机构详情
*/
@Override
public AdvisoryBody queryAdvisoryBodyDetail(Long advisoryBodyId) {
return null;
}
}
......@@ -8,6 +8,7 @@ import com.dsk.search.service.BusinessOpportunityRadarService;
import com.dsk.search.service.ExportService;
import com.dsk.system.domain.vo.AptitudeVo;
import com.dsk.system.domain.vo.SysUserImportVo;
import com.dsk.system.service.ISysUserFileRecordService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -30,6 +31,18 @@ public class ExportController {
@Resource
private ExportService exportService;
@Resource
private ISysUserFileRecordService sysUserFileRecordService;
/**
* 导出回调接口
* @param object
* @return
*/
@PostMapping(value = "/backUrl")
public AjaxResult exportBack(@RequestBody JSONObject object) {
return sysUserFileRecordService.exportBack(object);
}
/**
* 获取导入模板
......@@ -37,10 +50,8 @@ public class ExportController {
@PostMapping("/aptitude/importTemplate")
public void importTemplate(HttpServletResponse response) {
List<Object> list = new ArrayList<>();
AptitudeVo aptitudeVo = new AptitudeVo();
aptitudeVo.setCompanyName("重庆市轨道交通(集团)有限公司");
list.add(aptitudeVo);
ExcelUtil.exportTemplate(list, "企业数据", "excel/userImportTemplate.xlsx", response);
list.add(new AptitudeVo("重庆市轨道交通(集团)有限公司"));
ExcelUtil.exportTemplate(list, "企业数据", "excel/aptitudeImportTemplate.xlsx", response);
}
/*
......
......@@ -2,26 +2,93 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.SysAdvisoryBodyMapper">
<select id="selectLastCooperateTime" resultType="java.util.Date">
select ab.create_time
from sys_advisory_body ab
where ab.advisory_body_id = ${advisoryBodyId};
<mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyMapper">
<select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
select
<include refid="allColumnOfAdvisoryBody"></include>
from advisory_body ${ew.getCustomSqlSegment}
</select>
<select id="selectPageAdvisoryBodyList" resultType="com.dsk.cscec.domain.vo.AdvisoryBodySearchVo">
select advisory_body_id,
project_key,
advisory_body_name,
legal_person,
legal_person_phone,
reg_address,
project_leader,
project_leader_major,
project_leader_phone,
settle_start_time,
settle_finish_time,
is_final_judge_unit
from sys_advisory_body ${ew.getCustomSqlSegment}
<select id="queryListByBo" resultType="com.dsk.cscec.domain.vo.AdvisoryBodyVo">
select abp.advisory_body_id,abp.advisory_body_cid,abp.project_key,abp.project_leader,abp.project_leader_major,
abp.project_leader_phone,
ab.advisory_body_name,
dp.project_name,dp.project_code,dp.province_name,dp.city_name,dp.isinvestproject,dp.project_type1,
dp.project_type,dp.contract_orig_value,dp.owner_name,dp.contract_org_name,dp.load_time
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
<where>
<if test="bo.advisoryBodyId != null and bo.advisoryBodyId != ''">
and ab.advisory_body_id = #{bo.advisoryBodyId}
</if>
<if test="bo.advisoryBodyCid != null and bo.advisoryBodyCid != ''">
and ab.advisory_body_cid = #{bo.advisoryBodyCid}
</if>
<if test="bo.advisoryBodyName != null and bo.advisoryBodyName != ''">
and ab.advisory_body_name = #{bo.advisoryBodyName}
</if>
<if test="bo.contractOrgId != null and bo.contractOrgId != ''">
and dp.contract_org_id = #{bo.contractOrgId}
</if>
<if test="bo.contractOrgName != null and bo.contractOrgName != ''">
and dp.contract_org_name = #{bo.contractOrgName}
</if>
<if test="bo.province != null and bo.province.size > 0 and (bo.city == null or bo.city.size==0)">
and dp.province_name in
<foreach collection="bo.province" item="province" separator="," open="(" close=")">
#{province}
</foreach>
</if>
<if test="(bo.province == null or bo.province.size==0) and bo.city != null and bo.city.size > 0 ">
and dp.city_name in
<foreach collection="bo.city" item="city" separator="," open="(" close=")">
#{city}
</foreach>
</if>
<if test="bo.province != null and bo.province.size > 0 and bo.city != null and bo.city.size > 0 ">
and (
dp.province_name in
<foreach collection="bo.province" item="province" separator="," open="(" close=")">
#{province}
</foreach>
or dp.city_name in
<foreach collection="bo.city" item="city" separator="," open="(" close=")">
#{city}
</foreach>
)
</if>
</where>
order by dp.load_time desc
</select>
<select id="selectProjectIdsByAdvisoryBodyName" resultType="java.lang.Long">
select
<include refid="allColumnOfAdvisoryBody"></include>
from advisory_body
where
<if test="advisoryBodyName != null">
and advisory_body_name like concat('%',#{advisoryBodyName},'%')
</if>
</select>
<select id="queryAdvisoryBodyByProjectKey" resultType="com.dsk.cscec.domain.AdvisoryBody">
select
<include refid="allColumnOfAdvisoryBody"></include>
from advisory_body ab
left join advisory_body_project abp
on abp.advisory_body_cid = ab.advisory_body_cid
where abp.project_key = ${projectKey};
</select>
<sql id="allColumnOfAdvisoryBody">
advisory_body_id,
advisory_body_cid,
advisory_body_name,
business_scope,
create_by,
create_time,
update_by,
update_time
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.AdvisoryBodyProjectMapper">
</mapper>
\ No newline at end of file
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsk.cscec.mapper.DCustomerMapper">
<select id="allSearchList" resultType="com.dsk.cscec.domain.DCustomer">
<select id="allSearchList" resultType="com.dsk.cscec.domain.vo.DCustomerListVo">
select
customer_key, customer_id, customer_code, customer_name, recommend_org, register_region, register_province, register_city, customer_class, primary_business,
paytax_type, tax_rate, customer_state, leader_name, labor_captain_phone, labor_captain_idcard, service_team_personnum, service_team_speciality,
......@@ -61,7 +61,7 @@
</if>
<if test="bo.approveDateBegion != null and bo.approveDateBegion != '' ">and approve_date2 &gt;= #{bo.approveDateBegion}</if>
<if test="bo.approveDateEnd != null and bo.approveDateEnd != '' ">and approve_date2 &lt;= #{bo.approveDateBegion} </if>
<if test="bo.isTeam != null"> and leader_name is <if test="bo.isTeam == 0">not</if> null </if>
<if test="bo.isTeam != null"> and leader_name is <if test="bo.isTeam == 1">not</if> null </if>
order by approve_date2 desc
</select>
......
......@@ -5,10 +5,10 @@ VUE_APP_TITLE = 数字化经营履约全生命链路管理系统
ENV = 'production'
# 数字化经营履约全生命链路管理系统/生产环境
VUE_APP_BASE_API = 'https://szhapi.jiansheku.com'
VUE_APP_BASE_API = 'http://111.204.34.146:9099/prod-api'
# 子系统地址
VUE_APP_SUB_SYSTEM_ADDRESS = "https://plug.jiansheku.com"
#VUE_APP_SUB_SYSTEM_ADDRESS = "https://plug.jiansheku.com"
# Bi大屏系统地址
VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
#VUE_APP_BI_SYSTEM_ADDRESS = "https://192.168.60.104:8001"
......@@ -7,4 +7,4 @@ NODE_ENV = production
ENV = 'staging'
# 数字化经营履约全生命链路管理系统/测试环境
VUE_APP_BASE_API = '/stage-api'
VUE_APP_BASE_API = '/prod-api'
import request from '@/utils/request'
//监控动态
export function dynamicPage(data) {
return request({
url: '/monitor/company/dynamicPage',
method: 'post',
data: data
})
}
//监控动态详情
export function dynamicDetail(data) {
return request({
url: '/monitor/company/dynamicDetail',
method: 'post',
data: data
})
}
// 企业监控列表
export function companyPage(data) {
return request({
url: '/monitor/system/companyPage',
method: 'post',
data: data
})
}
// 模糊查企业联想
export function companyList(data) {
return request({
url: '/enterprise/index',
method: 'post',
data: data
})
}
// 添加监控企业
export function companyAdd(data) {
return request({
url: '/monitor/system/add',
method: 'post',
data: data
})
}
// 取消监控企业
export function companyCancel(data) {
return request({
url: '/monitor/system/cancel',
method: 'post',
data: data
})
}
// 企业监控详情
export function companyDetail(data) {
return request({
url: '/monitor/system/detail',
method: 'post',
data: data
})
}
// 监控报告
export function reportPage(data) {
return request({
url: '/monitor/reportPage',
method: 'post',
data: data
})
}
// 监控维度设置-类型
export function rulesSelect() {
return request({
url: '/monitor/push/rulesSelect',
method: 'get',
})
}
// 监控维度设置-新增修改
export function insertOrUpdate(data) {
return request({
url: '/monitor/push/rules/insertOrUpdate',
method: 'post',
data: data
})
}
// 监控维度设置
export function rulesDetail(data) {
return request({
url: '/monitor/push/rulesDetail',
method: 'post',
data: data
})
}
import request from '@/utils/request';
//获取地区树
export function areaAll() {
return request({
url: '/area/all',
method: 'get',
});
}
//供应商总台账
export function customerAll(param) {
return request({
url: '/customer/all/searchList',
data:param,
method: 'POSt',
});
}
//专业类别选项列表
export function bizDictData() {
return request({
url: '/bizDictData/tree?type=0',
method: 'get',
});
}
//供应商管理分类列表
export function custmerInfolist(param) {
return request({
url: '/customerInfo/list',
method: 'POST',
data: param
});
}
//供应商准入信息
export function custmerInfo(param) {
return request({
url: '/customer/info/'+param,
method: 'get',
});
}
......@@ -16,6 +16,21 @@ export function getConfig(configId) {
method: 'get'
});
}
// 根据参数键名查询参数值
export function configKey(configId) {
return request({
url: '/system/config/key/' + configId,
method: 'get'
});
}
// 根据键修改值
export function configUpdate(data) {
return request({
url: '/system/config/updateValue',
method: 'PUT',
data: data
});
}
// 根据参数键名查询参数值
export function getConfigKey(configKey) {
......
import request from '@/utils/request';
import { parseStrEmpty } from "@/utils/ruoyi";
// 推送分页列表
export function pageList(query) {
return request({
url: '/sysPush/pageList',
method: 'get',
params: query
});
}
// 添加推送人
export function sysPush(data) {
return request({
url: '/sysPush',
method: 'post',
data: data
});
}
// 修改推送状态
export function updateStatus(data) {
return request({
url: '/sysPush/updateStatus',
method: 'put',
data: data
});
}
// 删除推送人
export function sysPushDel(id) {
return request({
url: '/sysPush/' + id,
method: 'delete'
});
}
......@@ -92,8 +92,29 @@ let checkTag = function(str, oldTag, newTag) { //str字符串, oldTag当前标
return newHtml
}
let changeTime = function(item){
let value = Number(item)
let now = new Date().getTime()
if( now-value<1000*60*59 ) {
if( (now-value)/(1000*60) ){
return Math.ceil((now-value)/(1000*60))+'分钟前'
}else{
return '1分钟前'
}
}else if(now-value<1000*60*60*23) {
return Math.ceil((now-value)/(1000*60*60))+'小时前'
}else {
let YMD = new Date(value)
let Y = YMD.getFullYear() + '-';//年
let M =(YMD.getMonth() + 1 < 10 ? '0' + (YMD.getMonth() + 1) : YMD.getMonth() + 1) + '-';//月
let D =(YMD.getDate() < 10 ? '0' + YMD.getDate() : YMD.getDate());//日
return Y+M+D
}
}
export {
encodeStr,
changeTime,
changePath,
saveFixed,
removeTag,
......
......@@ -148,6 +148,9 @@
border-right: 1px solid #E6E9F0;
border-bottom: 1px solid #E6E9F0;
background: #fff;
&.bg{
background: #F9FCFF;
}
.label {
width: 10%;
height: auto;
......@@ -177,6 +180,24 @@
}
.tab{
border-right: 1px solid #E6E9F0;
}
.tab:nth-child(1){
width: 20%;
}
.tab:nth-child(2){
width: 15%;
}
.tab:nth-child(3){
width: 10%;
}
.tab:nth-child(4){
width: 35%;
}
.tab:nth-child(5){
width: 20%;
}
}
}
......
......@@ -103,6 +103,21 @@ export const constantRoutes = [
// }
// ]
// },
{
path: '/monitoring/MonitoringReportDetails',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/monitoring/MonitoringReportDetails/:id',
component: () => import('@/views/monitoring/MonitoringReportDetails'),
name: 'MonitoringDynamics',
meta: { title: '监控报告详情', noCache: false },
}
]
},
{
path: '',
component: Layout,
......
......@@ -629,23 +629,211 @@ export function queryConditionFiltering(params) {
* @param {Array<object>} selectList
* @returns
*/
export function getTreeSelectAreaList(selectList) {
export function getTreeSelectAreaList(nodeList = [], tree, idkey = "id") {
try {
if (Object.prototype.toString.call(selectList) != "[object Array]") throw new Error("传入查询条件不是一个数组");
if (!selectList?.length) return [];
const _temp = selectList;
const selectMap = new Map();
const len = _temp.length;
if (Object.prototype.toString.call(nodeList) != "[object Array]") throw new Error("传入参数不是一个节点数组");
for (let index = 0; index < len; index++) {
const treeItem = _temp[index];
console.log(treeItem);
// 没有父级 作为最顶级元素
if (!treeItem.parent) selectMap.set(treeItem.value, {});
const _result = [];
// 克隆源数据
const _tempTree = JSON.parse(JSON.stringify(tree));
// 根据所选节点生成tree
const newTree = generateDirectSubtreeAndRemove(nodeList, _tempTree, idkey);
if (newTree) {
// 循环找到每个节点的父节点 的选中状态
return findParentStatus(nodeList, newTree, idkey);
}
} catch (error) {
console.log(error);
}
}
/**
*
*/
export function findParentStatus(nodeList, tree, idkey) {
const _temp = nodeList.map(item => {
// 找节点parent
const parent = findParentNode(tree, item, idkey);
// 有parent
if (parent) {
const count = parent.childrenLength;
const len = parent.children?.length;
// 比较 count 跟 length 看子节点是否全选中
const flag = count == len && parent.children?.every(childItem => nodeList.includes(childItem[idkey])) ? true : false;
// flag为true 当前节点下的子节点全选中返回父节点id 没有则是根节点 根节点返回所有child id
if (flag) {
return parent[idkey] ? parent[idkey] : parent.children?.map(childItem => childItem[idkey]);
} else {
console.log("没有全选中");
// 没有全选中 看当前子节点是否有选中状态
const itemNode = findNodeFromTree(tree, item, [], idkey);
console.log(itemNode);
// 当前节点有子节点
if (itemNode?.children?.length) {
// 当前节点的子节点选中结果 子节点是全选状态 传递自身 否则传递子节点
const childResult = itemNode?.children?.every(childItem => nodeList.includes(childItem[idkey])) && itemNode?.children?.length == itemNode?.childrenLength;
if (childResult) {
return item;
}
const childNodes = itemNode?.children?.filter(childItem => nodeList.includes(childItem[idkey]));
return childNodes ? childNodes.map(childItem => childItem[idkey]) : [];
}
// 当前节点没有子节点 看父节点是否全选 父节点全选 返回父节点
const childResult = parent.children?.every(childItem => nodeList.includes(childItem[idkey])) && parent.children?.length == parent?.childrenLength;
if (childResult) {
return item;
}
const childNodes = parent.children?.filter(childItem => nodeList.includes(childItem[idkey]));
return childNodes ? childNodes.map(childItem => childItem[idkey]) : [];
}
}
});
return Array.from(new Set(_temp.flat()));
}
/**
* 根据节点 id 获取父节点
* @param {*} tree
* @param {*} targetId
* @param {*} parentNode
* @returns
*/
export function findParentNode(tree, targetId, idKey = "id", parentNode = null) {
if (tree[idKey] === targetId) {
// 找到目标节点,返回其父节点
return parentNode;
}
if (tree?.children?.length) {
for (const child of tree.children) {
const result = findParentNode(child, targetId, idKey, tree);
if (result) {
// 如果找到目标节点,返回其父节点
return result;
}
}
}
// 如果未找到目标节点,返回 null
return null;
}
/**
* 根据节点信息 找到当前节点到祖先辈组成的树形结构
* @param {*} tree
* @param {*} targetId
* @returns
*/
export function findNodeAndAncestors(tree, targetId, idKey = "id", directAncestorsOnly = true) {
if (tree[idKey] === targetId) {
// 找到目标节点,directAncestorsOnly 只找直系节点的情况下 如果是根节点(没有parent父级),返回节点本身不带子节点,否则返回节点的树形结构
return directAncestorsOnly && !tree.parent ? { ...tree, children: null } : tree;
}
if (tree?.children?.length) {
for (const child of tree.children) {
const result = findNodeAndAncestors(child, targetId, idKey, directAncestorsOnly);
if (result) {
// 如果找到目标节点,将该节点加入祖先辈的树形结构中
if (directAncestorsOnly) {
return {
...tree,
children: [result]
};
} else {
return {
...tree,
children: tree?.children?.map(c => (c[idKey] === result[idKey] ? result : c))
};
}
}
}
}
// 如果未找到目标节点,返回null
return null;
}
/**
* 根据节点唯一标识查找节点信息
* @param {*} tree
* @param {*} targetId
* @param {*} idKey
*/
export function findNodeFromTree(tree, targetId, ancestors = [], idKey = "id") {
if (tree[idKey] == targetId) {
return { ...tree, ancestors };
}
if (tree?.children?.length) {
for (const child of tree.children) {
// 递归到孙子集查找
const result = findNodeFromTree(child, targetId, [...ancestors, tree], idKey);
if (result) {
// 如果找到目标节点,返回目标节点
return result;
}
}
}
return null;
}
/**
* 删除某个属性节点
* @param node
*/
export function removeAncestors(node, removeKey = "ancestors") {
delete node[removeKey];
for (const child of node.children) {
removeAncestors(child, removeKey);
}
}
/**
* 根据id 数组 生成直系关系树形结构 并排除不需要的属性
* @param tree
* @param targetIds []
* @returns
*/
export function generateDirectSubtreeAndRemove(targetIds, tree, idKey = "id") {
const result = { ...tree, children: [] };
for (const targetId of targetIds) {
const targetNode = findNodeFromTree(tree, targetId, [], idKey);
if (targetNode) {
// 当前节点
let currentNode = result;
for (const ancestor of targetNode.ancestors) {
const existingNode = currentNode.children.find((child) => child[idKey] === ancestor[idKey]);
if (existingNode) {
currentNode = existingNode;
} else {
const newNode = { ...ancestor, children: [] };
currentNode.children.push(newNode);
currentNode = newNode;
}
}
// 往目标节点追加值
currentNode.children.push({ ...targetNode, children: [] });
}
}
// 删除多余属性
removeAncestors(result);
return result ? JSON.parse(JSON.stringify({ ...result, children: result.children[0]?.children || [] })) : null;
}
// 甲方详情左侧菜单映射
......
......@@ -115,13 +115,13 @@ service.interceptors.response.use(res => {
});
}
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
} else if (code === 500 && apiList.includes(res.config.url)) {
} else if (code === 500) {
Message({ message: msg, type: 'error' })
return Promise.reject(new Error(msg))
} else if (code === 601 && apiList.includes(res.config.url)) {
} else if (code === 601) {
Message({ message: msg, type: 'warning' })
return Promise.reject('error')
} else if (code !== 200 && apiList.includes(res.config.url)) {
} else if (code !== 200) {
Notification.error({ title: msg })
return Promise.reject('error')
} else {
......
......@@ -258,9 +258,12 @@ export default {
}
},
handleChange(params) {
const tree = this.$refs?.areaTree?.getCheckedNodes();
console.log(tree, "tree");
console.log(getTreeSelectAreaList(tree), "filter");
const selectNode = this.$refs?.areaTree?.getCheckedNodes();
if (selectNode?.length) {
const nodeValueList = selectNode.map(item => item.value);
console.log(nodeValueList);
console.log(getTreeSelectAreaList(nodeValueList, { childrenLength: this.areaDataList.length, children: this.areaDataList }, "value"));
}
}
},
}
......
......@@ -9,7 +9,7 @@
<el-breadcrumb-item>{{companyInfo.simpleName || companyInfo.companyName || '&#45;&#45;'}}</el-breadcrumb-item>
</el-breadcrumb>
</div>-->
<div class="flex-box part-header" style="min-width:1248px;">
<div class="flex-box part-header">
<img class="header-logo" :src="companyInfo && companyInfo.logoUrl || require('@/assets/images/detail/company_logo.png')">
{{companyInfo && companyInfo.companyName || '--'}}
</div>
......
<template>
<div class="app-container part-container details-of-party">
<Header :company-id="companyId" :companyInfo="companyInfo" :cooDetail="cooDetail" v-if="companyId" @close-detail="closeDetail" />
<div class="flex-box part-main">
<div class="part-main">
<div class="part-left">
<side-bar :statisticObj="statisticObj" ref="sidebar" @currentPath="showPartPage" :pathName="currentPath.pathName"
:partBoxHeight="partBoxHeight" :customerId="customerId" :isCompany="isCompany" :isCustomer="isCustomer" />
......@@ -383,18 +383,12 @@ export default {
margin-top: 12px;
width: 100%;
height: calc(100vh - 155px);
overflow-y: auto;
/* overflow-y: auto; */
align-items: initial;
}
.part-left {
margin-right: 16px;
padding-bottom: 16px;
position: fixed;
background: #ffffff;
width: 144px;
}
.part-right {
min-width: 1088px;
/* min-width: 1088px; */
width: 100%;
background: #ffffff;
border-radius: 4px;
......@@ -411,12 +405,10 @@ export default {
.details-of-party {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
margin: 0px;
padding: 16px 24px;
box-sizing: border-box;
overflow: hidden;
::v-deep .header-container {
.part-header {
......@@ -425,18 +417,43 @@ export default {
}
::v-deep .part-main {
height: calc(100% - 56px - 12px);
height: calc(100% - 68px);
.part-left {
margin-right: 16px;
position: fixed;
background: #ffffff;
width: 144px;
height: calc(100% - 156px);
#detailPart {
height: 100%;
min-height: unset;
padding-bottom: 0px;
}
}
.part-right {
margin-left: 160px;
height: 100%;
width: calc(100% - 160px);
overflow: auto;
}
}
overflow: hidden;
.part-common-container-style {
width: 100%;
height: 100%;
overflow: auto;
.app-container {
position: relative;
width: auto;
height: auto;
overflow: initial;
box-sizing: border-box;
min-width: 1200px;
}
}
}
}
}
</style>
This diff is collapsed.
......@@ -3,133 +3,45 @@
<div class="app-container MonitoringReport">
<div class="header">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="监控日报" name="first"></el-tab-pane>
<el-tab-pane label="监控周报" name="second"></el-tab-pane>
<el-tab-pane label="监控月报" name="third"></el-tab-pane>
<el-tab-pane label="监控日报" name="1"></el-tab-pane>
<el-tab-pane label="监控周报" name="2"></el-tab-pane>
<el-tab-pane label="监控月报" name="3"></el-tab-pane>
</el-tabs>
</div>
<div class="report-content">
<div class="list">
<div class="list" v-for="item in dataList">
<div class="list-title">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">今日</span>
<span class="common-title">{{item.period}}</span>
</div>
<div class="flex-box query-ability">
<span style="color:#0081FF;padding: 0 4px;">13</span>家企业发生<span style="color:#F7965B;padding: 0 4px;">651</span>条动态信息
</div>
</div>
</div>
<div class="item">
<div class="item" v-for="i in item.list">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
<img v-if="i.logoUrl" :src="i.logoUrl" :alt="i.companyOrstaffName.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
<img v-else src="@/assets/images/enterprise.png" :alt="i.companyOrstaffName.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
<router-link :to="`/monitoring/MonitoringReportDetails/${i.companyOrstaffId}`" tag="a" class="a-link companyName">{{i.companyOrstaffName}}</router-link>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-color color1">{{i.promptCount}}</span>
<span class="right-label">正向:</span>
<span class="right-color color1">21</span>
<span class="right-color color1">{{i.positiveCount}}</span>
<span class="right-label">低风险:</span>
<span class="right-color color1">31</span>
<span class="right-color color1">{{i.lowRiskCount}}</span>
<span class="right-label">中风险:</span>
<span class="right-color color1">41</span>
<span class="right-color color1">{{i.middleRiskCount}}</span>
<span class="right-label">高风险:</span>
<span class="right-color color1">1</span>
<span class="right-color color1">{{i.highRiskCount}}</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
</div>
</div>
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-label">正向:</span>
<span class="right-color color2">21</span>
<span class="right-label">低风险:</span>
<span class="right-color color3">31</span>
<span class="right-label">中风险:</span>
<span class="right-color color4">41</span>
<span class="right-label">高风险:</span>
<span class="right-color color5">1</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
</div>
</div>
</div>
<div class="list">
<div class="list-title">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">昨日</span>
</div>
<div class="flex-box query-ability">
<span style="color:#0081FF;padding: 0 4px;">13</span>家企业发生<span style="color:#F7965B;padding: 0 4px;">651</span>条动态信息
</div>
</div>
</div>
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-label">正向:</span>
<span class="right-color color1">21</span>
<span class="right-label">低风险:</span>
<span class="right-color color1">31</span>
<span class="right-label">中风险:</span>
<span class="right-color color1">41</span>
<span class="right-label">高风险:</span>
<span class="right-color color1">1</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
</div>
</div>
<div class="item">
<div class="item-left">
<!--<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<!--<img v-else src="@/assets/images/enterprise.png" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />-->
<img src="@/assets/images/enterprise.png"/>
</div>
<div class="item-right">
<p class="right-title">
<span>中国铁建集团</span>
</p>
<p class="card-right-p">
<span class="right-label">提示:</span>
<span class="right-color color1">11</span>
<span class="right-label">正向:</span>
<span class="right-color color2">21</span>
<span class="right-label">低风险:</span>
<span class="right-color color3">31</span>
<span class="right-label">中风险:</span>
<span class="right-color color4">41</span>
<span class="right-label">高风险:</span>
<span class="right-color color5">1</span>
</p>
<div class="tips">新增<span>654</span>条动态信息</div>
<div class="tips">新增<span style="color:#0081FF;padding: 0 4px;">{{i.dynamicTotal}}</span>条动态信息</div>
</div>
</div>
</div>
......@@ -138,26 +50,40 @@
</template>
<script>
import { reportPage } from '@/api/monitoring/monitoring'
export default {
name: 'MonitoringReport',
data() {
return {
activeName:'first',
activeName:'1',
dataList:[
{
time:'今日',
list:[]
}
]
],
queryParams:{
pageNum:1,
pageSize:10,
condition:{
reportType:1
}
}
}
},
created() {
this.querySubmit()
},
methods: {
async querySubmit() {
reportPage(this.queryParams).then(res => {
console.log(res)
this.dataList=res.rows
})
},
handleClick() {
this.queryParams.condition.reportType=Number(this.activeName)
this.querySubmit()
}
}
}
......
This diff is collapsed.
......@@ -35,9 +35,10 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
// target: `http://47.104.91.229:9099/prod-api`,//测试
// target: `http://47.104.91.229:9099/prod-api`,//测试-旧
target: `http://111.204.34.146:9099/prod-api`,//测试
// target: `https://szhapi.jiansheku.com`,//线上
// target: `http://192.168.60.5:9098`,//陈跃方
// target: `http://122.9.160.122:9011`, //线上
// target: `http://192.168.0.165:9098`,//施-无线
// target: `http://192.168.60.46:9098`,//施-有线
......
......@@ -74,4 +74,8 @@ public class AptitudeVo implements Serializable {
@Excel(name = "经营范围")
private String businessScope;
public AptitudeVo(String deptName) {
this.companyName = deptName.replace(" ", "");
}
}
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