Browse Source

bug修改

lishiqiang 2 months ago
parent
commit
efe292bfaa

+ 124 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/OrderJzDetailController.java

@@ -0,0 +1,124 @@
+package com.yc.ship.module.trade.controller.admin.orderjzdetail;
+
+import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
+import com.yc.ship.module.product.service.voyage.VoyageService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.annotation.security.PermitAll;
+import javax.validation.constraints.*;
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
+
+import com.yc.ship.framework.excel.core.util.ExcelUtils;
+
+import com.yc.ship.framework.apilog.core.annotation.ApiAccessLog;
+
+import static com.yc.ship.framework.apilog.core.enums.OperateTypeEnum.*;
+
+import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.*;
+import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
+import com.yc.ship.module.trade.service.orderjzdetail.OrderJzDetailService;
+
+@Tag(name = "管理后台 - 订单接站人员名单")
+@RestController
+@RequestMapping("/trade/order-jz-detail")
+@Validated
+public class OrderJzDetailController {
+
+  @Resource
+  private OrderJzDetailService orderJzDetailService;
+
+  @Resource
+  private VoyageService voyageService;
+
+  @PostMapping("/create")
+  @Operation(summary = "创建订单接站人员名单")
+  @PreAuthorize("@ss.hasPermission('trade:order-jz-detail:create')")
+  public CommonResult<Long> createOrderJzDetail(@Valid @RequestBody OrderJzDetailSaveReqVO createReqVO) {
+    return success(orderJzDetailService.createOrderJzDetail(createReqVO));
+  }
+
+  @PutMapping("/update")
+  @Operation(summary = "更新订单接站人员名单")
+  @PreAuthorize("@ss.hasPermission('trade:order-jz-detail:update')")
+  public CommonResult<Boolean> updateOrderJzDetail(@Valid @RequestBody OrderJzDetailSaveReqVO updateReqVO) {
+    orderJzDetailService.updateOrderJzDetail(updateReqVO);
+    return success(true);
+  }
+
+  @DeleteMapping("/delete")
+  @Operation(summary = "删除订单接站人员名单")
+  @Parameter(name = "id", description = "编号", required = true)
+  @PreAuthorize("@ss.hasPermission('trade:order-jz-detail:delete')")
+  public CommonResult<Boolean> deleteOrderJzDetail(@RequestParam("id") Long id) {
+    orderJzDetailService.deleteOrderJzDetail(id);
+    return success(true);
+  }
+
+  @GetMapping("/get")
+  @Operation(summary = "获得订单接站人员名单")
+  @Parameter(name = "id", description = "编号", required = true, example = "1024")
+  @PreAuthorize("@ss.hasPermission('trade:order-jz-detail:query')")
+  public CommonResult<OrderJzDetailRespVO> getOrderJzDetail(@RequestParam("id") Long id) {
+    OrderJzDetailDO orderJzDetail = orderJzDetailService.getOrderJzDetail(id);
+    return success(BeanUtils.toBean(orderJzDetail, OrderJzDetailRespVO.class));
+  }
+
+  @GetMapping("/page")
+  @Operation(summary = "获得订单接站人员名单分页")
+  @PreAuthorize("@ss.hasPermission('trade:order-jz-detail:query')")
+  public CommonResult<PageResult<OrderJzDetailRespVO>> getOrderJzDetailPage(@Valid OrderJzDetailPageReqVO pageReqVO) {
+    PageResult<OrderJzDetailDO> pageResult = orderJzDetailService.getOrderJzDetailPage(pageReqVO);
+    return success(BeanUtils.toBean(pageResult, OrderJzDetailRespVO.class));
+  }
+
+  @GetMapping("/export-excel")
+  @Operation(summary = "导出订单接站人员名单 Excel")
+  @ApiAccessLog(operateType = EXPORT)
+//  @PreAuthorize("@ss.hasPermission('trade:order-jz-detail:query')")
+  public void exportOrderJzDetailExcel(@Valid OrderJzDetailPageReqVO pageReqVO,
+                                       HttpServletResponse response) throws IOException {
+    if (StringUtils.isEmpty(pageReqVO.getVoyageId())) {
+      throw new RuntimeException("航次编号不能为空");
+    }
+    VoyageDO voyageDO = voyageService.getVoyage(Long.valueOf(pageReqVO.getVoyageId()));
+    if (voyageDO == null) {
+      throw new RuntimeException("航次信息不能为空");
+    }
+
+    pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+    List<OrderJzDetailDO> list = orderJzDetailService.selectPageByVoyageId(pageReqVO.getVoyageId());
+    // 导出 Excel
+    List<OrderJzDetailRespVO> exportList = BeanUtils.toBean(list, OrderJzDetailRespVO.class);
+    exportList.forEach(vo -> {
+      vo.setVoyage(voyageDO.getName());
+    });
+    ExcelUtils.write(response, "订单接站人员名单.xls", "数据", OrderJzDetailRespVO.class,
+      BeanUtils.toBean(list, OrderJzDetailRespVO.class));
+  }
+
+
+  @PostMapping("/sign")
+  @PermitAll
+  public CommonResult<Long> createOrderJzDetail(@Valid @RequestBody List<OrderJzDetailSaveReqVO> createReqVOList) {
+    return success(orderJzDetailService.createOrderJzDetail(createReqVOList));
+  }
+}

