From d30e385951ce03335a5023f0775fd144da3c0b88 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 18 三月 2025 11:18:31 +0800
Subject: [PATCH] 修改

---
 src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java |  275 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 250 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
index e011133..2d8cbc5 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
@@ -7,17 +7,26 @@
 import com.example.server.progressTrack.Dto.StatistReportsDto;
 import com.example.server.progressTrack.dao.DjJdgzTrackRecordDao;
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel1;
+import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel3List;
 import com.example.server.progressTrack.model.DjJdgzTrackRecord;
 import com.example.server.teamGroup.service.SysTeamGroupClassService;
 import com.example.server.user.service.UserService;
+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 javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -41,12 +50,14 @@
     @Autowired
     private DjJdgzNetworkLevel3ListService djJdgzNetworkLevel3ListService;
     @Autowired
+    private DjJdgzNetworkLevel3Service djJdgzNetworkLevel3Service;
+    @Autowired
     private UserService sysUserService;
     @Autowired
     private SysTeamGroupClassService sysTeamGroupClassService;
 
 
-    public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Integer status) {
+    public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Long deptId, Long teamId, Long cabinId, String type, Integer status, String name) {
         Long userId = null;
        /* Map adminRole = sysUserService.adminRole();
         Object isTyRole = adminRole.get("isTyRole");
@@ -54,7 +65,7 @@
         if (isTyRole.equals(true) || isYwzRole.equals(true)) {
             userId =  UserContext.getUser().getId();
         }*/
-        List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId, status, userId);
+        List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId,deptId,teamId,cabinId,type, status, name);
         /*if (list != null && list.size() > 0) {
             sysOssService.setListOsses(list, "ProjectProgressFileUpload");
         }*/
