耗材字典导入导出代码提交

master
郑明梁 2 years ago
parent 24b711893d
commit 4fd3f08bf1

@ -6,13 +6,16 @@ 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;
@ -42,8 +45,8 @@ public class BasicGenExcelService {
BasicCorpExportLogService basicCorpExportLogService;
@Resource
BasicCorpService basicUnitMaintainService;
// @Resource
// UdiInfoExportLogService udiInfoExportLogService;
@Resource
BasicProductsExportLogService basicProductsExportLogService;
// @Resource
// UdiRelevanceService udiRelevanceService;
// @Resource
@ -194,7 +197,7 @@ public class BasicGenExcelService {
//
// @Async
// public void exportUdiInfo(String genKey, UdiInfoExportRequest udiInfoExportRequest) {
// UdiInfoExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey);
// BasicProductsExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey);
// List<List<String>> excelData = new ArrayList<>();
// List<String> head = new ArrayList<>();
// head.add("udiCode");
@ -244,36 +247,36 @@ public class BasicGenExcelService {
// udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity);
// }
//
// @Async
// public void uploadProductsSmpJson(String genKey, UdiRelevanceExportJsonResponse exportData) {
// UdiInfoExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.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) {
// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
// } else {
// udiInfoExportLogEntity.setRemark(baseResponse.getMessage());
// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
// }
// 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) {
// UdiInfoExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey);
// BasicProductsExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey);
// PostUdiInfoRequest postUdiInfoRequest = new PostUdiInfoRequest();
// postUdiInfoRequest.setGenKey(genKey);
// //选中导出
// if (udiInfoExportRequest.getUuids() != null && udiInfoExportRequest.getUuids().size() > 0) {
// List<UdiInfoImportDetailEntity> udiInfoImportDetailEntities = new ArrayList<>();
// List<BasicProductsImportDetailEntity> udiInfoImportDetailEntities = new ArrayList<>();
// List<String> uuids = udiInfoExportRequest.getUuids();
// for (String uuid : uuids) {
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// filterUdiInfoRequest.setUuid(uuid);
// List<UdiInfoImportDetailEntity> genDatas = genSmpData(filterUdiInfoRequest);
// List<BasicProductsImportDetailEntity> genDatas = genSmpData(filterUdiInfoRequest);
// udiInfoImportDetailEntities.addAll(genDatas);
// }
// postUdiInfoRequest.setDatas(udiInfoImportDetailEntities);
@ -281,7 +284,7 @@ public class BasicGenExcelService {
// } else {//一键导出
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// BeanUtils.copyProperties(udiInfoExportRequest, filterUdiInfoRequest);
// List<UdiInfoImportDetailEntity> genDatas = genSmpData(filterUdiInfoRequest);
// List<BasicProductsImportDetailEntity> genDatas = genSmpData(filterUdiInfoRequest);
// postUdiInfoRequest.setDatas(genDatas);
// }
// //todo 上传SMP
@ -360,11 +363,11 @@ public class BasicGenExcelService {
// return excelData;
// }
//
// public List<UdiInfoImportDetailEntity> genSmpData(FilterUdiInfoRequest filterUdiInfoRequest) {
// List<UdiInfoImportDetailEntity> udiInfoImportDetailEntities = new ArrayList<>();
// public List<BasicProductsImportDetailEntity> genSmpData(FilterUdiInfoRequest filterUdiInfoRequest) {
// List<BasicProductsImportDetailEntity> udiInfoImportDetailEntities = new ArrayList<>();
// List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
// for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
// UdiInfoImportDetailEntity udiInfoImportDetailEntity = new UdiInfoImportDetailEntity();
// BasicProductsImportDetailEntity udiInfoImportDetailEntity = new BasicProductsImportDetailEntity();
// udiInfoImportDetailEntity.setUdiCode(udiRelevanceResponse.getNameCode());
// udiInfoImportDetailEntity.setYbbm(udiRelevanceResponse.getYbbm());
// udiInfoImportDetailEntity.setSptm(udiRelevanceResponse.getSptm());

@ -1,5 +1,6 @@
package com.glxp.api.controller.basic;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.file.FileWriter;
import cn.hutool.core.util.ReflectUtil;
@ -7,21 +8,30 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.thrsys.ThrCorpDao;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.BasicCorpsExportLogEntity;
import com.glxp.api.req.basic.BasicCorpsExportRequest;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
import com.glxp.api.dao.thrsys.ThrProductsDao;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.req.basic.*;
import com.glxp.api.req.thrsys.FilterThrCorpRequest;
import com.glxp.api.req.thrsys.FilterThrProductsRequest;
import com.glxp.api.res.basic.BasicCorpExportLogResponse;
import com.glxp.api.res.basic.UdiRelevanceExportJsonResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.thrsys.ThrCorpsResponse;
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.basic.UdiRelevanceService;
import lombok.extern.slf4j.Slf4j;
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.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
@ -34,16 +44,16 @@ public class BasicGenJsonService {
BasicCorpExportLogService corpExportLogService;
@Resource
BasicCorpService basicUnitMaintainService;
// @Resource
// UdiInfoExportLogService udiInfoExportLogService;
// @Resource
// UdiRelevanceService udiRelevanceService;
// @Resource
// UdiRelevanceDao udiRelevanceDao;
// @Resource
// UdiInfoDao udiInfoDao;
// @Resource
// ThrProductsDao thrProductsDao;
@Resource
BasicProductsExportLogService basicProductsExportLogService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
UdiRelevanceDao udiRelevanceDao;
@Resource
UdiProductDao udiProductDao;
@Resource
ThrProductsDao thrProductsDao;
@Resource
ThrCorpDao thrCorpDao;
@ -135,99 +145,99 @@ public class BasicGenJsonService {
}
}
}
//
// /**
// * 导出json格式医疗器械信息
// *
// * @param genKey
// * @param udiInfoExportRequest
// */
// @Async
// public void exportUdiInfoJson(String genKey, UdiInfoExportRequest udiInfoExportRequest) {
// UdiInfoExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey);
// UdiRelevanceExportJsonResponse exportData = paresDataJson(udiInfoExportRequest);
// File file = new File(udiInfoExportLogEntity.getFilePath());
// if (!file.exists()) {
// try {
// file.createNewFile();
// } catch (Exception e) {
// log.error("导出医疗器械信息异常", e);
// }
// }
// FileWriter writer = new FileWriter(file);
// writer.write(JSONUtil.toJsonStr(exportData));
// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
// udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity);
// }
//
//
// public UdiRelevanceExportJsonResponse paresDataJson(UdiInfoExportRequest udiInfoExportRequest) {
// UdiRelevanceExportJsonResponse exportData = new UdiRelevanceExportJsonResponse();
// //选中导出
// if (CollUtil.isNotEmpty(udiInfoExportRequest.getUuids())) {
// List<String> uuids = udiInfoExportRequest.getUuids();
// uuids.forEach(uuid -> {
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// filterUdiInfoRequest.setUuid(uuid);
// List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
// if (CollUtil.isNotEmpty(udiRelevanceResponses)) {
// parseUdiRelevanceResponses(exportData, udiRelevanceResponses);
// }
// });
// } else {
// //一键导出
// FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
// BeanUtil.copyProperties(udiInfoExportRequest, filterUdiInfoRequest);
// filterUdiInfoRequest.setPage(null);
// List<UdiRelevanceResponse> data = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
// if (CollUtil.isNotEmpty(data)) {
// parseUdiRelevanceResponses(exportData, data);
// }
// }
// return exportData;
// }
//
// /**
// * 解析医疗器械信息查询结果,封装完整数据
// *
// * @param exportData
// * @param udiRelevanceResponses
// */
// private void parseUdiRelevanceResponses(UdiRelevanceExportJsonResponse exportData, List<UdiRelevanceResponse> udiRelevanceResponses) {
// List<String> uuids = new ArrayList<>(udiRelevanceResponses.size());
// udiRelevanceResponses.forEach(udi -> {
// uuids.add(udi.getUuid());
// });
// List<UdiInfoEntity> udiInfoEntities = udiInfoDao.batchSelectByUuid(uuids);
// List<UdiRelevanceEntity> udiRelevanceEntities = udiRelevanceDao.batchSelectByUuid(uuids);
// if (CollUtil.isNotEmpty(udiRelevanceEntities)) {
// List<ThrProductsEntity> thrProductsEntities = new ArrayList<>(udiRelevanceEntities.size());
// Field[] fields = ReflectUtil.getFields(UdiRelevanceEntity.class);
// udiRelevanceEntities.forEach(udiRelevanceEntity -> {
// for (Field field : fields) {
// if (field.getName().contains("thirdId")) {
// Object fieldValue = ReflectUtil.getFieldValue(udiRelevanceEntity, field);
// if (null != fieldValue) {
// FilterThrProductsRequest filter = new FilterThrProductsRequest();
// filter.setCode(String.valueOf(fieldValue));
// filter.setThirdSysFk("thirdId");
// List<ThrProductsEntity> result = thrProductsDao.filterThrProductsRequest(filter);
// if (CollUtil.isNotEmpty(result)) {
// thrProductsEntities.addAll(result);
// }
// }
// }
// }
// });
// if (CollUtil.isNotEmpty(thrProductsEntities)) {
// exportData.setThrProductsEntities(thrProductsEntities);
// }
// }
// List<UdiInfoEntity> udiInfo = exportData.getUdiInfoEntities();
// List<UdiRelevanceEntity> udiRelevance = exportData.getUdiRelevanceEntities();
// udiInfo.addAll(udiInfoEntities);
// udiRelevance.addAll(udiRelevanceEntities);
// exportData.setUdiInfoEntities(udiInfo);
// exportData.setUdiRelevanceEntities(udiRelevance);
// }
/**
* json
*
* @param genKey
* @param udiInfoExportRequest
*/
@Async
public void exportUdiInfoJson(String genKey, UdiInfoExportRequest udiInfoExportRequest) {
BasicProductsExportLogEntity basicProductsExportLogEntity = basicProductsExportLogService.selectByGenKey(genKey);
UdiRelevanceExportJsonResponse exportData = paresDataJson(udiInfoExportRequest);
File file = new File(basicProductsExportLogEntity.getFilePath());
if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
log.error("导出医疗器械信息异常", e);
}
}
FileWriter writer = new FileWriter(file);
writer.write(JSONUtil.toJsonStr(exportData));
basicProductsExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
basicProductsExportLogService.updateUdiInfoExportLog(basicProductsExportLogEntity);
}
public UdiRelevanceExportJsonResponse paresDataJson(UdiInfoExportRequest udiInfoExportRequest) {
UdiRelevanceExportJsonResponse exportData = new UdiRelevanceExportJsonResponse();
//选中导出
if (CollUtil.isNotEmpty(udiInfoExportRequest.getUuids())) {
List<String> uuids = udiInfoExportRequest.getUuids();
uuids.forEach(uuid -> {
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setUuid(uuid);
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiRelRequest);
if (CollUtil.isNotEmpty(udiRelevanceResponses)) {
parseUdiRelevanceResponses(exportData, udiRelevanceResponses);
}
});
} else {
//一键导出
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
BeanUtil.copyProperties(udiInfoExportRequest, filterUdiRelRequest);
filterUdiRelRequest.setPage(null);
List<UdiRelevanceResponse> data = udiRelevanceService.filterUdiRelevance(filterUdiRelRequest);
if (CollUtil.isNotEmpty(data)) {
parseUdiRelevanceResponses(exportData, data);
}
}
return exportData;
}
/**
*
*
* @param exportData
* @param udiRelevanceResponses
*/
private void parseUdiRelevanceResponses(UdiRelevanceExportJsonResponse exportData, List<UdiRelevanceResponse> udiRelevanceResponses) {
List<String> uuids = new ArrayList<>(udiRelevanceResponses.size());
udiRelevanceResponses.forEach(udi -> {
uuids.add(udi.getUuid());
});
List<UdiProductEntity> udiInfoEntities = udiProductDao.batchSelectByUuid(uuids);
List<UdiRelevanceEntity> udiRelevanceEntities = udiRelevanceDao.batchSelectByUuid(uuids);
if (CollUtil.isNotEmpty(udiRelevanceEntities)) {
List<ThrProductsEntity> thrProductsEntities = new ArrayList<>(udiRelevanceEntities.size());
Field[] fields = ReflectUtil.getFields(UdiRelevanceEntity.class);
udiRelevanceEntities.forEach(udiRelevanceEntity -> {
for (Field field : fields) {
if (field.getName().contains("thirdId")) {
Object fieldValue = ReflectUtil.getFieldValue(udiRelevanceEntity, field);
if (null != fieldValue) {
FilterThrProductsRequest filter = new FilterThrProductsRequest();
filter.setCode(String.valueOf(fieldValue));
filter.setThirdSysFk("thirdId");
List<ThrProductsEntity> result = thrProductsDao.filterThrProducts(filter);
if (CollUtil.isNotEmpty(result)) {
thrProductsEntities.addAll(result);
}
}
}
}
});
if (CollUtil.isNotEmpty(thrProductsEntities)) {
exportData.setThrProductsEntities(thrProductsEntities);
}
}
List<UdiProductEntity> udiInfo = exportData.getUdiProductEntities();
List<UdiRelevanceEntity> udiRelevance = exportData.getUdiRelevanceEntities();
udiInfo.addAll(udiInfoEntities);
udiRelevance.addAll(udiRelevanceEntities);
exportData.setUdiProductEntities(udiInfo);
exportData.setUdiRelevanceEntities(udiRelevance);
}
}

