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(), |