1 рік тому
батько
коміт
265d2eb741
22 змінених файлів з 1569 додано та 5 видалено
  1. 90 0
      platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseDetailDTO.java
  2. 114 0
      platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseOrderDTO.java
  3. 1 0
      platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java
  4. 77 0
      platform-dao/src/main/java/com/platform/dao/entity/longyanpurchaseorder/LongYanPurchaseDetail.java
  5. 82 0
      platform-dao/src/main/java/com/platform/dao/entity/longyanpurchaseorder/LongYanPurchaseOrder.java
  6. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/longyanpurchaseorder/LongYanPurchaseDetailMapper.java
  7. 26 0
      platform-dao/src/main/java/com/platform/dao/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.java
  8. 82 0
      platform-dao/src/main/java/com/platform/dao/vo/export/longyanpurchaseorder/ExportLongYanPurchaseDetailVO.java
  9. 93 0
      platform-dao/src/main/java/com/platform/dao/vo/export/longyanpurchaseorder/ExportLongYanPurchaseOrderVO.java
  10. 72 0
      platform-dao/src/main/java/com/platform/dao/vo/query/longyanpurchaseorder/LongYanPurchaseDetailVO.java
  11. 78 0
      platform-dao/src/main/java/com/platform/dao/vo/query/longyanpurchaseorder/LongYanPurchaseOrderVO.java
  12. 2 0
      platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoVO.java
  13. 88 0
      platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseDetailMapper.xml
  14. 89 0
      platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.xml
  15. 141 0
      platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseDetailController.java
  16. 153 0
      platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseOrderController.java
  17. 22 0
      platform-rest/src/main/java/com/platform/rest/controller/sb/SbModelSpareBomController.java
  18. 35 0
      platform-service/src/main/java/com/platform/service/longyanpurchaseorder/LongYanPurchaseDetailService.java
  19. 41 0
      platform-service/src/main/java/com/platform/service/longyanpurchaseorder/LongYanPurchaseOrderService.java
  20. 50 0
      platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseDetailServiceImpl.java
  21. 145 0
      platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseOrderServiceImpl.java
  22. 62 5
      platform-service/src/main/java/com/platform/service/store/impl/OutStoreFormServiceImpl.java

+ 90 - 0
platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseDetailDTO.java

