Commit a7618f220343f69e7b82d962988243f4dc125e96

Authored by dongqin
1 parent 221890cd11
Exists in master and in 1 other branch dev

推送问卷

Showing 3 changed files with 378 additions and 8 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatdeliverFollowController.java View file @ a7618f2
... ... @@ -8,15 +8,14 @@
8 8 import com.lyms.platform.operate.web.facade.MatdeliverFollowFacade;
9 9 import com.lyms.platform.operate.web.request.MatDeliverFollowAddRequest;
10 10 import com.lyms.platform.operate.web.request.MatdeliverFollowRequest;
  11 +import com.lyms.platform.operate.web.request.QuestionnairePushRequest;
11 12 import org.springframework.beans.factory.annotation.Autowired;
12 13 import org.springframework.stereotype.Controller;
13   -import org.springframework.web.bind.annotation.PathVariable;
14   -import org.springframework.web.bind.annotation.RequestMapping;
15   -import org.springframework.web.bind.annotation.RequestMethod;
16   -import org.springframework.web.bind.annotation.ResponseBody;
  14 +import org.springframework.web.bind.annotation.*;
17 15  
18 16 import javax.servlet.http.HttpServletRequest;
19 17 import javax.servlet.http.HttpServletResponse;
  18 +import javax.validation.Valid;
20 19  
21 20 /**
22 21 * <p>
... ... @@ -121,5 +120,32 @@
121 120 matdeliverFollowRequest.setNeed("need");
122 121 return matdeliverFollowFacade.getPostpartumFollowMake(matdeliverFollowRequest, loginState.getId());
123 122 }
  123 +
  124 + /**
  125 + * 推送问卷
  126 + *
  127 + * @param request
  128 + * @return
  129 + */
  130 + @ResponseBody
  131 + @TokenRequired
  132 + @RequestMapping(value = "/questionnaire/push", method = RequestMethod.POST)
  133 + public BaseResponse questionnairePush(@RequestBody @Valid QuestionnairePushRequest questionnairePushRequest, HttpServletRequest request) {
  134 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  135 + return matdeliverFollowFacade.questionnairePush(questionnairePushRequest, loginState.getId());
  136 + }
  137 +
  138 + /**
  139 + * 推送问卷 -- 保存产、妇在小程序端填写的数据
  140 + *
  141 + * @param param
  142 + * @return
  143 + */
  144 + @ResponseBody
  145 + @RequestMapping(value = "/questionnaire/upload", method = RequestMethod.POST)
  146 + public BaseResponse addQuestionnaire(@RequestBody @Valid QuestionnairePushRequest param) {
  147 + return matdeliverFollowFacade.addQuestionnaire(param);
  148 + }
  149 +
124 150 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java View file @ a7618f2
1 1 package com.lyms.platform.operate.web.facade;
2 2  
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.lyms.platform.beans.MsgListRequest;
  5 +import com.lyms.platform.beans.MsgRequest;
3 6 import com.lyms.platform.biz.service.*;
4 7 import com.lyms.platform.common.constants.ErrorCodeConstants;
5   -import com.lyms.platform.common.enums.OptActionEnums;
6   -import com.lyms.platform.common.enums.PostpartumFollowMakeEnums;
7   -import com.lyms.platform.common.enums.TrackDownDateEnums;
8   -import com.lyms.platform.common.enums.YnEnums;
  8 +import com.lyms.platform.common.enums.*;
9 9 import com.lyms.platform.common.result.BaseListResponse;
10 10 import com.lyms.platform.common.result.BaseObjectResponse;
11 11 import com.lyms.platform.common.result.BaseResponse;
  12 +import com.lyms.platform.common.utils.BeanUtils;
12 13 import com.lyms.platform.common.utils.DateUtil;
13 14 import com.lyms.platform.common.utils.ExcelUtil;
14 15 import com.lyms.platform.operate.web.request.MatDeliverFollowAddRequest;
15 16 import com.lyms.platform.operate.web.request.MatdeliverFollowRequest;
  17 +import com.lyms.platform.operate.web.request.QuestionnairePushRequest;
