diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java index d6b9e77..5ff4061 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java @@ -104,9 +104,14 @@ public class PreEugenicsBaseModel extends BaseModel { private String husbandAccountCity; /** - * 丈夫户口所在地 县 + * 丈夫户口所在地 区 */ - private String husbandAccountCounty; + private String husbandAccountArea; + + /** + * 丈夫户口所在地 街道 + */ + private String husbandAccountStreet; /** * 丈夫户口所在地 详细地址 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java index 0b1c709..469d4ca 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java @@ -10,10 +10,129 @@ import com.lyms.platform.common.dao.BaseQuery; public class PreEugenicsBaseListRequest extends BaseQuery { /** - * 身份证 + * 丈夫身份证号码/妻子身份证号码 */ private String idCardNo; + /** + * 丈夫/妻子手机号 + */ + private String phone; + + /** + * 丈夫/妻子姓名 + */ + private String name; + + /** + * 丈夫/妻子编号 + */ + private String number; + + /** + * 医院 + */ + private String hospitalId; + + /** + * 创建人 + */ + private String createUser; + + /** + * 创建时间 + */ + private String createTime; + + /** + * 丈夫/妻子 现住址/户口所在地 + */ + private String province; + private String city; + private String area; + private String street; + + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + public String getIdCardNo() { return idCardNo; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PreEugenicsBaseListResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PreEugenicsBaseListResult.java new file mode 100644 index 0000000..eb4c223 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PreEugenicsBaseListResult.java @@ -0,0 +1,58 @@ +package com.lyms.platform.operate.web.result; + +import com.lyms.platform.pojo.PreEugenicsBaseModel; + +public class PreEugenicsBaseListResult extends PreEugenicsBaseModel { + + /** + * 丈夫户口所在地 省市区街道详细地址 + */ + private String husbandAccountAddressStr; + + /** + * 丈夫现住址 省市区街道详细地址 + */ + private String husbandCurrentAddressStr; + + /** + * 妻子户口所在地 省市区街道详细地址 + */ + private String wifeAccountAddressStr; + + /** + * 妻子现住地址 省市区街道详细地址 + */ + private String wifeCurrentAddressStr; + + public String getHusbandAccountAddressStr() { + return husbandAccountAddressStr; + } + + public void setHusbandAccountAddressStr(String husbandAccountAddressStr) { + this.husbandAccountAddressStr = husbandAccountAddressStr; + } + + public String getHusbandCurrentAddressStr() { + return husbandCurrentAddressStr; + } + + public void setHusbandCurrentAddressStr(String husbandCurrentAddressStr) { + this.husbandCurrentAddressStr = husbandCurrentAddressStr; + } + + public String getWifeAccountAddressStr() { + return wifeAccountAddressStr; + } + + public void setWifeAccountAddressStr(String wifeAccountAddressStr) { + this.wifeAccountAddressStr = wifeAccountAddressStr; + } + + public String getWifeCurrentAddressStr() { + return wifeCurrentAddressStr; + } + + public void setWifeCurrentAddressStr(String wifeCurrentAddressStr) { + this.wifeCurrentAddressStr = wifeCurrentAddressStr; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java index 104f3d5..95051c8 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java @@ -1,21 +1,35 @@ package com.lyms.platform.operate.web.service.impl; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.stereotype.Service; + import com.lyms.platform.biz.service.BasicConfigService; +import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.result.CommonResult; import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.MongoConvertHelper; +import com.lyms.platform.common.utils.ReflectionUtils; +import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.request.PreEugenicsBaseListRequest; import com.lyms.platform.operate.web.request.PreEugenicsBaseRequest; +import com.lyms.platform.operate.web.result.PreEugenicsBaseListResult; import com.lyms.platform.operate.web.service.IPreEugenicsService; +import com.lyms.platform.operate.web.utils.CommonsHelper; +import com.lyms.platform.pojo.CervicalCancerModel; import com.lyms.platform.pojo.PreEugenicsBaseModel; import com.lyms.platform.pojo.ResidentsArchiveModel; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.stereotype.Service; - /** * 孕前优生实现类 * @@ -93,7 +107,9 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen */ @Override public BaseResponse add(PreEugenicsBaseRequest param) { - return null; + PreEugenicsBaseModel model = param; + mongoTemplate.insert(model); + return new BaseResponse(); } /** @@ -104,7 +120,16 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen */ @Override public BaseResponse edit(PreEugenicsBaseRequest param) { - return null; + PreEugenicsBaseModel model = param; + String id = model.getId(); + if (StringUtils.isNum(id)) { + return new BaseResponse("参数缺失", ErrorCodeConstants.PARAMETER_ERROR); + } + Query query = Query.query(Criteria.where("id").is(param.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(param)); + mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); + return new BaseResponse(); } /** @@ -115,7 +140,115 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen */ @Override public BaseListResponse listPage(PreEugenicsBaseListRequest param) { - return null; + Query query = new Query(); + String idCardNo = param.getIdCardNo(); + if (StringUtils.isNotEmpty(idCardNo)) { + query.addCriteria(Criteria.where("husbandCardNo").is(idCardNo).orOperator(Criteria.where("wifeCardNo").is(idCardNo))); + } + String name = param.getName(); + if (StringUtils.isNotEmpty(name)) { + query.addCriteria(Criteria.where("husbandName").is(name).orOperator(Criteria.where("wifeName").is(name))); + } + String phone = param.getPhone(); + if (StringUtils.isNotEmpty(phone)) { + query.addCriteria(Criteria.where("husbandPhone").is(phone).orOperator(Criteria.where("wifePhone").is(phone))); + } + String number = param.getNumber(); + if (StringUtils.isNotEmpty(number)) { + query.addCriteria(Criteria.where("husbandNo").is(number).orOperator(Criteria.where("wifeNo").is(number))); + } + String hospitalId = param.getHospitalId(); + if (StringUtils.isNotEmpty(hospitalId)) { + query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); + } + String createUser = param.getCreateUser(); + if (StringUtils.isNotEmpty(createUser)) { + query.addCriteria(Criteria.where("createUser").is(createUser)); + } + String createTime = param.getCreateTime(); + if (StringUtils.isNotEmpty(createTime)) { + Date date = DateUtil.parseYMD(createTime); + Date dayFirstSecond = DateUtil.getDayFirstSecond(date); + Date dayLastSecond = DateUtil.getDayLastSecond(date); + query.addCriteria(Criteria.where("createUser").gte(dayFirstSecond).lte(dayLastSecond)); + } + + String provinceId = param.getProvince(); + if (StringUtils.isNotEmpty(provinceId)) { + query.addCriteria(Criteria.where("husbandAccountCity").is(provinceId) + .orOperator(Criteria.where("husbandCurrentProvince").is(provinceId)) + .orOperator(Criteria.where("wifeAccountProvince").is(provinceId)) + .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId)) + ); + String cityId = param.getCity(); + if (StringUtils.isNotEmpty(cityId)) { + query.addCriteria(Criteria.where("husbandAccountCity").is(cityId) + .orOperator(Criteria.where("husbandCurrentCity").is(cityId)) + .orOperator(Criteria.where("wifeAccountCity").is(cityId)) + .orOperator(Criteria.where("wifeCurrentCity").is(cityId)) + ); + String areaId = param.getArea(); + if (StringUtils.isNotEmpty(areaId)) { + query.addCriteria(Criteria.where("husbandAccountArea").is(areaId) + .orOperator(Criteria.where("husbandCurrentArea").is(areaId)) + .orOperator(Criteria.where("wifeAccountArea").is(areaId)) + .orOperator(Criteria.where("wifeCurrentArea").is(areaId)) + ); + String streetId = param.getStreet(); + if (StringUtils.isNotEmpty(streetId)) { + query.addCriteria(Criteria.where("husbandAccountStreet").is(streetId) + .orOperator(Criteria.where("husbandCurrentStreet").is(streetId)) + .orOperator(Criteria.where("wifeAccountStreet").is(streetId)) + .orOperator(Criteria.where("wifeCurrentStreet").is(streetId)) + ); + } + } + } + } + query.with(new Sort(Sort.Direction.DESC, "created")); + long count = mongoTemplate.count(query, PreEugenicsBaseModel.class); + param.mysqlBuild((int) count); + query.skip(param.getOffset()).limit(param.getLimit()); + List results = new LinkedList<>(); + List preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class); + for (PreEugenicsBaseModel model : preEugenicsBaseModels) { + PreEugenicsBaseListResult result = getPreEugenicsBaseListResult(model); + results.add(result); + } + BaseListResponse baseListResponse = new BaseListResponse(); + baseListResponse.setData(results); + baseListResponse.setPageInfo(param.getPageInfo()); + return baseListResponse; + } + + /** + * 添加 丈夫户口所在地/丈夫现住址/妻子户口所在地/妻子现住地址 省市区街道详细地址 + * @param model + * @return + */ + private PreEugenicsBaseListResult getPreEugenicsBaseListResult(PreEugenicsBaseModel model) { + PreEugenicsBaseListResult result = (PreEugenicsBaseListResult) model; + result.setHusbandAccountAddressStr(CommonsHelper.getResidence(model.getHusbandAccountProvince(), + model.getHusbandAccountCity(), + model.getHusbandAccountArea(), + model.getHusbandAccountStreet(), + model.getHusbandAccountAddress(), basicConfigService)); + result.setHusbandCurrentAddressStr(CommonsHelper.getResidence(model.getHusbandCurrentProvince(), + model.getHusbandCurrentCity(), + model.getHusbandCurrentArea(), + model.getHusbandCurrentStreet(), + model.getHusbandCurrentAddress(), basicConfigService)); + result.setWifeAccountAddressStr(CommonsHelper.getResidence(model.getWifeAccountProvince(), + model.getWifeAccountCity(), + model.getWifeAccountArea(), + model.getWifeAccountStreet(), + model.getWifeAccountAddress(), basicConfigService)); + result.setWifeCurrentAddressStr(CommonsHelper.getResidence(model.getWifeCurrentProvince(), + model.getWifeCurrentCity(), + model.getWifeCurrentArea(), + model.getWifeCurrentStreet(), + model.getWifeCurrentAddress(), basicConfigService)); + return result; } /** @@ -126,6 +259,17 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen */ @Override public BaseResponse detail(PreEugenicsBaseRequest param) { - return null; + String id = param.getId(); + if (StringUtils.isNum(id)) { + return new BaseResponse(); + } + PreEugenicsBaseModel model = mongoTemplate.findOne(Query.query(Criteria.where("id").is(id)), PreEugenicsBaseModel.class); + PreEugenicsBaseListResult result = new PreEugenicsBaseListResult(); + if (model != null) { + result = getPreEugenicsBaseListResult(model); + } + BaseResponse baseResponse = new BaseResponse(); + baseResponse.setObject(result); + return baseResponse; } } \ No newline at end of file