@@ -0,0 +1,90 @@
+package com.platform.dao.dto.longyanpurchaseorder;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 龙岩采购明细表DTO
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class LongYanPurchaseDetailDTO extends BaseDTO implements Serializable {
+    private String no;
+    private String ggxh;
+    private String spareName;
+
+      /**
+     *
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 采购计划id
+     */
+          private String longYangPurchaseOrderId;
+          /**
+     * 备件id
+     */
+          private String spareId;
+          /**
+     * 数量
+     */
+          private BigDecimal num;
+          /**
+     *
+     */
+          private String createdUserId;
+          /**
+     *
+     */
+          private String createdUserName;
+          /**
+     *
+     */
+          private String updateUserId;
+          /**
+     *
+     */
+          private String updateUserName;
+          /**
+     *
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     *
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 结束
+       */
+      private LocalDateTime updateTimeEnd;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 114 - 0
platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseOrderDTO.java

@@ -0,0 +1,114 @@
+package com.platform.dao.dto.longyanpurchaseorder;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @Description 龙岩采购单表DTO
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class LongYanPurchaseOrderDTO extends BaseDTO implements Serializable {
+    private List<String> sbIds;
+    private List<LongYanPurchaseDetailDTO> detailDTOS;
+    private String positionNo;
+
+    private String no;
+    private String ggxh;
+    private String spareName;
+    /**
+     * 备件id
+     */
+    private String spareId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal num;
+
+
+
+      /**
+     *
+     */
+        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    private String id;
+          /**
+     * 设备id
+     */
+          private String sbId;
+          /**
+     * 项目id
+     */
+          private String projectId;
+          /**
+     *
+     */
+          private String createdUserId;
+          /**
+     *
+     */
+          private String createdUserName;
+          /**
+     *
+     */
+        private LocalDateTime createdTime;
+      /**
+       * 开始
+       */
+      private LocalDateTime createdTimeStart;
+      /**
+       * 结束
+       */
+      private LocalDateTime createdTimeEnd;
+          /**
+     *
+     */
+        private LocalDateTime updateTime;
+      /**
+       * 开始
+       */
+      private LocalDateTime updateTimeStart;
+      /**
+       * 结束
+       */
+      private LocalDateTime updateTimeEnd;
+          /**
+     *
+     */
+          private String updateUserId;
+          /**
+     *
+     */
+          private String updateUserName;
+          /**
+     * 采购计划类型1:计划采购,2:临时采购,3:紧急采购
+     */
+          private Integer type;
+          /**
+     * 采购计划名称
+     */
+          private String orderName;
+          /**
+     * 备注
+     */
+          private String remark;
+        /**
+     * 关键字
+     */
+  private String keyword;
+
+}

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java

@@ -29,6 +29,7 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbModelSpareBomDTO extends BaseDTO implements Serializable {
+    private String positionNo;
 
     /**
      * 主键

+ 77 - 0
platform-dao/src/main/java/com/platform/dao/entity/longyanpurchaseorder/LongYanPurchaseDetail.java

@@ -0,0 +1,77 @@
+package com.platform.dao.entity.longyanpurchaseorder;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+import javax.persistence.Transient;
+import java.math.BigDecimal;
+
+/**
+ * @Description 龙岩采购明细表实体类
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_long_yan_purchase_detail")
+public class LongYanPurchaseDetail implements Serializable{
+    private String no;
+    private String ggxh;
+    private String spareName;
+
+    /**
+     *
+     */
+        @Id
+    private String id;
+    /**
+     * 采购计划id
+     */
+    private String longYangPurchaseOrderId;
+    /**
+     * 备件id
+     */
+    private String spareId;
+    /**
+     * 数量
+     */
+    private BigDecimal num;
+    /**
+     *
+     */
+    private String createdUserId;
+    /**
+     *
+     */
+    private String createdUserName;
+    /**
+     *
+     */
+    private String updateUserId;
+    /**
+     *
+     */
+    private String updateUserName;
+    /**
+     *
+     */
+    private LocalDateTime createdTime;
+    /**
+     *
+     */
+    private LocalDateTime updateTime;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 82 - 0
platform-dao/src/main/java/com/platform/dao/entity/longyanpurchaseorder/LongYanPurchaseOrder.java

@@ -0,0 +1,82 @@
+package com.platform.dao.entity.longyanpurchaseorder;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+import javax.persistence.Transient;
+
+/**
+ * @Description 龙岩采购单表实体类
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_long_yan_purchase_order")
+public class LongYanPurchaseOrder implements Serializable{
+    private String positionNo;
+
+    /**
+     *
+     */
+        @Id
+    private String id;
+    /**
+     * 设备id
+     */
+    private String sbId;
+    /**
+     * 项目id
+     */
+    private String projectId;
+    /**
+     *
+     */
+    private String createdUserId;
+    /**
+     *
+     */
+    private String createdUserName;
+    /**
+     *
+     */
+    private LocalDateTime createdTime;
+    /**
+     *
+     */
+    private LocalDateTime updateTime;
+    /**
+     *
+     */
+    private String updateUserId;
+    /**
+     *
+     */
+    private String updateUserName;
+    /**
+     * 采购计划类型1:计划采购,2:临时采购,3:紧急采购
+     */
+    private Integer type;
+    /**
+     * 采购计划名称
+     */
+    private String orderName;
+    /**
+     * 备注
+     */
+    private String remark;
+
+   /**
+    * 数据权限
+    */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/longyanpurchaseorder/LongYanPurchaseDetailMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.longyanpurchaseorder;
+
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 龙岩采购明细表 mapper
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface LongYanPurchaseDetailMapper extends MyMapper<LongYanPurchaseDetail> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<LongYanPurchaseDetailVO> selectList(LongYanPurchaseDetailDTO dto);
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.longyanpurchaseorder;
+
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 龙岩采购单表 mapper
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface LongYanPurchaseOrderMapper extends MyMapper<LongYanPurchaseOrder> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<LongYanPurchaseOrderVO> selectList(LongYanPurchaseOrderDTO dto);
+
+}

+ 82 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/longyanpurchaseorder/ExportLongYanPurchaseDetailVO.java

@@ -0,0 +1,82 @@
+package com.platform.dao.vo.export.longyanpurchaseorder;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 龙岩采购明细表导出VO
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportLongYanPurchaseDetailVO implements Serializable {
+
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "1")
+      private String id;
+    
+    /**
+   * 采购计划id
+   */
+          @Excel(name = "采购计划id", orderNum = "2")
+      private String longYangPurchaseOrderId;
+    
+    /**
+   * 备件id
+   */
+          @Excel(name = "备件id", orderNum = "3")
+      private String spareId;
+    
+    /**
+   * 数量
+   */
+          @Excel(name = "数量", orderNum = "4")
+      private BigDecimal num;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "5")
+      private String createdUserId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "6")
+      private String createdUserName;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "7")
+      private String updateUserId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "8")
+      private String updateUserName;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "9")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "10")
+      private LocalDateTime updateTime;
+    
+  
+}

+ 93 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/longyanpurchaseorder/ExportLongYanPurchaseOrderVO.java

@@ -0,0 +1,93 @@
+package com.platform.dao.vo.export.longyanpurchaseorder;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 龙岩采购单表导出VO
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportLongYanPurchaseOrderVO implements Serializable {
+
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "1")
+      private String id;
+    
+    /**
+   * 设备id
+   */
+          @Excel(name = "设备id", orderNum = "2")
+      private String sbId;
+    
+    /**
+   * 项目id
+   */
+          @Excel(name = "项目id", orderNum = "3")
+      private String projectId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "4")
+      private String createdUserId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "5")
+      private String createdUserName;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "6")
+      private LocalDateTime createdTime;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "7")
+      private LocalDateTime updateTime;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "8")
+      private String updateUserId;
+    
+    /**
+   * 
+   */
+          @Excel(name = "", orderNum = "9")
+      private String updateUserName;
+    
+    /**
+   * 采购计划类型1:计划采购,2:临时采购,3:紧急采购
+   */
+          @Excel(name = "采购计划类型1:计划采购,2:临时采购,3:紧急采购", orderNum = "10")
+      private Integer type;
+    
+    /**
+   * 采购计划名称
+   */
+          @Excel(name = "采购计划名称", orderNum = "11")
+      private String orderName;
+    
+    /**
+   * 备注
+   */
+          @Excel(name = "备注", orderNum = "12")
+      private String remark;
+    
+  
+}

