Commit da30d821 authored by chenzhao's avatar chenzhao

ziliaoxiazai bug

parent e17cb6ea
......@@ -52,6 +52,16 @@ public enum CommonEnum {
非自然人("非自然人","fzrr","商务类型"),
宅基地农户屋顶("宅基地农户屋顶","zjdnhw","法务类型"),
法人私有的宅基地建筑屋顶("法人私有的宅基地建筑屋顶","frsydzjd","法务类型"),
单晶("单晶","danjing","组件类型"),
多晶("多晶","duojing","组件类型"),
不限("不限","bx","逆变器系列"),
全额上网("全额上网","qesw","上网模式"),
余电上网("余电上网","ydsw","上网模式"),
单相("单相","dx","相位"),
三相("三相","ydsw","相位"),
SMC("SMC","smc","材质"),
不锈钢("不锈钢","bxg","材质"),
钢板喷塑("钢板喷塑","gbps","材质"),
其他("其他","other","公用");
/**
......
......@@ -92,7 +92,8 @@ public class SurveyInformationDto extends BaseDto {
@ApiModelProperty(value = "项目地址")
private String projectAddressName;
@ApiModelProperty(value = "常住地址")
private String permanentAddressName;
@ApiModelProperty(value = "常住地址code")
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<Integer> permanentAddress;
......
......@@ -46,15 +46,15 @@ public class CommonController {
@GetMapping(value = "/downInformation")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "资料下载", notes = "资料下载")
public ResponseModel downList(HttpServletResponse response, @RequestParam(required = false) String surveyInformationId,
public void downList(HttpServletResponse response, @RequestParam(required = false) String surveyInformationId,
@RequestParam(required = false)List<String> peasantHouseholdIds,
@RequestParam(required = false)String processInstanceId) throws IOException {
// 设置响应头
response.setContentType("application/zip");
commonService.downZiliao(surveyInformationId,peasantHouseholdIds,processInstanceId,response);
return CommonResponseNewUtil.success();
commonService.downZiliao(surveyInformationId,peasantHouseholdIds,processInstanceId,response);
}
......
......@@ -100,12 +100,16 @@ public class CommonServiceImpl {
@Autowired
ConstructionRecordsMapper constructionRecordsMapper;
@Autowired
ConstructionGirdRecordsMapper constructionGirdRecordsMapper;
@Autowired
ConstructionAcceptanceRecordsMapper constructionAcceptanceRecordsMapper;
@Autowired
FinancingAuditingMapper financingAuditingMapper;
private static final String TEMP_DIR_NAME = "temp";
private static final String TEMPLATE_FILE_PATH = "templates/informationTemp.xlsx"; // 模版文件路径
private ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
private ExecutorService executorService = Executors.newFixedThreadPool(10); // 创建固定大小的线程池
private ExecutorService executorService = Executors.newFixedThreadPool(30); // 创建固定大小的线程池
public String getRouthPath(String type,Object model) {
List<Map> urlList = JsonUtils.getResourceList(urlInfo);
String routhPath="";
......@@ -518,21 +522,20 @@ public class CommonServiceImpl {
redisUtils.set(peasantHouseholdId, MapBuilder.<String, Object>create()
.put("value", current).build());
String powerStationInstanceId = powerStationMapper.getInstanceIdByhouseId(peasantHouseholdId);
String workOrderStationInstanceId = workOrderStationAuditingMapper.getInstanceIdByhouseId(peasantHouseholdId);
String basicGridInstanceId = basicGridAuditingMapper.getInstanceIdByhouseId(peasantHouseholdId);
String financingInstanceId = financingAuditingMapper.getInstanceIdByhouseId(peasantHouseholdId);
List<LinkedHashMap> powerStationWorkLog = new ArrayList<>();
List<ConstructionRecords> workOrderStationWorkLog = new ArrayList<>();
List<LinkedHashMap> basicGridWorkLog = new ArrayList<>();
List<ConstructionGirdRecords> basicGridWorkLog = new ArrayList<>();
List<LinkedHashMap> financingWorkLog = new ArrayList<>();
List<LinkedHashMap> accptWorkLog = new ArrayList<>();
List<ConstructionAcceptanceRecords> accptWorkLog = new ArrayList<>();
workOrderStationWorkLog = this.getConstructionRecords(peasantHouseholdId);
accptWorkLog = this.getConstructionRecordsAcc(peasantHouseholdId);
basicGridWorkLog = this.getConstructionRecordsBasic(peasantHouseholdId);
try {
powerStationWorkLog = this.getWorkLog(powerStationInstanceId);
basicGridWorkLog = this.getWorkLog(basicGridInstanceId);
financingWorkLog = this.getWorkLog(financingInstanceId);
accptWorkLog = this.getWorkLog(returnDto.getAcceptanceCheck().getInstanceId());
}catch (Exception e){
e.printStackTrace();
......@@ -781,14 +784,22 @@ public class CommonServiceImpl {
redisUtils.set(redisKey, MapBuilder.<String, Object>create()
.put("value", 100).build());
String encodedFilename = "";
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
if (peasantHouseholdIds.size() > 1){
fileName = "批量资料";
encodedFilename = URLEncoder.encode( "批量资料.zip", StandardCharsets.UTF_8.name());
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName+".zip", "UTF-8"));
createZipFile(ziLiaoDir, fileName,response);
}else {
encodedFilename = URLEncoder.encode( fileName+".zip", StandardCharsets.UTF_8.name());
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName+".zip", "UTF-8"));
createZipFile(ziLiaoDir, "批量资料/"+fileName,response);
}
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename*=UTF-8''" + encodedFilename);
createZipFile(ziLiaoDir, "批量资料/"+fileName,response);
// response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename*=UTF-8''" + encodedFilename);
cleanup(ziLiaoDir);
}
......@@ -823,7 +834,7 @@ public class CommonServiceImpl {
// 假设表头内容如下:
String headerOne = "组件";
String[] headersNames = {"物联编码", "物料名称", "电池片规格", "功率", "类型", "边框", "总功率", "单/双面", "配置数量", "金额"};
String[] headersNames = {"物联编码", "物料名称", "电池片规格", "功率", "类型", "边框", "总功率(W)", "单/双面", "配置数量(块)", "金额(元)"};
String[] headers = {"wlbm", "wlmc", "dcpgg", "gl", "lx", "bk", "zgl", "dsm", "pzsl", "price"};
documentSpecialProcessing(sheet,headerRow,headerOneRow,dataStartRow,headersNames,headers,headerOne,maps);
......@@ -837,7 +848,7 @@ public class CommonServiceImpl {
startRowNum= dataStartRow +2+maps.size();
// 假设表头内容如下:
String headerOne = "逆变器";
String[] headersNames = {"物联编码", "物料名称", "功率", "系列", "相位", "配置数量", "金额"};
String[] headersNames = {"物联编码", "物料名称", "功率", "系列", "相位", "配置数量(块)", "金额(元)"};
String[] headers = {"wlbm", "wlmc", "gl", "xl", "xw", "pzsl", "price"};
documentSpecialProcessing(sheet,headerRow,headerOneRow,dataStartRow,headersNames,headers,headerOne,maps);
}
......@@ -849,7 +860,7 @@ public class CommonServiceImpl {
startRowNum= dataStartRow +2+maps.size();
// 假设表头内容如下:
String headerOne = "并网箱";
String[] headersNames = {"物联编码", "物料名称","材质", "功率", "类型", "功能", "相位", "上网模式", "配置数量", "金额"};
String[] headersNames = {"物联编码", "物料名称","材质", "功率", "类型", "功能", "相位", "上网模式", "配置数量", "金额(元)"};
String[] headers = {"wlbm", "wlmc","cz", "gl", "lx", "gn", "xw", "swms","pzsl", "price"};
documentSpecialProcessing(sheet,headerRow,headerOneRow,dataStartRow,headersNames,headers,headerOne,maps);
......@@ -863,7 +874,7 @@ public class CommonServiceImpl {
// 假设表头内容如下:
String headerOne = "电缆";
String[] headersNames = {"物联编码", "物料名称", "型号", "规格", "配置数量"};
String[] headersNames = {"物联编码", "物料名称", "型号", "规格", "配置数量(米)"};
String[] headers = {"wlbm", "wlmc", "xh", "gg", "pzsl"};
......@@ -1141,7 +1152,7 @@ public class CommonServiceImpl {
documentSpecialProcessing(sheet,headerRow,headerOneRow,dataStartRow,headersNames,headers,headerOne,maps);
}
}
if (sheet.getSheetName().contains("审核记录")) {
if (sheet.getSheetName().contains("审核日志")) {
int startRowNum = 1;
if (null !=data){
......@@ -1158,7 +1169,7 @@ public class CommonServiceImpl {
}
}
if (sheet.getSheetName().contains("操作记录")) {
if (sheet.getSheetName().contains("审核记录")) {
int startRowNum = 1;
if (null !=data){
int headerRow = startRowNum + 1; // 表头所在的行
......@@ -1170,7 +1181,7 @@ public class CommonServiceImpl {
String headerOne = "施工完工操作记录";
String[] headersNames = {"操作人","操作内容","操作时间", "备注",};
String[] headers = {"operator", "operationContent", "operationTime", "notes"};
List<Map<String, Object>> maps = convertListToMap((List<ConstructionRecords>) data);
List<Map<String, Object>> maps = convertListToMap((List<?>) data);
documentSpecialProcessing(sheet,headerRow,headerOneRow,dataStartRow,headersNames,headers,headerOne, maps);
}
}
......@@ -1235,26 +1246,36 @@ public class CommonServiceImpl {
e.printStackTrace();
return;
}
List<Field> listFields = getAllListFields(obj.getClass());
for (Field field : listFields) {
try {
@SuppressWarnings("unchecked")
List<Object> list = (List<Object>) FieldUtils.readField(field, obj, true); // 读取字段值
if(CollectionUtil.isNotEmpty(list)){
for (Object item : list) {
if (item instanceof Map) {
Map<String, Object> map = (Map<String, Object>) item;
if (map.containsKey("url") && map.get("url") instanceof String) {
String imageUrl = urlPath+(String) map.get("url");
downloadAndSaveImage(imageUrl, baseInfoPath);
if (fileName.contains("整改单附件")){
List<String> strings = extractUrls((List<?>) obj, urlPath);
for (String imageUrl : strings) {
downloadAndSaveImage(imageUrl, baseInfoPath);
}
}else {
List<Field> listFields = getAllListFields(obj.getClass());
for (Field field : listFields) {
try {
@SuppressWarnings("unchecked")
List<Object> list = (List<Object>) FieldUtils.readField(field, obj, true); // 读取字段值
if(CollectionUtil.isNotEmpty(list)){
for (Object item : list) {
if (item instanceof Map) {
Map<String, Object> map = (Map<String, Object>) item;
if (map.containsKey("url") && map.get("url") instanceof String) {
String imageUrl = urlPath+(String) map.get("url");
downloadAndSaveImage(imageUrl, baseInfoPath);
}
}
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
......@@ -1359,37 +1380,69 @@ public class CommonServiceImpl {
public static List<String> extractUrls(SurveyInformationDto surveyInfo) {
public static List<String> extractUrls( List<?>list,String urlPath) {
List<String> urls = new ArrayList<>();
// 获取所有类型为List<Object>的字段
List<Field> listFields = getAllListFields(surveyInfo.getClass());
for (Object obj : list) {
// 获取所有类型为List<Object>的字段
List<Field> listFields = getAllListFields(obj.getClass());
for (Field field : listFields) {
try {
@SuppressWarnings("unchecked")
List<Object> list = (List<Object>) FieldUtils.readField(field, surveyInfo, true);
// 从List<Object>中提取url值
for (Object item : list) {
if (item instanceof Map) {
Map<String, Object> map = (Map<String, Object>) item;
if (map.containsKey("url") && map.get("url") instanceof String) {
urls.add("http://47.92.234.253:8088"+(String) map.get("url"));
for (Field field : listFields) {
try {
@SuppressWarnings("unchecked")
List<Object> urlList = (List<Object>) FieldUtils.readField(field, obj, true);
// 从List<Object>中提取url值
for (Object item : urlList) {
if (item instanceof Map) {
Map<String, Object> map = (Map<String, Object>) item;
if (map.containsKey("url") && map.get("url") instanceof String) {
urls.add(urlPath+(String) map.get("url"));
}
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return urls;
}
//
// public static List<String> extractUrls(SurveyInformationDto surveyInfo) {
// List<String> urls = new ArrayList<>();
//
// // 获取所有类型为List<Object>的字段
// List<Field> listFields = getAllListFields(surveyInfo.getClass());
//
// for (Field field : listFields) {
// try {
// @SuppressWarnings("unchecked")
// List<Object> list = (List<Object>) FieldUtils.readField(field, surveyInfo, true);
//
// // 从List<Object>中提取url值
// for (Object item : list) {
// if (item instanceof Map) {
// Map<String, Object> map = (Map<String, Object>) item;
// if (map.containsKey("url") && map.get("url") instanceof String) {
// urls.add("http://47.92.234.253:8088"+(String) map.get("url"));
// }
// }
// }
// } catch (IllegalAccessException e) {
// e.printStackTrace();
// }
// }
//
// return urls;
// }
private static List<Field> getAllListFields(Class<?> clazz) {
List<Field> fields = new ArrayList<>();
Class<?> currentClass = clazz;
......@@ -1672,6 +1725,24 @@ public class CommonServiceImpl {
return constructionRecordsMapper.selectList(up5);
}
List<ConstructionGirdRecords> getConstructionRecordsBasic (String peasantHouseholdId) {
// 施工自审操作记录
LambdaQueryWrapper<ConstructionGirdRecords> up5 = new LambdaQueryWrapper<ConstructionGirdRecords>();
up5.eq(ConstructionGirdRecords::getPeasantHouseholdId, peasantHouseholdId);
up5.orderByAsc(ConstructionGirdRecords::getRecDate);
return constructionGirdRecordsMapper.selectList(up5);
}
List<ConstructionAcceptanceRecords> getConstructionRecordsAcc (String peasantHouseholdId) {
// 施工自审操作记录
LambdaQueryWrapper<ConstructionAcceptanceRecords> up5 = new LambdaQueryWrapper<ConstructionAcceptanceRecords>();
up5.eq(ConstructionAcceptanceRecords::getPeasantHouseholdId, peasantHouseholdId);
up5.orderByAsc(ConstructionAcceptanceRecords::getRecDate);
return constructionAcceptanceRecordsMapper.selectList(up5);
}
public Object getSchedule(String peasantHouseholdId) {
if (!redisUtils.hasKey(peasantHouseholdId)){
return null;
......
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