From 2113ab9fe849f39e8e60e4af6d5ceb60c968155e Mon Sep 17 00:00:00 2001 From: MrZhai Date: Thu, 17 Mar 2022 09:57:27 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE=E5=BE=80?= =?UTF-8?q?=E6=9D=A5=E5=8D=95=E4=BD=8D=E4=BF=A1=E6=81=AF=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E5=85=B3=E8=81=94=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/CorpImportLogController.java | 9 ++-- .../sale/admin/dao/thrsys/ThrCorpDao.java | 2 + .../BasicUnitMaintainExportResponse.java | 30 +++++++++++ .../admin/thread/BasicCorpImportService.java | 42 +++++++++++---- .../admin/thread/BasicGenExcelService.java | 51 +++++++++++++++++-- .../mybatis/mapper/thrsys/ThrCorpDao.xml | 14 +++++ 6 files changed, 128 insertions(+), 20 deletions(-) create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/basic/BasicUnitMaintainExportResponse.java diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpImportLogController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpImportLogController.java index b14abac..0e39f49 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpImportLogController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpImportLogController.java @@ -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 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 { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java index de05094..9f4b2c7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java @@ -30,4 +30,6 @@ public interface ThrCorpDao { * @param thrCorpEntities */ void importThrCorps(@Param("thrCorpEntities") List thrCorpEntities); + + void importThrCorp(ThrCorpEntity thrCorpEntity); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/basic/BasicUnitMaintainExportResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/basic/BasicUnitMaintainExportResponse.java new file mode 100644 index 0000000..368e873 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/basic/BasicUnitMaintainExportResponse.java @@ -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 corpList; + + /** + * 第三方往来单位信息 + */ + private List thrCorpEntities; + + public BasicUnitMaintainExportResponse() { + this.corpList = new ArrayList<>(); + this.thrCorpEntities = new ArrayList<>(); + } +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicCorpImportService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicCorpImportService.java index 11e6704..6dd3c77 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicCorpImportService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicCorpImportService.java @@ -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 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 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 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); } } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java index bd52e3b..b0373e5 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java @@ -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 exportData = new ArrayList<>(); + BasicUnitMaintainExportResponse exportData = new BasicUnitMaintainExportResponse(); + + List unitMaintainEntities = new ArrayList<>(); if (corpsExportRequest.getIds() != null && corpsExportRequest.getIds().size() > 0) { List ids = corpsExportRequest.getIds(); ids.forEach(id -> { BasicUnitMaintainFilterRequest request = new BasicUnitMaintainFilterRequest(); request.setId(id); List 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 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 basicUnitMaintainEntities) { + if (CollUtil.isNotEmpty(basicUnitMaintainEntities)) { + List 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 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(); diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml index 94f6695..0ff5b1b 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml @@ -117,4 +117,18 @@ #{item.thirdSysFk}, #{item.updateTime}) + + + 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}) + \ No newline at end of file