+ 51 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailPageReqVO.java

@@ -0,0 +1,51 @@
+package com.yc.ship.module.trade.controller.admin.orderjzdetail.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.yc.ship.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 订单接站人员名单分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OrderJzDetailPageReqVO extends PageParam {
+
+    @Schema(description = "接站单ID", example = "18565")
+    private Long jzId;
+
+    private String batchNo;
+
+    @Schema(description = "抵达时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] arriveTime;
+
+    @Schema(description = "接站地址")
+    private String address;
+
+    @Schema(description = "接站联系人", example = "李四")
+    private String name;
+
+    @Schema(description = "接站联系电话")
+    private String phone;
+
+    @Schema(description = "备注车次航班", example = "随便")
+    private String remark;
+
+    @Schema(description = "状态", example = "1")
+    private Integer status;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+
+    /**
+     * 航次编号
+     */
+    private String voyageId;
+}

+ 56 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailRespVO.java

@@ -0,0 +1,56 @@
+package com.yc.ship.module.trade.controller.admin.orderjzdetail.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 订单接站人员名单 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class OrderJzDetailRespVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6145")
+    private Long id;
+
+    @Schema(description = "接站单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18565")
+    private Long jzId;
+
+    @ExcelProperty("航次")
+    private String voyage;
+
+    @Schema(description = "批次编号")
+    @ExcelProperty("批次编号")
+    private String batchNo;
+
+    @Schema(description = "抵达时间")
+    @ExcelProperty("抵达时间")
+    private LocalDateTime arriveTime;
+
+    @Schema(description = "接站地址")
+    @ExcelProperty("接站地址")
+    private String address;
+
+    @Schema(description = "接站联系人", example = "李四")
+    @ExcelProperty("接站联系人")
+    private String name;
+
+    @Schema(description = "接站联系电话")
+    @ExcelProperty("接站联系电话")
+    private String phone;
+
+    @Schema(description = "备注车次航班", example = "随便")
+    @ExcelProperty("备注车次航班")
+    private String remark;
+
+    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+//    @ExcelProperty("状态")
+    private Integer status;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("登记时间")
+    private LocalDateTime createTime;
+
+}

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailSaveReqVO.java

@@ -0,0 +1,41 @@
+package com.yc.ship.module.trade.controller.admin.orderjzdetail.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 订单接站人员名单新增/修改 Request VO")
+@Data
+public class OrderJzDetailSaveReqVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6145")
+    private Long id;
+
+    @Schema(description = "接站单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18565")
+    private Long jzId;
+
+    private String batchNo;
+
+    private String arriveTime;
+
+    @Schema(description = "接站地址")
+    private String address;
+
+    @Schema(description = "接站联系人", example = "李四")
+    private String name;
+
+    @Schema(description = "接站联系电话")
+    private String phone;
+
+    @Schema(description = "备注车次航班", example = "随便")
+    private String remark;
+
+    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Integer status;
+
+    private String oid; // 订单ID
+}

+ 63 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/orderjzdetail/OrderJzDetailDO.java

