提交 8cdaae06 authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v20.6_carrier_station_pound_20240802' into dev

# Conflicts: # performance-web/src/main/java/com/clx/performance/job/WeighingOderPictureJob.java
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
public enum AppEnum {
;
@Getter
@AllArgsConstructor
public enum UniqueIdentifier {
SMART_WEIGHT(1, "场站-smart-weight"),
;
private final Integer code;
private final String name;
public static Optional<UniqueIdentifier> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(UniqueIdentifier::getName).orElse(null);
}
}
}
package com.clx.performance.dao;
import com.clx.performance.mapper.AppMapper;
import com.clx.performance.model.App;
import com.msl.common.dao.BaseDao;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
public interface AppDao extends BaseDao<AppMapper, App, Integer> {
}
package com.clx.performance.dao.impl;
import com.clx.performance.dao.AppDao;
import com.clx.performance.mapper.AppMapper;
import com.clx.performance.model.App;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
@Repository
public class AppDaoImpl extends BaseDaoImpl<AppMapper, App, Integer> implements AppDao {
}
package com.clx.performance.job;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.order.enums.SyncPlatformEnum;
import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.dao.AppDao;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildWeighPictureDao;
import com.clx.performance.enums.AppEnum;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.App;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildWeighPicture;
import com.clx.performance.struct.OrderChildWeighPictureStruct;
......@@ -19,17 +21,19 @@ import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@Component
public class WeighingOderPictureJob {
public class WeighingOderPictureJob implements InitializingBean {
@Autowired
......@@ -44,6 +48,10 @@ public class WeighingOderPictureJob {
@Autowired
private OrderChildWeighPictureDao pictureDao;
@Autowired
private AppDao appDao;
private App app;
/**
* 定时拉取过磅磅单图片
......@@ -73,13 +81,17 @@ public class WeighingOderPictureJob {
//查询运单下的电子磅单数据
if(CollectionUtils.isNotEmpty(orderChilds)){
//获取配置信息
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
//空判断
if(Objects.isNull(app)){
//重新赋值
app= appDao.getOneByField(App::getUniqueIdentifier, AppEnum.UniqueIdentifier.SMART_WEIGHT.getCode()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
}
//组装配置信息
RequestConfig config = new RequestConfig()
.setAppId(3+"")
.setAppKey("VUKRV2JP0UKJFP722IOP")
.setGatewayUrl("http://gateway.devclx.cn/smart-weight/external/open/doAction");
.setAppId(app.getAppNo())
.setAppKey(app.getAppKey())
.setGatewayUrl(app.getCallback());
//集合对象
List<OrderChildWeighPicture> pictures = new ArrayList<>();
......@@ -87,18 +99,21 @@ public class WeighingOderPictureJob {
//通过运单号码查询电子磅单图片
WeighingSignatureAction weightAction = new WeighingSignatureAction();
weightAction.setChildNo(orderChild.getChildNo());
log.info("请求电子磅单参数,{}",weightAction);
Result<List<WeighingSignatureDto>> weighSignature = OpenClient.doAction(config, weightAction);
log.info("请求电子磅单返回结果,{}",weighSignature);
//数据处理
if(weighSignature.succeed()){
if(!Objects.equals(weighSignature.getCode(),0)){
continue;
}
List<WeighingSignatureDto> weighSignatures = weighSignature.getData();
if (CollectionUtils.isNotEmpty(weighSignatures)) {
for(WeighingSignatureDto weighingSignatureDto:weighSignatures){
pictures.add(pictureStruct.convert(weighingSignatureDto));//对象转换
}
}
}
log.info("电子磅单图片,{}",pictures);
//保存电子磅单图片
if(CollectionUtils.isNotEmpty(pictures)){
List<String> childNos = pictures.stream().map(OrderChildWeighPicture::getChildNo).distinct().collect(Collectors.toList());
......@@ -111,6 +126,11 @@ public class WeighingOderPictureJob {
}
@Override
public void afterPropertiesSet() throws Exception {
app= appDao.getOneByField(App::getUniqueIdentifier, AppEnum.UniqueIdentifier.SMART_WEIGHT.getCode()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
}
}
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.App;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
public interface AppMapper extends BaseMapper<App> {
}
package com.clx.performance.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("app")
public class App implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("unique_identifier")
@ApiModelProperty("唯一标识 1:场站-smart-weight")
private Integer uniqueIdentifier;
@TableField("name")
@ApiModelProperty("应用名称")
private String name;
@TableField("namespace")
@ApiModelProperty("命名空间")
private String namespace;
@TableField("app_no")
@ApiModelProperty("应用标识")
private String appNo;
@TableField("app_key")
@ApiModelProperty("应用密钥")
private String appKey;
@TableField("callback")
@ApiModelProperty("回调网关")
private String callback;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime; //
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.service;
import com.msl.common.base.Optional;
import com.msl.common.open.action.ActionEncryptAppFactory;
import com.msl.common.open.core.EncryptApp;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
public interface AppService extends ActionEncryptAppFactory {
/**
* 根据appId获取app
*
* @param appId appId
* @return app
*/
@Override
Optional<EncryptApp> getByAppId(String appId) ;
}
package com.clx.performance.service.impl;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.service.AppService;
import com.msl.common.base.Optional;
import com.msl.common.open.core.EncryptApp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author Min
* Date 2024-06-14
* Time 11:51
*/
@Service
public class AppServiceImpl implements AppService {
@Autowired
private ThirdAppConfig thirdAppConfig;
@Override
public Optional<EncryptApp> getByAppId(String appId) {
//获取配置信息
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(appId);
EncryptApp app = new EncryptApp() {
@Override
public String getAppId() {
return openCallBackClient.getAppNo();
}
@Override
public String getAppKey() {
return openCallBackClient.getSecret();
}
};
return Optional.of(app);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论