Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
马三炮 2025-05-08 14:53:34 +08:00
commit a3f3eb584c
4 changed files with 193 additions and 33 deletions

View File

@ -170,7 +170,7 @@ public class EpcServiceImpl implements EpcService {
//1.2公司核心人员文件
data.getComCoreList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comCoreList = stateGridMapper.getFileSourceList(item.getId(),TableType.TB_KEY_PEOPLE.getCode());
List<TbFileSourceVo> comCoreList = stateGridMapper.getFileSourceList(Long.parseLong(item.getUserId()),TableType.TB_KEY_PEOPLE.getCode());
personFileGroup(item, comCoreList);
//获取人员业绩
TbCompanyPerfVo tbCompanyPerfVo = new TbCompanyPerfVo();
@ -186,14 +186,14 @@ public class EpcServiceImpl implements EpcService {
//1.3公司其他人员文件
data.getComOtherList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getId(),TableType.TB_OTHER_PEOPLE.getCode());
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getUserId(),TableType.TB_OTHER_PEOPLE.getCode());
personFileGroup(item, comOtherList);
});
//2.2拟派人员材料
data.getSubPersonList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getId(),TableType.TB_SUB_PEOPLE.getCode());
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getUserId(),TableType.TB_SUB_PEOPLE.getCode());
personFileGroup(item, comOtherList);
});
//将数据转换为模版数据
@ -299,7 +299,7 @@ public class EpcServiceImpl implements EpcService {
List<Map<String, Object>> infoList = new ArrayList<>();
if (item.getPeoplePerfList() != null && !item.getPeoplePerfList().isEmpty()) {
for (int j = 0; j < item.getPeoplePerfList().size(); j++) {
TbCompanyPerfVo tbCompanyPerfVo = item.getPeoplePerfList().get(i);
TbCompanyPerfVo tbCompanyPerfVo = item.getPeoplePerfList().get(j);
Map<String, Object> expMap = new HashMap<>();
expMap.put("time", tbCompanyPerfVo.getStartTime()+""+tbCompanyPerfVo.getEndTime());
expMap.put("xm", tbCompanyPerfVo.getProName());

View File

@ -173,7 +173,7 @@ public class SouthServiceImpl implements SouthService {
//1.2公司核心人员文件
data.getComCoreList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comCoreList = stateGridMapper.getFileSourceList(item.getId(), TableType.TB_KEY_PEOPLE.getCode());
List<TbFileSourceVo> comCoreList = stateGridMapper.getFileSourceList(Long.parseLong(item.getUserId()), TableType.TB_KEY_PEOPLE.getCode());
personFileGroup(item, comCoreList);
//获取人员业绩
TbCompanyPerfVo tbCompanyPerfVo = new TbCompanyPerfVo();
@ -189,14 +189,14 @@ public class SouthServiceImpl implements SouthService {
//1.3公司其他人员文件
data.getComOtherList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getId(),TableType.TB_OTHER_PEOPLE.getCode());
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getUserId(),TableType.TB_OTHER_PEOPLE.getCode());
personFileGroup(item, comOtherList);
});
//2.2拟派人员材料
data.getSubPersonList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getId(),TableType.TB_SUB_PEOPLE.getCode());
List<TbFileSourceVo> comOtherList = stateGridMapper.getFileSourceList(item.getUserId(),TableType.TB_SUB_PEOPLE.getCode());
personFileGroup(item, comOtherList);
});
epcServiceImpl.dealWithWordData(request, response, data, "NW_DOC.ftl");

View File

