From bd7ca545d159d4271d88b3f4009d15861db20c3f Mon Sep 17 00:00:00 2001 From: liquanyu Date: Fri, 15 Sep 2017 15:42:03 +0800 Subject: [PATCH] update code --- .../com/lyms/platform/biz/dal/ISieveRecordDao.java | 22 ++ .../platform/biz/dal/impl/SieveRecordDaoImpl.java | 43 ++++ .../platform/biz/service/SieveRecordService.java | 40 +++ .../com/lyms/platform/common/utils/DateUtil.java | 12 + .../java/com/lyms/platform/beans/SerialIdEnum.java | 1 + .../com/lyms/platform/pojo/SieveRecordModel.java | 174 +++++++++++++ .../com/lyms/platform/query/SieveRecordQuery.java | 286 +++++++++++++++++++++ .../web/controller/SieveRecordController.java | 105 ++++++++ .../operate/web/controller/ViewController.java | 19 +- .../operate/web/facade/SieveRecordFacade.java | 228 ++++++++++++++++ .../platform/operate/web/facade/ViewFacade.java | 58 +++++ 11 files changed, 987 insertions(+), 1 deletion(-) create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveRecordDao.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveRecordDaoImpl.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveRecordService.java create mode 100644 platform-dal/src/main/java/com/lyms/platform/pojo/SieveRecordModel.java create mode 100644 platform-dal/src/main/java/com/lyms/platform/query/SieveRecordQuery.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveRecordController.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveRecordFacade.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveRecordDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveRecordDao.java new file mode 100644 index 0000000..4a960c5 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveRecordDao.java @@ -0,0 +1,22 @@ +package com.lyms.platform.biz.dal; + + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.SieveRecordModel; + +import java.util.List; + +/** + * Created by Administrator on 2016/6/30 0030. + */ +public interface ISieveRecordDao { + + + List query(MongoQuery mongoQuery); + + void saveObj(SieveRecordModel model); + + int querySieveRecordCount(MongoQuery query); + + void update(SieveRecordModel model, String id); +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveRecordDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveRecordDaoImpl.java new file mode 100644 index 0000000..9a5f0e3 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveRecordDaoImpl.java @@ -0,0 +1,43 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.ISieveRecordDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; + +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.SieveRecordModel; + +import org.springframework.stereotype.Repository; + +import java.util.Date; +import java.util.List; + + +/** + * Created by Administrator on 2016/6/30 0030. + */ +@Repository("sieveRecordDao") +public class SieveRecordDaoImpl extends BaseMongoDAOImpl implements ISieveRecordDao { + + @Override + public List query(MongoQuery mongoQuery) { + return find(mongoQuery.convertToMongoQuery()); + } + + @Override + public void saveObj(SieveRecordModel model) { + save(model); + } + + @Override + public int querySieveRecordCount(MongoQuery query) { + return (int)count(query.convertToMongoQuery()); + } + + @Override + public void update(SieveRecordModel model, String id) { + model.setModified(new Date()); + update(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), model); + } +} \ No newline at end of file diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveRecordService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveRecordService.java new file mode 100644 index 0000000..9a60ca6 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveRecordService.java @@ -0,0 +1,40 @@ +package com.lyms.platform.biz.service; + +import com.lyms.platform.biz.dal.ISieveRecordDao; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.SieveRecordModel; +import com.lyms.platform.query.SieveRecordQuery; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * Created by Administrator on 2016/6/30 0030. + */ +@Service("sieveRecordService") +public class SieveRecordService { + + @Autowired + private ISieveRecordDao sieveRecordDao; + + public List query(SieveRecordQuery sieveRecordQuery) { + MongoQuery query = sieveRecordQuery.convertToQuery(); + if (StringUtils.isNotEmpty(sieveRecordQuery.getNeed())) { + sieveRecordQuery.mysqlBuild(sieveRecordDao.querySieveRecordCount(query)); + query.start(sieveRecordQuery.getOffset()).end(sieveRecordQuery.getLimit()); + } + + return sieveRecordDao.query(query); + } + + public void save(SieveRecordModel model) { + sieveRecordDao.saveObj(model); + } + + public void update(SieveRecordModel model, String id) { + sieveRecordDao.update(model,id); + } +} \ No newline at end of file diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 9465865..3e8b317 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -235,6 +235,18 @@ public class DateUtil { } } + + public static String gety_m_dhm(Date d) { + if (d == null) { + return null; + } + try { + return y_m_d_h_m1.format(d); + } catch (Exception e) { + return null; + } + } + /** * @return 返回当前年月日字符串 :20131025 */ diff --git a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java index f8c4adb..e07f31d 100644 --- a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java +++ b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java @@ -47,6 +47,7 @@ public enum SerialIdEnum { SieveApplyOrderModel("SieveApplyOrderModel", 97531000370L), SieveModel("SieveModel", 97531000380L), SieveResultModel("SieveResultModel", 97531000390L), + SieveRecordModel("SieveRecordModel", 97531010390L), SmsConfigModel("SmsConfigModel", 97531000400L), SmsTemplateModel("SmsTemplateModel", 97531000410L), StopPregModel("StopPregModel", 97531000420L), diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/SieveRecordModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/SieveRecordModel.java new file mode 100644 index 0000000..31f5245 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/SieveRecordModel.java @@ -0,0 +1,174 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.beans.SerialIdEnum; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +/** + * 产筛记录 + *

+ */ +@Document(collection = "lyms_sieverecord") +public class SieveRecordModel { + + private static final long serialVersionUID = SerialIdEnum.SieveResultModel.getCid(); + + private String id; + + private String patientId; + + private String pid; + + private String hospitalId; + + //姓名 + private String name; + + //就诊卡号 + private String vcCardNo; + + //证件号 + private String certNo; + + //手机号码 + private String phone; + + //生日 + private Date birth; + + //末次月经 + private Date lastMenses; + + //预产期 + private Date dueDate; + + //是否导出过 0 未导出 1导出 + private Integer status; + + private Date created; + + private Date modified; + + private Integer yn; + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getVcCardNo() { + return vcCardNo; + } + + public void setVcCardNo(String vcCardNo) { + this.vcCardNo = vcCardNo; + } + + public String getCertNo() { + return certNo; + } + + public void setCertNo(String certNo) { + this.certNo = certNo; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Date getBirth() { + return birth; + } + + public void setBirth(Date birth) { + this.birth = birth; + } + + public Date getLastMenses() { + return lastMenses; + } + + public void setLastMenses(Date lastMenses) { + this.lastMenses = lastMenses; + } + + public Date getDueDate() { + return dueDate; + } + + public void setDueDate(Date dueDate) { + this.dueDate = dueDate; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } +} diff --git a/platform-dal/src/main/java/com/lyms/platform/query/SieveRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/SieveRecordQuery.java new file mode 100644 index 0000000..4b773d6 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/SieveRecordQuery.java @@ -0,0 +1,286 @@ +package com.lyms.platform.query; + +import com.lyms.platform.common.base.IConvertToNativeQuery; +import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.utils.StringUtils; +import org.springframework.data.mongodb.core.query.Criteria; + +import java.util.Date; + +/** + * 产前筛查 + *

+ * Created by Administrator on 2016/7/5 0005. + */ +public class SieveRecordQuery extends BaseQuery implements IConvertToNativeQuery { + + private String id; + + private String patientId; + + private String pid; + + private String hospitalId; + + //姓名 + private String name; + + //就诊卡号 + private String vcCardNo; + + //证件号 + private String certNo; + + //手机号码 + private String phone; + + //生日 + private Date birth; + + //末次月经 + private Date lastMensesStart; + private Date lastMensesEnd; + + //创建 + private Date createTimeStart; + private Date createTimeEnd; + + //预产期 + private Date dueDate; + //查询号 + private String queryNo; + + private Integer yn; + + //是否导出过 0 未导出 1导出 + private Integer status; + + public Date getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(Date createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public Date getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(Date createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Date getLastMensesEnd() { + return lastMensesEnd; + } + + public void setLastMensesEnd(Date lastMensesEnd) { + this.lastMensesEnd = lastMensesEnd; + } + + public Date getLastMensesStart() { + return lastMensesStart; + } + + public void setLastMensesStart(Date lastMensesStart) { + this.lastMensesStart = lastMensesStart; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public String getVcCardNo() { + return vcCardNo; + } + + public void setVcCardNo(String vcCardNo) { + this.vcCardNo = vcCardNo; + } + + public String getCertNo() { + return certNo; + } + + public void setCertNo(String certNo) { + this.certNo = certNo; + } + + public Date getBirth() { + return birth; + } + + public void setBirth(Date birth) { + this.birth = birth; + } + + + + public Date getDueDate() { + return dueDate; + } + + public void setDueDate(Date dueDate) { + this.dueDate = dueDate; + } + + public String getQueryNo() { + return queryNo; + } + + public void setQueryNo(String queryNo) { + this.queryNo = queryNo; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + @Override + public MongoQuery convertToQuery() { + + MongoCondition condition = MongoCondition.newInstance(); + if (null != id) { + condition = condition.and("id", id, MongoOper.IS); + } + if (StringUtils.isNotEmpty(certNo)) { + condition = condition.and("certNo", certNo, MongoOper.IS); + } + if (null != patientId) { + condition = condition.and("patientId", patientId, MongoOper.IS); + } + if (null != hospitalId) { + condition = condition.and("hospitalId", hospitalId, MongoOper.IS); + } + if (null != pid) { + condition = condition.and("pid", pid, MongoOper.IS); + } + if (StringUtils.isNotEmpty(name)) { + condition = condition.and("name", name, MongoOper.LIKE); + } + + if (StringUtils.isNotEmpty(phone)) { + condition = condition.and("phone", phone, MongoOper.IS); + } + + if (status != null) { + condition = condition.and("status", status, MongoOper.IS); + } + + if (null != yn) { + condition = condition.and("yn", yn, MongoOper.IS); + } + + Criteria c1 = null; + if (null != lastMensesStart) { + if (null != c1) { + c1 = c1.and("lastMenses").gte(lastMensesStart); + } else { + c1 = Criteria.where("lastMenses").gte(lastMensesStart); + } + } + if (null != lastMensesEnd) { + if (c1 != null) { + c1 = c1.lte(lastMensesEnd); + } else { + c1 = Criteria.where("lastMenses").lte(lastMensesEnd); + } + } + + + if (null != createTimeStart) { + if (null != c1) { + c1 = c1.and("created").gte(createTimeStart); + } else { + c1 = Criteria.where("created").gte(createTimeStart); + } + } + if (null != createTimeEnd) { + if (c1 != null) { + c1 = c1.lte(createTimeEnd); + } else { + c1 = Criteria.where("created").lte(createTimeEnd); + } + } + + if (StringUtils.isNotEmpty(queryNo)) { + MongoCondition c = MongoCondition.newInstance(); + MongoCondition con1 = MongoCondition.newInstance("phone", queryNo, MongoOper.IS); + MongoCondition con2 = MongoCondition.newInstance("name", queryNo, MongoOper.LIKE); + MongoCondition con3 = MongoCondition.newInstance("certNo", queryNo, MongoOper.IS); + MongoCondition con4 = MongoCondition.newInstance("vcCardNo", vcCardNo, MongoOper.IS); + if(c1!=null) { + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con2,con3,con4}).getCriteria()); + }else { + c1 = c.orCondition(new MongoCondition[]{con1, con2, con3, con4}).getCriteria(); + } + } + + if (null != c1) { + condition = condition.andCondition(new MongoCondition(c1)); + } + + return condition.toMongoQuery(); + } + +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveRecordController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveRecordController.java new file mode 100644 index 0000000..6e43a2b --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveRecordController.java @@ -0,0 +1,105 @@ +package com.lyms.platform.operate.web.controller; + +import com.lyms.platform.common.annotation.TokenRequired; +import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.base.LoginContext; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.enums.*; +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.operate.web.facade.SieveFacade; +import com.lyms.platform.operate.web.facade.SieveRecordFacade; +import com.lyms.platform.operate.web.request.ChanQianDiaAddRequest; +import com.lyms.platform.operate.web.request.CqSieveQueryRequest; +import com.lyms.platform.operate.web.request.SieveAddRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 秦皇岛产筛记录 + *

+ */ +@Controller +public class SieveRecordController extends BaseController { + @Autowired + private SieveRecordFacade sieveRecordFacade; + + /** + * 判断当前用户是否保存过基本信息记录 + * + * @return + */ + @ResponseBody + @RequestMapping(value = "/isSaveSieveRecord",method = RequestMethod.GET) + @TokenRequired + public BaseResponse addOneSieve(@RequestParam("patientId")String patientId,HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return sieveRecordFacade.isSaveSieveRecord(patientId, loginState.getId()); + } + + + /** + * 保存秦皇岛产晒孕妇的基本信息 + * @param patientId + * @param request + * @return + */ + @ResponseBody + @RequestMapping(value = "/saveSieveRecord",method = RequestMethod.GET) + @TokenRequired + public BaseResponse saveSieveRecord(@RequestParam("patientId")String patientId,HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return sieveRecordFacade.saveSieveRecord(patientId, loginState.getId()); + } + + + /** + * 查询保存的基本信息列表 + * + * @param status 0 未导出 1 已经导出 2 全部 + * @return + */ + @ResponseBody + @RequestMapping(value = "/getSieveRecords",method = RequestMethod.GET) + @TokenRequired + public BaseResponse getSieveRecords(@RequestParam(required = false)Integer status, + @RequestParam(required = true)Integer page, + @RequestParam(required = true)Integer limit, + @RequestParam(required = false)String createTime, + @RequestParam(required = false)String keyword, + HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return sieveRecordFacade.getSieveRecords(status, createTime, keyword, page, limit, loginState.getId()); + } + + + /** + * 导出信息 + * @param request + * @param response + */ + @RequestMapping(value = "/exportSieveRecords", method = RequestMethod.GET) + @TokenRequired + public void exportSieveRecords(HttpServletRequest request, + HttpServletResponse response, + @RequestParam(required = false)Integer status, + @RequestParam(required = true)Integer page, + @RequestParam(required = true)Integer limit, + @RequestParam(required = false)String createTime, + @RequestParam(required = false)String keyword) + { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + sieveRecordFacade.exportSieveRecords(status, createTime, keyword, loginState.getId(),response); + } + + +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java index 982234d..1f9afa4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java @@ -145,7 +145,7 @@ public class ViewController extends BaseController { // System.out.println("用户未登录!"); // return; // } - Map map = viewFacade.expPostReview(id,null); + Map map = viewFacade.expPostReview(id, null); try { // 验证License if (!getLicense()) { @@ -476,6 +476,23 @@ public class ViewController extends BaseController { return viewFacade.findPatientData(id); } + + /** + * 秦皇岛获取产筛孕妇的基本信息 + * + * @param cardNo 孕妇证件号 + * @param vcCardNo 孕妇就诊卡号 + * @return + */ + @RequestMapping(value = "/findSievePatientData", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseObjectResponse findSievePatientData(@RequestParam(required = false) String cardNo, + @RequestParam(required = false) String vcCardNo, + HttpServletRequest httpServletRequest) { + return viewFacade.findSievePatientData(cardNo,vcCardNo,getUserId(httpServletRequest)); + } + /** * 查看产后复查 * diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveRecordFacade.java new file mode 100644 index 0000000..ffa5cae --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveRecordFacade.java @@ -0,0 +1,228 @@ +package com.lyms.platform.operate.web.facade; + +import com.lyms.platform.biz.service.*; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.result.BaseListResponse; +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.ExcelUtil; +import com.lyms.platform.common.utils.ExceptionUtils; +import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.operate.web.request.ChanQianDiaAddRequest; +import com.lyms.platform.operate.web.request.CqSieveQueryRequest; +import com.lyms.platform.operate.web.request.SieveAddRequest; +import com.lyms.platform.operate.web.result.SieveDetailResult; +import com.lyms.platform.operate.web.result.SieveListResult; +import com.lyms.platform.operate.web.result.SieveResult; +import com.lyms.platform.operate.web.worker.SieveWorker; +import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.service.OrganizationService; +import com.lyms.platform.pojo.*; +import com.lyms.platform.query.*; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.util.*; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; + +/** + * 秦皇岛产筛查询 + */ +@Component +public class SieveRecordFacade { + @Autowired + private SieveRecordService sieveRecordService; + + @Autowired + private PatientsService patientsService; + + @Autowired + private AutoMatchFacade autoMatchFacade; + + + public BaseResponse isSaveSieveRecord(String patientId, Integer userId) { + + SieveRecordQuery query = new SieveRecordQuery(); + query.setYn(YnEnums.YES.getId()); + query.setPatientId(patientId); + + List list = sieveRecordService.query(query); + if (CollectionUtils.isNotEmpty(list)) + { + return new BaseResponse().setErrorcode(ErrorCodeConstants.DATA_EXIST).setErrormsg("已经存在记录"); + } + + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); + } + + + public BaseResponse saveSieveRecord(String patientId, Integer id) { + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setId(patientId); + patientsQuery.setYn(YnEnums.YES.getId()); + + List list = patientsService.queryPatient(patientsQuery); + + try { + if (CollectionUtils.isNotEmpty(list)) + { + Patients patients = list.get(0); + SieveRecordModel model = new SieveRecordModel(); + model.setPatientId(patientId); + model.setPid(patients.getPid()); + model.setYn(YnEnums.YES.getId()); + model.setStatus(0); + model.setBirth(patients.getBirth()); + model.setCertNo(patients.getCardNo()); + model.setHospitalId(patients.getHospitalId()); + model.setDueDate(patients.getDueDate()); + model.setLastMenses(patients.getLastMenses()); + model.setPhone(patients.getPhone()); + model.setVcCardNo(patients.getVcCardNo()); + model.setName(patients.getUsername()); + model.setCreated(new Date()); + model.setModified(new Date()); + sieveRecordService.save(model); + } + } + catch (Exception e) + { + return new BaseResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION); + } + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); + } + + public BaseResponse getSieveRecords(Integer status, String createTime,String keyword, Integer page, Integer limit, Integer userId) { + + String hospitalId = autoMatchFacade.getHospitalId(userId); + SieveRecordQuery query = new SieveRecordQuery(); + query.setYn(YnEnums.YES.getId()); + + query.setPage(page); + query.setLimit(limit); + query.setNeed("true"); + query.setQueryNo(keyword); + query.setHospitalId(hospitalId); + if (status != null && status != 2) + { + query.setStatus(status); + } + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(createTime)) { + String[] dates = createTime.split(" - "); + query.setCreateTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + query.setCreateTimeEnd(DateUtil.parseYMD(dates[1])); + } + } + + List> result = getListData(query); + + return new BaseListResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setData(result).setPageInfo(query.getPageInfo()); + } + + + private List> getListData(SieveRecordQuery query) + { + List list = sieveRecordService.query(query); + List> result = new ArrayList<>(); + + if (CollectionUtils.isNotEmpty(list)) + { + for (SieveRecordModel model : list) + { + Map map = new HashMap<>(); + map.put("id",model.getId()); + map.put("name",model.getName()); //身份证号码 + map.put("vcCardNo",model.getVcCardNo()); //就诊卡号 + map.put("certNo",model.getCertNo()); //证件号 + map.put("phone",model.getPhone());//手机号码 + map.put("birth",DateUtil.getyyyy_MM_dd(model.getBirth())); //出生日期 + map.put("age",DateUtil.getAge(model.getBirth(), model.getCreated())); //年龄 + map.put("lastMenses",DateUtil.getyyyy_MM_dd(model.getLastMenses())); //末次月经 + map.put("currentDueWeek",DateUtil.getWeekDesc(model.getLastMenses(), model.getCreated())); //当前孕周 + map.put("dueDate",DateUtil.getyyyy_MM_dd(model.getDueDate())); //预产期 + map.put("created",DateUtil.gety_m_dhm(model.getCreated()));//创建日期 + map.put("status",model.getStatus() == 0 ? "未导出" : "已导出");//导出状态 + result.add(map); + } + } + + return result; + } + + public void exportSieveRecords(Integer status, String createTime, String keyword, Integer userId, HttpServletResponse response) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + SieveRecordQuery query = new SieveRecordQuery(); + query.setYn(YnEnums.YES.getId()); + if (status != null && status != 2) + { + query.setStatus(status); + } + query.setQueryNo(keyword); + query.setHospitalId(hospitalId); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(createTime)) { + String[] dates = createTime.split(" - "); + query.setCreateTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + query.setCreateTimeEnd(DateUtil.parseYMD(dates[1])); + } + } + + List> datas = getListData(query); + + OutputStream out = null; + try { + out = response.getOutputStream(); + Map cnames = new LinkedHashMap<>(); + cnames.put("name","身份证号码"); //身份证号码 + cnames.put("vcCardNo","就诊卡号"); //就诊卡号 + cnames.put("certNo","证件号"); //证件号 + cnames.put("phone","手机号码");//手机号码 + cnames.put("birth","出生日期"); //出生日期 + cnames.put("age","年龄"); //年龄 + cnames.put("lastMenses","末次月经"); //末次月经 + cnames.put("currentDueWeek","当前孕周"); //当前孕周 + cnames.put("dueDate","预产期"); //预产期 + cnames.put("created","创建日期");//创建日期 + cnames.put("status","导出状态");//导出状态 + response.setContentType("application/octet-stream"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", "attachment;fileName=datas.xls"); + ExcelUtil.toExcel(out, datas, cnames); + updateStatus(datas); + } catch (IOException e) { + e.printStackTrace(); + } + } + + + /** + * 更新导出状态 + * @param datas + */ + private void updateStatus(List> datas) + { + if (CollectionUtils.isNotEmpty(datas)) + { + for (Map map : datas) + { + Object objId = map.get("id"); + SieveRecordModel model = new SieveRecordModel(); + model.setStatus(1); + sieveRecordService.update(model,objId.toString()); + } + } + + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java index 3895b42..0239277 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java @@ -82,6 +82,14 @@ public class ViewFacade { @Autowired private MongoUtil mongoUtil; + @Autowired + private OrganizationGroupsFacade groupsFacade; + + + @Autowired + private YunBookbuildingService yunBookbuildingService; + + /** * 建档查询 * @@ -3601,4 +3609,54 @@ public class ViewFacade { return result; } + + public BaseObjectResponse findSievePatientData(String cardNo, String vcCardNo,Integer userId) { + + List patients = new ArrayList<>(); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setBuildType(1); + //查询主档案 + patientsQuery.setExtEnable(false); + + //如果身份证号码不为空就以身份证号码查询 + if (StringUtils.isNotEmpty(cardNo)) { + patientsQuery.setCardNo(cardNo); + patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery, "bookbuildingDate", Sort.Direction.DESC); + } + //否则用就诊卡号 查询到这个孕妇的身份证号码 再用身份证号码查询该孕妇的所有建档 包括产妇记录 + else if (StringUtils.isNotEmpty(vcCardNo)) { + + patientsQuery.setVcCardNo(vcCardNo); + patientsQuery.setHospitalId(autoMatchFacade.getHospitalId(userId)); + //优先查询本院通过就诊卡 + List localPatients = patientsService.queryPatient(patientsQuery); + patientsQuery.setHospitalId(null); + if (CollectionUtils.isNotEmpty(localPatients)) { + patients = localPatients; + } + else + { + //区域模式 + patientsQuery.setHospitalList(groupsFacade.findGroupHospital(userId, false)); + + List patientsVc = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + if (CollectionUtils.isNotEmpty(patientsVc)) { + if (patientsVc.get(0) == null || com.lyms.platform.common.utils.StringUtils.isEmpty(patientsVc.get(0).getCardNo())) { + patients = patientsVc; + } else { + patientsQuery.setHospitalId(null); + patientsQuery.setVcCardNo(null); + patientsQuery.setCardNo(patientsVc.get(0).getCardNo()); + patients = yunBookbuildingService.queryPregnantWithQuery(patientsQuery, "bookbuildingDate", Sort.Direction.DESC); + } + } + } + } + if (CollectionUtils.isNotEmpty(patients) && patients.get(0) != null) + { + return findPatientData(patients.get(0).getId()); + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("未查询到数据"); + } } -- 1.8.3.1