1 package ch.ige.edossier.web.server;
2
3 import java.sql.SQLException;
4 import java.util.*;
5 import org.apache.log4j.Logger;
6 import ch.ige.edossier.util.ImageProcessor;
7 import ch.ige.edossier.util.ServerProperties;
8 import ch.ige.edossier.web.server.dao.*;
9 import ch.ige.edossier.web.vo.*;
10
11
19 public class DossierAssembler
20 {
21 private static final Logger LOG = Logger.getLogger( DossierAssembler.class );
23
24 private Properties properties = null;
25
26
29 public DossierAssembler()
30 {}
31
32
38 public DossierOverviewVO getDossiers( int accountId ) throws Exception
39 {
40 DossierDAO dossierDAO = new DossierDAO();
41 List listDossierVO = dossierDAO.selectByAccount( accountId );
42
43 DossierOverviewVO overviewVO = new DossierOverviewVO();
44
45 for( int i = 0; i < listDossierVO.size(); i++ )
46 {
47 DossierVO dossierVO = ( DossierVO )listDossierVO.get( i );
48
49 switch( dossierVO.getStateId() )
50 {
51 case InterceptionVO.STATUS_NEW:
52 overviewVO.getListNewDossier().add( dossierVO );
53 break;
54 case InterceptionVO.STATUS_READ:
55 overviewVO.getListOpenDossier().add( dossierVO );
56 break;
57 case InterceptionVO.STATUS_ANSWERD:
58 overviewVO.getListOpenDossier().add( dossierVO );
59 break;
60 case InterceptionVO.STATUS_FINISHED:
61 overviewVO.getListFinishedNewDossier().add( dossierVO );
62 break;
63 }
64 }
65 return overviewVO;
66 }
67
68
74 public DossierVO getDossier( int dossierId ) throws Exception
75 {
76 List listAdrBailor = new ArrayList();
77 List listAdrMasterAgent = new ArrayList();
78 List listAdrAgent = new ArrayList();
79
80 DossierVO dossierVO = new DossierDAO().select( dossierId );
81
82 if( dossierVO != null )
83 {
84 getDetailAddress( dossierId, listAdrBailor, listAdrMasterAgent, listAdrAgent );
85 dossierVO.setListAdrBailor( listAdrBailor );
86 dossierVO.setListAdrMasterAgent( listAdrMasterAgent );
87 dossierVO.setListAdrAgent( listAdrAgent );
88 dossierVO.setListPriorityVO( getPriorities( dossierId ) );
89 dossierVO.setListTMKindVO( getTMKinds( dossierId, dossierVO.getLanguageCd() ) );
90 dossierVO.setTmTypeVO( new TMTypeDAO().select( dossierVO.getTmtypeId() ) );
91 dossierVO.setLanguage( getLanguage( dossierVO.getLanguageCd() ) );
92 dossierVO.setImageVO( writeBildFile( dossierVO ) );
93 return dossierVO;
94 }
95 return null;
96 }
97
98
106 private void getDetailAddress( int dossierId, List listAdrBailor, List listAdrMasterAgent, List listAdrAgent ) throws Exception
107 {
108 Iterator iter = getAddress( dossierId ).iterator();
109 while( iter.hasNext() )
110 {
111 AddressVO addressVO = ( AddressVO )iter.next();
112
113 switch( addressVO.getRoleId() )
114 {
115 case 1:
116 listAdrBailor.add( addressVO );
117 break;
118 case 2:
119 listAdrMasterAgent.add( addressVO );
120 break;
121 case 3:
122 listAdrAgent.add( addressVO );
123 break;
124 }
125 }
126 }
127
128
134 private List getAddress( int dossierId ) throws Exception
135 {
136 try
137 {
138 return new AddressDAO().select( dossierId );
139 }
140 catch( SQLException sqlex )
141 {
142 LOG.error( "SQL-Fehler im AddressDAO.select(dossierId): " + sqlex.getMessage() );
143 throw sqlex;
144 }
145 }
146
147
153 private List getPriorities( int dossierId ) throws Exception
154 {
155 try
156 {
157 return new PriorityDAO().select( dossierId );
158 }
159 catch( SQLException sqlex )
160 {
161 LOG.error( "SQL-Fehler im PriorityDAO.select(dossierId): " + sqlex.getMessage() );
162 throw sqlex;
163 }
164 }
165
166
173 private List getTMKinds( int dossierId, int languageCd ) throws Exception
174 {
175 try
176 {
177 return new TMKindDAO().select( dossierId, languageCd );
178 }
179 catch( SQLException sqlex )
180 {
181 LOG.error( "SQL-Fehler im TMKindDAO.select(dossierId, languageCd): " + sqlex.getMessage() );
182 throw sqlex;
183 }
184 }
185
186
192 private String getLanguage( int languageCd ) throws Exception
193 {
194 properties = ServerProperties.loadServerProperties();
195 String language = properties.getProperty( languageCd + "_language" );
197 if( language == null )
199 {
200 language = "---";
201 }
202 return language;
203 }
204
205
212 private ImageVO writeBildFile( DossierVO dossierVO ) throws Exception
213 {
214 ImageVO imageVO = new DossierDAO().selectImage( dossierVO.getDossierId() );
215
216 if( imageVO.getImage() != null && imageVO.getImage().length > 0 )
217 {
218 properties = ServerProperties.loadServerProperties();
219 String imageName = "bild_" + dossierVO.getDossierId() + ".jpg";
220 String path = ( properties.getProperty( "pathImages" ) ) + imageName;
221 imageVO.setImagePath( "/tmp/" + imageName );
222
223 Map map = ImageProcessor.getInstance().writeImage( path, imageVO.getImage() );
224 return ImageProcessor.getInstance().defineDimension( imageVO, map );
225 }
226 else
227 {
228 return null;
229 }
230 }
231 }
232