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-wms-third-java/src/main/java/com/glxp/mipsdl/client/phxyy/PhxyyFileClient.java

120 lines
5.8 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.mipsdl.client.phxyy;
import cn.hutool.core.thread.ThreadUtil;
import com.glxp.mipsdl.client.BaseFileClient;
import com.glxp.mipsdl.req.post.PostThrCorpRequest;
import com.glxp.mipsdl.req.post.PostThrProductsRequest;
import com.glxp.mipsdl.res.BaseResponse;
import com.glxp.mipsdl.res.udiwms.UdiwmsProductInfoResponse;
import com.glxp.mipsdl.res.udiwms.UdiwmsUnitResponse;
import com.glxp.mipsdl.service.file.UdiInfoUploadService;
import com.glxp.mipsdl.util.ExcelUtil;
import com.glxp.mipsdl.util.ExecutorUtil;
import com.glxp.mipsdl.util.ResultVOUtils;
import com.glxp.mipsdl.vo.file.phxyy.PhxyyCorpEntity;
import com.glxp.mipsdl.vo.file.phxyy.PhxyyProductEntity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* 平和县医院文件接口
*/
@Slf4j
@Service(value = "100005FileClient") //bean注册名称使用编码 + HttpClient文件接口加 FileClient
public class PhxyyFileClient implements BaseFileClient {
@Resource
private UdiInfoUploadService udiInfoUploadService;
@Resource
private ExecutorUtil executorUtil;
@Override
public BaseResponse uploadPi(List<MultipartFile> files, String thirdSys) {
for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i);
if (file.isEmpty()) {
return ResultVOUtils.error(500, "上传第" + (i++) + "个文件失败");
}
try {
InputStream inputStream = file.getInputStream();
ExcelUtil<PhxyyProductEntity> util = new ExcelUtil(PhxyyProductEntity.class);
List<PhxyyProductEntity> phxyyProductEntities = util.importExcel("字典", inputStream);
List<UdiwmsProductInfoResponse> udiwmsProductInfoResponses = new ArrayList<>();
for (PhxyyProductEntity phxyyProductEntity : phxyyProductEntities) {
UdiwmsProductInfoResponse udiwmsProductInfoResponse = new UdiwmsProductInfoResponse();
BeanUtils.copyProperties(phxyyProductEntity, udiwmsProductInfoResponse);
udiwmsProductInfoResponses.add(udiwmsProductInfoResponse);
}
PostThrProductsRequest postThrProductsRequest = new PostThrProductsRequest();
postThrProductsRequest.setDatas(udiwmsProductInfoResponses);
postThrProductsRequest.setUploadType("文件导入");
postThrProductsRequest.setThirdSys(thirdSys);
executorUtil.getUploadExecutor().execute(ThreadUtil.newThread(() -> {
udiInfoUploadService.postProducts(postThrProductsRequest);
}, "uploadPi"));
log.error("上传完" + System.currentTimeMillis());
} catch (IOException e) {
log.error("解析上传excel文件IO异常异常信息{}", e);
return ResultVOUtils.error(500, "数据异常");
} catch (Exception e) {
log.error("处理产品信息excel文件异常异常信息{}", e);
return ResultVOUtils.error(500, "数据异常");
}
}
return ResultVOUtils.success("文件解析成功,正在上传,请稍后刷新查看");
}
@Override
public BaseResponse uploadCorps(List<MultipartFile> files, String thirdSys) {
for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i);
if (file.isEmpty()) {
return ResultVOUtils.error(500, "上传第" + (i++) + "个文件失败");
}
List<UdiwmsUnitResponse> udiwmsUnitResponses = new ArrayList<>();
try {
InputStream inputStream = file.getInputStream();
ExcelUtil<PhxyyCorpEntity> util = new ExcelUtil(PhxyyCorpEntity.class);
List<PhxyyCorpEntity> phxyyCorpEntities = util.importExcel("单位", inputStream);
for (PhxyyCorpEntity phxyyCorpEntity : phxyyCorpEntities) {
UdiwmsUnitResponse udiwmsUnitResponse = new UdiwmsUnitResponse();
udiwmsUnitResponse.setName(phxyyCorpEntity.getCorpName());
udiwmsUnitResponse.setUnitId(phxyyCorpEntity.getCorpCode());
udiwmsUnitResponses.add(udiwmsUnitResponse);
}
PostThrCorpRequest postThrProductsRequest = new PostThrCorpRequest();
postThrProductsRequest.setCorps(udiwmsUnitResponses);
postThrProductsRequest.setThirdSys(thirdSys);
executorUtil.getUploadExecutor().execute(ThreadUtil.newThread(() -> {
udiInfoUploadService.postCorps(postThrProductsRequest);
}, "uploadCorps"));
} catch (IOException e) {
log.error("解析往来单位excel文件IO异常错误信息{}", e);
return ResultVOUtils.error(500, "数据异常");
} catch (Exception e) {
log.error("解析往来单位excel文件异常异常信息{}", e);
return ResultVOUtils.error(500, "数据异常");
}
}
return ResultVOUtils.success("文件解析成功,正在上传,请稍后刷新查看");
}
@Override
public BaseResponse uploadInvPi(List<MultipartFile> files, String thirdSys) {
return ResultVOUtils.error(500, "暂不支持库存产品信息上传!");
}
@Override
public BaseResponse uploadOrders(List<MultipartFile> files, String thirdSys) {
return ResultVOUtils.error(500, "暂不支持业务单据上传!");
}
}