@@ -0,0 +1,63 @@
+package com.yc.ship.module.trade.dal.dataobject.orderjzdetail;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 订单接站人员名单 DO
+ *
+ * @author 管理员
+ */
+@TableName("trade_order_jz_detail")
+@KeySequence("trade_order_jz_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderJzDetailDO extends BaseDO {
+
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+    /**
+     * 接站单ID
+     */
+    private Long jzId;
+
+    private String batchNo;
+
+    /**
+     * 抵达时间
+     */
+    private LocalDateTime arriveTime;
+    /**
+     * 接站地址
+     */
+    private String address;
+    /**
+     * 接站联系人
+     */
+    private String name;
+    /**
+     * 接站联系电话
+     */
+    private String phone;
+    /**
+     * 备注车次航班
+     */
+    private String remark;
+    /**
+     * 状态
+     */
+    private Integer status;
+
+}

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/orderjzdetail/OrderJzDetailMapper.java

@@ -0,0 +1,41 @@
+package com.yc.ship.module.trade.dal.mysql.orderjzdetail;
+
+import java.util.*;
+
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
+import io.swagger.v3.oas.annotations.servers.Server;
+import org.apache.ibatis.annotations.Mapper;
+import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.*;
+import org.apache.ibatis.annotations.Select;
+
+/**
+ * 订单接站人员名单 Mapper
+ *
+ * @author 管理员
+ */
+@Mapper
+public interface OrderJzDetailMapper extends BaseMapperX<OrderJzDetailDO> {
+
+  default PageResult<OrderJzDetailDO> selectPage(OrderJzDetailPageReqVO reqVO) {
+    return selectPage(reqVO, new LambdaQueryWrapperX<OrderJzDetailDO>()
+      .eqIfPresent(OrderJzDetailDO::getJzId, reqVO.getJzId())
+      .betweenIfPresent(OrderJzDetailDO::getArriveTime, reqVO.getArriveTime())
+      .eqIfPresent(OrderJzDetailDO::getAddress, reqVO.getAddress())
+      .likeIfPresent(OrderJzDetailDO::getName, reqVO.getName())
+      .eqIfPresent(OrderJzDetailDO::getPhone, reqVO.getPhone())
+      .eqIfPresent(OrderJzDetailDO::getRemark, reqVO.getRemark())
+      .eqIfPresent(OrderJzDetailDO::getStatus, reqVO.getStatus())
+      .betweenIfPresent(OrderJzDetailDO::getCreateTime, reqVO.getCreateTime())
+      .orderByDesc(OrderJzDetailDO::getId));
+  }
+
+  @Select(("select d.* from trade_order_jz_detail d " +
+    " inner join trade_order_jz oz on d.jz_id = oz.id " +
+    " inner join trade_order o on o.id = oz.order_id " +
+    " where o.voyage_id = #{voyageId}" +
+    " order by d.arrive_time asc, d.batch_no"))
+  List<OrderJzDetailDO> selectPageByVoyageId(String voyageId);
+}

+ 16 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderStausJob.java

@@ -0,0 +1,16 @@
+package com.yc.ship.module.trade.job;
+
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import org.springframework.stereotype.Component;
+
+@Component
+public class OrderStausJob implements JobHandler {
+
+
+    @Override
+    public String execute(String param) {
+
+        return "成功";
+    }
+
+}

+ 60 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailService.java

@@ -0,0 +1,60 @@
+package com.yc.ship.module.trade.service.orderjzdetail;
+
+import java.util.*;
+import javax.validation.*;
+
+import com.yc.ship.framework.common.util.collection.MapUtils;
+import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.*;
+import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.PageParam;
+
+/**
+ * 订单接站人员名单 Service 接口
+ *
+ * @author 管理员
+ */
+public interface OrderJzDetailService {
+
+  /**
+   * 创建订单接站人员名单
+   *
+   * @param createReqVO 创建信息
+   * @return 编号
+   */
+  Long createOrderJzDetail(@Valid OrderJzDetailSaveReqVO createReqVO);
+
+  Long createOrderJzDetail(List<OrderJzDetailSaveReqVO> createReqVOList);
+
+  /**
+   * 更新订单接站人员名单
+   *
+   * @param updateReqVO 更新信息
+   */
+  void updateOrderJzDetail(@Valid OrderJzDetailSaveReqVO updateReqVO);
+
+  /**
+   * 删除订单接站人员名单
+   *
+   * @param id 编号
+   */
+  void deleteOrderJzDetail(Long id);
+
+  /**
+   * 获得订单接站人员名单
+   *
+   * @param id 编号
+   * @return 订单接站人员名单
+   */
+  OrderJzDetailDO getOrderJzDetail(Long id);
+
+  /**
+   * 获得订单接站人员名单分页
+   *
+   * @param pageReqVO 分页查询
+   * @return 订单接站人员名单分页
+   */
+  PageResult<OrderJzDetailDO> getOrderJzDetailPage(OrderJzDetailPageReqVO pageReqVO);
+
+  List<OrderJzDetailDO> selectPageByVoyageId(String voyageId);
+}

