1 year ago
parent
commit
c5b472c3cc
19 changed files with 778 additions and 115 deletions
  1. 42 27
      platform-dao/src/main/java/com/platform/dao/vo/export/sqarepartmanage/ExportSparePartInfoVO.java
  2. 28 22
      platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportInStoreDetailVO.java
  3. 24 10
      platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportInStoreFormVO.java
  4. 21 23
      platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportOutStoreDetailVO.java
  5. 24 10
      platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportOutStoreFormVO.java
  6. 4 0
      platform-dao/src/main/java/com/platform/dao/vo/query/sparepartmanage/SparePartInfoVO.java
  7. 2 1
      platform-dao/src/main/java/com/platform/dao/vo/query/store/InStoreFormVO.java
  8. 1 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreFormVO.java
  9. 1 0
      platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartInfoMapper.xml
  10. 2 1
      platform-dao/src/main/resources/mapper/store/InStoreFormMapper.xml
  11. 83 0
      platform-rest/src/main/java/com/platform/rest/controller/report/InStoreDetailReportController.java
  12. 82 0
      platform-rest/src/main/java/com/platform/rest/controller/report/OutStoreDetailReportController.java
  13. 47 6
      platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartInfoController.java
  14. 81 0
      platform-rest/src/main/java/com/platform/rest/controller/store/InStoreFormController.java
  15. 87 2
      platform-rest/src/main/java/com/platform/rest/controller/store/OutStoreFormController.java
  16. 30 0
      platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java
  17. 65 0
      platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartInfoServiceImpl.java
  18. 75 8
      platform-service/src/main/java/com/platform/service/store/impl/InStoreFormServiceImpl.java
  19. 79 5
      platform-service/src/main/java/com/platform/service/store/impl/OutStoreFormServiceImpl.java

+ 42 - 27
platform-dao/src/main/java/com/platform/dao/vo/export/sqarepartmanage/ExportSparePartInfoVO.java