@ -0,0 +1,233 @@
package com.glxp.api.controller.basic;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.entity.basic.BasicProductsExportLogEntity;
import com.glxp.api.req.basic.FilterUdiEpLogRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.basic.UdiInfoExportRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceExportJsonResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.basic.UdiRlDlResponse;
import com.glxp.api.service.basic.BasicProductsExportLogService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.util.CustomUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
*
*/
@RestController
public class BasicProductsExportLogController {
@Resource
BasicProductsExportLogService basicProductsExportLogService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
BasicGenExcelService basicGenExcelService;
@Resource
BasicGenJsonService basicGenJsonService;
@GetMapping("/udiwms/products/exportLog/filter")
public BaseResponse filter(FilterUdiEpLogRequest filterUdiEpLogReques,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<BasicProductsExportLogEntity> udiInfoExportLogEntities
= basicProductsExportLogService.filterUdiInfoExportLog(filterUdiEpLogReques);
PageInfo<BasicProductsExportLogEntity> pageInfo;
pageInfo = new PageInfo<>(udiInfoExportLogEntities);
PageSimpleResponse<BasicProductsExportLogEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiInfoExportLogEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/products/exportLog/deleteLog")
public BaseResponse deleteLog(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String id = deleteRequest.getId();
basicProductsExportLogService.deleteById(id + "");
return ResultVOUtils.success("删除成功");
}
//产品信息excel文件下载
@GetMapping("/udiwms/products/exportLog/download")
public void download(FilterUdiEpLogRequest filterUdiEpLogRequest, HttpServletResponse res) {
List<BasicProductsExportLogEntity> udiInfoExportLogEntities = basicProductsExportLogService.filterUdiInfoExportLog(filterUdiEpLogRequest);
BasicProductsExportLogEntity basicProductsExportLogEntity = udiInfoExportLogEntities.get(0);
try {
String filePath = basicProductsExportLogEntity.getFilePath();
String fileName = "temp";
if (filePath != null && filePath.length() > 0) {
String[] data = filePath.split("/");
fileName = data[data.length - 1];
}
res.setHeader("Content-disposition", "attachment;fileName=" + fileName);
res.setContentType("text/plain;charset=UTF-8");
FileInputStream input = new FileInputStream(new File(filePath));
OutputStream out = res.getOutputStream();
byte[] b = new byte[2048];
int len;
while ((len = input.read(b)) != -1) {
out.write(b, 0, len);
}
input.close();
if (basicProductsExportLogEntity.getDlCount() == 0) {
basicProductsExportLogEntity.setDlCount(1);
} else {
basicProductsExportLogEntity.setDlCount(basicProductsExportLogEntity.getDlCount() + 1);
}
basicProductsExportLogService.updateUdiInfoExportLog(basicProductsExportLogEntity);
} catch (Exception ex) {
System.out.println("下载失败!");
}
}
//产品信息导出生成Excel并创建生成记录
@PostMapping("/udiwms/products/importLog/export")
public BaseResponse excelDownload(@RequestBody UdiInfoExportRequest udiInfoExportRequest) {
BasicProductsExportLogEntity basicProductsExportLogEntity = new BasicProductsExportLogEntity();
basicProductsExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS);
String genKey = CustomUtil.getId();
String fileName = "D:\\udiwms\\exportFile\\" + "医疗器械信息导出" + genKey + ".udi";
basicProductsExportLogEntity.setGenKey(genKey);
basicProductsExportLogEntity.setFilePath(fileName);
basicProductsExportLogEntity.setUpdateTime(new Date());
basicProductsExportLogEntity.setDlCount(0);
basicProductsExportLogEntity.setType(BasicProcessStatus.EXPORT_JSON);
basicProductsExportLogService.insertUdiInfoExportLog(basicProductsExportLogEntity);
//basicGenExcelService.exportUdiInfo(genKey, udiInfoExportRequest);
basicGenJsonService.exportUdiInfoJson(genKey, udiInfoExportRequest);
return ResultVOUtils.success("后台正在导出生成udi文件请稍后刷新查看!");
}
//产品信息上传SMP并创建生成记录
@PostMapping("/udiwms/products/importLog/uploadSmp")
public BaseResponse uploadSmp(@RequestBody UdiInfoExportRequest udiInfoExportRequest) {
BasicProductsExportLogEntity basicProductsExportLogEntity = new BasicProductsExportLogEntity();
basicProductsExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS);
String genKey = CustomUtil.getId();
basicProductsExportLogEntity.setGenKey(genKey);
basicProductsExportLogEntity.setUpdateTime(new Date());
basicProductsExportLogEntity.setType(BasicProcessStatus.EXPORT_SMP);
basicProductsExportLogEntity.setDlCount(0);
basicProductsExportLogService.insertUdiInfoExportLog(basicProductsExportLogEntity);
UdiRelevanceExportJsonResponse exportData = basicGenJsonService.paresDataJson(udiInfoExportRequest);
basicGenExcelService.uploadProductsSmpJson(genKey, exportData);
// basicGenExcelService.uploadProductsSmp(genKey, udiInfoExportRequest);
return ResultVOUtils.success("后台正在上传,请稍后刷新查看!");
}
//产品信息接口下载(第三方使用)
@GetMapping("/udiwms/basic/products/download")
public BaseResponse downloadProducts(FilterUdiRelRequest filterUdiRelRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (filterUdiRelRequest.getThirdSys() != null && filterUdiRelRequest.getThirdCode() != null) {
if ("thirdId1".equals(filterUdiRelRequest.getThirdSys())) {
filterUdiRelRequest.setThirdId1(filterUdiRelRequest.getThirdCode());
} else if ("thirdId2".equals(filterUdiRelRequest.getThirdSys())) {
filterUdiRelRequest.setThirdId2(filterUdiRelRequest.getThirdCode());
} else if ("thirdId3".equals(filterUdiRelRequest.getThirdSys())) {
filterUdiRelRequest.setThirdId3(filterUdiRelRequest.getThirdCode());
} else if ("thirdId4".equals(filterUdiRelRequest.getThirdSys())) {
filterUdiRelRequest.setThirdId4(filterUdiRelRequest.getThirdCode());
} else {
filterUdiRelRequest.setThirdId(filterUdiRelRequest.getThirdCode());
}
}
List<UdiRelevanceResponse> udiRelevanceResponses = null;
udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiRelRequest);
List<UdiRlDlResponse> udiRlDlResponses = udiRelevanceResponses.stream().map(item ->
{
UdiRlDlResponse udiRlDlResponse = new UdiRlDlResponse();
BeanUtils.copyProperties(item, udiRlDlResponse);
return udiRlDlResponse;
}).collect(Collectors.toList());
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRlDlResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRlDlResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
//产品信息接口查询(第三方使用)
@GetMapping("/udiwms/basic/products/pcFilter")
public BaseResponse pcFilterProducts(FilterUdiRelRequest filterUdiInfoRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (filterUdiInfoRequest.getThirdSys() != null && filterUdiInfoRequest.getThirdCode() != null) {
if ("thirdId1".equals(filterUdiInfoRequest.getThirdSys())) {
filterUdiInfoRequest.setThirdId1(filterUdiInfoRequest.getThirdCode());
} else if ("thirdId2".equals(filterUdiInfoRequest.getThirdSys())) {
filterUdiInfoRequest.setThirdId2(filterUdiInfoRequest.getThirdCode());
} else if ("thirdId3".equals(filterUdiInfoRequest.getThirdSys())) {
filterUdiInfoRequest.setThirdId3(filterUdiInfoRequest.getThirdCode());
} else if ("thirdId4".equals(filterUdiInfoRequest.getThirdSys())) {
filterUdiInfoRequest.setThirdId4(filterUdiInfoRequest.getThirdCode());
} else {
filterUdiInfoRequest.setThirdId(filterUdiInfoRequest.getThirdCode());
}
}
List<UdiRelevanceResponse> udiRelevanceResponses = null;
udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
List<UdiRlDlResponse> udiRlDlResponses = udiRelevanceResponses.stream().map(item ->
{
UdiRlDlResponse udiRlDlResponse = new UdiRlDlResponse();
BeanUtils.copyProperties(item, udiRlDlResponse);
return udiRlDlResponse;
}).collect(Collectors.toList());
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponses);
PageSimpleResponse<UdiRlDlResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRlDlResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
}

