From a7618f220343f69e7b82d962988243f4dc125e96 Mon Sep 17 00:00:00 2001 From: dongqin <123456> Date: Tue, 20 Aug 2019 17:31:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E9=80=81=E9=97=AE=E5=8D=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/MatdeliverFollowController.java | 34 ++- .../operate/web/facade/MatdeliverFollowFacade.java | 121 ++++++++++- .../web/request/QuestionnairePushRequest.java | 231 +++++++++++++++++++++ 3 files changed, 378 insertions(+), 8 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/QuestionnairePushRequest.java 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 415635d..7c78482 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 @@ -8,15 +8,14 @@ import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.operate.web.facade.MatdeliverFollowFacade; import com.lyms.platform.operate.web.request.MatDeliverFollowAddRequest; import com.lyms.platform.operate.web.request.MatdeliverFollowRequest; +import com.lyms.platform.operate.web.request.QuestionnairePushRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; /** *
@@ -121,4 +120,31 @@ public class MatdeliverFollowController extends BaseController {
matdeliverFollowRequest.setNeed("need");
return matdeliverFollowFacade.getPostpartumFollowMake(matdeliverFollowRequest, loginState.getId());
}
+
+ /**
+ * 推送问卷
+ *
+ * @param request
+ * @return
+ */
+ @ResponseBody
+ @TokenRequired
+ @RequestMapping(value = "/questionnaire/push", method = RequestMethod.POST)
+ public BaseResponse questionnairePush(@RequestBody @Valid QuestionnairePushRequest questionnairePushRequest, HttpServletRequest request) {
+ LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
+ return matdeliverFollowFacade.questionnairePush(questionnairePushRequest, loginState.getId());
+ }
+
+ /**
+ * 推送问卷 -- 保存产、妇在小程序端填写的数据
+ *
+ * @param param
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping(value = "/questionnaire/upload", method = RequestMethod.POST)
+ public BaseResponse addQuestionnaire(@RequestBody @Valid QuestionnairePushRequest param) {
+ return matdeliverFollowFacade.addQuestionnaire(param);
+ }
+
}
\ No newline at end of file
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 e227d88..e953d91 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
@@ -1,22 +1,25 @@
package com.lyms.platform.operate.web.facade;
+import com.alibaba.fastjson.JSONObject;
+import com.lyms.platform.beans.MsgListRequest;
+import com.lyms.platform.beans.MsgRequest;
import com.lyms.platform.biz.service.*;
import com.lyms.platform.common.constants.ErrorCodeConstants;
-import com.lyms.platform.common.enums.OptActionEnums;
-import com.lyms.platform.common.enums.PostpartumFollowMakeEnums;
-import com.lyms.platform.common.enums.TrackDownDateEnums;
-import com.lyms.platform.common.enums.YnEnums;
+import com.lyms.platform.common.enums.*;
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.BeanUtils;
import com.lyms.platform.common.utils.DateUtil;
import com.lyms.platform.common.utils.ExcelUtil;
import com.lyms.platform.operate.web.request.MatDeliverFollowAddRequest;
import com.lyms.platform.operate.web.request.MatdeliverFollowRequest;
+import com.lyms.platform.operate.web.request.QuestionnairePushRequest;
import com.lyms.platform.operate.web.result.MatdeliverFollowListResult;
import com.lyms.platform.operate.web.result.MatdeliverFollowResult;
import com.lyms.platform.operate.web.service.ITrackDownService;
import com.lyms.platform.operate.web.utils.CollectionUtils;
+import com.lyms.platform.operate.web.utils.MessageCenterService;
import com.lyms.platform.operate.web.utils.ResponseUtil;
import com.lyms.platform.operate.web.utils.UnitConstants;
import com.lyms.platform.permission.model.Organization;
@@ -38,6 +41,10 @@ import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.poi.ss.util.CellRangeAddress;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
@@ -77,6 +84,9 @@ public class MatdeliverFollowFacade {
@Autowired
private PersonService personService;
+ @Autowired
+ protected MongoTemplate mongoTemplate;
+
public BaseResponse matdeliverFollowMakeInit(Integer id) {
Map map = new HashMap();
//是否结案
@@ -663,4 +673,107 @@ public class MatdeliverFollowFacade {
}
return out;
}
+
+ /**
+ * 问卷推送
+ *
+ * @param questionnairePushRequest
+ * @param userId
+ * @return
+ */
+ public BaseResponse questionnairePush(QuestionnairePushRequest questionnairePushRequest, Integer userId) {
+ String hospitalId = autoMatchFacade.getHospitalId(userId);
+
+ // 新增追访信息
+
+ String phone = questionnairePushRequest.getPhone();
+ String parentid = questionnairePushRequest.getParentid();
+ String deliverId = questionnairePushRequest.getDeliverId();
+ String pid = questionnairePushRequest.getPid();
+
+ if (StringUtils.isNotEmpty(phone) && StringUtils.isNotEmpty(parentid)
+ && StringUtils.isNotEmpty(deliverId) && StringUtils.isNotEmpty(pid)) {
+ MatDeliverFollowAddRequest param = new MatDeliverFollowAddRequest();
+ // 联系结果、访视类型、备注
+ param.setContactResult(1);
+ param.setMakeType(PostpartumFollowMakeEnums.TypeEnum.WJTS.getId());
+ param.setMakeRemark("");
+ param.setVisitDoctor(userId.toString());
+ param.setMakeVisitDateStr(new Date());
+ param.setDeliverId(deliverId);
+ param.setPid(pid);
+ BaseResponse baseResponse = addOrUpdateMatDeliverFollow(param, userId);
+ String followModelId = (String) baseResponse.getObject();
+
+
+ // 推送到指定用户中
+ Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(parentid)), Patients.class);
+ Organization organization = organizationService.getOrganization(Integer.parseInt(hospitalId));
+ Users users = usersService.getUsers(userId);
+ MsgListRequest msgListRequest = new MsgListRequest();
+ List