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

394 lines
19 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.glxp.api.controller.basic;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.glxp.api.annotation.Log;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.constant.BusinessType;
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.sync.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.sync.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
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
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
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
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
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
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;
// }
}