@ -0,0 +1,295 @@
package com.glxp.api.controller.basic;
import cn.hutool.core.io.IoUtil;
import cn.hutool.json.JSONUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.entity.basic.BasicProductsImportDetailEntity;
import com.glxp.api.entity.basic.BasicProductsImportLogEntity;
import com.glxp.api.req.basic.FilterUdiIpLogRequest;
import com.glxp.api.req.basic.PostUdiInfoRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceExportJsonResponse;
import com.glxp.api.service.basic.BasicProductsImportDetailService;
import com.glxp.api.service.basic.BasicProductsImportLogService;
import com.glxp.api.util.CustomUtil;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.sql.Date;
import java.util.List;
/**
*
*/
@RestController
public class BasicProductsImportLogController {
@Resource
BasicProductsImportLogService basicProductsImportLogService;
@Resource
BasicProductsImportDetailService basicProductsImportDetailService;
private static final String TAG = "UdiInfoImportLogControl";
private static final Logger log = LoggerFactory.getLogger(BasicProductsImportLogController.class);
@GetMapping("/udiwms/products/importLog/filter")
public BaseResponse filter(FilterUdiIpLogRequest filterUdiIpLogRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<BasicProductsImportLogEntity> udiInfoImportLogEntities
= basicProductsImportLogService.filterImportLog(filterUdiIpLogRequest);
PageInfo<BasicProductsImportLogEntity> pageInfo;
pageInfo = new PageInfo<>(udiInfoImportLogEntities);
PageSimpleResponse<BasicProductsImportLogEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiInfoImportLogEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/products/importLog/filterDetail")
public BaseResponse filterDetail(FilterUdiIpLogRequest filterUdiIpLogRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<BasicProductsImportDetailEntity> udiInfoImportEntities
= basicProductsImportDetailService.filterUdiInfoImport(filterUdiIpLogRequest);
PageInfo<BasicProductsImportDetailEntity> pageInfo;
pageInfo = new PageInfo<>(udiInfoImportEntities);
PageSimpleResponse<BasicProductsImportDetailEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiInfoImportEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/products/importLog/deleteLog")
public BaseResponse deleteLog(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String id = deleteRequest.getId();
FilterUdiIpLogRequest filterInCodeLogRequest = new FilterUdiIpLogRequest();
filterInCodeLogRequest.setId(Integer.parseInt(id));
List<BasicProductsImportLogEntity> importLogEntities = basicProductsImportLogService.filterImportLog(filterInCodeLogRequest);
if (importLogEntities != null && importLogEntities.size() > 0) {
BasicProductsImportLogEntity importLogEntity = importLogEntities.get(0);
basicProductsImportLogService.deleteById(importLogEntity.getId() + "");
basicProductsImportDetailService.deleteByGenkey(importLogEntity.getGenKey());
}
return ResultVOUtils.success("删除成功");
}
@PostMapping("/udiwms/products/importLog/delete")
public BaseResponse delete(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (basicProductsImportDetailService.deleteById(deleteRequest.getId()))
return ResultVOUtils.success("删除成功");
else
return ResultVOUtils.error(500, "删除成功");
}
//产品信息文件导入
@PostMapping("/udiwms/products/importLog/upload")
public BaseResponse uploadProducts(@RequestParam("file") List<MultipartFile> files, @RequestParam("thirdSys") String thirdSys) {
String filePath = "D:\\udiwms\\filePath\\";
File createFile = new File(filePath);
if (!createFile.exists()) {
createFile.mkdirs();
}
for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i);
if (file.isEmpty()) {
return ResultVOUtils.error(500, "上传第" + (i++) + "个文件失败");
}
String fileName = file.getOriginalFilename();
try {
String fileType = fileName.substring(fileName.lastIndexOf("."));
if (!".udi".equalsIgnoreCase(fileType) && !".LowerIn".equalsIgnoreCase(fileType)) {
return ResultVOUtils.error(500, "请上传udi文件或者LowerIn文件");
}
//导入数据
String jsonData = IoUtil.read(file.getInputStream(), StandardCharsets.UTF_8);
UdiRelevanceExportJsonResponse importData = JSONUtil.toBean(jsonData, UdiRelevanceExportJsonResponse.class);
//导入日志
BasicProductsImportLogEntity importLog = new BasicProductsImportLogEntity();
String genKey = CustomUtil.getId();
importLog.setGenKey(genKey);
importLog.setFromType("文件导入");
importLog.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS);
importLog.setUpdateTime(new Date(System.currentTimeMillis()));
basicProductsImportLogService.insertImportLog(importLog);
basicProductsImportDetailService.importJsonData(importData);
importLog.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
importLog.setRemark("本次耗材字典导入"+importData.getUdiProductEntities().size()+"条");
basicProductsImportLogService.updateImportLog(importLog);
} catch (Exception e) {
log.error("产品信息导入失败", e);
}
}
return ResultVOUtils.success("上传成功");
}
public boolean filterEmpty(Row row) {
if (row.getCell(0) != null) {
row.getCell(0).setCellType(CellType.STRING);
}
if (row.getCell(1) != null) {
row.getCell(1).setCellType(CellType.STRING);
}
if (row.getCell(2) != null) {
row.getCell(2).setCellType(CellType.STRING);
}
if (row.getCell(3) != null) {
row.getCell(3).setCellType(CellType.STRING);
}
if (row.getCell(4) != null) {
row.getCell(4).setCellType(CellType.STRING);
}
if (row.getCell(5) != null) {
row.getCell(5).setCellType(CellType.STRING);
}
if (row.getCell(6) != null) {
row.getCell(6).setCellType(CellType.STRING);
}
if ((row.getCell(0) == null && row.getCell(1) == null && row.getCell(2) == null
&& row.getCell(3) == null && row.getCell(4) == null && row.getCell(5) == null && row.getCell(6) == null) ||
(
(row.getCell(0) != null && row.getCell(1) != null && row.getCell(2) != null
&& row.getCell(3) != null && row.getCell(4) != null && row.getCell(5) != null && row.getCell(6) != null) &&
("".equals(row.getCell(0).getStringCellValue())
&& "".equals(row.getCell(1).getStringCellValue())
&& "".equals(row.getCell(2).getStringCellValue())
&& "".equals(row.getCell(3).getStringCellValue())
&& "".equals(row.getCell(4).getStringCellValue())
&& "".equals(row.getCell(5).getStringCellValue())
&& "".equals(row.getCell(6).getStringCellValue()))
)) {
return true;
}
return false;
}
//产品信息接口上传
@PostMapping("/udiwms/basic/products/upload")
public BaseResponse postUdiInfo(@RequestBody PostUdiInfoRequest postUdiInfoRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String genKey = postUdiInfoRequest.getGenKey();
if (genKey == null) {
genKey = CustomUtil.getId();
}
BasicProductsImportLogEntity basicProductsImportLogEntity = basicProductsImportLogService.selectByGenKey(genKey);
List<BasicProductsImportDetailEntity> udiInfoImportEntities = postUdiInfoRequest.getDatas();
if (udiInfoImportEntities != null) {
for (BasicProductsImportDetailEntity udiInfoImportEntity : udiInfoImportEntities) {
udiInfoImportEntity.setGenKeyFk(genKey);
udiInfoImportEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_UNPROCESS);
udiInfoImportEntity.setUpdateTime(new java.util.Date());
basicProductsImportDetailService.insertUdiInfoImport(udiInfoImportEntity);
}
}
if (basicProductsImportLogEntity == null) {
basicProductsImportLogEntity = new BasicProductsImportLogEntity();
basicProductsImportLogEntity.setGenKey(genKey);
basicProductsImportLogEntity.setFromType("接口上传");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS);
basicProductsImportLogEntity.setUpdateTime(new Date(System.currentTimeMillis()));
basicProductsImportLogService.insertImportLog(basicProductsImportLogEntity);
} else {
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS);
basicProductsImportLogService.updateImportLog(basicProductsImportLogEntity);
}
basicProductsImportLogService.importUdiInfo(genKey);
return ResultVOUtils.success("上传成功");
}
//扫码精灵产品信息接口上传
@PostMapping("/udiwms/basic/products/srUpload")
public BaseResponse postSrUdiInfo(@RequestBody PostUdiInfoRequest postUdiInfoRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String genKey = postUdiInfoRequest.getGenKey();
if (genKey == null) {
genKey = CustomUtil.getId();
}
BasicProductsImportLogEntity basicProductsImportLogEntity = basicProductsImportLogService.selectByGenKey(genKey);
List<BasicProductsImportDetailEntity> udiInfoImportEntities = postUdiInfoRequest.getDatas();
if (udiInfoImportEntities != null) {
for (BasicProductsImportDetailEntity udiInfoImportEntity : udiInfoImportEntities) {
udiInfoImportEntity.setGenKeyFk(genKey);
udiInfoImportEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_UNPROCESS);
udiInfoImportEntity.setUpdateTime(new java.util.Date());
basicProductsImportDetailService.insertUdiInfoImport(udiInfoImportEntity);
}
}
if (basicProductsImportLogEntity == null) {
basicProductsImportLogEntity = new BasicProductsImportLogEntity();
basicProductsImportLogEntity.setGenKey(genKey);
basicProductsImportLogEntity.setFromType("扫码精灵上传");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS);
basicProductsImportLogEntity.setUpdateTime(new Date(System.currentTimeMillis()));
basicProductsImportLogService.insertImportLog(basicProductsImportLogEntity);
} else {
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS);
basicProductsImportLogService.updateImportLog(basicProductsImportLogEntity);
}
basicProductsImportLogService.importUdiInfo(genKey);
return ResultVOUtils.success("上传成功");
}
//供应商平台产品信息下载
@GetMapping("/udiwms/products/smp/download")
public BaseResponse downloadSmpUdi(FilterUdiIpLogRequest filterUdiIpLogRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String genKey = CustomUtil.getId();
BasicProductsImportLogEntity basicProductsImportLogEntity = new BasicProductsImportLogEntity();
basicProductsImportLogEntity.setGenKey(genKey);
basicProductsImportLogEntity.setFromType("供应商平台下载");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_UNPROCESS);
basicProductsImportLogEntity.setUpdateTime(new java.util.Date());
basicProductsImportLogService.insertImportLog(basicProductsImportLogEntity);
basicProductsImportLogService.downloadSmpUdiInfo(genKey, filterUdiIpLogRequest.getLastUpdateTime());
return ResultVOUtils.success("后台已开始下载并更新,请稍后刷新查看!");
}
}

