Commit effb3b94 authored by suhuiguang's avatar suhuiguang

Merge branch 'develop_tzs_register' of…

Merge branch 'develop_tzs_register' of http://39.100.92.250:5000/moa/amos-boot-biz into develop_tzs_register
parents 6f74f827 39bd6f44
......@@ -162,7 +162,8 @@ public class JgChangeRegistrationNameController extends BaseController {
dto.setUseUnitCreditCode(getSelectedOrgInfo().getCompany().getCompanyCode());
}
}
dto.setCertificateStatus("已登记");
// 错误注使用销业务导出后续业务无法做,故放开限制 @2025-06-27
// dto.setCertificateStatus("已登记");
dto.setIsDoBusiness("1");
return ResponseHelper.buildResponse(jgChangeRegistrationNameService.getTableData(dto));
}
......
......@@ -203,8 +203,11 @@ public class JgChangeRegistrationReformController extends BaseController {
if (!ObjectUtils.isEmpty(transferType)) {
dto.setIsScrap("0");
}
// 错误注使用销业务导出后续业务无法做,故放开限制 @2025-06-27
if (!ValidationUtil.isEmpty(transferType) && "1".equals(transferType)) {
//区外移装查询已注销状态的证
dto.setCertificateStatus("1".equals(transferType) ? "已注销" : "已登记");
dto.setCertificateStatus("已注销");
}
dto.setIsDoBusiness("1");//默认可以做业务
return ResponseHelper.buildResponse(jgChangeRegistrationReformServiceImpl.getUseRegistrationCodeData(page, dto));
}
......
......@@ -263,7 +263,7 @@ public class JgTableDataExportController extends BaseController {
@GetMapping(value = "/enterpriseInformationExport")
@ApiOperation(httpMethod = "GET", value = "基础设置-企业信息列表数据导出", notes = "基础设置-企业信息列表数据导出")
public ResponseModel<String> managePipe(@RequestParam(value = "ids", required = false) String ids,
@RequestParam Map<String, String> map) {
@RequestParam Map<String, Object> map) {
String uuid = UUID.randomUUID().toString();
iJgTableDataExportService.startDownLoadMsg("企业信息列表", uuid);
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
......@@ -279,7 +279,7 @@ public class JgTableDataExportController extends BaseController {
@ApiOperation(httpMethod = "GET", value = "基础设置-企业-人员信息列表数据导出", notes = "基础设置-企业-人员信息列表数据导出")
public ResponseModel<String> userInfoExport(@RequestParam(value = "ids", required = false) String ids,
@RequestParam(value = "sort", required = false) String sort,
@RequestParam Map<String, String> map) {
@RequestParam Map<String, Object> map) {
String uuid = UUID.randomUUID().toString();
iJgTableDataExportService.startDownLoadMsg("人员信息列表", uuid);
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
......@@ -294,7 +294,7 @@ public class JgTableDataExportController extends BaseController {
@PostMapping(value = "/userInfoExportWithAdmin")
@ApiOperation(httpMethod = "POST", value = "基础设置-监管单位-人员信息列表数据导出", notes = "基础设置-监管单位-人员信息列表数据导出")
public ResponseModel<String> userInfoExportWithAdmin(@RequestParam(value = "ids", required = false) String ids,
@RequestBody Map<String, String> map) {
@RequestBody Map<String, Object> map) {
String uuid = UUID.randomUUID().toString();
iJgTableDataExportService.startDownLoadMsg("人员信息列表", uuid);
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
......
......@@ -21,6 +21,6 @@ public interface JczsServiceFeignClient {
ResponseModel<Page<Map<String, String>>> page(@RequestParam("current") int current,
@RequestParam("size") int size,
@RequestParam("keyword") String keyword,
@RequestParam Map<String, String> map);
@RequestParam Map<String, Object> map);
}
......@@ -20,13 +20,13 @@ public interface TcmServiceFeignClient {
ResponseModel<Page<Map<String, String>>> page(@RequestParam(value = "current") String current,
@RequestParam(value = "size") String size,
@RequestParam(value = "sort", required = false) String sort,
@RequestParam Map<String, String> dto);
@RequestParam Map<String, Object> dto);
@RequestMapping(value = "/userInfo/permission-page", method = RequestMethod.POST)
ResponseModel<Page<Map<String, String>>> getUserByPermission(@RequestParam(value = "current") long current,
@RequestParam(value = "size") long size,
@RequestParam(value = "sort", required = false) String sort,
@RequestParam(required = false, defaultValue = "all") String type,
@RequestBody Map<String, String> map);
@RequestBody Map<String, Object> map);
}
......@@ -59,9 +59,9 @@ public interface IJgTableDataExportService {
void unregulatedPipe(String uuid, Map<String, String> params, String sort, ReginParams reginParams);
void enterpriseInformationExport(String uuid, String ids, Map<String, String> map);
void enterpriseInformationExport(String uuid, String ids, Map<String, Object> map);
void userInfoExport(String uuid, String ids, Map<String, String> map);
void userInfoExport(String uuid, String ids, Map<String, Object> map);
void userInfoExportWithAdmin(String uuid, String ids, Map<String, String> map);
void userInfoExportWithAdmin(String uuid, String ids, Map<String, Object> map);
}
......@@ -148,6 +148,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
public static final String EQU_CATEGORY_CODE = "EQU_CATEGORY_CODE";
public static final String EQU_LIST_CODE = "EQU_LIST_CODE";
public static final String PROJECT_CONTRAPTION = "PROJECT_CONTRAPTION";// 工程装置名称
public static final String CREATE_DATE_RANGE = "CREATE_DATE_RANGE";// 创建时间范围查询
public static final String CREATE_DATE = "CREATE_DATE";// 创建时间范围查询
/**
* 业务类型 0:单个新增 1:批量导入
*/
......@@ -2397,7 +2399,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (map.containsKey("flag") && !map.containsKey("USE_UNIT_CREDIT_CODE")) {
return new Page<>();
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Integer pageNumber = ObjectUtils.isEmpty(map.getInteger("number")) ? 1 : map.getInteger("number");
Integer size = ObjectUtils.isEmpty(map.getInteger("size")) ? 20 : map.getInteger("size");
Page<JSONObject> result = new Page<>(pageNumber, size);
......@@ -2769,6 +2771,37 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(map.getString("ORG_BRANCH_CODE")) + "*"));
}
}
// 创建时间范围查询
if (!ObjectUtils.isEmpty(map.getString(CREATE_DATE_RANGE))) {
String createDateRangeObj = map.getString(CREATE_DATE_RANGE);
String[] split = createDateRangeObj.replace("[", "").replace("]", "").split(",");
String startDateStr = split[0];
String endDateStr = split[1];
try {
Date startDate = sdf.parse(startDateStr);
Date endDate = sdf.parse(endDateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(endDate);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
endDate = calendar.getTime();
long startDateMillis = startDate.getTime();
long endDateMillis = endDate.getTime();
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
pBuilder.must(QueryBuilders.rangeQuery("CREATE_DATE")
.gte(startDateMillis) // 大于等于开始日期的时间戳
.lte(endDateMillis) // 小于等于结束日期的时间戳
);
boolMust.must(pBuilder);
} catch (Exception e) {
log.error("日期转化异常:{}", e.getMessage());
e.printStackTrace();
}
}
// 字段排序
if (!ObjectUtils.isEmpty(map.get("sort"))){
String[] sorts = Objects.toString(map.get("sort")).split(",");
......@@ -2860,6 +2893,11 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
item.put("REC_DATE", Instant.ofEpochMilli(Long.parseLong(item.getString("REC_DATE")))
.atZone(ZoneId.systemDefault())
.toLocalDate());
if (!ValidationUtil.isEmpty(item.getString(CREATE_DATE))){
item.put(CREATE_DATE, Instant.ofEpochMilli(Long.parseLong(item.getString(CREATE_DATE)))
.atZone(ZoneId.systemDefault())
.toLocalDate());
}
String fullAddress = equAddressMap.get(item.getString(SEQUENCE_NBR));
item.put("ADDRESS", !ValidationUtil.isEmpty(fullAddress) ? fullAddress : "");
item.put("CAN_EDIT", this.checkEquipIsCanEdit(item.getString(SEQUENCE_NBR)));
......
......@@ -757,7 +757,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
.fluentPut("time", new Date().getTime()));
}
private List<String> getEnterSeqs(String ids, Map<String, String> map) {
private List<String> getEnterSeqs(String ids, Map<String, Object> map) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
List<String> idsList = new ArrayList<>();
if (StringUtils.isEmpty(ids)) {
......@@ -803,7 +803,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
* @param ids
*/
@Override
public void enterpriseInformationExport(String uuid, String ids, Map<String, String> map) {
public void enterpriseInformationExport(String uuid, String ids, Map<String, Object> map) {
ObjectMapper objectMapper = new ObjectMapper();
List<String> enterSeqs = getEnterSeqs(ids, map);
List<Map<String, String>> enterInfoWithExport = tzBaseEnterpriseInfoMapper.getEnterInfoWithExport(enterSeqs);
......@@ -835,7 +835,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
.fluentPut("time", new Date().getTime()));
}
private List<String> getUserInfoSeqs(boolean isAdmin, String ids, Map<String, String> map) {
private List<String> getUserInfoSeqs(boolean isAdmin, String ids, Map<String, Object> map) {
RequestContextWrapper contextWrapper = RequestContextWrapper.capture();
List<String> idsList = new ArrayList<>();
if (StringUtils.isEmpty(ids)) {
......@@ -881,7 +881,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
@Override
public void userInfoExport(String uuid, String ids, Map<String, String> map) {
public void userInfoExport(String uuid, String ids, Map<String, Object> map) {
List<String> userInfoSeqs = getUserInfoSeqs(false, ids, map);
List<Map<String, String>> enterInfoWithExport = tzsUserInfoMapper.getUserInfoWithExport(userInfoSeqs);
List<UserInfoVo> exportData = JSON.parseArray(JSON.toJSONString(enterInfoWithExport), UserInfoVo.class);
......@@ -897,7 +897,7 @@ public class JgTableDataExportServiceImpl implements IJgTableDataExportService {
}
@Override
public void userInfoExportWithAdmin(String uuid, String ids, Map<String, String> map) {
public void userInfoExportWithAdmin(String uuid, String ids, Map<String, Object> map) {
List<String> userInfoSeqs = getUserInfoSeqs(true, ids, map);
List<Map<String, String>> enterInfoWithExport = tzsUserInfoMapper.getUserInfoWithExport(userInfoSeqs);
List<UserInfoVo> exportData = JSON.parseArray(JSON.toJSONString(enterInfoWithExport), UserInfoVo.class);
......
......@@ -50,8 +50,9 @@ public enum AdvanceSearchEnum {
JSONArray jsonArray = new JSONArray();
for (AdvanceSearchEnum item : values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", item.name);
jsonObject.put("code", item.code);
jsonObject.put("label", item.name);
jsonObject.put("value", item.code);
jsonObject.put("key", item.code);
jsonObject.put("paramType", item.paramType);
jsonObject.put("isMulti", false);
if(TechnicalParameter.ParamType.BIG_DECIMAL.equals(item.paramType)){
......
package com.yeejoin.amos.boot.module.statistics.api.enums;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Getter;
......@@ -35,4 +37,16 @@ public enum UnitTypeEnum {
getCode.put(e.name, e.code);
}
}
public static JSONArray getAll(){
JSONArray jsonArray = new JSONArray();
for (UnitTypeEnum e : UnitTypeEnum.values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("label",e.name);
jsonObject.put("value",e.code);
jsonObject.put("key",e.code);
jsonArray.add(jsonObject);
}
return jsonArray;
}
}
......@@ -53,7 +53,7 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/select/queryEquipmentSearchData")
@ApiOperation(httpMethod = "POST", value = "查询设备查询条件", notes = "查询设备查询条件")
public ResponseModel<JSONObject> queryEquipmentSearchData(@RequestBody JSONObject jsonObject) {
public ResponseModel<JSONArray> queryEquipmentSearchData(@RequestBody JSONObject jsonObject) {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryEquipmentSearchData(jsonObject.getString("value")));
}
......@@ -62,10 +62,76 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryAdvancedSearch")
@GetMapping(value = "/select/queryAdvancedSearch/{type}")
@ApiOperation(httpMethod = "GET", value = "查询高级筛选", notes = "查询高级筛选")
public ResponseModel<JSONArray> query() {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryAdvancedSearch());
public ResponseModel<JSONArray> query(@PathVariable String type) {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryAdvancedSearch(type));
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryCompanySearchData")
@ApiOperation(httpMethod = "GET", value = "查询企业条件", notes = "查询企业条件")
public ResponseModel<JSONObject> queryCompanySearchData() {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryCompanySearchData());
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryPersonSearchData")
@ApiOperation(httpMethod = "GET", value = "查询个人条件", notes = "查询个人条件")
public ResponseModel<JSONObject> queryPersonSearchData() {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryPersonSearchData());
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryUnitType")
@ApiOperation(httpMethod = "GET", value = "查询单位类型", notes = "查询单位类型")
public ResponseModel<JSONArray> queryUnitType() {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryUnitType());
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryXK")
@ApiOperation(httpMethod = "GET", value = "查询许可", notes = "查询许可")
public ResponseModel<JSONArray> queryXK(@RequestParam(required = false) String type) {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryXK(type));
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryRYLX")
@ApiOperation(httpMethod = "GET", value = "查询人员类型", notes = "查询人员类型")
public ResponseModel<JSONArray> queryRYLX(@RequestParam(required = false) String type) {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryRYLX(type));
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/select/queryZZZT")
@ApiOperation(httpMethod = "GET", value = "查询资质状态", notes = "查询资质状态")
public ResponseModel<JSONArray> queryZZZT() {
return ResponseHelper.buildResponse(statisticalAnalysisService.queryZZZT());
}
/**
......
......@@ -382,7 +382,7 @@ public class TzsUserInfoController extends BaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/company/import")
@PostMapping(value = "/company/import", produces = "application/json;charset=UTF-8")
@ApiOperation(value = "企业人员导入", httpMethod = "POST", notes = "企业人员导入")
public ResponseModel<?> importCompanyUser(@RequestBody MultipartFile file) {
return tzsUserInfoService.importCompanyUser(file, getSelectedOrgInfo());
......
......@@ -51,6 +51,7 @@ import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.GroupModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.ehcache.impl.internal.concurrent.ConcurrentHashMap;
......@@ -58,11 +59,13 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -76,6 +79,8 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -116,6 +121,8 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
private TzsUserQualificationsServiceImpl tzsUserQualificationsService;
@Autowired
private TzsUserPermissionServiceImpl tzsUserPermissionServiceImpl;
@Autowired
private EmqKeeper emqKeeper;
@Autowired
private RegUnitInfoServiceImpl regUnitInfoService;
......@@ -1345,6 +1352,56 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
return errors;
}
private final String DOWN_LOAD_START_TEMP = "{\"id\":\"%s\",\"status\":\"starting\",\"fileName\":\"%s\",\"time\":\"%s\"}";
private final String DOWNLOAD_TOPIC = "/topic/download/excel/%s";
private final String BUCKET_NAME = "upload";
private final String UPLOAD_PATH = "/tzs/excelTempFile";
/**
* 开始下载 发送消息
*/
public void startDownLoadMsg(String fileName, String uuid) {
try {
emqKeeper.getMqttClient().publish(String.format(DOWNLOAD_TOPIC, RequestContext.getToken()),
String.format(DOWN_LOAD_START_TEMP, uuid, fileName, new Date().getTime()).getBytes(StandardCharsets.UTF_8),
2, false);
} catch (Exception e) {
log.error(e.getMessage());
}
}
/**
* 发送主题消息,给企业推送excel 结束下载提醒
*
* @param topic 主体格式为: /download/excel/${token}
* @param jsonObject 文件名称 + excel文件路径(minio)
*/
public void sendDownLoadExcelMsg(String topic, JSONObject jsonObject) {
try {
emqKeeper.getMqttClient().publish(topic, JSONObject.toJSONString(jsonObject).getBytes(StandardCharsets.UTF_8), 2, false);
} catch (Exception e) {
log.error(e.getMessage());
}
}
/**
* 上传excel文件到minio服务器
*
* @param templateExcelFile 文件
* @return minio文件路径
*/
private String uploadExcelFile(MultipartFile templateExcelFile) {
FeignClientResult<Map<String, String>> uploadResult = Systemctl.fileStorageClient.updateBucketFile(templateExcelFile, BUCKET_NAME, UPLOAD_PATH);
String urlString = "";
if (uploadResult != null && uploadResult.getResult() != null) {
for (String s : uploadResult.getResult().keySet()) {
urlString = s;
}
}
return urlString;
}
/**
* 企业人员导入
*
......@@ -1356,7 +1413,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
public ResponseModel<?> importCompanyUser(MultipartFile multipartFile, ReginParams reginParams) {
CompanyBo company = reginParams.getCompany();
List<CompanyUserImportDto> dataList = new ArrayList<>();
JSONArray resultError = new JSONArray();
ArrayList<String> sheetError = new ArrayList();
// 用于手机号唯一判断 key:姓名-身份证号 value :手机号
// key保证数据唯一性
Map<String, String> phoneOnly = new HashMap<>();
......@@ -1372,7 +1429,6 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
if (sheetName.contains("企业人员录入限制")) {
continue;
}
ArrayList<String> sheetError = new ArrayList<>();
// 人员信息 sheet页
if (sheetName.contains("人员信息")) {
EasyExcel.read(multipartFile.getInputStream(), CompanyUserImportDto.class, new AnalysisEventListener<CompanyUserImportDto>() {
......@@ -1383,9 +1439,6 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
if (!ValidationUtil.isEmpty(sheetError)) {
resultError.add(sheetError);
}
}
}).headRowNumber(2).sheet(sheetNo, sheetName).doRead();
}
......@@ -1400,9 +1453,6 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
if (!ValidationUtil.isEmpty(sheetError)) {
resultError.add(sheetError);
}
}
}).headRowNumber(2).sheet(sheetNo, sheetName).doRead();
}
......@@ -1417,9 +1467,6 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
if (!ValidationUtil.isEmpty(sheetError)) {
resultError.add(sheetError);
}
}
}).headRowNumber(2).sheet(sheetNo, sheetName).doRead();
}
......@@ -1434,16 +1481,32 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
if (!ValidationUtil.isEmpty(sheetError)) {
resultError.add(sheetError);
}
}
}).headRowNumber(2).sheet(sheetNo, sheetName).doRead();
}
}
// 存在检验不通过的数据则返回错误信息,不在向下写入库
if (!resultError.isEmpty()) {
return ResponseHelper.buildResponse(resultError);
if (!sheetError.isEmpty()) {
// 发送错误文件
String uuid = UUID.randomUUID().toString();
startDownLoadMsg("人员导入错误文件", uuid);
File tempFile = File.createTempFile("errors", ".txt");
try (FileWriter writer = new FileWriter(tempFile)) {
for (String error : sheetError) {
writer.write(error + System.lineSeparator());
}
}
byte[] fileContent = Files.readAllBytes(tempFile.toPath());
MultipartFile mockMultipartFile = new MockMultipartFile("errors.txt", "errors.txt", "text/plain", fileContent);
String urlString = this.uploadExcelFile(mockMultipartFile);
sendDownLoadExcelMsg(String.format(DOWNLOAD_TOPIC, RequestContext.getToken()), new JSONObject()
.fluentPut("id", uuid)
.fluentPut("status", "done")
.fluentPut("fileName", "人员导入错误文件")
.fluentPut("url", urlString)
.fluentPut("time", new Date().getTime()));
tempFile.delete();
throw new BadRequest("校验出错,请查看错误文件!");
}
// 3.数据入库
dataList.forEach(data -> {
......
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