Commit 747cee697611851f8c07b81eb70e6b3eb408d797
1 parent
17992341fc
Exists in
master
and in
6 other branches
孕前优生
Showing 2 changed files with 147 additions and 46 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java
View file @
747cee6
... | ... | @@ -10,6 +10,11 @@ |
10 | 10 | public class PreEugenicsBaseListRequest extends BaseQuery { |
11 | 11 | |
12 | 12 | /** |
13 | + * 检索类型 1/丈夫 2/妻子 3/全部(默认) | |
14 | + */ | |
15 | + private String searchType = "3"; | |
16 | + | |
17 | + /** | |
13 | 18 | * 丈夫身份证号码/妻子身份证号码 |
14 | 19 | */ |
15 | 20 | private String idCardNo; |
... | ... | @@ -52,6 +57,14 @@ |
52 | 57 | private String area; |
53 | 58 | private String street; |
54 | 59 | |
60 | + | |
61 | + public String getSearchType() { | |
62 | + return searchType; | |
63 | + } | |
64 | + | |
65 | + public void setSearchType(String searchType) { | |
66 | + this.searchType = searchType; | |
67 | + } | |
55 | 68 | |
56 | 69 | public String getPhone() { |
57 | 70 | return phone; |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java
View file @
747cee6
... | ... | @@ -4,6 +4,7 @@ |
4 | 4 | import java.util.LinkedList; |
5 | 5 | import java.util.List; |
6 | 6 | |
7 | +import org.springframework.beans.BeanUtils; | |
7 | 8 | import org.springframework.beans.factory.annotation.Autowired; |
8 | 9 | import org.springframework.data.domain.Sort; |
9 | 10 | import org.springframework.data.mongodb.core.MongoTemplate; |
... | ... | @@ -120,7 +121,7 @@ |
120 | 121 | public BaseResponse edit(PreEugenicsBaseRequest param) { |
121 | 122 | PreEugenicsBaseModel model = param; |
122 | 123 | String id = model.getId(); |
123 | - if (StringUtils.isNum(id)) { | |
124 | + if (StringUtils.isEmpty(id)) { | |
124 | 125 | return new BaseResponse("参数缺失", ErrorCodeConstants.PARAMETER_ERROR); |
125 | 126 | } |
126 | 127 | Query query = Query.query(Criteria.where("id").is(param.getId())); |
127 | 128 | |
128 | 129 | |
129 | 130 | |
130 | 131 | |
131 | 132 | |
... | ... | @@ -139,26 +140,24 @@ |
139 | 140 | @Override |
140 | 141 | public BaseListResponse listPage(PreEugenicsBaseListRequest param) { |
141 | 142 | Query query = new Query(); |
143 | + String searchType = param.getSearchType(); | |
142 | 144 | String idCardNo = param.getIdCardNo(); |
143 | - if (StringUtils.isNotEmpty(idCardNo)) { | |
144 | - query.addCriteria(Criteria.where("husbandCardNo").is(idCardNo).orOperator(Criteria.where("wifeCardNo").is(idCardNo))); | |
145 | - } | |
145 | + query = getQueryByIdCardNo(query, searchType, idCardNo); | |
146 | + | |
146 | 147 | String name = param.getName(); |
147 | - if (StringUtils.isNotEmpty(name)) { | |
148 | - query.addCriteria(Criteria.where("husbandName").is(name).orOperator(Criteria.where("wifeName").is(name))); | |
149 | - } | |
148 | + query = getQueryByName(query, searchType, name); | |
149 | + | |
150 | 150 | String phone = param.getPhone(); |
151 | - if (StringUtils.isNotEmpty(phone)) { | |
152 | - query.addCriteria(Criteria.where("husbandPhone").is(phone).orOperator(Criteria.where("wifePhone").is(phone))); | |
153 | - } | |
151 | + query = getQueryByPhone(query, searchType, phone); | |
152 | + | |
154 | 153 | String number = param.getNumber(); |
155 | - if (StringUtils.isNotEmpty(number)) { | |
156 | - query.addCriteria(Criteria.where("husbandNo").is(number).orOperator(Criteria.where("wifeNo").is(number))); | |
157 | - } | |
154 | + query = getQueryByNumber(query, searchType, number); | |
155 | + | |
158 | 156 | String hospitalId = param.getHospitalId(); |
159 | 157 | if (StringUtils.isNotEmpty(hospitalId)) { |
160 | 158 | query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); |
161 | 159 | } |
160 | + | |
162 | 161 | String createUser = param.getCreateUser(); |
163 | 162 | if (StringUtils.isNotEmpty(createUser)) { |
164 | 163 | query.addCriteria(Criteria.where("createUser").is(createUser)); |
... | ... | @@ -171,38 +170,8 @@ |
171 | 170 | query.addCriteria(Criteria.where("createUser").gte(dayFirstSecond).lte(dayLastSecond)); |
172 | 171 | } |
173 | 172 | |
174 | - String provinceId = param.getProvince(); | |
175 | - if (StringUtils.isNotEmpty(provinceId)) { | |
176 | - query.addCriteria(Criteria.where("husbandAccountCity").is(provinceId) | |
177 | - .orOperator(Criteria.where("husbandCurrentProvince").is(provinceId)) | |
178 | - .orOperator(Criteria.where("wifeAccountProvince").is(provinceId)) | |
179 | - .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId)) | |
180 | - ); | |
181 | - String cityId = param.getCity(); | |
182 | - if (StringUtils.isNotEmpty(cityId)) { | |
183 | - query.addCriteria(Criteria.where("husbandAccountCity").is(cityId) | |
184 | - .orOperator(Criteria.where("husbandCurrentCity").is(cityId)) | |
185 | - .orOperator(Criteria.where("wifeAccountCity").is(cityId)) | |
186 | - .orOperator(Criteria.where("wifeCurrentCity").is(cityId)) | |
187 | - ); | |
188 | - String areaId = param.getArea(); | |
189 | - if (StringUtils.isNotEmpty(areaId)) { | |
190 | - query.addCriteria(Criteria.where("husbandAccountArea").is(areaId) | |
191 | - .orOperator(Criteria.where("husbandCurrentArea").is(areaId)) | |
192 | - .orOperator(Criteria.where("wifeAccountArea").is(areaId)) | |
193 | - .orOperator(Criteria.where("wifeCurrentArea").is(areaId)) | |
194 | - ); | |
195 | - String streetId = param.getStreet(); | |
196 | - if (StringUtils.isNotEmpty(streetId)) { | |
197 | - query.addCriteria(Criteria.where("husbandAccountStreet").is(streetId) | |
198 | - .orOperator(Criteria.where("husbandCurrentStreet").is(streetId)) | |
199 | - .orOperator(Criteria.where("wifeAccountStreet").is(streetId)) | |
200 | - .orOperator(Criteria.where("wifeCurrentStreet").is(streetId)) | |
201 | - ); | |
202 | - } | |
203 | - } | |
204 | - } | |
205 | - } | |
173 | + query = getQueryByAddress(param, searchType, query); | |
174 | + | |
206 | 175 | query.with(new Sort(Sort.Direction.DESC, "created")); |
207 | 176 | long count = mongoTemplate.count(query, PreEugenicsBaseModel.class); |
208 | 177 | param.mysqlBuild((int) count); |
209 | 178 | |
... | ... | @@ -219,13 +188,132 @@ |
219 | 188 | return baseListResponse; |
220 | 189 | } |
221 | 190 | |
191 | + private Query getQueryByAddress(PreEugenicsBaseListRequest param, String searchType, Query query) { | |
192 | + String provinceId = param.getProvince(); | |
193 | + if (StringUtils.isNotEmpty(provinceId)) { | |
194 | + if ("1".equals(searchType)) { | |
195 | + query.addCriteria(Criteria.where("husbandAccountCity").is(provinceId) | |
196 | + .orOperator(Criteria.where("husbandCurrentProvince").is(provinceId))); | |
197 | + } else if ("2".equals(searchType)) { | |
198 | + query.addCriteria(Criteria.where("wifeAccountProvince").is(provinceId) | |
199 | + .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId))); | |
200 | + } else { | |
201 | + query.addCriteria(Criteria.where("husbandAccountCity").is(provinceId) | |
202 | + .orOperator(Criteria.where("husbandCurrentProvince").is(provinceId)) | |
203 | + .orOperator(Criteria.where("wifeAccountProvince").is(provinceId)) | |
204 | + .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId))); | |
205 | + } | |
206 | + String cityId = param.getCity(); | |
207 | + if (StringUtils.isNotEmpty(cityId)) { | |
208 | + if ("1".equals(searchType)) { | |
209 | + query.addCriteria(Criteria.where("husbandAccountCity").is(cityId) | |
210 | + .orOperator(Criteria.where("husbandCurrentCity").is(cityId))); | |
211 | + } else if ("2".equals(searchType)) { | |
212 | + query.addCriteria(Criteria.where("wifeAccountProvince").is(provinceId) | |
213 | + .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId))); | |
214 | + } else { | |
215 | + query.addCriteria(Criteria.where("husbandAccountCity").is(cityId) | |
216 | + .orOperator(Criteria.where("husbandCurrentCity").is(cityId)) | |
217 | + .orOperator(Criteria.where("wifeAccountCity").is(cityId)) | |
218 | + .orOperator(Criteria.where("wifeCurrentCity").is(cityId))); | |
219 | + } | |
220 | + String areaId = param.getArea(); | |
221 | + if (StringUtils.isNotEmpty(areaId)) { | |
222 | + if ("1".equals(searchType)) { | |
223 | + query.addCriteria(Criteria.where("husbandAccountArea").is(areaId) | |
224 | + .orOperator(Criteria.where("husbandCurrentArea").is(areaId))); | |
225 | + } else if ("2".equals(searchType)) { | |
226 | + query.addCriteria(Criteria.where("wifeAccountArea").is(areaId) | |
227 | + .orOperator(Criteria.where("wifeCurrentArea").is(areaId))); | |
228 | + } else { | |
229 | + query.addCriteria(Criteria.where("husbandAccountArea").is(areaId) | |
230 | + .orOperator(Criteria.where("husbandCurrentArea").is(areaId)) | |
231 | + .orOperator(Criteria.where("wifeAccountArea").is(areaId)) | |
232 | + .orOperator(Criteria.where("wifeCurrentArea").is(areaId))); | |
233 | + } | |
234 | + String streetId = param.getStreet(); | |
235 | + if (StringUtils.isNotEmpty(streetId)) { | |
236 | + if ("1".equals(searchType)) { | |
237 | + query.addCriteria(Criteria.where("husbandAccountStreet").is(streetId) | |
238 | + .orOperator(Criteria.where("husbandCurrentStreet").is(streetId))); | |
239 | + } else if ("2".equals(searchType)) { | |
240 | + query.addCriteria(Criteria.where("wifeAccountStreet").is(streetId) | |
241 | + .orOperator(Criteria.where("wifeCurrentStreet").is(streetId)));; | |
242 | + } else { | |
243 | + query.addCriteria(Criteria.where("husbandAccountStreet").is(streetId) | |
244 | + .orOperator(Criteria.where("husbandCurrentStreet").is(streetId)) | |
245 | + .orOperator(Criteria.where("wifeAccountStreet").is(streetId)) | |
246 | + .orOperator(Criteria.where("wifeCurrentStreet").is(streetId))); | |
247 | + } | |
248 | + } | |
249 | + } | |
250 | + } | |
251 | + } | |
252 | + return query; | |
253 | + } | |
254 | + | |
255 | + private Query getQueryByNumber(Query query, String searchType, String number) { | |
256 | + if (StringUtils.isNotEmpty(number)) { | |
257 | + if ("1".equals(searchType)) { | |
258 | + return query.addCriteria(Criteria.where("husbandNo").is(number)); | |
259 | + } | |
260 | + if ("2".equals(searchType)) { | |
261 | + return query.addCriteria(Criteria.where("wifeNo").is(number)); | |
262 | + } | |
263 | + return query.addCriteria(Criteria.where("husbandNo").is(number).orOperator(Criteria.where("wifeNo").is(number))); | |
264 | + } | |
265 | + return query; | |
266 | + } | |
267 | + | |
268 | + private Query getQueryByPhone(Query query, String searchType, String phone) { | |
269 | + if (StringUtils.isNotEmpty(phone)) { | |
270 | + if ("1".equals(searchType)) { | |
271 | + return query.addCriteria(Criteria.where("husbandPhone").is(phone)); | |
272 | + } | |
273 | + if ("2".equals(searchType)) { | |
274 | + return query.addCriteria(Criteria.where("wifePhone").is(phone)); | |
275 | + } | |
276 | + return query.addCriteria(Criteria.where("husbandPhone").is(phone).orOperator(Criteria.where("wifePhone").is(phone))); | |
277 | + } | |
278 | + return query; | |
279 | + } | |
280 | + | |
281 | + private Query getQueryByName(Query query, String searchType, String name) { | |
282 | + if (StringUtils.isNotEmpty(name)) { | |
283 | + if ("1".equals(searchType)) { | |
284 | + return query.addCriteria(Criteria.where("husbandName").is(name)); | |
285 | + } | |
286 | + if ("2".equals(searchType)) { | |
287 | + return query.addCriteria(Criteria.where("wifeName").is(name)); | |
288 | + } | |
289 | + return query.addCriteria(Criteria.where("husbandName").is(name).orOperator(Criteria.where("wifeName").is(name))); | |
290 | + } | |
291 | + return query; | |
292 | + } | |
293 | + | |
294 | + private Query getQueryByIdCardNo(Query query, String searchType, String idCardNo) { | |
295 | + if (StringUtils.isNotEmpty(idCardNo)) { | |
296 | + if (StringUtils.isNotEmpty(searchType)) { | |
297 | + if ("1".equals(searchType)) { | |
298 | + return query.addCriteria(Criteria.where("husbandCardNo").is(idCardNo)); | |
299 | + } | |
300 | + if ("2".equals(searchType)) { | |
301 | + return query.addCriteria(Criteria.where("wifeCardNo").is(idCardNo)); | |
302 | + } | |
303 | + } | |
304 | + return query.addCriteria(Criteria.where("husbandCardNo").is(idCardNo).orOperator(Criteria.where("wifeCardNo").is(idCardNo))); | |
305 | + } | |
306 | + return query; | |
307 | + } | |
308 | + | |
222 | 309 | /** |
223 | 310 | * 添加 丈夫户口所在地/丈夫现住址/妻子户口所在地/妻子现住地址 省市区街道详细地址 |
224 | 311 | * @param model |
225 | 312 | * @return |
226 | 313 | */ |
227 | 314 | private PreEugenicsBaseListResult getPreEugenicsBaseListResult(PreEugenicsBaseModel model) { |
228 | - PreEugenicsBaseListResult result = (PreEugenicsBaseListResult) model; | |
315 | + PreEugenicsBaseListResult result = new PreEugenicsBaseListResult(); | |
316 | + BeanUtils.copyProperties(model, result); | |
229 | 317 | result.setHusbandAccountAddressStr(CommonsHelper.getResidence(model.getHusbandAccountProvince(), |
230 | 318 | model.getHusbandAccountCity(), |
231 | 319 | model.getHusbandAccountArea(), |