1.基础数据往来单位信息数据导入导出关联第三方数据

master
MrZhai 3 years ago
parent a58340e2e0
commit 2113ab9fe8

@ -2,17 +2,16 @@ package com.glxp.sale.admin.controller.basic;
import cn.hutool.core.io.IoUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.glxp.sale.admin.annotation.AuthRuleAnnotation;
import com.glxp.sale.admin.constant.BasicProcessStatus;
import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity;
import com.glxp.sale.admin.entity.basic.CorpImportDetailEntity;
import com.glxp.sale.admin.entity.basic.CorpImportLogEntity;
import com.glxp.sale.admin.req.basic.FilterUdiIpLogRequest;
import com.glxp.sale.admin.req.basic.PostCorpsRequest;
import com.glxp.sale.admin.req.info.DeleteRequest;
import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.res.basic.BasicUnitMaintainExportResponse;
import com.glxp.sale.admin.service.basic.BasicThirdSysService;
import com.glxp.sale.admin.service.basic.CorpImportDetailService;
import com.glxp.sale.admin.service.basic.CorpImportLogService;
@ -134,9 +133,9 @@ public class CorpImportLogController {
//解析数据
try {
String fileType = fileName.substring(fileName.lastIndexOf("."));
if (".udi".equals(fileType.toLowerCase())) {
if (".udi".equalsIgnoreCase(fileType)) {
String jsonData = IoUtil.read(file.getInputStream()).toString();
List<BasicUnitMaintainEntity> basicUnitMaintainEntities = JSON.parseArray(jsonData, BasicUnitMaintainEntity.class);
BasicUnitMaintainExportResponse data = JSONUtil.toBean(jsonData, BasicUnitMaintainExportResponse.class);
//导入日志
CorpImportLogEntity corpImportLogEntity = new CorpImportLogEntity();
@ -146,7 +145,7 @@ public class CorpImportLogController {
corpImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS);
corpImportLogEntity.setUpdateTime(new Date(System.currentTimeMillis()));
corpImportLogService.insertImportLog(corpImportLogEntity);
basicCorpImportService.importJsonData(basicUnitMaintainEntities);
basicCorpImportService.importJsonData(data);
corpImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
corpImportLogService.updateImportLog(corpImportLogEntity);
} else {

@ -30,4 +30,6 @@ public interface ThrCorpDao {
* @param thrCorpEntities
*/
void importThrCorps(@Param("thrCorpEntities") List<ThrCorpEntity> thrCorpEntities);
void importThrCorp(ThrCorpEntity thrCorpEntity);
}

@ -0,0 +1,30 @@
package com.glxp.sale.admin.res.basic;
import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity;
import com.glxp.sale.admin.entity.thrsys.ThrCorpEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
*
*/
@Data
public class BasicUnitMaintainExportResponse {
/**
*
*/
private List<BasicUnitMaintainEntity> corpList;
/**
*
*/
private List<ThrCorpEntity> thrCorpEntities;
public BasicUnitMaintainExportResponse() {
this.corpList = new ArrayList<>();
this.thrCorpEntities = new ArrayList<>();
}
}

@ -4,10 +4,13 @@ import cn.hutool.core.collection.CollUtil;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.UdiInfoImportStatus;
import com.glxp.sale.admin.dao.basic.BasicUnitMaintainDao;
import com.glxp.sale.admin.dao.thrsys.ThrCorpDao;
import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity;
import com.glxp.sale.admin.entity.basic.CorpImportDetailEntity;
import com.glxp.sale.admin.entity.basic.CorpImportLogEntity;
import com.glxp.sale.admin.entity.thrsys.ThrCorpEntity;
import com.glxp.sale.admin.req.basic.FilterUdiIpLogRequest;
import com.glxp.sale.admin.res.basic.BasicUnitMaintainExportResponse;
import com.glxp.sale.admin.service.basic.BasicUnitMaintainService;
import com.glxp.sale.admin.service.basic.CorpImportDetailService;
import com.glxp.sale.admin.service.basic.CorpImportLogService;
@ -66,18 +69,35 @@ public class BasicCorpImportService {
*
* @param basicUnitMaintainEntities
*/
public void importJsonData(List<BasicUnitMaintainEntity> basicUnitMaintainEntities) {
if (CollUtil.isNotEmpty(basicUnitMaintainEntities)) {
try {
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
BasicUnitMaintainDao mapper = batchSession.getMapper(BasicUnitMaintainDao.class);
for (BasicUnitMaintainEntity basicUnitMaintainEntity : basicUnitMaintainEntities) {
mapper.importBasicUnitMaintain(basicUnitMaintainEntity);
public void importJsonData(BasicUnitMaintainExportResponse importData) {
if (null != importData) {
SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
if (CollUtil.isNotEmpty(importData.getCorpList())) {
try {
List<BasicUnitMaintainEntity> corpList = importData.getCorpList();
BasicUnitMaintainDao mapper = batchSession.getMapper(BasicUnitMaintainDao.class);
for (BasicUnitMaintainEntity basicUnitMaintainEntity : corpList) {
mapper.importBasicUnitMaintain(basicUnitMaintainEntity);
}
batchSession.commit();
log.info("导入往来单位数据成功,导入数量为:{} 条", corpList.size());
} catch (Exception e) {
log.error("导入往来单位信息异常", e);
}
}
if (CollUtil.isNotEmpty(importData.getThrCorpEntities())) {
try {
List<ThrCorpEntity> thrCorpEntities = importData.getThrCorpEntities();
ThrCorpDao mapper = batchSession.getMapper(ThrCorpDao.class);
thrCorpEntities.forEach(thrCorpEntity -> {
mapper.importThrCorp(thrCorpEntity);
});
batchSession.commit();
log.info("导入第三方往来单位数据成功,导入数量为:{}", thrCorpEntities.size());
} catch (Exception e) {
log.error("导入第三方往来单位数据失败", e);
}
batchSession.commit();
log.info("导入数据成功,导入数量为:{} 条", basicUnitMaintainEntities.size());
} catch (Exception e) {
log.error("导入往来单位信息异常", e);
}
}
}

@ -4,18 +4,23 @@ 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;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.glxp.sale.admin.constant.BasicProcessStatus;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.dao.basic.UdiInfoDao;
import com.glxp.sale.admin.dao.basic.UdiRelevanceDao;
import com.glxp.sale.admin.dao.thrsys.ThrCorpDao;
import com.glxp.sale.admin.dao.thrsys.ThrProductsDao;
import com.glxp.sale.admin.entity.basic.*;
import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity;
import com.glxp.sale.admin.entity.thrsys.ThrCorpEntity;
import com.glxp.sale.admin.entity.thrsys.ThrProductsEntity;
import com.glxp.sale.admin.req.basic.*;
import com.glxp.sale.admin.req.info.FilterCompanyProductRelevanceRequest;
import com.glxp.sale.admin.req.thrsys.FilterThrCorpRequest;
import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest;
import com.glxp.sale.admin.res.basic.BasicUnitMaintainExportResponse;
import com.glxp.sale.admin.res.basic.UdiExportJsonResponse;
import com.glxp.sale.admin.res.basic.UdiRelevanceExportJsonResponse;
import com.glxp.sale.admin.res.basic.UdiRelevanceResponse;
@ -57,35 +62,73 @@ public class BasicGenExcelService {
private CompanyProductRelevanceService companyProductRelevanceService;
@Resource
ThrProductsDao thrProductsDao;
@Resource
ThrCorpDao thrCorpDao;
//往来单位
@Async
public void exportCorp(String genKey, CorpsExportRequest corpsExportRequest) {
CorpExportLogEntity corpExportLogEntity = corpExportLogService.selectByGenKey(genKey);
List<BasicUnitMaintainEntity> exportData = new ArrayList<>();
BasicUnitMaintainExportResponse exportData = new BasicUnitMaintainExportResponse();
List<BasicUnitMaintainEntity> unitMaintainEntities = new ArrayList<>();
if (corpsExportRequest.getIds() != null && corpsExportRequest.getIds().size() > 0) {
List<Integer> ids = corpsExportRequest.getIds();
ids.forEach(id -> {
BasicUnitMaintainFilterRequest request = new BasicUnitMaintainFilterRequest();
request.setId(id);
List<BasicUnitMaintainEntity> basicUnitMaintainEntities = basicUnitMaintainService.filterList(request);
exportData.addAll(basicUnitMaintainEntities);
unitMaintainEntities.addAll(basicUnitMaintainEntities);
getThrCorpList(exportData, basicUnitMaintainEntities);
});
} else { //一键导出
BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest();
BeanUtils.copyProperties(corpsExportRequest, filterRequest);
filterRequest.setPage(null);
List<BasicUnitMaintainEntity> basicUnitMaintainEntities = basicUnitMaintainService.filterList(filterRequest);
exportData.addAll(basicUnitMaintainEntities);
unitMaintainEntities.addAll(basicUnitMaintainEntities);
getThrCorpList(exportData, basicUnitMaintainEntities);
}
exportData.setCorpList(unitMaintainEntities);
FileWriter writer = new FileWriter(corpExportLogEntity.getFilePath());
writer.write(JSONUtil.toJsonStr(exportData));
corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
corpExportLogService.updateCorpExportLog(corpExportLogEntity);
}
/**
*
*
* @param exportData
* @param basicUnitMaintainEntities
*/
private void getThrCorpList(BasicUnitMaintainExportResponse exportData, List<BasicUnitMaintainEntity> basicUnitMaintainEntities) {
if (CollUtil.isNotEmpty(basicUnitMaintainEntities)) {
List<ThrCorpEntity> thrCorpEntities = new ArrayList<>();
Field[] fields = ReflectUtil.getFields(BasicUnitMaintainEntity.class);
basicUnitMaintainEntities.forEach(basicUnitMaintainEntity -> {
for (Field field : fields) {
if (field.getName().contains("thirdId")) {
String value = String.valueOf(ReflectUtil.getFieldValue(basicUnitMaintainEntity, field));
if (StrUtil.isNotBlank(value)) {
FilterThrCorpRequest thrCorpRequest = new FilterThrCorpRequest();
thrCorpRequest.setThirdSysFk("thirdId");
thrCorpRequest.setUnitId(value);
List<ThrCorpEntity> result = thrCorpDao.filterThrCorps(thrCorpRequest);
if (CollUtil.isNotEmpty(result)) {
thrCorpEntities.addAll(result);
}
}
}
}
});
if (CollUtil.isNotEmpty(thrCorpEntities)) {
exportData.setThrCorpEntities(thrCorpEntities);
}
}
}
@Async
public void uploadCorpSmp(String genKey, CorpsExportRequest corpsExportRequest) {
PostCorpsRequest postCorpsRequest = new PostCorpsRequest();

@ -117,4 +117,18 @@
#{item.thirdSysFk}, #{item.updateTime})
</foreach>
</insert>
<insert id="importThrCorp" parameterType="com.glxp.sale.admin.entity.thrsys.ThrCorpEntity">
replace into thr_corp (id, unitId, spell, addr, creditNo, contact, mobile, thirdSysFk, name, updateTime)
values (#{id},
#{unitId},
#{spell},
#{addr},
#{creditNo},
#{contact},
#{mobile},
#{thirdSysFk},
#{name},
#{updateTime})
</insert>
</mapper>
Loading…
Cancel
Save