+ 155 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailServiceImpl.java

@@ -0,0 +1,155 @@
+package com.yc.ship.module.trade.service.orderjzdetail;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
+import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
+import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.validation.constraints.NotNull;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.*;
+import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+
+import com.yc.ship.module.trade.dal.mysql.orderjzdetail.OrderJzDetailMapper;
+
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.yc.ship.module.trade.enums.ErrorCodeConstants.*;
+
+/**
+ * 订单接站人员名单 Service 实现类
+ *
+ * @author 管理员
+ */
+@Service
+@Validated
+public class OrderJzDetailServiceImpl implements OrderJzDetailService {
+
+  @Resource
+  private TradeOrderMapper tradeOrderMapper;
+
+  @Resource
+  private OrderJzMapper orderJzMapper;
+
+  @Resource
+  private OrderJzDetailMapper orderJzDetailMapper;
+
+  @Override
+  public Long createOrderJzDetail(OrderJzDetailSaveReqVO createReqVO) {
+    // 插入
+    OrderJzDetailDO orderJzDetail = BeanUtils.toBean(createReqVO, OrderJzDetailDO.class);
+    orderJzDetailMapper.insert(orderJzDetail);
+    // 返回
+    return orderJzDetail.getId();
+  }
+
+
+  @Override
+  @TenantIgnore
+  public Long createOrderJzDetail(List<OrderJzDetailSaveReqVO> createReqVOList) {
+    if (createReqVOList == null || createReqVOList.isEmpty()) {
+      return 0L;
+    }
+    String oid = createReqVOList.get(0).getOid();
+    if (oid == null || oid.isEmpty()) {
+      throw new RuntimeException("未查询到相关订单");
+    }
+    TradeOrderDO orderDo = tradeOrderMapper.selectOne(new LambdaQueryWrapper<TradeOrderDO>().eq(TradeOrderDO::getId, oid));
+    if (orderDo == null) {
+      throw new RuntimeException("未查询到相关订单");
+    }
+    // 根据订单编号查询jz编号
+    OrderJzDO orderJzDO = orderJzMapper.selectOne(new LambdaQueryWrapper<OrderJzDO>().eq(OrderJzDO::getOrderId, oid));
+    if (orderJzDO == null) { // 没有接站信息,就保存一条新数据
+      orderJzDO = new OrderJzDO();
+      orderJzDO.setId(IdUtil.getSnowflake(0, 0).nextId());
+      orderJzDO.setIsJz(1);
+      orderJzDO.setJzAddress("");
+      orderJzDO.setJzLinkName("");
+      orderJzDO.setJzLinkPhone("");
+      orderJzDO.setOrderId(orderDo.getId());
+      orderJzMapper.insert(orderJzDO);
+    }
+
+    long count = 0;
+    String batchNo = IdUtil.getSnowflake(0, 0).nextIdStr(); //生成批次号,只是为了区分是同一批人
+    // 先删除上一次手机号录入的数据
+    for (OrderJzDetailSaveReqVO orderJzDetailSaveReqVO : createReqVOList) {
+      orderJzDetailSaveReqVO.setJzId(orderJzDO.getId());
+      deleteDetailList(orderJzDetailSaveReqVO.getJzId(), orderJzDetailSaveReqVO.getPhone());
+    }
+    for (OrderJzDetailSaveReqVO orderJzDetailSaveReqVO : createReqVOList) {
+      orderJzDetailSaveReqVO.setBatchNo(batchNo);
+      createOrderJzDetail(orderJzDetailSaveReqVO);
+      count++;
+    }
+    return count;
+  }
+
+  private void deleteDetailList(Long jzId, String phone) {
+    LambdaQueryWrapper<OrderJzDetailDO> w1 = new LambdaQueryWrapper<>();
+    w1.eq(OrderJzDetailDO::getJzId, jzId);
+    w1.eq(OrderJzDetailDO::getPhone, phone);
+    List<OrderJzDetailDO> detailList = orderJzDetailMapper.selectList(w1);
+    if (detailList == null || detailList.isEmpty()) {
+      return;
+    }
+    for (OrderJzDetailDO orderJzDetailDO : detailList) {
+      // 删除同批次的
+      LambdaQueryWrapper<OrderJzDetailDO> w2 = new LambdaQueryWrapper<>();
+      w2.eq(OrderJzDetailDO::getBatchNo, orderJzDetailDO.getBatchNo());
+      orderJzDetailMapper.delete(w2);
+    }
+  }
+
+
+  @Override
+  public void updateOrderJzDetail(OrderJzDetailSaveReqVO updateReqVO) {
+    // 校验存在
+    validateOrderJzDetailExists(updateReqVO.getId());
+    // 更新
+    OrderJzDetailDO updateObj = BeanUtils.toBean(updateReqVO, OrderJzDetailDO.class);
+    orderJzDetailMapper.updateById(updateObj);
+  }
+
+  @Override
+  public void deleteOrderJzDetail(Long id) {
+    // 校验存在
+    validateOrderJzDetailExists(id);
+    // 删除
+    orderJzDetailMapper.deleteById(id);
+  }
+
+  private void validateOrderJzDetailExists(Long id) {
+    if (orderJzDetailMapper.selectById(id) == null) {
+      throw exception(500,"不存在");
+    }
+  }
+
+  @Override
+  public OrderJzDetailDO getOrderJzDetail(Long id) {
+    return orderJzDetailMapper.selectById(id);
+  }
+
+  @Override
+  public PageResult<OrderJzDetailDO> getOrderJzDetailPage(OrderJzDetailPageReqVO pageReqVO) {
+    return orderJzDetailMapper.selectPage(pageReqVO);
+  }
+
+  @Override
+  public List<OrderJzDetailDO> selectPageByVoyageId(String voyageId) {
+    return orderJzDetailMapper.selectPageByVoyageId(voyageId);
+  }
+}

