提交 2f36f9aa authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v20.6_carrier_station_pound_20240802' into release

# Conflicts: # performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
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);
}
}
}
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildWeighPictureParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
private String childNo;
}
package com.clx.performance.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
@Getter
@Setter
@NoArgsConstructor
@ToString
public class OrderChildWeighPictureVo {
private Integer id;
@ApiModelProperty("运单编号")
private String childNo;
@ApiModelProperty("图片类型 1-装车 2-卸车")
private Integer type;
@ApiModelProperty("原始磅单图")
private String originalImg;
@ApiModelProperty("不带签章磅单图")
private String noSignImg;
@ApiModelProperty("带签章磅单图")
private String signImg;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PictureVo {
@ApiModelProperty("装车图片")
private List<String> loadImages;
@ApiModelProperty("卸车图片")
private List<String> unloadImages;
}
...@@ -98,6 +98,12 @@ ...@@ -98,6 +98,12 @@
<artifactId>open-starter</artifactId> <artifactId>open-starter</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-weight-sdk</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.clx.cy</groupId> <groupId>com.clx.cy</groupId>
<artifactId>purchase-manage-sdk</artifactId> <artifactId>purchase-manage-sdk</artifactId>
......
...@@ -14,11 +14,14 @@ import org.springframework.stereotype.Component; ...@@ -14,11 +14,14 @@ import org.springframework.stereotype.Component;
@Component @Component
public class LoadAppConfig { public class LoadAppConfig {
private App purchaseManageApp;
@Autowired @Autowired
private AppDao appDao; private AppDao appDao;
private App purchaseManageApp;
private App smartWeightApp;
public App getPurchaseManageApp() { public App getPurchaseManageApp() {
if (purchaseManageApp == null) { if (purchaseManageApp == null) {
...@@ -28,4 +31,12 @@ public class LoadAppConfig { ...@@ -28,4 +31,12 @@ public class LoadAppConfig {
return purchaseManageApp; return purchaseManageApp;
} }
public App getSmartWeightApp() {
if (smartWeightApp == null) {
smartWeightApp = appDao.getOneByField(App::getUniqueIdentifier, AppEnum.UniqueIdentifier.SMART_WEIGHT.getCode()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);
}
return smartWeightApp;
}
} }
package com.clx.performance.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "performance.smart")
@Getter
@Setter
public class PerformanceSmartCompanyNoConfig {
private Long companyNo;
}
package com.clx.performance.controller.app;
import com.clx.performance.param.app.OrderChildWeighPictureParam;
import com.clx.performance.service.OrderChildWeighPictureService;
import com.clx.performance.vo.app.PictureVo;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/app/driver/orderChildWeighPicture")
@Validated
@Api(tags = "APP-运单电子磅单")
public class AppDriverOrderChildWeighPictureController {
@Autowired
private OrderChildWeighPictureService pictureService;
@ApiOperation(value = "查询电子磅单", notes = "<br>By:李瑞新")
@PostMapping("/getWeighPictures")
public Result<PictureVo> getWeighPictures(@RequestBody @Validated OrderChildWeighPictureParam param) {
return Result.ok(pictureService.getWeighPictures(param));
}
}
...@@ -207,6 +207,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -207,6 +207,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> listCompleteByOrderNos(List<String> strings); List<OrderChild> listCompleteByOrderNos(List<String> strings);
List<OrderChild> listChidNosByStatus(List<Integer> status);
List<OrderGoodsNotCancelChildDTO> countValidByOrderGoodsNoList(List<String> orderGoodsList); List<OrderGoodsNotCancelChildDTO> countValidByOrderGoodsNoList(List<String> orderGoodsList);
void batchUpdateCancel(List<OrderChild> canCancelOrderChildList); void batchUpdateCancel(List<OrderChild> canCancelOrderChildList);
......
package com.clx.performance.dao;
import com.clx.performance.mapper.OrderChildWeighPictureMapper;
import com.clx.performance.model.OrderChildWeighPicture;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
public interface OrderChildWeighPictureDao extends BaseDao<OrderChildWeighPictureMapper, OrderChildWeighPicture, Integer> {
List<OrderChildWeighPicture> getImages(String childNo);
}
...@@ -687,6 +687,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -687,6 +687,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
); );
} }
@Override
public List<OrderChild> listChidNosByStatus(List<Integer> status) {
return list(lQrWrapper()
.in(OrderChild :: getStatus, status)
);
}
@Override @Override
public List<OrderGoodsNotCancelChildDTO> countValidByOrderGoodsNoList(List<String> orderGoodsList) { public List<OrderGoodsNotCancelChildDTO> countValidByOrderGoodsNoList(List<String> orderGoodsList) {
return baseMapper.countValidByOrderGoodsNoList(orderGoodsList); return baseMapper.countValidByOrderGoodsNoList(orderGoodsList);
......
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;
import java.util.List;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
@Repository
public class OrderChildWeighPictureDaoImpl extends BaseDaoImpl<OrderChildWeighPictureMapper, OrderChildWeighPicture, Integer> implements OrderChildWeighPictureDao {
@Override
public List<OrderChildWeighPicture> getImages(String childNo) {
return list(lQrWrapper()
.eq(OrderChildWeighPicture::getChildNo, childNo)
);
}
}
package com.clx.performance.job;
import com.clx.performance.config.LoadAppConfig;
import com.clx.performance.config.PerformanceSmartCompanyNoConfig;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildWeighPictureDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.model.App;
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.Objects;
import java.util.stream.Collectors;
@Slf4j
@Component
public class WeighingOderPictureJob{
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private OrderChildWeighPictureStruct pictureStruct;
@Autowired
private OrderChildWeighPictureDao pictureDao;
@Autowired
private PerformanceSmartCompanyNoConfig companyNoConfig;
@Autowired
private LoadAppConfig loadAppConfig;
/**
* 定时拉取过磅磅单图片
*/
@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)){
App app = loadAppConfig.getSmartWeightApp();//对接场站配置信息
//组装配置信息
RequestConfig config = new RequestConfig()
.setAppId(app.getAppNo())
.setAppKey(app.getAppKey())
.setGatewayUrl(app.getCallback());
//集合对象
List<OrderChildWeighPicture> pictures = new ArrayList<>();
for(OrderChild orderChild:orderChilds){
//通过运单号码查询电子磅单图片
WeighingSignatureAction weightAction = new WeighingSignatureAction();
weightAction.setChildNo(orderChild.getChildNo());
weightAction.setCustomerRelationNo(String.valueOf(companyNoConfig.getCompanyNo()));
log.info("job请求电子磅单参数,{}",weightAction);
Result<List<WeighingSignatureDto>> weighSignature = OpenClient.doAction(config, weightAction);
log.info("job请求电子磅单返回结果,{}",weighSignature);
//数据处理
if(!Objects.equals(weighSignature.getCode(),0)){
continue;
}
List<WeighingSignatureDto> weighSignatures = weighSignature.getData();
if (CollectionUtils.isNotEmpty(weighSignatures)) {
for(WeighingSignatureDto weighingSignatureDto:weighSignatures){
OrderChildWeighPicture picture = pictureStruct.convert(weighingSignatureDto);
picture.setChildNo(orderChild.getChildNo());//对象转换
pictures.add(picture);
}
}
}
log.info("电子磅单图片,{}",pictures);
//保存电子磅单图片
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> {
}
...@@ -49,7 +49,7 @@ public class App implements HasKey<Integer> { ...@@ -49,7 +49,7 @@ public class App implements HasKey<Integer> {
@TableField("create_time") @TableField("create_time")
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private LocalDateTime createTime; private LocalDateTime createTime; //
@TableField("modified_time") @TableField("modified_time")
@ApiModelProperty("修改时间") @ApiModelProperty("修改时间")
......
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;
}
}
...@@ -13,6 +13,7 @@ import com.clx.performance.vo.app.owner.OwnerOrderChildVO; ...@@ -13,6 +13,7 @@ import com.clx.performance.vo.app.owner.OwnerOrderChildVO;
import com.clx.performance.vo.pc.*; import com.clx.performance.vo.pc.*;
import com.clx.performance.vo.pc.child.UpdateCarrierBatchCancelVO; import com.clx.performance.vo.pc.child.UpdateCarrierBatchCancelVO;
import com.msl.common.base.PageParam; import com.msl.common.base.PageParam;
import com.smart.weight.dto.WeighingSignatureDto;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -119,4 +120,7 @@ public interface OrderChildService { ...@@ -119,4 +120,7 @@ public interface OrderChildService {
NeedAlertSuperviseInfoResultVO needAlertSuperviseInfo(NeedAlertSuperviseInfoParam param); NeedAlertSuperviseInfoResultVO needAlertSuperviseInfo(NeedAlertSuperviseInfoParam param);
UpdateCarrierBatchCancelVO updateCarrierBatchCancel(OrderChildCarrierBatchCancelParam param); UpdateCarrierBatchCancelVO updateCarrierBatchCancel(OrderChildCarrierBatchCancelParam param);
List<WeighingSignatureDto> getWeighingSignature(String childNo);
} }
package com.clx.performance.service;
import com.clx.performance.param.app.OrderChildWeighPictureParam;
import com.clx.performance.vo.app.PictureVo;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
public interface OrderChildWeighPictureService {
PictureVo getWeighPictures(OrderChildWeighPictureParam param);
}
...@@ -19,6 +19,7 @@ import com.clx.performance.component.GoodsOrderTruckRecordComponent; ...@@ -19,6 +19,7 @@ import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderChildLoanComponent; import com.clx.performance.component.OrderChildLoanComponent;
import com.clx.performance.config.ClxMessageConfig; import com.clx.performance.config.ClxMessageConfig;
import com.clx.performance.config.LoadAppConfig; import com.clx.performance.config.LoadAppConfig;
import com.clx.performance.config.PerformanceSmartCompanyNoConfig;
import com.clx.performance.config.TencentCloudApiOcrConfig; import com.clx.performance.config.TencentCloudApiOcrConfig;
import com.clx.performance.constant.RedisConstants; import com.clx.performance.constant.RedisConstants;
import com.clx.performance.constant.RedissonConstants; import com.clx.performance.constant.RedissonConstants;
...@@ -91,6 +92,8 @@ import com.purchase.manage.action.SupplyChainSupervisionLoadAction; ...@@ -91,6 +92,8 @@ import com.purchase.manage.action.SupplyChainSupervisionLoadAction;
import com.purchase.manage.action.SupplyChainSupervisionLoadTruckAction; import com.purchase.manage.action.SupplyChainSupervisionLoadTruckAction;
import com.purchase.manage.dto.SupervisionLoadInfoDto; import com.purchase.manage.dto.SupervisionLoadInfoDto;
import com.purchase.manage.dto.SupervisionLoadTruckInfoDto; import com.purchase.manage.dto.SupervisionLoadTruckInfoDto;
import com.smart.weight.action.WeighingSignatureAction;
import com.smart.weight.dto.WeighingSignatureDto;
import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.ocr.v20181119.OcrClient; import com.tencentcloudapi.ocr.v20181119.OcrClient;
...@@ -259,6 +262,12 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -259,6 +262,12 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
private DocumentFeign documentFeign; private DocumentFeign documentFeign;
@Autowired @Autowired
private OrderChildWeighPictureDao pictureDao;
@Autowired
private OrderWeightService orderWeightService;
@Autowired
private UserClxFeign userClxFeign; private UserClxFeign userClxFeign;
@Autowired @Autowired
private OrderChildOperateLimitConfigService orderChildOperateLimitConfigService; private OrderChildOperateLimitConfigService orderChildOperateLimitConfigService;
...@@ -273,6 +282,12 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -273,6 +282,12 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
private OrderWeightService orderWeightService; private OrderWeightService orderWeightService;
@Autowired
private LoadAppConfig loadAppConfig;
@Autowired
private PerformanceSmartCompanyNoConfig companyNoConfig;
@PostConstruct @PostConstruct
public void init(){ public void init(){
String[] activeProfiles = environment.getActiveProfiles(); String[] activeProfiles = environment.getActiveProfiles();
...@@ -2155,6 +2170,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2155,6 +2170,7 @@ public class OrderChildServiceImpl implements OrderChildService {
result.setPoundRemark(orderChildPoundAuditDao.getPoundAuditDetail(childNo).orNull().getRemark()); result.setPoundRemark(orderChildPoundAuditDao.getPoundAuditDetail(childNo).orNull().getRemark());
} }
//首次回显过磅电子磅单,其他情况回显用户上传的图片
List<OrderChildImage> imageList = orderChildImageDao.listLoadAndUnload(childNo).orElse(new ArrayList<>()); List<OrderChildImage> imageList = orderChildImageDao.listLoadAndUnload(childNo).orElse(new ArrayList<>());
result.setLoadImageList(imageList.stream().filter( result.setLoadImageList(imageList.stream().filter(
item -> Objects.equals(item.getType(), OrderChildImage.Type.LOAD.getCode())).map( item -> Objects.equals(item.getType(), OrderChildImage.Type.LOAD.getCode())).map(
...@@ -2163,6 +2179,12 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2163,6 +2179,12 @@ public class OrderChildServiceImpl implements OrderChildService {
item -> Objects.equals(item.getType(), OrderChildImage.Type.UNLOAD.getCode())).map( item -> Objects.equals(item.getType(), OrderChildImage.Type.UNLOAD.getCode())).map(
item -> item.getImage()).collect(Collectors.toList())); item -> item.getImage()).collect(Collectors.toList()));
if(CollectionUtils.isEmpty(result.getUnloadImageList())){
result.setUnloadImageList(getWeighingSignature(childNo).stream().filter(
item -> Objects.equals(item.getType(), 2)).map(
item -> item.getOriginalImg()).collect(Collectors.toList()));//获取电子磅单图片
}
result.setArriveSendTime(orderChild.getArriveSendTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getArriveSendTime())); result.setArriveSendTime(orderChild.getArriveSendTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getArriveSendTime()));
result.setFirstLoadTime(orderChild.getFirstLoadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getFirstLoadTime())); result.setFirstLoadTime(orderChild.getFirstLoadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getFirstLoadTime()));
result.setArriveReceiveTime(orderChild.getArriveReceiveTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getArriveReceiveTime())); result.setArriveReceiveTime(orderChild.getArriveReceiveTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getArriveReceiveTime()));
...@@ -3460,6 +3482,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -3460,6 +3482,13 @@ public class OrderChildServiceImpl implements OrderChildService {
return null; return null;
} }
List<String> images = getWeighingSignature(param.getChildNo()).stream().filter(
item -> Objects.equals(item.getType(), 2)).map(
item -> item.getOriginalImg()).collect(Collectors.toList());//获取电子磅单图片
if(CollectionUtils.isNotEmpty(images)){
return null;
}
try{ try{
OcrRecognitionResultVO vo = new OcrRecognitionResultVO(); OcrRecognitionResultVO vo = new OcrRecognitionResultVO();
Credential cred = new Credential(tencentCloudApiOcrConfig.getSecretId(), tencentCloudApiOcrConfig.getSecretKey()); Credential cred = new Credential(tencentCloudApiOcrConfig.getSecretId(), tencentCloudApiOcrConfig.getSecretKey());
...@@ -3724,4 +3753,32 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -3724,4 +3753,32 @@ public class OrderChildServiceImpl implements OrderChildService {
orderGoodsTruckBindDao.batchCancelTruckList(updateList); orderGoodsTruckBindDao.batchCancelTruckList(updateList);
} }
} }
/**
* 通过运单号获取电子磅单相关信息
* @param childNo
* @return
*/
public List<WeighingSignatureDto> getWeighingSignature(String childNo){
App app = loadAppConfig.getSmartWeightApp();//对接场站配置信息
//组装配置信息
RequestConfig config = new RequestConfig()
.setAppId(app.getAppNo())
.setAppKey(app.getAppKey())
.setGatewayUrl(app.getCallback());
//通过运单号码查询电子磅单图片
WeighingSignatureAction weightAction = new WeighingSignatureAction();
weightAction.setChildNo(childNo);
weightAction.setCustomerRelationNo(String.valueOf(companyNoConfig.getCompanyNo()));
log.info("接口请求电子磅单参数,{}",weightAction);
Result<List<WeighingSignatureDto>> weighSignature = OpenClient.doAction(config, weightAction);
log.info("接口请求电子磅单返回结果,{}",weighSignature);
//数据处理
if(Objects.equals(weighSignature.getCode(),0)){
List<WeighingSignatureDto> weighSignatures = weighSignature.getData();
return weighSignatures;
}
return new ArrayList<>();
}
} }
package com.clx.performance.service.impl;
import com.clx.performance.param.app.OrderChildWeighPictureParam;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderChildWeighPictureService;
import com.clx.performance.vo.app.PictureVo;
import com.smart.weight.dto.WeighingSignatureDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author liruixin
* Date 2024-08-02
* Time 15:38
*/
@Service
public class OrderChildWeighPictureServiceImpl implements OrderChildWeighPictureService {
@Autowired
private OrderChildService orderChildService;
@Override
public PictureVo getWeighPictures(OrderChildWeighPictureParam param) {
//电子磅单图片
List<WeighingSignatureDto> images = orderChildService.getWeighingSignature(param.getChildNo());
PictureVo vo = new PictureVo();
vo.setLoadImages(images.stream().filter(
item -> Objects.equals(item.getType(), 1)).map(
item -> item.getOriginalImg()).collect(Collectors.toList()));
vo.setUnloadImages(images.stream().filter(
item -> Objects.equals(item.getType(), 2)).map(
item -> item.getOriginalImg()).collect(Collectors.toList()));
return vo;
}
}
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论