jinlin
2025-04-28 efce7ce3e63712ecc8b4c3039a73b508fc3ea880
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.example.server.progressTrack.service;
 
import com.example.client.dto.JComboBoxItem;
import com.example.client.service.BaseService;
import com.example.server.progressTrack.Dto.DiagramNodeDto;
import com.example.server.progressTrack.Dto.NetworkNodeStatusDto;
import com.example.server.progressTrack.Dto.ProjectDto;
import com.example.server.progressTrack.dao.DjJdgzNetworkLevel1Dao;
import com.example.server.progressTrack.dao.DjJdgzNetworkLevel1ListDao;
import com.example.server.progressTrack.dao.DjJdgzNetworkLevel2ListDao;
import com.example.server.progressTrack.model.DjJdgzNetworkLevel1;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
 
 
/**
 * dj_jdgz_network_level1
 *
 * @author zt generator
 * @since 1.0.0 2024-12-17
 */
@Service
public class DjJdgzNetworkLevel1Service extends BaseService<DjJdgzNetworkLevel1Dao, DjJdgzNetworkLevel1> {
    @Autowired
    NetWorkDiagramService netWorkDiagramService;
    @Autowired
    private DjJdgzNetworkLevel1ListService djJdgzNetworkLevel1ListService;
    @Autowired
    private DjJdgzNetworkLevel1ListDao djJdgzNetworkLevel1ListDao;
    @Autowired
    private DjJdgzNetworkLevel2ListDao djJdgzNetworkLevel2ListDao;
    @Autowired
    private DjJdgzNetworkLevel2Service djJdgzNetworkLevel2Service;
    /**
     * 分页查询
     *
     * @param queryFilter
     * @return
     */
  /*  public List<DjJdgzNetworkLevel1> page(QueryFilter queryFilter) {
        List<DjJdgzNetworkLevel1> list = baseDao.getList(queryFilter.getQueryParams());
        return queryFilter.getPageList(list);
    }*/
 
    /**
     * 获取节点状态数据
     */
    public List<NetworkNodeStatusDto> getNodeStatusData(Long id) {
        baseDao.setLevel1StatusNull(id);
        baseDao.setLevel1Status(id);
        baseDao.setLevel2StatusNull(id);
        baseDao.setLevel2Status(id);
        List<NetworkNodeStatusDto> list = baseDao.getNodeStatusData(id);
        return list;
    }
 
    public JComboBoxItem[] getProjectList() {
        JComboBoxItem[] list = baseDao.getProjectList();
        return list;
    }
 
    /**
     * 删除
     *
     * @param ids
     */
    public void delete(Long[] ids) {
        super.deleteLogic(ids);
    }
 
    public List<DjJdgzNetworkLevel1> getList(Long shipId) {
        List<DjJdgzNetworkLevel1> list = baseDao.getList(shipId);
        return list;
    }
 
/*    public String getStatusDiagram(Long id) {
        DjJdgzNetworkLevel1 djJdgzNetworkLevel1 = this.get(id);
        String json = djJdgzNetworkLevel1.getContent();
        List<NetworkNodeStatusDto> nodeStatusData = this.getNodeStatusData(id);
        String statusDiagram = netWorkDiagramService.getStatusDiagram(json, null, nodeStatusData);
        return statusDiagram;
    }*/
 
    public void deleteLevel1(Long id) {
        baseDao.deleteLevel3List(id);
        baseDao.deleteLevel3(id);
        baseDao.deleteLevel2List(id);
        baseDao.deleteLevel2(id);
        baseDao.deleteLevel1List(id);
        baseDao.deleteLevel1(id);
    }
 
    public List<DjJdgzNetworkLevel1> getListByLevel3() {
        return baseDao.getListByLevel3();
    }
 
    public String getStatusDiagram(Long id) {
        DjJdgzNetworkLevel1 djJdgzNetworkLevel1 = this.get(id);
        String json = djJdgzNetworkLevel1.getContent();
        List<NetworkNodeStatusDto> nodeStatusData = this.getNodeStatusData(id);
 
        String statusDiagram = netWorkDiagramService.getStatusDiagram(json, null, nodeStatusData);
        return statusDiagram;
    }
 
    public List<DiagramNodeDto> getNodeList(Long id) {
        List<DiagramNodeDto> nodeList = djJdgzNetworkLevel1ListDao.getNodeList(id);
 
        JComboBoxItem[] level2List = djJdgzNetworkLevel2Service.getLevel2List(id);
        for (JComboBoxItem item : level2List) {
            List<DiagramNodeDto> nodeList2 = djJdgzNetworkLevel2ListDao.getNodeList(item.getId());
            nodeList.addAll(nodeList2);
        }
        Collections.sort(nodeList, new Comparator<DiagramNodeDto>() {
            @Override
            public int compare(DiagramNodeDto n1, DiagramNodeDto n2) {
                try {
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    Date date1 = sdf.parse(n1.getRequiredCompletion());
                    Date date2 = sdf.parse(n2.getRequiredCompletion());
                    return date1.compareTo(date2);
                } catch (ParseException e) {
                    throw new IllegalArgumentException("Invalid date format. Please use the format 'yyMMdd'.", e);
                }
            }
        });
 
        return nodeList;
 
    }
 
    public List<NetworkNodeStatusDto> getNodeStatus(Long id) {
        List<NetworkNodeStatusDto> nodeStatusList = this.getNodeStatusData(id);
        JComboBoxItem[] level2List = djJdgzNetworkLevel2Service.getLevel2List(id);
        for (JComboBoxItem item : level2List) {
            List<NetworkNodeStatusDto> nodeStatusList2 = djJdgzNetworkLevel2Service.getNodeStatusData(item.getId());
            nodeStatusList.addAll(nodeStatusList2);
        }
        return nodeStatusList;
    }
 
    public List<DiagramNodeDto> getNodeList2(Long id) {
        List<DiagramNodeDto> nodeList2 =new ArrayList<>();
        JComboBoxItem[] level2List = djJdgzNetworkLevel2Service.getLevel2List(id);
        for (JComboBoxItem item : level2List) {
            nodeList2 = djJdgzNetworkLevel2ListDao.getNodeList(item.getId());
        }
        return nodeList2;
    }
}