From b311c61c729f02db40dfa51dbfe81892112535b1 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期三, 23 十月 2024 09:57:04 +0800
Subject: [PATCH] 关于修改可靠性产品重复

---
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java |   40 ++++++++++++++++++++++++++++++----------
 1 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
index f9a0192..d0f96b8 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
@@ -70,7 +70,7 @@
     }
 
     public List<XhProductModel> getAllTree(Boolean showXdy, Integer ztShow, Long productId) {
-        List<XhProductModel> productList = null;
+        List<XhProductModel> productList = new ArrayList<>();
         if (showXdy) {
             if (productId != null) {
                 productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE,
@@ -102,8 +102,29 @@
                     productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE,
                             Constant.Bool.NO).lt("product_type", 5).ne("product_type", 1).and(wrapper -> wrapper.eq("ship_id", productId).or().eq("id", productId)).orderByAsc(Constant.TableColumn.SORT));
                 } else if (ztShow == 5) {
-                    productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE,
-                            Constant.Bool.NO).gt("product_type", 1).and(wrapper -> wrapper.eq("ship_id", productId).or().eq("id", productId)).orderByAsc(Constant.TableColumn.SORT));
+                    List<XhProductModel> dbList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE,
+                            Constant.Bool.NO).gt("product_type", 1).and(wrapper -> wrapper.eq("ship_id", productId).or().eq("id", productId)));
+                    for (XhProductModel row : dbList) {
+                        if (row.getSameSbNum() > 1) {
+                            for (int i = 1; i <= row.getSameSbNum(); i++) {
+                                try {
+                                    XhProductModel newRow = row.clone();
+                                    newRow.setDeviceNo(i);
+                                    newRow.setName(row.getName() + "-" + i);
+                                    newRow.setDataId(row.getId().toString() + "-" + i);
+                                    productList.add(newRow);
+                                } catch (CloneNotSupportedException e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                        } else {
+                            row.setDeviceNo(0);
+                            row.setDataId(row.getId().toString());
+                            productList.add(row);
+                        }
+                    }
+                    productList.sort(Comparator.comparing(XhProductModel::getSort, Comparator.naturalOrder())
+                            .thenComparing(XhProductModel::getDeviceNo, Comparator.naturalOrder()));
                 }
             }
         }
@@ -329,7 +350,7 @@
                     xhProductModel.setPid(curFxtId == null ? curXtId : curFxtId);
                     xhProductModel.setId(curSbId);
                     xhProductModel.setName(sb);
-                    //xhProductModel.setSameSbName(sameSbName);
+                    xhProductModel.setSameSbNum(sameSbNum);
                     xhProductModel.setEquipType(equipType);
                     xhProductModel.setProductType("5");
                     xhProductModel.setSort(Integer.valueOf(sort));
@@ -423,7 +444,7 @@
         List<ProductDto> data = baseDao.getProductByShip(shipId);
         data = TreeUtils.build(data);
         List<ProductDto> List = new ArrayList<>();
-        this.writeExcel(data, List);
+        this.writeList(data, List);
         // 璇诲彇妯℃澘鏂囦欢
         try (InputStream inputStream = getClass().getResourceAsStream("/浜у搧缁撴瀯鏍戝鍑烘ā鏉�.xlsx")) {
             Workbook workbook = new XSSFWorkbook(inputStream);
@@ -470,9 +491,8 @@
                         }
                     }
                     cell = row.createCell(4);
-                    if (StringUtils.isNotBlank(List.get(i).getSameSbName())) {
-                        cell.setCellValue(List.get(i).getSameSbName());
-                    }
+                    cell.setCellValue(List.get(i).getSameSbNum());
+
                     cell = row.createCell(5);
                     if (StringUtils.isNotBlank(List.get(i).getEquipType())) {
                         cell.setCellValue(List.get(i).getEquipType());
@@ -555,10 +575,10 @@
 
     }
 
-    private void writeExcel(List<ProductDto> data, List<ProductDto> List) {
+    private void writeList(List<ProductDto> data, List<ProductDto> List) {
         for (ProductDto dto : data) {
             List.add(dto);
-            writeExcel(dto.getChildren(), List);
+            writeList(dto.getChildren(), List);
         }
     }
 }

--
Gitblit v1.9.1