+ 3 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/pay/impl/TradeOrderPayServiceImpl.java

@@ -429,7 +429,7 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
         BigDecimal hadPayAmount = tradeOrderRepositoryService.getHadPayAmount(orderId);
 
         if(ObjectUtil.equal(tradeOrderDO.getOrderStatus(),TradeOrderStatusEnum.CANCELED.getStatus()) ||
-                NumberUtil.isGreater(hadPayAmount,tradeOrderDO.getPayAmount())){
+                hadPayAmount.compareTo(tradeOrderDO.getPayAmount())<0){
             //如果此时订单已经被系统取消,则应自动退款。 如果支付金额大于订单金额也自动退款
             log.error("当前订单已不能支付,自动退款,订单{},支付单{},状态{},金额{}",orderId,tradeOrderPayDO.getId()
                     ,tradeOrderDO.getOrderStatus(),hadPayAmount);
@@ -439,12 +439,12 @@ public class TradeOrderPayServiceImpl implements TradeOrderPayService {
         }
 
         Asserts.isTrue(ObjectUtils.equalsAny(tradeOrderDO.getOrderStatus(),TradeOrderStatusEnum.UNPAID.getStatus()
-                ,TradeOrderStatusEnum.PAYING.getStatus()),"{}当前状态{}不能被修改为已支付",orderId,tradeOrderDO.getOrderStatus());
+                ,TradeOrderStatusEnum.PAYING.getStatus(),TradeOrderStatusEnum.YD.getStatus()),"{}当前状态{}不能被修改为已支付",orderId,tradeOrderDO.getOrderStatus());
 
 
         //如果是改签订单只需要支付差额
         boolean isChangeOrderPay = tradeOrderDO.getIsChangeOrder()!=null && tradeOrderDO.getIsChangeOrder() == ORDER_CHANGE_TYPE_NEW;
-        if(ObjectUtil.equals(hadPayAmount,tradeOrderDO.getPayAmount()) || isChangeOrderPay){
+        if( hadPayAmount.compareTo(tradeOrderDO.getPayAmount())>=0|| isChangeOrderPay){
             //订单变更为已支付
             updateOrderPaid(tradeOrderDO,tradeOrderPayDO);
             //向供应商出票