From 1401dbf90f8d2939218962882c6a78722a87c27f Mon Sep 17 00:00:00 2001 From: yangfei Date: Sat, 25 Nov 2017 16:07:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/dal/IMatdeliverFollowModelDao.java | 2 + .../biz/dal/impl/MatdeliverFollowModelDaoImpl.java | 13 +++++ .../biz/service/MatDeliverFollowService.java | 9 ++- .../resources/mainOrm/master/PatientService.xml | 8 +-- .../lyms/platform/pojo/MatdeliverFollowModel.java | 25 ++++++++ .../lyms/platform/query/MatDeliverFollowQuery.java | 34 +++++++++++ .../web/controller/MatdeliverFollowController.java | 5 +- .../operate/web/facade/MatdeliverFollowFacade.java | 28 +++++++-- .../operate/web/facade/PatientServiceFacade.java | 3 + .../web/request/MatDeliverFollowAddRequest.java | 26 ++++++++- .../web/request/MatDeliverFollowQueryRequest.java | 67 ++++++++++++++++++++++ 11 files changed, 203 insertions(+), 17 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMatdeliverFollowModelDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMatdeliverFollowModelDao.java index 617847f..2ad6768 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMatdeliverFollowModelDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMatdeliverFollowModelDao.java @@ -20,4 +20,6 @@ public interface IMatdeliverFollowModelDao { public List queryMatdeliverFollowModel(MongoQuery query); public Page findPage(MongoQuery query); + + public List queryByPidsGoup(List pids); } \ No newline at end of file diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MatdeliverFollowModelDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MatdeliverFollowModelDaoImpl.java index 328260b..110328a 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MatdeliverFollowModelDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MatdeliverFollowModelDaoImpl.java @@ -7,6 +7,10 @@ import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.dao.operator.Page; import com.lyms.platform.pojo.MatdeliverFollowModel; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationOperation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.stereotype.Repository; import java.util.List; @@ -41,4 +45,13 @@ public class MatdeliverFollowModelDaoImpl extends BaseMongoDAOImpl findPage(MongoQuery query) { return findPage(query.convertToMongoQuery()); } + + public List queryByPidsGoup(List pids) { + AggregationOperation match = Aggregation.match(Criteria.where("patientId").in(pids)); + AggregationOperation group = Aggregation.group("patientId").max("updateDate").as("updateDate"); + Aggregation aggregation = Aggregation.newAggregation(match, group); + AggregationResults result = this.mongoTemplate.aggregate(aggregation, "lyms_matdeliver_follow", MatdeliverFollowModel.class); + return result.getMappedResults(); + } + } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverFollowService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverFollowService.java index e17b1dc..0f267d9 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverFollowService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverFollowService.java @@ -31,11 +31,12 @@ public class MatDeliverFollowService { } public List query(MatDeliverFollowQuery deliverQuery){ - return iMatdeliverFollowModelDao.queryMatdeliverFollowModel(deliverQuery.convertToQuery().addOrder(Sort.Direction.DESC, "created")); + return iMatdeliverFollowModelDao.queryMatdeliverFollowModel(deliverQuery.convertToQuery().addOrder(Sort.Direction.DESC, "updateDate")); } public void deleteOne(String id){ iMatdeliverFollowModelDao.deleteMatdeliverFollowModel(id); } + public void updateOne(MatdeliverFollowModel deliverModel,String id){ iMatdeliverFollowModelDao.updateMatdeliverFollowModel(deliverModel, id); } @@ -51,6 +52,10 @@ public class MatDeliverFollowService { MongoQuery mongoQuery = matDeliverQuery.convertToQuery(); matDeliverQuery.mysqlBuild(iMatdeliverFollowModelDao.queryMatdeliverFollowModelCount(matDeliverQuery.convertToQuery())); mongoQuery.start(matDeliverQuery.getOffset()).end(matDeliverQuery.getLimit()); - return iMatdeliverFollowModelDao.queryMatdeliverFollowModel(mongoQuery.addOrder(Sort.Direction.DESC, "dueDate1")); + return iMatdeliverFollowModelDao.queryMatdeliverFollowModel(mongoQuery.addOrder(Sort.Direction.DESC, "updateDate")); + } + + public List queryByPidsGoup(List pids){ + return iMatdeliverFollowModelDao.queryByPidsGoup(pids); } } diff --git a/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml b/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml index 81273a2..23800e9 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/PatientService.xml @@ -37,6 +37,8 @@ update patient_service ser_doct = #{serDoct,jdbcType=VARCHAR}, + create_user = #{createUser,jdbcType=VARCHAR}, + update_user = #{updateUser,jdbcType=VARCHAR}, parentid = #{parentid,jdbcType=VARCHAR}, @@ -53,9 +55,6 @@ create_user_name = #{createUserName,jdbcType=VARCHAR}, - - create_user = #{createUser,jdbcType=VARCHAR}, - ser_status = #{serStatus,jdbcType=INTEGER}, @@ -65,9 +64,6 @@ update_user_name = #{updateUserName,jdbcType=VARCHAR}, - - update_user = #{updateUser,jdbcType=VARCHAR}, - hospital_id = #{hospitalId,jdbcType=VARCHAR}, diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/MatdeliverFollowModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/MatdeliverFollowModel.java index 142f4c7..eced10a 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/MatdeliverFollowModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/MatdeliverFollowModel.java @@ -183,6 +183,31 @@ public class MatdeliverFollowModel extends BaseModel { */ private String referHospital; + /** + * 修改时间 + */ + private Date updateDate; + /** + * 修改人 + */ + private String updateUser; + + public Date getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + public String getId() { return id; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverFollowQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverFollowQuery.java index 5a91a93..4164749 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverFollowQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverFollowQuery.java @@ -187,12 +187,21 @@ public class MatDeliverFollowQuery extends BaseQuery implements IConvertToNative * 科室及机构 */ private String referHospital; + /** + * 修改时间 + */ + private Date updateDate; + /** + * 修改人 + */ + private String updateUser; /** * @return */ @Override public MongoQuery convertToQuery() { + MongoCondition condition = MongoCondition.newInstance(); if (StringUtils.isNotBlank(id)) { condition = condition.and("id", id, MongoOper.IS); @@ -212,13 +221,38 @@ public class MatDeliverFollowQuery extends BaseQuery implements IConvertToNative if (contactResult!=null) { condition = condition.and("contactResult",contactResult , MongoOper.IS); } + if (contactReason!=null) { + condition = condition.and("contactReason",contactReason , MongoOper.IS); + } + if (visitStatus!=null) { + condition = condition.and("visitStatus", visitStatus, MongoOper.IS); + } if (visitResult!=null) { condition = condition.and("visitResult", visitResult, MongoOper.IS); } + if (visitAffirm!=null) { + condition = condition.and("visitAffirm", visitAffirm, MongoOper.IS); + } return condition.toMongoQuery(); } + public Date getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public String getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(String updateUser) { + this.updateUser = updateUser; + } + public String getId() { return id; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatdeliverFollowController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatdeliverFollowController.java index bbb4edd..21f0024 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatdeliverFollowController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatdeliverFollowController.java @@ -53,9 +53,10 @@ public class MatdeliverFollowController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(value = "/addPostpartumInfo", method = RequestMethod.POST) - public BaseResponse addPostpartumInfo(HttpServletRequest request, MatDeliverFollowAddRequest matDeliverFollowAddRequest) { + public BaseResponse addPostpartumInfo(MatDeliverFollowAddRequest matDeliverFollowAddRequest, HttpServletRequest request) { + System.out.println(matDeliverFollowAddRequest); Integer userId = getUserId(request); - return matdeliverFollowFacade.addMatDeliverFollow(matDeliverFollowAddRequest, userId); + return matdeliverFollowFacade.addOrUpdateMatDeliverFollow(matDeliverFollowAddRequest, userId); } // /** diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java index 28b2f57..6a12ed9 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java @@ -16,13 +16,11 @@ import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.pojo.MatdeliverFollowModel; import com.lyms.platform.pojo.MaternalDeliverModel; import com.lyms.platform.query.MatDeliverFollowQuery; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @auther yangfei @@ -113,14 +111,32 @@ public class MatdeliverFollowFacade { patientIds.add(pf.getPatientId()); } //根据In查询,进行grunp by patientId,进行排序 - + List matdeliverFollowModels = matDeliverFollowService.queryByPidsGoup(patientIds); + System.out.println("产检随访长度:"+matdeliverFollowModels.size()); //返回结果,进行前端开发 } return baseListResponse; } - public BaseResponse addMatDeliverFollow(MatDeliverFollowAddRequest matDeliverFollowAddRequest, Integer userId) { + + /** + * 添加一条访视记录 + * @param matDeliverFollowAddRequest + * @param userId + * @return + */ + public BaseResponse addOrUpdateMatDeliverFollow(MatDeliverFollowAddRequest matDeliverFollowAddRequest, Integer userId) { BaseResponse baseResponse = new BaseResponse(); + matDeliverFollowAddRequest.setUpdateDate(new Date()); + matDeliverFollowAddRequest.setUpdateUser(String.valueOf(userId)); + + if(StringUtils.isNotEmpty(matDeliverFollowAddRequest.getId())){//修改 + matDeliverFollowService.updateOne(matDeliverFollowAddRequest.convertToDataModel(), matDeliverFollowAddRequest.getId()); + }else{//新增 + matDeliverFollowService.addMatDeliverFollow(matDeliverFollowAddRequest.convertToDataModel()); + } + baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + baseResponse.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); return baseResponse; } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java index e4422b8..4b743f4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientServiceFacade.java @@ -258,6 +258,9 @@ public class PatientServiceFacade { ps.setSynStatus(1); PatientService before = patientServiceService.getPatientService(ps.getId()); + //开通人为上一次的数据,因为系统端不能修改,但是小程序可以修改 + ps.setCreateUser(before.getCreateUser()); + if(before.getSerStatus()==PatientSerEnums.SerStatusEnums.td.getId()){//如果上一次是退订状态,重新开通,开通时间为当前时间 ps.setCreateDate(new Date()); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverFollowAddRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverFollowAddRequest.java index 1aeef0f..2efe8ec 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverFollowAddRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/MatDeliverFollowAddRequest.java @@ -33,7 +33,7 @@ public class MatDeliverFollowAddRequest implements IBasicRequestConvert