16 18 import com.lyms.platform.operate.web.result.MatdeliverFollowListResult;
17 19 import com.lyms.platform.operate.web.result.MatdeliverFollowResult;
18 20 import com.lyms.platform.operate.web.service.ITrackDownService;
19 21 import com.lyms.platform.operate.web.utils.CollectionUtils;
  22 +import com.lyms.platform.operate.web.utils.MessageCenterService;
20 23 import com.lyms.platform.operate.web.utils.ResponseUtil;
21 24 import com.lyms.platform.operate.web.utils.UnitConstants;
22 25 import com.lyms.platform.permission.model.Organization;
... ... @@ -38,6 +41,10 @@
38 41 import org.apache.log4j.Logger;
39 42 import org.apache.poi.ss.util.CellRangeAddress;
40 43 import org.springframework.beans.factory.annotation.Autowired;
  44 +import org.springframework.data.mongodb.core.MongoTemplate;
  45 +import org.springframework.data.mongodb.core.query.Criteria;
  46 +import org.springframework.data.mongodb.core.query.Query;
  47 +import org.springframework.data.mongodb.core.query.Update;
41 48 import org.springframework.stereotype.Component;
42 49  
43 50 import javax.servlet.http.HttpServletResponse;
... ... @@ -77,6 +84,9 @@
77 84 @Autowired
78 85 private PersonService personService;
79 86  
  87 + @Autowired
  88 + protected MongoTemplate mongoTemplate;
  89 +
80 90 public BaseResponse matdeliverFollowMakeInit(Integer id) {
81 91 Map map = new HashMap();
82 92 //是否结案
... ... @@ -662,6 +672,109 @@
662 672 e.printStackTrace();
663 673 }
664 674 return out;
  675 + }
  676 +
  677 + /**
  678 + * 问卷推送
  679 + *
  680 + * @param questionnairePushRequest
  681 + * @param userId
  682 + * @return
  683 + */
  684 + public BaseResponse questionnairePush(QuestionnairePushRequest questionnairePushRequest, Integer userId) {
  685 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  686 +
  687 + // 新增追访信息
  688 +
  689 + String phone = questionnairePushRequest.getPhone();
  690 + String parentid = questionnairePushRequest.getParentid();
  691 + String deliverId = questionnairePushRequest.getDeliverId();
  692 + String pid = questionnairePushRequest.getPid();
  693 +
  694 + if (StringUtils.isNotEmpty(phone) && StringUtils.isNotEmpty(parentid)
  695 + && StringUtils.isNotEmpty(deliverId) && StringUtils.isNotEmpty(pid)) {
  696 + MatDeliverFollowAddRequest param = new MatDeliverFollowAddRequest();
  697 + // 联系结果、访视类型、备注
  698 + param.setContactResult(1);
  699 + param.setMakeType(PostpartumFollowMakeEnums.TypeEnum.WJTS.getId());
  700 + param.setMakeRemark("");
  701 + param.setVisitDoctor(userId.toString());
  702 + param.setMakeVisitDateStr(new Date());
  703 + param.setDeliverId(deliverId);
  704 + param.setPid(pid);
  705 + BaseResponse baseResponse = addOrUpdateMatDeliverFollow(param, userId);
  706 + String followModelId = (String) baseResponse.getObject();
  707 +
  708 +
  709 + // 推送到指定用户中
  710 + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(parentid)), Patients.class);
  711 + Organization organization = organizationService.getOrganization(Integer.parseInt(hospitalId));
  712 + Users users = usersService.getUsers(userId);
  713 + MsgListRequest msgListRequest = new MsgListRequest();
  714 + List<MsgRequest> msgRequests = new ArrayList<>();
  715 + // 1 推送服务, 2 推送和短信服务 3短信服务
  716 + MsgRequest request = new MsgRequest();
  717 + request.setFirst(String.format("%s 女士您好!您身边的 %s,%s医生温馨提醒," +
  718 + "请及时填写产后健康情况记录表,便于医生掌握您产后情况更好的守护您的健康。", patients.getUsername(), organization.getName(), users.getName()));
  719 + // 产妇
  720 + request.setObjType(ServiceObjEnums.CHANOBJ.getId());
  721 + request.setPhone(phone);
  722 + request.setTimeType(SmsTimeTypeEnums.ONTIME.getId());
  723 + request.setPlanTime(DateUtil.getyyyy_MM_dd_hms(new Date()));
  724 + request.setSubTypeId(SmsServiceEnums.FWKT.getId());
  725 + request.setStatus(SmsStatusEnums.WFS.getId());
  726 + request.setHospitalId(hospitalId);
  727 + request.setPatientId(parentid);
  728 + request.setSmsStatus(SmsStatusEnums.WFS.getId());
  729 + request.setServiceType(1);
  730 +
  731 + request.setTypeId(0);
  732 +
  733 + request.setKeyword1("");
  734 + request.setKeyword2("");
  735 +
  736 + // 参数传递 医院id + 产后访视主键
  737 + JSONObject jsonObject = new JSONObject();
  738 + jsonObject.put("hosptialId", hospitalId);
  739 + jsonObject.put("id", followModelId);
  740 + request.setRemark(jsonObject.toJSONString());
  741 + request.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date()));
  742 +
  743 + // todo 微信模板ID
  744 + request.setWxTempId(WxTempleteIdEnums.FU_WU_DING_GOU_TX.getId());
  745 +
  746 + msgRequests.add(request);
  747 + msgListRequest.setMessages(msgRequests);
  748 + MessageCenterService.saveMsgCenter(msgListRequest);
  749 + }
  750 +
  751 + BaseResponse baseResponse = new BaseResponse();
  752 + return baseResponse;
  753 + }
  754 +
  755 + /**
  756 + * 推送问卷 -- 保存产、妇在小程序端填写的数据
  757 + *
  758 + * @param param
  759 + * @return
  760 + */
  761 + public BaseResponse addQuestionnaire(QuestionnairePushRequest param) {
  762 + String id = param.getId();
  763 + BaseResponse baseResponse = new BaseResponse();
  764 + if (StringUtils.isNotEmpty(id)) {
  765 + Update update = new Update();
  766 + param.setId(null);
  767 + Map<String, Object> map = BeanUtils.objectToObjectMap(param);
  768 + Set<Map.Entry<String, Object>> entries = map.entrySet();
  769 + for (Map.Entry<String, Object> entry : entries) {
  770 + update.set(entry.getKey(), entry.getValue());
  771 + }
  772 + mongoTemplate.updateFirst(Query.query(Criteria.where("_id").is(id)), update, MatdeliverFollowModel.class);
  773 + return baseResponse;
  774 + }
  775 + baseResponse.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR);
  776 + baseResponse.setErrormsg("参数缺失");
  777 + return baseResponse;
