提交 d8037ce3 authored 作者: liuhaiquan's avatar liuhaiquan

Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into…

Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into v4.9_create_goods_child_20230918 # Conflicts: # performance-web/src/main/java/com/clx/performance/PerformanceApplication.java
......@@ -28,7 +28,7 @@ public class PageCarrierOrderListParam extends PageParam {
@ApiModelProperty(value = "开始时间", example = "2023-09-09 12:00:01", required = true)
private String beginTime;
@ApiModelProperty(value = "结束", example = "2023-09-09 12:00:01", required = true)
@ApiModelProperty(value = "结束时间", example = "2023-09-09 12:00:01", required = true)
private String endTime;
@ApiModelProperty(value = "时间类型: 1创建时间 2拉运开始时间 3拉运结束时间 ")
......
package com.clx.order.params;
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.NotNull;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PageOrderGoodsListParam extends PageParam {
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "货单编号")
private String orderGoodsNo;
@ApiModelProperty(value = "货单编号类型")
private String orderGoodsType;
@ApiModelProperty(value = "货单状态: 10:已挂单 20:挂单中 30:运输中 40:已完成 50:已取消")
private Integer orderGoodsStatus;
@ApiModelProperty(value = "开始时间", example = "2023-09-09 12:00:01")
private String beginTime;
@ApiModelProperty(value = "结束时间", example = "2023-09-09 12:00:01")
private String endTime;
@ApiModelProperty(value = "用车类型: 1平台车辆 2部分平台车辆 3自有车辆")
private Integer truckDemand;
}
......@@ -19,18 +19,18 @@ public enum OrderChildEnum {
GO_TO_SEND(30, "前往货源地"),
ARRIVE_SEND(40, "到达货源地"),
LOAD(60 , "装货成功"),
GO_TO_RECEIVE(50, "前往目的地"),
ARRIVE_RECEIVE(60 , "到达目的地"),
DRIVER_CONFIRM(70, "收货待确认"),
LOAD(50 , "装货成功"),
GO_TO_RECEIVE(60, "前往目的地"),
ARRIVE_RECEIVE(70 , "到达目的地"),
UNLOAD(80, "收货待确认"),
POUND_AUDIT_FAIL(80, "磅单审核驳回"),
UNSETTLED(80, "待结算"),
POUND_AUDIT_FAIL(90, "磅单审核驳回"),
UNSETTLED(100, "待结算"),
COMPLETE(100, "完成"),
COMPLETE(110, "完成"),
DRIVER_CANCEL(200, "司机取消"),
PLATFORM_CANCEL(200, "平台取消"),
DRIVER_CANCEL(210, "司机取消"),
PLATFORM_CANCEL(220, "平台取消"),
//
// OWNER_CONFIRM(50, "货主确认车辆"),//货主确认车辆
......
......@@ -42,4 +42,21 @@ public enum OrderChildLogEnum {
}
}
@Getter
@AllArgsConstructor
public enum CreateType {
OWNER(1, "货主"),
PLATFORM(2, "承运"),
DRIVER(3, "司机"),
;
private final int code;
private final String msg;
public static Optional<CreateType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OrderChildPoundAuditEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
AUDIT(0, "待审核"),
APPROVED(1, "审核通过"),
REJECT(2, "审核驳回"),
;
private final Integer code;
private final String msg;
public static Optional<Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OrderGoodsStatusEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
CREATED(10, "已挂单"),
PAYING(20, "挂单中"),
GO_TO_SEND(30, "运输中"),
ARRIVE_SEND(40, "已完成"),
CANCEL(50, "已取消"),
;
private final Integer code;
private final String name;
public static Optional<Status> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OrderGoodsTypeEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
PLATFORM("PT", "平台"),
;
private final String code;
private final String name;
public static Optional<Status> getByCode(String code) {
return Arrays.stream(values()).filter(e -> e.code .equals(code)).findFirst();
}
}
}
package com.clx.performance.enums;
import com.msl.common.enums.ResultEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum PerformanceResultEnum implements ResultEnum {
/**
* 系统
*/
SIGN_NULL(1001, "签名不存在"),
SIGN_ERROR(1002, "签名错误"),
TIMESTAMP_ERROR(1003, "请求不在时间范围内"),
INCREMENT_ERROR(1004, "编码生成失败"),
HTTP_ERROR(1005, "HTTP请求失败"),
LOCK_ERROR(1006,"加锁失败"),
TRY_LOCK_ERROR(1007,"操作频繁,请稍后重试"),
FEIGN_ERROR(1008, "服务调用失败"),
/**
* 通用
*/
USER_NULL(1101, "用户不存在"),
MOBILE_NULL(1102, "手机号码未注册"),
USER_NOT_REGISTER(1103, "用户尚未注册"),
USER_NOT_AUTH(1104, "用户暂未实名"),
DATA_NOT_FIND(1105, "数据不存在"),
DATA_REPEAT(1106, "数据重复"),
ORDER_NO_FOUND(1200, "货单不存在"),
ORDER_WEIGHT_LACK(1200, "剩余数量不足"),
ORDER_CHILD_NO_FOUND(1301, "运单不存在"),
ORDER_CHILD_STATUS_CHANGED(1302, "运单状态已变更,请重新刷新页面"),
ORDER_CHILD_CANCELED(1303, "运单状态已取消"),
ORDER_CHILD_COMPLETE(1304, "运单状态已完成"),
ORDER_CHILD_LOAD_TIMEOUT(1305, "超过装货截止时间"),
ORDER_CHILD_CANCEL_FORBID(1306, "运单无法取消"),
ORDER_CHILD_CANCEL_FORBID_COUNT(1307, "超出最大取消数量"),
;
private final int code;
private final String msg;
}
package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @Author liruixin
* @create 2023-09-19 13:33
*/
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PoundAuditParam {
@NotBlank(message = "运单编号不能为空")
@ApiModelProperty(value="运单编号",example = "201457878")
private String childNo;
@ApiModelProperty(value="审核驳回类型:1装车 2卸车 3装车+卸车",example = "1")
private Integer rejectType;
@ApiModelProperty(value="驳回原因",example = "驳回原因")
private String remark;
@NotNull(message = "审核状态不能为空")
@ApiModelProperty(value="审核状态 0-待审核,1-审核失败, 2-审核成功",example = "1")
private Integer status;
@ApiModelProperty(value="装货净重",example = "11")
private BigDecimal loadNet;
@ApiModelProperty(value="卸货净重",example = "22")
private BigDecimal unloadNet;
}
package com.clx.performance.vo.app;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 运单表
* @Date: 2023/09/19 16:49:06
* @Version: 1.0
*/
@ApiModel(description = "运单表")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OrderChildVO {
@ApiModelProperty(value = "id", example = "")
private Integer id;
@ApiModelProperty(value = "用户编号", example = "")
private Long userNo;
@ApiModelProperty(value = "货主用户编号", example = "")
private Long ownerUserNo;
@ApiModelProperty(value = "运单编号", example = "")
private String childNo;
@ApiModelProperty(value = "货单编号", example = "")
private String orderGoodsNo;
@ApiModelProperty(value = "订单编号", example = "")
private String orderNo;
@ApiModelProperty(value = "货物id", example = "")
private Integer goodsId;
@ApiModelProperty(value = "货物名称", example = "")
private String goodsName;
@ApiModelProperty(value = "运费单价(分)", example = "")
private BigDecimal freightPrice;
@ApiModelProperty(value = "发货地址id", example = "")
private Integer sendAddressId;
@ApiModelProperty(value = "发货地址", example = "")
private String sendAddress;
@ApiModelProperty(value = "收货地址id", example = "")
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "")
private String receiveAddress;
@ApiModelProperty(value = "最晚装货时间", example = "")
private String loadDeadline;
@ApiModelProperty(value = "车辆ID", example = "")
private Integer truckId;
@ApiModelProperty(value = "车牌号", example = "")
private String truckNo;
@ApiModelProperty(value = "载重(单位吨)", example = "")
private BigDecimal truckLoad;
@ApiModelProperty(value = "司机用户编号", example = "")
private Long driverUserNo;
@ApiModelProperty(value = "司机姓名", example = "")
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "")
private String driverMobile;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "")
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "")
private BigDecimal loadNet;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "")
private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "")
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "")
private BigDecimal unloadNet;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "")
private BigDecimal weight;
@ApiModelProperty(value = "磅单审核状态", example = "")
private Integer poundStatus;
@ApiModelProperty(value = "状态", example = "")
private Integer status;
@ApiModelProperty(value = "支付时间", example = "")
private String payTime;
@ApiModelProperty(value = "装车时间", example = "")
private String loadTime;
@ApiModelProperty(value = "卸车时间", example = "")
private String unloadTime;
@ApiModelProperty(value = "创建时间", example = "")
private String createTime;
@ApiModelProperty(value = "修改时间", example = "")
private String modifiedTime;
@ApiModelProperty(value = "装车磅单图片列表")
private List<String> loadImageList;
@ApiModelProperty(value = "卸车磅单图片列表")
private List<String> unloadImageList;
}
\ No newline at end of file
package com.clx.performance.param.app;
package com.clx.performance.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
......@@ -6,12 +6,11 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@NoArgsConstructor
public class SaveOrderChildVo {
public class SaveOrderChildVO {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildPoundAuditDetailVO {
@ApiModelProperty(value="运单编号",example = "41441")
private String childNo;
@ApiModelProperty(value="装货净重",example = "10")
private BigDecimal loadNet;
@ApiModelProperty(value="卸货净重",example = "41")
private BigDecimal unloadNet;
@ApiModelProperty(value="审核状态 0-待审核,1-审核失败, 2-审核成功",example = "1")
private Integer status;
@ApiModelProperty(value="备注",example = "41441")
private String remark;
@ApiModelProperty(value="审核驳回类型:1装车 2卸车 3装车+卸车",example = "1")
private Integer rejectType;
@ApiModelProperty(value="装车磅单图片")
private List<String> loadImages;
@ApiModelProperty(value="卸车磅单图片")
private List<String> unloadImages;
}
\ No newline at end of file
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildPoundLogVO {
@ApiModelProperty(value="审核状态 0-待审核,1-审核失败, 2-审核成功",example = "1")
private Integer status;
@ApiModelProperty(value="操作时间",example = "2020-01-01 10:10:10")
private String createTime;
@ApiModelProperty(value="审核人",example = "李瑞")
private String createName;
}
\ No newline at end of file
package com.clx.performance.vo.pc;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.convertor.field.Convert;
import com.msl.common.convertor.field.Converted;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 运单表
* @Date: 2023/09/18 11:34:50
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public class OrderGoodsVO {
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("货单编号类型")
private String orderGoodsType;
@ApiModelProperty("货单编号")
private String orderGoodsNo;
@ApiModelProperty("货单状态")
private Integer orderGoodsStatus;
@ApiModelProperty("提取吨数")
private BigDecimal extractWeight;
@ApiModelProperty("剩余拉运吨数")
private BigDecimal residueTransportWeight;
@ApiModelProperty("发货地址ID")
private Integer sendAddressId;
@ApiModelProperty("发货地址简称")
private String sendAddressShorter;
@ApiModelProperty("发货地址经度")
private BigDecimal sendLongitude;
@ApiModelProperty("发货地址纬度")
private BigDecimal sendLatitude;
@ApiModelProperty("收货地址ID")
private Integer receiveAddressId;
@ApiModelProperty("收货地址简称")
private String receiveAddressShorter;
@ApiModelProperty("收货地址经度")
private BigDecimal receiveLongitude;
@ApiModelProperty("收货地址纬度")
private BigDecimal receiveLatitude;
@ApiModelProperty("货物ID")
private Integer goodsId;
@ApiModelProperty("货物名称")
private String goodsName;
@ApiModelProperty("挂单方式 1公开派单 2定向派单")
private Integer pendingOrderWay;
@ApiModelProperty("定向运单失效时间")
private String directionalExpireTime;
@ApiModelProperty("最晚到达货源地时间/运单的最晚装货时间")
private String lastArriveSendTime;
@ApiModelProperty("挂单时间")
private String pendingOrderTime;
@ApiModelProperty("提取方式 1提取全部 2提取部分")
private Integer extractWay;
@ApiModelProperty("需要车辆/辆")
private Integer needTruckNum;
@ApiModelProperty("高级物流经理id")
private Integer seniorLogisticsManagerId;
@ApiModelProperty("高级物流经理姓名")
private String seniorLogisticsManagerName;
@ApiModelProperty("挂单运费")
@MoneyOutConvert
private BigDecimal pendingOrderFreight;
@ApiModelProperty("创建人用户编号")
private Long userNo;
@ApiModelProperty("创建人姓名")
private String userName;
@ApiModelProperty("创建时间")
private String createTime;
}
\ No newline at end of file
......@@ -17,7 +17,7 @@ import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildPoundAuditVO {
public class PageOrderChildPoundAuditVO {
@ApiModelProperty(value="运单编号",example = "41441")
private String childNo;
......
......@@ -16,7 +16,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
// @ComponentScan("com.msl.common.utils.*"),
//})
@ComponentScan({"com.clx.performance.*", "com.msl.*"})
@EnableFeignClients(basePackages = {"com.msl.*", "com.clx.performance.*", "com.clx.order.*","com.clx.user.*"})
@EnableFeignClients(basePackages = {"com.msl.*", "com.clx.performance.*", "com.clx.order.*", "com.clx.user.*"})
@ViewScan(basePackage = "com.clx.user.view")
public class PerformanceApplication {
......
package com.clx.performance.controller.app;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.feign.OrderFeign;
import com.clx.order.params.OrderGoodsChildParams;
import com.clx.order.params.OrderGoodsParams;
import com.clx.order.params.PageCarrierOrderListParam;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.feign.FeignPageOrderVO;
import com.clx.performance.component.OrderGoodsIdGenerate;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsTypeEnum;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* @ClassName GoodsOrderController
* @Description
* @Author kavin
* @Date 2023/9/17 17:16
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping("/app/goodsOrder")
@Validated
@Api(tags = "APP-货单")
public class AppGoodsOrderController {
@Autowired
OrderGoodsService orderGoodsService;
@Autowired
OrderGoodsMapper orderGoodsMapper;
@ApiOperation(value = "查看货单详情", notes = "<br>By:胡宇帆")
@GetMapping("/getOrderGoodsInfo")
@UnitCovert(param = false)
public Result<OrderGoodsVO> getOrderGoodsInfo(@RequestParam String orderGoodsNo) {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo));
}
}
......@@ -2,6 +2,8 @@ package com.clx.performance.controller.app;
import com.clx.performance.param.app.*;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -32,7 +34,7 @@ public class DriverOrderChildController {
@ApiOperation(value = "接单", notes = "<br>By:艾庆国")
@PostMapping("/saveOrderChild")
public Result<SaveOrderChildVo> saveOrderChild(@RequestBody @Validated OrderChildSaveParam param) {
public Result<SaveOrderChildVO> saveOrderChild(@RequestBody @Validated OrderChildSaveParam param) {
return Result.ok(orderChildService.saveOrderChild(param));
}
......@@ -70,7 +72,7 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "装车(首次、再次)", notes = "<br>By:艾庆国")
@ApiOperation(value = "装车(首次、重复)", notes = "<br>By:艾庆国")
@PostMapping("/updateLoad")
public Result<Void> updateLoad(@RequestBody @Validated OrderChildLoadParam param) {
orderChildService.updateLoad(param);
......@@ -78,7 +80,7 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "卸车(首次、再次)", notes = "<br>By:艾庆国")
@ApiOperation(value = "卸车(首次、重复)", notes = "<br>By:艾庆国")
@PostMapping("/updateUnload")
public Result<Void> updateUnload(@RequestBody @Validated OrderChildUnloadParam param) {
orderChildService.updateUnload(param);
......@@ -94,19 +96,19 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "确认交货", notes = "<br>By:艾庆国")
@PostMapping("/updateConfirm")
public Result<Void> updateConfirm(@RequestBody @Validated OrderChildConfirmParam param) {
orderChildService.updateConfirm(param);
@ApiOperation(value = "取消运单", notes = "<br>By:艾庆国")
@PostMapping("/updateCancel")
public Result<Void> updateDriverCancel(@RequestBody @Validated OrderChildCancelParam param) {
orderChildService.updateDriverCancel(param);
return Result.ok();
}
@ApiOperation(value = "取消运单", notes = "<br>By:艾庆国")
@PostMapping("/updateCancel")
public Result<Void> updateCancel(@RequestBody @Validated OrderChildCancelParam param) {
orderChildService.updateCancel(param);
@ApiOperation(value = "查询运单详情", notes = "<br>By:艾庆国")
@PostMapping("/getOrderChildInfo")
public Result<OrderChildVO> getOrderChildInfo(String childNo) {
return Result.ok();
return Result.ok(orderChildService.getOrderChildInfo(childNo));
}
}
......@@ -2,8 +2,11 @@ package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.param.pc.PoundAuditParam;
import com.clx.performance.service.OrderChildPoundAuditService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.vo.pc.OrderChildPoundAuditVO;
import com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
......@@ -16,21 +19,40 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/poundaudit")
@RequestMapping(value="/pc/carrier/poundAudit")
@Validated
@Api(tags = "承运端-运单")
@Api(tags = "承运端-磅单审核")
@AllArgsConstructor
public class OrderChildPoundAuditController {
private final OrderChildService orderChildService;
private final OrderChildPoundAuditService orderChildPoundAuditService;
@ApiOperation(value = "磅单审核列表",notes = "<br>By:李瑞新")
@PostMapping("/pagePoundAuditList")
public Result<PageData<OrderChildPoundAuditVO>> pagePoundAuditList(@RequestBody PagePoundAuditParam param) {
IPage<OrderChildPoundAuditVO> page = orderChildService.pagePoundAuditList(param);
public Result<PageData<PageOrderChildPoundAuditVO>> pagePoundAuditList(@RequestBody PagePoundAuditParam param) {
IPage<PageOrderChildPoundAuditVO> page = orderChildService.pagePoundAuditList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "磅单审核详情",notes = "<br>By:李瑞新")
@PostMapping("/getPoundAuditDetail")
public Result<OrderChildPoundAuditDetailVO> pagePoundAuditList(@NotBlank(message = "运单编号不能为空") String childNo) {
return Result.ok(orderChildPoundAuditService.getPoundAuditDetail(childNo));
}
@ApiOperation(value = "磅单审核接口",notes = "<br>By:李瑞新")
@PostMapping("/updatePoundAudit")
public Result updatePoundAudit(@RequestBody @Validated PoundAuditParam param) {
orderChildPoundAuditService.updatePoundAudit(param);
return Result.ok();
}
}
package com.clx.performance.controller.pc;
import com.clx.performance.service.OrderChildPoundLogService;
import com.clx.performance.vo.pc.OrderChildPoundLogVO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/poundLog")
@Validated
@Api(tags = "承运端-磅单审核")
@AllArgsConstructor
public class OrderChildPoundLogController {
private final OrderChildPoundLogService orderChildPoundLogService;
@ApiOperation(value = "磅单审核日志列表",notes = "<br>By:李瑞新")
@PostMapping("/getPoundLogList")
public Result<List<OrderChildPoundLogVO>> getPoundLogList(@NotBlank(message = "运单编号不能为空") String childNo) {
return Result.ok(orderChildPoundLogService.getPoundLogList(childNo));
}
}
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.OrderChildMapper;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.pc.OrderChildPoundAuditVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
......@@ -20,16 +20,20 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
boolean updateCancel(OrderChild item);
boolean updateLoad(OrderChild item);
boolean updateUnload(OrderChild item);
boolean updateLoadAndUnload(OrderChild item);
boolean updateDriverConfirm(OrderChild item);
boolean updateStatus(OrderChild item);
Optional<OrderChild> getByChildNo(String childNo);
long countOfCancel(Long userNo, LocalDateTime startTime, LocalDateTime endTime);
IPage<OrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
boolean updatePoundAuditStatus(OrderChild item);
}
......@@ -2,8 +2,11 @@ package com.clx.performance.dao;
import com.clx.performance.mapper.OrderChildImageMapper;
import com.clx.performance.model.OrderChildImage;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 运单图片
......@@ -16,4 +19,8 @@ public interface OrderChildImageDao extends BaseDao<OrderChildImageMapper, Order
boolean deleteUnload(String childNo);
boolean deleteLoadAndUnload(String childNo);
Optional<List<OrderChildImage>> getImages(String childNo, Integer type);
Optional<List<OrderChildImage>> listLoadAndUnload(String childNo);
}
......@@ -2,8 +2,10 @@ package com.clx.performance.dao;
import com.clx.performance.mapper.OrderChildPoundAuditMapper;
import com.clx.performance.model.OrderChildPoundAudit;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
/**
* @Author: aiqinguo
* @Description: 磅单审核表
......@@ -12,5 +14,5 @@ import com.msl.common.dao.BaseDao;
*/
public interface OrderChildPoundAuditDao extends BaseDao<OrderChildPoundAuditMapper, OrderChildPoundAudit, Integer> {
Optional<OrderChildPoundAudit> getPoundAuditDetail(String childNo);
}
......@@ -4,6 +4,8 @@ import com.clx.performance.mapper.OrderChildPoundLogMapper;
import com.clx.performance.model.OrderChildPoundLog;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 磅单日志表
......@@ -12,5 +14,5 @@ import com.msl.common.dao.BaseDao;
*/
public interface OrderChildPoundLogDao extends BaseDao<OrderChildPoundLogMapper, OrderChildPoundLog, Integer> {
List<OrderChildPoundLog> getPoundLogList(String childNo);
}
package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import com.clx.performance.mapper.OrderGoodsMapper;
......@@ -15,4 +18,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
Optional<OrderGoods> getByOrderGoodsNo(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
}
......@@ -7,7 +7,7 @@ import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.mapper.OrderChildMapper;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.pc.OrderChildPoundAuditVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
......@@ -32,17 +32,48 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
@Override
public boolean updateLoad(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getLoadTime, item.getLoadTime())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateUnload(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getUnloadTime, item.getUnloadTime())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateLoadAndUnload(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getPoundStatus, item.getPoundStatus())
);
}
@Override
......@@ -50,6 +81,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
return false;
}
@Override
public boolean updateStatus(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public Optional<OrderChild> getByChildNo(String childNo) {
return Optional.of(childNo)
......@@ -71,8 +110,19 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
@Override
public IPage<OrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param) {
Page<OrderChildPoundAuditVO> page = Page.of(param.getPage(), param.getPageSize());
public IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param) {
Page<PageOrderChildPoundAuditVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pagePoundAuditList(page,param);
}
@Override
public boolean updatePoundAuditStatus(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getStatus, item.getStatus())
.set(OrderChild::getPoundStatus, item.getPoundStatus())
.set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getUnloadNet, item.getUnloadNet())
);
}
}
......@@ -3,9 +3,12 @@ package com.clx.performance.dao.impl;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.mapper.OrderChildImageMapper;
import com.clx.performance.model.OrderChildImage;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 运单表
......@@ -40,4 +43,20 @@ public class OrderChildImageImpl extends BaseDaoImpl<OrderChildImageMapper, Orde
);
}
@Override
public Optional<List<OrderChildImage>> listLoadAndUnload(String childNo) {
return Optional.of(childNo)
.map(item -> lQrWrapper()
.eq(OrderChildImage::getChildNo, childNo)
)
.map(super::list);
}
@Override
public Optional<List<OrderChildImage>> getImages(String childNo, Integer type) {
return Optional.ofEmpty(list(lQrWrapper()
.eq(OrderChildImage::getChildNo, childNo)
.eq(OrderChildImage::getType, type)));
}
}
......@@ -3,9 +3,11 @@ package com.clx.performance.dao.impl;
import com.clx.performance.dao.OrderChildPoundAuditDao;
import com.clx.performance.mapper.OrderChildPoundAuditMapper;
import com.clx.performance.model.OrderChildPoundAudit;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @Author: aiqinguo
* @Description: 磅单审核表
......@@ -14,5 +16,11 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public class OrderChildPoundAuditDaoImpl extends BaseDaoImpl<OrderChildPoundAuditMapper, OrderChildPoundAudit, Integer> implements OrderChildPoundAuditDao {
@Override
public Optional<OrderChildPoundAudit> getPoundAuditDetail(String childNo) {
return Optional.ofNullable(super.getOne(lQrWrapper()
.eq(OrderChildPoundAudit::getChildNo, childNo)
.orderByDesc(OrderChildPoundAudit::getId)
.last("lim1t 1")));
}
}
......@@ -6,6 +6,8 @@ import com.clx.performance.model.OrderChildPoundLog;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author: aiqinguo
* @Description: 磅单日志表
......@@ -14,5 +16,8 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public class OrderChildPoundLogDaoImpl extends BaseDaoImpl<OrderChildPoundLogMapper, OrderChildPoundLog, Integer> implements OrderChildPoundLogDao {
@Override
public List<OrderChildPoundLog> getPoundLogList(String childNo) {
return list(lQrWrapper().eq(OrderChildPoundLog::getChildNo,childNo));
}
}
package com.clx.performance.dao.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.order.vo.feign.FeignPageOrderVO;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.dao.BaseDao;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.mapper.OrderGoodsMapper;
......@@ -31,4 +36,19 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
.map(super::getOne);
}
@Override
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return Optional.of(orderGoodsNo)
.map(item -> lQrWrapper()
.eq(OrderGoods::getOrderGoodsNo, item)
)
.map(super::getOne);
}
@Override
public IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param) {
Page<OrderGoodsVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageOrderGoodsList(page, param);
}
}
package com.clx.performance.extranal.user;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
public interface DriverService {
Optional<DriverTruckInfoFeignVo> getUserDetailInfo(Long driverUserNo, Integer truckId);
}
package com.clx.performance.extranal.user.impl;
import com.clx.performance.extranal.user.DriverService;
import com.clx.user.feign.DriverFeign;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@AllArgsConstructor
public class DriverServiceImpl implements DriverService {
private final DriverFeign driverFeign;
@Override
public Optional<DriverTruckInfoFeignVo> getUserDetailInfo(Long driverUserNo, Integer truckId) {
Optional<DriverTruckInfoFeignVo> map = Optional.ofNullable(driverFeign.getDriverTruckInfo(driverUserNo, truckId))
.filter(Result::succeed)
.map(Result::getData);
return map;
}
}
......@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.sqlProvider.OrderChildSqlProvider;
import com.clx.performance.vo.pc.OrderChildPoundAuditVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
......@@ -17,6 +17,6 @@ import org.apache.ibatis.annotations.SelectProvider;
public interface OrderChildMapper extends BaseMapper<OrderChild> {
@SelectProvider(type = OrderChildSqlProvider.class, method = "pagePoundAuditList")
IPage<OrderChildPoundAuditVO> pagePoundAuditList(@Param("page") Page<OrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(@Param("page") Page<PageOrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param);
}
\ No newline at end of file
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.sqlProvider.OrderGoodsSqlProvider;
import com.clx.performance.vo.pc.OrderGoodsVO;
import org.apache.ibatis.annotations.SelectProvider;
/**
......@@ -14,4 +18,7 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "getMaxOrderGoodsId")
Long getMaxOrderGoodsId(String type);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "pageOrderGoodsList")
IPage<OrderGoodsVO> pageOrderGoodsList(Page<OrderGoodsVO> page, PageOrderGoodsListParam param);
}
......@@ -41,6 +41,8 @@ public class OrderChild implements HasKey<Integer> {
private String sendAddress; //发货地址
private Integer receiveAddressId; //收货地址id
private String receiveAddress; //收货地址
private LocalDateTime loadDeadline; //最晚装货时间
private Integer truckId; //车辆ID
private String truckNo; //车牌号
private BigDecimal truckLoad; //载重(单位吨)
......
......@@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Optional;
/**
* @Author: aiqinguo
......@@ -41,4 +44,43 @@ public class OrderChildPoundAudit implements HasKey<Integer> {
return id;
}
@Getter
@AllArgsConstructor
public enum AuditStatus {
AUDIT(0, "待审核"),
FAIL(1, "审核失败"),
SUCCESS(2, "审核成功")
;
private final Integer code;
private final String msg;
public static Optional<OrderChildPoundAudit.AuditStatus> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
@Getter
@AllArgsConstructor
public enum RejectType {
LOAD_FAIL(1, "装车"),
UNLOAD_FAIL(2, "卸车"),
LOAD_UNLOAD_FAIL(3, "装车+卸车"),
;
private final Integer code;
private final String msg;
public static Optional<OrderChildPoundAudit.RejectType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
}
\ No newline at end of file
......@@ -5,10 +5,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.*;
import lombok.experimental.Accessors;
import java.util.Arrays;
import java.util.Optional;
/**
* @Author: aiqinguo
......@@ -21,6 +22,9 @@ import lombok.ToString;
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
@Builder
@Accessors(chain = true)
@AllArgsConstructor
public class OrderChildPoundLog implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
......@@ -40,4 +44,24 @@ public class OrderChildPoundLog implements HasKey<Integer> {
return id;
}
@Getter
@AllArgsConstructor
public enum CreateType {
OWNER(1, "货主"),
CARRIER(2, "承运端"),
DRIVER(3, "司机"),
;
private final Integer code;
private final String msg;
public static Optional<CreateType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
}
\ No newline at end of file
......@@ -83,6 +83,10 @@ public class OrderGoods implements HasKey<Integer> {
@ApiModelProperty("收货地址纬度")
private BigDecimal receiveLatitude;
@TableField("goods_id")
@ApiModelProperty("货物ID")
private Integer goodsId;
@TableField("goods_name")
@ApiModelProperty("货物名称")
private String goodsName;
......
......@@ -4,4 +4,5 @@ public interface OrderChildLogService {
void saveOrderChildLog(String childNo, Integer type, String remark,
Integer createType,Long createBy, String createName);
void saveDriverOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName);
}
package com.clx.performance.service;
import com.clx.performance.param.pc.PoundAuditParam;
import com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO;
/**
* @author liruixin
* Date 2023-09-19
* Time 13:25
*/
public interface OrderChildPoundAuditService {
OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo);
void updatePoundAudit(PoundAuditParam param);
}
package com.clx.performance.service;
import com.clx.performance.vo.pc.OrderChildPoundLogVO;
import java.util.List;
/**
* @author liruixin
......@@ -8,4 +11,9 @@ package com.clx.performance.service;
* Time 13:25
*/
public interface OrderChildPoundLogService {
List<OrderChildPoundLogVO> getPoundLogList(String childNo);
void saveDriverOrderChildLog(String childNo, Integer status, String remark, Long createBy, String createName);
}
......@@ -3,7 +3,9 @@ package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.*;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.pc.OrderChildPoundAuditVO;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
/**
......@@ -15,7 +17,7 @@ import com.clx.performance.vo.pc.OrderChildPoundAuditVO;
public interface OrderChildService {
SaveOrderChildVo saveOrderChild(OrderChildSaveParam param);
SaveOrderChildVO saveOrderChild(OrderChildSaveParam param);
void updateGotoSendAddress(OrderChildGoToSendAddressParam param);
void updateArriveSendAddress(OrderChildArriveSendAddressParam param);
......@@ -26,10 +28,10 @@ public interface OrderChildService {
void updateUnload(OrderChildUnloadParam param);
void updateLoadAndUnloadAgain(OrderChildLoadAndUnloadAgainParam param);
void updateConfirm(OrderChildConfirmParam param);
void updateDriverCancel(OrderChildCancelParam param);
void updateCancel(OrderChildCancelParam param);
OrderChildVO getOrderChildInfo(String childNo);
IPage<OrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
}
package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
/**
* @author kavin
* Date 2023-09-17
* Time 16:45
*/
public interface OrderGoodsService {
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderChildLogDao;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.model.OrderChildLog;
import com.clx.performance.service.OrderChildLogService;
import lombok.extern.slf4j.Slf4j;
......@@ -28,4 +29,9 @@ public class OrderChildLogServiceImpl implements OrderChildLogService {
orderChildLogDao.saveEntity(orderChildLog);
}
@Override
public void saveDriverOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName) {
saveOrderChildLog(childNo, type, remark, OrderChildLogEnum.CreateType.DRIVER.getCode(), createBy, createName);
}
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dao.OrderChildPoundAuditDao;
import com.clx.performance.dao.OrderChildPoundLogDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildImage;
import com.clx.performance.model.OrderChildPoundAudit;
import com.clx.performance.model.OrderChildPoundLog;
import com.clx.performance.param.pc.PoundAuditParam;
import com.clx.performance.service.OrderChildPoundAuditService;
import com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author liruixin
* Date 2023-09-19
* Time 13:25
*/
@Slf4j
@Service
@AllArgsConstructor
public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditService {
private final OrderChildImageDao orderChildImageDao;
private final OrderChildPoundAuditDao orderChildPoundAuditDao;
private final OrderChildPoundLogDao orderChildPoundLogDao;
private final OrderChildDao orderChildDao;
@Override
public OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo) {
OrderChildPoundAudit poundAuditDetail = orderChildPoundAuditDao.getPoundAuditDetail(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
List<OrderChildImage> loadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.LOAD.getCode()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
List<OrderChildImage> unloadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.UNLOAD.getCode()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OrderChildPoundAuditDetailVO vo = new OrderChildPoundAuditDetailVO();
vo.setChildNo(childNo);
vo.setLoadImages(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
vo.setUnloadImages(unloadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
vo.setLoadNet(poundAuditDetail.getLoadNet());
vo.setUnloadNet(poundAuditDetail.getUnloadNet());
vo.setStatus(poundAuditDetail.getStatus());
vo.setRemark(poundAuditDetail.getRemark());
vo.setRejectType(poundAuditDetail.getRejectType());
return vo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updatePoundAudit(PoundAuditParam param) {
/*OrderChild orderChild = orderChildDao.getByChildNo(param.getChildNo()).orElseThrow(ResultCodeEnum.FAIL);
OrderChildPoundAudit poundAuditDetail = orderChildPoundAuditDao.getPoundAuditDetail(param.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
poundAuditDetail.setStatus(param.getStatus());
orderChild.setStatus(OrderChildEnum.Status.UNSETTLED.getCode());
if(Objects.equals(param.getStatus(),OrderChildPoundAudit.AuditStatus.FAIL.getCode())){
poundAuditDetail.setStatus(param.getStatus());
poundAuditDetail.setRejectType(param.getRejectType());
poundAuditDetail.setRemark(param.getRemark());
orderChild.setStatus(OrderChildEnum.Status.POUND_AUDIT_FAIL.getCode());
}
if(Objects.nonNull(param.getLoadNet())){
poundAuditDetail.setLoadNet(param.getLoadNet());
}
if(Objects.nonNull(param.getUnloadNet())){
poundAuditDetail.setUnloadNet(param.getUnloadNet());
}
orderChildPoundAuditDao.saveEntity(poundAuditDetail);
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
OrderChildPoundLog poundLog = OrderChildPoundLog.builder().childNo(param.getChildNo()).status(param.getStatus()).createType(OrderChildPoundLog.CreateType.CARRIER.getCode())
.createBy(loginUserInfo.getUserNo()).createName(loginUserInfo.getUserName()).build();
orderChildPoundLogDao.saveEntity(poundLog);
if(Objects.nonNull(param.getLoadNet())){
orderChild.setLoadNet(param.getLoadNet());
}
if(Objects.nonNull(param.getUnloadNet())){
orderChild.setUnloadNet(param.getUnloadNet());
}
orderChild.setPoundStatus(param.getStatus());
orderChildDao.updatePoundAuditStatus(orderChild);*/
}
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderChildPoundLogDao;
import com.clx.performance.model.OrderChildPoundLog;
import com.clx.performance.service.OrderChildPoundLogService;
import com.clx.performance.struct.OrderChildPoundLogStruct;
import com.clx.performance.vo.pc.OrderChildPoundLogVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author liruixin
* Date 2023-09-19
* Time 13:25
*/
@Slf4j
@Service
@AllArgsConstructor
public class OrderChildPoundLogServiceImpl implements OrderChildPoundLogService {
private final OrderChildPoundLogDao orderChildPoundLogDao;
private final OrderChildPoundLogStruct orderChildPoundLogStruct;
@Override
public List<OrderChildPoundLogVO> getPoundLogList(String childNo) {
List<OrderChildPoundLog> poundLogList = orderChildPoundLogDao.getPoundLogList(childNo);
return orderChildPoundLogStruct.convert(poundLogList);
}
@Override
public void saveDriverOrderChildLog(String childNo, Integer status, String remark, Long createBy, String createName) {
OrderChildPoundLog poundLog = new OrderChildPoundLog();
poundLog.setChildNo(childNo);
poundLog.setStatus(status);
poundLog.setRemark(remark);
poundLog.setCreateBy(createBy);
poundLog.setCreateName(createName);
orderChildPoundLogDao.saveEntity(poundLog);
}
}
package com.clx.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.struct.OrderGoodsStruct;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
......@@ -10,4 +18,20 @@ import org.springframework.stereotype.Service;
*/
@Service
public class OrderGoodsServiceImpl implements OrderGoodsService {
@Autowired
private OrderGoodsDao orderGoodsDao;
@Autowired
private OrderGoodsStruct orderGoodsStruct;
@Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo).map(orderGoodsStruct::convert).get();
}
@Override
public IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param) {
return orderGoodsDao.pageOrderGoodsList(param);
}
}
......@@ -3,7 +3,7 @@ package com.clx.performance.sqlProvider;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.pc.OrderChildPoundAuditVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
......@@ -12,7 +12,7 @@ import java.util.Objects;
public class OrderChildSqlProvider {
public String pagePoundAuditList(@Param("page") Page<OrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param) {
public String pagePoundAuditList(@Param("page") Page<PageOrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param) {
return new SQL(){{
SELECT("child_no,goods_name,send_address,receive_address,driver_name,driver_mobile,load_net,unload_net," +
"pound_status,date_format(pay_time, '%Y-%m-%d %H:%i:%s') as payTime," +
......
package com.clx.performance.sqlProvider;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.order.vo.feign.FeignPageOrderVO;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class OrderGoodsSqlProvider {
public String getMaxOrderGoodsId(String type) {
......@@ -7,5 +17,59 @@ public class OrderGoodsSqlProvider {
}
public String pageOrderGoodsList(@Param("page") Page<FeignPageOrderVO> page, @Param("param") PageOrderGoodsListParam param) {
String sql = new SQL() {{
SELECT("a.id, a.order_no, a.order_goods_type " +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" a.residue_transport_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.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.last_arrive_send_time, '%Y-%m-%d %H:%i:%s') as last_arrive_send_time ," +
" date_format(a.pending_order_time, '%Y-%m-%d %H:%i:%s') as pending_order_time," +
" date_format(a.create_time, '%Y-%m-%d %H:%i:%s') as create_time," +
" date_format(a.modified_time, '%Y-%m-%d %H:%i:%s') as modified_time," +
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight," +
"a.user_no,a.user_name," +
"a.valid_freight_price ");
FROM("order_info a");
if (StringUtils.isNotBlank(param.getBeginTime()) && StringUtils.isNotBlank(param.getEndTime())) {
WHERE("a.create_time >= #{param.beginTime}");
WHERE("a.create_time <= #{param.endTime}");
}
if (Objects.nonNull(param.getTruckDemand())) {
if (1 == param.getTruckDemand()) {
WHERE("a.truck_demand = #{param.truckDemand}");
} else if (2 == param.getTruckDemand()) {
WHERE("a.truck_demand = #{param.truckDemand}");
} else if (3 == param.getTruckDemand()) {
WHERE("a.truck_demand = #{param.truckDemand}");
}
}
if (Objects.nonNull(param.getOrderGoodsStatus())) {
if (OrderGoodsStatusEnum.Status.CREATED.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.PAYING.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.ARRIVE_SEND.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.CANCEL.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
}
}
if (StringUtils.isNotBlank(param.getOrderNo())) {
WHERE("a.order_no = #{param.orderNo}");
}
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
WHERE("a.order_goods_no = #{param.orderGoodsNo}");
}
ORDER_BY("a.create_time desc");
}}.toString();
return sql;
}
}
package com.clx.performance.struct;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.OrderChildVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildPoundImageStruct {
OrderChildVO convert(OrderChild item);
}
package com.clx.performance.struct;
import com.clx.performance.model.OrderChildPoundLog;
import com.clx.performance.vo.pc.OrderChildPoundLogVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildPoundLogStruct {
List<OrderChildPoundLogVO> convert(List<OrderChildPoundLog> item);
}
package com.clx.performance.struct;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.OrderChildVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildStruct {
OrderChildVO convert(OrderChild item);
}
package com.clx.performance.struct;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderGoodsStruct {
OrderGoodsVO convert(OrderGoods orderGoods);
}
server:
port: 80
servlet:
context-path: /${spring.application.name}
spring:
profiles:
active: dev
application:
name: clx-performance
main:
allow-bean-definition-overriding: true
cloud:
nacos:
discovery:
server-addr: nacos.devclx.cn:8848
username: nacos
password: nacos
register-enabled: true
namespace: new-clx-dev
# namespace: ${spring.profiles.active}
config:
file-extension: yml
server-addr: nacos.devclx.cn:8848
username: nacos
password: nacos
shared-configs:
# - common-redis-${spring.profiles.active}.yml
# - common-mq-${spring.profiles.active}.yml
# - common-druid-${spring.profiles.active}.yml
# - common-satoken-${spring.profiles.active}.yml
# - common-esign-${spring.profiles.active}.yml
namespace: new-clx-dev
\ No newline at end of file
#server:
# port: 80
# servlet:
# context-path: /${spring.application.name}
#
#spring:
# profiles:
# active: dev
# application:
# name: clx-performance
# main:
# allow-bean-definition-overriding: true
#
# cloud:
# nacos:
# discovery:
# server-addr: nacos.devclx.cn:8848
# username: nacos
# password: nacos
# register-enabled: true
# namespace: new-clx-dev
#
# # namespace: ${spring.profiles.active}
# config:
# file-extension: yml
# server-addr: nacos.devclx.cn:8848
# username: nacos
# password: nacos
# shared-configs:
# # - common-redis-${spring.profiles.active}.yml
# # - common-mq-${spring.profiles.active}.yml
# # - common-druid-${spring.profiles.active}.yml
# # - common-satoken-${spring.profiles.active}.yml
# # - common-esign-${spring.profiles.active}.yml
# namespace: new-clx-dev
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论