From 75ec4627d112212b78e43f40f4d6d28035944a7a Mon Sep 17 00:00:00 2001 From: TL <2445390702@qq.com> Date: Fri, 25 Jul 2025 16:27:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E9=9B=86=E5=9B=A2?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supplier/base/service/IDtService.java | 10 ++ .../base/service/impl/DtServiceImpl.java | 118 ++++++++++++++++++ .../impl/CoscoAccessWorkServiceImpl.java | 30 +++-- .../dao/mapper/CoscoSupplierBaseMapper.xml | 2 +- 4 files changed, 152 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IDtService.java create mode 100644 src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/DtServiceImpl.java diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IDtService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IDtService.java new file mode 100644 index 0000000..8c72419 --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IDtService.java @@ -0,0 +1,10 @@ +package com.chinaunicom.zyhy.ebtp.supplier.base.service; + + +import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoSupplierBase; + +public interface IDtService { + + + String maintain( CoscoSupplierBase coscoSupplierBase); +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/DtServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/DtServiceImpl.java new file mode 100644 index 0000000..e93f4f7 --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/DtServiceImpl.java @@ -0,0 +1,118 @@ +package com.chinaunicom.zyhy.ebtp.supplier.base.service.impl; + +import com.chinaunicom.mall.ebtp.common.base.client.DictRegionInternationalClient; +import com.chinaunicom.mall.ebtp.common.base.entity.*; +import com.chinaunicom.mall.ebtp.common.dt.client.DtFeignClient; +import com.chinaunicom.mall.ebtp.common.dt.entity.DtMaintainRequest; +import com.chinaunicom.mall.ebtp.common.dt.entity.DtMaintainRespone; +import com.chinaunicom.mall.ebtp.common.dt.entity.maintain.Update; +import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoType; +import com.chinaunicom.zyhy.ebtp.supplier.base.service.IDtService; +import com.chinaunicom.zyhy.ebtp.supplier.common.CoscoDateUtils; +import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoSupplierBase; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + + +@Service +public class DtServiceImpl implements IDtService { + + @Autowired + private DtFeignClient dtFeignClient; + @Autowired + private DictRegionInternationalClient dictRegionInternationalClient; + + + + /** + * 参考:客商主数据平台接口说明书(客户)-征求意见稿V2.3.docx(上游).docx + * 客户数据单条维护接口 + * POST /mdm/maintain + * opType: + * C新增 + * U更新 + * D停用(冻结) + * E启用(解除冻结) + * S保存(用于不便区分操作类型的业务场景) + * K校验(进行合规校验和标准校验,不正式写入) + 参数: + { + "masterDataCode": "ods_custsup_customer_vendor_info", + "opType": "C", + "updateColumns": { + "sourceId": "20001DERJ291", + "sourceStatus": "1", + "sourceCompany": "9999100300", + "sourceSystem": "XT20210873086", + "code": "30911103027886014929", + "name": "联通数字科技有限公司", + "nameLanguage": "ZH", + "localName": "联通数字科技有限公司", + "nature": "20", + "country": "CN", + "certificateType": "10", + "certificateId": "911103027886014929", + "organizationType": "30", + "createdDate": "2025-06-18 16:47:21", + "lastModifiedUser": "IRIS4", + "lastModifiedDate": "2025-06-18 16:47:21" + } + } + 返回: + { + "code":200, + "message":"success", + "success": true, + "data":{ + "sourceID":"20001DERJ291", + "sapCode":"1000284811" + } + } + */ + @Override + public String maintain(CoscoSupplierBase coscoSupplierBase) { + + DtMaintainRequest dtMaintainRequest = new DtMaintainRequest(); + Update updateColumns = new Update(); + dtMaintainRequest.setMasterDataCode("ods_custsup_customer_vendor_info");//标识 + dtMaintainRequest.setOpType("C");//新增 + updateColumns.setSourceId(coscoSupplierBase.getId());//供应商id + updateColumns.setSourceStatus("1");//供应商状态1正常 + updateColumns.setSourceCompany("9999100300");//数据来源公司 + updateColumns.setSourceSystem("XT20210873086");//数据来源系统 + updateColumns.setCode(coscoSupplierBase.getUnifiedCode());//供应商唯一标识码 + + if(CoscoType.SUPPLIER_TYPE_DVS.equals(coscoSupplierBase.getSupplierType())){ + //境内 + updateColumns.setName(coscoSupplierBase.getName());//供应商名称 + updateColumns.setNameLanguage("ZH");//供应商语言 + updateColumns.setLocalName(coscoSupplierBase.getName());//供应商本国名称 + updateColumns.setCountry("CH");//供应商国家代码 + updateColumns.setCertificateType("10");//证件类型 + }else if(CoscoType.SUPPLIER_TYPE_OVS.equals(coscoSupplierBase.getSupplierType())){ + //境外 + updateColumns.setName(coscoSupplierBase.getNameEn()); + updateColumns.setNameLanguage("EN");//语言 + updateColumns.setCountry(dictRegionInternationalClient.get(coscoSupplierBase.getNation()).getData().getAb()); + updateColumns.setLocalName(coscoSupplierBase.getNameEn()); + updateColumns.setCertificateType("20"); + }else{ + //个人 + updateColumns.setName(coscoSupplierBase.getName());//供应商名称 + updateColumns.setNameLanguage("ZH");//供应商语言 + updateColumns.setLocalName(coscoSupplierBase.getName());//供应商本国名称 + updateColumns.setCountry("CH");//供应商国家代码 + updateColumns.setCertificateType("40");//证件类型 + } + updateColumns.setCertificateId(coscoSupplierBase.getUnifiedCode());//3合一,统一信用代码、身份证号、税号 + updateColumns.setNature("20");//供应商 + updateColumns.setOrganizationType("30");//第三方供应商 + updateColumns.setCreatedDate(CoscoDateUtils.getTime()); + updateColumns.setLastModifiedUser("IRIS4");//最后更新人 + updateColumns.setLastModifiedDate(CoscoDateUtils.getTime());//最后更新时间 + dtMaintainRequest.setUpdateColumns(updateColumns); + BaseResponse dtMaintainResponeBaseResponse = dtFeignClient.maintain(dtMaintainRequest); + return dtMaintainResponeBaseResponse.getData().getSapCode(); + } +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java index 7479946..71fdecd 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java @@ -8,6 +8,7 @@ import com.chinaunicom.mall.ebtp.common.base.entity.SysOrgVO; import com.chinaunicom.mall.ebtp.common.base.entity.SysUser; import com.chinaunicom.mall.ebtp.common.base.util.TokenUtil; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; +import com.chinaunicom.zyhy.ebtp.supplier.base.service.IDtService; import com.chinaunicom.zyhy.ebtp.supplier.base.service.IOrgService; import com.chinaunicom.zyhy.ebtp.supplier.base.service.IUserService; import com.chinaunicom.zyhy.ebtp.supplier.common.CoscoDateUtils; @@ -68,6 +69,9 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService { private IOrgService orgService; @Autowired private IUserService userService; + @Autowired + private IDtService dtService; + /** * 供应商准入管理列表 @@ -715,8 +719,25 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService { coscoAccessSupplierCategory.setLastUpdateTime(date); coscoAccessSupplierCategoryInsertList.add(coscoAccessSupplierCategory); } + + //调用集团推送接口 + CoscoSupplierBase coscoSupplierBase = coscoSupplierBaseMapper.selectCoscoSupplierBaseById(accessSupplier.getSupplierId()); + String sapCode = ""; + if(StringUtils.isEmpty(coscoSupplierBase.getSapCode())){ + sapCode = dtService.maintain(coscoSupplierBase); + } //需要修改供应商id结合 - supplierBaseIdList.add(accessSupplier.getSupplierId()); + //supplierBaseIdList.add(accessSupplier.getSupplierId()); + + //批量修改供应商基础信息状态---需要修改sapCode + CoscoSupplierBase batchUpCoscoSupplierBase = new CoscoSupplierBase(); + batchUpCoscoSupplierBase.setAccessStatus(CoscoType.ACCESS_STATUS_YZR); + batchUpCoscoSupplierBase.setId(accessSupplier.getSupplierId()); + batchUpCoscoSupplierBase.setSapCode(sapCode); + batchUpCoscoSupplierBase.setUpdateTime(date); + batchUpCoscoSupplierBase.setLastUpdateTime(date); + coscoSupplierBaseMapper.updateCoscoSupplierBase(batchUpCoscoSupplierBase); + //需要修改准入供应商表id结合 accessSupplierIdList.add(accessSupplier.getId()); @@ -727,12 +748,7 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService { //批量新增已准入品类 coscoAccessSupplierCategoryService.batchCoscoAccessSupplierCategory(coscoAccessSupplierCategoryInsertList); - //批量修改供应商基础信息状态 - CoscoSupplierBase batchUpCoscoSupplierBase = new CoscoSupplierBase(); - batchUpCoscoSupplierBase.setAccessStatus(CoscoType.ACCESS_STATUS_YZR); - batchUpCoscoSupplierBase.setIdList(supplierBaseIdList); - batchUpCoscoSupplierBase.setUpdateTime(date); - coscoSupplierBaseMapper.updateCoscoSupplierBaseByIds(batchUpCoscoSupplierBase); + //修改准入供应商表状态 CoscoAccessSupplier coscoAccessSupplierUp = new CoscoAccessSupplier(); diff --git a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml index 04cfe1b..9eac808 100644 --- a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml +++ b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml @@ -896,7 +896,7 @@ fillin_by = #{fillinBy}, - sap_code = + sap_code = #{sapCode}, del_flag =