You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-spms-java/src/main/java/com/glxp/api/controller/basic/BasicGenExcelService.java

389 lines
19 KiB
Java

2 years ago
package com.glxp.api.controller.basic;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.BasicCorpsExportLogEntity;
import com.glxp.api.entity.basic.BasicProductsExportLogEntity;
import com.glxp.api.entity.system.SyncDataSetEntity;
import com.glxp.api.http.HttpOkClient;
import com.glxp.api.req.basic.BasicCorpsExportRequest;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
import com.glxp.api.res.basic.BasicCorpExportLogResponse;
import com.glxp.api.res.basic.UdiRelevanceExportJsonResponse;
import com.glxp.api.service.basic.BasicCorpExportLogService;
import com.glxp.api.service.basic.BasicCorpService;
import com.glxp.api.service.basic.BasicProductsExportLogService;
import com.glxp.api.service.system.SyncDataSetService;
import com.glxp.api.util.ExcelUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Service
public class BasicGenExcelService {
@Resource
SyncDataSetService syncDataSetService;
@Resource
HttpOkClient httpOkClient;
//
public String getIpUrl() {
SyncDataSetEntity syncDataSetEntity = syncDataSetService.findSet();
return syncDataSetEntity.getSyncIp();
}
//
@Resource
BasicCorpExportLogService basicCorpExportLogService;
@Resource
BasicCorpService basicUnitMaintainService;
@Resource
BasicProductsExportLogService basicProductsExportLogService;
// @Resource
// UdiRelevanceService udiRelevanceService;
// @Resource
// SystemParamConfigService systemParamConfigService;
//
//往来单位导出excel文件
@Async
public void exportCorp(String genKey, BasicCorpsExportRequest basicCorpsExportRequest) {
BasicCorpsExportLogEntity corpExportLogEntity = basicCorpExportLogService.selectByGenKey(genKey);
List<List<String>> excelData = new ArrayList<>();
List<String> head = new ArrayList<>();
head.add("往来单位ID");
head.add("往来单位名称");
head.add("往来单位拼音简写");
head.add("地址");
head.add("联系人");
head.add("联系电话");
head.add("社会信用号");
head.add("往来单位状态");
head.add("往来单位类型");
head.add("thirdId");
head.add("thirdName");
head.add("thirdI1d");
head.add("thirdName1");
head.add("thirdId2");
head.add("thirdName2");
head.add("thirdId3");
head.add("thirdName3");
head.add("thirdId4");
head.add("thirdName4");
excelData.add(head);
//选中导出
if (basicCorpsExportRequest.getIds() != null && basicCorpsExportRequest.getIds().size() > 0) {
List<Integer> ids = basicCorpsExportRequest.getIds();
for (Integer id : ids) {
BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest();
filterRequest.setId(id);
List<List<String>> genDatas = genExcelData(filterRequest);
if (genDatas != null && genDatas.size() > 0) {
excelData.addAll(genDatas);
}
}
} else {//一键导出
BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest();
BeanUtils.copyProperties(basicCorpsExportRequest, filterRequest);
filterRequest.setPage(null);
List<List<String>> genDatas = genExcelData(filterRequest);
if (genDatas != null && genDatas.size() > 0) {
excelData.addAll(genDatas);
}
}
String sheetName = "往来单位信息";
File file = new File(corpExportLogEntity.getFilePath());
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
new ExcelUtil().exportExcel(excelData, sheetName, corpExportLogEntity.getFilePath(), 20);
corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
basicCorpExportLogService.updateCorpExportLog(corpExportLogEntity);
}
//
// //上传往来单位SMP
// @Async
// public void uploadCorpSmp(String genKey, CorpsExportRequest corpsExportRequest) {
// PostCorpsRequest postCorpsRequest = new PostCorpsRequest();
// postCorpsRequest.setGenKey(genKey);
// List<CorpImportDetailEntity> corpImportDetailEntities = new ArrayList<>();
// CorpExportLogEntity corpExportLogEntity = corpExportLogService.selectByGenKey(genKey);
// //选中导出
// if (corpsExportRequest.getIds() != null && corpsExportRequest.getIds().size() > 0) {
// List<Integer> ids = corpsExportRequest.getIds();
// for (Integer id : ids) {
// BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest();
// filterRequest.setId(id);
// List<BasicUnitMaintainEntity> unitMaintainEntities = basicUnitMaintainService.filterList(filterRequest);
// if (unitMaintainEntities != null && unitMaintainEntities.size() > 0) {
// for (BasicUnitMaintainEntity basicUnitMaintainEntity : unitMaintainEntities) {
// CorpImportDetailEntity corpImportDetailEntity = new CorpImportDetailEntity();
// BeanUtils.copyProperties(basicUnitMaintainEntity, corpImportDetailEntity);
// corpImportDetailEntities.add(corpImportDetailEntity);
// }
// postCorpsRequest.setDatas(corpImportDetailEntities);
//
// }
// }
//
//
// } else {//一键导出
// BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest();
// BeanUtils.copyProperties(corpsExportRequest, filterRequest);
//
// List<BasicUnitMaintainEntity> unitMaintainEntities = basicUnitMaintainService.filterList(filterRequest);
// if (unitMaintainEntities != null && unitMaintainEntities.size() > 0) {
// for (BasicUnitMaintainEntity basicUnitMaintainEntity : unitMaintainEntities) {
// CorpImportDetailEntity corpImportDetailEntity = new CorpImportDetailEntity();
// BeanUtils.copyProperties(basicUnitMaintainEntity, corpImportDetailEntity);
// corpImportDetailEntities.add(corpImportDetailEntity);
// }
// postCorpsRequest.setDatas(corpImportDetailEntities);
//
// }
// }
//
// //todo 上传SMP
//// SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("smp_service_ip");
//// if (systemParamConfigEntity != null) {
// String response = httpOkClient.uCloudPost(getIpUrl() + "/udiwms/basic/corps/upload", postCorpsRequest);
// BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
// });
// if (baseResponse.getCode() == 20000) {
// corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
// } else {
// corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
// }
//// } else {
//// corpExportLogEntity.setRemark("SMP服务IP地址未定义");
//// corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
//// }
//
//
// corpExportLogService.updateCorpExportLog(corpExportLogEntity);
// }
//
//
@Async
public void uploadCorpSmpJson(String genKey, BasicCorpExportLogResponse exportData) {
BasicCorpsExportLogEntity corpExportLogEntity = basicCorpExportLogService.selectByGenKey(genKey);
String response = httpOkClient.uCloudPost(getIpUrl() + "/spssync/basic/corp/upload", exportData);
BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
if (baseResponse.getCode() == 20000) {
corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
} else {
corpExportLogEntity.setRemark(baseResponse.getMessage());
corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
basicCorpExportLogService.updateCorpExportLog(corpExportLogEntity);
}
//
//
// @Async
// public void exportUdiInfo(String genKey, UdiInfoExportRequest udiInfoExportRequest) {
// BasicProductsExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey);
// List<List<String>> excelData = new ArrayList<>();
// List<String> head = new ArrayList<>();
// head.add("udiCode");
// head.add("医保编码");
// head.add("商品条码");
// head.add("thirdId");
// head.add("thirdId1");
// head.add("thirdId2");
// head.add("thirdId3");
// head.add("thirdId4");
// head.add("是否以使用单元入库");
// excelData.add(head);
// //选中导出
// if (udiInfoExportRequest.getUuids() != null && udiInfoExportRequest.getUuids().size() > 0) {
// List<String> uuids = udiInfoExportRequest.getUuids();
// for (String uuid : uuids) {
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// filterUdiInfoRequest.setUuid(uuid);
// List<List<String>> genDatas = genExcelData(filterUdiInfoRequest);
// if (genDatas != null && genDatas.size() > 0) {
// excelData.addAll(genDatas);
// }
// }
//
// } else {//一键导出
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// BeanUtils.copyProperties(udiInfoExportRequest, filterUdiInfoRequest);
// filterUdiInfoRequest.setPage(null);
// List<List<String>> genDatas = genExcelData(filterUdiInfoRequest);
// if (genDatas != null && genDatas.size() > 0) {
// excelData.addAll(genDatas);
// }
// }
//
// String sheetName = "UDI产品信息对照";
//
// File file = new File(udiInfoExportLogEntity.getFilePath());
// if (!file.exists()) {
// try {
// file.createNewFile();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// new ExcelUtil().exportExcel(excelData, sheetName, udiInfoExportLogEntity.getFilePath(), 20);
// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
// udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity);
// }
//
@Async
public void uploadProductsSmpJson(String genKey, UdiRelevanceExportJsonResponse exportData) {
BasicProductsExportLogEntity basicProductsExportLogEntity = basicProductsExportLogService.selectByGenKey(genKey);
// String response = HttpClient.uCloudPost(spsSyncUrl + "/udiwms/basic/products/upload", exportData);
String response = httpOkClient.uCloudPost(getIpUrl() + "/spssync/basic/udiinfo/upload", exportData);
BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
if (baseResponse.getCode() == 20000) {
basicProductsExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
} else {
basicProductsExportLogEntity.setRemark(baseResponse.getMessage());
basicProductsExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
basicProductsExportLogService.updateUdiInfoExportLog(basicProductsExportLogEntity);
}
//
//
// @Async
// public void uploadProductsSmp(String genKey, UdiInfoExportRequest udiInfoExportRequest) {
// BasicProductsExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey);
// PostUdiInfoRequest postUdiInfoRequest = new PostUdiInfoRequest();
// postUdiInfoRequest.setGenKey(genKey);
// //选中导出
// if (udiInfoExportRequest.getUuids() != null && udiInfoExportRequest.getUuids().size() > 0) {
// List<BasicProductsImportDetailEntity> udiInfoImportDetailEntities = new ArrayList<>();
// List<String> uuids = udiInfoExportRequest.getUuids();
// for (String uuid : uuids) {
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// filterUdiInfoRequest.setUuid(uuid);
// List<BasicProductsImportDetailEntity> genDatas = genSmpData(filterUdiInfoRequest);
// udiInfoImportDetailEntities.addAll(genDatas);
// }
// postUdiInfoRequest.setDatas(udiInfoImportDetailEntities);
//
// } else {//一键导出
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// BeanUtils.copyProperties(udiInfoExportRequest, filterUdiInfoRequest);
// List<BasicProductsImportDetailEntity> genDatas = genSmpData(filterUdiInfoRequest);
// postUdiInfoRequest.setDatas(genDatas);
// }
// //todo 上传SMP
//// SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("smp_service_ip");
//// if (systemParamConfigEntity != null) {
// String response = httpOkClient.uCloudPost(getIpUrl() + "/udiwms/basic/products/upload", postUdiInfoRequest);
// BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
// });
// if (baseResponse.getCode() == 20000) {
// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
// } else {
// udiInfoExportLogEntity.setRemark(baseResponse.getMessage());
// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
// }
//// } else {
//// udiInfoExportLogEntity.setRemark("SMP服务IP地址未定义");
//// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
//// }
// udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity);
// }
//
public List<List<String>> genExcelData(BasicUnitMaintainFilterRequest filterUdiInfoRequest) {
List<List<String>> excelData = new ArrayList<>();
List<BasicCorpEntity> unitMaintainEntities = basicUnitMaintainService.filterList(filterUdiInfoRequest);
for (BasicCorpEntity basicUnitMaintainEntity : unitMaintainEntities) {
List<String> rows = new ArrayList<>();
rows.add(basicUnitMaintainEntity.getErpId());
rows.add(basicUnitMaintainEntity.getName());
rows.add(basicUnitMaintainEntity.getSpell());
rows.add(basicUnitMaintainEntity.getAddr());
rows.add(basicUnitMaintainEntity.getContact());
rows.add(basicUnitMaintainEntity.getMobile());
rows.add(basicUnitMaintainEntity.getCreditNo());
rows.add(String.valueOf(basicUnitMaintainEntity.getStatus()));
rows.add(basicUnitMaintainEntity.getType());
rows.add(basicUnitMaintainEntity.getThirdId());
rows.add(basicUnitMaintainEntity.getThirdName());
rows.add(basicUnitMaintainEntity.getThirdId1());
rows.add(basicUnitMaintainEntity.getThirdName1());
rows.add(basicUnitMaintainEntity.getThirdId2());
rows.add(basicUnitMaintainEntity.getThirdName2());
rows.add(basicUnitMaintainEntity.getThirdId3());
rows.add(basicUnitMaintainEntity.getThirdName3());
rows.add(basicUnitMaintainEntity.getThirdId4());
rows.add(basicUnitMaintainEntity.getThirdName4());
excelData.add(rows);
}
return excelData;
}
//
// public List<List<String>> genExcelData(FilterUdiInfoRequest filterUdiInfoRequest) {
//
// List<List<String>> excelData = new ArrayList<>();
// List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
// for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
// List<String> rows = new ArrayList<>();
// if (udiRelevanceResponse.getProductType() == ConstantStatus.PRODUCT_TYPE_THIRD)
// rows.add(null);
// else
// rows.add(udiRelevanceResponse.getNameCode());
// rows.add(udiRelevanceResponse.getYbbm());
// rows.add(udiRelevanceResponse.getSptm());
// rows.add(udiRelevanceResponse.getThirdId());
// rows.add(udiRelevanceResponse.getThirdId1());
// rows.add(udiRelevanceResponse.getThirdId2());
// rows.add(udiRelevanceResponse.getThirdId3());
// rows.add(udiRelevanceResponse.getThirdId4());
// if (udiRelevanceResponse.getIsUseDy() == 1) {
// rows.add("是");
// } else {
// rows.add("否");
// }
// excelData.add(rows);
// }
// return excelData;
// }
//
// public List<BasicProductsImportDetailEntity> genSmpData(FilterUdiInfoRequest filterUdiInfoRequest) {
// List<BasicProductsImportDetailEntity> udiInfoImportDetailEntities = new ArrayList<>();
// List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
// for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
// BasicProductsImportDetailEntity udiInfoImportDetailEntity = new BasicProductsImportDetailEntity();
// udiInfoImportDetailEntity.setUdiCode(udiRelevanceResponse.getNameCode());
// udiInfoImportDetailEntity.setYbbm(udiRelevanceResponse.getYbbm());
// udiInfoImportDetailEntity.setSptm(udiRelevanceResponse.getSptm());
// udiInfoImportDetailEntity.setThirdId(udiRelevanceResponse.getThirdId());
// udiInfoImportDetailEntity.setThirdId1(udiRelevanceResponse.getThirdId1());
// udiInfoImportDetailEntity.setThirdId2(udiRelevanceResponse.getThirdId2());
// udiInfoImportDetailEntity.setThirdId3(udiRelevanceResponse.getThirdId3());
// udiInfoImportDetailEntity.setThirdId4(udiRelevanceResponse.getThirdId4());
// if (udiRelevanceResponse.getIsUseDy() == 1) {
// udiInfoImportDetailEntity.setIsUseDy("是");
// } else {
// udiInfoImportDetailEntity.setIsUseDy("否");
// }
// udiInfoImportDetailEntities.add(udiInfoImportDetailEntity);
// }
// return udiInfoImportDetailEntities;
// }
}