@ -0,0 +1,29 @@
package com.glxp.api.dao.basic;
import com.glxp.api.entity.basic.BasicProductsExportLogEntity;
import com.glxp.api.req.basic.FilterUdiEpLogRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BasicProductsExportLogDao {
List<BasicProductsExportLogEntity> filterUdiInfoExportLog(FilterUdiEpLogRequest filterInCodeLogRequest);
boolean insertUdiInfoExportLog(BasicProductsExportLogEntity udiInfoImportEntity);
boolean updateUdiInfoExportLog(BasicProductsExportLogEntity udiInfoImportEntity);
boolean deleteById(@Param("id") String id);
/**
* ID
*
* @param id
* @return
*/
String selectFilePathById(@Param("id") String id);
}

@ -0,0 +1,26 @@
package com.glxp.api.dao.basic;
import com.glxp.api.entity.basic.BasicProductsImportDetailEntity;
import com.glxp.api.req.basic.FilterUdiIpLogRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BasicProductsImportDetailDao {
List<BasicProductsImportDetailEntity> filterUdiInfoImport(FilterUdiIpLogRequest filterInCodeLogRequest);
boolean insertUdiInfoImport(BasicProductsImportDetailEntity udiInfoImportEntity);
boolean updateUdiInfoImport(BasicProductsImportDetailEntity udiInfoImportEntity);
boolean insertUdiInfoImports(@Param("udiInfos") List<BasicProductsImportDetailEntity> udiInfos);
boolean deleteById(@Param("id") String id);
boolean deleteByGenkey(@Param("genKey") String genKey);
}

@ -0,0 +1,23 @@
package com.glxp.api.dao.basic;
import com.glxp.api.entity.basic.BasicProductsImportLogEntity;
import com.glxp.api.req.basic.FilterUdiIpLogRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface BasicProductsImportLogDao {
List<BasicProductsImportLogEntity> filterImportLog(FilterUdiIpLogRequest filterInCodeLogRequest);
boolean insertImportLog(BasicProductsImportLogEntity basicProductsImportLogEntity);
boolean updateImportLog(BasicProductsImportLogEntity basicProductsImportLogEntity);
boolean deleteById(@Param("id") String id);
}

@ -0,0 +1,15 @@
package com.glxp.api.req.basic;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class FilterUdiEpLogRequest extends ListPageRequest {
private String genKey;
private Integer status;
private Integer type;
}

@ -0,0 +1,64 @@
package com.glxp.api.req.basic;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
import java.util.List;
@Data
public class FilterUdiInfoRequest extends ListPageRequest {
private String ylqxzcrbarmc;
private String cpmctymc;
private String nameCode;
private String uuid;
private String ggxh;
private String thirdId;
private String id;
private String thirdId1;
private String thirdId2;
private String thirdId3;
private String thirdId4;
private String thirdCode;
private String thirdSys;
private String lastUpdateTime;
private String zczbhhzbapzbh;
private Integer diType;
private String unionCode;
private String udiCode;
private String thrPiId;
private Boolean isCheck;
private Integer filterType; //0:全部1.对照完成2.未对照DI3.未对照产品编码4.未对照其他产品编码
private Integer lockStatus;
private String customerId;
private String udplatCode;
private String mainId;
private Boolean isAdavence;
private String corpId;
private String billType;
private String ybbm;
private String sptm;
private String unionFilterStr;//产品名称,规格,批文,生产厂家联合查询
private Boolean isDisable;
List<String> relIds;
private String uniqueNameCode;
private String supName;
private String unitFk;
private String originUuid;
private String relId;
private String companyName;
}

@ -0,0 +1,17 @@
package com.glxp.api.req.basic;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class FilterUdiIpLogRequest extends ListPageRequest {
private Integer id;
private String genKey;
private Integer status;
private String thirdSysFk;
private String fromType;
private String lastUpdateTime;
}

@ -0,0 +1,13 @@
package com.glxp.api.req.basic;
import com.glxp.api.entity.basic.BasicProductsImportDetailEntity;
import lombok.Data;
import java.util.List;
@Data
public class PostUdiInfoRequest {
private String genKey;
private List<BasicProductsImportDetailEntity> datas;
}