@@ -26,18 +26,15 @@ public class ExportSparePartInfoVO implements Serializable {
     @Excel(name = "主键", orderNum = "1")
     private String id;
 
-    /**
-     * 大类编码名称
-     */
-    @Excel(name = "备件类别", orderNum = "2")
-    private String typeName;
-
     /**
      * 备件编码
      */
-    @Excel(name = "备件编码", orderNum = "3")
+    @Excel(name = "备件编码", orderNum = "2")
     private String no;
 
+    @Excel(name = "品牌", orderNum = "3")
+    private String brand;
+
     /**
      * 名称
      */
@@ -50,39 +47,61 @@ public class ExportSparePartInfoVO implements Serializable {
     @Excel(name = "规格型号", orderNum = "5")
     private String ggxh;
 
-    @Excel(name = "品牌", orderNum = "6")
-    private String brand;
 
-    /**
-     * 单价
-     */
-    @Excel(name = "备件价值", orderNum = "7")
-    private Double initialValue;
 
     /**
      * 计量单位: 1-件;2-台;3-条; 4-个
      */
-    @Excel(name = "计量单位", orderNum = "8")
+    @Excel(name = "单位", orderNum = "6")
     private String unit;
 
+    @Excel(name = "库位", orderNum = "7")
+    private String storeName;
+
     /**
      * 当前库存
      */
-    @Excel(name = "当前库存", orderNum = "9")
+    @Excel(name = "当前库存", orderNum = "8")
     private BigDecimal currentStock;
 
     /**
      * 最高库存
      */
-    @Excel(name = "最高库存", orderNum = "10")
+    @Excel(name = "最高库存", orderNum = "9")
     private BigDecimal maxStock;
 
     /**
      * 最低库存
      */
-    @Excel(name = "最低库存", orderNum = "11")
+    @Excel(name = "最低库存", orderNum = "10")
     private BigDecimal minStock;
 
+    /**
+     * 备件等级:1-一级; 2-二级;3-三级
+     */
+    @Excel(name = "等级", orderNum = "11", dicCode = "SPARE_PART_INFO_LEVEL")
+    private Integer level;
+
+    /**
+     * 单价
+     */
+    @Excel(name = "备件价值", orderNum = "12")
+    private Double initialValue;
+
+
+    /**
+     * 大类编码名称
+     */
+    @Excel(name = "备件类别", orderNum = "13")
+    private String typeName;
+
+
+
+
+
+
+
+
 
 //    /**
 //     * 寿命周期:月
@@ -90,11 +109,7 @@ public class ExportSparePartInfoVO implements Serializable {
 //    @Excel(name = "寿命周期(月)", orderNum = "11")
 //    private BigDecimal agePeriod;
 
-   /**
-     * 备件等级:1-一级; 2-二级;3-三级
-     */
-    @Excel(name = "备件等级", orderNum = "12", dicCode = "SPARE_PART_INFO_LEVEL")
-    private Integer level;
+
     /**
      * 使用周期:月
      */
@@ -109,16 +124,16 @@ public class ExportSparePartInfoVO implements Serializable {
     /**
      * 生产商
      */
-    @Excel(name = "生产商", orderNum = "13")
+    @Excel(name = "生产商", orderNum = "14")
     private String producerName;
 
-    @Excel(name = "用途", orderNum = "14",dicCode = "SPARE_USE_TYPE")
+    @Excel(name = "用途", orderNum = "15",dicCode = "SPARE_USE_TYPE")
     private Integer yt;
 
-    @Excel(name = "关联设备号", orderNum = "15")
+    @Excel(name = "关联设备号", orderNum = "16")
     private String sbNo;
 
-    @Excel(name = "备注", orderNum = "16")
+    @Excel(name = "备注", orderNum = "17")
     private String remark;
 
 //    @Excel(name = "创建时间", orderNum = "16")

+ 28 - 22
platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportInStoreDetailVO.java

@@ -42,81 +42,87 @@ public class ExportInStoreDetailVO implements Serializable {
   /**
    * 计量单位: 1-件;2-台;3-条; 4-个
    */
-  @Excel(name = "计量单位", orderNum = "5")
+  @Excel(name = "单位", orderNum = "5")
   private String unit;
 
   /**
    * 入库数量
    */
-  @Excel(name = "入库数", orderNum = "6")
+  @Excel(name = "入库数", orderNum = "6")
   private BigDecimal totalNum;
 
-  /**
-   * 创建人
-   */
-  @Excel(name = "创建人", orderNum = "7")
-  private String createdUserName;
+//  /**
+//   * 创建人
+//   */
+//  @Excel(name = "创建人", orderNum = "7")
+//  private String createdUserName;
+//
+//  /**
+//   * 创建日期
+//   */
+//  @Excel(name = "创建日期", orderNum = "8")
+//  private LocalDateTime createdTime;
 
-  /**
-   * 创建日期
-   */
-  @Excel(name = "创建日期", orderNum = "8")
-  private LocalDateTime createdTime;
+  @Excel(name = "库位", orderNum = "7")
+  private String storeName;
 
   /**
    * 当前库存
    */
-  @Excel(name = "当前库存", orderNum = "9")
+  @Excel(name = "当前库存", orderNum = "8")
   private BigDecimal currentStock;
 
   /**
    * 最高库存
    */
-  @Excel(name = "最高库存", orderNum = "10")
+  @Excel(name = "最高库存", orderNum = "9")
   private BigDecimal maxStock;
 
   /**
    * 最低库存
    */
-  @Excel(name = "最低库存", orderNum = "11")
+  @Excel(name = "最低库存", orderNum = "10")
   private BigDecimal minStock;
 
   /**
    * 备件等级:1-一级; 2-二级;3-三级
    */
-  @Excel(name = "备件等级", orderNum = "12", dicCode = "SPARE_PART_INFO_LEVEL")
+  @Excel(name = "备件等级", orderNum = "11", dicCode = "SPARE_PART_INFO_LEVEL")
   private Integer level;
 
   /**
    * 大类编码名称
    */
-  @Excel(name = "备件类别", orderNum = "13")
+  @Excel(name = "备件类别", orderNum = "12")
   private String typeName;
 
   /**
    * 单价
    */
-  @Excel(name = "备件价值", orderNum = "14")
+  @Excel(name = "备件价值", orderNum = "13")
   private Double initialValue;
 
   /**
    * 生产商
    */
-  @Excel(name = "生产商", orderNum = "15")
+  @Excel(name = "生产商", orderNum = "14")
   private String producerName;
 
   /**
    * 主键
    */
-  @Excel(name = "主键", orderNum = "16")
+  @Excel(name = "主键", orderNum = "15")
   private String id;
 
-  @Excel(name = "备件id", orderNum = "17")
+  @Excel(name = "备件id", orderNum = "16")
   private String spareId;
 
-  @Excel(name = "用途", orderNum = "18",dicCode = "SPARE_USE_TYPE")
+  @Excel(name = "用途", orderNum = "17",dicCode = "SPARE_USE_TYPE")
   private String yt;
 
+  @Excel(name = "关联设备号", orderNum = "18")
+  private String sbNo;
+
   //    /**
 //   * 入库单id
 //   */

+ 24 - 10
platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportInStoreFormVO.java

@@ -54,7 +54,7 @@ public class ExportInStoreFormVO implements Serializable {
   /**
    * 计量单位: 1-件;2-台;3-条; 4-个
    */
-  @Excel(name = "计量单位", orderNum = "7")
+  @Excel(name = "单位", orderNum = "7")
   private String unit;
 
   /**
@@ -69,58 +69,72 @@ public class ExportInStoreFormVO implements Serializable {
   @Excel(name = "创建日期", orderNum = "9")
   private LocalDateTime createdTime;
 
+
+  @Excel(name = "库位", orderNum = "10")
+  private String storeName;
+
   /**
    * 当前库存
    */
-  @Excel(name = "当前库存", orderNum = "10")
+  @Excel(name = "当前库存", orderNum = "11")
   private BigDecimal currentStock;
 
   /**
    * 最高库存
    */
-  @Excel(name = "最高库存", orderNum = "11")
+  @Excel(name = "最高库存", orderNum = "12")
   private BigDecimal maxStock;
 
   /**
    * 最低库存
    */
-  @Excel(name = "最低库存", orderNum = "12")
+  @Excel(name = "最低库存", orderNum = "13")
   private BigDecimal minStock;
 
   /**
    * 备件等级:1-一级; 2-二级;3-三级
    */
-  @Excel(name = "备件等级", orderNum = "13", dicCode = "SPARE_PART_INFO_LEVEL")
+  @Excel(name = "备件等级", orderNum = "14", dicCode = "SPARE_PART_INFO_LEVEL")
   private Integer level;
 
   /**
    * 大类编码名称
    */
-  @Excel(name = "备件类别", orderNum = "14")
+  @Excel(name = "备件类别", orderNum = "15")
   private String typeName;
 
   /**
    * 单价
    */
-  @Excel(name = "备件价值", orderNum = "15")
+  @Excel(name = "备件价值", orderNum = "16")
   private Double initialValue;
 
+
+  @Excel(name = "入库数量", orderNum = "17")
+  private Integer inNum;
+
   /**
    * 生产商
    */
-  @Excel(name = "生产商", orderNum = "16")
+  @Excel(name = "生产商", orderNum = "18")
   private String producerName;
 
+  @Excel(name = "用途", orderNum = "19",dicCode = "SPARE_USE_TYPE")
+  private Integer yt;
+
+  @Excel(name = "关联设备号", orderNum = "20")
+  private String sbNo;
+
     /**
    * 主键
    */
-  @Excel(name = "主键", orderNum = "17")
+  @Excel(name = "主键", orderNum = "21")
   private String id;
 
     /**
    * 备注
    */
-  @Excel(name = "备注", orderNum = "18")
+  @Excel(name = "备注", orderNum = "22")
   private String remark;
 
 

+ 21 - 23
platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportOutStoreDetailVO.java

@@ -45,77 +45,75 @@ public class ExportOutStoreDetailVO implements Serializable {
   @Excel(name = "计量单位", orderNum = "5")
   private String unit;
 
+
+  @Excel(name = "库位", orderNum = "6")
+  private String storeName;
+
   /**
    * 入库数量
    */
-  @Excel(name = "入库数量", orderNum = "6")
+  @Excel(name = "出库总数", orderNum = "7")
   private BigDecimal totalNum;
 
-  /**
-   * 创建人
-   */
-  @Excel(name = "创建人", orderNum = "7")
-  private String createdUserName;
-
-  /**
-   * 创建日期
-   */
-  @Excel(name = "创建日期", orderNum = "8")
-  private LocalDateTime createdTime;
 
   /**
    * 当前库存
    */
-  @Excel(name = "当前库存", orderNum = "9")
+  @Excel(name = "当前库存", orderNum = "8")
   private BigDecimal currentStock;
 
   /**
    * 最高库存
    */
-  @Excel(name = "最高库存", orderNum = "10")
+  @Excel(name = "最高库存", orderNum = "9")
   private BigDecimal maxStock;
 
   /**
    * 最低库存
    */
-  @Excel(name = "最低库存", orderNum = "11")
+  @Excel(name = "最低库存", orderNum = "10")
   private BigDecimal minStock;
 
   /**
    * 备件等级:1-一级; 2-二级;3-三级
    */
-  @Excel(name = "备件等级", orderNum = "12", dicCode = "SPARE_PART_INFO_LEVEL")
+  @Excel(name = "等级", orderNum = "11", dicCode = "SPARE_PART_INFO_LEVEL")
   private Integer level;
 
   /**
    * 大类编码名称
    */
-  @Excel(name = "备件类别", orderNum = "13")
+  @Excel(name = "备件类别", orderNum = "12")
   private String typeName;
 
   /**
    * 单价
    */
-  @Excel(name = "备件价值", orderNum = "14")
+  @Excel(name = "备件价值", orderNum = "13")
   private Double initialValue;
 
   /**
    * 生产商
    */
-  @Excel(name = "生产商", orderNum = "15")
+  @Excel(name = "生产商", orderNum = "14")
   private String producerName;
 
+  @Excel(name = "用途", orderNum = "15",dicCode = "SPARE_USE_TYPE")
+  private String yt;
+
+  @Excel(name = "关联设备号", orderNum = "16")
+  private String sbNo;
+
   /**
    * 主键
    */
-  @Excel(name = "主键", orderNum = "16")
+  @Excel(name = "主键", orderNum = "17")
   private String id;
 
-  @Excel(name = "备件id", orderNum = "17")
+  @Excel(name = "备件id", orderNum = "18")
   private String spareId;
 
-  @Excel(name = "用途", orderNum = "18",dicCode = "SPARE_USE_TYPE")
-  private String yt;
+
 
 
 

+ 24 - 10
platform-dao/src/main/java/com/platform/dao/vo/export/store/ExportOutStoreFormVO.java

@@ -54,7 +54,7 @@ public class ExportOutStoreFormVO implements Serializable {
   /**
    * 计量单位: 1-件;2-台;3-条; 4-个
    */
-  @Excel(name = "计量单位", orderNum = "7")
+  @Excel(name = "单位", orderNum = "7")
   private String unit;
 
   /**
@@ -69,58 +69,72 @@ public class ExportOutStoreFormVO implements Serializable {
   @Excel(name = "创建日期", orderNum = "9")
   private LocalDateTime createdTime;
 
+  @Excel(name = "库位", orderNum = "10")
+  private String storeName;
+
   /**
    * 当前库存
    */
-  @Excel(name = "当前库存", orderNum = "10")
+  @Excel(name = "当前库存", orderNum = "11")
   private BigDecimal currentStock;
 
   /**
    * 最高库存
    */
-  @Excel(name = "最高库存", orderNum = "11")
+  @Excel(name = "最高库存", orderNum = "12")
   private BigDecimal maxStock;
 
   /**
    * 最低库存
    */
-  @Excel(name = "最低库存", orderNum = "12")
+  @Excel(name = "最低库存", orderNum = "13")
   private BigDecimal minStock;
 
   /**
    * 备件等级:1-一级; 2-二级;3-三级
    */
-  @Excel(name = "备件等级", orderNum = "13", dicCode = "SPARE_PART_INFO_LEVEL")
+  @Excel(name = "等级", orderNum = "14", dicCode = "SPARE_PART_INFO_LEVEL")
   private Integer level;
 
   /**
    * 大类编码名称
    */
-  @Excel(name = "备件类别", orderNum = "14")
+  @Excel(name = "备件类别", orderNum = "15")
   private String typeName;
 
+
+
   /**
    * 单价
    */
-  @Excel(name = "备件价值", orderNum = "15")
+  @Excel(name = "备件价值", orderNum = "16")
   private Double initialValue;
 
+  @Excel(name = "出库数量", orderNum = "17")
+  private Integer outNum;
+
   /**
    * 生产商
    */
-  @Excel(name = "生产商", orderNum = "16")
+  @Excel(name = "生产商", orderNum = "18")
   private String producerName;
 
+  @Excel(name = "用途", orderNum = "19",dicCode = "SPARE_USE_TYPE")
+  private Integer yt;
+
+  @Excel(name = "关联设备号", orderNum = "20")
+  private String sbNo;
+
   /**
    * 主键
    */
-  @Excel(name = "主键", orderNum = "17")
+  @Excel(name = "主键", orderNum = "21")
   private String id;
 
   /**
    * 备注
    */
-  @Excel(name = "备注", orderNum = "18")
+  @Excel(name = "备注", orderNum = "22")
   private String remark;
 
 //    /**

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/sparepartmanage/SparePartInfoVO.java

@@ -28,6 +28,10 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SparePartInfoVO extends BaseVO implements Serializable {
+    private String ModelName;
+
+    private String ModelModel;
+
     private String producerName;
 
     private String sbNo;

+ 2 - 1
platform-dao/src/main/java/com/platform/dao/vo/query/store/InStoreFormVO.java

@@ -25,9 +25,10 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class InStoreFormVO extends BaseVO implements Serializable {
+    private String sbNo;
     private String typeName;
     private String producerName;
-private String name;
+    private String name;
     private String typeId;
     private String no;
     private String ggxh;

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreFormVO.java

@@ -25,6 +25,7 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class OutStoreFormVO extends BaseVO implements Serializable {
+    private String sbNo;
     private Integer isSpecial;
     private String producerName;
     private String typeName;

+ 1 - 0
platform-dao/src/main/resources/mapper/sqarepartmanage/SparePartInfoMapper.xml

@@ -83,6 +83,7 @@ warn_status,forecast_status,
     <select id="selectPageList" parameterType="com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO"
             resultType="com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO">
         select info.*, SUM(spareStore.num) currentStock,store.id as storeId,store.name as storeName,
+        spareType.name as typeName,
         producer.name as producerName
         from t_spare_part_info info
         LEFT JOIN t_spare_store spareStore on spareStore.spare_id = info.id

+ 2 - 1
platform-dao/src/main/resources/mapper/store/InStoreFormMapper.xml

@@ -300,7 +300,8 @@
         info.max_stock,info.min_stock,
         info.level,
         producer.name as producerName,
-        info.yt
+        info.yt,
+        spareStore.store_id
          from
         t_in_store_form instore
         left join t_spare_part_info info

+ 83 - 0
platform-rest/src/main/java/com/platform/rest/controller/report/InStoreDetailReportController.java

@@ -5,14 +5,22 @@ import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
 import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.InStoreDetailDTO;
 import com.platform.dao.dto.store.InStoreFormDTO;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.store.InStoreDetail;
+import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.store.InStoreFormMapper;
+import com.platform.dao.mapper.store.StoreMapper;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.store.ExportInStoreDetailVO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.query.store.InStoreDetailVO;
 import com.platform.dao.vo.query.store.InStoreFormVO;
+import com.platform.dao.vo.query.store.StoreVO;
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.rest.log.annotation.SysLog;
 import com.platform.service.store.InStoreDetailService;
 import lombok.AllArgsConstructor;
@@ -23,7 +31,10 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * @Description 入库明细 控制器
@@ -39,6 +50,12 @@ public class InStoreDetailReportController {
 
   private final  InStoreDetailService inStoreDetailService;
 
+  private final StoreMapper storeMapper;
+
+  private final SbModelSpareBomMapper sbModelSpareBomMapper;
+
+  private final SbInfoMapper sbInfoMapper;
+
   /**
    * 通过id查询单条记录
    *
@@ -77,8 +94,74 @@ public class InStoreDetailReportController {
   public void export(HttpServletResponse response, InStoreFormDTO inStoreFormDTO) {
 
     List<InStoreFormVO> inStoreFormVOS = inStoreFormMapper.getInStoreFormCollect(inStoreFormDTO);
+    addSbRelationShip(null,inStoreFormVOS);
+    getSparePartInfoVOS(inStoreFormVOS);
 //    List<InStoreDetail> list = inStoreDetailService.getModelListByDTO(inStoreDetailDTO);
     ExcelUtil.exportResponseDict(response, ExportInStoreDetailVO.class, BeanConverterUtil.copyListProperties(inStoreFormVOS, ExportInStoreDetailVO.class), "入库汇总");
   }
 
+
+  private void addSbRelationShip(SparePartInfoDTO sparePartInfoDTO, List<InStoreFormVO> list) {
+    // 查询备件关联的设备型号信息
+    List<SbModelSpareBomVO> bomList = sbModelSpareBomMapper.selectExportList2(sparePartInfoDTO);
+    for (InStoreFormVO sparePartInfo : list) {
+//                if (sparePartInfo.getYt()==1){
+//                    sparePartInfo.setYtStr("设备配件");
+//                }else if (sparePartInfo.getYt()==2){
+//                    sparePartInfo.setYtStr("工程物资");
+//                }else {
+//                    sparePartInfo.setYtStr("设备配件");
+//                }
+      StringBuffer sb = new StringBuffer();
+      for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
+        if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+          SbInfo sbInfo = new SbInfo();
+          sbInfo.setId(sbModelSpareBomVO.getSbId());
+          sbInfo = sbInfoMapper.selectOne(sbInfo);
+          sb = sb.append(sbInfo.getNo()).append(';');
+//                    sparePartInfo.setModelName(sbModelSpareBomVO.getName());
+//                    sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
+        }
+      }
+      sparePartInfo.setSbNo(sb.toString());
+    }
+  }
+
+  private List<InStoreFormVO> getSparePartInfoVOS(List<InStoreFormVO> sparePartInfoVOS){
+    List<StoreVO> stores = storeMapper.selectList(null);
+    Map<String,String> map = new HashMap<>();
+    first:for (StoreVO vo:stores){
+      if (vo.getLevel()==3){
+        for (StoreVO vo1:stores){
+          System.out.println("11111111111");
+          if (vo.getParentId().equals(vo1.getId())){
+            for (StoreVO vo2:stores){
+              System.out.println("22222222222");
+              if (vo1.getParentId().equals(vo2.getId())){
+                System.out.println("33333333333");
+                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name =name1+"-"+name2+"-"+vo.getName();
+                map.put(vo.getId(),name);
+                break first;
+              }
+            }
+          }
+        }
+      }
+    }
+    Set<String> ids = map.keySet();
+    for (String id:ids){
+      for (InStoreFormVO vo:sparePartInfoVOS){
+        if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+          vo.setStoreName(map.get(id));
+          continue;
+        }
+      }
+    }
+    return sparePartInfoVOS;
+  }
+
 }

+ 82 - 0
platform-rest/src/main/java/com/platform/rest/controller/report/OutStoreDetailReportController.java

@@ -5,14 +5,22 @@ import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
 import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.OutStoreDetailDTO;
 import com.platform.dao.dto.store.OutStoreFormDTO;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.store.OutStoreDetail;
+import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.store.OutStoreFormMapper;
+import com.platform.dao.mapper.store.StoreMapper;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.store.ExportOutStoreDetailVO;
+import com.platform.dao.vo.query.store.InStoreFormVO;
 import com.platform.dao.vo.query.store.OutStoreDetailVO;
 import com.platform.dao.vo.query.store.OutStoreFormVO;
+import com.platform.dao.vo.query.store.StoreVO;
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.rest.log.annotation.SysLog;
 import com.platform.service.store.OutStoreDetailService;
 import lombok.AllArgsConstructor;
@@ -21,7 +29,10 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * @Description 出库详情 控制器
@@ -37,6 +48,12 @@ public class OutStoreDetailReportController {
   private final  OutStoreDetailService outStoreDetailService;
   private final OutStoreFormMapper outStoreFormMapper;
 
+  private final StoreMapper storeMapper;
+
+  private final SbInfoMapper sbInfoMapper;
+
+  private final SbModelSpareBomMapper sbModelSpareBomMapper;
+
   /**
    * 通过id查询单条记录
    *
@@ -72,7 +89,72 @@ public class OutStoreDetailReportController {
   @PreAuthorize("@pms.hasPermission('store-out-store-details-export')")
   public void export(HttpServletResponse response, OutStoreFormDTO outStoreFormDTO) {
     List<OutStoreFormVO> list = outStoreFormMapper.getOutStoreFormCollect(outStoreFormDTO);
+    addSbRelationShip(null,list);
+    getSparePartInfoVOS(list);
     ExcelUtil.exportResponseDict(response, ExportOutStoreDetailVO.class, BeanConverterUtil.copyListProperties(list, ExportOutStoreDetailVO.class), "出库汇总");
   }
 
+  private void addSbRelationShip(SparePartInfoDTO sparePartInfoDTO, List<OutStoreFormVO> list) {
+    // 查询备件关联的设备型号信息
+    List<SbModelSpareBomVO> bomList = sbModelSpareBomMapper.selectExportList2(sparePartInfoDTO);
+    for (OutStoreFormVO sparePartInfo : list) {
+//                if (sparePartInfo.getYt()==1){
+//                    sparePartInfo.setYtStr("设备配件");
+//                }else if (sparePartInfo.getYt()==2){
+//                    sparePartInfo.setYtStr("工程物资");
+//                }else {
+//                    sparePartInfo.setYtStr("设备配件");
+//                }
+      StringBuffer sb = new StringBuffer();
+      for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
+        if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+          SbInfo sbInfo = new SbInfo();
+          sbInfo.setId(sbModelSpareBomVO.getSbId());
+          sbInfo = sbInfoMapper.selectOne(sbInfo);
+          sb = sb.append(sbInfo.getNo()).append(';');
+//                    sparePartInfo.setModelName(sbModelSpareBomVO.getName());
+//                    sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
+        }
+      }
+      sparePartInfo.setSbNo(sb.toString());
+    }
+  }
+
+  private List<OutStoreFormVO> getSparePartInfoVOS(List<OutStoreFormVO> sparePartInfoVOS){
+    List<StoreVO> stores = storeMapper.selectList(null);
+    Map<String,String> map = new HashMap<>();
+    first:for (StoreVO vo:stores){
+      if (vo.getLevel()==3){
+        for (StoreVO vo1:stores){
+          System.out.println("11111111111");
+          if (vo.getParentId().equals(vo1.getId())){
+            for (StoreVO vo2:stores){
+              System.out.println("22222222222");
+              if (vo1.getParentId().equals(vo2.getId())){
+                System.out.println("33333333333");
+                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name =name1+"-"+name2+"-"+vo.getName();
+                map.put(vo.getId(),name);
+                break first;
+              }
+            }
+          }
+        }
+      }
+    }
+    Set<String> ids = map.keySet();
+    for (String id:ids){
+      for (OutStoreFormVO vo:sparePartInfoVOS){
+        if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+          vo.setStoreName(map.get(id));
+          continue;
+        }
+      }
+    }
+    return sparePartInfoVOS;
+  }
+
 }

+ 47 - 6
platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartInfoController.java

@@ -12,10 +12,13 @@ import com.platform.dao.dto.store.InStoreFormDTO;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sqarepartmanage.SparePartInfoMapper;
+import com.platform.dao.mapper.store.StoreMapper;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.util.SelectUtil;
 import com.platform.dao.vo.export.sqarepartmanage.ExportSparePartInfoVO;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
+import com.platform.dao.vo.query.store.StoreVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.rest.log.annotation.SysLog;
 import com.platform.service.check.CheckStandardService;
@@ -30,8 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDate;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Description 备件基础信息 控制器
@@ -50,6 +52,8 @@ public class SparePartInfoController {
 
     private final CheckStandardService checkStandardService;
     private final SbInfoMapper sbInfoMapper;
+    private final StoreMapper storeMapper;
+    private final SparePartInfoMapper sparePartInfoMapper;
 
     /**
      * 通过id查询单条记录
@@ -209,6 +213,41 @@ public class SparePartInfoController {
         return new R<>(sparePartInfoService.getModelListByDTO(sparePartInfoDTO));
     }
 
+    private List<SparePartInfoVO> getSparePartInfoVOS(List<SparePartInfoVO> sparePartInfoVOS){
+        List<StoreVO> stores = storeMapper.selectList(null);
+        Map<String,String> map = new HashMap<>();
+        first:for (StoreVO vo:stores){
+            if (vo.getLevel()==3){
+                for (StoreVO vo1:stores){
+                    System.out.println("11111111111");
+                    if (vo.getParentId().equals(vo1.getId())){
+                        for (StoreVO vo2:stores){
+                            System.out.println("22222222222");
+                            if (vo1.getParentId().equals(vo2.getId())){
+                                System.out.println("33333333333");
+                                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name =name1+"-"+name2+"-"+vo.getName();
+                                map.put(vo.getId(),name);
+                                break first;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        Set<String> ids = map.keySet();
+        for (String id:ids){
+            for (SparePartInfoVO vo:sparePartInfoVOS){
+                if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+                    vo.setStoreName(map.get(id));
+                    continue;
+                }
+            }
+        }
+        return sparePartInfoVOS;
+    }
+
     /**
      * 备件基础信息导出
      *
@@ -220,16 +259,17 @@ public class SparePartInfoController {
     @PreAuthorize("@pms.hasPermission('sqarepartmanage-spare-part-info-export')")
     public void export(HttpServletResponse response, SparePartInfoDTO sparePartInfoDTO) {
         try {
-            List<SparePartInfo> list = sparePartInfoService.getModelListByDTO(sparePartInfoDTO);
+            List<SparePartInfoVO> list = sparePartInfoMapper.selectPageList(sparePartInfoDTO);
             // 如果没有编码先更新编码
-            for (SparePartInfo sparePartInfo : list) {
+            for (SparePartInfoVO sparePartInfo : list) {
                 if (StringUtils.isBlank(sparePartInfo.getNo())) {
-                    sparePartInfoService.updateSpareNo(sparePartInfo);
+                    SparePartInfo info =BeanConverterUtil.copyObjectProperties(sparePartInfo,SparePartInfo.class);
+                    sparePartInfoService.updateSpareNo(info);
                 }
             }
             // 查询备件关联的设备型号信息
             List<SbModelSpareBomVO> bomList = sbModelSpareBomService.selectExportList2(sparePartInfoDTO);
-            for (SparePartInfo sparePartInfo : list) {
+            for (SparePartInfoVO sparePartInfo : list) {
 //                if (sparePartInfo.getYt()==1){
 //                    sparePartInfo.setYtStr("设备配件");
 //                }else if (sparePartInfo.getYt()==2){
@@ -252,6 +292,7 @@ public class SparePartInfoController {
                 }
                 sparePartInfo.setSbNo(sb.toString());
             }
+            getSparePartInfoVOS(list);
             ExcelUtil.exportResponseDict(response, ExportSparePartInfoVO.class, BeanConverterUtil.copyListProperties(list, ExportSparePartInfoVO.class), "备件基础信息");
         } catch (Exception e) {
             e.printStackTrace();

+ 81 - 0
platform-rest/src/main/java/com/platform/rest/controller/store/InStoreFormController.java

@@ -1,11 +1,18 @@
 package com.platform.rest.controller.store;
 
 import com.platform.common.util.R;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.InStoreFormDTO;
 import com.platform.dao.dto.store.OutStoreFormDTO;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.store.InStoreForm;
+import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.store.InStoreFormMapper;
+import com.platform.dao.mapper.store.StoreMapper;
 import com.platform.dao.vo.export.store.ExportInStoreSpareNumVO;
+import com.platform.dao.vo.query.store.StoreVO;
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.service.store.InStoreFormService;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.store.ExportInStoreFormVO;
@@ -21,7 +28,10 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.rest.log.annotation.SysLog;
 
 import java.time.LocalDate;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import javax.servlet.http.HttpServletResponse;
 
 /**
@@ -39,6 +49,12 @@ public class InStoreFormController {
 
   private final InStoreFormMapper inStoreFormMapper;
 
+  private final StoreMapper storeMapper;
+
+  private final SbInfoMapper sbInfoMapper;
+
+  private final SbModelSpareBomMapper sbModelSpareBomMapper;
+
   /**
    * 通过id查询单条记录
    *
@@ -170,9 +186,74 @@ public class InStoreFormController {
   @PreAuthorize("@pms.hasPermission('store-in-store-forms-export')")
   public void export(HttpServletResponse response, InStoreFormDTO inStoreFormDTO) {
     List<InStoreFormVO> list = inStoreFormMapper.getInStoreForm(inStoreFormDTO);
+    addSbRelationShip(null,list);
+    getSparePartInfoVOS(list);
     ExcelUtil.exportResponseDict(response, ExportInStoreFormVO.class, BeanConverterUtil.copyListProperties(list, ExportInStoreFormVO.class), "入库登记表");
   }
 
+  private void addSbRelationShip(SparePartInfoDTO sparePartInfoDTO, List<InStoreFormVO> list) {
+    // 查询备件关联的设备型号信息
+    List<SbModelSpareBomVO> bomList = sbModelSpareBomMapper.selectExportList2(sparePartInfoDTO);
+    for (InStoreFormVO sparePartInfo : list) {
+//                if (sparePartInfo.getYt()==1){
+//                    sparePartInfo.setYtStr("设备配件");
+//                }else if (sparePartInfo.getYt()==2){
+//                    sparePartInfo.setYtStr("工程物资");
+//                }else {
+//                    sparePartInfo.setYtStr("设备配件");
+//                }
+      StringBuffer sb = new StringBuffer();
+      for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
+        if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+          SbInfo sbInfo = new SbInfo();
+          sbInfo.setId(sbModelSpareBomVO.getSbId());
+          sbInfo = sbInfoMapper.selectOne(sbInfo);
+          sb = sb.append(sbInfo.getNo()).append(';');
+//                    sparePartInfo.setModelName(sbModelSpareBomVO.getName());
+//                    sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
+        }
+      }
+      sparePartInfo.setSbNo(sb.toString());
+    }
+  }
+
+  private List<InStoreFormVO> getSparePartInfoVOS(List<InStoreFormVO> sparePartInfoVOS){
+    List<StoreVO> stores = storeMapper.selectList(null);
+    Map<String,String> map = new HashMap<>();
+    first:for (StoreVO vo:stores){
+      if (vo.getLevel()==3){
+        for (StoreVO vo1:stores){
+          System.out.println("11111111111");
+          if (vo.getParentId().equals(vo1.getId())){
+            for (StoreVO vo2:stores){
+              System.out.println("22222222222");
+              if (vo1.getParentId().equals(vo2.getId())){
+                System.out.println("33333333333");
+                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name =name1+"-"+name2+"-"+vo.getName();
+                map.put(vo.getId(),name);
+                break first;
+              }
+            }
+          }
+        }
+      }
+    }
+    Set<String> ids = map.keySet();
+    for (String id:ids){
+      for (InStoreFormVO vo:sparePartInfoVOS){
+        if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+          vo.setStoreName(map.get(id));
+          continue;
+        }
+      }
+    }
+    return sparePartInfoVOS;
+  }
+
   /**
    * 获取分页
    *

+ 87 - 2
platform-rest/src/main/java/com/platform/rest/controller/store/OutStoreFormController.java

@@ -1,13 +1,20 @@
 package com.platform.rest.controller.store;
 
 import com.platform.common.util.R;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.InStoreFormDTO;
 import com.platform.dao.dto.store.OutStoreFormDTO;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.store.OutStoreForm;
+import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.store.OutStoreFormMapper;
+import com.platform.dao.mapper.store.StoreMapper;
 import com.platform.dao.vo.export.store.ExportInStoreSpareNumVO;
 import com.platform.dao.vo.export.store.ExportOutStoreSpareNumVO;
 import com.platform.dao.vo.query.store.InStoreFormVO;
+import com.platform.dao.vo.query.store.StoreVO;
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.service.store.OutStoreFormService;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.store.ExportOutStoreFormVO;
@@ -23,7 +30,10 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.rest.log.annotation.SysLog;
 
 import java.time.LocalDate;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import javax.servlet.http.HttpServletResponse;
 
 /**
@@ -41,6 +51,13 @@ public class OutStoreFormController {
 
   private final OutStoreFormMapper outStoreFormMapper;
 
+  private final SbModelSpareBomMapper sbModelSpareBomMapper;
+
+  private final StoreMapper storeMapper;
+
+  private final SbInfoMapper sbInfoMapper;
+
+
   /**
    * 通过id查询单条记录
    *
@@ -145,9 +162,12 @@ public class OutStoreFormController {
    */
   @GetMapping("/page")
   public R<AbstractPageResultBean<OutStoreFormVO>> query(OutStoreFormDTO outStoreFormDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+
       return new R<>(outStoreFormService.selectPageList(outStoreFormDTO, pageNum, pageSize));
   }
 
+
+
   /**
    * 获取列表
    *
@@ -171,15 +191,80 @@ public class OutStoreFormController {
   public void export(HttpServletResponse response, OutStoreFormDTO outStoreFormDTO) {
 //    List<OutStoreForm> list = outStoreFormService.getModelListByDTO(outStoreFormDTO);
     List<OutStoreFormVO> list = outStoreFormMapper.getOutStoreForm(outStoreFormDTO);
+    addSbRelationShip(null,list);
+    getSparePartInfoVOS(list);
     ExcelUtil.exportResponseDict(response, ExportOutStoreFormVO.class, BeanConverterUtil.copyListProperties(list, ExportOutStoreFormVO.class), "出库登记单");
   }
 
+  private void addSbRelationShip(SparePartInfoDTO sparePartInfoDTO, List<OutStoreFormVO> list) {
+    // 查询备件关联的设备型号信息
+    List<SbModelSpareBomVO> bomList = sbModelSpareBomMapper.selectExportList2(sparePartInfoDTO);
+    for (OutStoreFormVO sparePartInfo : list) {
+//                if (sparePartInfo.getYt()==1){
+//                    sparePartInfo.setYtStr("设备配件");
+//                }else if (sparePartInfo.getYt()==2){
+//                    sparePartInfo.setYtStr("工程物资");
+//                }else {
+//                    sparePartInfo.setYtStr("设备配件");
+//                }
+      StringBuffer sb = new StringBuffer();
+      for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
+        if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+          SbInfo sbInfo = new SbInfo();
+          sbInfo.setId(sbModelSpareBomVO.getSbId());
+          sbInfo = sbInfoMapper.selectOne(sbInfo);
+          sb = sb.append(sbInfo.getNo()).append(';');
+//                    sparePartInfo.setModelName(sbModelSpareBomVO.getName());
+//                    sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
+        }
+      }
+      sparePartInfo.setSbNo(sb.toString());
+    }
+  }
+
+  private List<OutStoreFormVO> getSparePartInfoVOS(List<OutStoreFormVO> sparePartInfoVOS){
+    List<StoreVO> stores = storeMapper.selectList(null);
+    Map<String,String> map = new HashMap<>();
+    first:for (StoreVO vo:stores){
+      if (vo.getLevel()==3){
+        for (StoreVO vo1:stores){
+          System.out.println("11111111111");
+          if (vo.getParentId().equals(vo1.getId())){
+            for (StoreVO vo2:stores){
+              System.out.println("22222222222");
+              if (vo1.getParentId().equals(vo2.getId())){
+                System.out.println("33333333333");
+                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                String name =name1+"-"+name2+"-"+vo.getName();
+                map.put(vo.getId(),name);
+                break first;
+              }
+            }
+          }
+        }
+      }
+    }
+    Set<String> ids = map.keySet();
+    for (String id:ids){
+      for (OutStoreFormVO vo:sparePartInfoVOS){
+        if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+          vo.setStoreName(map.get(id));
+          continue;
+        }
+      }
+    }
+    return sparePartInfoVOS;
+  }
+
   /**
    * 获取分页
    *
    * @param pageNum 当前页码
    * @param pageSize 每页条数
-   * @param inStoreFormDTO 入库登记表DTO
+   * @param
    * @return R
    */
   @GetMapping("/getOutStoreForm")
@@ -196,7 +281,7 @@ public class OutStoreFormController {
   /**
    * 入库登记表导出
    *
-   * @param inStoreFormDTO 入库登记表DTO
+   * @param
    * @return R
    */
   @GetMapping("/outSpareNum/export")

+ 30 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -1275,6 +1275,36 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         // vo.setCurrentAuditUserName(activitiBusinessService.getCurrentAuditUserName(vo.getProcessInstanceId()));
         return vo;
     }
+//    private void generateProtocol(CheckJob checkJob) {
+//        ProtocolThread thread = new ProtocolThread();
+//        thread.setInfoVO(infoVO);
+//        thread.start();
+//    }
+
+//    class ProtocolThread extends Thread {
+//
+//        private GuaranteeInfoVO infoVO;
+//
+//        @Override
+//        public void run() {
+//            synchronized (this) {
+//                // 根据模板生成pdf
+//                try {
+//                    protocolService.buildGuaranteePdf(infoVO);
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//        }
+//
+//        public GuaranteeInfoVO getInfoVO() {
+//            return infoVO;
+//        }
+//
+//        public void setInfoVO(GuaranteeInfoVO infoVO) {
+//            this.infoVO = infoVO;
+//        }
+//    }
 
     @Override
     public SbInfoVO getScreenDetailByNo(String no) {

+ 65 - 0
platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartInfoServiceImpl.java

@@ -393,6 +393,69 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
         return list;
     }
 
+    private List<SparePartInfoVO> getSparePartInfoVOS(List<SparePartInfoVO> sparePartInfoVOS){
+        List<StoreVO> stores = storeMapper.selectList(null);
+        Map<String,String> map = new HashMap<>();
+        first:for (StoreVO vo:stores){
+            if (vo.getLevel()==3){
+                for (StoreVO vo1:stores){
+                    System.out.println("11111111111");
+                    if (vo.getParentId().equals(vo1.getId())){
+                        for (StoreVO vo2:stores){
+                            System.out.println("22222222222");
+                            if (vo1.getParentId().equals(vo2.getId())){
+                                System.out.println("33333333333");
+                                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name =name1+"-"+name2+"-"+vo.getName();
+                                map.put(vo.getId(),name);
+                                break first;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        Set<String> ids = map.keySet();
+        for (String id:ids){
+            for (SparePartInfoVO vo:sparePartInfoVOS){
+                if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+                    vo.setStoreName(map.get(id));
+                    continue;
+                }
+            }
+        }
+        return sparePartInfoVOS;
+    }
+
+    private void addSbRelationShip(SparePartInfoDTO sparePartInfoDTO,List<SparePartInfoVO> list) {
+        // 查询备件关联的设备型号信息
+        List<SbModelSpareBomVO> bomList = sbModelSpareBomMapper.selectExportList2(sparePartInfoDTO);
+        for (SparePartInfoVO sparePartInfo : list) {
+//                if (sparePartInfo.getYt()==1){
+//                    sparePartInfo.setYtStr("设备配件");
+//                }else if (sparePartInfo.getYt()==2){
+//                    sparePartInfo.setYtStr("工程物资");
+//                }else {
+//                    sparePartInfo.setYtStr("设备配件");
+//                }
+            StringBuffer sb = new StringBuffer();
+            for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
+                if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+                    SbInfo sbInfo = new SbInfo();
+                    sbInfo.setId(sbModelSpareBomVO.getSbId());
+                    sbInfo = sbInfoMapper.selectOne(sbInfo);
+                    sb = sb.append(sbInfo.getNo()).append(';');
+//                    sparePartInfo.setModelName(sbModelSpareBomVO.getName());
+//                    sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
+                }
+            }
+            sparePartInfo.setSbNo(sb.toString());
+        }
+    }
+
     @Override
     public AbstractPageResultBean<SparePartInfoVO> selectPageInfo2(SparePartInfoDTO record, int pageNum, int pageSize) {
 
@@ -459,6 +522,8 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
                     }
                 }
             }
+            getSparePartInfoVOS(list);
+            addSbRelationShip(null,list);
             AbstractPageResultBean<SparePartInfoVO> pageInfo = new MyPage(list);
             return pageInfo;
         }

+ 75 - 8
platform-service/src/main/java/com/platform/service/store/impl/InStoreFormServiceImpl.java

@@ -11,6 +11,7 @@ import com.platform.common.model.UserInfo;
 import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.*;
 import com.platform.dao.entity.purchase.PurchaseDispatchOrder;
 import com.platform.dao.entity.purchase.PurchaseDispatchOrderList;
@@ -25,14 +26,13 @@ import com.platform.dao.enums.*;
 import com.platform.dao.mapper.purchase.PurchaseDispatchOrderListMapper;
 import com.platform.dao.mapper.purchase.PurchaseDispatchOrderMapper;
 import com.platform.dao.mapper.purchase.PurchaseListMapper;
+import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.sqarepartmanage.SparePartInfoMapper;
-import com.platform.dao.mapper.store.InStoreDetailMapper;
-import com.platform.dao.mapper.store.InStoreFormMapper;
-import com.platform.dao.mapper.store.SpareBackFormMapper;
-import com.platform.dao.mapper.store.SpareStoreMapper;
+import com.platform.dao.mapper.store.*;
 import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.export.store.ExportInStoreSpareNumVO;
+import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.query.store.InStoreFormVO;
 import com.platform.dao.vo.query.store.SpareBackDetailVO;
 import com.platform.dao.vo.query.store.StoreCheckJobVO;
@@ -57,9 +57,7 @@ import tk.mybatis.mapper.weekend.WeekendCriteria;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -77,6 +75,8 @@ public class InStoreFormServiceImpl extends BaseServiceImpl<InStoreFormMapper, I
     private SpareBackFormMapper spareBackFormMapper;
     private SparePartInfoMapper sparePartInfoMapper;
     private SbModelSpareBomMapper sbModelSpareBomMapper;
+    private SbInfoMapper sbInfoMapper;
+    private StoreMapper storeMapper;
 
     @Override
     public int batchDelete(List<String> ids) {
@@ -105,7 +105,10 @@ public class InStoreFormServiceImpl extends BaseServiceImpl<InStoreFormMapper, I
             model.setSpareIdList(spareList);
         }
         PageHelper.startPage(pageNum, pageSize);
-        return new MyPage(mapper.selectList(model));
+        List<InStoreFormVO> list = mapper.selectList(model);
+        addSbRelationShip(null,list);
+        list = getSparePartInfoVOS(list);
+        return new MyPage(list);
     }
 
     @Override
@@ -247,6 +250,68 @@ public class InStoreFormServiceImpl extends BaseServiceImpl<InStoreFormMapper, I
         return inStoreForm;
     }
 
+    private void addSbRelationShip(SparePartInfoDTO sparePartInfoDTO, List<InStoreFormVO> list) {
+        // 查询备件关联的设备型号信息
+        List<SbModelSpareBomVO> bomList = sbModelSpareBomMapper.selectExportList2(sparePartInfoDTO);
+        for (InStoreFormVO sparePartInfo : list) {
+//                if (sparePartInfo.getYt()==1){
+//                    sparePartInfo.setYtStr("设备配件");
+//                }else if (sparePartInfo.getYt()==2){
+//                    sparePartInfo.setYtStr("工程物资");
+//                }else {
+//                    sparePartInfo.setYtStr("设备配件");
+//                }
+            StringBuffer sb = new StringBuffer();
+            for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
+                if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+                    SbInfo sbInfo = new SbInfo();
+                    sbInfo.setId(sbModelSpareBomVO.getSbId());
+                    sbInfo = sbInfoMapper.selectOne(sbInfo);
+                    sb = sb.append(sbInfo.getNo()).append(';');
+//                    sparePartInfo.setModelName(sbModelSpareBomVO.getName());
+//                    sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
+                }
+            }
+            sparePartInfo.setSbNo(sb.toString());
+        }
+    }
+
+    private List<InStoreFormVO> getSparePartInfoVOS(List<InStoreFormVO> sparePartInfoVOS){
+        List<StoreVO> stores = storeMapper.selectList(null);
+        Map<String,String> map = new HashMap<>();
+        first:for (StoreVO vo:stores){
+            if (vo.getLevel()==3){
+                for (StoreVO vo1:stores){
+                    System.out.println("11111111111");
+                    if (vo.getParentId().equals(vo1.getId())){
+                        for (StoreVO vo2:stores){
+                            System.out.println("22222222222");
+                            if (vo1.getParentId().equals(vo2.getId())){
+                                System.out.println("33333333333");
+                                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name =name1+"-"+name2+"-"+vo.getName();
+                                map.put(vo.getId(),name);
+                                break first;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        Set<String> ids = map.keySet();
+        for (String id:ids){
+            for (InStoreFormVO vo:sparePartInfoVOS){
+                if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+                    vo.setStoreName(map.get(id));
+                    continue;
+                }
+            }
+        }
+        return sparePartInfoVOS;
+    }
 
     @Override
     public AbstractPageResultBean<InStoreFormVO> getInStoreFormCollect(InStoreFormDTO dto, Integer pageNum,Integer pageSize) {
@@ -259,6 +324,8 @@ public class InStoreFormServiceImpl extends BaseServiceImpl<InStoreFormMapper, I
         }
         PageHelper.startPage(pageNum,pageSize);
         List<InStoreFormVO> list = mapper.getInStoreFormCollect(dto);
+        addSbRelationShip(null,list);
+        getSparePartInfoVOS(list);
         return new MyPage<>(list);
     }
 

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

@@ -9,12 +9,15 @@ import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
 import com.github.pagehelper.PageHelper;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.*;
 import com.platform.dao.dto.store.OutStoreDetailDTO;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbOil;
 import com.platform.dao.entity.store.*;
 import com.platform.dao.entity.store.OutStoreDetail;
 import com.platform.dao.enums.*;
+import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
 import com.platform.dao.mapper.store.*;
 import com.platform.dao.util.MessageTemplateUtil;
@@ -38,9 +41,7 @@ import lombok.AllArgsConstructor;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -65,6 +66,10 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
 
     private SbModelSpareBomMapper sbModelSpareBomMapper;
 
+    private StoreMapper storeMapper;
+
+    private SbInfoMapper sbInfoMapper;
+
 
     @Override
     public AbstractPageResultBean<OutStoreFormVO> getOutStoreFormCollect(OutStoreFormDTO dto, Integer pageNum,Integer pageSize) {
@@ -76,7 +81,73 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
             dto.setSpareIdList(spareList);
         }
         PageHelper.startPage(pageNum,pageSize);
-        return new MyPage(mapper.getOutStoreFormCollect(dto));
+        List<OutStoreFormVO> list = mapper.getOutStoreFormCollect(dto);
+        addSbRelationShip(null,list);
+        getSparePartInfoVOS(list);
+        return new MyPage(list);
+    }
+
+    private void addSbRelationShip(SparePartInfoDTO sparePartInfoDTO, List<OutStoreFormVO> list) {
+        // 查询备件关联的设备型号信息
+        List<SbModelSpareBomVO> bomList = sbModelSpareBomMapper.selectExportList2(sparePartInfoDTO);
+        for (OutStoreFormVO sparePartInfo : list) {
+//                if (sparePartInfo.getYt()==1){
+//                    sparePartInfo.setYtStr("设备配件");
+//                }else if (sparePartInfo.getYt()==2){
+//                    sparePartInfo.setYtStr("工程物资");
+//                }else {
+//                    sparePartInfo.setYtStr("设备配件");
+//                }
+            StringBuffer sb = new StringBuffer();
+            for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
+                if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+                    SbInfo sbInfo = new SbInfo();
+                    sbInfo.setId(sbModelSpareBomVO.getSbId());
+                    sbInfo = sbInfoMapper.selectOne(sbInfo);
+                    sb = sb.append(sbInfo.getNo()).append(';');
+//                    sparePartInfo.setModelName(sbModelSpareBomVO.getName());
+//                    sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
+                }
+            }
+            sparePartInfo.setSbNo(sb.toString());
+        }
+    }
+
+    private List<OutStoreFormVO> getSparePartInfoVOS(List<OutStoreFormVO> sparePartInfoVOS){
+        List<StoreVO> stores = storeMapper.selectList(null);
+        Map<String,String> map = new HashMap<>();
+        first:for (StoreVO vo:stores){
+            if (vo.getLevel()==3){
+                for (StoreVO vo1:stores){
+                    System.out.println("11111111111");
+                    if (vo.getParentId().equals(vo1.getId())){
+                        for (StoreVO vo2:stores){
+                            System.out.println("22222222222");
+                            if (vo1.getParentId().equals(vo2.getId())){
+                                System.out.println("33333333333");
+                                String name1 = vo2.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name2 = vo1.getName().replaceAll("\\s*","").replaceAll("[^(0-9)]","");
+                                String name =name1+"-"+name2+"-"+vo.getName();
+                                map.put(vo.getId(),name);
+                                break first;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        Set<String> ids = map.keySet();
+        for (String id:ids){
+            for (OutStoreFormVO vo:sparePartInfoVOS){
+                if (vo.getStoreId()!=null&&vo.getStoreId().equals(id)){
+                    vo.setStoreName(map.get(id));
+                    continue;
+                }
+            }
+        }
+        return sparePartInfoVOS;
     }
 
     @Override
@@ -202,7 +273,10 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
             model.setUserId(userInfo.getUserId());
         }
         PageHelper.startPage(pageNum, pageSize);
-        return new MyPage(mapper.selectList(model));
+        List<OutStoreFormVO> list= mapper.selectList(model);
+        getSparePartInfoVOS(list);
+        addSbRelationShip(null,list);
+        return new MyPage(list);
     }
 
     @Override