@@ -205,7 +216,7 @@
 
     public void exportExcel(String filePath, String teamgroupId, Long level1NetworkId,
                             Long level3NetworkId, Long level3NodeId, Integer status, Date beginDate,
-                            Date endDate, Integer istq) {
+                            Date endDate, Integer istq, List<ExcelColumnDto> columnDto) {
         List<ExprotExcelDto> dtos = new ArrayList<>();
    /*     Map<String, String> keywordMap = dailyPlanService.getReplacement();
         String keywordT = keywordMap.get("ting");*/
@@ -225,26 +236,6 @@
 
         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("褰撳墠鑺傜偣", "Level3NodeName", 20, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("涓撲笟", "TeamGroupName", 20, HorizontalAlignment.CENTER));
-        columnDto.add(new ExcelColumnDto("鎬绘壙淇崟浣嶅強璐熻矗浜�", "GeneralRepair", 25, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("鍒嗘壙淇崟浣嶅強璐熻矗浜�", "Repair", 25, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("璺熻釜鏂瑰紡", "trackMethodStr", 10, HorizontalAlignment.CENTER));
-        columnDto.add(new ExcelColumnDto("鍔╀慨浜�", "TrackPerson", 25, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("鍘傛柟", "TrackedPerson", 25, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("璺熻釜鍦扮偣", "TrackLocation", 10, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("鑺傜偣杩涘睍", "status", 10, HorizontalAlignment.CENTER));
-        columnDto.add(new ExcelColumnDto("鑴辨湡椋庨櫓", "hasDelayRiskStr", 10, HorizontalAlignment.CENTER));
-        columnDto.add(new ExcelColumnDto("棰勮瀹屾垚鏃堕棿", "EstimatedCompletionTime", 15, HorizontalAlignment.CENTER));
-        columnDto.add(new ExcelColumnDto("瀛樺湪闂", "Problem", 20, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("鍚庣画璁″垝", "FollowupPlan", 20, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("澶囨敞", "Remark", 20, HorizontalAlignment.LEFT));
-        columnDto.add(new ExcelColumnDto("濉啓鏃堕棿", "UpdateDate", 15, HorizontalAlignment.CENTER));
 
         List<DjJdgzTrackRecord> list = baseDao.getdata(teamgroupId, level1NetworkId, level3NetworkId, level3NodeId, status, beginDate, endDate, istq);
 
@@ -304,6 +295,240 @@
     }
 
     public List<DjJdgzTrackRecord> getListByImport(Long level1Id, Long level2Id, Long level2NodeId, String selectedIds) {
-        return baseDao.getListByImport(level1Id,level2Id,level2NodeId,selectedIds);
+        return baseDao.getListByImport(level1Id, level2Id, level2NodeId, selectedIds);
+    }
+
+    public String importDiagramFromExcel(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;
+
+            Map<String, Integer> trackMethodMap = new HashMap<>();
+            trackMethodMap.put("绾夸笅", 0);
+            trackMethodMap.put("鐢佃瘽", 1);
+
+            Map<String, Integer> statusMap = new HashMap<>();
+            statusMap.put("杩涜涓�", 0);
+            statusMap.put("宸插畬鎴�", 1);
+
+            Map<String, Integer> hasDelayRiskMap = new HashMap<>();
+            hasDelayRiskMap.put("鏈�", 1);
+            hasDelayRiskMap.put("鏃�", 0);
+
+
+            for (int j = 2; j <= num; j++) {
+                int sort = 0;
+                DjJdgzTrackRecord data = new DjJdgzTrackRecord();
+
+                boolean isErr = false;
+                row1 = j + 1;
+                String pattern = "yyyy-MM-dd";
+                Row row = sheet.getRow(j);
+
+                String idStr = ImportUtil.getCellValue(row, 0, pattern);
+                String dataDate = ImportUtil.getCellValue(row, 1, pattern);
+                String name = ImportUtil.getCellValue(row, 2, pattern);
+                String progressName = ImportUtil.getCellValue(row, 3, pattern);
+                String trackMethodStr = ImportUtil.getCellValue(row, 4, pattern);
+                String trackLocationStr = ImportUtil.getCellValue(row, 5, pattern);
+                String currentStatusStr = ImportUtil.getCellValue(row, 6, pattern);
+                String hasDelayRiskStr = ImportUtil.getCellValue(row, 7, pattern);
+                String estimatedCompletionTimeStr = ImportUtil.getCellValue(row, 8, pattern);
+                String problemStr = ImportUtil.getCellValue(row, 9, pattern);
+                String followupPlanStr = ImportUtil.getCellValue(row, 10, pattern);
+                String remarkStr = ImportUtil.getCellValue(row, 11, pattern);
+                String trackPersonStr = ImportUtil.getCellValue(row, 12, pattern);
+                String trackPersonContact = ImportUtil.getCellValue(row, 13, pattern);
+                String trackPersonUnit = ImportUtil.getCellValue(row, 14, pattern);
+                String trackedPerson = ImportUtil.getCellValue(row, 15, pattern);
+                String trackedPersonContact = ImportUtil.getCellValue(row, 16, pattern);
+                String trackedPersonUnit = ImportUtil.getCellValue(row, 17, pattern);
+                String generalRepairUnit = ImportUtil.getCellValue(row, 18, pattern);
+                String generalRepairUnitDirector = ImportUtil.getCellValue(row, 19, pattern);
+                String generalRepairUnitContact = ImportUtil.getCellValue(row, 20, pattern);
+                String repairUnit = ImportUtil.getCellValue(row, 21, pattern);
+                String repairUnitDirector = ImportUtil.getCellValue(row, 22, pattern);
+                String repairUnitContact = ImportUtil.getCellValue(row, 23, pattern);
+
+                DjJdgzNetworkLevel3 level3 = djJdgzNetworkLevel3Service.get(Long.parseLong(idStr));
+                Long level1NetworkId = level3.getLevel1NetworkId();
+
+                Long id = UUIDUtil.generateId();
+
+                if (StringUtils.isEmpty(dataDate)) {
+                    result = "绗�" + j + "琛�" + "褰曞叆鏃堕棿涓嶈兘涓虹┖";
+                    isErr = true;
+                    continue;
+                } else {
+                    int weekNo = this.getWeekNo(level1NetworkId);
+                    data.setWeekNo(weekNo);
+                    data.setLevel1NetworkId(level1NetworkId);
+                    data.setLevel3NetworkId(level3.getId());
+                }
+
+                if (StringUtils.isEmpty(name)) {
+                    result = "绗�" + j + "琛�" + "璁惧鍚嶇О涓嶈兘涓虹┖";
+                    isErr = true;
+                    continue;
+                } else {
+                    data.setId(id);
+                    data.setLevel3NetworkName(name);
+                }
+
+                if (StringUtils.isEmpty(progressName)) {
+                    result = "绗�" + j + "琛�" + "鑺傜偣鍚嶇О涓嶈兘涓虹┖";
+                    isErr = true;
+                    continue;
+                } else {
+                    List<DjJdgzNetworkLevel3List> list = djJdgzNetworkLevel3ListService.getList(level3.getId());
+                    for (DjJdgzNetworkLevel3List item : list) {
+                        if(item.getProcessName().equals(progressName)){
+                            data.setLevel3NodeId(item.getId());
+                            data.setEstimatedCompletionTime(item.getRequiredCompletionTime());
+                            break;
+                        }
+                    }
+                    data.setProcessName(progressName);
+                }
+
+                if (StringUtils.isEmpty(trackMethodStr)) {
+                    data.setTrackMethod(0);
+                } else {
+                    data.setTrackMethod(trackMethodMap.get(trackMethodStr));
+                }
+
+                if (StringUtils.isNotBlank(trackLocationStr)) {
+                    data.setTrackLocation(trackLocationStr);
+                }
+
+                if (StringUtils.isEmpty(currentStatusStr)) {
+                    data.setCurrentStatus(0);
+                } else {
+                    data.setCurrentStatus(statusMap.get(currentStatusStr));
+                }
+
+                if (StringUtils.isEmpty(hasDelayRiskStr)) {
+                    data.setHasDelayRisk(0);
+                } else {
+                    data.setHasDelayRisk(hasDelayRiskMap.get(hasDelayRiskStr));
+                }
+
+                if (StringUtils.isNotBlank(estimatedCompletionTimeStr)) {
+                    if (estimatedCompletionTimeStr.matches("[0-9/]+")) {
+                        estimatedCompletionTimeStr = estimatedCompletionTimeStr.replace("/", "-");
+                        data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
+                    } else if (estimatedCompletionTimeStr.matches("[0-9.]+")) {
+                        estimatedCompletionTimeStr = estimatedCompletionTimeStr.replace(".", "-");
+                        data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
+                    } else if (estimatedCompletionTimeStr.matches("[0-9-]+")) {
+                        data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
+                    } else {
+                        result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                        isErr = true;
+                    }
+                }
+
+                if (StringUtils.isNotBlank(problemStr)) {
+                    data.setProblem(problemStr);
+                }
+
+                if (StringUtils.isNotBlank(followupPlanStr)) {
+                    data.setFollowupPlan(followupPlanStr);
+                }
+
+                if (StringUtils.isNotBlank(remarkStr)) {
+                    data.setRemark(remarkStr);
+                }
+
+                if (StringUtils.isNotBlank(trackPersonStr)) {
+                    data.setTrackPerson(trackPersonStr);
+                }
+
+                if (StringUtils.isNotBlank(trackPersonContact)) {
+                    data.setTrackPersonContact(trackPersonContact);
+                }
+
+                if (StringUtils.isNotBlank(trackPersonUnit)) {
+                    data.setTrackPersonUnit(trackPersonUnit);
+                }
+
+                if (StringUtils.isNotBlank(trackedPerson)) {
+                    data.setTrackPerson(trackPersonStr);
+                }
+
+                if (StringUtils.isNotBlank(trackedPersonContact)) {
+                    data.setTrackPersonContact(trackPersonContact);
+                }
+
+                if (StringUtils.isNotBlank(trackedPersonUnit)) {
+                    data.setTrackPersonUnit(trackPersonUnit);
+                }
+                if (StringUtils.isNotBlank(generalRepairUnit)) {
+                    data.setGeneralRepairUnit(generalRepairUnit);
+                }
+
+                if (StringUtils.isNotBlank(generalRepairUnitContact)) {
+                    data.setGeneralRepairUnitContact(generalRepairUnitContact);
+                }
+                if (StringUtils.isNotBlank(generalRepairUnitDirector)) {
+                    data.setGeneralRepairUnitDirector(generalRepairUnitDirector);
+                }
+                if (StringUtils.isNotBlank(generalRepairUnit)) {
+                    data.setRepairUnit(repairUnit);
+                }
+                if (StringUtils.isNotBlank(generalRepairUnit)) {
+                    data.setRepairUnitContact(repairUnitContact);
+                }
+                if (StringUtils.isNotBlank(generalRepairUnit)) {
+                    data.setRepairUnitDirector(repairUnitDirector);
+                }
+
+                if (!isErr) {
+                    data.setIsUpdate(false);
+                    this.save(data);
+                }
+                if (isErr) {
+                    err++;
+                    continue;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            result = "瀵煎叆" + row1 + "琛屾暟鎹椂妫�娴嬪埌寮傚父锛屼腑鏂鍏ユ搷浣溿��";
+        }
+
+        suc = sum - err;
+
+        return result;
+    }
+
+    public void retract(Long id) {
+        baseDao.retract(id);
     }
 }

--
Gitblit v1.9.1