@ -0,0 +1,83 @@
package com.glxp.api.req.basic;
import lombok.Data;
@Data
public class UdiInfoRequest {
private Integer id;
private String nameCode;
private String packRatio;
private String packLevel;
private Integer bhxjsl;
private Integer bhzxxsbzsl;
private Integer zxxsbzbhsydysl;
private String bhxjcpbm;
private String sjcpbm; //
private String bzcj;
private String addType;
private String deviceRecordKey;
private String cpmctymc;
private String cplb;
private String flbm;
private String ggxh;
private String qxlb;
private String tyshxydm;
private String ylqxzcrbarmc;
private String zczbhhzbapzbh;
private String ylqxzcrbarywmc;
private String sydycpbs;
private String uuid;
private Integer versionNumber;
private Integer diType;
private String thirdId;
private String thirdName;
private String ybbm;
private String sptm;
private String manufactory;
private String measname;
private Integer productType;
private String scbssfbhph;
private String scbssfbhxlh;
private String scbssfbhscrq;
private String scbssfbhsxrq;
private String cpms;
private String spmc;
private String originUuid;
//本地生成信息
private String batchNo;
private String produceDate;
private String expireDate;
private String serialNo;
private String udi;
private String code;
private Integer count;
private String warehouseCode;
private String udplatCode;
private String relId;//关联ID主键
private Integer status;
private String supId;
private Boolean isCheck;
private boolean allowNoBatch;
private boolean allowNoExpire;
private boolean allowNoProduct;
private String price;
private String cplx;
private String hchzsb;
//产品代理商
private String cpdls;
private String basicPrductRemak1;
private String basicPrductRemak2;
private String basicPrductRemak3;
private String basicPrductRemak4;
private String basicPrductRemak5;
private String basicPrductRemak6;
private String basicPrductRemak7;
private String basicPrductRemak8;
}

@ -0,0 +1,42 @@
package com.glxp.api.req.basic;
import lombok.Data;
@Data
public class UdiRelevanceRequest {
private String id;
private String thirdId;
private String thirdName;
private String uuid;
private Boolean isUseDy;
private String updateTime;
private String thirdId1;
private String thirdId2;
private String thirdId3;
private String thirdId4;
private String thirdName1;
private String thirdName2;
private String thirdName3;
private String thirdName4;
private String manufactory;
private String measname;
private String ybbm;
private String sptm;
private Boolean isDisable;
private Boolean isLock;
private String mainId;
private String mainName;
private Integer lockStatus;
private String udplatCode;
private Boolean isAdavence;
private String supName;
private String originUuid;
private String price;
private String modifyTime; //修改时间
private Boolean useMuti; //是否多次使用
private Integer useNum; //最小包装单元可使用次数
}

@ -0,0 +1,32 @@
package com.glxp.api.res.basic;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
*
*/
@Data
public class UdiRelevanceExportJsonResponse {
List<UdiProductEntity> udiProductEntities;
List<UdiRelevanceEntity> udiRelevanceEntities;
//第三方产品信息
List<ThrProductsEntity> thrProductsEntities;
public UdiRelevanceExportJsonResponse() {
this.udiProductEntities = new ArrayList<>();
this.udiRelevanceEntities = new ArrayList<>();
this.udiRlSupEntityList = new ArrayList<>();
this.thrProductsEntities = new ArrayList<>();
}
private List<UdiRlSupEntity> udiRlSupEntityList;
}

@ -0,0 +1,54 @@
package com.glxp.api.res.basic;
import lombok.Data;
@Data
public class UdiRlDlResponse {
private int id;
private String thirdId;
private String thirdName;
private String uuid;
private String nameCode;
private String packLevel;
private String packRatio;
private Integer bhxjsl;
private Integer bhzxxsbzsl;
private Integer zxxsbzbhsydysl;
private String bhxjcpbm;
private String sjcpbm; //
private String bzcj;
private String addType;
private String deviceRecordKey;
private int isUseDy;
private String cpmctymc;
private String cplb;
private String flbm;
private String ggxh;
private String qxlb;
private String tyshxydm;
private String ylqxzcrbarmc;
private String zczbhhzbapzbh;
private String ylqxzcrbarywmc;
private String sydycpbs;
private int versionNumber;
private int diType;
private String thirdId1;
private String thirdName1;
private String thirdId2;
private String thirdName2;
private String thirdId3;
private String thirdName3;
private String thirdId4;
private String thirdName4;
private String ybbm;
private String sptm;
private Integer productType;
private String mainId;
public Integer getProductType() {
if (productType == null) return 0
;
return productType;
}
}

@ -0,0 +1,21 @@
package com.glxp.api.service.basic;
import com.glxp.api.entity.basic.BasicProductsExportLogEntity;
import com.glxp.api.req.basic.FilterUdiEpLogRequest;
import java.util.List;
public interface BasicProductsExportLogService {
BasicProductsExportLogEntity selectByGenKey(String genKey);
List<BasicProductsExportLogEntity> filterUdiInfoExportLog(FilterUdiEpLogRequest filterInCodeLogRequest);
boolean insertUdiInfoExportLog(BasicProductsExportLogEntity udiInfoImportEntity);
boolean updateUdiInfoExportLog(BasicProductsExportLogEntity udiInfoImportEntity);
boolean deleteById( String id);
}

@ -0,0 +1,34 @@
package com.glxp.api.service.basic;
import com.glxp.api.entity.basic.BasicProductsImportDetailEntity;
import com.glxp.api.req.basic.FilterUdiIpLogRequest;
import com.glxp.api.res.basic.UdiRelevanceExportJsonResponse;
import java.util.List;
public interface BasicProductsImportDetailService {
List<BasicProductsImportDetailEntity> filterUdiInfoImport(FilterUdiIpLogRequest filterInCodeLogRequest);
boolean insertUdiInfoImport(BasicProductsImportDetailEntity udiInfoImportEntity);
boolean updateUdiInfoImport(BasicProductsImportDetailEntity udiInfoImportEntity);
boolean insertUdiInfoImports(List<BasicProductsImportDetailEntity> udiInfoImportEntities);
boolean deleteById(String id);
boolean deleteByGenkey(String genKey);
/**
*
*
* @param udiRelevanceExportJsonResponse
*/
void importJsonData(UdiRelevanceExportJsonResponse udiRelevanceExportJsonResponse);
}

@ -0,0 +1,34 @@
package com.glxp.api.service.basic;
import com.glxp.api.entity.basic.BasicProductsImportDetailEntity;
import com.glxp.api.entity.basic.BasicProductsImportLogEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.req.basic.FilterUdiIpLogRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import java.util.List;
public interface BasicProductsImportLogService {
BasicProductsImportLogEntity selectByGenKey(String genKey);
List<BasicProductsImportLogEntity> filterImportLog(FilterUdiIpLogRequest filterInCodeLogRequest);
boolean insertImportLog(BasicProductsImportLogEntity basicProductsImportLogEntity);
boolean updateImportLog(BasicProductsImportLogEntity basicProductsImportLogEntity);
boolean deleteById(String id);
//导入产品信息文件,生成产品信息,更新或插入对照表
void importUdiInfo(String genKey);
void updateValue(UdiRelevanceEntity udiRelevanceEntity, BasicProductsImportDetailEntity basicProductsImportDetailEntity,
BasicProductsImportLogEntity basicProductsImportLogEntity, String mainId);
//下载供应商产品信息
void downloadSmpUdiInfo(String genKey, String lastUpdateTime);
List<UdiRelevanceResponse> getUdiInfo(int page, int limit, String lastUpdateTime);
}

@ -0,0 +1,65 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicProductsExportLogDao;
import com.glxp.api.entity.basic.BasicProductsExportLogEntity;
import com.glxp.api.req.basic.FilterUdiEpLogRequest;
import com.glxp.api.service.basic.BasicProductsExportLogService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class BasicProductsExportLogServiceImpl implements BasicProductsExportLogService {
@Resource
BasicProductsExportLogDao udiInfoExportLogDao;
@Override
public BasicProductsExportLogEntity selectByGenKey(String genKey) {
FilterUdiEpLogRequest filterUdiEpLogRequest = new FilterUdiEpLogRequest();
filterUdiEpLogRequest.setGenKey(genKey);
List<BasicProductsExportLogEntity> data = udiInfoExportLogDao.filterUdiInfoExportLog(filterUdiEpLogRequest);
if (data != null)
return data.get(0);
else
return null;
}
@Override
public List<BasicProductsExportLogEntity> filterUdiInfoExportLog(FilterUdiEpLogRequest filterInCodeLogRequest) {
if (filterInCodeLogRequest == null) {
return Collections.emptyList();
}
if (filterInCodeLogRequest.getPage() != null) {
int offset = (filterInCodeLogRequest.getPage() - 1) * filterInCodeLogRequest.getLimit();
PageHelper.offsetPage(offset, filterInCodeLogRequest.getLimit());
}
List<BasicProductsExportLogEntity> data = udiInfoExportLogDao.filterUdiInfoExportLog(filterInCodeLogRequest);
return data;
}
@Override
public boolean insertUdiInfoExportLog(BasicProductsExportLogEntity udiInfoImportEntity) {
return udiInfoExportLogDao.insertUdiInfoExportLog(udiInfoImportEntity);
}
@Override
public boolean updateUdiInfoExportLog(BasicProductsExportLogEntity udiInfoImportEntity) {
return udiInfoExportLogDao.updateUdiInfoExportLog(udiInfoImportEntity);
}
@Override
public boolean deleteById(String id) {
//删除日志同步删除磁盘文件
String filePath = udiInfoExportLogDao.selectFilePathById(id);
if (StrUtil.isNotBlank(filePath)) {
FileUtil.del(filePath);
}
return udiInfoExportLogDao.deleteById(id);
}
}

