提交 13bc0869 authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v19.6_carrier_optimization_20240717' into dev

# Conflicts: # performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
...@@ -156,7 +156,19 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -156,7 +156,19 @@ public enum PerformanceResultEnum implements ResultEnum {
OWNER_LOAN_RECORD_PAY_WAIT_ERROR(1853,"当前借款单状态不是待付款"), OWNER_LOAN_RECORD_PAY_WAIT_ERROR(1853,"当前借款单状态不是待付款"),
OWNER_LOAN_PAYMENT_STATUS_ERROR(1854, "执行借款审批失败,请稍后重试"), OWNER_LOAN_PAYMENT_STATUS_ERROR(1854, "执行借款审批失败,请稍后重试"),
OWNER_LOAN_PAY_STATUS_ERROR(1855, "付款失败"), OWNER_LOAN_PAY_STATUS_ERROR(1855, "付款失败"),
DATA_STATUS_ERROR(1856, "当前状态有误") DATA_STATUS_ERROR(1856, "当前状态有误"),
/**
* 磅单OCR识别
*/
OCR_RECOGNITION_ERROR(2101, "OCR识别错误"),
OCR_RECOGNITION_REPEAT(2102, "同一个运单只能识别一次"),
LOAD_TIME_BEFORE_ARRIVE_SEND_TIME(2103, "装货时间不可早于到达货源地时间"),
LOAD_TIME_AFTER_NOW(2104, "装货时间不可晚于当前时间"),
LOAD_TIME_AFTER_FIRST_LOAD_TIME(2105, "装货时间不可晚于首次提交时间"),
UNLOAD_TIME_BEFORE_ARRIVE_RECEIVE_TIME(2106, "交货时间不可早于到达目的地时间"),
UNLOAD_TIME_AFTER_NOW(2107, "交货时间不可晚于当前时间"),
UNLOAD_TIME_AFTER_FIRST_UNLOAD_TIME(2108, "交货时间不可晚于首次提交时间"),
; ;
private final int code; private final int code;
private final String msg; private final String msg;
......
...@@ -47,11 +47,9 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam { ...@@ -47,11 +47,9 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
private List<String> unloadImageList; private List<String> unloadImageList;
@ApiModelProperty(value = "装货时间") @ApiModelProperty(value = "装货时间")
@NotBlank(message = "装货时间不能为空")
private String loadTime; private String loadTime;
@ApiModelProperty(value = "交货时间") @ApiModelProperty(value = "交货时间")
@NotBlank(message = "交货时间不能为空")
private String unloadTime; private String unloadTime;
} }
...@@ -5,7 +5,6 @@ import lombok.Getter; ...@@ -5,7 +5,6 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -34,6 +33,5 @@ public class OrderChildLoadParam extends PositionParam { ...@@ -34,6 +33,5 @@ public class OrderChildLoadParam extends PositionParam {
private List<String> loadImageList; private List<String> loadImageList;
@ApiModelProperty(value = "装货时间") @ApiModelProperty(value = "装货时间")
@NotBlank(message = "装货时间不能为空")
private String loadTime; private String loadTime;
} }
...@@ -5,10 +5,8 @@ import lombok.Getter; ...@@ -5,10 +5,8 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -32,7 +30,6 @@ public class OrderChildUnloadParam extends PositionParam { ...@@ -32,7 +30,6 @@ public class OrderChildUnloadParam extends PositionParam {
private List<String> unloadImageList; private List<String> unloadImageList;
@ApiModelProperty(value = "交货时间") @ApiModelProperty(value = "交货时间")
@NotBlank(message = "交货时间不能为空")
private String unloadTime; private String unloadTime;
} }
...@@ -6,6 +6,8 @@ import lombok.NoArgsConstructor; ...@@ -6,6 +6,8 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.math.BigDecimal;
/** /**
* @author yangqifa * @author yangqifa
*/ */
...@@ -15,7 +17,7 @@ import lombok.ToString; ...@@ -15,7 +17,7 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
public class OcrRecognitionResultVO { public class OcrRecognitionResultVO {
@ApiModelProperty(value = "毛重", example = "48.36") @ApiModelProperty(value = "毛重", example = "48.36")
private Double grossWeight; private BigDecimal grossWeight;
@ApiModelProperty(value = "皮重", example = "16.32") @ApiModelProperty(value = "皮重", example = "16.32")
private Double tareWeight; private BigDecimal tareWeight;
} }
package com.clx.performance.vo.app; package com.clx.performance.vo.app;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.msl.common.convertor.type.MoneyOutConvert; import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
...@@ -9,7 +8,6 @@ import lombok.Setter; ...@@ -9,7 +8,6 @@ import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -56,14 +54,20 @@ public class OrderChildPoundInfoVO { ...@@ -56,14 +54,20 @@ public class OrderChildPoundInfoVO {
private List<String> unloadImageList; private List<String> unloadImageList;
@ApiModelProperty(value = "到达货源地时间") @ApiModelProperty(value = "到达货源地时间")
private LocalDateTime arriveSendTime; private String arriveSendTime;
@ApiModelProperty(value = "首次装货时间") @ApiModelProperty(value = "首次装货时间")
private LocalDateTime firstLoadTime; private String firstLoadTime;
@ApiModelProperty(value = "到达目的地时间") @ApiModelProperty(value = "到达目的地时间")
private LocalDateTime arriveReceiveTime; private String arriveReceiveTime;
@ApiModelProperty(value = "首次交货时间") @ApiModelProperty(value = "首次交货时间")
private LocalDateTime firstUnloadTime; private String firstUnloadTime;
@ApiModelProperty(value = "装货时间")
private String loadTime;
@ApiModelProperty(value = "交货时间")
private String unloadTime;
} }
\ No newline at end of file
...@@ -72,14 +72,14 @@ public class OrderChildPoundAuditDetailVO { ...@@ -72,14 +72,14 @@ public class OrderChildPoundAuditDetailVO {
private String receiveAddress; private String receiveAddress;
@ApiModelProperty(value = "装车识别毛重参考") @ApiModelProperty(value = "装车识别毛重参考")
private Double loadGrossWeight; private BigDecimal loadGrossWeight;
@ApiModelProperty(value = "装车识别皮重参考") @ApiModelProperty(value = "装车识别皮重参考")
private Double loadTareWeight; private BigDecimal loadTareWeight;
@ApiModelProperty(value = "卸车识别毛重参考") @ApiModelProperty(value = "卸车识别毛重参考")
private Double unloadGrossWeight; private BigDecimal unloadGrossWeight;
@ApiModelProperty(value = "卸车识别皮重参考") @ApiModelProperty(value = "卸车识别皮重参考")
private Double unloadTareWeight; private BigDecimal unloadTareWeight;
} }
\ No newline at end of file
package com.clx.performance.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* @author yangqifa
*/
@Configuration
@Getter
@Setter
@ConfigurationProperties(prefix = "tencentcloudapi.credential")
public class TencentCloudApiOcrConfig {
private String secretId;
private String secretKey;
}
...@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
...@@ -92,8 +93,8 @@ public class CarrierOrderChildController { ...@@ -92,8 +93,8 @@ public class CarrierOrderChildController {
@ApiOperation(value = "业务信息", notes = "<br>By:胡宇帆") @ApiOperation(value = "业务信息", notes = "<br>By:胡宇帆")
@GetMapping("/orderChildBussInfo") @GetMapping("/orderChildBussInfo")
public Result<OrderChildBussInfoVO> getOrderChildBussInfo(@NotBlank(message = "车牌号不能为空") String truckNo) { public Result<OrderChildBussInfoVO> getOrderChildBussInfo(@NotNull(message = "车辆id不能为空") Integer truckId) {
return Result.ok(orderChildService.getOrderChildBussInfo(truckNo)); return Result.ok(orderChildService.getOrderChildBussInfo(truckId));
} }
......
...@@ -2,10 +2,13 @@ package com.clx.performance.dao; ...@@ -2,10 +2,13 @@ package com.clx.performance.dao;
import com.clx.performance.mapper.OcrRecognitionMapper; import com.clx.performance.mapper.OcrRecognitionMapper;
import com.clx.performance.model.OcrRecognition; import com.clx.performance.model.OcrRecognition;
import com.clx.performance.param.app.OcrRecognitionParam;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
/** /**
* @author yangqifa * @author yangqifa
*/ */
public interface OcrRecognitionDao extends BaseDao<OcrRecognitionMapper, OcrRecognition, Integer> { public interface OcrRecognitionDao extends BaseDao<OcrRecognitionMapper, OcrRecognition, Integer> {
boolean exists(OcrRecognitionParam param);
} }
...@@ -66,7 +66,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -66,7 +66,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
Integer getOrderChildTotalByUserNo(Long userNo); Integer getOrderChildTotalByUserNo(Long userNo);
List<OrderChild> getOrderChildBussInfo(String truckNo); List<OrderChild> getOrderChildBussInfo(int truckId);
List<OrderChild> selectListByOrderGoodsNo(String orderGoodsNo); List<OrderChild> selectListByOrderGoodsNo(String orderGoodsNo);
......
...@@ -17,4 +17,6 @@ public interface OrderGoodsDriverTruckDao extends BaseDao<OrderGoodsDriverTruckM ...@@ -17,4 +17,6 @@ public interface OrderGoodsDriverTruckDao extends BaseDao<OrderGoodsDriverTruckM
void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo, Integer truckId); void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo, Integer truckId);
Optional<List<OrderGoodsDriverTruck>> selectListByDriverUserNo(Long driverUserNo); Optional<List<OrderGoodsDriverTruck>> selectListByDriverUserNo(Long driverUserNo);
void updateTruckNoByTruckId(String truckNo, Integer truckId);
} }
...@@ -3,6 +3,7 @@ package com.clx.performance.dao.impl; ...@@ -3,6 +3,7 @@ package com.clx.performance.dao.impl;
import com.clx.performance.dao.OcrRecognitionDao; import com.clx.performance.dao.OcrRecognitionDao;
import com.clx.performance.mapper.OcrRecognitionMapper; import com.clx.performance.mapper.OcrRecognitionMapper;
import com.clx.performance.model.OcrRecognition; import com.clx.performance.model.OcrRecognition;
import com.clx.performance.param.app.OcrRecognitionParam;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -12,4 +13,11 @@ import org.springframework.stereotype.Repository; ...@@ -12,4 +13,11 @@ import org.springframework.stereotype.Repository;
*/ */
@Repository @Repository
public class OcrRecognitionDaoImpl extends BaseDaoImpl<OcrRecognitionMapper, OcrRecognition, Integer> implements OcrRecognitionDao { public class OcrRecognitionDaoImpl extends BaseDaoImpl<OcrRecognitionMapper, OcrRecognition, Integer> implements OcrRecognitionDao {
@Override
public boolean exists(OcrRecognitionParam param) {
return baseMapper.exists(lQrWrapper()
.eq(OcrRecognition::getChildNo, param.getChildNo())
.eq(OcrRecognition::getImageType, param.getImageType()));
}
} }
...@@ -373,9 +373,9 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -373,9 +373,9 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
@Override @Override
public List<OrderChild> getOrderChildBussInfo(String truckNo) { public List<OrderChild> getOrderChildBussInfo(int truckId) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper(); LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper();
query.eq(OrderChild::getTruckNo, truckNo) query.eq(OrderChild::getTruckId, truckId)
.in(OrderChild::getStatus, OrderChildEnum.Status.UNSETTLE.getCode(),OrderChildEnum.Status.COMPLETE.getCode()); .in(OrderChild::getStatus, OrderChildEnum.Status.UNSETTLE.getCode(),OrderChildEnum.Status.COMPLETE.getCode());
return baseMapper.selectList(query); return baseMapper.selectList(query);
} }
......
...@@ -36,4 +36,11 @@ public class OrderGoodsDriverTruckDaoImpl extends BaseDaoImpl<OrderGoodsDriverTr ...@@ -36,4 +36,11 @@ public class OrderGoodsDriverTruckDaoImpl extends BaseDaoImpl<OrderGoodsDriverTr
return Optional.of(orderGoodsDriverTrucks); return Optional.of(orderGoodsDriverTrucks);
} }
@Override
public void updateTruckNoByTruckId(String truckNo, Integer truckId) {
update(lUdWrapper().set(OrderGoodsDriverTruck::getTruckNo, truckNo)
.eq(OrderGoodsDriverTruck::getTruckId, truckId)
);
}
} }
...@@ -57,6 +57,10 @@ public class OrderGoodsDriverTruckListener { ...@@ -57,6 +57,10 @@ public class OrderGoodsDriverTruckListener {
orderGoodsDriverTruckDao.deleteByTruckNoAndDriverUserNo(truckNo.toString(), driverUserNo.toString(), Integer.valueOf(truckId.toString())); orderGoodsDriverTruckDao.deleteByTruckNoAndDriverUserNo(truckNo.toString(), driverUserNo.toString(), Integer.valueOf(truckId.toString()));
log.info("处理货单定向司机表:执行删除"); log.info("处理货单定向司机表:执行删除");
break; break;
case "3":
orderGoodsDriverTruckDao.updateTruckNoByTruckId(truckNo.toString(), Integer.valueOf(truckId.toString()));
log.info("处理货单定向司机表:执行更新");
break;
default: default:
break; break;
} }
......
...@@ -6,6 +6,7 @@ import com.msl.common.config.KeyColumn; ...@@ -6,6 +6,7 @@ import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey; import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
...@@ -45,13 +46,19 @@ public class OcrRecognition implements HasKey<Integer> { ...@@ -45,13 +46,19 @@ public class OcrRecognition implements HasKey<Integer> {
* 毛重 * 毛重
*/ */
@ApiModelProperty(value = "毛重") @ApiModelProperty(value = "毛重")
private Double grossWeight; private BigDecimal grossWeight;
/** /**
* 皮重 * 皮重
*/ */
@ApiModelProperty(value = "皮重") @ApiModelProperty(value = "皮重")
private Double tareWeight; private BigDecimal tareWeight;
/**
* OCR识别的原始结果
*/
@ApiModelProperty(value = "OCR识别的原始结果")
private String originalResult;
/** /**
* 创建时间 * 创建时间
......
...@@ -71,7 +71,7 @@ public interface OrderChildService { ...@@ -71,7 +71,7 @@ public interface OrderChildService {
Integer getOrderChildTotalByUserNo(Long userNo); Integer getOrderChildTotalByUserNo(Long userNo);
OrderChildBussInfoVO getOrderChildBussInfo(String truckNo); OrderChildBussInfoVO getOrderChildBussInfo(int truckId);
IPage<OutputMonitorOrderChildVO> getMonitorOrerChildListsByParam(PageMonitorOrderChildQCParam param); IPage<OutputMonitorOrderChildVO> getMonitorOrerChildListsByParam(PageMonitorOrderChildQCParam param);
......
...@@ -63,7 +63,7 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -63,7 +63,7 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
List<OrderChildImage> unloadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.UNLOAD.getCode()); List<OrderChildImage> unloadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.UNLOAD.getCode());
OrderChild orderChild = orderChildDao.getByChildNo(childNo).get(); OrderChild orderChild = orderChildDao.getByChildNo(childNo).get();
List<OcrRecognition> ocrRecognitionList = ocrRecognitionDao.listByField(OcrRecognition::getChildNo, childNo); List<OcrRecognition> ocrRecognitionList = ocrRecognitionDao.listByField(OcrRecognition::getChildNo, childNo);
Map<Integer, OcrRecognition> imageTypeOcrRecognitionMap = ocrRecognitionList.stream().collect(Collectors.toMap(OcrRecognition::getImageType, item -> item)); Map<Integer, OcrRecognition> imageTypeOcrRecognitionMap = ocrRecognitionList.stream().collect(Collectors.toMap(OcrRecognition::getImageType, v -> v,(k1,k2)->k1));
OrderChildPoundAuditDetailVO vo = new OrderChildPoundAuditDetailVO(); OrderChildPoundAuditDetailVO vo = new OrderChildPoundAuditDetailVO();
vo.setChildNo(childNo); vo.setChildNo(childNo);
vo.setLoadImages(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList())); vo.setLoadImages(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
...@@ -252,6 +252,9 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -252,6 +252,9 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
//本次调整金额 //本次调整金额
BigDecimal platformServiceFeeNew = BigDecimal.ZERO; BigDecimal platformServiceFeeNew = BigDecimal.ZERO;
log.info("运单号 {} ,原始冻结金额 {} ",orderChild.getChildNo(),platformServiceFee); log.info("运单号 {} ,原始冻结金额 {} ",orderChild.getChildNo(),platformServiceFee);
if(Objects.isNull(platformServiceFee)){
return PaymentDTO.builder().changeDeposit(null).platformServiceFeeNew(null).build();
}
if(freight.compareTo(BigDecimal.ZERO)<=0){ if(freight.compareTo(BigDecimal.ZERO)<=0){
return PaymentDTO.builder().changeDeposit(platformServiceFee.multiply(new BigDecimal("-1"))).platformServiceFeeNew(platformServiceFeeNew).build(); return PaymentDTO.builder().changeDeposit(platformServiceFee.multiply(new BigDecimal("-1"))).platformServiceFeeNew(platformServiceFeeNew).build();
} }
......
...@@ -15,6 +15,7 @@ import com.clx.order.vo.pc.carrier.InvoicingCompanyVO; ...@@ -15,6 +15,7 @@ import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO; import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderChildLoanComponent; import com.clx.performance.component.OrderChildLoanComponent;
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;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
...@@ -62,6 +63,7 @@ import com.clx.performance.vo.pc.*; ...@@ -62,6 +63,7 @@ import com.clx.performance.vo.pc.*;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO; import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformServiceFeeConfigVO; import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformServiceFeeConfigVO;
import com.clx.user.enums.driver.DriverInfoEnum; import com.clx.user.enums.driver.DriverInfoEnum;
import com.clx.user.feign.DocumentFeign;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo; import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.clx.user.vo.feign.OwnerInfoFeignVO; import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
...@@ -83,8 +85,8 @@ import com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Request; ...@@ -83,8 +85,8 @@ import com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Request;
import com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Response; import com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Response;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.lang3.math.NumberUtils;
...@@ -92,11 +94,12 @@ import org.redisson.api.RLock; ...@@ -92,11 +94,12 @@ import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
...@@ -106,6 +109,8 @@ import java.util.concurrent.TimeUnit; ...@@ -106,6 +109,8 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.clx.performance.enums.PerformanceResultEnum.*;
import static com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToDefaultString;
import static com.msl.common.utils.LocalDateTimeUtils.covertStringToDefaultLocalDateTime; import static com.msl.common.utils.LocalDateTimeUtils.covertStringToDefaultLocalDateTime;
/** /**
...@@ -118,12 +123,7 @@ import static com.msl.common.utils.LocalDateTimeUtils.covertStringToDefaultLocal ...@@ -118,12 +123,7 @@ import static com.msl.common.utils.LocalDateTimeUtils.covertStringToDefaultLocal
@Service @Service
public class OrderChildServiceImpl implements OrderChildService { public class OrderChildServiceImpl implements OrderChildService {
@Value("${tencentcloudapi.credential.secretId}") private String domain = "http://clx-dev.oss-cn-beijing.aliyuncs.com";
private String secretId;
@Value("${tencentcloudapi.credential.secretKey}")
private String secretKey;
@Value("${oss.domain}")
private String ossDomain;
@Autowired @Autowired
private AmqpTemplate rabbitTemplate; private AmqpTemplate rabbitTemplate;
...@@ -203,6 +203,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -203,6 +203,9 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
SettlementOwnerDetailDao settlementOwnerDetailDao; SettlementOwnerDetailDao settlementOwnerDetailDao;
@Autowired
private OwnerRunningWaterRecordDao ownerRunningWaterRecordDao;
@Autowired @Autowired
private OrderChildLoanComponent orderChildLoanComponent; private OrderChildLoanComponent orderChildLoanComponent;
...@@ -219,7 +222,22 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -219,7 +222,22 @@ public class OrderChildServiceImpl implements OrderChildService {
private QuotationService quotationService; private QuotationService quotationService;
@Autowired @Autowired
private OcrRecognitionDao ocrRecognitionDao; private OcrRecognitionDao ocrRecognitionDao;
@Autowired
private TencentCloudApiOcrConfig tencentCloudApiOcrConfig;
@Autowired
private Environment environment;
@Autowired
private DocumentFeign documentFeign;
@PostConstruct
public void init(){
String[] activeProfiles = environment.getActiveProfiles();
if(!StringUtils.equals(activeProfiles[0],"dev")){
log.info("开始获取文件上传domain地址================");
domain = documentFeign.getHost().getData();
log.info("获取文件上传domain地址结束,地址:{}",domain);
}
}
@Autowired @Autowired
OrderGoodsAdjustmentPriceService orderGoodsAdjustmentPriceService; OrderGoodsAdjustmentPriceService orderGoodsAdjustmentPriceService;
...@@ -818,6 +836,20 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -818,6 +836,20 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_WEIGHT_ERROR); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_WEIGHT_ERROR);
} }
//装货时间不可早于到达货源地时间
LocalDateTime loadTime = StringUtils.isBlank(param.getLoadTime()) ? null : covertStringToDefaultLocalDateTime(param.getLoadTime());
if (loadTime!=null && loadTime.isBefore(orderChild.getArriveSendTime())) {
throw new ServiceSystemException(LOAD_TIME_BEFORE_ARRIVE_SEND_TIME);
}
//装货时间不可晚于当前时间
if (loadTime!=null && loadTime.isAfter(LocalDateTime.now())) {
throw new ServiceSystemException(LOAD_TIME_AFTER_NOW);
}
//装货时间不可晚于首次提交时间
if (loadTime!=null && orderChild.getFirstLoadTime()!=null && loadTime.isAfter(orderChild.getFirstLoadTime())) {
throw new ServiceSystemException(LOAD_TIME_AFTER_FIRST_LOAD_TIME);
}
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow( OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND); PerformanceResultEnum.DATA_NOT_FIND);
...@@ -939,7 +971,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -939,7 +971,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setLoadRough(param.getLoadRough()); orderChild.setLoadRough(param.getLoadRough());
orderChild.setLoadTare(param.getLoadTare()); orderChild.setLoadTare(param.getLoadTare());
orderChild.setLoadNet(loadNet); orderChild.setLoadNet(loadNet);
orderChild.setLoadTime(covertStringToDefaultLocalDateTime(param.getLoadTime())); orderChild.setLoadTime(StringUtils.isBlank(param.getLoadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getLoadTime()));
orderChild.setWeight(orderChildWeightCalc(orderChild)); orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setFreight(orderChildFreightCalc(orderChild)); orderChild.setFreight(orderChildFreightCalc(orderChild));
orderChild.setStatus(OrderChildEnum.Status.LOAD.getCode()); orderChild.setStatus(OrderChildEnum.Status.LOAD.getCode());
...@@ -977,7 +1009,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -977,7 +1009,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setLoadRough(param.getLoadRough()); orderChild.setLoadRough(param.getLoadRough());
orderChild.setLoadTare(param.getLoadTare()); orderChild.setLoadTare(param.getLoadTare());
orderChild.setLoadNet(loadNet); orderChild.setLoadNet(loadNet);
orderChild.setLoadTime(covertStringToDefaultLocalDateTime(param.getLoadTime())); orderChild.setLoadTime(StringUtils.isBlank(param.getLoadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getLoadTime()));
orderChild.setWeight(orderChildWeightCalc(orderChild)); orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setFreight(orderChildFreightCalc(orderChild)); orderChild.setFreight(orderChildFreightCalc(orderChild));
//更新货单吨数 //更新货单吨数
...@@ -1015,6 +1047,19 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1015,6 +1047,19 @@ public class OrderChildServiceImpl implements OrderChildService {
// throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR); // throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR);
// } // }
//交货时间不可早于到达目的地时间
LocalDateTime unloadTime = StringUtils.isBlank(param.getUnloadTime()) ? null : covertStringToDefaultLocalDateTime(param.getUnloadTime());
if (unloadTime!=null && unloadTime.isBefore(orderChild.getArriveReceiveTime())) {
throw new ServiceSystemException(UNLOAD_TIME_BEFORE_ARRIVE_RECEIVE_TIME);
}
//交货时间不可晚于当前时间
if (unloadTime!=null && unloadTime.isAfter(LocalDateTime.now())) {
throw new ServiceSystemException(UNLOAD_TIME_AFTER_NOW);
}
//交货时间不可晚于首次提交时间
if (unloadTime!=null && orderChild.getFirstUnloadTime()!=null && unloadTime.isAfter(orderChild.getFirstUnloadTime())) {
throw new ServiceSystemException(UNLOAD_TIME_AFTER_FIRST_UNLOAD_TIME);
}
if (orderChild.getUnloadTime() == null && if (orderChild.getUnloadTime() == null &&
Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())) { Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())) {
...@@ -1110,7 +1155,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1110,7 +1155,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setUnloadRough(param.getUnloadRough()); orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare()); orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(loadNet); orderChild.setUnloadNet(loadNet);
orderChild.setUnloadTime(covertStringToDefaultLocalDateTime(param.getUnloadTime())); orderChild.setUnloadTime(StringUtils.isBlank(param.getUnloadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getUnloadTime()));
orderChild.setWeight(orderChildWeightCalc(orderChild)); orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setStatus(OrderChildEnum.Status.UNLOAD.getCode()); orderChild.setStatus(OrderChildEnum.Status.UNLOAD.getCode());
orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode()); orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
...@@ -1172,7 +1217,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1172,7 +1217,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setUnloadRough(param.getUnloadRough()); orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare()); orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(loadNet); orderChild.setUnloadNet(loadNet);
orderChild.setUnloadTime(covertStringToDefaultLocalDateTime(param.getUnloadTime())); orderChild.setUnloadTime(StringUtils.isBlank(param.getUnloadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getUnloadTime()));
orderChild.setWeight(orderChildWeightCalc(orderChild)); orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode()); orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
orderChild.setFreight(orderChildFreightCalc(orderChild)); orderChild.setFreight(orderChildFreightCalc(orderChild));
...@@ -1245,6 +1290,25 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1245,6 +1290,25 @@ public class OrderChildServiceImpl implements OrderChildService {
// throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR); // throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR);
// } // }
//装货时间不可早于到达货源地时间
LocalDateTime loadTime = StringUtils.isBlank(param.getLoadTime()) ? null : covertStringToDefaultLocalDateTime(param.getLoadTime());
if (loadTime!=null && loadTime.isBefore(orderChild.getArriveSendTime())) {
throw new ServiceSystemException(LOAD_TIME_BEFORE_ARRIVE_SEND_TIME);
}
//装货时间不可晚于首次提交时间
if (loadTime!=null && orderChild.getFirstLoadTime()!=null && loadTime.isAfter(orderChild.getFirstLoadTime())) {
throw new ServiceSystemException(LOAD_TIME_AFTER_FIRST_LOAD_TIME);
}
//交货时间不可早于到达目的地时间
LocalDateTime unloadTime = StringUtils.isBlank(param.getUnloadTime()) ? null : covertStringToDefaultLocalDateTime(param.getUnloadTime());
if (unloadTime!=null && unloadTime.isBefore(orderChild.getArriveReceiveTime())) {
throw new ServiceSystemException(UNLOAD_TIME_BEFORE_ARRIVE_RECEIVE_TIME);
}
//交货时间不可晚于首次提交时间
if (unloadTime!=null && orderChild.getFirstUnloadTime()!=null && unloadTime.isAfter(orderChild.getFirstUnloadTime())) {
throw new ServiceSystemException(UNLOAD_TIME_AFTER_FIRST_UNLOAD_TIME);
}
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow( OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(
PerformanceResultEnum.ORDER_INVALID); PerformanceResultEnum.ORDER_INVALID);
...@@ -1275,8 +1339,8 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1275,8 +1339,8 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setWeight(orderChildWeightCalc(orderChild)); orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setFreight(orderChildFreightCalc(orderChild)); orderChild.setFreight(orderChildFreightCalc(orderChild));
orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode()); orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
orderChild.setLoadTime(covertStringToDefaultLocalDateTime(param.getLoadTime())); orderChild.setLoadTime(StringUtils.isBlank(param.getLoadTime())?orderChild.getLoadTime():covertStringToDefaultLocalDateTime(param.getLoadTime()));
orderChild.setUnloadTime(covertStringToDefaultLocalDateTime(param.getUnloadTime())); orderChild.setUnloadTime(StringUtils.isBlank(param.getUnloadTime())?orderChild.getUnloadTime():covertStringToDefaultLocalDateTime(param.getUnloadTime()));
OrderChildPoundAudit audit = new OrderChildPoundAudit(); OrderChildPoundAudit audit = new OrderChildPoundAudit();
audit.setChildNo(childNo); audit.setChildNo(childNo);
...@@ -1598,9 +1662,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1598,9 +1662,9 @@ public class OrderChildServiceImpl implements OrderChildService {
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
OrderChildVO result = orderChildStruct.convert(orderChild); OrderChildVO result = orderChildStruct.convert(orderChild);
result.setLastArriveSendTime(orderGoods.getLastArriveSendTime()==null? null : LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastArriveSendTime())); result.setLastArriveSendTime(orderGoods.getLastArriveSendTime()==null? null : convertLocalDateTimeToDefaultString(orderGoods.getLastArriveSendTime()));
result.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime()==null? null : LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastArriveReceiveTime())); result.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime()==null? null : convertLocalDateTimeToDefaultString(orderGoods.getLastArriveReceiveTime()));
result.setLastLoadTime(orderGoods.getLastLoadTime()==null? null : LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastLoadTime())); result.setLastLoadTime(orderGoods.getLastLoadTime()==null? null : convertLocalDateTimeToDefaultString(orderGoods.getLastLoadTime()));
// 磅单 // 磅单
if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())) { if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())) {
...@@ -1683,9 +1747,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1683,9 +1747,9 @@ public class OrderChildServiceImpl implements OrderChildService {
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
OrderChildVO result = orderChildStruct.convert(orderChild); OrderChildVO result = orderChildStruct.convert(orderChild);
result.setLastArriveSendTime(orderGoods.getLastArriveSendTime()==null? null : LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastArriveSendTime())); result.setLastArriveSendTime(orderGoods.getLastArriveSendTime()==null? null : convertLocalDateTimeToDefaultString(orderGoods.getLastArriveSendTime()));
result.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime()==null? null : LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastArriveReceiveTime())); result.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime()==null? null : convertLocalDateTimeToDefaultString(orderGoods.getLastArriveReceiveTime()));
result.setLastLoadTime(orderGoods.getLastLoadTime()==null? null : LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastLoadTime())); result.setLastLoadTime(orderGoods.getLastLoadTime()==null? null : convertLocalDateTimeToDefaultString(orderGoods.getLastLoadTime()));
// 磅单 // 磅单
if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())) { if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())) {
...@@ -1868,6 +1932,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1868,6 +1932,13 @@ 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()));
result.setArriveSendTime(orderChild.getArriveSendTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getArriveSendTime()));
result.setFirstLoadTime(orderChild.getFirstLoadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getFirstLoadTime()));
result.setArriveReceiveTime(orderChild.getArriveReceiveTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getArriveReceiveTime()));
result.setFirstUnloadTime(orderChild.getFirstUnloadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getFirstUnloadTime()));
result.setLoadTime(orderChild.getLoadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getLoadTime()));
result.setUnloadTime(orderChild.getUnloadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getUnloadTime()));
return result; return result;
} }
...@@ -2311,9 +2382,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2311,9 +2382,9 @@ public class OrderChildServiceImpl implements OrderChildService {
//查询货单 //查询货单
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow( OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(
PerformanceResultEnum.ORDER_INVALID); PerformanceResultEnum.ORDER_INVALID);
orderChildVO.setLastArriveSendTime(LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastArriveSendTime())); orderChildVO.setLastArriveSendTime(convertLocalDateTimeToDefaultString(orderGoods.getLastArriveSendTime()));
orderChildVO.setLastArriveReceiveTime(LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastArriveReceiveTime())); orderChildVO.setLastArriveReceiveTime(convertLocalDateTimeToDefaultString(orderGoods.getLastArriveReceiveTime()));
orderChildVO.setLastLoadTime(LocalDateTimeUtils.convertLocalDateTimeToDefaultString(orderGoods.getLastLoadTime())); orderChildVO.setLastLoadTime(convertLocalDateTimeToDefaultString(orderGoods.getLastLoadTime()));
} }
return orderChildVO; return orderChildVO;
...@@ -2325,8 +2396,8 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2325,8 +2396,8 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
@Override @Override
public OrderChildBussInfoVO getOrderChildBussInfo(String truckNo) { public OrderChildBussInfoVO getOrderChildBussInfo(int truckId) {
List<OrderChild> childList = orderChildDao.getOrderChildBussInfo(truckNo); List<OrderChild> childList = orderChildDao.getOrderChildBussInfo(truckId);
if (CollectionUtils.isEmpty(childList)) { if (CollectionUtils.isEmpty(childList)) {
OrderChildBussInfoVO vo = OrderChildBussInfoVO.builder().completeNum(0).historyLoadWeight( OrderChildBussInfoVO vo = OrderChildBussInfoVO.builder().completeNum(0).historyLoadWeight(
new BigDecimal("0")).completeCarryWeight(new BigDecimal("0")).loseWeight( new BigDecimal("0")).completeCarryWeight(new BigDecimal("0")).loseWeight(
...@@ -2943,4 +3014,51 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2943,4 +3014,51 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
return charts; return charts;
} }
@Override
public OcrRecognitionResultVO ocrRecognition(OcrRecognitionParam param) {
//校验,同一运单同一图片类型只能识别一次
if (ocrRecognitionDao.exists(param)) {
return null;
}
try{
OcrRecognitionResultVO vo = new OcrRecognitionResultVO();
Credential cred = new Credential(tencentCloudApiOcrConfig.getSecretId(), tencentCloudApiOcrConfig.getSecretKey());
OcrClient client = new OcrClient(cred, "ap-beijing");
String[] itemNames = {"毛重", "皮重"};
SmartStructuralOCRV2Request req = new SmartStructuralOCRV2Request();
req.setImageUrl(domain+param.getImageUrl());
req.setItemNames(itemNames);
SmartStructuralOCRV2Response resp = client.SmartStructuralOCRV2(req);
Map<String,String> originalResultMap = new HashMap<>();
for (GroupInfo groupInfo : resp.getStructuralList()) {
ItemInfo itemInfo = groupInfo.getGroups()[0].getLines()[0];
String autoName = itemInfo.getKey().getAutoName();
String autoContent = itemInfo.getValue().getAutoContent();
originalResultMap.put(autoName,autoContent);
if (NumberUtils.isCreatable(autoContent) && new BigDecimal(autoContent).compareTo(new BigDecimal(100))<0 && new BigDecimal(autoContent).scale()<=2) {
if ("毛重".equals(autoName)) {
vo.setGrossWeight(new BigDecimal(autoContent));
}else if ("皮重".equals(autoName)) {
vo.setTareWeight(new BigDecimal(autoContent));
}
}
}
//保存识别结果
OcrRecognition ocrRecognition = new OcrRecognition();
ocrRecognition.setChildNo(param.getChildNo());
ocrRecognition.setImageType(param.getImageType());
ocrRecognition.setImageUrl(param.getImageUrl());
ocrRecognition.setGrossWeight(vo.getGrossWeight());
ocrRecognition.setTareWeight(vo.getTareWeight());
ocrRecognition.setOriginalResult(JSONUtil.toJsonStr(originalResultMap));
ocrRecognitionDao.saveEntity(ocrRecognition);
return vo;
} catch (TencentCloudSDKException e) {
log.error(e.getMessage(),e);
throw new ServiceSystemException(OCR_RECOGNITION_ERROR);
}
}
} }
...@@ -383,7 +383,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -383,7 +383,7 @@ public class PaymentServiceImpl implements PaymentService {
orderPaymentDao.selectByRelationNo(orderNo,operation,paymentItem).orNull(); orderPaymentDao.selectByRelationNo(orderNo,operation,paymentItem).orNull();
if (null == orderPaymentOptional){ if (null == orderPaymentOptional){
log.error("数据不存在 {}, {}" ,orderNo,msg); log.error("数据不存在 {}, {}" ,orderNo,msg);
return; throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND,"数据不存在") ;
} }
orderPaymentOptional.setStatus(PaymentStatusEnum.FAIL.getValue()); orderPaymentOptional.setStatus(PaymentStatusEnum.FAIL.getValue());
orderPaymentOptional.setReason(msg); orderPaymentOptional.setReason(msg);
...@@ -396,8 +396,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -396,8 +396,7 @@ public class PaymentServiceImpl implements PaymentService {
OrderPayment orderPaymentOptional = OrderPayment orderPaymentOptional =
orderPaymentDao.selectByRelationNo(orderNo,operation,paymentItem).orNull(); orderPaymentDao.selectByRelationNo(orderNo,operation,paymentItem).orNull();
if (null == orderPaymentOptional){ if (null == orderPaymentOptional){
log.error("数据不存在 {}, {}" ,orderNo); throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND,"数据不存在") ;
return;
} }
orderPaymentOptional.setStatus(PaymentStatusEnum.SUCCESS.getValue()); orderPaymentOptional.setStatus(PaymentStatusEnum.SUCCESS.getValue());
orderPaymentDao.updateEntityByKey(orderPaymentOptional); orderPaymentDao.updateEntityByKey(orderPaymentOptional);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论