提交 93b2ef95 authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v23.3_lmsweight_20240827' into test

# Conflicts: # performance-web/src/main/java/com/clx/performance/service/OrderChildService.java # performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
...@@ -4,9 +4,7 @@ import lombok.AllArgsConstructor; ...@@ -4,9 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
public enum AppEnum { public enum AppEnum {
; ;
...@@ -15,7 +13,7 @@ public enum AppEnum { ...@@ -15,7 +13,7 @@ public enum AppEnum {
@AllArgsConstructor @AllArgsConstructor
public enum UniqueIdentifier { public enum UniqueIdentifier {
SMART_WEIGHT(1, "场站-smart-weight"), LMS_MANAGE(1, "物流子系统-lms-manage"),
PURCHASE_MANAGE(2, "供应链-purchase-manage"), PURCHASE_MANAGE(2, "供应链-purchase-manage"),
; ;
......
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum InputOutputEnum {
;
@Getter
@AllArgsConstructor
public enum Type {
INPUT(1, "进场"),
OUTPUT(2, "出场"),
;
private final Integer code;
private final String msg;
public static Optional<Type> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Type::getMsg).orElse(null);
}
}
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum SaleBuyEnum {
;
@Getter
@AllArgsConstructor
public enum Type {
SALE(1, "销售"),
BUY(2, "采购"),
;
private final Integer code;
private final String msg;
public static Optional<Type> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Type::getMsg).orElse(null);
}
}
}
...@@ -99,8 +99,8 @@ ...@@ -99,8 +99,8 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.smart</groupId> <groupId>com.scm</groupId>
<artifactId>smart-weight-sdk</artifactId> <artifactId>lms-manage-sdk</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.clx.cy</groupId> <groupId>com.clx.cy</groupId>
......
package com.clx.performance.job; 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.OrderChildDao;
import com.clx.performance.dao.OrderChildWeighPictureDao; import com.clx.performance.dao.OrderChildWeighPictureDao;
import com.clx.performance.enums.AppEnum;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.model.App; import com.clx.performance.enums.SaleBuyEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildWeighPicture; import com.clx.performance.model.OrderChildWeighPicture;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.struct.OrderChildWeighPictureStruct; import com.clx.performance.struct.OrderChildWeighPictureStruct;
import com.msl.common.job.JobLog; import com.msl.common.job.JobLog;
import com.msl.common.open.OpenClient; import com.smart.business.sdk.request.dto.WeighingSignatureDto;
import com.msl.common.open.RequestConfig; import com.smart.business.sdk.request.dto.WeightChildSignatureDto;
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 com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -26,7 +21,6 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -26,7 +21,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Slf4j @Slf4j
...@@ -44,10 +38,7 @@ public class WeighingOderPictureJob{ ...@@ -44,10 +38,7 @@ public class WeighingOderPictureJob{
private OrderChildWeighPictureDao pictureDao; private OrderChildWeighPictureDao pictureDao;
@Autowired @Autowired
private PerformanceSmartCompanyNoConfig companyNoConfig; private OrderChildService orderChildService;
@Autowired
private LoadAppConfig loadAppConfig;
/** /**
...@@ -78,35 +69,22 @@ public class WeighingOderPictureJob{ ...@@ -78,35 +69,22 @@ public class WeighingOderPictureJob{
//查询运单下的电子磅单数据 //查询运单下的电子磅单数据
if(CollectionUtils.isNotEmpty(orderChilds)){ if(CollectionUtils.isNotEmpty(orderChilds)){
App app = loadAppConfig.getApp(AppEnum.UniqueIdentifier.SMART_WEIGHT.getCode());//对接场站配置信息
//组装配置信息
RequestConfig config = new RequestConfig()
.setAppId(app.getAppNo())
.setAppKey(app.getAppKey())
.setGatewayUrl(app.getCallback());
//集合对象 //集合对象
List<OrderChildWeighPicture> pictures = new ArrayList<>(); List<OrderChildWeighPicture> pictures = new ArrayList<>();
for(OrderChild orderChild:orderChilds){ for(OrderChild orderChild:orderChilds){
//通过运单号码查询电子磅单图片 //通过运单号查询电子磅单图片
WeighingSignatureAction weightAction = new WeighingSignatureAction(); WeightChildSignatureDto weighingSignature = orderChildService.getWeighingSignature(orderChild.getChildNo(), SaleBuyEnum.Type.BUY.getCode());
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)){ if(CollectionUtils.isEmpty(weighingSignature.getWeighingSignatureList())){
continue; continue;
} }
List<WeighingSignatureDto> weighSignatures = weighSignature.getData(); List<WeighingSignatureDto> weighingSignatureList = weighingSignature.getWeighingSignatureList();
if (CollectionUtils.isNotEmpty(weighSignatures)) { for(WeighingSignatureDto weighingSignatureDto:weighingSignatureList){
for(WeighingSignatureDto weighingSignatureDto:weighSignatures){
OrderChildWeighPicture picture = pictureStruct.convert(weighingSignatureDto); OrderChildWeighPicture picture = pictureStruct.convert(weighingSignatureDto);
picture.setChildNo(orderChild.getChildNo());//对象转换 picture.setChildNo(orderChild.getChildNo());//对象转换
pictures.add(picture); pictures.add(picture);
} }
}
} }
......
...@@ -13,7 +13,7 @@ import com.clx.performance.vo.app.owner.OwnerOrderChildVO; ...@@ -13,7 +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 com.smart.business.sdk.request.dto.WeightChildSignatureDto;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -119,5 +119,5 @@ public interface OrderChildService { ...@@ -119,5 +119,5 @@ public interface OrderChildService {
NeedAlertSuperviseInfoResultVO needAlertSuperviseInfo(NeedAlertSuperviseInfoParam param); NeedAlertSuperviseInfoResultVO needAlertSuperviseInfo(NeedAlertSuperviseInfoParam param);
List<WeighingSignatureDto> getWeighingSignature(String childNo); WeightChildSignatureDto getWeighingSignature(String childNo,Integer type);
} }
...@@ -95,8 +95,9 @@ import com.purchase.manage.action.SupplyChainSupervisionLoadAction; ...@@ -95,8 +95,9 @@ 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.scm.lms.manage.action.LmsWeighingSignatureAction;
import com.smart.weight.dto.WeighingSignatureDto; import com.smart.business.sdk.request.dto.WeighingSignatureDto;
import com.smart.business.sdk.request.dto.WeightChildSignatureDto;
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;
...@@ -2191,7 +2192,6 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2191,7 +2192,6 @@ 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(
...@@ -2200,11 +2200,6 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2200,11 +2200,6 @@ 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()));
...@@ -2213,6 +2208,29 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2213,6 +2208,29 @@ public class OrderChildServiceImpl implements OrderChildService {
result.setLoadTime(orderChild.getLoadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getLoadTime())); result.setLoadTime(orderChild.getLoadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getLoadTime()));
result.setUnloadTime(orderChild.getUnloadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getUnloadTime())); result.setUnloadTime(orderChild.getUnloadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getUnloadTime()));
//首次回显过磅电子磅单,其他情况回显用户上传的图片
WeightChildSignatureDto weighingSignature = getWeighingSignature(childNo,SaleBuyEnum.Type.BUY.getCode());//获取电子磅单图片 类型:1-销售,2-采购
if(CollectionUtils.isEmpty(result.getUnloadImageList())){//卸车图片
if(CollectionUtils.isNotEmpty(weighingSignature.getWeighingSignatureList())){//有电子磅单
result.setUnloadImageList(weighingSignature.getWeighingSignatureList().stream().filter(
item -> Objects.equals(item.getType(), InputOutputEnum.Type.OUTPUT.getCode())).map(
item -> StringUtils.isNotBlank(item.getSignImg())? item.getSignImg():item.getOriginalImg())
.collect(Collectors.toList()));//获取出场电子磅单图片 优先获取盖章图片
}
}
if(Objects.nonNull(result.getUnloadTare())){//卸车皮重
result.setUnloadTare(weighingSignature.getTare());
}
if(Objects.nonNull(result.getUnloadNet())){//卸车净重
result.setUnloadNet(weighingSignature.getNet());
}
if(Objects.nonNull(result.getUnloadRough())){//卸车毛重
result.setUnloadRough(weighingSignature.getRough());
}
if(StringUtils.isBlank(result.getUnloadTime())){//卸车时间
result.setUnloadTime(weighingSignature.getOutTime() ==null?null:convertLocalDateTimeToDefaultString(weighingSignature.getOutTime()));
}
return result; return result;
} }
...@@ -3513,12 +3531,17 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -3513,12 +3531,17 @@ public class OrderChildServiceImpl implements OrderChildService {
return null; return null;
} }
List<String> images = getWeighingSignature(param.getChildNo()).stream().filter( WeightChildSignatureDto weighingSignature = getWeighingSignature(param.getChildNo(),SaleBuyEnum.Type.BUY.getCode());//获取电子磅单图片
item -> Objects.equals(item.getType(), 2)).map( List<WeighingSignatureDto> weighingSignatureList = weighingSignature.getWeighingSignatureList();//图片集合
item -> item.getOriginalImg()).collect(Collectors.toList());//获取电子磅单图片 if(CollectionUtils.isNotEmpty(weighingSignatureList)){
List<String> images = weighingSignatureList.stream().filter(
item -> Objects.equals(item.getType(), InputOutputEnum.Type.OUTPUT.getCode())).map(
item -> StringUtils.isNotBlank(item.getSignImg())? item.getSignImg():item.getOriginalImg())
.collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(images)){ if(CollectionUtils.isNotEmpty(images)){
return null; return null;
} }
}
try{ try{
OcrRecognitionResultVO vo = new OcrRecognitionResultVO(); OcrRecognitionResultVO vo = new OcrRecognitionResultVO();
...@@ -3789,28 +3812,30 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -3789,28 +3812,30 @@ public class OrderChildServiceImpl implements OrderChildService {
/** /**
* 通过运单号获取电子磅单相关信息 * 通过运单号获取电子磅单相关信息
* @param childNo * @param childNo
* @param type 1 销售 2 采购
* @return * @return
*/ */
public List<WeighingSignatureDto> getWeighingSignature(String childNo){ public WeightChildSignatureDto getWeighingSignature(String childNo,Integer type){
App app = appConfig.getApp(AppEnum.UniqueIdentifier.SMART_WEIGHT.getCode());//对接场站配置信息 App app = loadAppConfig.getApp(AppEnum.UniqueIdentifier.LMS_MANAGE.getCode());//对接物流子系统配置信息
//组装配置信息 //组装配置信息
RequestConfig config = new RequestConfig() RequestConfig config = new RequestConfig()
.setAppId(app.getAppNo()) .setAppId(app.getAppNo())
.setAppKey(app.getAppKey()) .setAppKey(app.getAppKey())
.setGatewayUrl(app.getCallback()); .setGatewayUrl(app.getCallback());
//通过运单号码查询电子磅单图片 //通过运单号码查询电子磅单图片
WeighingSignatureAction weightAction = new WeighingSignatureAction(); LmsWeighingSignatureAction weightAction = new LmsWeighingSignatureAction();
weightAction.setChildNo(childNo); weightAction.setChildNo(childNo);
weightAction.setCustomerRelationNo(String.valueOf(companyNoConfig.getCompanyNo())); weightAction.setCustomerRelationNo(String.valueOf(companyNoConfig.getCompanyNo()));
weightAction.setType(type);
log.info("接口请求电子磅单参数,{}",weightAction); log.info("接口请求电子磅单参数,{}",weightAction);
Result<List<WeighingSignatureDto>> weighSignature = OpenClient.doAction(config, weightAction); Result<WeightChildSignatureDto> weighSignature = OpenClient.doAction(config, weightAction);
log.info("接口请求电子磅单返回结果,{}",weighSignature); log.info("接口请求电子磅单返回结果,{}",weighSignature);
//数据处理 //数据处理
if(Objects.equals(weighSignature.getCode(),0)){ if(Objects.equals(weighSignature.getCode(),0)){
List<WeighingSignatureDto> weighSignatures = weighSignature.getData(); WeightChildSignatureDto weighSignatures = weighSignature.getData();
return weighSignatures; return weighSignatures;
} }
return new ArrayList<>(); return new WeightChildSignatureDto();
} }
} }
package com.clx.performance.service.impl; package com.clx.performance.service.impl;
import com.clx.performance.enums.InputOutputEnum;
import com.clx.performance.enums.SaleBuyEnum;
import com.clx.performance.param.app.OrderChildWeighPictureParam; import com.clx.performance.param.app.OrderChildWeighPictureParam;
import com.clx.performance.service.OrderChildService; import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderChildWeighPictureService; import com.clx.performance.service.OrderChildWeighPictureService;
import com.clx.performance.vo.app.PictureVo; import com.clx.performance.vo.app.PictureVo;
import com.smart.weight.dto.WeighingSignatureDto; import com.smart.business.sdk.request.dto.WeightChildSignatureDto;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -26,14 +29,15 @@ public class OrderChildWeighPictureServiceImpl implements OrderChildWeighPictur ...@@ -26,14 +29,15 @@ public class OrderChildWeighPictureServiceImpl implements OrderChildWeighPictur
@Override @Override
public PictureVo getWeighPictures(OrderChildWeighPictureParam param) { public PictureVo getWeighPictures(OrderChildWeighPictureParam param) {
//电子磅单图片 //电子磅单图片
List<WeighingSignatureDto> images = orderChildService.getWeighingSignature(param.getChildNo()); WeightChildSignatureDto unloadImages = orderChildService.getWeighingSignature(param.getChildNo(), SaleBuyEnum.Type.BUY.getCode());
PictureVo vo = new PictureVo(); PictureVo vo = new PictureVo();
vo.setLoadImages(images.stream().filter(
item -> Objects.equals(item.getType(), 1)).map( if (CollectionUtils.isNotEmpty(unloadImages.getWeighingSignatureList())){
item -> item.getOriginalImg()).collect(Collectors.toList())); vo.setUnloadImages(unloadImages.getWeighingSignatureList().stream().filter(
vo.setUnloadImages(images.stream().filter( item -> Objects.equals(item.getType(), InputOutputEnum.Type.OUTPUT.getCode())).map(
item -> Objects.equals(item.getType(), 2)).map( item -> StringUtils.isNotBlank(item.getSignImg())? item.getSignImg():item.getOriginalImg()).collect(Collectors.toList()));
item -> item.getOriginalImg()).collect(Collectors.toList())); }
return vo; return vo;
} }
} }
...@@ -3,7 +3,7 @@ package com.clx.performance.struct; ...@@ -3,7 +3,7 @@ package com.clx.performance.struct;
import com.clx.performance.model.OrderChildWeighPicture; import com.clx.performance.model.OrderChildWeighPicture;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import com.smart.weight.dto.WeighingSignatureDto; import com.smart.business.sdk.request.dto.WeighingSignatureDto;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class}) @Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论