From 23f02e6b45dd7cf0ab2e7827144913ca59575ea4 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 04 三月 2025 18:59:23 +0800
Subject: [PATCH] jar

---
 src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java |  377 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 372 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java
index 7b8a17b..b222e69 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java
@@ -1,26 +1,393 @@
 package com.example.server.progressTrack.service;
 
+import com.example.client.dto.ColumnDto;
+import com.example.client.dto.JComboBoxItem;
 import com.example.client.service.BaseService;
-import com.example.client.utils.UUIDUtil;
+import com.example.server.ExportExcel.dto.ExcelColumnDto;
+import com.example.server.ExportExcel.dto.ExprotExcelDto;
+import com.example.server.ExportExcel.method.ExcelExport;
+import com.example.server.cabin.service.CabinService;
+import com.example.server.progressTrack.Dto.StatistDismantDto;
 import com.example.server.progressTrack.dao.DjJdgzDismantTrackDao;
-import com.example.server.progressTrack.dao.DjJdgzHandoverDao;
 import com.example.server.progressTrack.model.DjJdgzDismantTrack;
-import com.example.server.progressTrack.model.DjJdgzHandover;
+import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
+import com.example.server.progressTrack.model.DjJdgzTrackRecord;
+import com.example.server.utils.FileUtils;
+import com.example.server.utils.ImportUtil;
+import com.example.server.utils.TreeFieldUtils;
+import com.example.server.utils.UUIDUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 /**
  * dj_jdgz_track_record
  *
- * @author zt generator 
+ * @author zt generator
  * @since 1.0.0 2024-12-17
  */
 @Service
 public class DjJdgzDismantTrackService extends BaseService<DjJdgzDismantTrackDao, DjJdgzDismantTrack> {
+    @Autowired
+    DjJdgzNetworkLevel3Service djJdgzNetworkLevel3Service;
+    @Autowired
+    CabinService cabinService;
 
     public List<DjJdgzDismantTrack> getList(Long level3Id, Long cabinId) {
-        return baseDao.getList(level3Id,cabinId);
+        return baseDao.getList(level3Id, cabinId);
+    }
+
+    public void save(List<DjJdgzDismantTrack> list) {
+        for (DjJdgzDismantTrack data : list) {
+            if (data.getId() != null) {
+                this.update(data);
+            } else {
+                this.insert(data);
+            }
+        }
+
+    }
+
+    public String importExcel(String path) {
+        String result = "true";
+        Integer sum = 0; // 鎬诲叡鐨勬潯鏁�
+        Integer suc = 0; // 鎴愬姛鐨勬潯鏁�
+        Integer err = 0; // 澶辫触鐨勬潯鏁�
+        Map<String, Object> errMap = new HashMap<>();
+        MultipartFile mutFile = null;
+        try {
+            mutFile = FileUtils.convertFileToMultipartFile(path);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        String sheetName = null;
+        int row1 = 0;
+        try {
+            // 鑾峰彇瀵煎叆鏂囦欢鐨勫悗缂�鍚�
+            String fileName = mutFile.getOriginalFilename();
+            Workbook workbook = null;
+            //瑙e喅excel鐗堟湰闂
+            if (fileName != null && fileName.endsWith(".xls")) {
+                workbook = new HSSFWorkbook(mutFile.getInputStream());
+            } else if (fileName != null && fileName.endsWith(".xlsx")) {
+                workbook = new XSSFWorkbook(mutFile.getInputStream());
+            }
+            assert workbook != null; //鏂█濡傛灉[boolean琛ㄨ揪寮廬涓簍rue锛屽垯绋嬪簭缁х画鎵ц銆� 濡傛灉涓篺alse锛屽垯绋嬪簭鎶涘嚭AssertionError锛屽苟缁堟鎵ц銆�
+
+            Sheet sheet = workbook.getSheetAt(0);
+            int num = sheet.getLastRowNum(); // 涓�鍏辨湁澶氬皯琛�
+            sheetName = sheet.getSheetName(); //鑾峰彇褰撳墠sheet鍚嶇О
+            sum = sum + num;
+
+            List<DjJdgzNetworkLevel3> list = djJdgzNetworkLevel3Service.getList(null, null, null, null, null,null);
+            JComboBoxItem[] list1 = cabinService.getList();
+
+
+            Map<String, Long> level3Map = new HashMap<>();
+            Map<String, Long> cabinMap = new HashMap<>();
+            Map<String, Integer> statusMap = new HashMap<>();
+            statusMap.put("杩涜涓�",0);
+            statusMap.put("宸插畬鎴�",1);
+
+            for (DjJdgzNetworkLevel3 level3 : list) {
+                level3Map.put(level3.getName(), level3.getId());
+            }
+            for (JComboBoxItem item : list1) {
+                cabinMap.put(item.getName(), item.getId());
+            }
+
+            String curSbName = "";
+            Long curSbId = null;
+
+            for (int j = 1; j <= num; j++) {
+                DjJdgzDismantTrack data = new DjJdgzDismantTrack();
+
+                boolean isErr = false;
+                row1 = j + 1;
+                String pattern = "yyyy-MM-dd";
+                Row row = sheet.getRow(j);
+
+                String sbName = ImportUtil.getCellValue(row, 0, pattern);
+                String name = ImportUtil.getCellValue(row, 1, pattern);
+                String cabin = ImportUtil.getCellValue(row, 2, pattern);
+                String cxTime = ImportUtil.getCellValue(row, 3, pattern);
+                String cxUnit = ImportUtil.getCellValue(row, 4, pattern);
+                String cxStaff = ImportUtil.getCellValue(row, 5, pattern);
+                String cxAssis = ImportUtil.getCellValue(row, 6, pattern);
+                String ccTime = ImportUtil.getCellValue(row, 7, pattern);
+                String ccUnit = ImportUtil.getCellValue(row, 8, pattern);
+                String ccStaff = ImportUtil.getCellValue(row, 9, pattern);
+                String ccAssis = ImportUtil.getCellValue(row, 10, pattern);
+                String tzTime = ImportUtil.getCellValue(row, 11, pattern);
+                String czr = ImportUtil.getCellValue(row, 12, pattern);
+                String tzWeight = ImportUtil.getCellValue(row, 13, pattern);
+                String tzAssis = ImportUtil.getCellValue(row, 14, pattern);
+                String rkTime = ImportUtil.getCellValue(row, 15, pattern);
+                String rkStaff = ImportUtil.getCellValue(row, 16, pattern);
+                String local = ImportUtil.getCellValue(row, 17, pattern);
+                String statusStr = ImportUtil.getCellValue(row, 18, pattern);
+
+                if (StringUtils.isBlank(sbName)) {
+                    if (StringUtils.isBlank(curSbName)) {
+                        result = "绗�" + j + "琛�" + "璁惧涓嶈兘涓虹┖";
+                        isErr = true;
+                    } else {
+                        sbName = curSbName;
+                        curSbId = level3Map.get(sbName);
+                    }
+                } else {
+                    if (StringUtils.isBlank(curSbName) || !sbName.equals(curSbName)) {
+                        curSbName = sbName;
+                        if (level3Map.get(curSbName) == null) {
+                            result = "绗�" + j + "琛�" + "璁惧涓嶅瓨鍦�";
+                            isErr = true;
+                        } else {
+                            curSbId = level3Map.get(curSbName);
+                        }
+                    }
+                }
+
+                Long id = UUIDUtil.generateId();
+                if (StringUtils.isEmpty(name)) {
+                    result = "绗�" + j + "琛�" + "瀛愰儴浠跺悕绉颁笉鑳戒负绌�";
+                    isErr = true;
+                } else {
+                    data.setId(id);
+                    data.setName(name);
+                    data.setLevel3NetworkId(curSbId);
+                    baseDao.deleteByName(name);
+                }
+
+                if (StringUtils.isEmpty(cabin)) {
+                    result = "绗�" + j + "琛�" + "鑸卞涓嶈兘涓虹┖";
+                    isErr = true;
+                } else {
+                    if (cabinMap.get(cabin) == null) {
+                        result = "绗�" + j + "琛�" + "鑸卞涓嶅瓨鍦�";
+                        isErr = true;
+                    } else {
+                        Long cabinId = cabinMap.get(cabin);
+                        data.setCabinId(cabinId);
+                    }
+                }
+
+                if (StringUtils.isNotBlank(cxTime)) {
+                    if (cxTime.matches("[0-9/]+")) {
+                        cxTime = cxTime.replace("/", "-");
+                        data.setDismantTime(cxTime);
+                    } else if (cxTime.matches("[0-9.]+")) {
+                        cxTime = cxTime.replace(".", "-");
+                        data.setDismantTime(cxTime);
+                    } else if (cxTime.matches("[0-9-]+")) {
+                        data.setDismantTime(cxTime);
+                    } else {
+                        result = "绗�" + j + "琛�" + "鎷嗗嵏鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                        isErr = true;
+                    }
+                }
+
+                if (StringUtils.isNotBlank(cxUnit)) {
+                    data.setDismantUnit(cxUnit);
+                }
+                if (StringUtils.isNotBlank(cxStaff)) {
+                    data.setDismantStaff(cxStaff);
+                }
+                if (StringUtils.isNotBlank(cxAssis)) {
+                    data.setDismantAssistant(cxAssis);
+                }
+
+                if (StringUtils.isNotBlank(ccTime)) {
+                    if (ccTime.matches("[0-9/]+")) {
+                        ccTime = ccTime.replace("/", "-");
+                        data.setExitTime(ccTime);
+                    } else if (ccTime.matches("[0-9.]+")) {
+                        ccTime = ccTime.replace(".", "-");
+                        data.setExitTime(ccTime);
+                    } else if (ccTime.matches("[0-9-]+")) {
+                        data.setExitTime(ccTime);
+                    } else {
+                        result = "绗�" + j + "琛�" + "鍑鸿埍鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                        isErr = true;
+                    }
+                }
+
+                if (StringUtils.isNotBlank(ccUnit)) {
+                    data.setExitUnit(ccUnit);
+                }
+                if (StringUtils.isNotBlank(ccStaff)) {
+                    data.setExitStaff(ccStaff);
+                }
+                if (StringUtils.isNotBlank(ccAssis)) {
+                    data.setExitAssistant(ccAssis);
+                }
+
+                if (StringUtils.isNotBlank(tzTime)) {
+                    if (tzTime.matches("[0-9/]+")) {
+                        tzTime = tzTime.replace("/", "-");
+                        data.setReturnWeightTime(tzTime);
+                    } else if (tzTime.matches("[0-9.]+")) {
+                        tzTime = tzTime.replace(".", "-");
+                        data.setReturnWeightTime(tzTime);
+                    } else if (tzTime.matches("[0-9-]+")) {
+                        data.setReturnWeightTime(tzTime);
+                    } else {
+                        result = "绗�" + j + "琛�" + "閫�閲嶆椂闂存棩鏈熸牸寮忎笉瑙勮寖";
+                        isErr = true;
+                    }
+                }
+
+                if (StringUtils.isNotBlank(czr)) {
+                    data.setWeigher(czr);
+                }
+                if (StringUtils.isNotBlank(tzWeight)) {
+                    data.setReturnWeight(tzWeight);
+                }
+                if (StringUtils.isNotBlank(tzAssis)) {
+                    data.setReturnWeightAssistant(tzAssis);
+                }
+
+                if (StringUtils.isNotBlank(rkTime)) {
+                    if (rkTime.matches("[0-9/]+")) {
+                        rkTime = rkTime.replace("/", "-");
+                        data.setWarehouseTime(rkTime);
+                    } else if (rkTime.matches("[0-9.]+")) {
+                        rkTime = rkTime.replace(".", "-");
+                        data.setWarehouseTime(rkTime);
+                    } else if (rkTime.matches("[0-9-]+")) {
+                        data.setWarehouseTime(rkTime);
+                    } else {
+                        result = "绗�" + j + "琛�" + "鍏ュ簱鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                        isErr = true;
+                    }
+                }
+
+                if (StringUtils.isNotBlank(rkStaff)) {
+                    data.setWarehouseStaff(rkStaff);
+                }
+
+                if (StringUtils.isNotBlank(local)) {
+                    data.setCurrentLocation(local);
+                }
+                if (StringUtils.isNotBlank(statusStr)) {
+                    data.setStatus(statusMap.get(statusStr));
+                }
+
+                if (!isErr) {
+                    this.insert(data);
+                }
+                if (isErr) {
+                    err++;
+                    continue;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            result = "瀵煎叆" + row1 + "琛屾暟鎹椂妫�娴嬪埌寮傚父锛屼腑鏂鍏ユ搷浣溿��";
+        }
+
+        suc = sum - err;
+
+        return result;
+    }
+
+    public void exportExcel(String filePath, Long deptId, Long teamGroupId, Long level1NetworkId, Long level3NetworkId, Integer status) {
+        List<ExprotExcelDto> dtos = new ArrayList<>();
+
+        Map<Integer, String> statusMap = new HashMap<>();
+        statusMap.put(0, "杩涜涓�");
+        statusMap.put(1, "宸插畬鎴�");
+
+        ExprotExcelDto dto = new ExprotExcelDto();
+        dto.setSheetName("鎷嗗嵏杩涘害鏄庣粏");
+        List<ExcelColumnDto> columnDto = new ArrayList<>();
+
+        columnDto.add(new ExcelColumnDto("涓�绾ц妭鐐�", "Level1NodeName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("浜岀骇鑺傜偣", "Level2NodeName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("璁惧鍚嶇О", "Level3NetworkName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("閮ㄩ棬", "deptName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("涓撲笟", "teamGroupName", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鑸卞", "cabinName", 10, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("瀛愰儴浠跺悕绉�", "name", 25, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鎷嗗嵏鏃堕棿", "dismantTime", 15, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("鎷嗗嵏鍗曚綅", "dismantUnit", 25, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鎷嗗嵏浜哄憳", "dismantStaff", 15, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鎷嗗嵏鍔╀慨鑹囧憳", "dismantAssistant", 10, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鍑鸿埍鏃堕棿", "exitTime", 10, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("鍑鸿埍鍗曚綅", "exitUnit", 10, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鍑鸿埍浜哄憳", "exitStaff", 15, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鍑鸿埍鍔╀慨鑹囧憳", "exitAssistant", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("閫�閲嶆椂闂�", "returnWeightTime", 20, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("绉伴噸鍛�", "weigher", 15, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("閫�閲嶉噸閲�", "returnWeight", 15, HorizontalAlignment.RIGHT));
+        columnDto.add(new ExcelColumnDto("閫�閲嶅姪淇墖鍛�", "returnWeightAssistant", 20, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鍏ュ簱鏃堕棿", "warehouseTime", 15, HorizontalAlignment.CENTER));
+        columnDto.add(new ExcelColumnDto("鍏ュ簱浜哄憳", "warehouseStaff", 15, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("褰撳墠瀛樻斁浣嶇疆", "currentLocation", 15, HorizontalAlignment.LEFT));
+        columnDto.add(new ExcelColumnDto("鐘舵��", "currStatus", 10, HorizontalAlignment.CENTER));
+
+        List<DjJdgzDismantTrack> list = baseDao.getdata(deptId,teamGroupId, level1NetworkId, level3NetworkId, status);
+
+        for (int i = 0; i < list.size(); i++) {
+            DjJdgzDismantTrack data = list.get(i);
+
+            if (data.getStatus() != null) {
+                data.setCurrStatus(statusMap.get(data.getStatus()));
+            }
+        }
+        String[] filed = {"Level1NodeName", "Level2NodeName", "Level3NetworkName"};
+        TreeFieldUtils.build(list, filed);
+        dto.setColumnDto(columnDto);
+        //dto.setValues(content);
+        dto.setDataList(list);
+
+
+       /* ExprotExcelDto dto2 = new ExprotExcelDto();
+        dto2.setSheetName("鑺傜偣姹囨��");
+        List<ExcelColumnDto> columnDto2 = new ArrayList<>();
+        List<DjJdgzTrackRecord> list2 = baseDao.getSummaryData(teamgroupId, level1NetworkId, level3NetworkId, level3NodeId, status, beginDate, endDate, istq);
+
+
+        columnDto2.add(new ExcelColumnDto("涓�绾ц妭鐐�", "Level1NodeName", 25, HorizontalAlignment.LEFT));
+        columnDto2.add(new ExcelColumnDto("浜岀骇鑺傜偣", "Level2NodeName", 25, HorizontalAlignment.LEFT));
+        columnDto2.add(new ExcelColumnDto("涓夌骇缃戠粶鍚嶇О\n" + "锛堣澶囧悕绉帮級", "Level3NetworkName", 25, HorizontalAlignment.LEFT));
+        columnDto2.add(new ExcelColumnDto("涓夌骇鑺傜偣", "Level3NodeName", 15, HorizontalAlignment.LEFT));
+        columnDto2.add(new ExcelColumnDto("璁″垝\n" + "瀹屾垚鏃堕棿", "RequiredCompletionTime", 12, HorizontalAlignment.CENTER));
+        columnDto2.add(new ExcelColumnDto("鏄惁鑴辨湡", "Istq", 5, HorizontalAlignment.CENTER));
+        columnDto2.add(new ExcelColumnDto("鑴辨湡娆℃暟", "Tqcs", 5, HorizontalAlignment.RIGHT));
+        columnDto2.add(new ExcelColumnDto("鏈�澶ч璁n" + "瀹屾垚鏃堕棿", "Maxtime", 12, HorizontalAlignment.CENTER));
+        columnDto2.add(new ExcelColumnDto("鏈�澶ц劚鏈熷ぉ鏁�", "MaxDay", 10, HorizontalAlignment.RIGHT));
+        columnDto2.add(new ExcelColumnDto("鏈�鏂伴璁n" + "瀹屾垚鏃堕棿", "Zxtime", 12, HorizontalAlignment.CENTER));
+        columnDto2.add(new ExcelColumnDto("鏈�鏂拌劚鏈熷ぉ鏁�", "ZxDay", 10, HorizontalAlignment.RIGHT));
+
+        TreeFieldUtils.build(list2, filed);
+        dto2.setColumnDto(columnDto2);
+        //dto2.setValues(content2);
+        dto2.setDataList(list2);*/
+
+        dtos.add(dto);
+        //dtos.add(dto2);
+        try {
+            ExcelExport.getHSSFWorkbook(filePath, dtos);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public List<StatistDismantDto> getStatist(Long level1Id) {
+        return baseDao.getStatist(level1Id);
     }
 }

--
Gitblit v1.9.1