diff --git a/src/main/java/com/glxp/api/http/ErpBasicClient.java b/src/main/java/com/glxp/api/http/ErpBasicClient.java index d8de4fa27..41feb863b 100644 --- a/src/main/java/com/glxp/api/http/ErpBasicClient.java +++ b/src/main/java/com/glxp/api/http/ErpBasicClient.java @@ -153,6 +153,29 @@ public class ErpBasicClient { } } + + /** + * 提交第三方产品信息 + * + * @param postRelProductRequest + * @return + */ + public BaseResponse postRelProduct(PostRelProductRequest postRelProductRequest) { + ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId("thirdId"); + String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/post/udiRel/product"; + try { + String response = httpOkClient.uCloudPost(url, postRelProductRequest); + BaseResponse listBaseResponse = + JSONObject.parseObject(response, new TypeReference>() { + }); + + return listBaseResponse; + } catch (Exception e) { + log.error("提交第三产品信息异常" + postRelProductRequest.getDatas().size(), e); + return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); + } + } + //测试连通性 public BaseResponse testConnection(ThrSystemEntity thrSystemEntity) { String response = httpOkClient.uCloudPost(thrSystemEntity.getThridUrl() + "/udiwms/erp/testLocal", "{}"); diff --git a/src/main/java/com/glxp/api/req/thrsys/PostRelProductRequest.java b/src/main/java/com/glxp/api/req/thrsys/PostRelProductRequest.java new file mode 100644 index 000000000..8affbbace --- /dev/null +++ b/src/main/java/com/glxp/api/req/thrsys/PostRelProductRequest.java @@ -0,0 +1,15 @@ +package com.glxp.api.req.thrsys; + +import com.glxp.api.res.basic.UdiRelevanceResponse; +import lombok.Data; + +import java.util.List; + +@Data +public class PostRelProductRequest { + + private String uploadType; + private String thirdSys; + List datas; + +} diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index 1e44bca1f..aa11d6d6f 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -1,6 +1,12 @@ package com.glxp.api.service.thrsys.impl; import cn.hutool.core.bean.BeanUtil; +import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.thrsys.PostRelProductRequest; +import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.util.BeanCopyUtils; +import com.glxp.api.util.CustomUtil; +import org.apache.regexp.RE; import org.springframework.beans.BeanUtils; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollUtil; @@ -41,6 +47,7 @@ import javax.annotation.Resource; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** *

@@ -313,18 +320,48 @@ public class ThrProductsServiceImpl extends ServiceImpl udiRelevanceResponses = udiRelevanceService.filterUdiJoinSup(filterUdiRelRequest); + if (CollUtil.isNotEmpty(udiRelevanceResponses)) { + List filteredList = udiRelevanceResponses.stream() + .filter(item -> + { + if (StrUtil.isNotEmpty(item.getNameCode()) || StrUtil.isNotEmpty(item.getBasicPrductRemak8())) { + return true; + } else return false; + } + ) + .collect(Collectors.toList()); + + List> splitList = CustomUtil.splitList(filteredList, 10); + for (List temps : splitList) { + PostRelProductRequest postRelProductRequest = new PostRelProductRequest(); + postRelProductRequest.setUploadType("1"); + postRelProductRequest.setThirdSys(thrSystemDetailEntity.getThirdSysFk()); + postRelProductRequest.setDatas(temps); + //上传第三方产品信息 + BaseResponse baseResponse = erpBasicClient.postRelProduct(postRelProductRequest); + if (baseResponse.getCode() != 20000) { + return ResultVOUtils.error(500, "上传失败!" + baseResponse.getMessage()); + } + } + redisUtil.set("THR_PI_UPLOAD_TIME", currentTime); + return ResultVOUtils.success("上传成功"); + } } - return null; + return ResultVOUtils.error(500, "上传失败!"); } /** diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java index a22ea3230..c1d0dafb4 100644 --- a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -126,6 +126,7 @@ public class SyncThirdSysTask implements SchedulingConfigurer { downloadThrOrder(thrSystemDetailEntity); break; case ThirdSysConstant.PI_SUBMIT_URL: + postRelProduct(thrSystemDetailEntity); break; default: //其他接口暂不处理 @@ -271,25 +272,24 @@ public class SyncThirdSysTask implements SchedulingConfigurer { } } - /** - * 上传第三方产品信息 + * 上传已关联产品信息 * * @param thrSystemDetailEntity */ - private void submitThrProduct(ThrSystemDetailEntity thrSystemDetailEntity) { + private void postRelProduct(ThrSystemDetailEntity thrSystemDetailEntity) { //校验任务并更新redis数据执行标识 if (verifyTask(thrSystemDetailEntity)) { getExecutor().submit(() -> { - log.info("开始下载第三方业务单据"); + log.info("开始上传关联第三方产品信息"); try { thrProductsService.uploadThrProduct(thrSystemDetailEntity); } catch (Exception e) { - log.error("下载第三方业务单据", e); + log.error("开始上传关联第三方产品信息", e); } finally { updateTask(getTaskKey(thrSystemDetailEntity)); } - log.info("第三方业务单据下载完成"); + log.info("开始上传关联第三方产品信息完成"); }); } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b2df4abe2..eff144325 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index ae46a4eb6..993cf15d1 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -334,7 +334,8 @@ basic_products.categoryName, company_product_relevance.unitFk, basic_corp.erpId as customerId, - basic_corp.name companyName + basic_corp.name companyName, + th.hsmc hslbName FROM basic_udirel inner JOIN basic_products ON basic_products.uuid = basic_udirel.uuid @@ -345,6 +346,7 @@ left join thr_products tp on tp.code = basic_udirel.mainId left join basic_product_category_rel on basic_product_category_rel.relId = basic_udirel.id left join basic_product_category on basic_product_category_rel.code = basic_product_category.code + left join thr_hslb th on basic_products.basicPrductRemak8 = th.hsbm AND basic_products.ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%') @@ -1713,7 +1715,7 @@ select basic_udirel.*, - basic_products.originUuid, - basic_products.nameCode, - basic_products.deviceRecordKey, - basic_products.packRatio, - basic_products.packUnit, - basic_products.packLevel, - basic_products.bhxjsl, - basic_products.bhzxxsbzsl, - basic_products.zxxsbzbhsydysl, - basic_products.bhxjcpbm, - basic_products.bzcj, - basic_products.cpmctymc, - basic_products.cplb, - basic_products.flbm, - basic_products.ggxh, - basic_products.qxlb, - basic_products.tyshxydm, - basic_products.ylqxzcrbarmc, - basic_products.zczbhhzbapzbh, - basic_products.ylqxzcrbarywmc, - basic_products.sydycpbs, - basic_products.sjcpbm, - basic_products.versionNumber, - basic_products.diType, - basic_products.ybbm, - basic_products.sptm, - basic_products.manufactory, - basic_products.measname, - basic_products.productType, - basic_products.scbssfbhph, - basic_products.scbssfbhxlh, - basic_products.scbssfbhscrq, - basic_products.scbssfbhsxrq, - basic_products.cpms, - basic_products.allowNoBatch, - basic_products.allowNoExpire, - basic_products.allowNoProduct, - basic_products.allowNoSerial, - basic_products.spmc, - basic_products.cplx, - basic_products.hchzsb, - basic_products.cpdls, - basic_products.basicPrductRemak1, - basic_products.basicPrductRemak2, - basic_products.basicPrductRemak3, - basic_products.basicPrductRemak4, - basic_products.basicPrductRemak5, - basic_products.basicPrductRemak6, - basic_products.basicPrductRemak7, - basic_products.basicPrductRemak8, - basic_products.sfwblztlcp, - basic_products.cgzmraqxgxx, - basic_products.sfbjwycxsy, - basic_products.zdcfsycs, - basic_products.sfwwjbz, - basic_products.syqsfxyjxmj, - basic_products.mjfs, - basic_products.categoryName + basic_products.originUuid, + basic_products.nameCode, + basic_products.deviceRecordKey, + basic_products.packRatio, + basic_products.packUnit, + basic_products.packLevel, + basic_products.bhxjsl, + basic_products.bhzxxsbzsl, + basic_products.zxxsbzbhsydysl, + basic_products.bhxjcpbm, + basic_products.bzcj, + basic_products.cpmctymc, + basic_products.cplb, + basic_products.flbm, + basic_products.ggxh, + basic_products.qxlb, + basic_products.tyshxydm, + basic_products.ylqxzcrbarmc, + basic_products.zczbhhzbapzbh, + basic_products.ylqxzcrbarywmc, + basic_products.sydycpbs, + basic_products.sjcpbm, + basic_products.versionNumber, + basic_products.diType, + basic_products.ybbm, + basic_products.sptm, + basic_products.manufactory, + basic_products.measname, + basic_products.productType, + basic_products.scbssfbhph, + basic_products.scbssfbhxlh, + basic_products.scbssfbhscrq, + basic_products.scbssfbhsxrq, + basic_products.cpms, + basic_products.allowNoBatch, + basic_products.allowNoExpire, + basic_products.allowNoProduct, + basic_products.allowNoSerial, + basic_products.spmc, + basic_products.cplx, + basic_products.hchzsb, + basic_products.cpdls, + basic_products.basicPrductRemak1, + basic_products.basicPrductRemak2, + basic_products.basicPrductRemak3, + basic_products.basicPrductRemak4, + basic_products.basicPrductRemak5, + basic_products.basicPrductRemak6, + basic_products.basicPrductRemak7, + basic_products.basicPrductRemak8, + basic_products.sfwblztlcp, + basic_products.cgzmraqxgxx, + basic_products.sfbjwycxsy, + basic_products.zdcfsycs, + basic_products.sfwwjbz, + basic_products.syqsfxyjxmj, + basic_products.mjfs, + basic_products.categoryName FROM basic_udirel - inner JOIN basic_products - ON basic_products.uuid = basic_udirel.uuid + inner JOIN basic_products + ON basic_products.uuid = basic_udirel.uuid AND basic_udirel.id = #{id}