提交 493752e4 authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'master' into v19.4_order_performance_progress_20240712

# Conflicts: # performance-web/src/main/java/com/clx/performance/dao/OrderGoodsDao.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java # performance-web/src/main/java/com/clx/performance/listener/OrderChildDtsListener.java # performance-web/src/main/java/com/clx/performance/service/OrderChildService.java # 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;
......
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;
import javax.validation.constraints.NotNull;
/**
* @author yangqifa
*/
@Getter
@Setter
@NoArgsConstructor
public class OcrRecognitionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
private String childNo;
@ApiModelProperty(value = "图片类型,1:装车磅单,2:卸车磅单")
@NotNull(message = "图片类型不能为空")
private Integer imageType;
@ApiModelProperty(value = "磅单图片url")
@NotBlank(message = "磅单图片url不能为空")
private String imageUrl;
}
...@@ -21,10 +21,6 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam { ...@@ -21,10 +21,6 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
@NotBlank(message = "运单编号不能为空") @NotBlank(message = "运单编号不能为空")
private String childNo; private String childNo;
@ApiModelProperty(value = "卸货磅单编号", example = "url")
@NotBlank(message = "交货磅单号不能为空")
private String unloadPoundNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull @NotNull
private BigDecimal loadRough; private BigDecimal loadRough;
...@@ -50,4 +46,10 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam { ...@@ -50,4 +46,10 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
@NotEmpty(message = "请上传磅单照片") @NotEmpty(message = "请上传磅单照片")
private List<String> unloadImageList; private List<String> unloadImageList;
@ApiModelProperty(value = "装货时间")
private String loadTime;
@ApiModelProperty(value = "交货时间")
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;
...@@ -33,4 +32,6 @@ public class OrderChildLoadParam extends PositionParam { ...@@ -33,4 +32,6 @@ public class OrderChildLoadParam extends PositionParam {
@NotEmpty(message = "请上传磅单照片") @NotEmpty(message = "请上传磅单照片")
private List<String> loadImageList; private List<String> loadImageList;
@ApiModelProperty(value = "装货时间")
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;
...@@ -21,10 +19,6 @@ public class OrderChildUnloadParam extends PositionParam { ...@@ -21,10 +19,6 @@ public class OrderChildUnloadParam extends PositionParam {
@NotBlank(message = "运单编号不能为空") @NotBlank(message = "运单编号不能为空")
private String childNo; private String childNo;
@ApiModelProperty(value = "卸货磅单编号", example = "url")
@NotBlank(message = "交货磅单号不能为空")
private String unloadPoundNo;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46")
private BigDecimal unloadRough; private BigDecimal unloadRough;
...@@ -35,4 +29,7 @@ public class OrderChildUnloadParam extends PositionParam { ...@@ -35,4 +29,7 @@ public class OrderChildUnloadParam extends PositionParam {
@NotEmpty(message = "请上传磅单照片") @NotEmpty(message = "请上传磅单照片")
private List<String> unloadImageList; private List<String> unloadImageList;
@ApiModelProperty(value = "交货时间")
private String unloadTime;
} }
...@@ -7,6 +7,9 @@ import lombok.NoArgsConstructor; ...@@ -7,6 +7,9 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* @Author liruixin * @Author liruixin
* @create 2023-09-19 13:33 * @create 2023-09-19 13:33
...@@ -17,6 +20,9 @@ import lombok.ToString; ...@@ -17,6 +20,9 @@ import lombok.ToString;
@ToString @ToString
public class PageCarrierOrderChildParam extends PageParam { public class PageCarrierOrderChildParam extends PageParam {
@ApiModelProperty(value = "货单编号")
private String orderGoodsNo;
@ApiModelProperty(value="运单编号",example = "201457878") @ApiModelProperty(value="运单编号",example = "201457878")
private String childNo; private String childNo;
...@@ -44,6 +50,9 @@ public class PageCarrierOrderChildParam extends PageParam { ...@@ -44,6 +50,9 @@ public class PageCarrierOrderChildParam extends PageParam {
@ApiModelProperty(value = "车牌号",example = "晋A12345") @ApiModelProperty(value = "车牌号",example = "晋A12345")
private String truckNo; private String truckNo;
@ApiModelProperty(value = "运单状态集合")
private List<Integer> statusList;
} }
...@@ -33,5 +33,11 @@ public class PageOrderGoodsListParam extends PageParam { ...@@ -33,5 +33,11 @@ public class PageOrderGoodsListParam extends PageParam {
@ApiModelProperty(value = "用车类型: 1平台车辆 2部分平台车辆 3自有车辆") @ApiModelProperty(value = "用车类型: 1平台车辆 2部分平台车辆 3自有车辆")
private Integer truckDemand; private Integer truckDemand;
@ApiModelProperty(value="发货地址",example = "北京")
private String sendAddress;
@ApiModelProperty(value="收货地址",example = "黄羊城")
private String receiveAddress;
} }
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class QueryOrderChildsListByParam extends PageParam {
@ApiModelProperty(value = "运单状态集合")
private List<Integer> statusList;
@ApiModelProperty(value = "货单编号")
@NotBlank(message = "货单编号不能为空")
private String orderGoodsNo;
}
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.math.BigDecimal;
/**
* @author yangqifa
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OcrRecognitionResultVO {
@ApiModelProperty(value = "毛重", example = "48.36")
private BigDecimal grossWeight;
@ApiModelProperty(value = "皮重", example = "16.32")
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;
...@@ -54,4 +53,21 @@ public class OrderChildPoundInfoVO { ...@@ -54,4 +53,21 @@ public class OrderChildPoundInfoVO {
@ApiModelProperty(value = "卸车磅单图片列表") @ApiModelProperty(value = "卸车磅单图片列表")
private List<String> unloadImageList; private List<String> unloadImageList;
@ApiModelProperty(value = "到达货源地时间")
private String arriveSendTime;
@ApiModelProperty(value = "首次装货时间")
private String firstLoadTime;
@ApiModelProperty(value = "到达目的地时间")
private String arriveReceiveTime;
@ApiModelProperty(value = "首次交货时间")
private String firstUnloadTime;
@ApiModelProperty(value = "装货时间")
private String loadTime;
@ApiModelProperty(value = "交货时间")
private String unloadTime;
} }
\ No newline at end of file
...@@ -24,4 +24,10 @@ public class OrderChildPCVO { ...@@ -24,4 +24,10 @@ public class OrderChildPCVO {
@ApiModelProperty("运单状态:10:已接单 20:支付 30:前往货源地 40:到达货源地 50:装货成功 60:前往目的地 70:到达目的地 80:收货待确认 90:待结算 100:完成 110:司机取消 111:平台取消") @ApiModelProperty("运单状态:10:已接单 20:支付 30:前往货源地 40:到达货源地 50:装货成功 60:前往目的地 70:到达目的地 80:收货待确认 90:待结算 100:完成 110:司机取消 111:平台取消")
private Integer status; private Integer status;
@ApiModelProperty("司机姓名")
private String driverName;
@ApiModelProperty("司机手机号")
private String driverMobile;
} }
\ No newline at end of file
...@@ -56,6 +56,30 @@ public class OrderChildPoundAuditDetailVO { ...@@ -56,6 +56,30 @@ public class OrderChildPoundAuditDetailVO {
@ApiModelProperty(value="创建时间",example = "2012-01-01 01:10:10") @ApiModelProperty(value="创建时间",example = "2012-01-01 01:10:10")
private String createTime; private String createTime;
@ApiModelProperty("车牌号")
private String truckNo;
@ApiModelProperty(value = "装车时间")
private String loadTime;
@ApiModelProperty(value = "卸车时间")
private String unloadTime;
@ApiModelProperty(value = "发货地址")
private String sendAddress;
@ApiModelProperty(value = "收货地址")
private String receiveAddress;
@ApiModelProperty(value = "装车识别毛重参考")
private BigDecimal loadGrossWeight;
@ApiModelProperty(value = "装车识别皮重参考")
private BigDecimal loadTareWeight;
@ApiModelProperty(value = "卸车识别毛重参考")
private BigDecimal unloadGrossWeight;
@ApiModelProperty(value = "卸车识别皮重参考")
private BigDecimal unloadTareWeight;
} }
\ No newline at end of file
...@@ -36,6 +36,9 @@ public class OrderGoodsVO { ...@@ -36,6 +36,9 @@ public class OrderGoodsVO {
@ApiModelProperty("已拉运吨数") @ApiModelProperty("已拉运吨数")
private BigDecimal alreadyTransportWeight; private BigDecimal alreadyTransportWeight;
@ApiModelProperty("已装车吨数")
private BigDecimal alreadyLoadWeight;
@ApiModelProperty("发货地址ID") @ApiModelProperty("发货地址ID")
private Integer sendAddressId; private Integer sendAddressId;
......
...@@ -67,6 +67,8 @@ public class PageOrderChildPoundAuditVO { ...@@ -67,6 +67,8 @@ public class PageOrderChildPoundAuditVO {
@ApiModelProperty(value="卸车时间",example = "2020-01-01 10:10:10") @ApiModelProperty(value="卸车时间",example = "2020-01-01 10:10:10")
private String unloadTime; private String unloadTime;
@ApiModelProperty("车牌号")
private String truckNo;
......
...@@ -319,7 +319,16 @@ ...@@ -319,7 +319,16 @@
<version>2.0.0-beta7</version> <version>2.0.0-beta7</version>
</dependency> </dependency>
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-common</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-ocr</artifactId>
<version>LATEST</version>
</dependency>
</dependencies> </dependencies>
......
...@@ -34,7 +34,7 @@ public class MybatisPlusConfig { ...@@ -34,7 +34,7 @@ public class MybatisPlusConfig {
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
paginationInnerInterceptor.setOverflow(false); paginationInnerInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制 // 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInnerInterceptor.setMaxLimit(1000L); paginationInnerInterceptor.setMaxLimit(-1L);
interceptor.addInnerInterceptor(paginationInnerInterceptor); interceptor.addInnerInterceptor(paginationInnerInterceptor);
return interceptor; return interceptor;
......
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;
}
...@@ -189,4 +189,10 @@ public class AppDriverOrderChildController { ...@@ -189,4 +189,10 @@ public class AppDriverOrderChildController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "磅单OCR识别", notes = "<br>By:杨启发")
@PostMapping("/ocrRecognition")
public Result<OcrRecognitionResultVO> ocrRecognition(@RequestBody @Validated OcrRecognitionParam param) {
return Result.ok(orderChildService.ocrRecognition(param));
}
} }
...@@ -14,10 +14,15 @@ import io.swagger.annotations.Api; ...@@ -14,10 +14,15 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
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;
...@@ -43,6 +48,16 @@ public class CarrierOrderChildController { ...@@ -43,6 +48,16 @@ public class CarrierOrderChildController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "导出",notes = "<br>By:李瑞新")
@PostMapping("/exportCarrierOrderChildList")
public Result exportCarrierOrderChildList(@RequestBody PageCarrierOrderChildParam param, HttpServletResponse response) throws Exception {
SXSSFWorkbook workbook = orderChildService.exportCarrierOrderChildList(param);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream());
return null;
}
@ApiOperation(value = "运单详情详情",notes = "<br>By:李瑞新") @ApiOperation(value = "运单详情详情",notes = "<br>By:李瑞新")
@GetMapping("/getCarrierOrderChildDetail") @GetMapping("/getCarrierOrderChildDetail")
...@@ -78,8 +93,8 @@ public class CarrierOrderChildController { ...@@ -78,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));
} }
......
...@@ -116,10 +116,10 @@ public class GoodsOrderController { ...@@ -116,10 +116,10 @@ public class GoodsOrderController {
} }
@ApiOperation(value = "查看货单详情-相关运单", notes = "<br>By:胡宇帆") @ApiOperation(value = "查看货单详情-相关运单", notes = "<br>By:胡宇帆")
@GetMapping("/getOrderChildInfoByOrderGoodsNo") @PostMapping("/getOrderChildInfoByOrderGoodsNo")
@UnitCovert(param = false) @UnitCovert(param = false)
public Result<List<OrderChildPCVO>> getOrderChildInfoByOrderGoodsNo(@RequestParam String orderGoodsNo) { public Result<List<OrderChildPCVO>> getOrderChildInfoByOrderGoodsNo(@RequestBody @Validated QueryOrderChildsListByParam param) {
return Result.ok(orderChildService.getOrderChildInfoByOrderGoodsNo(orderGoodsNo)); return Result.ok(orderChildService.getOrderChildInfoByOrderGoodsNo(param));
} }
@ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆") @ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆")
......
...@@ -42,7 +42,7 @@ public class CarrierBreakContractSettlementDriverController { ...@@ -42,7 +42,7 @@ public class CarrierBreakContractSettlementDriverController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "导出") @ApiOperation(value = "导出",notes = "<br>By:李瑞新")
@PostMapping("/exportCarrierBreakContractSettlementDriverList") @PostMapping("/exportCarrierBreakContractSettlementDriverList")
public Result exportCarrierBreakContractSettlementDriverList(@RequestBody PageCarrierBreakContractSettlementDriverParam param, HttpServletResponse response) throws Exception { public Result exportCarrierBreakContractSettlementDriverList(@RequestBody PageCarrierBreakContractSettlementDriverParam param, HttpServletResponse response) throws Exception {
......
package com.clx.performance.dao;
import com.clx.performance.mapper.OcrRecognitionMapper;
import com.clx.performance.model.OcrRecognition;
import com.clx.performance.param.app.OcrRecognitionParam;
import com.msl.common.dao.BaseDao;
/**
* @author yangqifa
*/
public interface OcrRecognitionDao extends BaseDao<OcrRecognitionMapper, OcrRecognition, Integer> {
boolean exists(OcrRecognitionParam param);
}
...@@ -58,7 +58,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -58,7 +58,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
IPage<PageCarrierOrderChildVO> pageCarrierOrderChildList(PageCarrierOrderChildParam param); IPage<PageCarrierOrderChildVO> pageCarrierOrderChildList(PageCarrierOrderChildParam param);
Optional<List<OrderChild>> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo); List<OrderChild> getOrderChildInfoByOrderGoodsNo(QueryOrderChildsListByParam param);
OrderChild getGoingLatestOrderChild(Long driverUserNo); OrderChild getGoingLatestOrderChild(Long driverUserNo);
...@@ -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);
......
...@@ -2,14 +2,14 @@ package com.clx.performance.dao; ...@@ -2,14 +2,14 @@ package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO; import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.model.OrderGoodsFleetOpenTruck;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.pc.OrderGoodsEditParams;
import com.clx.performance.param.pc.PageOrderGoodsListParam;
import com.clx.performance.mapper.OrderGoodsMapper; import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OrderGoodsFleetOpenTruck;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.app.OrderGoodsListPageParam; import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.param.pc.GoodsOrderMapParam; import com.clx.performance.param.pc.GoodsOrderMapParam;
import com.clx.performance.param.pc.OrderGoodsEditParams;
import com.clx.performance.param.pc.PageOrderGoodsListParam;
import com.clx.performance.vo.app.OrderGoodsAPPVO; import com.clx.performance.vo.app.OrderGoodsAPPVO;
import com.clx.performance.vo.pc.OrderGoodsVO; import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
...@@ -110,4 +110,5 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -110,4 +110,5 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
void batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight); void batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight);
List<OrderGoods> listAfterCreatedByOrderNo(String orderNo); List<OrderGoods> listAfterCreatedByOrderNo(String orderNo);
} }
...@@ -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);
} }
package com.clx.performance.dao.impl;
import com.clx.performance.dao.OcrRecognitionDao;
import com.clx.performance.mapper.OcrRecognitionMapper;
import com.clx.performance.model.OcrRecognition;
import com.clx.performance.param.app.OcrRecognitionParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author yangqifa
*/
@Repository
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()));
}
}
...@@ -63,7 +63,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -63,7 +63,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.set(OrderChild::getLoadRough, item.getLoadRough()) .set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare()) .set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet()) .set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getFirstLoadTime,item.getFirstLoadTime())
.set(OrderChild::getLoadTime, item.getLoadTime()) .set(OrderChild::getLoadTime, item.getLoadTime())
.set(OrderChild::getWeight, item.getWeight()) .set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getFreight, item.getFreight()) .set(OrderChild::getFreight, item.getFreight())
...@@ -81,7 +81,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -81,7 +81,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.set(OrderChild::getUnloadRough, item.getUnloadRough()) .set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare()) .set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet()) .set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getFirstUnloadTime,item.getFirstUnloadTime())
.set(OrderChild::getUnloadTime, item.getUnloadTime()) .set(OrderChild::getUnloadTime, item.getUnloadTime())
.set(OrderChild::getPoundStatus, item.getPoundStatus()) .set(OrderChild::getPoundStatus, item.getPoundStatus())
.set(OrderChild::getWeight, item.getWeight()) .set(OrderChild::getWeight, item.getWeight())
...@@ -96,16 +96,15 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -96,16 +96,15 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public boolean updateLoadAndUnload(OrderChild item) { public boolean updateLoadAndUnload(OrderChild item) {
return update(lUdWrapper() return update(lUdWrapper()
.eq(OrderChild::getId, item.getId()) .eq(OrderChild::getId, item.getId())
.set(OrderChild::getUnloadPoundNo, item.getUnloadPoundNo()) .set(OrderChild::getUnloadPoundNo, item.getUnloadPoundNo())
.set(OrderChild::getLoadRough, item.getLoadRough()) .set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare()) .set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet()) .set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getLoadTime,item.getLoadTime())
.set(OrderChild::getUnloadRough, item.getUnloadRough()) .set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare()) .set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet()) .set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getUnloadTime,item.getUnloadTime())
.set(OrderChild::getWeight, item.getWeight()) .set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getFreight, item.getFreight()) .set(OrderChild::getFreight, item.getFreight())
.set(OrderChild::getPoundStatus, item.getPoundStatus()) .set(OrderChild::getPoundStatus, item.getPoundStatus())
...@@ -224,8 +223,10 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -224,8 +223,10 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
} }
@Override @Override
public Optional<List<OrderChild>> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo) { public List<OrderChild> getOrderChildInfoByOrderGoodsNo(QueryOrderChildsListByParam param) {
return Optional.of(list(lQrWrapper().eq(OrderChild::getOrderGoodsNo, orderGoodsNo))); return list(lQrWrapper()
.eq(OrderChild::getOrderGoodsNo, param.getOrderGoodsNo())
.in(CollectionUtil.isNotEmpty(param.getStatusList()),OrderChild::getStatus,param.getStatusList()));
} }
@Override @Override
...@@ -370,9 +371,9 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -370,9 +371,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);
} }
......
...@@ -314,4 +314,5 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -314,4 +314,5 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
); );
} }
} }
...@@ -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)
);
}
} }
...@@ -14,12 +14,15 @@ import com.clx.order.vo.feign.FeignOrderVO; ...@@ -14,12 +14,15 @@ import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.common.MqWrapper; import com.clx.performance.common.MqWrapper;
import com.clx.performance.config.ThirdAppConfig; import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dto.dts.DataTransportDTO; import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum; import com.clx.performance.enums.DtsOperationTypeEnum;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.event.OrderChildCancelEvent; import com.clx.performance.event.OrderChildCancelEvent;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.LastTruckService; import com.clx.performance.service.LastTruckService;
import com.clx.performance.struct.OrderChildStruct; import com.clx.performance.struct.OrderChildStruct;
import com.clx.user.vo.feign.FeignDriverTruckModelVo; import com.clx.user.vo.feign.FeignDriverTruckModelVo;
...@@ -36,6 +39,7 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; ...@@ -36,6 +39,7 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
...@@ -53,6 +57,9 @@ public class OrderChildDtsListener { ...@@ -53,6 +57,9 @@ public class OrderChildDtsListener {
private final OrderChildStruct orderChildStruct; private final OrderChildStruct orderChildStruct;
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
private final OrderGoodsDao orderGoodsDao;
@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE) @RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE)
public void onMessage(Message message) { public void onMessage(Message message) {
...@@ -89,6 +96,7 @@ public class OrderChildDtsListener { ...@@ -89,6 +96,7 @@ public class OrderChildDtsListener {
log.info("DTS运单取消释放借款冻结金额"); log.info("DTS运单取消释放借款冻结金额");
applicationEventPublisher.publishEvent(new OrderChildCancelEvent(this, after.getChildNo())); applicationEventPublisher.publishEvent(new OrderChildCancelEvent(this, after.getChildNo()));
} }
afterLogicalProcessing(before,after);
}else if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){ }else if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){
//数据删除 //数据删除
...@@ -232,6 +240,53 @@ public class OrderChildDtsListener { ...@@ -232,6 +240,53 @@ public class OrderChildDtsListener {
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_ROUTING_KEY, body); SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_CHILD_ROUTING_KEY, body);
log.info("结束发送同步履约进度表消息,订单号:{},运单号:{}", after.getOrderNo(),after.getChildNo()); log.info("结束发送同步履约进度表消息,订单号:{},运单号:{}", after.getOrderNo(),after.getChildNo());
} }
}
/**
* 后续逻辑处理
* @param before
* @param after
*/
private void afterLogicalProcessing(OrderChild before,OrderChild after){
BigDecimal beforeLoadNet = before.getLoadNet();//变化前装车净重
BigDecimal afterLoadNet = after.getLoadNet();//变化后装车净重
Integer beforeStatus = before.getStatus();//之前状态
Integer afterStatus = after.getStatus();//之后状态
String orderGoodsNo = after.getOrderGoodsNo();//货单号
log.info("之前装车净重:{},之后装车净重:{},之前运单状态:{},之后运单状态:{},货单号:{}",
beforeLoadNet,afterLoadNet,beforeStatus,afterStatus,orderGoodsNo);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo)
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);//货单详情查询
BigDecimal loadNet;//定义实际装车吨数
if(Objects.nonNull(afterLoadNet)){
if(Objects.equals(after.getStatus(),OrderChildEnum.Status.LOAD.getCode())
&& !Objects.equals(afterStatus,beforeStatus)){//第一次装车
loadNet = afterLoadNet;
}else if(OrderChildEnum.DTS_LISTEN_CANCEL_lIST.contains(after.getStatus())){//装车后取消
//运单取消,货单装车吨数需要减掉
loadNet = afterLoadNet.negate();
}else if(!Objects.equals(beforeLoadNet,afterLoadNet)){//修改装车吨数
loadNet = afterLoadNet.subtract(beforeLoadNet);
}else{
return;
}
//货单已经装车吨数
BigDecimal alreadyLoadWeight = orderGoods.getAlreadyLoadWeight() == null? BigDecimal.ZERO:orderGoods.getAlreadyLoadWeight();
alreadyLoadWeight = alreadyLoadWeight.add(loadNet);
//更新货单已经装车吨数
OrderGoods og = new OrderGoods();
og.setId(orderGoods.getId());
og.setAlreadyLoadWeight(alreadyLoadWeight);
orderGoodsDao.updateEntityByKey(og);
}
} }
} }
...@@ -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;
} }
......
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OcrRecognition;
/**
* @author yangqifa
*/
public interface OcrRecognitionMapper extends BaseMapper<OcrRecognition> {
}
...@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO; import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OrderGoodsFleetOpenTruck; import com.clx.performance.model.OrderGoodsFleetOpenTruck;
import com.clx.performance.param.app.AppGoodsOrderSearchParam; import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.pc.OrderGoodsEditParams; import com.clx.performance.param.pc.OrderGoodsEditParams;
import com.clx.performance.param.pc.PageOrderGoodsListParam; import com.clx.performance.param.pc.PageOrderGoodsListParam;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.sqlProvider.OrderGoodsSqlProvider; import com.clx.performance.sqlProvider.OrderGoodsSqlProvider;
import com.clx.performance.vo.app.OrderGoodsAPPVO; import com.clx.performance.vo.app.OrderGoodsAPPVO;
import com.clx.performance.vo.pc.OrderGoodsVO; import com.clx.performance.vo.pc.OrderGoodsVO;
...@@ -106,4 +106,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -106,4 +106,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "batchCancelOrderGoods") @UpdateProvider(type = OrderGoodsSqlProvider.class, method = "batchCancelOrderGoods")
void batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight); void batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight);
} }
package com.clx.performance.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* @author yangqifa
*/
@Data
public class OcrRecognition implements HasKey<Integer> {
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "主键ID")
private Integer id;
/**
* 运单编号
*/
@ApiModelProperty(value = "运单编号")
private String childNo;
/**
* 图片类型,1:装车磅单,2:卸车磅单
*/
@ApiModelProperty(value = "图片类型,1:装车磅单,2:卸车磅单")
private Integer imageType;
/**
* 磅单图片url
*/
@ApiModelProperty(value = "磅单图片url")
private String imageUrl;
/**
* 毛重
*/
@ApiModelProperty(value = "毛重")
private BigDecimal grossWeight;
/**
* 皮重
*/
@ApiModelProperty(value = "皮重")
private BigDecimal tareWeight;
/**
* OCR识别的原始结果
*/
@ApiModelProperty(value = "OCR识别的原始结果")
private String originalResult;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createdTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date modifiedTime;
@KeyColumn("id")
@Override
public Integer gainKey() {
return id;
}
}
\ No newline at end of file
...@@ -80,8 +80,10 @@ public class OrderChild implements HasKey<Integer> { ...@@ -80,8 +80,10 @@ public class OrderChild implements HasKey<Integer> {
private LocalDateTime payTime; //支付时间(抢单时间) private LocalDateTime payTime; //支付时间(抢单时间)
private LocalDateTime arriveSendTime; //到达货源地时间 private LocalDateTime arriveSendTime; //到达货源地时间
private LocalDateTime firstLoadTime; //装货时间
private LocalDateTime loadTime; //装车时间 private LocalDateTime loadTime; //装车时间
private LocalDateTime arriveReceiveTime; //到达目的地时间 private LocalDateTime arriveReceiveTime; //到达目的地时间
private LocalDateTime firstUnloadTime; //交货时间
private LocalDateTime unloadTime; //卸车时间 private LocalDateTime unloadTime; //卸车时间
private LocalDateTime confirmTime; //司机确认交货时间 private LocalDateTime confirmTime; //司机确认交货时间
private LocalDateTime settleTime; //结算时间 private LocalDateTime settleTime; //结算时间
......
...@@ -64,6 +64,10 @@ public class OrderGoods implements HasKey<Integer> { ...@@ -64,6 +64,10 @@ public class OrderGoods implements HasKey<Integer> {
@ApiModelProperty("已拉运吨数") @ApiModelProperty("已拉运吨数")
private BigDecimal alreadyTransportWeight; private BigDecimal alreadyTransportWeight;
@TableField("already_load_weight")
@ApiModelProperty("已装车吨数")
private BigDecimal alreadyLoadWeight;
@TableField("send_address_id") @TableField("send_address_id")
@ApiModelProperty("发货地址ID") @ApiModelProperty("发货地址ID")
private Integer sendAddressId; private Integer sendAddressId;
......
...@@ -6,14 +6,13 @@ import com.clx.performance.model.OrderGoods; ...@@ -6,14 +6,13 @@ import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.app.*; import com.clx.performance.param.app.*;
import com.clx.performance.param.app.owner.PageOwnerOrderChildListParam; import com.clx.performance.param.app.owner.PageOwnerOrderChildListParam;
import com.clx.performance.param.feign.CancelOrderGoodsParam; import com.clx.performance.param.feign.CancelOrderGoodsParam;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam; import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.PageCarrierOrderChildParam; import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverParam;
import com.clx.performance.param.pc.PageMonitorOrderChildQCParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.*; import com.clx.performance.vo.app.*;
import com.clx.performance.vo.app.owner.OwnerOrderChildVO; import com.clx.performance.vo.app.owner.OwnerOrderChildVO;
import com.clx.performance.vo.pc.*; import com.clx.performance.vo.pc.*;
import com.msl.common.base.PageParam; import com.msl.common.base.PageParam;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -61,7 +60,9 @@ public interface OrderChildService { ...@@ -61,7 +60,9 @@ public interface OrderChildService {
IPage<PageCarrierOrderChildVO> pageCarrierOrderChildList(PageCarrierOrderChildParam param); IPage<PageCarrierOrderChildVO> pageCarrierOrderChildList(PageCarrierOrderChildParam param);
List<OrderChildPCVO> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo); SXSSFWorkbook exportCarrierOrderChildList(PageCarrierOrderChildParam param);
List<OrderChildPCVO> getOrderChildInfoByOrderGoodsNo(QueryOrderChildsListByParam param);
CarrierOrderChildDetailVO getCarrierOrderChildDetail(String childNo); CarrierOrderChildDetailVO getCarrierOrderChildDetail(String childNo);
...@@ -69,7 +70,7 @@ public interface OrderChildService { ...@@ -69,7 +70,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);
...@@ -100,5 +101,7 @@ public interface OrderChildService { ...@@ -100,5 +101,7 @@ public interface OrderChildService {
void cancelOrderChilds(CancelOrderGoodsParam param); void cancelOrderChilds(CancelOrderGoodsParam param);
OcrRecognitionResultVO ocrRecognition(OcrRecognitionParam param);
List<HistoryLineTranVolumeChartVO> getHistoryLineTransportVolume(String orderNo); List<HistoryLineTranVolumeChartVO> getHistoryLineTransportVolume(String orderNo);
} }
...@@ -22,9 +22,12 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -22,9 +22,12 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToDefaultString;
/** /**
* @author liruixin * @author liruixin
* Date 2023-09-19 * Date 2023-09-19
...@@ -51,12 +54,16 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -51,12 +54,16 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
private final OrderChildLogService orderChildLogService; private final OrderChildLogService orderChildLogService;
private final OrderChildService orderChildService; private final OrderChildService orderChildService;
private final PaymentService paymentService; private final PaymentService paymentService;
private final OcrRecognitionDao ocrRecognitionDao;
@Override @Override
public OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo) { public OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo) {
OrderChildPoundAudit poundAuditDetail = orderChildPoundAuditDao.getPoundAuditDetail(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); OrderChildPoundAudit poundAuditDetail = orderChildPoundAuditDao.getPoundAuditDetail(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
List<OrderChildImage> loadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.LOAD.getCode()); List<OrderChildImage> loadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.LOAD.getCode());
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();
List<OcrRecognition> ocrRecognitionList = ocrRecognitionDao.listByField(OcrRecognition::getChildNo, childNo);
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()));
...@@ -71,6 +78,16 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -71,6 +78,16 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
vo.setStatus(poundAuditDetail.getStatus()); vo.setStatus(poundAuditDetail.getStatus());
vo.setRemark(poundAuditDetail.getRemark()); vo.setRemark(poundAuditDetail.getRemark());
vo.setRejectType(poundAuditDetail.getRejectType()); vo.setRejectType(poundAuditDetail.getRejectType());
vo.setTruckNo(orderChild.getTruckNo());
vo.setLoadTime(orderChild.getLoadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getLoadTime()));
vo.setUnloadTime(orderChild.getUnloadTime()==null?null:convertLocalDateTimeToDefaultString(orderChild.getUnloadTime()));
vo.setSendAddress(orderChild.getSendAddress());
vo.setReceiveAddress(orderChild.getReceiveAddress());
vo.setLoadGrossWeight(imageTypeOcrRecognitionMap.getOrDefault(OrderChildImage.Type.LOAD.getCode(),new OcrRecognition()).getGrossWeight());
vo.setLoadTareWeight(imageTypeOcrRecognitionMap.getOrDefault(OrderChildImage.Type.LOAD.getCode(),new OcrRecognition()).getTareWeight());
vo.setUnloadGrossWeight(imageTypeOcrRecognitionMap.getOrDefault(OrderChildImage.Type.UNLOAD.getCode(),new OcrRecognition()).getGrossWeight());
vo.setUnloadTareWeight(imageTypeOcrRecognitionMap.getOrDefault(OrderChildImage.Type.UNLOAD.getCode(),new OcrRecognition()).getTareWeight());
return vo; return vo;
} }
...@@ -235,6 +252,9 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -235,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();
} }
......
...@@ -14,6 +14,7 @@ import com.clx.order.vo.pc.carrier.InvoicingCompanyVO; ...@@ -14,6 +14,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.*;
...@@ -38,10 +39,7 @@ import com.clx.performance.model.settle.SettlementOwnerDetail; ...@@ -38,10 +39,7 @@ import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.app.*; import com.clx.performance.param.app.*;
import com.clx.performance.param.app.owner.PageOwnerOrderChildListParam; import com.clx.performance.param.app.owner.PageOwnerOrderChildListParam;
import com.clx.performance.param.feign.CancelOrderGoodsParam; import com.clx.performance.param.feign.CancelOrderGoodsParam;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam; import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PageMonitorOrderChildQCParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.param.pc.payment.PayPlatformFeeParam; import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
import com.clx.performance.service.*; import com.clx.performance.service.*;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService; import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
...@@ -51,13 +49,20 @@ import com.clx.performance.service.settle.SettlementMqService; ...@@ -51,13 +49,20 @@ import com.clx.performance.service.settle.SettlementMqService;
import com.clx.performance.service.settle.SettlementOwnerDetailService; import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.service.trace.TruckTraceService; import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.struct.*; import com.clx.performance.struct.*;
import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.utils.gd.GdService; import com.clx.performance.utils.gd.GdService;
import com.clx.performance.utils.spring.ApplicationContextUtils; import com.clx.performance.utils.spring.ApplicationContextUtils;
import com.clx.performance.utils.zjxl.ZjxlGpsService; import com.clx.performance.utils.zjxl.ZjxlGpsService;
import com.clx.performance.vo.app.*; import com.clx.performance.vo.app.*;
import com.clx.performance.vo.app.owner.OwnerOrderChildVO; 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.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
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;
...@@ -70,19 +75,30 @@ import com.msl.common.utils.LocalDateTimeUtils; ...@@ -70,19 +75,30 @@ import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.common.utils.gps.GpsUtil; import com.msl.common.utils.gps.GpsUtil;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.ocr.v20181119.OcrClient;
import com.tencentcloudapi.ocr.v20181119.models.GroupInfo;
import com.tencentcloudapi.ocr.v20181119.models.ItemInfo;
import com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Request;
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.commons.lang3.math.NumberUtils;
import org.redisson.api.RLock; 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.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;
...@@ -92,6 +108,10 @@ import java.util.concurrent.TimeUnit; ...@@ -92,6 +108,10 @@ 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;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
* @Description: 运单表 * @Description: 运单表
...@@ -101,6 +121,9 @@ import java.util.stream.Collectors; ...@@ -101,6 +121,9 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
public class OrderChildServiceImpl implements OrderChildService { public class OrderChildServiceImpl implements OrderChildService {
private String domain = "http://clx-dev.oss-cn-beijing.aliyuncs.com";
@Autowired @Autowired
private AmqpTemplate rabbitTemplate; private AmqpTemplate rabbitTemplate;
@Autowired @Autowired
...@@ -187,7 +210,6 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -187,7 +210,6 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
SettlementOwnerDetailDao settlementOwnerDetailDao; SettlementOwnerDetailDao settlementOwnerDetailDao;
@Autowired @Autowired
private OwnerRunningWaterRecordDao ownerRunningWaterRecordDao; private OwnerRunningWaterRecordDao ownerRunningWaterRecordDao;
...@@ -208,6 +230,25 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -208,6 +230,25 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired @Autowired
OrderGoodsAdjustmentPriceService orderGoodsAdjustmentPriceService; OrderGoodsAdjustmentPriceService orderGoodsAdjustmentPriceService;
@Autowired
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);
}
}
@Override @Override
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) { public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
...@@ -802,6 +843,20 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -802,6 +843,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);
...@@ -923,11 +978,11 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -923,11 +978,11 @@ 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(LocalDateTime.now()); 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());
orderChild.setFirstLoadTime(LocalDateTime.now());
orderChildDao.updateLoad(orderChild); orderChildDao.updateLoad(orderChild);
orderChildImageDao.batchSaveEntity(imageList); orderChildImageDao.batchSaveEntity(imageList);
...@@ -961,10 +1016,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -961,10 +1016,9 @@ 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(LocalDateTime.now()); 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));
//更新货单吨数 //更新货单吨数
updateOrderGoodsAmountLoad(orderGoods,childNo, dif,OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode()); updateOrderGoodsAmountLoad(orderGoods,childNo, dif,OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode());
...@@ -1000,6 +1054,19 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1000,6 +1054,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())) {
...@@ -1092,15 +1159,15 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1092,15 +1159,15 @@ public class OrderChildServiceImpl implements OrderChildService {
imageList.add(image); imageList.add(image);
} }
orderChild.setUnloadPoundNo(param.getUnloadPoundNo());
orderChild.setUnloadRough(param.getUnloadRough()); orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare()); orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(loadNet); orderChild.setUnloadNet(loadNet);
orderChild.setUnloadTime(LocalDateTime.now()); 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());
orderChild.setFreight(orderChildFreightCalc(orderChild)); orderChild.setFreight(orderChildFreightCalc(orderChild));
orderChild.setFirstUnloadTime(LocalDateTime.now());
OrderChildPoundAudit audit = new OrderChildPoundAudit(); OrderChildPoundAudit audit = new OrderChildPoundAudit();
audit.setChildNo(childNo); audit.setChildNo(childNo);
...@@ -1154,11 +1221,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1154,11 +1221,10 @@ public class OrderChildServiceImpl implements OrderChildService {
imageList.add(image); imageList.add(image);
} }
orderChild.setUnloadPoundNo(param.getUnloadPoundNo());
orderChild.setUnloadRough(param.getUnloadRough()); orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare()); orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(loadNet); orderChild.setUnloadNet(loadNet);
orderChild.setUnloadTime(LocalDateTime.now()); 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));
...@@ -1231,6 +1297,25 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1231,6 +1297,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);
...@@ -1260,8 +1345,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1260,8 +1345,9 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setUnloadNet(unLoadNet); orderChild.setUnloadNet(unLoadNet);
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(StringUtils.isBlank(param.getLoadTime())?orderChild.getLoadTime():covertStringToDefaultLocalDateTime(param.getLoadTime()));
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);
...@@ -1583,9 +1669,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1583,9 +1669,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())) {
...@@ -1668,9 +1754,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1668,9 +1754,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())) {
...@@ -1853,6 +1939,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1853,6 +1939,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;
} }
...@@ -2145,9 +2238,84 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2145,9 +2238,84 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
@Override @Override
public List<OrderChildPCVO> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo) { public SXSSFWorkbook exportCarrierOrderChildList(PageCarrierOrderChildParam param) {
List<OrderChild> orderChildren = orderChildDao.getOrderChildInfoByOrderGoodsNo(orderGoodsNo).orElseThrow( param.setPage(1);
PerformanceResultEnum.ORDER_CHILD_NO_FOUND); param.setPageSize(1000000);
IPage<PageCarrierOrderChildVO> orderChildList = pageCarrierOrderChildList(param);
List<PageCarrierOrderChildVO> list = orderChildList.getRecords();
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(2, "车牌号", "truckNo", 5000));
fieldList.add(new ExcelField(3, "运单状态", "status", 5000));
fieldList.add(new ExcelField(4, "货单编号", "goodsOrderNo", 5000));
fieldList.add(new ExcelField(5, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(6, "司机姓名", "driverName", 5000));
fieldList.add(new ExcelField(7, "手机号", "phone", 5000));
fieldList.add(new ExcelField(8, "运费单价", "frightPrice", 5000));
fieldList.add(new ExcelField(9, "装车毛重", "loadRough", 5000));
fieldList.add(new ExcelField(10, "装车皮重", "loadTare", 5000));
fieldList.add(new ExcelField(11, "装车净重", "loadNet", 5000));
fieldList.add(new ExcelField(12, "卸车毛重", "loadRough", 5000));
fieldList.add(new ExcelField(13, "卸车皮重", "loadTare", 5000));
fieldList.add(new ExcelField(14, "卸车净重", "unloadNet", 5000));
fieldList.add(new ExcelField(15, "接单时间", "payTime", 5000));
fieldList.add(new ExcelField(16, "完成时间", "finishTime", 5000));
fieldList.add(new ExcelField(17, "发货地址", "sendAddress", 10000));
fieldList.add(new ExcelField(18, "收货地址", "receiveAddress", 10000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (int i=0; i<list.size(); i++){
PageCarrierOrderChildVO dto = list.get(i);
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getTruckNo()));
if(Objects.isNull(dto.getStatus())){
rowData.add(new ExcelData(""));
}else{
rowData.add(new ExcelData(OrderChildEnum.Status.getMsgByCode(dto.getStatus())));
}
rowData.add(new ExcelData(dto.getOrderGoodsNo()));
rowData.add(new ExcelData(dto.getGoodsName()));
rowData.add(new ExcelData(dto.getDriverName()));
rowData.add(new ExcelData(dto.getDriverMobile()));
rowData.add(new ExcelData(dto.getFreightPrice().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLoadRough()));
rowData.add(new ExcelData(dto.getLoadTare()));
rowData.add(new ExcelData(dto.getLoadNet()));
rowData.add(new ExcelData(dto.getUnloadRough()));
rowData.add(new ExcelData(dto.getUnloadTare()));
rowData.add(new ExcelData(dto.getUnloadNet()));
rowData.add(new ExcelData(dto.getPayTime()));
rowData.add(new ExcelData(dto.getFinishTime()));
rowData.add(new ExcelData(dto.getSendAddress()));
rowData.add(new ExcelData(dto.getReceiveAddress()));
dataList.add(rowData);
}
ExcelSheet excelSheet = new ExcelSheet("运单列表", "运单列表", fieldList, dataList);
//创建excel
return ExcelUtil.create(excelSheet);
}
@Override
public List<OrderChildPCVO> getOrderChildInfoByOrderGoodsNo(QueryOrderChildsListByParam param) {
List<OrderChild> orderChildren = orderChildDao.getOrderChildInfoByOrderGoodsNo(param);
return orderChildStruct.convertList(orderChildren); return orderChildStruct.convertList(orderChildren);
} }
...@@ -2221,9 +2389,9 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2221,9 +2389,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;
...@@ -2235,8 +2403,8 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2235,8 +2403,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(
...@@ -2770,6 +2938,53 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2770,6 +2938,53 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
} }
@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);
}
}
@Override @Override
public List<HistoryLineTranVolumeChartVO> getHistoryLineTransportVolume(String orderNo) { public List<HistoryLineTranVolumeChartVO> getHistoryLineTransportVolume(String orderNo) {
//查询近一个月与该订单收发货地线路一致的订单 //查询近一个月与该订单收发货地线路一致的订单
......
...@@ -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);
......
...@@ -420,18 +420,21 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService { ...@@ -420,18 +420,21 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
fieldList.add(new ExcelField(1, "结算单号", "settlementNo", 5000)); fieldList.add(new ExcelField(1, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(2, "开票标识", "invoiceType", 5000)); fieldList.add(new ExcelField(2, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(3, "货主编码", "ownerUserNo", 5000)); fieldList.add(new ExcelField(3, "货主编码", "ownerUserNo", 5000));
fieldList.add(new ExcelField(4, "结算方式", "settlementWay", 5000)); fieldList.add(new ExcelField(4, "货主名称", "ownerUserName", 5000));
fieldList.add(new ExcelField(5, "订单编号", "orderNo", 15000)); fieldList.add(new ExcelField(5, "结算方式", "settlementWay", 5000));
fieldList.add(new ExcelField(6, "实际净重", "weight", 5000)); fieldList.add(new ExcelField(6, "订单编号", "orderNo", 15000));
fieldList.add(new ExcelField(7, "实际运费金额", "freight", 5000)); fieldList.add(new ExcelField(7, "实际净重", "weight", 5000));
fieldList.add(new ExcelField(8, "预付运费金额", "prepayFreight", 5000)); fieldList.add(new ExcelField(8, "实际运费金额", "freight", 5000));
fieldList.add(new ExcelField(9, "货损吨数", "lossWeight", 5000)); fieldList.add(new ExcelField(9, "预付运费金额", "prepayFreight", 5000));
fieldList.add(new ExcelField(10, "货损金额", "lossFreight", 5000)); fieldList.add(new ExcelField(10, "货损吨数", "lossWeight", 5000));
fieldList.add(new ExcelField(11, "开票服务费", "invoiceServiceFee", 5000)); fieldList.add(new ExcelField(11, "货损金额", "lossFreight", 5000));
fieldList.add(new ExcelField(12, "结算金额", "settlementFreight", 5000)); fieldList.add(new ExcelField(12, "开票服务费", "invoiceServiceFee", 5000));
fieldList.add(new ExcelField(13, "开票金额", "invoiceFreight", 5000)); fieldList.add(new ExcelField(13, "借款抵扣金额", "loanFreight", 5000));
fieldList.add(new ExcelField(14, "创建时间", "createTime", 5000)); fieldList.add(new ExcelField(14, "结算金额", "settlementFreight", 5000));
fieldList.add(new ExcelField(15, "状态", "status", 5000)); fieldList.add(new ExcelField(15, "开票金额", "invoiceFreight", 5000));
fieldList.add(new ExcelField(16, "开票公司", "invoiceCompany", 5000));
fieldList.add(new ExcelField(17, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(18, "状态", "status", 5000));
// 组装数据 // 组装数据
List<List<ExcelData>> dataList = new ArrayList<>(); List<List<ExcelData>> dataList = new ArrayList<>();
...@@ -444,6 +447,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService { ...@@ -444,6 +447,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
rowData.add(new ExcelData(dto.getSettlementNo())); rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(SettlementOwnerEnum.InvoiceType.getMsgByCode(dto.getInvoiceType()))); rowData.add(new ExcelData(SettlementOwnerEnum.InvoiceType.getMsgByCode(dto.getInvoiceType())));
rowData.add(new ExcelData(String.valueOf(dto.getOwnerUserNo()))); rowData.add(new ExcelData(String.valueOf(dto.getOwnerUserNo())));
rowData.add(new ExcelData(dto.getOwnerName()));
rowData.add(new ExcelData(SettlementWayEnum.WayType.getMsgByCode(dto.getSettlementWay()))); rowData.add(new ExcelData(SettlementWayEnum.WayType.getMsgByCode(dto.getSettlementWay())));
rowData.add(new ExcelData(dto.getOrderNo())); rowData.add(new ExcelData(dto.getOrderNo()));
rowData.add(new ExcelData(dto.getWeight())); rowData.add(new ExcelData(dto.getWeight()));
...@@ -452,8 +456,10 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService { ...@@ -452,8 +456,10 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
rowData.add(new ExcelData(dto.getLossWeight())); rowData.add(new ExcelData(dto.getLossWeight()));
rowData.add(new ExcelData(dto.getLossFreight().movePointLeft(2))); rowData.add(new ExcelData(dto.getLossFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoiceServiceFee().movePointLeft(2))); rowData.add(new ExcelData(dto.getInvoiceServiceFee().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLoanFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getSettlementFreight().movePointLeft(2))); rowData.add(new ExcelData(dto.getSettlementFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoiceFreight().movePointLeft(2))); rowData.add(new ExcelData(dto.getInvoiceFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoicingCompanyShorterName()));
rowData.add(new ExcelData(dto.getCreateTime())); rowData.add(new ExcelData(dto.getCreateTime()));
rowData.add(new ExcelData(SettlementOwnerEnum.Status.getMsgByCode(dto.getStatus()))); rowData.add(new ExcelData(SettlementOwnerEnum.Status.getMsgByCode(dto.getStatus())));
......
package com.clx.performance.sqlProvider; package com.clx.performance.sqlProvider;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.param.app.PageOrderChildOfDriverParam; import com.clx.performance.param.app.PageOrderChildOfDriverParam;
...@@ -85,7 +86,7 @@ public class OrderChildSqlProvider { ...@@ -85,7 +86,7 @@ public class OrderChildSqlProvider {
public String pagePoundAuditList(@Param("page") Page<PageOrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param) { public String pagePoundAuditList(@Param("page") Page<PageOrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param) {
return new SQL(){{ return new SQL(){{
SELECT("child_no,pound_status as status,goods_name,send_address,receive_address,driver_name," + SELECT("child_no,pound_status as status,goods_name,send_address,receive_address,driver_name," +
"driver_mobile,load_net,unload_net,load_rough,load_tare,unload_rough,unload_tare," + "driver_mobile,load_net,unload_net,load_rough,load_tare,unload_rough,unload_tare,truck_no," +
"date_format(pay_time, '%Y-%m-%d %H:%i:%s') as payTime," + "date_format(pay_time, '%Y-%m-%d %H:%i:%s') as payTime," +
"date_format(load_time, '%Y-%m-%d %H:%i:%s') as loadTime," + "date_format(load_time, '%Y-%m-%d %H:%i:%s') as loadTime," +
"date_format(unload_time, '%Y-%m-%d %H:%i:%s') as unloadTime "); "date_format(unload_time, '%Y-%m-%d %H:%i:%s') as unloadTime ");
...@@ -119,14 +120,17 @@ public class OrderChildSqlProvider { ...@@ -119,14 +120,17 @@ public class OrderChildSqlProvider {
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("pay_time >= #{param.beginTime}");} if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("pay_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("pay_time <= #{param.endTime}");} if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("pay_time <= #{param.endTime}");}
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {WHERE("order_goods_no = #{param.orderGoodsNo}");}
if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");} if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (StringUtils.isNotBlank(param.getDriverName())) {WHERE("driver_name= #{param.driverName}");} if (StringUtils.isNotBlank(param.getDriverName())) {WHERE("driver_name= #{param.driverName}");}
if (StringUtils.isNotBlank(param.getDriverMobile())) {WHERE("driver_mobile = #{param.driverMobile}");} if (StringUtils.isNotBlank(param.getDriverMobile())) {WHERE("driver_mobile = #{param.driverMobile}");}
if(StringUtils.isNotBlank(param.getSendAddress())){WHERE("send_address like CONCAT(#{param.sendAddress},'%') ");}
if (StringUtils.isNotBlank(param.getSendAddress())) {WHERE("send_address = #{param.sendAddress}");} if(StringUtils.isNotBlank(param.getReceiveAddress())){WHERE("receive_address like CONCAT(#{param.receiveAddress},'%') ");}
if (StringUtils.isNotBlank(param.getReceiveAddress())) {WHERE("receive_address= #{param.receiveAddress}");}
if (Objects.nonNull(param.getStatus())) {WHERE("status = #{param.status}");} if (Objects.nonNull(param.getStatus())) {WHERE("status = #{param.status}");}
if (StringUtils.isNotBlank(param.getTruckNo())) {WHERE("truck_no like '%"+ param.getTruckNo() +"%'");} if (StringUtils.isNotBlank(param.getTruckNo())) {WHERE("truck_no like '%"+ param.getTruckNo() +"%'");}
if (CollectionUtil.isNotEmpty(param.getStatusList())) {
WHERE("status in (" + StringUtils.join(param.getStatusList(), ",") +")");
}
ORDER_BY("id desc"); ORDER_BY("id desc");
......
...@@ -32,7 +32,8 @@ public class OrderGoodsSqlProvider { ...@@ -32,7 +32,8 @@ public class OrderGoodsSqlProvider {
String sql = new SQL() {{ String sql = new SQL() {{
SELECT("a.id, a.order_no," + SELECT("a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " + " a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" if(a.residue_transport_weight < 0, '0', a.residue_transport_weight) as residue_transport_weight ,a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," + " if(a.residue_transport_weight < 0, '0', a.residue_transport_weight) as residue_transport_weight ," +
" a.already_transport_weight,a.already_load_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," + " a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," + "a.goods_id, a.goods_name, a.pending_order_way," +
" date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," + " date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," +
...@@ -82,6 +83,8 @@ public class OrderGoodsSqlProvider { ...@@ -82,6 +83,8 @@ public class OrderGoodsSqlProvider {
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) { if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
WHERE("a.order_goods_no = #{param.orderGoodsNo}"); WHERE("a.order_goods_no = #{param.orderGoodsNo}");
} }
if(StringUtils.isNotBlank(param.getSendAddress())){WHERE("a.send_address_shorter like CONCAT(#{param.sendAddress},'%') ");}
if(StringUtils.isNotBlank(param.getReceiveAddress())){WHERE("a.receive_address_shorter like CONCAT(#{param.receiveAddress},'%') ");}
ORDER_BY("a.create_time desc"); ORDER_BY("a.create_time desc");
}}.toString(); }}.toString();
return sql; return sql;
......
...@@ -13,7 +13,7 @@ import java.util.Objects; ...@@ -13,7 +13,7 @@ import java.util.Objects;
public interface AddressStruct { public interface AddressStruct {
@Mapping(target = "address", source = "item.addressShorter") @Mapping(target = "address", source = "item.addressShorter")
@Mapping(target = "addressDetail", expression = "java(Objects.isNull(item)? null : addressDetail(item))") @Mapping(target = "addressDetail", source = "item.address")
Address convert(FeignAddressVO.Address item); Address convert(FeignAddressVO.Address item);
default String addressDetail(FeignAddressVO.Address item){ default String addressDetail(FeignAddressVO.Address item){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论