浏览代码

预定管理

luyanwen-001 4 年之前
父节点
当前提交
ea847b3af3
共有 14 个文件被更改,包括 735 次插入0 次删除
  1. 59 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/QrPackageBookingOrderController.java
  2. 5 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/QrPackage.java
  3. 25 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrPackageBookingOrderMapper.java
  4. 31 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QueryOrderFormDetailVO.java
  5. 52 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QueryOrderFormLimitVO.java
  6. 36 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/AssociateSapOrderReq.java
  7. 19 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/QueryOrderFormDetailReq.java
  8. 34 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/QueryOrderFormLimitReq.java
  9. 66 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/SaveOrderFormReq.java
  10. 72 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/QueryOrderFormDetailRes.java
  11. 71 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/QueryOrderFormLimitRes.java
  12. 44 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrPackageBookingOrderService.java
  13. 167 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageBookingOrderServiceImpl.java
  14. 54 0
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrPackageBookingOrderMapper.xml

+ 59 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/QrPackageBookingOrderController.java

@@ -0,0 +1,59 @@
+package com.abi.qms.platform.controller.console;
+
+import com.abi.qms.platform.dto.req.AssociateSapOrderReq;
+import com.abi.qms.platform.dto.req.QueryOrderFormDetailReq;
+import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
+import com.abi.qms.platform.dto.req.SaveOrderFormReq;
+import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
+import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
+import com.abi.qms.platform.service.QrPackageBookingOrderService;
+import com.abi.task.common.api.base.BaseResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author ludashi
+ * @date 2021年06月04日 15:02
+ * 预订单管理
+ */
+@Slf4j
+@RestController
+@Api(tags = "预订单管理")
+@RequestMapping("/orderForm")
+public class QrPackageBookingOrderController {
+
+    @Autowired
+    private QrPackageBookingOrderService qrPackageBookingOrderService;
+
+    @ApiOperation("新增修改预订单")
+    @PostMapping("/saveOrderForm")
+    public BaseResponse saveOrderForm(@Validated @RequestBody SaveOrderFormReq saveOrderFormReq) {
+        qrPackageBookingOrderService.saveOrderForm(saveOrderFormReq);
+       return BaseResponse.create();
+    }
+
+    @ApiOperation("查看预订单详情")
+    @GetMapping("/queryOrderFormDetail")
+    public BaseResponse queryOrderFormDetail(@Validated QueryOrderFormDetailReq queryOrderFormDetailReq) {
+        QueryOrderFormDetailRes queryOrderFormDetailRes = qrPackageBookingOrderService.queryOrderFormDetail(queryOrderFormDetailReq);
+        return BaseResponse.create(queryOrderFormDetailRes);
+    }
+
+    @ApiOperation("查看预订单查询分页")
+    @GetMapping("/queryOrderFormLimit")
+    public BaseResponse queryOrderFormLimit(@Validated QueryOrderFormLimitReq queryOrderFormLimitReq) {
+        QueryOrderFormLimitRes res=qrPackageBookingOrderService.queryOrderFormLimit(queryOrderFormLimitReq);
+        return BaseResponse.create(res);
+    }
+
+    @ApiOperation("关联单号")
+    @PostMapping("/associateSapOrder")
+    public BaseResponse associateSapOrder(@Validated @RequestBody AssociateSapOrderReq associateSapOrderReq) {
+        qrPackageBookingOrderService.associateSapOrder(associateSapOrderReq);
+        return null;
+    }
+}

+ 5 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/QrPackage.java