+ 72 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/longyanpurchaseorder/LongYanPurchaseDetailVO.java

@@ -0,0 +1,72 @@
+package com.platform.dao.vo.query.longyanpurchaseorder;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.math.BigDecimal;
+
+/**
+ * @Description 龙岩采购明细表VO结果类
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class LongYanPurchaseDetailVO extends BaseVO implements Serializable{
+    private String no;
+    private String ggxh;
+    private String spareName;
+
+    /**
+     *
+     */
+        private String id;
+        /**
+     * 采购计划id
+     */
+        private String longYangPurchaseOrderId;
+        /**
+     * 备件id
+     */
+        private String spareId;
+        /**
+     * 数量
+     */
+        private BigDecimal num;
+        /**
+     *
+     */
+        private String createdUserId;
+        /**
+     *
+     */
+        private String createdUserName;
+        /**
+     *
+     */
+        private String updateUserId;
+        /**
+     *
+     */
+        private String updateUserName;
+        /**
+     *
+     */
+        private LocalDateTime createdTime;
+        /**
+     *
+     */
+        private LocalDateTime updateTime;
+
+
+
+}

+ 78 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/longyanpurchaseorder/LongYanPurchaseOrderVO.java

@@ -0,0 +1,78 @@
+package com.platform.dao.vo.query.longyanpurchaseorder;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 龙岩采购单表VO结果类
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class LongYanPurchaseOrderVO extends BaseVO implements Serializable{
+
+    private String positionNo;
+
+    /**
+     *
+     */
+        private String id;
+        /**
+     * 设备id
+     */
+        private String sbId;
+        /**
+     * 项目id
+     */
+        private String projectId;
+        /**
+     *
+     */
+        private String createdUserId;
+        /**
+     *
+     */
+        private String createdUserName;
+        /**
+     *
+     */
+        private LocalDateTime createdTime;
+        /**
+     *
+     */
+        private LocalDateTime updateTime;
+        /**
+     *
+     */
+        private String updateUserId;
+        /**
+     *
+     */
+        private String updateUserName;
+        /**
+     * 采购计划类型1:计划采购,2:临时采购,3:紧急采购
+     */
+        private Integer type;
+        /**
+     * 采购计划名称
+     */
+        private String orderName;
+        /**
+     * 备注
+     */
+        private String remark;
+
+
+
+}

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbInfoVO.java

