严智鑫
2025-11-13 945bc394f40d8af1072a53da9a94f24207124e6d
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
159
160
161
162
163
164
165
166
package com.northglass.repository;
 
import java.util.List;
 
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
 
import com.northglass.constants.StateConstants.LoadMachineTaskState;
import com.northglass.entity.LoadMachineTask;
import com.northglass.entity.OptPattern;
 
 
public interface LoadMachineTaskDao extends JpaRepository<LoadMachineTask, Long> {
 
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.IN_WORK + "' and t.loadMachine.id = ?1")
    public LoadMachineTask findInWorkTaskByLoadMachine(Long loadMachineId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WAITING + "' and t.loadMachine.id = ?1")
    public List<LoadMachineTask> findTaskByLoadMachine(Long loadMachineId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.IN_WORK + "' and t.loadMachineRack.id = ?1")
    public LoadMachineTask findInWorkTaskByLoadMachineRack(Long loadMachineRackId);
    
    //正在切割的玻璃集合
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WORKING + "' and t.loadMachineRack.id = ?1")
    public LoadMachineTask findWorkTaskByLoadMachineRack(Long loadMachineRackId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WAITING + "' and t.loadMachine.id = ?1")
    public List<LoadMachineTask> findWaitingTasksByLoadMachine(Long loadMachineId);
    
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WAITING + "' and t.loadMachine.id = ?1 order by number")
    public List<LoadMachineTask> findNumberByLoadMachine(Long loadMachineId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WAITING + "' and t.loadMachineRack.id = ?1")
    public List<LoadMachineTask> findWaitingTasksByLoadMachineRack(Long loadMachineRackId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WAITING + "' and t.optPattern.id = ?1")
    public List<LoadMachineTask> findWaitingTasksByOptPattern(Long optPatternId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WARNING + "' and t.loadMachine.id = ?1")
    public List<LoadMachineTask> findWarningTasksByLoadMachine(Long loadMachineId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.COMPLETED + "' and t.loadMachine.id = ?1")
    public List<LoadMachineTask> findCompletedTasksByLoadMachine(Long loadMachineId);
    
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.WORKING + "' and t.loadMachine.id = ?1")
    public LoadMachineTask findCutStartByLoadMachine(Long loadMachineId);
 
    @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.CUT_FINISH + "' and t.loadMachine.id = ?1")
    public List<LoadMachineTask> findCutFinishByLoadMachine(Long loadMachineId);
    
    @Query("select t from LoadMachineTask t where t.loadMachine.id = ?1")
    public List<LoadMachineTask> findById(Long loadMachineId);
    
    //找到1号线那个最新的状态为等待中或者是正在工作的opt_pattern
      @Query("select m.optPattern from LoadMachineTask m where m.id=(select max(id) from LoadMachineTask p where (p.state = '" + LoadMachineTaskState.WAITING + "' or p.state = '" + LoadMachineTaskState.IN_WORK + "' or p.state = '" + LoadMachineTaskState.WAITING_START + "') and p.loadMachine.id='1')")
    public OptPattern findOptId();
    
      //找到2号线那个状态为等待中或者是正在工作的opt_pattern
      @Query("select m.optPattern from LoadMachineTask m where m.id=(select max(id) from LoadMachineTask p where (p.state = '" + LoadMachineTaskState.WAITING + "' or p.state = '" + LoadMachineTaskState.IN_WORK + "' or p.state = '" + LoadMachineTaskState.WAITING_START + "') and p.loadMachine.id='2')")
    public OptPattern findOptId2();
      
      //找到1号线那个最新的状态为等待中或者是正在工作的opt_pattern(用于结束任务)
      @Query("select m.optPattern from LoadMachineTask m where m.id=(select max(id) from LoadMachineTask p where p.state = '" + LoadMachineTaskState.COMPLETED + "'  and p.loadMachine.id='1')")
    public OptPattern lastCompleteTask();
    
      //找到2号线那个状态为等待中或者是正在工作的opt_pattern(用于结束任务)
      @Query("select m.optPattern from LoadMachineTask m where m.id=(select max(id) from LoadMachineTask p where p.state = '" + LoadMachineTaskState.COMPLETED + "'  and p.loadMachine.id='2')")
    public OptPattern lastCompleteTask2();
      
      
      //1号线等待中的任务
      @Query("select t from LoadMachineTask t where t.state= '" + LoadMachineTaskState.WAITING + "' and t.loadMachine.id='1'")
    public List<LoadMachineTask> findByState();
      
      //一号线正在工作
      @Query("select t from LoadMachineTask t where t.state= '" + LoadMachineTaskState.IN_WORK + "' and t.loadMachine.id='1'")
    public LoadMachineTask findByStatework1();
      
    //二号线正在工作
      @Query("select t from LoadMachineTask t where t.state= '" + LoadMachineTaskState.IN_WORK + "' and t.loadMachine.id='2'")
    public LoadMachineTask findByStatework2();
      
      
      //2号线等待中的任务
      @Query("select t from LoadMachineTask t where t.state= '" + LoadMachineTaskState.WAITING + "' and t.loadMachine.id='2'")
    public List<LoadMachineTask> findByState2();
      
      
      //相应产线上是否有切割任务
      @Query("select t from LoadMachineTask t where t.loadMachine.id= ?1")
    public List<LoadMachineTask> findTask(Long prodLine);
      
    @Query("select t from LoadMachineTask t where t.loadMachine.id = ?1 order by number")
    public List<LoadMachineTask> findSortTask(Long loadMachineId);
      
      //根据optpattern_id找到上片对象
      @Query("select t from LoadMachineTask t where t.optPattern.id = ?1")
    public List<LoadMachineTask> findByOptId(Long optPatternId);
      
      //产线上正在工作的对象
      @Query("select t from LoadMachineTask t where t.state = '" + LoadMachineTaskState.IN_WORK + "' and t.loadMachine.id = ?1")
    public LoadMachineTask findWorkingGlass(Long loadMachineId);
      
      //产线中的任务(排除已完成)
      @Query("select t from LoadMachineTask t where (t.state= '" + LoadMachineTaskState.WAITING + "' or t.state = '" + LoadMachineTaskState.IN_WORK + "') and t.loadMachine.id=?1")
    public List<LoadMachineTask> findNoComplete(Long group);
      
      //产线中的最后一个状态为已完成的任务
      @Query("select m from LoadMachineTask m where m.id = (select max(id) from LoadMachineTask t where t.state='" + LoadMachineTaskState.COMPLETED + "' and t.loadMachine.id=?1)")
    public LoadMachineTask findLastCompleted(Long group);
      
  //111
      @Query("select t from LoadMachineTask t where t.loadMachine.id= ?1")
    public List<LoadMachineTask> getLoadMachinetask(Long group);
      
      //产线中的下一个id的任务
      @Query("select m from LoadMachineTask m where m.id=?1 and m.loadMachine.id=?2")
    public LoadMachineTask findNextTask(Long id,Long group);
      
      //产线中的第一个状态为等待中的任务
      @Query("select t from LoadMachineTask t where t.id = (select min(id) from LoadMachineTask m where m.state='" + LoadMachineTaskState.WAITING + "' and m.loadMachine.id=?1)")
    public LoadMachineTask findFirstWaitingTask(Long group);
      
    //产线中的id最小的状态为待开始,等待中或者正在工作的任务
      @Query("select t from LoadMachineTask t where t.id = (select min(id) from LoadMachineTask m where (m.state='" + LoadMachineTaskState.WAITING_START + "' or m.state='" + LoadMachineTaskState.WAITING + "' or m.state='" + LoadMachineTaskState.IN_WORK + "') and m.loadMachine.id=?1)")
    public LoadMachineTask findGotTask(Long loadMachineID);
      
    //产线中是否有状态不是完成的记录
      @Query("select m from LoadMachineTask m where m.loadMachine.id=?1 and m.state<>'" + LoadMachineTaskState.COMPLETED +"'")
    public List<LoadMachineTask> findNotCompletedTask(Long id);
      
  //产线中是否有状态不是完成的记录
      @Query("select m from LoadMachineTask m where m.loadMachine.id=?1 and m.state<>'" + LoadMachineTaskState.COMPLETED +"'")
    public List<LoadMachineTask> findNotCutTask(Long id);
      
      //清空产线下的任务
      @Modifying
      @Query("delete from LoadMachineTask m where m.loadMachine.id=?1")
      public void deleteByLoadMachineId(Long id);
      
      //清空optpattern下的对象
      @Modifying
      @Query("delete from LoadMachineTask m where m.optPattern.id=?1")
      public void deleteByPatternId(Long id);
      
      
      //找到产线上缺片状态的信息
    @Query("select t from LoadMachineTask t where t.state = '" + LoadMachineTaskState.LACK_PIECE+"' and t.loadMachine.id=?1")
      public List<LoadMachineTask> findLackPiece(Long loadMachineId);
    
    //找到暂停的任务
       @Query("select t from LoadMachineTask t where t.state ='" + LoadMachineTaskState.STOP_TASK + "' and t.loadMachine.id = ?1")
        public List<LoadMachineTask> findStopTasksByLoadMachine(Long loadMachineId);
       
       
     //找到暂停的任务
       @Query("update LoadMachineTask set number = 0 where 1=1")
        public List<LoadMachineTask> updateSort();
       
        //根据optpattern_id找到上片对象
          @Query("update  LoadMachineTask set number = ?1 where optPattern.id = ?2 and number = 0")
        public List<LoadMachineTask> findByOptId(int number,Long optPatternId);
}