南网,epc和国网模板下載更新
This commit is contained in:
parent
8d6c4bd006
commit
6eb3015cac
|
|
@ -5,6 +5,7 @@ import lombok.Data;
|
|||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author fly
|
||||
|
|
@ -69,6 +70,9 @@ public class ComCorePersonBean extends PersonFileBean{
|
|||
*/
|
||||
private String diplomaNum;
|
||||
|
||||
//新证件存储
|
||||
private List<TbCertificationVo> certList;
|
||||
|
||||
/**
|
||||
* 学历
|
||||
*/
|
||||
|
|
@ -115,4 +119,9 @@ public class ComCorePersonBean extends PersonFileBean{
|
|||
*/
|
||||
private List<TbCompanyPerfVo> peoplePerfList;
|
||||
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
private String userPhone;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,11 +47,6 @@ public class ComOtherPersonBean extends PersonFileBean{
|
|||
*/
|
||||
private String diploma;
|
||||
|
||||
/**
|
||||
* 专业
|
||||
*/
|
||||
private String major;
|
||||
|
||||
/**
|
||||
* 证书编号
|
||||
*/
|
||||
|
|
@ -62,6 +57,16 @@ public class ComOtherPersonBean extends PersonFileBean{
|
|||
*/
|
||||
private String level;
|
||||
|
||||
//新证件存储
|
||||
private List<TbCertificationVo> certList;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 专业
|
||||
*/
|
||||
private String major;
|
||||
|
||||
|
||||
/**
|
||||
* 保险
|
||||
|
|
|
|||
|
|
@ -71,6 +71,57 @@ public class ComPerformanceBean {
|
|||
*/
|
||||
private String ownerPhone;
|
||||
|
||||
/**
|
||||
* 业绩项目经理名字
|
||||
*/
|
||||
private String managerName;
|
||||
|
||||
/**
|
||||
* 开工日期
|
||||
*/
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 发包人地址
|
||||
*/
|
||||
private String projectLocation;
|
||||
|
||||
/**
|
||||
* 开工日期
|
||||
*/
|
||||
private String ownerLocation;
|
||||
|
||||
|
||||
/**
|
||||
* 合同价格
|
||||
*/
|
||||
private String money;
|
||||
|
||||
/**
|
||||
* 工程质量
|
||||
*/
|
||||
private String engineeringQuality;
|
||||
|
||||
/**
|
||||
* 技术负责人
|
||||
*/
|
||||
private String technicalLead;
|
||||
|
||||
/**
|
||||
* 总监理工程师及电话
|
||||
*/
|
||||
private String supervisingEngineer;
|
||||
|
||||
/**
|
||||
* 项目概况
|
||||
*/
|
||||
private String projectSituation;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 文件
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
package com.bonus.tool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author fly
|
||||
* @date 2025/4/23
|
||||
* 分包商
|
||||
*/
|
||||
@Data
|
||||
public class MapBean {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long lid;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String sid;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String name;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -172,4 +172,9 @@ public class TbCompanyPerfVo {
|
|||
* 项目概况
|
||||
*/
|
||||
private String projectSituation;
|
||||
|
||||
/**
|
||||
* 项目概况
|
||||
*/
|
||||
private String workContent;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,4 +84,9 @@ public class TbGwModelDto implements Serializable {
|
|||
*/
|
||||
private String endDate;
|
||||
|
||||
/**
|
||||
* 是否技术标
|
||||
*/
|
||||
private String isJsb;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,4 +73,9 @@ public class TbGwModelVo implements Serializable {
|
|||
*/
|
||||
private List<SubBean> subList;
|
||||
|
||||
|
||||
/**
|
||||
* 是否技术标 1.国网 2.EPC 3.南网
|
||||
*/
|
||||
private String isJsb;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,10 +4,12 @@ import com.bonus.common.core.domain.AjaxResult;
|
|||
import com.bonus.common.enums.TableType;
|
||||
import com.bonus.common.utils.SecurityUtils;
|
||||
import com.bonus.common.utils.StringUtils;
|
||||
import com.bonus.common.utils.uuid.IdUtils;
|
||||
import com.bonus.tool.dto.*;
|
||||
import com.bonus.tool.mapper.StateGridMapper;
|
||||
import com.bonus.tool.mapper.TbCompanyPerfMapper;
|
||||
import com.bonus.tool.service.StateGridService;
|
||||
import com.bonus.tool.service.TbCertificationService;
|
||||
import com.bonus.tool.template.util.FreeMarkerUtil;
|
||||
import com.bonus.tool.template.util.SnowflakeIdWorker;
|
||||
import com.bonus.tool.template.util.WordUtils;
|
||||
|
|
@ -36,6 +38,9 @@ public class StateGridServiceImpl implements StateGridService {
|
|||
@Resource
|
||||
private TbCompanyPerfMapper tbCompanyPerfMapper;
|
||||
|
||||
@Resource
|
||||
private TbCertificationService tbCertificationService;
|
||||
|
||||
SnowflakeIdWorker idWorker = new SnowflakeIdWorker(1, 1);
|
||||
|
||||
/**
|
||||
|
|
@ -145,9 +150,21 @@ public class StateGridServiceImpl implements StateGridService {
|
|||
bean.setComPerfList(comPerfList);
|
||||
//2.2获取公司核心人员
|
||||
List<ComCorePersonBean> comCoreList = mapper.selectComCoreList(o.getId());
|
||||
//2.2.1公司核心人员证件
|
||||
comCoreList.forEach(item -> {
|
||||
//获取附件信息
|
||||
List<TbCertificationVo> tbCertificateList = tbCertificationService.getTbCertificateList(Long.parseLong(item.getUserId()), TableType.TB_KEY_PEOPLE.getCode());
|
||||
item.setCertList(tbCertificateList);
|
||||
});
|
||||
bean.setComCoreList(comCoreList);
|
||||
//2.2获取公司其他人员
|
||||
//2.3获取公司其他人员
|
||||
List<ComOtherPersonBean> comOtherList = mapper.selectComOtherList(o.getId());
|
||||
//2.3.1公司其他人员证件
|
||||
comOtherList.forEach(item -> {
|
||||
//获取附件信息
|
||||
List<TbCertificationVo> tbCertificateList = tbCertificationService.getTbCertificateList(item.getUserId(), TableType.TB_OTHER_PEOPLE.getCode());
|
||||
item.setCertList(tbCertificateList);
|
||||
});
|
||||
bean.setComOtherList(comOtherList);
|
||||
//3.1获取分包商列表
|
||||
List<SubBean> subList = mapper.selectSubList(o.getId());
|
||||
|
|
@ -209,6 +226,7 @@ public class StateGridServiceImpl implements StateGridService {
|
|||
AjaxResult ajaxResult = getStateGridTempById(o);
|
||||
if (ajaxResult.isSuccess()) {
|
||||
TbGwModelVo data = (TbGwModelVo) ajaxResult.get("data");
|
||||
data.setIsJsb(o.getIsJsb());
|
||||
//将每种数据的文件查出来封装进去
|
||||
//1.1公司业绩文件
|
||||
data.getComPerfList().forEach(item -> {
|
||||
|
|
@ -286,6 +304,13 @@ public class StateGridServiceImpl implements StateGridService {
|
|||
List<Map<String, Object>> list3 = new ArrayList<>();
|
||||
List<Map<String, Object>> list4 = new ArrayList<>();
|
||||
List<Map<String, Object>> list5 = new ArrayList<>();
|
||||
List<Map<String, Object>> list6 = new ArrayList<>(); // 【拟投入项目经理(项目负责人)一览表】
|
||||
List<Map<String, Object>> list7 = new ArrayList<>(); // 本项目现场作业人员统计表
|
||||
List<Map<String, Object>> list8 = new ArrayList<>(); // 拟派本项目项目经理(项目负责人)情况一览表
|
||||
List<Map<String, Object>> list9 = new ArrayList<>(); // 项目经理证书等信息附件图片
|
||||
List<Map<String, Object>> list10 = new ArrayList<>(); // 项目经理业绩证明
|
||||
List<Map<String, Object>> list11 = new ArrayList<>(); // 投入本项目主要项目团队(施工团队)一览表
|
||||
List<Map<String, Object>> list12 = new ArrayList<>(); // 投入本项目主要项目团队(施工团队)每个人的 证书图片及其他个人材料图片
|
||||
|
||||
// 设置标题等基础信息
|
||||
data.put("title", tbData.getName());
|
||||
|
|
@ -297,19 +322,33 @@ public class StateGridServiceImpl implements StateGridService {
|
|||
map.put("i", ++index);
|
||||
map.put("proName", item.getProName() != null ? item.getProName() : "");
|
||||
map.put("dy", item.getVoltage() != null ? item.getVoltage() : "");
|
||||
map.put("num", item.getStationNum() != null ? item.getStationNum() : "");
|
||||
map.put("fr", item.getOwnerUnit() != null ? item.getOwnerUnit() : "");
|
||||
map.put("line", item.getLineScale() != null ? item.getLineScale()+"km" : "");
|
||||
map.put("date", item.getStopTime() != null ? item.getStopTime() : "");
|
||||
map.put("fw", item.getContractRang() != null ? item.getContractRang() : "");
|
||||
map.put("fr", item.getOwnerUnit() != null ? item.getOwnerUnit() : "");
|
||||
map.put("phone", item.getOwnerPhone() != null ? item.getOwnerPhone() : "");
|
||||
map.put("xmjl", item.getManagerName() != null ? item.getManagerName() : "");
|
||||
// 近年完成的类似项目情况表
|
||||
list.add(map);
|
||||
|
||||
// 处理业绩材料图片
|
||||
//项目详情 + 项目合同关键页图片
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
List<Map<String, Object>> imgList = new ArrayList<>(); // 项目合同关键页图片
|
||||
map2.put("proName", item.getProName() != null ? item.getProName() : ""); // 项目名称
|
||||
map2.put("voltageLevel", item.getVoltage() != null ? item.getProName() : ""); // 电压等级
|
||||
map2.put("proLocation", item.getProjectLocation() != null ? item.getProjectLocation() : ""); // 项目所在地
|
||||
map2.put("employerName", item.getOwnerUnit() != null ? item.getOwnerUnit() : ""); // 发包人名称
|
||||
map2.put("employerAddress", item.getOwnerLocation() != null ? item.getOwnerLocation() : ""); // 发包人地址
|
||||
map2.put("employerPhone",item.getOwnerPhone() != null ? item.getOwnerPhone() : ""); // 发包人电话
|
||||
map2.put("contractPrice", item.getMoney() != null ? item.getMoney() : ""); // 合同价格
|
||||
map2.put("startDate", item.getStartTime() != null ? item.getStartTime() : ""); // 开工日期
|
||||
map2.put("endDate", item.getStopTime() != null ? item.getStopTime() : ""); // 竣工日期
|
||||
map2.put("work", item.getContractRang() != null ? item.getContractRang() : ""); // 承担的工作
|
||||
map2.put("proQuality", item.getEngineeringQuality() != null ? item.getEngineeringQuality() : ""); // 工程质量
|
||||
map2.put("proManager", item.getManagerName() != null ? item.getManagerName() : ""); // 项目经理
|
||||
map2.put("technicalDirector", item.getTechnicalLead() != null ? item.getTechnicalLead() : ""); // 技术负责人
|
||||
map2.put("jlNamePhone", item.getSupervisingEngineer() != null ? item.getSupervisingEngineer() : ""); // 总监理工程师及电话
|
||||
map2.put("proOverview", item.getProjectSituation() != null ? item.getProjectSituation() : ""); // 项目概况
|
||||
map2.put("remark", item.getRemark() != null ? item.getRemark() : ""); // 备注
|
||||
if (item.getFileList() != null && !item.getFileList().isEmpty()) {
|
||||
Map<String, Object> perfImgMap = new HashMap<>();
|
||||
perfImgMap.put("proName", index + "." + item.getProName());
|
||||
List<Map<String, Object>> imgList = new ArrayList<>();
|
||||
for (TbFileSourceVo file : item.getFileList()) {
|
||||
Map<String, Object> imgMap = new HashMap<>();
|
||||
imgMap.put("index", idWorker.nextId());
|
||||
|
|
@ -319,13 +358,195 @@ public class StateGridServiceImpl implements StateGridService {
|
|||
imgMap.put("base64Url", file.getFilePath() != null ? bast64: "");
|
||||
imgList.add(imgMap);
|
||||
}
|
||||
perfImgMap.put("imgList", imgList);
|
||||
list2.add(perfImgMap);
|
||||
}
|
||||
map2.put("imgList",imgList);
|
||||
list2.add(map2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//项目关键人员
|
||||
if (tbData.getComCoreList() != null && !tbData.getComCoreList().isEmpty()) {
|
||||
for (ComCorePersonBean item : tbData.getComCoreList()) {
|
||||
// 【拟投入项目经理(项目负责人)一览表】
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("bName", ""); // 标的名称
|
||||
map.put("bdName", !item.getPeoplePerfList().isEmpty() ? item.getPeoplePerfList().get(0).getProName() : ""); // 标段名称
|
||||
map.put("proManager", item.getUserName() != null ? item.getUserName() : ""); // 项目经理
|
||||
map.put("aqCode", !item.getCertList().isEmpty() && item.getCertList().size() > 1 ? item.getCertList().get(1).getDiploma()+item.getCertList().get(1).getDiplomaNum() : ""); // 安全生产考核合格证(B 类)编号
|
||||
//默认取第一个证书
|
||||
map.put("zcCode", !item.getCertList().isEmpty() ? item.getCertList().get(0).getDiploma()+item.getCertList().get(0).getDiplomaNum() : ""); // 注册证书及注册编号
|
||||
map.put("zcMajor", item.getMajor() != null ? item.getMajor() : ""); // 注册专业
|
||||
list6.add(map);
|
||||
|
||||
// 拟派本项目项目经理(项目负责人)情况一览表
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
List<String> proList = new ArrayList<>();
|
||||
List<Map<String, Object>> zjProList = new ArrayList<>();
|
||||
map2.put("name", item.getUserName() != null ? item.getUserName() : ""); // 姓名
|
||||
map2.put("sex", ""); // 性别
|
||||
map2.put("age", item.getAge() != null ? item.getAge() : ""); // 年龄
|
||||
map2.put("title", item.getTitle() != null ? item.getTitle() : ""); // 职称
|
||||
map2.put("majorStudied", item.getMajor() != null ? item.getMajor() : ""); // 所学专业
|
||||
map2.put("graduationSchool", item.getAlmaMater() != null ? item.getAlmaMater() : ""); // 毕业学校
|
||||
map2.put("graduationTime", item.getAlmaMater() != null ? item.getAlmaMater().split("毕业于")[0] : ""); // 毕业时间
|
||||
|
||||
map2.put("zcCode", ""); // 注册建造师注册编号
|
||||
map2.put("bCode", ""); // 项目经理(项目负责人)B证证书编号
|
||||
map2.put("level", ""); // 项目经理(项目负责人)级别
|
||||
if(item.getCertList() != null && !item.getCertList().isEmpty()){
|
||||
item.getCertList().forEach(item2 -> {
|
||||
if ("注册建造师".equals(item2.getDiploma())) {
|
||||
map2.put("zcCode", item2.getDiploma()+item2.getDiplomaNum()); // 注册建造师注册编号
|
||||
map2.put("level", item2.getLevel()); // 项目经理(项目负责人)级别
|
||||
}
|
||||
if ("项目经理B证".equals(item2.getDiploma())) {
|
||||
map2.put("bCode", ""); // 项目经理(项目负责人)B证证书编号
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
map2.put("phone", item.getUserPhone() != null ? item.getUserPhone() : ""); // 联系电话
|
||||
// 近年曾担任项目经理(项目负责人)的同类工程项目
|
||||
proList.add(item.getProPerf());
|
||||
map2.put("proList", proList);
|
||||
|
||||
StringBuilder mainJob = new StringBuilder();
|
||||
if(item.getPeoplePerfList() != null && !item.getPeoplePerfList().isEmpty()){
|
||||
List<TbCompanyPerfVo> peoplePerfList = item.getPeoplePerfList();
|
||||
for (int i = 0; i < peoplePerfList.size(); i++) {
|
||||
TbCompanyPerfVo item2 = peoplePerfList.get(i);
|
||||
mainJob.append(item2.getWorkContent());
|
||||
// 如果不是最后一个元素,则追加分号和换行符;如果是最后一个元素,则只追加换行符。
|
||||
if (i != peoplePerfList.size() - 1) {
|
||||
mainJob.append(";\n");
|
||||
} else {
|
||||
mainJob.append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 近年来的主要工作业绩及担任的主要工作
|
||||
map2.put("mainJob",mainJob);
|
||||
|
||||
// for (int j = 0; j < 1; j++) {
|
||||
Map<String, Object> zjMap = new HashMap<>();
|
||||
zjMap.put("manager","无"); // 项目经理
|
||||
zjMap.put("overView","无"); // 项目概况
|
||||
zjMap.put("date","无"); // 开工日期
|
||||
zjMap.put("unit","无"); // 项目建设单位
|
||||
zjMap.put("name","无"); // 项目建设单位联系人
|
||||
zjMap.put("phone","无"); // 项目建设单位联系人电话
|
||||
zjProList.add(zjMap);
|
||||
// }
|
||||
map2.put("zjProList", zjProList); // 担任项目经理的在建项目--没有的默认都为无
|
||||
list8.add(map2);
|
||||
|
||||
// 项目经理证书等信息附件图片
|
||||
List<TbFileSourceVo> managerCerList = new ArrayList<>();
|
||||
if(!item.getCertList().isEmpty()){
|
||||
item.getCertList().forEach(item2 -> {
|
||||
managerCerList.addAll(item2.getTbFileSourceVoList());
|
||||
});
|
||||
}
|
||||
managerCerList.addAll(item.getOtherFileList());
|
||||
for (TbFileSourceVo file : managerCerList) {
|
||||
Map<String, Object> imgMap = new HashMap<>();
|
||||
imgMap.put("index", IdUtils.fastSimpleUUID());
|
||||
imgMap.put("width", "481.15");
|
||||
imgMap.put("height", "634.5");
|
||||
imgMap.put("base64Url", file.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+file.getFilePath()) : "");
|
||||
list9.add(imgMap);
|
||||
}
|
||||
|
||||
// 项目经理业绩证明
|
||||
if(item.getPeoplePerfList() != null && !item.getPeoplePerfList().isEmpty()){
|
||||
item.getPeoplePerfList().forEach(item2 -> {
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
List<Map<String, Object>> imgList = new ArrayList<>(); // 项目合同关键页图片
|
||||
map3.put("proName", item2.getProName() != null ? item2.getProName() : ""); // 项目名称
|
||||
if(item2.getTbFileSourceVoList() != null &&!item2.getTbFileSourceVoList().isEmpty()){
|
||||
item2.getTbFileSourceVoList().forEach(item3 -> {
|
||||
Map<String, Object> imgMap = new HashMap<>();
|
||||
imgMap.put("index", IdUtils.fastSimpleUUID());
|
||||
imgMap.put("width", "481.15");
|
||||
imgMap.put("height", "634.5");
|
||||
try {
|
||||
imgMap.put("base64Url", item3.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+item3.getFilePath()) : "");
|
||||
} catch (Exception e) {
|
||||
imgMap.put("base64Url", "");
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
imgList.add(imgMap);
|
||||
});
|
||||
}
|
||||
map3.put("imgList",imgList);
|
||||
list10.add(map3);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//本项目现场作业人员统计表
|
||||
if (tbData.getComOtherList() != null && !tbData.getComOtherList().isEmpty()) {
|
||||
for (ComOtherPersonBean item : tbData.getComOtherList()) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("name", item.getUserName() != null ? item.getUserName() : "" ); // 姓名
|
||||
map.put("position", item.getPostName() != null ? item.getPostName() : "" ); // 工作岗位
|
||||
map.put("code", !item.getCertList().isEmpty() ? item.getCertList().get(0).getDiploma()+item.getCertList().get(0).getDiplomaNum() : ""); // 职业资格及证书号
|
||||
map.put("zc", item.getTitle() != null ? item.getTitle() : "" ); // 职称\技能
|
||||
map.put("major",item.getMajor() != null ? item.getMajor() : "" ); // 专业
|
||||
map.put("zsCode", item.getDiplomaNum() != null ? item.getDiplomaNum() : ""); // 证书号
|
||||
map.put("post", item.getPostName() != null ? item.getPostName() : ""); // 工种
|
||||
map.put("tsCode", ""); // 特殊作业操作证书号
|
||||
map.put("dwCode", ""); // 电网建设作业人员资格认定证书号
|
||||
list7.add(map);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 投入本项目主要项目团队(施工团队)一览表
|
||||
if (tbData.getComOtherList() != null && !tbData.getComOtherList().isEmpty()) {
|
||||
for (ComOtherPersonBean item : tbData.getComOtherList()) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
List<String> proList = new ArrayList<>();
|
||||
map.put("name", item.getUserName() != null ? item.getUserName() : ""); // 姓名
|
||||
map.put("sex", ""); // 性别
|
||||
map.put("age", ""); // 年龄
|
||||
map.put("title", item.getTitle() != null ? item.getTitle() : ""); // 职称
|
||||
map.put("majorStudied", item.getMajor() != null ? item.getMajor() : ""); // 所学专业
|
||||
map.put("graduationSchool", ""); // 毕业学校
|
||||
map.put("zcCode", !item.getCertList().isEmpty() ? item.getCertList().get(0).getDiploma()+item.getCertList().get(0).getDiplomaNum():""); // 注册名称及证书编号
|
||||
map.put("job", item.getPostName() != null ? item.getPostName() : ""); // 担任的工作
|
||||
// 近年来同类工程的主要工作业绩及担任的主要工作
|
||||
// for (int j = 0; j < 2; j++) {
|
||||
// proList.add("");
|
||||
// }
|
||||
map.put("proList", proList);
|
||||
list11.add(map);
|
||||
|
||||
// 投入本项目主要项目团队(施工团队)-项目副经理证书图片及其他个人材料图片
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
List<Map<String, Object>> imgList = new ArrayList<>(); // 项目副经理证书图片及其他个人材料图片
|
||||
map.put("title", item.getTitle() != null ? item.getTitle() : ""); // 项目名称
|
||||
item.getOtherFileList().forEach(item2 -> {
|
||||
Map<String, Object> imgMap = new HashMap<>();
|
||||
try {
|
||||
imgMap.put("index", IdUtils.fastSimpleUUID());
|
||||
imgMap.put("width", "481.15");
|
||||
imgMap.put("height", "634.5");
|
||||
imgMap.put("base64Url", item2.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+item2.getFilePath()) : "");
|
||||
} catch (Exception e) {
|
||||
imgMap.put("base64Url", "");
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
imgList.add(imgMap);
|
||||
});
|
||||
map2.put("imgList",imgList);
|
||||
list12.add(map2);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理分包商数据(核心分包商业绩证明)
|
||||
if (tbData.getSubList() != null && !tbData.getSubList().isEmpty()) {
|
||||
int subIndex = 1;
|
||||
|
|
@ -697,7 +918,18 @@ public class StateGridServiceImpl implements StateGridService {
|
|||
data.put("list3", list3);
|
||||
data.put("list4", list4);
|
||||
data.put("list5", list5);
|
||||
WordUtils.exportMillCertificateWord(request,response,data,tbData.getName(),"GW_DOC.ftl" );
|
||||
data.put("list6", list6);
|
||||
data.put("list7", list7);
|
||||
data.put("list8", list8);
|
||||
data.put("list9", list9);
|
||||
data.put("list10", list10);
|
||||
data.put("list11", list11);
|
||||
data.put("list12", list12);
|
||||
if("1".equals(tbData.getIsJsb())){
|
||||
WordUtils.exportMillCertificateWord(request,response,data,tbData.getName(),"GW_DOC_JSB.ftl" );
|
||||
}else{
|
||||
WordUtils.exportMillCertificateWord(request,response,data,tbData.getName(),"GW_DOC.ftl" );
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("处理国网模版下载数据失败", e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,133 +0,0 @@
|
|||
package com.bonus.tool.template;
|
||||
|
||||
import com.bonus.tool.template.util.FreeMarkerUtil;
|
||||
import com.bonus.tool.template.util.WordUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @className:Test
|
||||
* @author:cwchen
|
||||
* @date:2025-04-25-17:05
|
||||
* @version:1.0
|
||||
* @description:
|
||||
*/
|
||||
@Slf4j
|
||||
public class TestEPC {
|
||||
|
||||
public static void download() {
|
||||
Map<String, Object> data = new HashMap<>(16);
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
List<Map<String, Object>> list2 = new ArrayList<>();
|
||||
String fileName = null;
|
||||
try {
|
||||
data.put("title","中老500千伏联网项目(老挝段)EPC总承包项目投标技术文件");
|
||||
data.put("Introduction","项目经理、设计负责人、采购负责人、施工负责人、商务负责人等主要负责人");
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("i",i + 1);
|
||||
map.put("zw","项目经理");
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("zc","工程师");
|
||||
map.put("zsmc","建造师证");
|
||||
map.put("level","一级");
|
||||
map.put("zh","云1532016201673770");
|
||||
map.put("zy","机电工程");
|
||||
map.put("ylbx","正常");
|
||||
map.put("bz","");
|
||||
list.add(map);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("hasJj",true);
|
||||
if(i == 0 || i== 3){
|
||||
map.put("zy","项目经理简介");
|
||||
map.put("hasJj",true);
|
||||
}else{
|
||||
map.put("zy","项目经理");
|
||||
map.put("hasJj",false);
|
||||
}
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("age","13");
|
||||
map.put("xl","本科");
|
||||
map.put("zc","工程师");
|
||||
map.put("zw","职务");
|
||||
map.put("rz","项目经理");
|
||||
map.put("byxx","2007年6月毕业于三峡大学机械设计制造及其自动化专业");
|
||||
map.put("Introduction","项目经理简历表");
|
||||
List<Map<String,Object>> infoList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("time","2019.3-2020.12");
|
||||
map2.put("xm","乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
map2.put("zy","项目经理");
|
||||
map2.put("lxr","云南电网建设分公司\n" +
|
||||
"0871-63011815");
|
||||
infoList.add(map2);
|
||||
}
|
||||
List<Map<String,Object>> imgList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("width","4959860");
|
||||
map3.put("height","3492375");
|
||||
map3.put("index",(100 * (i + 1)) + (j + 1));
|
||||
if(j == 0){
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片3.png"));
|
||||
}else if(j == 1){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片4.png"));
|
||||
}else if(j == 2){
|
||||
map3.put("width","5325745");
|
||||
map3.put("height","7534910");
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
}
|
||||
if(i == 0 && j == 0){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
}
|
||||
imgList.add(map3);
|
||||
}
|
||||
map.put("yjTitle","项目经理业绩");
|
||||
List<Map<String,Object>> yjList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("yj","业绩" + (j + 1) + ":" + "乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
List<Map<String,Object>> imgList2 = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map4 = new HashMap<>();
|
||||
map4.put("index",(10000 * (j + 1)) + (k + 1));
|
||||
map4.put("width","5325745");
|
||||
map4.put("height","7534910");
|
||||
map4.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList2.add(map4);
|
||||
}
|
||||
map3.put("imgList",imgList2);
|
||||
yjList.add(map3);
|
||||
}
|
||||
map.put("infoList",infoList);
|
||||
map.put("imgList",imgList);
|
||||
map.put("yjList",yjList);
|
||||
list2.add(map);
|
||||
}
|
||||
data.put("list",list);
|
||||
data.put("list2",list2);
|
||||
WordUtils.exportMillCertificateWord2(null,null, data, "test", "EPC.ftl","C:\\Users\\10488\\Desktop\\test (2)\\");
|
||||
} catch (Exception e) {
|
||||
log.error("EPC下载", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
download();
|
||||
}
|
||||
|
||||
public static String handleValue(String value){
|
||||
if(StringUtils.isBlank(value)){
|
||||
return "";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,133 +0,0 @@
|
|||
package com.bonus.tool.template;
|
||||
|
||||
import com.bonus.tool.template.util.FreeMarkerUtil;
|
||||
import com.bonus.tool.template.util.WordUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @className:Test
|
||||
* @author:cwchen
|
||||
* @date:2025-04-25-17:05
|
||||
* @version:1.0
|
||||
* @description:
|
||||
*/
|
||||
@Slf4j
|
||||
public class TestEPCDOC {
|
||||
|
||||
public static void download() {
|
||||
Map<String, Object> data = new HashMap<>(16);
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
List<Map<String, Object>> list2 = new ArrayList<>();
|
||||
String fileName = null;
|
||||
try {
|
||||
data.put("title","中老500千伏联网项目(老挝段)EPC总承包项目投标技术文件");
|
||||
data.put("Introduction","项目主要负责人");
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("i",i + 1);
|
||||
map.put("zw","项目经理");
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("zc","工程师");
|
||||
map.put("zsmc","建造师证");
|
||||
map.put("level","一级");
|
||||
map.put("zh","云1532016201673770");
|
||||
map.put("zy","机电工程");
|
||||
map.put("ylbx","正常");
|
||||
map.put("bz","");
|
||||
list.add(map);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("hasJj",true);
|
||||
if(i == 0 || i== 3){
|
||||
map.put("zy","项目经理简介");
|
||||
map.put("hasJj",true);
|
||||
}else{
|
||||
map.put("zy","项目经理");
|
||||
map.put("hasJj",false);
|
||||
}
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("age","13");
|
||||
map.put("xl","本科");
|
||||
map.put("zc","工程师");
|
||||
map.put("zw","职务");
|
||||
map.put("rz","项目经理");
|
||||
map.put("byxx","2007年6月毕业于三峡大学机械设计制造及其自动化专业");
|
||||
map.put("Introduction","项目经理简历表");
|
||||
List<Map<String,Object>> infoList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("time","2019.3-2020.12");
|
||||
map2.put("xm","乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
map2.put("zy","项目经理");
|
||||
map2.put("lxr","云南电网建设分公司\n" +
|
||||
"0871-63011815");
|
||||
infoList.add(map2);
|
||||
}
|
||||
List<Map<String,Object>> imgList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("width", "375.35");
|
||||
map3.put("height", "207.85");
|
||||
map3.put("index",(100 * (i + 1)) + (j + 1));
|
||||
if(j == 0){
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
}else if(j == 1){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
}else if(j == 2){
|
||||
map3.put("width", "481.15");
|
||||
map3.put("height", "634.5");
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
}
|
||||
if(i == 0 && j == 0){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
}
|
||||
imgList.add(map3);
|
||||
}
|
||||
map.put("yjTitle","项目经理业绩");
|
||||
List<Map<String,Object>> yjList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("yj","业绩" + (j + 1) + ":" + "乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
List<Map<String,Object>> imgList2 = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map4 = new HashMap<>();
|
||||
map4.put("index",(10000 * (j + 1)) + (k + 1));
|
||||
map4.put("width", "481.15");
|
||||
map4.put("height", "634.5");
|
||||
map4.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
imgList2.add(map4);
|
||||
}
|
||||
map3.put("imgList",imgList2);
|
||||
yjList.add(map3);
|
||||
}
|
||||
map.put("infoList",infoList);
|
||||
map.put("imgList",imgList);
|
||||
map.put("yjList",yjList);
|
||||
list2.add(map);
|
||||
}
|
||||
data.put("list",list);
|
||||
data.put("list2",list2);
|
||||
WordUtils.exportMillCertificateWord2(null,null, data, "test", "EPC_DOC.ftl","C:\\Users\\10488\\Desktop\\检索工具\\");
|
||||
} catch (Exception e) {
|
||||
log.error("EPC下载", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
download();
|
||||
}
|
||||
|
||||
public static String handleValue(String value){
|
||||
if(StringUtils.isBlank(value)){
|
||||
return "";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,325 +0,0 @@
|
|||
package com.bonus.tool.template;
|
||||
|
||||
import com.bonus.tool.template.util.FreeMarkerUtil;
|
||||
import com.bonus.tool.template.util.WordUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @className:Test
|
||||
* @author:cwchen
|
||||
* @date:2025-04-25-17:05
|
||||
* @version:1.0
|
||||
* @description:
|
||||
*/
|
||||
@Slf4j
|
||||
public class TestGW {
|
||||
|
||||
public static void download() {
|
||||
Map<String, Object> data = new HashMap<>(16);
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
List<Map<String, Object>> list2 = new ArrayList<>();
|
||||
List<Map<String, Object>> list3 = new ArrayList<>();
|
||||
List<Map<String, Object>> list4 = new ArrayList<>();
|
||||
List<Map<String, Object>> list5 = new ArrayList<>();
|
||||
try {
|
||||
data.put("title", "中老500千伏联网项目(老挝段)EPC总承包项目投标技术文件");
|
||||
// 近年完成的类似项目情况表
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("i", i + 1);
|
||||
map.put("proName", "博诺思测试项目" + (i + 1));
|
||||
map.put("dy", "±800kV");
|
||||
map.put("num", "");
|
||||
map.put("line", "75.95km");
|
||||
map.put("date", "2018年07月17日");
|
||||
map.put("fw", "线路施工");
|
||||
map.put("fr", "中国南方电网有限责任公司超高压输电公司");
|
||||
map.put("phone", "020-38123423");
|
||||
list.add(map);
|
||||
}
|
||||
// 近年完成的类似项目情况-材料图片
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("proName", (i + 1) + "." + "博诺思测试项目" + (i + 1));
|
||||
List<Map<String, Object>> imgList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("index", (100 * (i + 1)) + (j + 1));
|
||||
map2.put("width", "5325745");
|
||||
map2.put("height", "7534910");
|
||||
map2.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList.add(map2);
|
||||
}
|
||||
map.put("imgList", imgList);
|
||||
list2.add(map);
|
||||
}
|
||||
// 核心分包商业绩证明
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("i", i + 1);
|
||||
map.put("unit", "川东电力集团有限公司" + (i + 1));
|
||||
List<Map<String, Object>> yjList = new ArrayList<>();
|
||||
List<Map<String, Object>> zzList = new ArrayList<>();
|
||||
List<Map<String, Object>> personList = new ArrayList<>();
|
||||
List<Map<String, Object>> personImgList = new ArrayList<>();
|
||||
List<Map<String, Object>> zmImgList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("i", j + 1);
|
||||
map2.put("proName", "酒泉-湖南±800kV特高压直流输电线路工程(组塔6段)施工合同" + (j + 1));
|
||||
map2.put("unit", "安徽博诺思");
|
||||
map2.put("money", "300");
|
||||
map2.put("date", "2017年4月1日至2017年10月30日");
|
||||
map2.put("sf", "分包人");
|
||||
map2.put("bz", "");
|
||||
yjList.add(map2);
|
||||
}
|
||||
for (int j = 0; j < 4; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("index", (1000 * (i + 1)) + (j + 1));
|
||||
map2.put("width", "5325745");
|
||||
map2.put("height", "7534910");
|
||||
map2.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
zzList.add(map2);
|
||||
}
|
||||
for (int j = 0; j < 4; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("i", (j + 1));
|
||||
map2.put("name", "袁林" + (j + 1));
|
||||
map2.put("zc", "高级");
|
||||
map2.put("zf", "川1442006200805530/632527197109127012");
|
||||
map2.put("fg", "项目经理");
|
||||
map2.put("yj", "揭阳500千伏盘龙站配套220千伏线路工程(基础工程)第一标段施工专业分包、川渝特高压交流工程线路工程施工包17基础施工专业分包");
|
||||
map2.put("bz", "");
|
||||
personList.add(map2);
|
||||
}
|
||||
for (int j = 0; j < 4; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("userType", "项目经理");
|
||||
List<Map<String, Object>> imgList = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("index", (10000 * (j + 1)) + (k + 1));
|
||||
map3.put("width", "5325745");
|
||||
map3.put("height", "7534910");
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList.add(map3);
|
||||
}
|
||||
map2.put("imgList", imgList);
|
||||
personImgList.add(map2);
|
||||
}
|
||||
for (int j = 0; j < 4; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("proName", (j + 1) + "、" + "酒泉-湖南±800kV特高压直流输电线路工程(组塔6段)施工合同");
|
||||
List<Map<String, Object>> imgList = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("index", (100000 * (j + 1)) + (k + 1));
|
||||
map3.put("width", "5325745");
|
||||
map3.put("height", "7534910");
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList.add(map3);
|
||||
}
|
||||
map2.put("imgList", imgList);
|
||||
zmImgList.add(map2);
|
||||
}
|
||||
map.put("yjList", yjList);
|
||||
map.put("zzList", zzList);
|
||||
map.put("personList", personList);
|
||||
map.put("personImgList", personImgList);
|
||||
map.put("zmImgList", zmImgList);
|
||||
list3.add(map);
|
||||
}
|
||||
|
||||
// 项目人员配置情况
|
||||
for (int i = 0; i < 1; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
List<Map<String, Object>> userSettingList = new ArrayList<>();
|
||||
List<Map<String, Object>> otherUserList = new ArrayList<>();
|
||||
List<Map<String, Object>> personImgList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("i", j + 1);
|
||||
map2.put("fbbh", "");
|
||||
map2.put("name", "");
|
||||
map2.put("bh", "");
|
||||
map2.put("xmName", "杨跃龙");
|
||||
map2.put("zsmc", "一级注册建造师");
|
||||
map2.put("zch", "云1532010201168898");
|
||||
map2.put("xm", "陈忠海");
|
||||
map2.put("safety", "李永东");
|
||||
map2.put("aqy", "邓宇" +
|
||||
"彭阳春" +
|
||||
"张翔");
|
||||
map2.put("zjy", "普诚" +
|
||||
"李松阳" +
|
||||
"卢绍义");
|
||||
map2.put("zz", "汤合成");
|
||||
userSettingList.add(map2);
|
||||
}
|
||||
for (int j = 0; j < 2; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
List<Map<String, Object>> zsList = new ArrayList<>();
|
||||
map2.put("i", j + 1);
|
||||
map2.put("zw", "项目总工");
|
||||
map2.put("name", "陈忠海");
|
||||
map2.put("zc", "工程师");
|
||||
map2.put("yg", "正式职工");
|
||||
map2.put("bh", "");
|
||||
map2.put("zs", "工程师证");
|
||||
map2.put("jb", "中级");
|
||||
map2.put("zh", "CSG05202101310083");
|
||||
map2.put("zy", "电力工程技术");
|
||||
if (j == 0) {
|
||||
|
||||
} else {
|
||||
Map<String, Object> map4 = new HashMap<>();
|
||||
map4.put("zs", "助理工程师");
|
||||
map4.put("jb", "初级");
|
||||
map4.put("zh", "CSG05202101427936");
|
||||
map4.put("zy", "输配电及用电工程");
|
||||
map4.put("bh", "");
|
||||
zsList.add(map4);
|
||||
}
|
||||
map2.put("zsList", zsList);
|
||||
otherUserList.add(map2);
|
||||
}
|
||||
for (int j = 0; j < 4; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("index", (1000000 * (i + 1)) + (j + 1));
|
||||
map2.put("width", "5325745");
|
||||
map2.put("height", "7534910");
|
||||
map2.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
personImgList.add(map2);
|
||||
}
|
||||
map.put("userSettingList", userSettingList);
|
||||
map.put("otherUserList", otherUserList);
|
||||
map.put("personImgList", personImgList);
|
||||
list4.add(map);
|
||||
}
|
||||
// 项目关键人员简历及证明材料
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
List<Map<String, Object>> jlList = new ArrayList<>();
|
||||
List<Map<String, Object>> personImgList = new ArrayList<>();
|
||||
if (i == 0) {
|
||||
map.put("jlTitle", "项目经理简历及证明材料");
|
||||
map.put("userType", "项目经理");
|
||||
for (int j = 0; j < 1; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("type", "项目经理");
|
||||
map2.put("name", "杨跃龙");
|
||||
map2.put("card", "420502197612010155");
|
||||
map2.put("xl", "专科");
|
||||
map2.put("zc", "工程师");
|
||||
map2.put("zs", "一级注册建造师");
|
||||
map2.put("bh", "云1532010201168898");
|
||||
map2.put("rcdate", "2024.06");
|
||||
map2.put("tcDate", "2026.12");
|
||||
List<Map<String, Object>> yjList = new ArrayList<>();
|
||||
for (int k = 0; k < 4; k++) {
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("date", "2016.06~2017.11");
|
||||
map3.put("proName", "滇西北至广东±800kV特高压直流输电工程1标");
|
||||
map3.put("gm", "新建铁塔286基,新建线路145.55km");
|
||||
map3.put("content", "线路施工");
|
||||
map3.put("zw", "项目经理");
|
||||
yjList.add(map3);
|
||||
}
|
||||
map2.put("yjList", yjList);
|
||||
jlList.add(map2);
|
||||
}
|
||||
} else {
|
||||
map.put("jlTitle", "项目部质检员及证明材料");
|
||||
map.put("userType", "项目部质检员");
|
||||
for (int j = 0; j < 2; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("type", "项目部质检员" + "(" + (j + 1) + ")");
|
||||
map2.put("name", "杨跃龙" + (j + 1));
|
||||
map2.put("card", "420502197612010155");
|
||||
map2.put("xl", "专科");
|
||||
map2.put("zc", "工程师");
|
||||
map2.put("zs", "一级注册建造师");
|
||||
map2.put("bh", "云1532010201168898");
|
||||
map2.put("rcdate", "2024.06");
|
||||
map2.put("tcDate", "2026.12");
|
||||
List<Map<String, Object>> yjList = new ArrayList<>();
|
||||
for (int k = 0; k < 4; k++) {
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("date", "2016.06~2017.11");
|
||||
map3.put("proName", "滇西北至广东±800kV特高压直流输电工程1标");
|
||||
map3.put("gm", "新建铁塔286基,新建线路145.55km");
|
||||
map3.put("content", "线路施工");
|
||||
map3.put("zw", "项目经理");
|
||||
yjList.add(map3);
|
||||
}
|
||||
map2.put("yjList", yjList);
|
||||
jlList.add(map2);
|
||||
}
|
||||
}
|
||||
if (i == 0) {
|
||||
for (int j = 0; j < 1; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("zmcl", "");
|
||||
List<Map<String, Object>> imgList = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("index", (1000000 * (j + 1)) + (k + 1));
|
||||
map3.put("width", "5325745");
|
||||
map3.put("height", "7534910");
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList.add(map3);
|
||||
}
|
||||
map2.put("imgList", imgList);
|
||||
personImgList.add(map2);
|
||||
}
|
||||
} else {
|
||||
for (int j = 0; j < 2; j++) {
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("zmcl", "项目部安全员(" + (j + 1) + ")(邓宇)证明材料");
|
||||
List<Map<String, Object>> imgList = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("index", (1000000 * (j + 1)) + (k + 1));
|
||||
map3.put("width", "5325745");
|
||||
map3.put("height", "7534910");
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList.add(map3);
|
||||
}
|
||||
map2.put("imgList", imgList);
|
||||
personImgList.add(map2);
|
||||
}
|
||||
}
|
||||
map.put("jlList", jlList);
|
||||
map.put("personImgList", personImgList);
|
||||
list5.add(map);
|
||||
}
|
||||
data.put("tbr", "云南送变电工程有限公司");
|
||||
data.put("list", list);
|
||||
data.put("list2", list2);
|
||||
data.put("list3", list3);
|
||||
data.put("list4", list4);
|
||||
data.put("list5", list5);
|
||||
WordUtils.exportMillCertificateWord2(null, null, data, "test", "GW.ftl", "C:\\Users\\10488\\Desktop\\test (2)\\");
|
||||
} catch (Exception e) {
|
||||
log.error("GW下载", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
download();
|
||||
}
|
||||
|
||||
public static String handleValue(String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return "";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
@ -187,23 +187,6 @@ public class TestGWDOC {
|
|||
list10.add(map);
|
||||
}
|
||||
|
||||
// 项目经理业绩证明
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
List<Map<String, Object>> imgList = new ArrayList<>(); // 项目合同关键页图片
|
||||
map.put("proName", "广东500kv 粤东中南通道改造工程施工(惠州段标段二)" + (i + 1)); // 项目名称
|
||||
for (int j = 0; j < 1; j++) {
|
||||
Map<String, Object> imgMap = new HashMap<>();
|
||||
imgMap.put("index", IdUtils.fastSimpleUUID());
|
||||
imgMap.put("width", "481.15");
|
||||
imgMap.put("height", "634.5");
|
||||
imgMap.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
imgList.add(imgMap);
|
||||
}
|
||||
map.put("imgList",imgList);
|
||||
list10.add(map);
|
||||
}
|
||||
|
||||
// 投入本项目主要项目团队(施工团队)一览表
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
|
|
|
|||
|
|
@ -1,133 +0,0 @@
|
|||
package com.bonus.tool.template;
|
||||
|
||||
import com.bonus.tool.template.util.FreeMarkerUtil;
|
||||
import com.bonus.tool.template.util.WordUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @className:Test
|
||||
* @author:cwchen
|
||||
* @date:2025-04-25-17:05
|
||||
* @version:1.0
|
||||
* @description:
|
||||
*/
|
||||
@Slf4j
|
||||
public class TestNW {
|
||||
|
||||
public static void download() {
|
||||
Map<String, Object> data = new HashMap<>(16);
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
List<Map<String, Object>> list2 = new ArrayList<>();
|
||||
String fileName = null;
|
||||
try {
|
||||
data.put("title","中老500千伏联网项目(老挝段)EPC总承包项目投标技术文件");
|
||||
data.put("Introduction","项目经理、设计负责人、采购负责人、施工负责人、商务负责人等主要负责人");
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("i",i + 1);
|
||||
map.put("zw","项目经理");
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("zc","工程师");
|
||||
map.put("zsmc","建造师证");
|
||||
map.put("level","一级");
|
||||
map.put("zh","云1532016201673770");
|
||||
map.put("zy","机电工程");
|
||||
map.put("ylbx","正常");
|
||||
map.put("bz","");
|
||||
list.add(map);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("hasJj",true);
|
||||
if(i == 0 || i== 3){
|
||||
map.put("zy","项目经理简介");
|
||||
map.put("hasJj",true);
|
||||
}else{
|
||||
map.put("zy","项目经理");
|
||||
map.put("hasJj",false);
|
||||
}
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("age","13");
|
||||
map.put("xl","本科");
|
||||
map.put("zc","工程师");
|
||||
map.put("zw","职务");
|
||||
map.put("rz","项目经理");
|
||||
map.put("byxx","2007年6月毕业于三峡大学机械设计制造及其自动化专业");
|
||||
map.put("Introduction","项目经理简历表");
|
||||
List<Map<String,Object>> infoList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("time","2019.3-2020.12");
|
||||
map2.put("xm","乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
map2.put("zy","项目经理");
|
||||
map2.put("lxr","云南电网建设分公司\n" +
|
||||
"0871-63011815");
|
||||
infoList.add(map2);
|
||||
}
|
||||
List<Map<String,Object>> imgList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("width","4959860");
|
||||
map3.put("height","3492375");
|
||||
map3.put("index",(100 * (i + 1)) + (j + 1));
|
||||
if(j == 0){
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片3.png"));
|
||||
}else if(j == 1){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片4.png"));
|
||||
}else if(j == 2){
|
||||
map3.put("width","5325745");
|
||||
map3.put("height","7534910");
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
}
|
||||
if(i == 0 && j == 0){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
}
|
||||
imgList.add(map3);
|
||||
}
|
||||
map.put("yjTitle","项目经理业绩");
|
||||
List<Map<String,Object>> yjList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("yj","业绩" + (j + 1) + ":" + "乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
List<Map<String,Object>> imgList2 = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map4 = new HashMap<>();
|
||||
map4.put("index",(10000 * (j + 1)) + (k + 1));
|
||||
map4.put("width","5325745");
|
||||
map4.put("height","7534910");
|
||||
map4.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList2.add(map4);
|
||||
}
|
||||
map3.put("imgList",imgList2);
|
||||
yjList.add(map3);
|
||||
}
|
||||
map.put("infoList",infoList);
|
||||
map.put("imgList",imgList);
|
||||
map.put("yjList",yjList);
|
||||
list2.add(map);
|
||||
}
|
||||
data.put("list",list);
|
||||
data.put("list2",list2);
|
||||
WordUtils.exportMillCertificateWord2(null,null, data, "test", "NW.ftl","C:\\Users\\10488\\Desktop\\test (2)\\");
|
||||
} catch (Exception e) {
|
||||
log.error("NW下载", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
download();
|
||||
}
|
||||
|
||||
public static String handleValue(String value){
|
||||
if(StringUtils.isBlank(value)){
|
||||
return "";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,134 +0,0 @@
|
|||
package com.bonus.tool.template;
|
||||
|
||||
import com.bonus.tool.template.util.FreeMarkerUtil;
|
||||
import com.bonus.tool.template.util.WordUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @className:Test
|
||||
* @author:cwchen
|
||||
* @date:2025-04-25-17:05
|
||||
* @version:1.0
|
||||
* @description:
|
||||
*/
|
||||
@Slf4j
|
||||
public class TestNWDOC {
|
||||
|
||||
public static void download() {
|
||||
Map<String, Object> data = new HashMap<>(16);
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
List<Map<String, Object>> list2 = new ArrayList<>();
|
||||
String fileName = null;
|
||||
try {
|
||||
data.put("title","中老500千伏联网项目(老挝段)EPC总承包项目投标技术文件");
|
||||
data.put("Introduction","项目经理、设计负责人、采购负责人、施工负责人、商务负责人等主要负责人");
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("i",i + 1);
|
||||
map.put("zw","项目经理");
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("zc","工程师");
|
||||
map.put("zsmc","建造师证");
|
||||
map.put("level","一级");
|
||||
map.put("zh","云1532016201673770");
|
||||
map.put("zy","机电工程");
|
||||
map.put("ylbx","正常");
|
||||
map.put("bz","");
|
||||
list.add(map);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("hasJj",true);
|
||||
if(i == 0 || i== 3){
|
||||
map.put("zy","项目经理简介");
|
||||
map.put("hasJj",true);
|
||||
}else{
|
||||
map.put("zy","项目经理");
|
||||
map.put("hasJj",false);
|
||||
}
|
||||
map.put("name","王杰" + (i + 1));
|
||||
map.put("age","13");
|
||||
map.put("xl","本科");
|
||||
map.put("zc","工程师");
|
||||
map.put("zw","职务");
|
||||
map.put("rz","项目经理");
|
||||
map.put("byxx","2007年6月毕业于三峡大学机械设计制造及其自动化专业");
|
||||
map.put("Introduction","项目经理简历表");
|
||||
List<Map<String,Object>> infoList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put("time","2019.3-2020.12");
|
||||
map2.put("xm","乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
map2.put("zy","项目经理");
|
||||
map2.put("lxr","云南电网建设分公司\n" +
|
||||
"0871-63011815");
|
||||
infoList.add(map2);
|
||||
}
|
||||
List<Map<String,Object>> imgList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("width", "375.35");
|
||||
map3.put("height", "207.85");
|
||||
|
||||
map3.put("index",(100 * (i + 1)) + (j + 1));
|
||||
if(j == 0){
|
||||
map3.put("base64Url", FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片3.png"));
|
||||
}else if(j == 1){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片4.png"));
|
||||
}else if(j == 2){
|
||||
map3.put("width", "481.15");
|
||||
map3.put("height", "634.5");
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
}
|
||||
if(i == 0 && j == 0){
|
||||
map3.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\1.png"));
|
||||
}
|
||||
imgList.add(map3);
|
||||
}
|
||||
map.put("yjTitle","项目经理业绩");
|
||||
List<Map<String,Object>> yjList = new ArrayList<>();
|
||||
for (int j = 0; j < 3; j++){
|
||||
Map<String, Object> map3 = new HashMap<>();
|
||||
map3.put("yj","业绩" + (j + 1) + ":" + "乌东德电站送电广东广西输电工程送端电网侧交流配套工程-龙开口、鲁地拉电站改接入丽山换流站线路工程(三标段)");
|
||||
List<Map<String,Object>> imgList2 = new ArrayList<>();
|
||||
for (int k = 0; k < 3; k++) {
|
||||
Map<String, Object> map4 = new HashMap<>();
|
||||
map4.put("index",(10000 * (j + 1)) + (k + 1));
|
||||
map4.put("width", "481.15");
|
||||
map4.put("height", "634.5");
|
||||
map4.put("base64Url",FreeMarkerUtil.getImageBase("C:\\Users\\10488\\Desktop\\图片5.png"));
|
||||
imgList2.add(map4);
|
||||
}
|
||||
map3.put("imgList",imgList2);
|
||||
yjList.add(map3);
|
||||
}
|
||||
map.put("infoList",infoList);
|
||||
map.put("imgList",imgList);
|
||||
map.put("yjList",yjList);
|
||||
list2.add(map);
|
||||
}
|
||||
data.put("list",list);
|
||||
data.put("list2",list2);
|
||||
WordUtils.exportMillCertificateWord2(null,null, data, "test", "NW_DOC.ftl","C:\\Users\\10488\\Desktop\\test (2)\\");
|
||||
} catch (Exception e) {
|
||||
log.error("NW下载", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
download();
|
||||
}
|
||||
|
||||
public static String handleValue(String value){
|
||||
if(StringUtils.isBlank(value)){
|
||||
return "";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
@ -161,18 +161,32 @@
|
|||
and id = #{id}
|
||||
</select>
|
||||
<select id="selectComPerfList" resultType="com.bonus.tool.dto.ComPerformanceBean">
|
||||
SELECT id,
|
||||
tgpr.perf_id,
|
||||
pro_name,
|
||||
voltage,
|
||||
station_num,
|
||||
line_scale,
|
||||
stop_time,
|
||||
contract_rang,
|
||||
owner_unit,
|
||||
owner_phone
|
||||
FROM tb_gw_perf_rel tgpr
|
||||
LEFT JOIN tb_company_perf tcp ON tgpr.perf_id = tcp.id
|
||||
SELECT
|
||||
tcp.id,
|
||||
tgpr.perf_id,
|
||||
tcp.pro_name,
|
||||
tcp.voltage,
|
||||
tcp.station_num,
|
||||
tcp.line_scale,
|
||||
tcp.start_time,
|
||||
tcp.stop_time,
|
||||
tcp.contract_rang,
|
||||
tcp.owner_unit,
|
||||
tcp.owner_phone,
|
||||
tkp.`user_name` as managerName,
|
||||
tcp.project_location,
|
||||
tcp.owner_location,
|
||||
tcp.money,
|
||||
tcp.engineering_quality,
|
||||
tcp.technical_lead,
|
||||
tcp.supervising_engineer,
|
||||
tcp.project_situation,
|
||||
tcp.remark
|
||||
FROM
|
||||
tb_gw_perf_rel tgpr
|
||||
LEFT JOIN tb_company_perf tcp ON tgpr.perf_id = tcp.id
|
||||
LEFT JOIN ( SELECT * FROM tb_company_perf_rel WHERE title = '项目经理' AND source = 1 GROUP BY perf_id ) tcpr ON tcpr.perf_id = tcp.id
|
||||
LEFT JOIN tb_key_people tkp ON tcpr.key_user = tkp.id
|
||||
WHERE tgpr.gw_id = #{id}
|
||||
</select>
|
||||
<select id="selectComCoreList" resultType="com.bonus.tool.dto.ComCorePersonBean">
|
||||
|
|
@ -187,8 +201,13 @@
|
|||
tgku.position as post_name,
|
||||
tgku.in_time as ein_date,
|
||||
tgku.out_time as exit_date,
|
||||
tkp.age,
|
||||
tkp.major,
|
||||
tkp.level,
|
||||
tkp.alma_mater,
|
||||
tgku.perf_id,
|
||||
tgku.pro_perf
|
||||
tgku.pro_perf,
|
||||
tkp.user_phone
|
||||
FROM tb_gw_key_user tgku
|
||||
LEFT JOIN tb_key_people tkp ON tgku.key_id = tkp.id
|
||||
WHERE tgku.gw_id = #{id}
|
||||
|
|
|
|||
|
|
@ -29,5 +29,11 @@
|
|||
select id,table_name as tableName,table_id as tableId,diploma as diploma,diploma_num as diplomaNum,
|
||||
level as level
|
||||
from tb_certification where del_flag=0 and table_name = #{tableName} and table_id = #{tableId}
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN diploma IN ( '注册建造师', '项目经理B证' ) THEN
|
||||
0 ELSE 1
|
||||
END,
|
||||
FIELD( diploma, '注册建造师', '项目经理B证' );
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -118,7 +118,8 @@
|
|||
tcp.owner_unit,
|
||||
tcp.owner_phone,
|
||||
tcp.voltage,
|
||||
tcpr.id as perfId
|
||||
tcpr.id as perfId,
|
||||
tcpr.work_content
|
||||
FROM
|
||||
tb_key_people tkp
|
||||
LEFT JOIN tb_company_perf_rel tcpr ON tcpr.key_user = tkp.id and tcpr.source = '1'
|
||||
|
|
|
|||
Loading…
Reference in New Issue