@ -9,6 +9,7 @@ import com.bonus.tool.mapper.StateGridMapper;
import com.bonus.tool.mapper.TbCompanyPerfMapper;
import com.bonus.tool.service.StateGridService;
import com.bonus.tool.template.util.FreeMarkerUtil;
import com.bonus.tool.template.util.SnowflakeIdWorker;
import com.bonus.tool.template.util.WordUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.SmartInitializingSingleton;
@ -35,6 +36,8 @@ public class StateGridServiceImpl implements StateGridService {
@Resource
private TbCompanyPerfMapper tbCompanyPerfMapper;
SnowflakeIdWorker idWorker = new SnowflakeIdWorker(1, 1);
/**
* 国网模版列表查询
*
@ -216,7 +219,7 @@ public class StateGridServiceImpl implements StateGridService {
//1.2公司核心人员文件
data.getComCoreList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comCoreList = getFileSourceList(item.getId(),TableType.TB_KEY_PEOPLE.getCode());
List<TbFileSourceVo> comCoreList = getFileSourceList(Long.parseLong(item.getUserId()),TableType.TB_KEY_PEOPLE.getCode());
personFileGroup(item, comCoreList);
//获取人员业绩
TbCompanyPerfVo tbCompanyPerfVo = new TbCompanyPerfVo();
@ -234,7 +237,7 @@ public class StateGridServiceImpl implements StateGridService {
//1.3公司其他人员文件
data.getComOtherList().forEach(item -> {
//获取附件信息
List<TbFileSourceVo> comOtherList = getFileSourceList(item.getId(),TableType.TB_OTHER_PEOPLE.getCode());
List<TbFileSourceVo> comOtherList = getFileSourceList(item.getUserId(),TableType.TB_OTHER_PEOPLE.getCode());
personFileGroup(item, comOtherList);
});
@ -253,7 +256,7 @@ public class StateGridServiceImpl implements StateGridService {
//2.2拟派人员材料
item.getSubPersonList().forEach(personItem -> {
//获取附件信息
List<TbFileSourceVo> comOtherList = getFileSourceList(personItem.getId(),TableType.TB_SUB_PEOPLE.getCode());
List<TbFileSourceVo> comOtherList = getFileSourceList(personItem.getUserId(),TableType.TB_SUB_PEOPLE.getCode());
personFileGroup(personItem, comOtherList);
});
@ -338,10 +341,10 @@ public class StateGridServiceImpl implements StateGridService {
List<Map<String, Object>> zmImgList = new ArrayList<>();
// 处理分包商业绩
if (item.getSubPerfList() != null && !item.getSubPerfList().isEmpty()) {
int perfIndex = 1;
int perfIndex = 0;
for (SubPerformanceBean perfItem : item.getSubPerfList()) {
Map<String, Object> perfMap = new HashMap<>();
perfMap.put("i", perfIndex++);
perfMap.put("i", ++perfIndex);
perfMap.put("proName", perfItem.getProName() != null ? perfItem.getProName() : "");
perfMap.put("unit", perfItem.getConsUnit() != null ? perfItem.getConsUnit() : "");
perfMap.put("money", perfItem.getMoney() != null ? perfItem.getMoney().toString() : "");
@ -358,20 +361,20 @@ public class StateGridServiceImpl implements StateGridService {
yjList.add(perfMap);
// 处理业绩证明材料图片
if (perfItem.getSubPerfFileList() != null && !perfItem.getSubPerfFileList().isEmpty()) {
Map<String, Object> zmMap = new HashMap<>();
zmMap.put("proName", perfIndex + "" + perfItem.getProName());
Map<String, Object> map2 = new HashMap<>();
map2.put("proName", perfIndex + "" + perfItem.getProName());
List<Map<String, Object>> imgList = new ArrayList<>();
int imgIndex = 1;
for (TbFileSourceVo file : perfItem.getSubPerfFileList()) {
Map<String, Object> imgMap = new HashMap<>();
imgMap.put("index", 100000 * perfIndex + imgIndex++);
imgMap.put("width", "481.15");
imgMap.put("height", "634.5");
imgMap.put("base64Url", file.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+file.getFilePath()) : "");
imgList.add(imgMap);
Map<String, Object> map3 = new HashMap<>();
map3.put("index", idWorker.nextId());
map3.put("width", "481.15");
map3.put("height", "634.5");
System.err.println("处理业绩证明材料图片:"+filePath+file.getFilePath());
map3.put("base64Url", file.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+file.getFilePath()) : "");
imgList.add(map3);
}
zmMap.put("imgList", imgList);
zmImgList.add(zmMap);
map2.put("imgList", imgList);
zmImgList.add(map2);
}
}
}
@ -389,6 +392,7 @@ public class StateGridServiceImpl implements StateGridService {
}
// 处理分包商拟派人员
if (item.getSubPersonList() != null && !item.getSubPersonList().isEmpty()) {
//先处理人员
int personIndex = 1;
for (SubOtherPeopleBean personItem : item.getSubPersonList()) {
Map<String, Object> personMap = new HashMap<>();
@ -443,6 +447,49 @@ public class StateGridServiceImpl implements StateGridService {
personImgList.add(personImgMap);
}
}
//再循环图片
for (SubOtherPeopleBean personItem : item.getSubPersonList()) {
// 处理拟派人员证件图片
Map<String, Object> personImgMap = new HashMap<>();
personImgMap.put("userType", personItem.getPostName() != null ? personItem.getPostName() : "");
List<Map<String, Object>> imgList = new ArrayList<>();
Map<String, Object> imgMap = new HashMap<>();
// 处理身份证
if (personItem.getIdCardFileList() != null && !personItem.getIdCardFileList().isEmpty()) {
for (TbFileSourceVo file : personItem.getIdCardFileList()) {
imgMap.put("index", idWorker.nextId());
imgMap.put("width", "375.35");
imgMap.put("height", "207.85");
imgMap.put("base64Url", file.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+file.getFilePath()) : "");
imgList.add(imgMap);
}
}
// 处理资格证书
if (personItem.getDiplomaFileList() != null && !personItem.getDiplomaFileList().isEmpty()) {
for (TbFileSourceVo file : personItem.getDiplomaFileList()) {
imgMap.put("index", idWorker.nextId());
imgMap.put("width", "481.15");
imgMap.put("height", "634.5");
imgMap.put("base64Url", file.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+file.getFilePath()) : "");
imgList.add(imgMap);
}
}
// 处理其他资质
if (personItem.getOtherFileList() != null && !personItem.getOtherFileList().isEmpty()) {
for (TbFileSourceVo file : personItem.getOtherFileList()) {
imgMap.put("index", idWorker.nextId());
imgMap.put("width", "481.15");
imgMap.put("height", "634.5");
imgMap.put("base64Url", file.getFilePath() != null ? FreeMarkerUtil.getImageBase(filePath+file.getFilePath()) : "");
imgList.add(imgMap);
}
}
if (!imgList.isEmpty()) {
personImgMap.put("imgList", imgList);
personImgList.add(personImgMap);
}
}
}
subMap.put("yjList", yjList);
subMap.put("zzList", zzList);
@ -457,7 +504,6 @@ public class StateGridServiceImpl implements StateGridService {
List<Map<String, Object>> otherUserList = new ArrayList<>();
List<Map<String, Object>> userSettingList = new ArrayList<>();
List<Map<String, Object>> personImgList = new ArrayList<>();
if (tbData.getComOtherList() != null && !tbData.getComOtherList().isEmpty()) {
int otherIndex = 1;
for (ComOtherPersonBean item : tbData.getComOtherList()) {
@ -473,15 +519,15 @@ public class StateGridServiceImpl implements StateGridService {
otherMap.put("bh", "");
// 处理证书列表
List<Map<String, Object>> zsList = new ArrayList<>();
// if (item.getDiploma() != null || item.getDiplomaNum() != null || item.getMajor() != null || item.getLevel() != null) {
// Map<String, Object> zsMap = new HashMap<>();
// zsMap.put("zs", item.getDiploma() != null ? item.getDiploma() : "");
// zsMap.put("jb", item.getLevel() != null ? item.getLevel() : "");
// zsMap.put("zh", item.getDiplomaNum() != null ? item.getDiplomaNum() : "");
// zsMap.put("zy", item.getMajor() != null ? item.getMajor() : "");
// zsMap.put("bh", "");
// zsList.add(zsMap);
// }
if (item.getDiploma() != null || item.getDiplomaNum() != null || item.getMajor() != null || item.getLevel() != null) {
Map<String, Object> zsMap = new HashMap<>();
zsMap.put("zs", item.getDiploma() != null ? item.getDiploma() : "");
zsMap.put("jb", item.getLevel() != null ? item.getLevel() : "");
zsMap.put("zh", item.getDiplomaNum() != null ? item.getDiplomaNum() : "");
zsMap.put("zy", item.getMajor() != null ? item.getMajor() : "");
zsMap.put("bh", "");
zsList.add(zsMap);
}
otherMap.put("zsList", zsList);
otherUserList.add(otherMap);
// 处理人员证件图片

View File

@ -0,0 +1,114 @@
package com.bonus.tool.template.util;
public class SnowflakeIdWorker {
// 开始时间截 (UTC 2025-01-01)
private final long twepoch = 1704268800000L;
// 机器id所占的位数
private final long workerIdBits = 5L;
// 数据标识id所占的位数
private final long datacenterIdBits = 5L;
// 支持的最大机器id结果是31 (这个值不包含id为0的情况)
private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
// 支持的最大数据标识id结果是31
private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
// 序列在id中占的位数
private final long sequenceBits = 12L;
// 机器ID向左移12位
private final long workerIdShift = sequenceBits;
// 数据标识id向左移17位(12+5)
private final long datacenterIdShift = sequenceBits + workerIdBits;
// 时间截向左移22位(12+5+5)
private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
// 生成序列的掩码这里为4095 (0b111111111111=4095)
private final long sequenceMask = -1L ^ (-1L << sequenceBits);
// 工作机器ID(0~31)
private long workerId;
// 数据中心ID(0~31)
private long datacenterId;
// 毫秒内序列(0~4095)
private long sequence = 0L;
// 上次生成ID的时间截
private long lastTimestamp = -1L;
// 构造函数
public SnowflakeIdWorker(long workerId, long datacenterId) {
if (workerId > maxWorkerId || workerId < 0) {
throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
}
if (datacenterId > maxDatacenterId || datacenterId < 0) {
throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
}
this.workerId = workerId;
this.datacenterId = datacenterId;
}
// 获得下一个ID (该方法是线程安全的)
public synchronized long nextId() {
long timestamp = timeGen();
// 如果当前时间小于上一次ID生成的时间戳说明系统时钟回退过这个时候应当抛出异常
if (timestamp < lastTimestamp) {
throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
}
// 如果是同一时间生成的则进行毫秒内序列
if (lastTimestamp == timestamp) {
sequence = (sequence + 1) & sequenceMask;
// 毫秒内序列溢出
if (sequence == 0) {
// 阻塞到下一个毫秒,获得新的时间戳
timestamp = tilNextMillis(lastTimestamp);
}
}
// 时间戳改变毫秒内序列重置
else {
sequence = 0L;
}
// 上次生成ID的时间截
lastTimestamp = timestamp;
// 移位并通过或运算拼到一起组成64位的ID
return ((timestamp - twepoch) << timestampLeftShift)
| (datacenterId << datacenterIdShift)
| (workerId << workerIdShift)
| sequence;
}
// 阻塞到下一个毫秒直到获得新的时间戳
protected long tilNextMillis(long lastTimestamp) {
long timestamp = timeGen();
while (timestamp <= lastTimestamp) {
timestamp = timeGen();
}
return timestamp;
}
// 返回以毫秒为单位的当前时间
protected long timeGen() {
return System.currentTimeMillis();
}
public static void main(String[] args) {
SnowflakeIdWorker idWorker = new SnowflakeIdWorker(1, 1);
for (int i = 0; i < 10; i++) {
long id = idWorker.nextId();
System.out.println(Long.toBinaryString(id));
System.out.println(id);
}
}
}