提交 85f16935 authored 作者: 李瑞鑫's avatar 李瑞鑫

拉取电子磅单数据

上级 dcb76875
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OrderChildImageEnum {
;
@Getter
@AllArgsConstructor
public enum Type {
LOAD(1, "装车图片"),
UNLOAD(2, "卸车图片"),
WEIGHT_IN(3, "进场图片"),
WEIGHT_OUT(4, "出场图片"),
;
private final Integer code;
private final String name;
public static Optional<Type> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Type::getName).orElse(null);
}
}
}
......@@ -93,6 +93,16 @@
<artifactId>server-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.msl</groupId>
<artifactId>open-starter</artifactId>
</dependency>
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-weight-sdk</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.msl</groupId>-->
<!-- <artifactId>cache-spring-boot-starter</artifactId>-->
......
......@@ -204,4 +204,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> listCompleteByOrderNos(List<String> strings);
List<OrderChild> listBeforeUnloadOrderChild(LocalDateTime startTime,LocalDateTime endTime);
List<OrderChild> listChidNosByStatus(List<Integer> status);
}
package com.clx.performance.dao;
import com.clx.performance.mapper.OrderChildWeighPictureMapper;
import com.clx.performance.model.OrderChildWeighPicture;
import com.msl.common.dao.BaseDao;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
public interface OrderChildWeighPictureDao extends BaseDao<OrderChildWeighPictureMapper, OrderChildWeighPicture, Integer> {
}
......@@ -684,4 +684,11 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.le(OrderChild :: getCreateTime,endTime)
);
}
@Override
public List<OrderChild> listChidNosByStatus(List<Integer> status) {
return list(lQrWrapper()
.in(OrderChild :: getStatus, status)
);
}
}
package com.clx.performance.dao.impl;
import com.clx.performance.dao.OrderChildWeighPictureDao;
import com.clx.performance.mapper.OrderChildWeighPictureMapper;
import com.clx.performance.model.OrderChildWeighPicture;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
@Repository
public class OrderChildWeighPictureDaoImpl extends BaseDaoImpl<OrderChildWeighPictureMapper, OrderChildWeighPicture, Integer> implements OrderChildWeighPictureDao {
}
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.OrderChildDao;
import com.clx.performance.dao.OrderChildWeighPictureDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildWeighPicture;
import com.clx.performance.struct.OrderChildWeighPictureStruct;
import com.msl.common.job.JobLog;
import com.msl.common.open.OpenClient;
import com.msl.common.open.RequestConfig;
import com.msl.common.result.Result;
import com.smart.weight.action.WeighingSignatureAction;
import com.smart.weight.dto.WeighingSignatureDto;
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.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Component
public class WeighingOderPictureJob {
@Autowired
private ThirdAppConfig thirdAppConfig;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private OrderChildWeighPictureStruct pictureStruct;
@Autowired
private OrderChildWeighPictureDao pictureDao;
/**
* 定时拉取过磅磅单图片
*/
@XxlJob("weighingOderPicture")
@Transactional(rollbackFor = Exception.class)
public void weighingOderPicture() {
try {
getWeighingOderPicture();
} catch (Exception e) {
log.warn("定时任务获取磅单图片信息失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
JobLog.error("定时任务获取磅单图片信息失败,异常原因=====================", e);
}
}
/**
* 定时拉取过磅磅单图片
**/
public void getWeighingOderPicture(){
//运单状态集合
List<Integer> status = new ArrayList<>();
status.add(OrderChildEnum.Status.UNLOAD.getCode());
status.add(OrderChildEnum.Status.UNSETTLE.getCode());
//查询指定运单数据
List<OrderChild> orderChilds = orderChildDao.listChidNosByStatus(status);
log.info("查询运单数据返回:{}",orderChilds);
//查询运单下的电子磅单数据
if(CollectionUtils.isNotEmpty(orderChilds)){
//获取配置信息
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
//组装配置信息
RequestConfig config = new RequestConfig()
.setAppId(openCallBackClient.getAppNo())
.setAppKey(openCallBackClient.getSecret())
.setGatewayUrl(openCallBackClient.getUrl());
//集合对象
List<OrderChildWeighPicture> pictures = new ArrayList<>();
for(OrderChild orderChild:orderChilds){
//通过运单号码查询电子磅单图片
WeighingSignatureAction weightAction = new WeighingSignatureAction();
weightAction.setChildNo(orderChild.getChildNo());
Result<List<WeighingSignatureDto>> weighSignature = OpenClient.doAction(config, weightAction);
//数据处理
if(weighSignature.succeed()){
List<WeighingSignatureDto> weighSignatures = weighSignature.getData();
if (CollectionUtils.isNotEmpty(weighSignatures)) {
for(WeighingSignatureDto weighingSignatureDto:weighSignatures){
pictures.add(pictureStruct.convert(weighingSignatureDto));//对象转换
}
}
}
//保存电子磅单图片
if(CollectionUtils.isNotEmpty(pictures)){
List<String> childNos = pictures.stream().map(OrderChildWeighPicture::getChildNo).distinct().collect(Collectors.toList());
pictureDao.deleteInField(OrderChildWeighPicture::getChildNo,childNos);
pictureDao.saveBatchList(pictures);
}
}
}
}
}
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OrderChildWeighPicture;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
public interface OrderChildWeighPictureMapper extends BaseMapper<OrderChildWeighPicture> {
}
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 liruixin
* Date 2024-08-02
* Time 15:38
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("order_child_weigh_picture")
public class OrderChildWeighPicture implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("child_no")
@ApiModelProperty("运单编号")
private String childNo;
@TableField("type")
@ApiModelProperty("图片类型 1进场 2出场")
private Integer type;
@TableField("original_img")
@ApiModelProperty("原始磅单图")
private String originalImg;
@TableField("no_sign_img")
@ApiModelProperty("不带签章磅单图")
private String noSignImg;
@TableField("sign_img")
@ApiModelProperty("带签章磅单图")
private String signImg;
@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;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
public interface OrderChildWeighPictureService {
}
package com.clx.performance.service.impl;
import com.clx.performance.service.OrderChildWeighPictureService;
import org.springframework.stereotype.Service;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
@Service
public class OrderChildWeighPictureServiceImpl implements OrderChildWeighPictureService {
}
package com.clx.performance.struct;
import com.clx.performance.model.OrderChildWeighPicture;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import com.smart.weight.dto.WeighingSignatureDto;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildWeighPictureStruct {
OrderChildWeighPicture convert(WeighingSignatureDto item);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论