665 778 }
666 779 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/QuestionnairePushRequest.java View file @ a7618f2
  1 +package com.lyms.platform.operate.web.request;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Date;
  5 +
  6 +/**
  7 + *
  8 + * @Author dongqin
  9 + * @Description
  10 + * @Date 18:00 2019/8/13
  11 + */
  12 +public class QuestionnairePushRequest implements Serializable {
  13 +
  14 + private static final long serialVersionUID = 6439168172427430950L;
  15 +
  16 + private String parentid;
  17 +
  18 + private String deliverId;
  19 +
  20 + private String phone;
  21 +
  22 + private String pid;
  23 +
  24 + private String id;
  25 +
  26 + /**
  27 + * 分娩时间
  28 + */
  29 + private Date deliveryDate;
  30 +
  31 + /**
  32 + * 出院时间
  33 + */
  34 + private Date leaveDate;
  35 +
  36 + /**
  37 + * 体温
  38 + */
  39 + private String temperature;
  40 +
  41 + /**
  42 + * 健康状况
  43 + */
  44 + private String fitnessDesc;
  45 +
  46 + /**
  47 + * 心理状况
  48 + */
  49 + private String mentalityDesc;
  50 +
  51 + /**
  52 + * 血压 {\"szy\":13,\"ssy\":12}
  53 + */
  54 + private String bp;
  55 +
  56 + /**
  57 + * 乳房
  58 + */
  59 + private String breast;
  60 +
  61 + /**
  62 + * 恶露
  63 + */
  64 + private String lochia;
  65 +
  66 + /**
  67 + * 子宫
  68 + */
  69 + private String matrix;
  70 +
  71 + /**
  72 + * 伤口
  73 + */
  74 + private String wound;
  75 +
  76 + /**
  77 + * 其他
  78 + */
  79 + private String otherDesc;
  80 +
  81 + /**
  82 + * 分类
  83 + */
  84 + private String healthType;
  85 +
  86 + private String hospitalId;
  87 +
  88 + public String getHospitalId() {
  89 + return hospitalId;
  90 + }
  91 +
  92 + public void setHospitalId(String hospitalId) {
  93 + this.hospitalId = hospitalId;
  94 + }
  95 +
  96 + public String getId() {
  97 + return id;
  98 + }
  99 +
  100 + public void setId(String id) {
  101 + this.id = id;
  102 + }
  103 +
  104 + public Date getDeliveryDate() {
  105 + return deliveryDate;
  106 + }
  107 +
  108 + public void setDeliveryDate(Date deliveryDate) {
  109 + this.deliveryDate = deliveryDate;
  110 + }
  111 +
  112 + public Date getLeaveDate() {
  113 + return leaveDate;
  114 + }
  115 +
  116 + public void setLeaveDate(Date leaveDate) {
  117 + this.leaveDate = leaveDate;
  118 + }
  119 +
  120 + public String getTemperature() {
  121 + return temperature;
  122 + }
  123 +
  124 + public void setTemperature(String temperature) {
  125 + this.temperature = temperature;
  126 + }
  127 +
  128 + public String getFitnessDesc() {
  129 + return fitnessDesc;
  130 + }
  131 +
  132 + public void setFitnessDesc(String fitnessDesc) {
  133 + this.fitnessDesc = fitnessDesc;
  134 + }
  135 +
  136 + public String getMentalityDesc() {
  137 + return mentalityDesc;
  138 + }
  139 +
  140 + public void setMentalityDesc(String mentalityDesc) {
  141 + this.mentalityDesc = mentalityDesc;
  142 + }
  143 +
  144 + public String getBp() {
  145 + return bp;
  146 + }
  147 +
  148 + public void setBp(String bp) {
  149 + this.bp = bp;
  150 + }
  151 +
  152 + public String getBreast() {
  153 + return breast;
  154 + }
  155 +
  156 + public void setBreast(String breast) {
  157 + this.breast = breast;
  158 + }
  159 +
  160 + public String getLochia() {
  161 + return lochia;
  162 + }
  163 +
  164 + public void setLochia(String lochia) {
  165 + this.lochia = lochia;
  166 + }
  167 +
  168 + public String getMatrix() {
  169 + return matrix;
  170 + }
  171 +
  172 + public void setMatrix(String matrix) {
  173 + this.matrix = matrix;
  174 + }
  175 +
  176 + public String getWound() {
  177 + return wound;
  178 + }
  179 +
  180 + public void setWound(String wound) {
  181 + this.wound = wound;
  182 + }
  183 +
  184 + public String getOtherDesc() {
  185 + return otherDesc;
  186 + }
  187 +
  188 + public void setOtherDesc(String otherDesc) {
  189 + this.otherDesc = otherDesc;
  190 + }
  191 +
  192 + public String getHealthType() {
  193 + return healthType;
  194 + }
  195 +
  196 + public void setHealthType(String healthType) {
  197 + this.healthType = healthType;
  198 + }
  199 +
  200 + public String getPid() {
  201 + return pid;
  202 + }
  203 +
  204 + public void setPid(String pid) {
  205 + this.pid = pid;
  206 + }
  207 +
  208 + public String getParentid() {
  209 + return parentid;
  210 + }
  211 +
  212 + public void setParentid(String parentid) {
  213 + this.parentid = parentid;
  214 + }
  215 +
  216 + public String getDeliverId() {
  217 + return deliverId;
  218 + }
  219 +
  220 + public void setDeliverId(String deliverId) {
  221 + this.deliverId = deliverId;
  222 + }
  223 +
  224 + public String getPhone() {
  225 + return phone;
  226 + }
  227 +
  228 + public void setPhone(String phone) {
  229 + this.phone = phone;
  230 + }
  231 +}