@ -0,0 +1,141 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.collection.CollUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicProductsImportDetailDao;
import com.glxp.api.dao.basic.UdiProductDao;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.basic.UdiRlSupDao;
import com.glxp.api.dao.thrsys.ThrProductsDao;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.req.basic.FilterUdiIpLogRequest;
import com.glxp.api.res.basic.UdiRelevanceExportJsonResponse;
import com.glxp.api.service.basic.BasicProductsImportDetailService;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.TransactionIsolationLevel;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class BasicProductsImportDetailServiceImpl implements BasicProductsImportDetailService {
@Resource
BasicProductsImportDetailDao udiInfoImportDao;
@Resource
UdiProductDao udiProductDao;
@Resource
UdiRelevanceDao udiRelevanceDao;
@Resource
ThrProductsDao thrProductsDao;
@Resource
SqlSessionFactory sqlSessionFactory;
@Override
public List<BasicProductsImportDetailEntity> filterUdiInfoImport(FilterUdiIpLogRequest filterInCodeLogRequest) {
if (filterInCodeLogRequest == null) {
return Collections.emptyList();
}
if (filterInCodeLogRequest.getPage() != null) {
int offset = (filterInCodeLogRequest.getPage() - 1) * filterInCodeLogRequest.getLimit();
PageHelper.offsetPage(offset, filterInCodeLogRequest.getLimit());
}
List<BasicProductsImportDetailEntity> data = udiInfoImportDao.filterUdiInfoImport(filterInCodeLogRequest);
return data;
}
@Override
public boolean insertUdiInfoImport(BasicProductsImportDetailEntity udiInfoImportEntity) {
return udiInfoImportDao.insertUdiInfoImport(udiInfoImportEntity);
}
@Override
public boolean updateUdiInfoImport(BasicProductsImportDetailEntity udiInfoImportEntity) {
return udiInfoImportDao.updateUdiInfoImport(udiInfoImportEntity);
}
@Override
public boolean insertUdiInfoImports(List<BasicProductsImportDetailEntity> udiInfoImportEntities) {
return udiInfoImportDao.insertUdiInfoImports(udiInfoImportEntities);
}
@Override
public boolean deleteById(String id) {
return udiInfoImportDao.deleteById(id);
}
@Override
public boolean deleteByGenkey(String genKey) {
return udiInfoImportDao.deleteByGenkey(genKey);
}
@Override
@Async
public void importJsonData(UdiRelevanceExportJsonResponse udiRelevanceExportJsonResponse) {
if (CollUtil.isNotEmpty(udiRelevanceExportJsonResponse.getUdiProductEntities())) {
//基础表导入
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
if (CollUtil.isNotEmpty(udiRelevanceExportJsonResponse.getUdiProductEntities())) {
List<UdiProductEntity> corpList = udiRelevanceExportJsonResponse.getUdiProductEntities();
UdiProductDao mapper = batchSession.getMapper(UdiProductDao.class);
for (UdiProductEntity udiProductEntity : corpList) {
mapper.insertUdiInfo(udiProductEntity);
}
batchSession.commit();
}
batchSession.close();
// udiInfoDao.importUdiInfo(udiRelevanceExportJsonResponse.getUdiInfoEntities());
}
//关联表导入
if (CollUtil.isNotEmpty(udiRelevanceExportJsonResponse.getUdiRelevanceEntities())) {
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
List<UdiRelevanceEntity> corpList = udiRelevanceExportJsonResponse.getUdiRelevanceEntities();
UdiRelevanceDao mapper = batchSession.getMapper(UdiRelevanceDao.class);
for (UdiRelevanceEntity basicUnitMaintainEntity : corpList) {
mapper.insertUdiRelevance(basicUnitMaintainEntity);
}
batchSession.commit();
batchSession.close();
// udiRelevanceDao.importUdiRelevance(udiRelevanceExportJsonResponse.getUdiRelevanceEntities());
}
//第三方产品信息导入
if (CollUtil.isNotEmpty(udiRelevanceExportJsonResponse.getThrProductsEntities())) {
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
List<ThrProductsEntity> corpList = udiRelevanceExportJsonResponse.getThrProductsEntities();
ThrProductsDao mapper = batchSession.getMapper(ThrProductsDao.class);
for (ThrProductsEntity basicUnitMaintainEntity : corpList) {
mapper.insertThrProducts(basicUnitMaintainEntity);
}
batchSession.commit();
batchSession.close();
// thrProductsDao.importThrProductss(udiRelevanceExportJsonResponse.getThrProductsEntities());
}
//供应商关联表导入
if (CollUtil.isNotEmpty(udiRelevanceExportJsonResponse.getUdiRlSupEntityList())) {
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
List<UdiRlSupEntity> udiRlSupEntityList = udiRelevanceExportJsonResponse.getUdiRlSupEntityList();
UdiRlSupDao mapper = batchSession.getMapper(UdiRlSupDao.class);
for (UdiRlSupEntity udiRlSupEntity : udiRlSupEntityList) {
mapper.importCompanyProductRelevance(udiRlSupEntity);
}
batchSession.commit();
batchSession.close();
}
}
}

