切换分支备份

zyy_db
anthonywj 2 years ago
parent d17110bcaf
commit 7ef66921cf

@ -153,6 +153,29 @@ public class ErpBasicClient {
} }
} }
/**
*
*
* @param postRelProductRequest
* @return
*/
public BaseResponse<String> 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<String> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<String>>() {
});
return listBaseResponse;
} catch (Exception e) {
log.error("提交第三产品信息异常" + postRelProductRequest.getDatas().size(), e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
}
}
//测试连通性 //测试连通性
public BaseResponse testConnection(ThrSystemEntity thrSystemEntity) { public BaseResponse testConnection(ThrSystemEntity thrSystemEntity) {
String response = httpOkClient.uCloudPost(thrSystemEntity.getThridUrl() + "/udiwms/erp/testLocal", "{}"); String response = httpOkClient.uCloudPost(thrSystemEntity.getThridUrl() + "/udiwms/erp/testLocal", "{}");

@ -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<UdiRelevanceResponse> datas;
}

@ -1,6 +1,12 @@
package com.glxp.api.service.thrsys.impl; package com.glxp.api.service.thrsys.impl;
import cn.hutool.core.bean.BeanUtil; 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 org.springframework.beans.BeanUtils;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
@ -41,6 +47,7 @@ import javax.annotation.Resource;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
@ -313,18 +320,48 @@ public class ThrProductsServiceImpl extends ServiceImpl<ThrProductsDao, ThrProdu
@Resource @Resource
RedisUtil redisUtil; RedisUtil redisUtil;
@Resource
UdiRelevanceService udiRelevanceService;
@Override @Override
public BaseResponse uploadThrProduct(ThrSystemDetailEntity thrSystemDetailEntity) { public BaseResponse uploadThrProduct(ThrSystemDetailEntity thrSystemDetailEntity) {
//上次修改时间 //上次修改时间
String lastUploadTime = (String) redisUtil.get("THR_PI_UPLOAD_TIME"); String lastUploadTime = (String) redisUtil.get("THR_PI_UPLOAD_TIME");
String currentTime = DateUtil.formatTime(new Date());
if (StrUtil.isEmpty(lastUploadTime)) { if (StrUtil.isEmpty(lastUploadTime)) {
//下载耗材字典最新维护数据 //获取耗材字典最新维护数据
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
//下载第三方产品信息 filterUdiRelRequest.setLastUpdateTime(lastUploadTime);
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.filterUdiJoinSup(filterUdiRelRequest);
if (CollUtil.isNotEmpty(udiRelevanceResponses)) {
List<UdiRelevanceResponse> filteredList = udiRelevanceResponses.stream()
.filter(item ->
{
if (StrUtil.isNotEmpty(item.getNameCode()) || StrUtil.isNotEmpty(item.getBasicPrductRemak8())) {
return true;
} else return false;
}
)
.collect(Collectors.toList());
List<List<UdiRelevanceResponse>> splitList = CustomUtil.splitList(filteredList, 10);
for (List<UdiRelevanceResponse> 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, "上传失败!");
} }
/** /**

@ -126,6 +126,7 @@ public class SyncThirdSysTask implements SchedulingConfigurer {
downloadThrOrder(thrSystemDetailEntity); downloadThrOrder(thrSystemDetailEntity);
break; break;
case ThirdSysConstant.PI_SUBMIT_URL: case ThirdSysConstant.PI_SUBMIT_URL:
postRelProduct(thrSystemDetailEntity);
break; break;
default: default:
//其他接口暂不处理 //其他接口暂不处理
@ -271,25 +272,24 @@ public class SyncThirdSysTask implements SchedulingConfigurer {
} }
} }
/** /**
* *
* *
* @param thrSystemDetailEntity * @param thrSystemDetailEntity
*/ */
private void submitThrProduct(ThrSystemDetailEntity thrSystemDetailEntity) { private void postRelProduct(ThrSystemDetailEntity thrSystemDetailEntity) {
//校验任务并更新redis数据执行标识 //校验任务并更新redis数据执行标识
if (verifyTask(thrSystemDetailEntity)) { if (verifyTask(thrSystemDetailEntity)) {
getExecutor().submit(() -> { getExecutor().submit(() -> {
log.info("开始下载第三方业务单据"); log.info("开始上传关联第三方产品信息");
try { try {
thrProductsService.uploadThrProduct(thrSystemDetailEntity); thrProductsService.uploadThrProduct(thrSystemDetailEntity);
} catch (Exception e) { } catch (Exception e) {
log.error("下载第三方业务单据", e); log.error("开始上传关联第三方产品信息", e);
} finally { } finally {
updateTask(getTaskKey(thrSystemDetailEntity)); updateTask(getTaskKey(thrSystemDetailEntity));
} }
log.info("第三方业务单据下载完成"); log.info("开始上传关联第三方产品信息完成");
}); });
} }
} }

@ -4,7 +4,7 @@ server:
spring: spring:
datasource: datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver 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 username: root
password: 123456 password: 123456
hikari: hikari:

@ -334,7 +334,8 @@
basic_products.categoryName, basic_products.categoryName,
company_product_relevance.unitFk, company_product_relevance.unitFk,
basic_corp.erpId as customerId, basic_corp.erpId as customerId,
basic_corp.name companyName basic_corp.name companyName,
th.hsmc hslbName
FROM basic_udirel FROM basic_udirel
inner JOIN basic_products inner JOIN basic_products
ON basic_products.uuid = basic_udirel.uuid ON basic_products.uuid = basic_udirel.uuid
@ -345,6 +346,7 @@
left join thr_products tp on tp.code = basic_udirel.mainId 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_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 basic_product_category on basic_product_category_rel.code = basic_product_category.code
left join thr_hslb th on basic_products.basicPrductRemak8 = th.hsbm
<where> <where>
<if test="ylqxzcrbarmc != '' and ylqxzcrbarmc != null"> <if test="ylqxzcrbarmc != '' and ylqxzcrbarmc != null">
AND basic_products.ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%') AND basic_products.ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%')
@ -1713,7 +1715,7 @@
<select id="selectRelIdByName" resultType="java.lang.String"> <select id="selectRelIdByName" resultType="java.lang.String">
SELECT b2.id SELECT b2.id
FROM basic_products b1 FROM basic_products b1
LEFT JOIN basic_udirel b2 ON b1.uuid = b2.uuid LEFT JOIN basic_udirel b2 ON b1.uuid = b2.uuid
<where> <where>
<if test="productName != '' and productName != null"> <if test="productName != '' and productName != null">
AND b1.cpmctymc like concat('%', #{productName}, '%') AND b1.cpmctymc like concat('%', #{productName}, '%')
@ -1725,67 +1727,67 @@
<select id="selectOneUdi" resultType="com.glxp.api.res.basic.UdiRelevanceResponse"> <select id="selectOneUdi" resultType="com.glxp.api.res.basic.UdiRelevanceResponse">
select basic_udirel.*, select basic_udirel.*,
basic_products.originUuid, basic_products.originUuid,
basic_products.nameCode, basic_products.nameCode,
basic_products.deviceRecordKey, basic_products.deviceRecordKey,
basic_products.packRatio, basic_products.packRatio,
basic_products.packUnit, basic_products.packUnit,
basic_products.packLevel, basic_products.packLevel,
basic_products.bhxjsl, basic_products.bhxjsl,
basic_products.bhzxxsbzsl, basic_products.bhzxxsbzsl,
basic_products.zxxsbzbhsydysl, basic_products.zxxsbzbhsydysl,
basic_products.bhxjcpbm, basic_products.bhxjcpbm,
basic_products.bzcj, basic_products.bzcj,
basic_products.cpmctymc, basic_products.cpmctymc,
basic_products.cplb, basic_products.cplb,
basic_products.flbm, basic_products.flbm,
basic_products.ggxh, basic_products.ggxh,
basic_products.qxlb, basic_products.qxlb,
basic_products.tyshxydm, basic_products.tyshxydm,
basic_products.ylqxzcrbarmc, basic_products.ylqxzcrbarmc,
basic_products.zczbhhzbapzbh, basic_products.zczbhhzbapzbh,
basic_products.ylqxzcrbarywmc, basic_products.ylqxzcrbarywmc,
basic_products.sydycpbs, basic_products.sydycpbs,
basic_products.sjcpbm, basic_products.sjcpbm,
basic_products.versionNumber, basic_products.versionNumber,
basic_products.diType, basic_products.diType,
basic_products.ybbm, basic_products.ybbm,
basic_products.sptm, basic_products.sptm,
basic_products.manufactory, basic_products.manufactory,
basic_products.measname, basic_products.measname,
basic_products.productType, basic_products.productType,
basic_products.scbssfbhph, basic_products.scbssfbhph,
basic_products.scbssfbhxlh, basic_products.scbssfbhxlh,
basic_products.scbssfbhscrq, basic_products.scbssfbhscrq,
basic_products.scbssfbhsxrq, basic_products.scbssfbhsxrq,
basic_products.cpms, basic_products.cpms,
basic_products.allowNoBatch, basic_products.allowNoBatch,
basic_products.allowNoExpire, basic_products.allowNoExpire,
basic_products.allowNoProduct, basic_products.allowNoProduct,
basic_products.allowNoSerial, basic_products.allowNoSerial,
basic_products.spmc, basic_products.spmc,
basic_products.cplx, basic_products.cplx,
basic_products.hchzsb, basic_products.hchzsb,
basic_products.cpdls, basic_products.cpdls,
basic_products.basicPrductRemak1, basic_products.basicPrductRemak1,
basic_products.basicPrductRemak2, basic_products.basicPrductRemak2,
basic_products.basicPrductRemak3, basic_products.basicPrductRemak3,
basic_products.basicPrductRemak4, basic_products.basicPrductRemak4,
basic_products.basicPrductRemak5, basic_products.basicPrductRemak5,
basic_products.basicPrductRemak6, basic_products.basicPrductRemak6,
basic_products.basicPrductRemak7, basic_products.basicPrductRemak7,
basic_products.basicPrductRemak8, basic_products.basicPrductRemak8,
basic_products.sfwblztlcp, basic_products.sfwblztlcp,
basic_products.cgzmraqxgxx, basic_products.cgzmraqxgxx,
basic_products.sfbjwycxsy, basic_products.sfbjwycxsy,
basic_products.zdcfsycs, basic_products.zdcfsycs,
basic_products.sfwwjbz, basic_products.sfwwjbz,
basic_products.syqsfxyjxmj, basic_products.syqsfxyjxmj,
basic_products.mjfs, basic_products.mjfs,
basic_products.categoryName basic_products.categoryName
FROM basic_udirel FROM basic_udirel
inner JOIN basic_products inner JOIN basic_products
ON basic_products.uuid = basic_udirel.uuid ON basic_products.uuid = basic_udirel.uuid
<where> <where>
<if test="id != '' and id != null"> <if test="id != '' and id != null">
AND basic_udirel.id = #{id} AND basic_udirel.id = #{id}

Loading…
Cancel
Save