@@ -4,6 +4,7 @@ import com.platform.common.bean.BaseVO;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.dao.entity.part.PartInfo;
 import com.platform.dao.entity.upms.SysFile;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -25,6 +26,7 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbInfoVO extends BaseVO implements Serializable {
+    private List<LongYanPurchaseOrderVO> longYanPurchaseOrderVOS;
 
     /**
      * 强检:1,非强检:2

+ 88 - 0
platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseDetailMapper.xml

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper">
+    <sql id="Base_Column_List">
+                             menu.id,
+                                     menu.long_yang_purchase_order_id,
+                                     menu.spare_id,
+                                     menu.num,
+                                     menu.created_user_id,
+                                     menu.created_user_name,
+                                     menu.update_user_id,
+                                     menu.update_user_name,
+                                     menu.created_time,
+                                     menu.update_time,
+                                     menu.no,
+                                     menu.ggxh,
+                                     menu.spare_name
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         menu.long_yang_purchase_order_id,
+                                     menu.spare_id,
+                                     menu.num,
+                                                                                                                                                                                                                                                                                                </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and menu.id = #{id}
+                </if>
+                                                <if test="longYangPurchaseOrderId != null and longYangPurchaseOrderId != ''">
+                    and menu.long_yang_purchase_order_id = #{longYangPurchaseOrderId}
+                </if>
+                                                <if test="spareId != null and spareId != ''">
+                    and menu.spare_id = #{spareId}
+                </if>
+                                                <if test="num != null">
+                    and menu.num = #{num}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and menu.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="createdUserName != null and createdUserName != ''">
+                    and menu.created_user_name = #{createdUserName}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and menu.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="updateUserName != null and updateUserName != ''">
+                    and menu.update_user_name = #{updateUserName}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and menu.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and menu.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and menu.created_time = #{createdTime}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and menu.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and menu.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and menu.update_time = #{updateTime}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and menu.id like concat(concat('%',#{keyword}),'%')
+        </if>
+        <if test="no != null and no != ''">
+            and menu.no = #{no}
+        </if>
+        <if test="ggxh != null and ggxh != ''">
+            and menu.ggxh = #{ggxh}
+        </if>
+        <if test="spareName != null and spareName != ''">
+            and menu.spare_name = #{spareName}
+        </if>
+
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO" resultType="com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO">
+        select menu.*
+                                                                                                                                                                                                                        from t_long_yan_purchase_detail as menu
+                                                                                                                                                                                                                        <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 89 - 0
platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.xml

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseOrderMapper">
+    <sql id="Base_Column_List">
+                             menu.id,
+                                     menu.sb_id,
+                                     menu.project_id,
+                                     menu.created_user_id,
+                                     menu.created_user_name,
+                                     menu.created_time,
+                                     menu.update_time,
+                                     menu.update_user_id,
+                                     menu.update_user_name,
+                                     menu.type,
+                                     menu.order_name,
+                                     menu.remark,
+                                     menu.position_no
+                        </sql>
+    <sql id="Ref_Column_List">
+                                                                         menu.sb_id,
+                                     menu.project_id,
+                                                                                                                                                                                                                                                                                                             menu.type,
+                                     menu.order_name,
+                                     menu.remark
+                                </sql>
+    <sql id="List_Condition">
+                                    <if test="id != null and id != ''">
+                    and menu.id = #{id}
+                </if>
+                                                <if test="sbId != null and sbId != ''">
+                    and menu.sb_id = #{sbId}
+                </if>
+                                                <if test="projectId != null and projectId != ''">
+                    and menu.project_id = #{projectId}
+                </if>
+                                                <if test="createdUserId != null and createdUserId != ''">
+                    and menu.created_user_id = #{createdUserId}
+                </if>
+                                                <if test="createdUserName != null and createdUserName != ''">
+                    and menu.created_user_name = #{createdUserName}
+                </if>
+                                                <if test="createdTimeStart != null">
+                    and menu.created_time <![CDATA[>=]]>; #{createdTimeStart}
+                </if>
+                <if test="createdTimeEnd != null">
+                    and menu.created_time <![CDATA[<=]]> #{createdTimeEnd}
+                </if>
+                <if test="createdTime != null">
+                    and menu.created_time = #{createdTime}
+                </if>
+                                                <if test="updateTimeStart != null">
+                    and menu.update_time <![CDATA[>=]]>; #{updateTimeStart}
+                </if>
+                <if test="updateTimeEnd != null">
+                    and menu.update_time <![CDATA[<=]]> #{updateTimeEnd}
+                </if>
+                <if test="updateTime != null">
+                    and menu.update_time = #{updateTime}
+                </if>
+                                                <if test="updateUserId != null and updateUserId != ''">
+                    and menu.update_user_id = #{updateUserId}
+                </if>
+                                                <if test="updateUserName != null and updateUserName != ''">
+                    and menu.update_user_name = #{updateUserName}
+                </if>
+                                                <if test="type != null">
+                    and menu.type = #{type}
+                </if>
+                                                <if test="orderName != null and orderName != ''">
+                    and menu.order_name = #{orderName}
+                </if>
+                                                <if test="remark != null and remark != ''">
+                    and menu.remark = #{remark}
+                </if>
+                            <if test="keyword != null and keyword != ''">
+            and menu.id like concat(concat('%',#{keyword}),'%')
+        </if>
+        <if test="positionNo != null and positionNo != ''">
+            and menu.position_no= #{positionNo}
+        </if>
+    </sql>
+    <select id="selectList" parameterType="com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO" resultType="com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO">
+        select menu.*
+                                                                                                                                                                                                                                                                from t_long_yan_purchase_order as menu
+                                                                                                                                                                                                                                                                <where>
+            <include refid="List_Condition" />
+        </where>
+    </select>
+</mapper>

+ 141 - 0
platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseDetailController.java

@@ -0,0 +1,141 @@
+package com.platform.rest.controller.longyanpurchaseorder;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
+import com.platform.service.longyanpurchaseorder.LongYanPurchaseDetailService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.longyanpurchaseorder.ExportLongYanPurchaseDetailVO;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 龙岩采购明细表 控制器
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/longyanpurchaseorder/detail")
+public class LongYanPurchaseDetailController {
+
+  private final  LongYanPurchaseDetailService longYanPurchaseDetailService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<LongYanPurchaseDetail> getById(@PathVariable("id") String id){
+      return new R<>(longYanPurchaseDetailService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param longYanPurchaseDetailDTO 龙岩采购明细表DTO
+   * @return R
+   */
+  @SysLog("新增龙岩采购明细表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody LongYanPurchaseDetailDTO longYanPurchaseDetailDTO) {
+      return new R<>(longYanPurchaseDetailService.saveModelByDTO(longYanPurchaseDetailDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param longYanPurchaseDetailDTO 龙岩采购明细表DTO
+   * @return R
+   */
+  @SysLog("修改龙岩采购明细表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody LongYanPurchaseDetailDTO longYanPurchaseDetailDTO) {
+      longYanPurchaseDetailService.modModelByDTO(longYanPurchaseDetailDTO);
+      return new R<>();
+  }
+
+
+
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除龙岩采购明细表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-del')")
+  public R removeById(@PathVariable String id){
+    longYanPurchaseDetailService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除龙岩采购明细表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        longYanPurchaseDetailService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param longYanPurchaseDetailDTO 龙岩采购明细表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<LongYanPurchaseDetailVO>> query(LongYanPurchaseDetailDTO longYanPurchaseDetailDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(longYanPurchaseDetailService.selectPageList(longYanPurchaseDetailDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param longYanPurchaseDetailDTO 龙岩采购明细表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(LongYanPurchaseDetailDTO longYanPurchaseDetailDTO) {
+      return new R<>(longYanPurchaseDetailService.getModelListByDTO(longYanPurchaseDetailDTO));
+  }
+
+  /**
+     * 龙岩采购明细表导出
+     *
+     * @param longYanPurchaseDetailDTO 龙岩采购明细表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("龙岩采购明细表导出")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-export')")
+  public void export(HttpServletResponse response, LongYanPurchaseDetailDTO longYanPurchaseDetailDTO) {
+    List<LongYanPurchaseDetail> list = longYanPurchaseDetailService.getModelListByDTO(longYanPurchaseDetailDTO);
+    ExcelUtil.exportResponseDict(response, ExportLongYanPurchaseDetailVO.class, BeanConverterUtil.copyListProperties(list, ExportLongYanPurchaseDetailVO.class), "龙岩采购明细表");
+  }
+
+}

+ 153 - 0
platform-rest/src/main/java/com/platform/rest/controller/longyanpurchaseorder/LongYanPurchaseOrderController.java

@@ -0,0 +1,153 @@
+package com.platform.rest.controller.longyanpurchaseorder;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
+import com.platform.dao.dto.sb.SbInfoDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
+import com.platform.service.longyanpurchaseorder.LongYanPurchaseOrderService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.longyanpurchaseorder.ExportLongYanPurchaseOrderVO;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 龙岩采购单表 控制器
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/longyanpurchaseorder/order")
+public class LongYanPurchaseOrderController {
+
+  private final  LongYanPurchaseOrderService longYanPurchaseOrderService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<LongYanPurchaseOrder> getById(@PathVariable("id") String id){
+      return new R<>(longYanPurchaseOrderService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @return R
+   */
+  @SysLog("新增龙岩采购单表")
+  @PostMapping
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-add')")
+  public R save(@Validated({AddGroup.class}) @RequestBody LongYanPurchaseOrderDTO longYanPurchaseOrderDTO) {
+      return new R<>(longYanPurchaseOrderService.saveModelByDTO(longYanPurchaseOrderDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @return R
+   */
+  @SysLog("修改龙岩采购单表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody LongYanPurchaseOrderDTO longYanPurchaseOrderDTO) {
+      longYanPurchaseOrderService.modModelByDTO(longYanPurchaseOrderDTO);
+      return new R<>();
+  }
+
+
+
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除龙岩采购单表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-del')")
+  public R removeById(@PathVariable String id){
+    longYanPurchaseOrderService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除龙岩采购单表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        longYanPurchaseOrderService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<LongYanPurchaseOrderVO>> query(LongYanPurchaseOrderDTO longYanPurchaseOrderDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(longYanPurchaseOrderService.selectPageList(longYanPurchaseOrderDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(LongYanPurchaseOrderDTO longYanPurchaseOrderDTO) {
+      return new R<>(longYanPurchaseOrderService.getModelListByDTO(longYanPurchaseOrderDTO));
+  }
+
+  /**
+     * 龙岩采购单表导出
+     *
+     * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("龙岩采购单表导出")
+  @PreAuthorize("@pms.hasPermission('longyanpurchaseorder-menu-export')")
+  public void export(HttpServletResponse response, LongYanPurchaseOrderDTO longYanPurchaseOrderDTO) {
+    List<LongYanPurchaseOrder> list = longYanPurchaseOrderService.getModelListByDTO(longYanPurchaseOrderDTO);
+    ExcelUtil.exportResponseDict(response, ExportLongYanPurchaseOrderVO.class, BeanConverterUtil.copyListProperties(list, ExportLongYanPurchaseOrderVO.class), "龙岩采购单表");
+  }
+
+  /**
+   * 采购记录按sb统计
+   *
+   * @param longYanPurchaseOrderDTO 龙岩采购单表DTO
+   * @return R
+   */
+  @GetMapping("/getPurchaseRecord")
+  public R getPurchaseRecord(SbInfoDTO sbInfoDTO , @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+    return new R<>(longYanPurchaseOrderService.getPurchaseRecord(sbInfoDTO,pageNum,pageSize));
+  }
+
+}

+ 22 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbModelSpareBomController.java

@@ -13,9 +13,12 @@ import com.platform.dao.dto.lubricationmanage.LubricationPlanStandardRelationDTO
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.entity.lubricationmanage.LubricationPlanStandardRelation;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbModel;
 import com.platform.dao.entity.sb.SbModelSpareBom;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
+import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.lubricationmanage.ExportLubricationPlanStandardRelationVO;
 import com.platform.dao.vo.export.sb.ExportSbModelSpareBomVO;
@@ -34,6 +37,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -50,6 +54,8 @@ public class SbModelSpareBomController {
   private final SbModelSpareBomService sbModelSpareBomService;
   private final SbModelService sbModelService;
   private final SparePartInfoService sparePartInfoService;
+  private final SbInfoMapper sbInfoMapper;
+  private final SbModelSpareBomMapper sbModelSpareBomMapper;
 
   /**
    * 通过id查询单条记录
@@ -73,6 +79,22 @@ public class SbModelSpareBomController {
         return new R<>(sbModelSpareBomService.getCountByDTO(sbModelSpareBomDTO));
     }
 
+    @GetMapping("/getBomByPositionNo")
+    public R getBomByPositionNo(SbModelSpareBomDTO sbModelSpareBomDTO) {
+        SbInfo sbInfo = new SbInfo();
+        sbInfo.setPositionNo(sbModelSpareBomDTO.getPositionNo());
+        List<SbInfo> sbInfos = sbInfoMapper.select(sbInfo);
+        List<SbModelSpareBom> sbModelSpareBoms = new ArrayList<>();
+        if (sbInfos!=null&&sbInfos.size()==1){
+            SbModelSpareBom bom = new SbModelSpareBom();
+            bom.setSbId(sbInfos.get(0).getId());
+            sbModelSpareBoms = sbModelSpareBomMapper.select(bom);
+        }else {
+            throw new BusinessException("位号有误,请查验!");
+        }
+        return new R<>(sbModelSpareBoms);
+    }
+
   /**
    * 新增记录
    *

+ 35 - 0
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/LongYanPurchaseDetailService.java

@@ -0,0 +1,35 @@
+package com.platform.service.longyanpurchaseorder;
+
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 龙岩采购明细表 service
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface LongYanPurchaseDetailService extends IBaseService<LongYanPurchaseDetail, LongYanPurchaseDetailDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<LongYanPurchaseDetailVO> selectPageList(LongYanPurchaseDetailDTO record, int pageNum, int pageSize);
+
+                                                                                                                            }

+ 41 - 0
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/LongYanPurchaseOrderService.java

@@ -0,0 +1,41 @@
+package com.platform.service.longyanpurchaseorder;
+
+import com.platform.dao.dto.sb.SbInfoDTO;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.vo.sb.SbInfoVO;
+import com.platform.service.base.IBaseService;
+import org.omg.CORBA.INTERNAL;
+
+import java.util.List;
+
+/**
+ * @Description 龙岩采购单表 service
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface LongYanPurchaseOrderService extends IBaseService<LongYanPurchaseOrder, LongYanPurchaseOrderDTO> {
+    AbstractPageResultBean<SbInfoVO> getPurchaseRecord(SbInfoDTO dto, Integer pageNum, Integer pageSize);
+
+
+    /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<LongYanPurchaseOrderVO> selectPageList(LongYanPurchaseOrderDTO record, int pageNum, int pageSize);
+
+                                                                                                                                                    }

+ 50 - 0
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseDetailServiceImpl.java

@@ -0,0 +1,50 @@
+package com.platform.service.longyanpurchaseorder.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
+import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper;
+import com.platform.service.longyanpurchaseorder.LongYanPurchaseDetailService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Description 龙岩采购明细表 service 实现类
+ * @Author lsq
+ * @Date 2023-07-11 16:58:52
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("longYanPurchaseDetailService")
+public class LongYanPurchaseDetailServiceImpl extends BaseServiceImpl<LongYanPurchaseDetailMapper, LongYanPurchaseDetail, LongYanPurchaseDetailDTO> implements LongYanPurchaseDetailService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<LongYanPurchaseDetail> weekend = new Weekend<>(LongYanPurchaseDetail.class);
+        WeekendCriteria<LongYanPurchaseDetail, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(LongYanPurchaseDetail::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<LongYanPurchaseDetailVO> selectPageList(LongYanPurchaseDetailDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<LongYanPurchaseDetail> selectPageInfo(LongYanPurchaseDetailDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                                                            }

+ 145 - 0
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseOrderServiceImpl.java

@@ -0,0 +1,145 @@
+package com.platform.service.longyanpurchaseorder.impl;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.exception.BusinessException;
+import com.platform.common.model.UserInfo;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.IdGeneratorUtils;
+import com.platform.common.util.SecurityUtils;
+import com.platform.dao.bean.MyPage;
+import com.github.pagehelper.PageHelper;
+import com.platform.dao.bean.MyVOPage;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.dto.sb.SbInfoDTO;
+import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.dao.dto.store.OutStoreDetailDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
+import com.platform.dao.entity.repair.RepairApplicationForm;
+import com.platform.dao.entity.sb.SbModelSpareBom;
+import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper;
+import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
+import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseOrderMapper;
+import com.platform.dao.vo.sb.SbInfoVO;
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
+import com.platform.service.longyanpurchaseorder.LongYanPurchaseOrderService;
+import org.springframework.stereotype.Service;
+import com.platform.service.base.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+import lombok.AllArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description 龙岩采购单表 service 实现类
+ * @Author lsq
+ * @Date 2023-07-11 11:07:21
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("longYanPurchaseOrderService")
+public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurchaseOrderMapper, LongYanPurchaseOrder, LongYanPurchaseOrderDTO> implements LongYanPurchaseOrderService {
+    private LongYanPurchaseDetailMapper longYanPurchaseDetailMapper;
+    private SbModelSpareBomMapper sbModelSpareBomMapper;
+    private SbInfoMapper sbInfoMapper;
+    @Override
+    public LongYanPurchaseOrder saveModelByDTO(LongYanPurchaseOrderDTO model) {
+        List<LongYanPurchaseDetailDTO> detailDTOS = model.getDetailDTOS();
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        for (LongYanPurchaseDetailDTO detailDTO : detailDTOS) {
+            detailDTO.setId(IdGeneratorUtils.getObjectId());
+            detailDTO.setCreatedTime(LocalDateTime.now());
+            detailDTO.setCreatedUserId(userInfo.getUserId());
+            detailDTO.setCreatedUserName(userInfo.getUsername());
+        }
+
+        longYanPurchaseDetailMapper.insertListforComplex(BeanConverterUtil.copyListProperties(detailDTOS, LongYanPurchaseDetail.class));
+        SbModelSpareBomDTO sbModelSpareBomDTO = new SbModelSpareBomDTO();
+        sbModelSpareBomDTO.setSbId(model.getSbId());
+        List<SbModelSpareBomVO> bomVOS = sbModelSpareBomMapper.selectVOList(sbModelSpareBomDTO);
+        boolean flag = false;
+        List<SbModelSpareBom> boms = new ArrayList<>();
+        for (LongYanPurchaseDetailDTO detailDTO : detailDTOS) {
+            flag = false;
+            if (bomVOS != null) {
+                for (SbModelSpareBomVO vo : bomVOS) {
+                    if (vo.getSpareId().equals(detailDTO.getSpareId())) {
+                        flag = true;
+                        break;
+                    }
+                }
+                if (!flag) {
+                    packageBom(boms,detailDTO, model.getSbId());
+                }
+            } else {
+                packageBom(boms, detailDTO, model.getSbId());
+            }
+        }
+        sbModelSpareBomMapper.insertListforComplex(boms);
+        return super.saveModelByDTO(model);
+    }
+
+    private void packageBom(List<SbModelSpareBom> boms, LongYanPurchaseDetailDTO detailDTO,String sbId){
+        SbModelSpareBom sbModelSpareBom = new SbModelSpareBom();
+        sbModelSpareBom.setSpareId(detailDTO.getSpareId());
+        sbModelSpareBom.setSbId(sbId);
+        sbModelSpareBom.setNum(new BigDecimal(1));
+        sbModelSpareBom.setId(IdGeneratorUtils.getObjectId());
+        sbModelSpareBom.setGgxh(detailDTO.getGgxh());
+        sbModelSpareBom.setSpareName(detailDTO.getSpareName());
+        sbModelSpareBom.setModelId(sbId);
+        sbModelSpareBom.setNo(detailDTO.getNo());
+        boms.add(sbModelSpareBom);
+        }
+
+
+    @Override
+    public AbstractPageResultBean<SbInfoVO> getPurchaseRecord(SbInfoDTO dto, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum,pageSize);
+        List<SbInfoVO> sbInfoVOS = sbInfoMapper.selectVOList(dto);
+        List<String> sbIds = sbInfoVOS.stream().map(SbInfoVO::getId).collect(Collectors.toList());
+        LongYanPurchaseOrderDTO orderDTO = new LongYanPurchaseOrderDTO();
+        orderDTO.setSbIds(sbIds);
+        List<LongYanPurchaseOrderVO> orderVOS = mapper.selectList(orderDTO);
+        for (SbInfoVO vo:sbInfoVOS){
+            List<LongYanPurchaseOrderVO> orderVOList = new ArrayList<>();
+            for (LongYanPurchaseOrderVO vo1:orderVOS){
+                if (vo.getId().equals(vo1.getSbId())){
+                    orderVOList.add(vo1);
+                }
+            }
+            vo.setLongYanPurchaseOrderVOS(orderVOList);
+        }
+        return new MyPage(sbInfoVOS);
+    }
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<LongYanPurchaseOrder> weekend = new Weekend<>(LongYanPurchaseOrder.class);
+        WeekendCriteria<LongYanPurchaseOrder, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(LongYanPurchaseOrder::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<LongYanPurchaseOrderVO> selectPageList(LongYanPurchaseOrderDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public AbstractPageResultBean<LongYanPurchaseOrder> selectPageInfo(LongYanPurchaseOrderDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+                                                                                                                                                    }

+ 62 - 5
platform-service/src/main/java/com/platform/service/store/impl/OutStoreFormServiceImpl.java

@@ -11,22 +11,27 @@ import com.platform.common.model.UserInfo;
 import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.project.ProjectDTO;
+import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.store.OutStoreDetailDTO;
 import com.platform.dao.dto.store.OutStoreFormDTO;
 import com.platform.dao.dto.store.SparePickFormDTO;
 import com.platform.dao.entity.project.Project;
 import com.platform.dao.entity.repair.RepairApplicationForm;
+import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.entity.sb.SbModelSpareBom;
 import com.platform.dao.entity.sb.SbOil;
 import com.platform.dao.entity.store.*;
 import com.platform.dao.enums.*;
 import com.platform.dao.mapper.project.ProjectMapper;
 import com.platform.dao.mapper.repair.RepairApplicationFormMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.sb.SbPositionMapper;
 import com.platform.dao.mapper.store.*;
 import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.query.project.ProjectVO;
 import com.platform.dao.vo.query.store.*;
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.event.WorkplaceBacklogEvent;
 import com.platform.service.store.OutStoreDetailService;
@@ -71,6 +76,7 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
     private SysUserRoleService sysUserService;
     private OutStoreDetailService outStoreDetailService;
     private ProjectMapper projectMapper;
+    private SbModelSpareBomMapper sbModelSpareBomMapper;
 
     @Override
     public List<OutStoreFormVO> selectbyRepairForm(String id) {
@@ -291,7 +297,7 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         // selectCount会有分页参数,偶尔会出现bug,修复
         BigDecimal countNum = mapper.getOutStoreFormCount1(new OutStoreFormDTO());
         Integer count = 0;
-        if(countNum != null){
+        if (countNum != null) {
             count = countNum.intValue();
         }
         /*Weekend<OutStoreForm> weekend = new Weekend<>(OutStoreForm.class);
@@ -305,7 +311,7 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         model.setUserInfo(userInfo);
         // 出库单详情
         List<OutStoreDetailDTO> detailList = model.getDetailList();
-        if (project!=null) {
+        if (project != null) {
             for (OutStoreDetailDTO detailDTO : detailList) {
                 detailDTO.setProjectNo(project.getParentNo());
                 detailDTO.setProjectName(project.getParentName());
@@ -323,8 +329,8 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         model.setStoreId(detailList.get(0).getStoreId());
         model.setStoreName(detailList.get(0).getStoreName());
         model.setPickId(model.getPickId());
-        if(project != null){
-            model.setProjectName(project.getParentName()+"->"+project.getName());
+        if (project != null) {
+            model.setProjectName(project.getParentName() + "->" + project.getName());
         }
         OutStoreForm outStoreForm = super.saveModelByDTO(model);
         // 插
@@ -340,10 +346,61 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
             storeDetail.setId(IdGeneratorUtils.getObjectId());
             detailMapper.insertSelective(storeDetail);
         }
-        // mapper.updateByPrimaryKey(outStoreForm);
+
+        //需将申领的备件与设备绑定bom关系
+        if (model.getPickId() != null) {
+            RepairApplicationForm form = new RepairApplicationForm();
+            form.setId(model.getPickId());
+            form = repairApplicationFormMapper.selectOne(form);
+            List<SbModelSpareBom> boms = new ArrayList<>();
+            if (form != null && form.getSbId() != null) {
+                SbModelSpareBomDTO sbModelSpareBomDTO = new SbModelSpareBomDTO();
+                sbModelSpareBomDTO.setSbId(form.getSbId());
+                List<SbModelSpareBomVO> bomVOS = sbModelSpareBomMapper.selectVOList(sbModelSpareBomDTO);
+                boolean flag = false;
+                for (OutStoreDetailDTO detailDTO : detailList) {
+                    flag = false;
+                    if (bomVOS != null) {
+                        for (SbModelSpareBomVO vo : bomVOS) {
+                            if (vo.getSpareId().equals(detailDTO.getSpareId())) {
+                                flag = true;
+                                break;
+                            }
+                        }
+                        if (!flag) {
+                            packageBom(boms,detailDTO,form.getSbId());
+                        }
+                    }else {
+                        packageBom(boms,detailDTO,form.getSbId());
+                    }
+
+                }
+                sbModelSpareBomMapper.insertListforComplex(boms);
+//                sbModelSpareBomMapper.insertList(boms);
+
+                // mapper.updateByPrimaryKey(outStoreForm);
+
+            }else {
+                throw new BusinessException("系统出错,请联系管理员!");
+            }
+        }
         return outStoreForm;
     }
 
+
+    private void packageBom(List<SbModelSpareBom> boms,OutStoreDetailDTO detailDTO,String sbId){
+        SbModelSpareBom sbModelSpareBom = new SbModelSpareBom();
+        sbModelSpareBom.setSpareId(detailDTO.getSpareId());
+        sbModelSpareBom.setSbId(sbId);
+        sbModelSpareBom.setNum(new BigDecimal(1));
+        sbModelSpareBom.setId(IdGeneratorUtils.getObjectId());
+        sbModelSpareBom.setGgxh(detailDTO.getGgxh());
+        sbModelSpareBom.setSpareName(detailDTO.getSpareName());
+        sbModelSpareBom.setModelId(sbId);
+        sbModelSpareBom.setNo(detailDTO.getSpareNo());
+        boms.add(sbModelSpareBom);
+    }
+
     @Override
     public OutStoreForm saveModelByDTOYYBack(OutStoreFormDTO outStoreFormDTO) {
         if(StringUtils.isBlank(outStoreFormDTO.getOutStoreFormId())){