@ -0,0 +1,410 @@
package com.glxp.api.service.basic.impl;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.constant.BasicProcessStatus;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.basic.BasicProductsImportLogDao;
import com.glxp.api.entity.basic.BasicProductsImportDetailEntity;
import com.glxp.api.entity.basic.BasicProductsImportLogEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.http.NmpaUdiClient;
import com.glxp.api.req.basic.FilterUdiIpLogRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.BasicProductsImportDetailService;
import com.glxp.api.service.basic.BasicProductsImportLogService;
import com.glxp.api.service.basic.UdiProductService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrDataService;
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.CustomUtil;
import com.glxp.api.util.DateUtil;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.HttpClient;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
@Service
public class BasicProductsImportLogServiceImpl implements BasicProductsImportLogService {
@Resource
BasicProductsImportLogDao udiInfoImportLogDao;
@Resource
NmpaUdiClient nmpaUdiClient;
@Resource
BasicProductsImportDetailService basicProductsImportDetailService;
@Resource
UdiProductService udiProductService;
@Resource
ThrSystemService thrSystemService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
ThrDataService thrDataService;
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
SystemParamConfigService systemParamConfigService;
@Override
public BasicProductsImportLogEntity selectByGenKey(String genKey) {
FilterUdiIpLogRequest filterUdiIpLogRequest = new FilterUdiIpLogRequest();
filterUdiIpLogRequest.setGenKey(genKey);
List<BasicProductsImportLogEntity> data = udiInfoImportLogDao.filterImportLog(filterUdiIpLogRequest);
if (data != null && data.size() > 0) {
return data.get(0);
}
return null;
}
@Override
public List<BasicProductsImportLogEntity> filterImportLog(FilterUdiIpLogRequest filterUdiIpLogRequest) {
if (filterUdiIpLogRequest == null) {
return Collections.emptyList();
}
if (filterUdiIpLogRequest.getPage() != null) {
int offset = (filterUdiIpLogRequest.getPage() - 1) * filterUdiIpLogRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiIpLogRequest.getLimit());
}
List<BasicProductsImportLogEntity> data = udiInfoImportLogDao.filterImportLog(filterUdiIpLogRequest);
return data;
}
@Override
public boolean insertImportLog(BasicProductsImportLogEntity basicProductsImportLogEntity) {
return udiInfoImportLogDao.insertImportLog(basicProductsImportLogEntity);
}
@Override
public boolean updateImportLog(BasicProductsImportLogEntity basicProductsImportLogEntity) {
return udiInfoImportLogDao.updateImportLog(basicProductsImportLogEntity);
}
@Override
public boolean deleteById(String id) {
return udiInfoImportLogDao.deleteById(id);
}
//导入产品信息文件,生成产品信息,更新或插入对照表
@Async
public void importUdiInfo(String genKey) {
BasicProductsImportLogEntity basicProductsImportLogEntity = selectByGenKey(genKey);
if (basicProductsImportLogEntity.getStatus() == BasicProcessStatus.UDIINFO_IMPORT_CODE_UNPROCESS) {
FilterUdiIpLogRequest filterUdiIpLogRequest = new FilterUdiIpLogRequest();
filterUdiIpLogRequest.setGenKey(genKey);
List<BasicProductsImportDetailEntity> udiInfoImportEntities
= basicProductsImportDetailService.filterUdiInfoImport(filterUdiIpLogRequest);
if (udiInfoImportEntities != null) {
for (BasicProductsImportDetailEntity basicProductsImportDetailEntity : udiInfoImportEntities) {
UdiProductEntity udiInfoEntity = null;
//国家库获取取UDI信息
if (basicProductsImportDetailEntity.getUdiCode() != null && !basicProductsImportDetailEntity.getUdiCode().trim().isEmpty()) {
udiInfoEntity = udiProductService.findByNameCode(basicProductsImportDetailEntity.getUdiCode());
List<UdiProductEntity> froms = null;
if (udiInfoEntity == null) {
froms = nmpaUdiClient.getUdiByDi(basicProductsImportDetailEntity.getUdiCode());
if (froms != null && !froms.isEmpty()) {
udiInfoEntity = froms.get(0);
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("未查询到UDI产品信息");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
continue;
}
}
if (froms != null)
udiProductService.insertUdiInfos(froms);
}
//判断更新
ThrSystemEntity thrSystemEntity = thrSystemService.selectMainThrSys();
String mainSys = thrSystemEntity.getThirdId();
String mainId = null;
if (mainSys.equals("thirdId")) {
mainId = basicProductsImportDetailEntity.getThirdId();
} else if (mainSys.equals("thirdId1")) {
mainId = basicProductsImportDetailEntity.getThirdId1();
} else if (mainSys.equals("thirdId2")) {
mainId = basicProductsImportDetailEntity.getThirdId2();
} else if (mainSys.equals("thirdId3")) {
mainId = basicProductsImportDetailEntity.getThirdId3();
} else if (mainSys.equals("thirdId4")) {
mainId = basicProductsImportDetailEntity.getThirdId4();
}
UdiRelevanceEntity udiRelevanceEntity = null;
if (udiInfoEntity == null) {
udiRelevanceEntity = udiRelevanceService.selectUpdateByThirdId(mainId); //更新
if (mainId != null) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(basicProductsImportDetailEntity.getThirdId(), "thirdId");
udiInfoEntity = new UdiProductEntity();
udiInfoEntity.setNameCode(thrProductsEntity.getCode());
udiInfoEntity.setCpmctymc(thrProductsEntity.getName());
udiInfoEntity.setGgxh(thrProductsEntity.getSpec());
udiInfoEntity.setUuid(CustomUtil.getUUId());
udiInfoEntity.setProductType(ConstantStatus.PRODUCT_TYPE_THIRD);
udiInfoEntity.setDiType(1);
udiInfoEntity.setManufactory(thrProductsEntity.getManufactory());
udiInfoEntity.setYlqxzcrbarmc(thrProductsEntity.getManufactory());
udiInfoEntity.setZczbhhzbapzbh(thrProductsEntity.getRegisterNo());
udiProductService.insertUdiInfo(udiInfoEntity);
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("格式错误!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
continue;
}
if (udiRelevanceEntity == null) {
udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setUuid(udiInfoEntity.getUuid());
updateValue(udiRelevanceEntity, basicProductsImportDetailEntity, basicProductsImportLogEntity, mainId);
udiRelevanceEntity.setId(gennerOrderUtils.getRelId());
udiRelevanceService.insertUdiRelevance(udiRelevanceEntity);
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("产品编码已存在,不能重复插入!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
} else {
if (mainId == null || "".equals(mainId)) {//只存在UDI
UdiRelevanceEntity temp = udiRelevanceService.selectUpdateByUuid(udiInfoEntity.getUuid());
if (temp != null &&
(temp.getThirdId() != null || temp.getThirdId1() != null || temp.getThirdId2() != null ||
temp.getThirdId3() != null || temp.getThirdId4() != null)) {
udiRelevanceEntity.setUuid(udiInfoEntity.getUuid());
updateValue(udiRelevanceEntity, basicProductsImportDetailEntity, basicProductsImportLogEntity, mainId);
udiRelevanceEntity.setId(gennerOrderUtils.getRelId());
udiRelevanceService.insertUdiRelevance(udiRelevanceEntity);
} else if (temp == null) {
temp = new UdiRelevanceEntity();
temp.setUuid(udiInfoEntity.getUuid());
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_SUCESS);
temp.setUpdateTime(new Date());
temp.setModifyTime(new Date());
udiRelevanceEntity.setId(gennerOrderUtils.getRelId());
udiRelevanceService.insertUdiRelevance(temp);
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("UDI已存在并且未关联不能重复插入");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
} else {
UdiRelevanceEntity temp = udiRelevanceService.selectUpteaByAll(udiInfoEntity.getUuid(), mainId);
if (temp != null) {
updateValue(temp, basicProductsImportDetailEntity, basicProductsImportLogEntity, mainId);
udiRelevanceService.updateUdiRelevance(temp);
} else {
UdiRelevanceEntity mTemp = udiRelevanceService.selectUpdateByThirdId(mainId);
if (mTemp != null) {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("产品编码已存在关联不能重复插入!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
} else {
UdiRelevanceEntity mTemp2 = udiRelevanceService.selectUpdateByUuid(udiInfoEntity.getUuid());
if (mTemp2 != null && (mTemp2.getThirdId() != null || mTemp2.getThirdId1() != null || mTemp2.getThirdId2() != null ||
mTemp2.getThirdId3() != null || mTemp2.getThirdId4() != null)) {
udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setUuid(udiInfoEntity.getUuid());
updateValue(udiRelevanceEntity, basicProductsImportDetailEntity, basicProductsImportLogEntity, mainId);
udiRelevanceEntity.setId(gennerOrderUtils.getRelId());
udiRelevanceService.insertUdiRelevance(udiRelevanceEntity);
} else {
udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setUuid(udiInfoEntity.getUuid());
updateValue(udiRelevanceEntity, basicProductsImportDetailEntity, basicProductsImportLogEntity, mainId);
udiRelevanceEntity.setId(gennerOrderUtils.getRelId());
udiRelevanceService.insertUdiRelevance(udiRelevanceEntity);
}
}
}
}
}
//字段更新
basicProductsImportDetailService.updateUdiInfoImport(basicProductsImportDetailEntity);
}
}
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
updateImportLog(basicProductsImportLogEntity);
}
}
public void updateValue(UdiRelevanceEntity udiRelevanceEntity, BasicProductsImportDetailEntity basicProductsImportDetailEntity,
BasicProductsImportLogEntity basicProductsImportLogEntity, String mainId) {
String time = DateUtil.getDateTime();
udiRelevanceEntity.setUpdateTime(new Date());
udiRelevanceEntity.setModifyTime(new Date());
if (basicProductsImportDetailEntity.getIsUseDy() != null && !basicProductsImportDetailEntity.getIsUseDy().trim().equals("")) {
if (basicProductsImportDetailEntity.getIsUseDy().equals("是")) {
udiRelevanceEntity.setIsUseDy(true);
} else {
udiRelevanceEntity.setIsUseDy(false);
}
}
if (basicProductsImportDetailEntity.getThirdId() != null && !basicProductsImportDetailEntity.getThirdId().trim().equals("")) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(basicProductsImportDetailEntity.getThirdId(), "thirdId");
if (thrProductsEntity != null) {
if (mainId != null && basicProductsImportDetailEntity.getThirdId().equals(mainId)) {
udiRelevanceEntity.setMainId(mainId);
}
udiRelevanceEntity.setThirdId(basicProductsImportDetailEntity.getThirdId());
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_SUCESS);
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("未查询到系统产品信息!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
}
if (basicProductsImportDetailEntity.getThirdId1() != null && !basicProductsImportDetailEntity.getThirdId1().trim().equals("")) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(basicProductsImportDetailEntity.getThirdId1(), "thirdId1");
if (thrProductsEntity != null) {
if (mainId != null && basicProductsImportDetailEntity.getThirdId1().equals(mainId)) {
udiRelevanceEntity.setMainId(mainId);
}
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_SUCESS);
udiRelevanceEntity.setThirdId1(basicProductsImportDetailEntity.getThirdId1());
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("未查询到系统产品信息!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
}
if (basicProductsImportDetailEntity.getThirdId2() != null && !basicProductsImportDetailEntity.getThirdId2().trim().equals("")) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(basicProductsImportDetailEntity.getThirdId2(), "thirdId2");
if (thrProductsEntity != null) {
if (mainId != null && basicProductsImportDetailEntity.getThirdId2().equals(mainId)) {
udiRelevanceEntity.setMainId(mainId);
}
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_SUCESS);
udiRelevanceEntity.setThirdId2(basicProductsImportDetailEntity.getThirdId2());
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
udiRelevanceEntity.setThirdId(basicProductsImportDetailEntity.getThirdId());
basicProductsImportDetailEntity.setRemark("未查询到系统产品信息!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
}
if (basicProductsImportDetailEntity.getThirdId3() != null && !basicProductsImportDetailEntity.getThirdId3().trim().equals("")) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(basicProductsImportDetailEntity.getThirdId3(), "thirdId3");
if (thrProductsEntity != null) {
if (mainId != null && basicProductsImportDetailEntity.getThirdId3().equals(mainId)) {
udiRelevanceEntity.setMainId(mainId);
}
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_SUCESS);
udiRelevanceEntity.setThirdId3(basicProductsImportDetailEntity.getThirdId3());
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
udiRelevanceEntity.setThirdId(basicProductsImportDetailEntity.getThirdId());
basicProductsImportDetailEntity.setRemark("未查询到系统产品信息!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
}
if (basicProductsImportDetailEntity.getThirdId4() != null && !basicProductsImportDetailEntity.getThirdId4().trim().equals("")) {
ThrProductsEntity thrProductsEntity = thrDataService.getProducts(basicProductsImportDetailEntity.getThirdId4(), "thirdId1");
if (thrProductsEntity != null) {
if (mainId != null && basicProductsImportDetailEntity.getThirdId4().equals(mainId)) {
udiRelevanceEntity.setMainId(mainId);
}
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_SUCESS);
udiRelevanceEntity.setThirdId4(basicProductsImportDetailEntity.getThirdId4());
} else {
basicProductsImportDetailEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_CODE_FAIL);
basicProductsImportDetailEntity.setRemark("未查询到系统产品信息!");
basicProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
}
}
}
//下载供应商产品信息,
@Async
public void downloadSmpUdiInfo(String genKey, String lastUpdateTime) {
int page = 1;
int limit = 100;
while (true) {
List<UdiRelevanceResponse> udiRelevanceResponses = getUdiInfo(page, limit, lastUpdateTime);
if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) {
for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) {
BasicProductsImportDetailEntity udiInfoImportEntity = new BasicProductsImportDetailEntity();
udiInfoImportEntity.setUdiCode(udiRelevanceResponse.getNameCode());
BeanUtils.copyProperties(udiRelevanceResponse, udiInfoImportEntity);
udiInfoImportEntity.setUpdateTime(new Date());
udiInfoImportEntity.setGenKeyFk(genKey);
if (udiRelevanceResponse.getIsUseDy()) {
udiInfoImportEntity.setIsUseDy("是");
} else {
udiInfoImportEntity.setIsUseDy("否");
}
basicProductsImportDetailService.insertUdiInfoImport(udiInfoImportEntity);
}
if (udiRelevanceResponses.size() >= 100) {
page++;
} else {
break;
}
} else {
break;
}
}
importUdiInfo(genKey);
}
public List<UdiRelevanceResponse> getUdiInfo(int page, int limit, String lastUpdateTime) {
String smpUrl = "";
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("smp_service_ip");
if (systemParamConfigEntity != null) {
smpUrl = systemParamConfigEntity.getParamValue();
}
Map<String, Object> paramMap = new HashMap<>(16);
paramMap.put("page", page);
paramMap.put("limit", limit);
paramMap.put("dataType", "2");//数据类型为供应商平台上传
paramMap.put("lastUpdateTime", lastUpdateTime);
String response = HttpClient.mipsGet(smpUrl + "/udiwms/basic/products/download", paramMap);
try {
BaseResponse<PageSimpleResponse<UdiRelevanceResponse>> udiDlDeviceResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<UdiRelevanceResponse>>>() {
});
if (udiDlDeviceResponse != null && udiDlDeviceResponse.getCode() == 20000) {
List<UdiRelevanceResponse> udiRelevanceResponses = udiDlDeviceResponse.getData().getList();
return udiRelevanceResponses;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return null;
}
}