@@ -36,6 +36,9 @@ public class QrPackage implements Serializable {
 	@Schema(name = "物料id")
 	private Long materialId;
 
+	@Schema(name = "物料号")
+	private String materialCode;
+
 	@Schema(name = "二维码类型 1-箱码 2-盖码")
 	private Integer qrType;
 
@@ -104,4 +107,6 @@ public class QrPackage implements Serializable {
 	@Schema(name = "是否作废 0-未作废 1-已作废")
 	private Integer invalid;
 
+	@Schema(name = "预订单号")
+	private String bookingOrder;
 }

+ 25 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrPackageBookingOrderMapper.java

@@ -1,7 +1,15 @@
 package com.abi.qms.platform.dao.mapper;
 
 import com.abi.qms.platform.dao.entity.QrPackageBookingOrder;
+import com.abi.qms.platform.dao.vo.result.QueryOrderFormDetailVO;
+import com.abi.qms.platform.dao.vo.result.QueryOrderFormLimitVO;
+import com.abi.qms.platform.dto.req.QueryOrderFormDetailReq;
+import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,4 +20,21 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface QrPackageBookingOrderMapper extends BaseMapper<QrPackageBookingOrder> {
 
+    /**
+     * 查看预订单详情
+     * @author ludashi
+     * @date 2021/6/4 16:37
+     * @param queryOrderFormDetailReq
+     */
+    List<QueryOrderFormDetailVO> queryOrderFormDetail(@Param("queryOrderFormDetailReq")QueryOrderFormDetailReq queryOrderFormDetailReq);
+
+    /**
+     * 查看预订单查询分页
+     * @author ludashi
+     * @date 2021/6/7 9:48
+     * @param page
+     * @param queryOrderFormLimitReq
+     */
+    IPage<QueryOrderFormLimitVO> queryOrderFormLimit(IPage page, @Param("queryOrderFormLimitReq") QueryOrderFormLimitReq queryOrderFormLimitReq);
+
 }

+ 31 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QueryOrderFormDetailVO.java

@@ -0,0 +1,31 @@
+package com.abi.qms.platform.dao.vo.result;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author ludashi
+ * @date 2021年06月04日 17:55
+ */
+@Data
+@ApiModel
+public class QueryOrderFormDetailVO implements Serializable {
+
+    @ApiModelProperty("码包ID")
+    private Long packageId;
+
+    @ApiModelProperty("包包含数量")
+    private Long batchQrNumber;
+
+    @ApiModelProperty("申请人")
+    private Long applicationName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("申请时间")
+    private LocalDateTime applicationTime;
+}

+ 52 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QueryOrderFormLimitVO.java

@@ -0,0 +1,52 @@
+package com.abi.qms.platform.dao.vo.result;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author ludashi
+ * @date 2021年06月07日 10:45
+ */
+@Data
+@ApiModel
+public class QueryOrderFormLimitVO implements Serializable {
+
+    @ApiModelProperty("预订ID")
+    private Long id;
+
+    @ApiModelProperty("预订单号")
+    private String bookingOrder;
+
+    @ApiModelProperty("SAP单号")
+    private String sapOrderNo;
+
+    @ApiModelProperty("物料名称")
+    private String materialName;
+
+    @ApiModelProperty("物料采购数量")
+    private String purchaseCount;
+
+    @ApiModelProperty("码类型")
+    private String qrType;
+
+    @ApiModelProperty("包材厂")
+    private String factoryName;
+
+    @ApiModelProperty("更新人")
+    private String updateBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("更新时间")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("描述")
+    private String descripTion;
+
+    @ApiModelProperty("状态")
+    private String type;
+}

+ 36 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/AssociateSapOrderReq.java

@@ -0,0 +1,36 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @author ludashi
+ * @date 2021年06月07日 11:43
+ */
+@Data
+@ApiModel
+public class AssociateSapOrderReq implements Serializable {
+
+    @ApiModelProperty(value = "预订ID")
+    private Long id;
+
+    @NotNull(message = "预订单号为空")
+    @ApiModelProperty(value = "预订单号")
+    private String bookingOrder;
+
+    @NotNull(message = "SAP单号为空")
+    @ApiModelProperty(value = "SAP单号")
+    private String sapOrder;
+
+    @NotNull(message = "物料为空")
+    @ApiModelProperty(value = "物料")
+    private String materialCode;
+
+    @NotNull(message = "二维码类型为空")
+    @ApiModelProperty( "二维码类型 1-箱码 2-盖码")
+    private Integer qrType;
+}

+ 19 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/QueryOrderFormDetailReq.java

@@ -0,0 +1,19 @@
+package com.abi.qms.platform.dto.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author ludashi
+ * @date 2021年06月04日 17:50
+ */
+@Data
+@ApiModel
+public class QueryOrderFormDetailReq implements Serializable {
+
+    @ApiModelProperty(value = "预订单号")
+    private String bookingOrder;
+}

+ 34 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/QueryOrderFormLimitReq.java

@@ -0,0 +1,34 @@
+package com.abi.qms.platform.dto.req;
+
+import com.abi.task.common.api.base.PageReq;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author ludashi
+ * @date 2021年06月07日 9:36
+ */
+@Data
+@ApiModel
+public class QueryOrderFormLimitReq extends PageReq implements Serializable {
+    @ApiModelProperty(value = "预订单号")
+    private String bookingOrder;
+
+    @ApiModelProperty(value = "SAP单号")
+    private String sapOrder;
+
+    @ApiModelProperty(value = "物料名称")
+    private String materialName;
+
+    @ApiModelProperty(value = "包材厂")
+    private String factoryCoverName;
+
+    @ApiModelProperty(value = "是否关联SAP单号 1是  2否")
+    private String associateSapOrder;
+
+    @ApiModelProperty(value = "状态 1已绑定 2已创建 ")
+    private String status;
+}

+ 66 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/SaveOrderFormReq.java

@@ -0,0 +1,66 @@
+package com.abi.qms.platform.dto.req;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author ludashi
+ * @date 2021年06月04日 15:24
+ * 新增/修改预订单入参
+ */
+@Data
+@ApiModel
+public class SaveOrderFormReq implements Serializable {
+
+    @ApiModelProperty( "id")
+    private Long id;
+
+    @Size(max = 20, message = "预订单号长度超过20")
+    @ApiModelProperty( "预订单号")
+    private String bookingOrder;
+
+    @Size(max = 50, message = "物料名称长度超过50")
+    @NotNull(message = "物料名称为空")
+    @ApiModelProperty( "物料名称")
+    private String materialName;
+
+    @NotNull(message = "采购数量为空")
+    @ApiModelProperty( "采购数量")
+    private Long purchaseCount;
+
+    @NotNull(message = "二维码类型为空")
+    @ApiModelProperty( "二维码类型 1-箱码 2-盖码")
+    private Integer qrType;
+
+    @NotNull(message = "包材厂为空")
+    @ApiModelProperty( "包材厂id")
+    private Long factoryCoverId;
+
+    @Size(max = 50, message = "描述长度超过50")
+    @ApiModelProperty( "描述")
+    private String description;
+
+    @ApiModelProperty( "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty( "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty( "修改时间")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty( "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty( "是否删除")
+    private Integer isDelete;
+}

+ 72 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/QueryOrderFormDetailRes.java

@@ -0,0 +1,72 @@
+package com.abi.qms.platform.dto.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author ludashi
+ * @date 2021年06月04日 18:05
+ */
+@Data
+@Schema
+public class QueryOrderFormDetailRes implements Serializable {
+
+    List<QueryPackageDetailBean> queryPackageDetailBean;
+
+    /**
+     * 码包对象
+     *
+     * @author ludashi
+     * @date 2021/6/4 18:19
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @Schema(name = "QueryOrderFormDetailRes_QueryPackageDetailBean")
+    public static class QueryPackageDetailBean implements Serializable {
+
+        @ApiModelProperty("码包ID")
+        private Long packageId;
+
+        @ApiModelProperty("包包含数量")
+        private Long batchQrNumber;
+
+        @ApiModelProperty("申请人")
+        private Long applicationName;
+
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @ApiModelProperty("申请时间")
+        private LocalDateTime applicationTime;
+
+    }
+
+    @ApiModelProperty("预订单号")
+    private String bookingOrder;
+
+    @ApiModelProperty("物料名称")
+    private String materialName;
+
+    @ApiModelProperty("采购数量")
+    private Long purchaseCount;
+
+    @ApiModelProperty("二维码类型 1-箱码 2-盖码")
+    private Integer qrType;
+
+    @ApiModelProperty("包材厂")
+    private String factoryCoverName;
+
+    @ApiModelProperty("描述")
+    private String description;
+
+
+}

+ 71 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/QueryOrderFormLimitRes.java

@@ -0,0 +1,71 @@
+package com.abi.qms.platform.dto.res;
+
+import com.abi.task.common.api.base.PageResp;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author ludashi
+ * @date 2021年06月07日 10:53
+ */
+@Data
+@ApiModel
+public class QueryOrderFormLimitRes extends PageResp implements Serializable {
+
+    @ApiModelProperty("预订单列表")
+    List<QueryOrderFormLimitBean> queryOrderFormLimitBean;
+
+    /**
+     * 码格式Bean
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "QueryOrderFormLimitRes_QueryOrderFormLimitBean")
+    public static class QueryOrderFormLimitBean implements Serializable{
+
+        @ApiModelProperty("预订ID")
+        private Long id;
+
+        @ApiModelProperty("预订单号")
+        private String bookingOrder;
+
+        @ApiModelProperty("SAP单号")
+        private String sapOrderNo;
+
+        @ApiModelProperty("物料名称")
+        private String materialName;
+
+        @ApiModelProperty("物料采购数量")
+        private String purchaseCount;
+
+        @ApiModelProperty("码类型")
+        private String qrType;
+
+        @ApiModelProperty("包材厂")
+        private String factoryName;
+
+        @ApiModelProperty("更新人")
+        private String updateBy;
+
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @ApiModelProperty("更新时间")
+        private LocalDateTime updateTime;
+
+        @ApiModelProperty("描述")
+        private String descripTion;
+
+        @ApiModelProperty("状态")
+        private String type;
+    }
+}

+ 44 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrPackageBookingOrderService.java

@@ -0,0 +1,44 @@
+package com.abi.qms.platform.service;
+
+import com.abi.qms.platform.dto.req.AssociateSapOrderReq;
+import com.abi.qms.platform.dto.req.QueryOrderFormDetailReq;
+import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
+import com.abi.qms.platform.dto.req.SaveOrderFormReq;
+import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
+import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
+
+public interface QrPackageBookingOrderService {
+
+    /**
+     * 新增修改预订单
+     * @author ludashi
+     * @date 2021/6/4 18:49
+     * @param saveOrderFormReq
+     */
+    void saveOrderForm(SaveOrderFormReq saveOrderFormReq);
+
+    /**
+     * 查看预订单详情
+     * @author ludashi
+     * @date 2021/6/4 18:50
+     * @param queryOrderFormDetailReq
+     * @return com.abi.qms.platform.dto.res.QueryOrderFormDetailRes
+     */
+    QueryOrderFormDetailRes queryOrderFormDetail(QueryOrderFormDetailReq queryOrderFormDetailReq);
+
+    /**
+     * 查看预订单查询分页
+     * @author ludashi
+     * @date 2021/6/7 9:45
+     * @param queryOrderFormLimitReq
+     */
+    QueryOrderFormLimitRes queryOrderFormLimit(QueryOrderFormLimitReq queryOrderFormLimitReq);
+
+    /**
+     * 关联sap单号
+     * @author ludashi
+     * @date 2021/6/7 11:45
+     * @param associateSapOrderReq
+     */
+    void associateSapOrder(AssociateSapOrderReq associateSapOrderReq);
+}

+ 167 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageBookingOrderServiceImpl.java

@@ -0,0 +1,167 @@
+package com.abi.qms.platform.service.impl;
+
+import com.abi.qms.platform.dao.entity.*;
+import com.abi.qms.platform.dao.mapper.*;
+import com.abi.qms.platform.dao.vo.result.QueryOrderFormDetailVO;
+import com.abi.qms.platform.dao.vo.result.QueryOrderFormLimitVO;
+import com.abi.qms.platform.dto.req.AssociateSapOrderReq;
+import com.abi.qms.platform.dto.req.QueryOrderFormDetailReq;
+import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
+import com.abi.qms.platform.dto.req.SaveOrderFormReq;
+import com.abi.qms.platform.dto.res.ListQrVariableRes;
+import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
+import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
+import com.abi.qms.platform.infrastructure.util.PageUtil;
+import com.abi.qms.platform.service.QrPackageBookingOrderService;
+import com.abi.task.common.api.exception.BusinessException;
+import com.abi.task.common.utils.PojoConverterUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @author ludashi
+ * @date 2021年06月04日 15:04
+ */
+@Service
+public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderService {
+
+    @Autowired
+    private QrPackageBookingOrderMapper qrPackageBookingOrderMapper;
+
+    @Autowired
+    private BaseFactoryMapper baseFactoryMapper;
+
+    @Autowired
+    private BaseMaterialMapper baseMaterialMapper;
+
+    @Autowired
+    private QrPackageMapper qrPackageMapper;
+
+    @Autowired
+    private QrPackageSapOrderItemMapper qrPackageSapOrderItemMapper;
+
+    /**
+     * 新增修改预订单
+     * @author ludashi
+     * @date 2021/6/4 18:50
+     * @param saveOrderFormReq
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveOrderForm(SaveOrderFormReq saveOrderFormReq) {
+        QrPackageBookingOrder qPackageBookingOrderCopy = PojoConverterUtils.copy(saveOrderFormReq, QrPackageBookingOrder.class);
+        if(null == qPackageBookingOrderCopy.getId() &&
+                !ObjectUtils.isEmpty(qPackageBookingOrderCopy.getBookingOrder())){
+            //新增
+            if(ObjectUtils.isEmpty(qPackageBookingOrderCopy.getBookingOrder())){
+                throw new BusinessException("预订单单号为空");
+            }
+            QueryWrapper<QrPackageBookingOrder> qrFormatQw = new QueryWrapper<>();
+            qrFormatQw.eq("booking_order",qPackageBookingOrderCopy.getBookingOrder());
+            Integer count = qrPackageBookingOrderMapper.selectCount(qrFormatQw);
+            if (!count.equals(0)) {
+                throw new BusinessException("预订单号已存在");
+            }
+            qrPackageBookingOrderMapper.insert(qPackageBookingOrderCopy);
+        } else {
+            //修改
+            if(!ObjectUtils.isEmpty(qPackageBookingOrderCopy.getBookingOrder())){
+                throw new BusinessException("预订单单号不可修改");
+            }
+            qPackageBookingOrderCopy.setBookingOrder(null);
+            qrPackageBookingOrderMapper.updateById(qPackageBookingOrderCopy);
+        }
+    }
+
+    /**
+     * 查看预订单详情
+     * @author ludashi
+     * @date 2021/6/4 18:50
+     * @param queryOrderFormDetailReq
+     * @return com.abi.qms.platform.dto.res.QueryOrderFormDetailRes
+     */
+    @Override
+    public QueryOrderFormDetailRes queryOrderFormDetail(QueryOrderFormDetailReq queryOrderFormDetailReq) {
+        QueryWrapper<QrPackageBookingOrder> qrFormatQw = new QueryWrapper<>();
+        qrFormatQw.eq("booking_order",queryOrderFormDetailReq.getBookingOrder());
+        qrFormatQw.eq("is_delete",0);
+        QrPackageBookingOrder qrPackageBookingOrder = qrPackageBookingOrderMapper.selectOne(qrFormatQw);
+        BaseFactory baseFactory = baseFactoryMapper.selectById(qrPackageBookingOrder.getFactoryCoverId());
+        List<QueryOrderFormDetailVO> queryQueryOrderFormDetailVO= qrPackageBookingOrderMapper.queryOrderFormDetail(queryOrderFormDetailReq);
+        // 封装出参
+        QueryOrderFormDetailRes orderFormDetailRes = PojoConverterUtils.copy(qrPackageBookingOrder, QueryOrderFormDetailRes.class);
+        if(!ObjectUtils.isEmpty(queryQueryOrderFormDetailVO)){
+            List<QueryOrderFormDetailRes.QueryPackageDetailBean> queryOrderFormDetailBeans = PojoConverterUtils.copyList(queryQueryOrderFormDetailVO, QueryOrderFormDetailRes.QueryPackageDetailBean.class);
+            orderFormDetailRes.setQueryPackageDetailBean(queryOrderFormDetailBeans);
+        }
+        if(!ObjectUtils.isEmpty(baseFactory)){
+            orderFormDetailRes.setFactoryCoverName(baseFactory.getFactoryName());
+        }
+        return orderFormDetailRes;
+    }
+
+    /**
+     * 查看预订单查询分页
+     * @author ludashi
+     * @date 2021/6/7 9:45
+     * @param queryOrderFormLimitReq
+     */
+    @Override
+    public QueryOrderFormLimitRes queryOrderFormLimit(QueryOrderFormLimitReq queryOrderFormLimitReq) {
+       IPage<QueryOrderFormLimitVO> iPage = qrPackageBookingOrderMapper.queryOrderFormLimit(PageUtil.createPage(queryOrderFormLimitReq), queryOrderFormLimitReq);
+       List<QueryOrderFormLimitVO> records = iPage.getRecords();
+       if(ObjectUtils.isEmpty(records)){
+           new BusinessException("查询列表为空");
+       }
+       QueryOrderFormLimitRes res= new QueryOrderFormLimitRes();
+       PageUtil.copyPageInfo(res, iPage);
+       List<QueryOrderFormLimitRes.QueryOrderFormLimitBean> queryOrderFormLimitBeans = PojoConverterUtils.copyList(records, QueryOrderFormLimitRes.QueryOrderFormLimitBean.class);
+       res.setQueryOrderFormLimitBean(queryOrderFormLimitBeans);
+       return res;
+    }
+
+    /**
+     * 关联sap单号
+     * @author ludashi
+     * @date 2021/6/7 11:45
+     * @param associateSapOrderReq
+     */
+    @Override
+    public void associateSapOrder(AssociateSapOrderReq associateSapOrderReq) {
+        //1根据物料code查询id保存
+        QueryWrapper<BaseMaterial> baseMaterial = new QueryWrapper<>();
+        baseMaterial.eq("material_code",associateSapOrderReq.getMaterialCode());
+        baseMaterial.eq("is_delete",0);
+        BaseMaterial baseMaterials = baseMaterialMapper.selectOne(baseMaterial);
+        //关联SAP订单 校验
+        QueryWrapper<QrPackageSapOrderItem> qrPackageSapOrderItem = new QueryWrapper<>();
+        qrPackageSapOrderItem.eq("sap_order_no",associateSapOrderReq.getSapOrder());
+        qrPackageSapOrderItem.eq("sap_material_id",baseMaterials.getId());
+        QrPackageSapOrderItem queryQrPackageSapOrderItem = qrPackageSapOrderItemMapper.selectOne(qrPackageSapOrderItem);
+        if(ObjectUtils.isEmpty(queryQrPackageSapOrderItem)){
+            new BusinessException("该SAP订单号内未找到需要打码的物料,请维护物料数据后重试");
+        }
+        //2修改预订单名称
+        QrPackageBookingOrder qrPackageBookingOrder = qrPackageBookingOrderMapper.selectById(associateSapOrderReq.getId());
+        qrPackageBookingOrder.setMaterialName(baseMaterials.getMaterialName());
+
+        //修改码包
+        QueryWrapper<QrPackage> packageQuery = new QueryWrapper<>();
+        packageQuery.eq("booking_order",associateSapOrderReq.getBookingOrder());
+        QrPackage qrPackage = qrPackageMapper.selectOne(packageQuery);
+        qrPackage.setSapOrderNo(associateSapOrderReq.getSapOrder());
+        qrPackage.setMaterialId(baseMaterials.getId());
+        qrPackage.setMaterialCode(baseMaterials.getMaterialCode());
+        if(!queryQrPackageSapOrderItem.getSapCoverFactoryId().equals(qrPackage.getFactoryCoverId().toString())){
+            new BusinessException("关联的SAP订单内包材厂信息与原预订单不符,请确认后重试。");
+        }
+        qrPackageBookingOrderMapper.updateById(qrPackageBookingOrder);
+        qrPackageMapper.updateById(qrPackage);
+    }
+}

+ 54 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrPackageBookingOrderMapper.xml

@@ -22,5 +22,59 @@
     <sql id="Base_Column_List">
         ID, BOOKING_ORDER, MATERIAL_NAME, PURCHASE_COUNT, QR_TYPE, FACTORY_COVER_ID, DESCRIPTION, CREATE_TIME, CREATE_BY, UPDATE_TIME, UPDATE_BY, IS_DELETE
     </sql>
+    <!--    查看预订单详情         -->
+    <select id="queryOrderFormDetail" resultType="com.abi.qms.platform.dao.vo.result.QueryOrderFormDetailVO">
+        SELECT
+            package.id AS packageId,
+            batch.batch_qr_number AS batchQrNumber ,
+            package.create_time AS applicationTime,
+            package.create_by AS applicationName
+        FROM
+            qr_package AS package
+            LEFT JOIN qr_package_batch AS batch ON batch.package_id = package.id
+        WHERE
+            package.booking_order = #{queryOrderFormDetailReq.bookingOrder,jdbcType=VARCHAR}
+    </select>
+
+    <select id="queryOrderFormLimit" resultType="com.abi.qms.platform.dao.vo.result.QueryOrderFormLimitVO">
+        SELECT
+            bookingOrder.id id,
+            bookingOrder.booking_order bookingOrder,
+            package.sap_order_no sapOrderNo,
+            meterial.material_name materialName,
+            bookingOrder.purchase_count purchaseCount,
+            bookingOrder.qr_type qrType,
+            factory.factory_name factoryName,
+            package.update_by updateBy,
+            package.update_time updateTime,
+            bookingOrder.description descripTion,
+        IF
+            ( package.sap_order_no IS NULL, 1, 2 ) type
+        FROM
+            qr_package_booking_order AS bookingOrder
+            LEFT JOIN qr_package AS package ON package.booking_order = bookingOrder.booking_order
+            LEFT JOIN base_material AS meterial ON meterial.id = package.material_id
+            LEFT JOIN base_factory AS factory ON factory.id = bookingOrder.factory_cover_id
+        <where>
+            <if test="null != queryOrderFormLimitReq.bookingOrder and queryOrderFormLimitReq.bookingOrder !=''">
+                bookingOrder.booking_order = #{queryOrderFormLimitReq.bookingOrder}
+            </if>
+            <if test="null != queryOrderFormLimitReq.sapOrder and queryOrderFormLimitReq.sapOrder != ''">
+                AND package.sap_order_no = #{queryOrderFormLimitReq.sapOrder}
+            </if>
+            <if test="null != queryOrderFormLimitReq.materialName and queryOrderFormLimitReq.materialName != ''">
+                AND meterial.material_name = #{queryOrderFormLimitReq.materialName}
+            </if>
+            <if test="null != queryOrderFormLimitReq.factoryCoverName and  queryOrderFormLimitReq.factoryCoverName != ''">
+                AND factory.factory_name = #{queryOrderFormLimitReq.factoryCoverName}
+            </if>
+            <if test=" 1 == queryOrderFormLimitReq.associateSapOrder or  1 ==queryOrderFormLimitReq.status ">
+                AND package.sap_order_no IS NOT NULL
+            </if>
+            <if test=" 2 == queryOrderFormLimitReq.associateSapOrder or  2 ==queryOrderFormLimitReq.status ">
+                AND package.sap_order_no IS NULL
+            </if>
+        </where>
+    </select>
 
 </mapper>