@ -55,8 +55,9 @@ public class ThrCorpExportLogServiceImpl implements ThrCorpExportLogService {
public boolean updateThrCorpExportLog(ThrCorpExportLogEntity thrCorpExportLogEntity) {
//塞入创建时间创建人
thrCorpExportLogEntity.setCreateTime(new Date());
thrCorpExportLogEntity.setCreateUser(String.valueOf(customerService.getUserId()));
thrCorpExportLogEntity.setUpdateUser(String.valueOf(customerService.getUserId()));
//todo 未添加创建人
// thrCorpExportLogEntity.setCreateUser(String.valueOf(customerService.getUserId()));
// thrCorpExportLogEntity.setUpdateUser(String.valueOf(customerService.getUserId()));
return thrCorpExportLogDao.updateThrCorpExportLog(thrCorpExportLogEntity);
}

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.glxp.api.dao.basic.BasicProductsExportLogDao">
<select id="filterUdiInfoExportLog" parameterType="com.glxp.api.req.basic.FilterUdiEpLogRequest"
resultType="com.glxp.api.entity.basic.BasicProductsExportLogEntity">
SELECT * FROM basic_products_export_log
<where>
<if test="genKey != '' and genKey != null">
AND genKey = #{genKey}
</if>
<if test="status != '' and status != null">
AND status = #{status}
</if>
<if test="type != '' and type != null">
AND `type` = #{type}
</if>
</where>
ORDER BY updateTime DESC
</select>
<insert id="insertUdiInfoExportLog" keyProperty="id"
parameterType="com.glxp.api.entity.basic.BasicProductsExportLogEntity">
insert INTO basic_products_export_log
(genKey,updateTime,dlCount,status,filePath,remark,`type`)
values
(
#{genKey},
#{updateTime},
#{dlCount},#{status},#{filePath},#{remark},#{type}
)
</insert>
<delete id="deleteById" parameterType="Map">
DELETE FROM basic_products_export_log WHERE id = #{id}
</delete>
<update id="updateUdiInfoExportLog" parameterType="com.glxp.api.entity.basic.BasicProductsExportLogEntity">
UPDATE basic_products_export_log
<set>
<if test="updateTime != null">updateTime=#{updateTime},</if>
<if test="dlCount != null">dlCount=#{dlCount},</if>
<if test="status != null">status=#{status},</if>
<if test="filePath != null">filePath=#{filePath},</if>
<if test="remark != null">remark=#{remark},</if>
</set>
WHERE genKey = #{genKey}
</update>
<select id="selectFilePathById" resultType="java.lang.String">
select filePath from basic_products_export_log where id = #{id}
</select>
</mapper>

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.glxp.api.dao.basic.BasicProductsImportDetailDao">
<select id="filterUdiInfoImport" parameterType="com.glxp.api.req.basic.FilterUdiIpLogRequest"
resultType="com.glxp.api.entity.basic.BasicProductsImportDetailEntity">
SELECT * FROM basic_products_import_detail
<where>
<if test="genKey != '' and genKey != null">
AND genKeyFk = #{genKey}
</if>
<if test="id != '' and id != null">
AND id = #{id}
</if>
<if test="status != '' and status != null">
AND status = #{status}
</if>
<if test="thirdSysFk != '' and thirdSysFk != null">
AND thirdSysFk = #{thirdSysFk}
</if>
</where>
</select>
<insert id="insertUdiInfoImport" keyProperty="id"
parameterType="com.glxp.api.entity.basic.BasicProductsImportDetailEntity">
insert INTO basic_products_import_detail
(udiCode,ybbm,sptm,thirdId1,thirdId2,
thirdId3,thirdId4,thirdId,status,updateTime,remark,genKeyFk,isUseDy)
values
(
#{udiCode}, #{ybbm},#{sptm},
#{thirdId1}, #{thirdId2},#{thirdId3},
#{thirdId4}, #{thirdId},#{status},
#{updateTime},#{remark}, #{genKeyFk},#{isUseDy}
)
</insert>
<insert id="insertUdiInfoImports" keyProperty="id" parameterType="java.util.List">
insert INTO basic_products_import_detail
(udiCode,ybbm,sptm,thirdId1,thirdId2,
thirdId3,thirdId4,thirdId,status,updateTime,remark,genKeyFk,isUseDy)
values
<foreach collection="udiInfos" item="item" index="index"
separator=",">
(
#{item.udiCode}, #{item.ybbm},#{item.sptm},
#{item.thirdId1}, #{item.thirdId2},#{item.thirdId3},
#{item.thirdId4}, #{item.thirdId},#{item.status},
#{item.updateTime},#{item.remark}, #{item.genKeyFk},#{item.isUseDy}
)
</foreach>
</insert>
<delete id="deleteById" parameterType="Map">
DELETE FROM basic_products_import_detail WHERE id = #{id}
</delete>
<delete id="deleteByGenkey" parameterType="Map">
DELETE FROM basic_products_import_detail WHERE genKeyFk = #{genKey}
</delete>
<update id="updateUdiInfoImport" parameterType="com.glxp.api.entity.basic.BasicProductsImportDetailEntity">
UPDATE basic_products_import_detail
<trim prefix="set" suffixOverrides=",">
<if test="udiCode != null">udiCode=#{udiCode},</if>
<if test="ybbm != null">ybbm=#{ybbm},</if>
<if test="sptm != null">sptm=#{sptm},</if>
<if test="thirdId1 != null">thirdId1=#{thirdId1},</if>
<if test="thirdId2 != null">thirdId2=#{thirdId2},</if>
<if test="thirdId3 != null">thirdId3=#{thirdId3},</if>
<if test="thirdId4 != null">thirdId4=#{thirdId4},</if>
<if test="thirdId != null">thirdId=#{thirdId},</if>
<if test="status != null">status=#{status},</if>
<if test="updateTime != null">updateTime=#{updateTime},</if>
<if test="remark != null">remark=#{remark},</if>
<if test="isUseDy != null">isUseDy=#{isUseDy},</if>
</trim>
WHERE id = #{id}
</update>
</mapper>

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.glxp.api.dao.basic.BasicProductsImportLogDao">
<select id="filterImportLog" parameterType="com.glxp.api.req.basic.FilterUdiIpLogRequest"
resultType="com.glxp.api.entity.basic.BasicProductsImportLogEntity">
SELECT * FROM basic_products_import_log
<where>
<if test="genKey != '' and genKey != null">
AND genKey = #{genKey}
</if>
<if test="id != '' and id != null">
AND id = #{id}
</if>
<if test="fromType != '' and fromType != null">
AND fromType = #{fromType}
</if>
<if test="status != '' and status != null">
AND status = #{status}
</if>
<if test="thirdSysFk != '' and thirdSysFk != null">
AND thirdSysFk = #{thirdSysFk}
</if>
</where>
ORDER BY updateTime DESC
</select>
<insert id="insertImportLog" keyProperty="id" parameterType="com.glxp.api.entity.basic.BasicProductsImportLogEntity">
insert INTO basic_products_import_log
(genKey,fromType,updateTime,thirdSysFk,status)
values
(
#{genKey},
#{fromType},
#{updateTime},
#{thirdSysFk},#{status}
)
</insert>
<delete id="deleteById" parameterType="Map">
DELETE FROM basic_products_import_log WHERE id = #{id}
</delete>
<update id="updateImportLog" parameterType="com.glxp.api.entity.basic.BasicProductsImportLogEntity">
UPDATE basic_products_import_log
<set>
<if test="genKey != null">genKey=#{genKey},</if>
<if test="fromType != null">fromType=#{fromType},</if>
<if test="updateTime != null">updateTime=#{updateTime},</if>
<if test="thirdSysFk != null">thirdSysFk=#{thirdSysFk},</if>
<if test="status != null">status=#{status},</if>
<if test="remark != null">remark=#{remark},</if>
</set>
WHERE genKey = #{genKey}
</update>
</mapper>
Loading…
Cancel
Save