Browse Source

Merge branch 'dev' of yeshijie/patient-co-management into dev

yeshijie 7 years ago
parent
commit
1c32baf833

+ 2 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/feedback/FeedbackController.java

@ -118,7 +118,8 @@ public class FeedbackController extends BaseController {
    public String dealAppeal(@RequestParam(required = true,value="id") Long id,
                             @RequestParam(required = true,value="result") String result){
        try {
            feedbackService.dealFeedback(id,result);
            Feedback feedback = feedbackService.dealFeedback(id,result);
            feedbackService.sendMsg(feedback);
            return write(200,"操作成功!");
        }catch (Exception e){
            error(e);

+ 61 - 47
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/feedback/FeedbackService.java

@ -1,7 +1,6 @@
package com.yihu.wlyy.service.manager.feedback;
import com.yihu.wlyy.entity.Doctor;
import com.yihu.wlyy.entity.Followup;
import com.yihu.wlyy.entity.Message;
import com.yihu.wlyy.entity.Patient;
import com.yihu.wlyy.entity.feedback.Feedback;
@ -42,6 +41,8 @@ public class FeedbackService extends BaseService {
    private DoctorDao doctorDao;
    @Value("${wlyyService.api}")
    private String wlyyService;
    @Value("${image.imgUrlDomain}")
    private String imgUrlDomain;
    @Autowired
    private MessageDao messageDao;
@ -148,8 +149,13 @@ public class FeedbackService extends BaseService {
        map.put("name", name);
        map.put("identity", identity);
        map.put("contact", contact);
        map.put("phone", feedback.getPhone());
        map.put("idcard", feedback.getIdcard());
        map.put("result", feedback.getResult());
        map.put("createTime", feedback.getCreateTime());
        map.put("description", description);
        map.put("images", images);
        map.put("imgUrlDomain", imgUrlDomain);
        if (status == 0) {
            feedbackDao.modifyFeedbackStatus(id, 1);
        }
@ -173,10 +179,16 @@ public class FeedbackService extends BaseService {
     * @param result
     * @throws Exception
     */
    public void dealFeedback(Long id, String result) throws Exception {
    public Feedback dealFeedback(Long id, String result) throws Exception {
        Feedback feedback = feedbackDao.findFeedbackById(id);
        feedback.setResult(result);
        feedback.setStatus(2);
        feedbackDao.save(feedback);
        return feedback;
    }
    public void sendMsg(Feedback feedback){
        String result = feedback.getResult();
        int identity = feedback.getIdentity();
        int type = feedback.getType();
        String typeName = null;
@ -195,57 +207,59 @@ public class FeedbackService extends BaseService {
                typeName = "其他";
                break;
        }
        if (identity == 1) {
            //wlyy给患者发送模板消息
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try{
            if (identity == 1) {
                //wlyy给患者发送模板消息
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Patient patient = patientDao.findByCode(creater);
            String patientName = patient.getName();
            String patientOpendID = patient.getOpenid();
            if (StringUtils.isNotEmpty(patientOpendID)) {
                String url = wlyyService + "/patient/feedback/sendTemplate";
                List<NameValuePair> params = new ArrayList<>();
                params.add(new BasicNameValuePair("toUser", patientOpendID));
                params.add(new BasicNameValuePair("url", null));
                params.add(new BasicNameValuePair("first", "您好!您提交的意见反馈已处理"));
                params.add(new BasicNameValuePair("remark", "感谢你的意见"));
                Patient patient = patientDao.findByCode(creater);
                String patientName = patient.getName();
                String patientOpendID = patient.getOpenid();
                if (StringUtils.isNotEmpty(patientOpendID)) {
                    String url = wlyyService + "/patient/feedback/sendTemplate";
                    List<NameValuePair> params = new ArrayList<>();
                    params.add(new BasicNameValuePair("toUser", patientOpendID));
                    params.add(new BasicNameValuePair("url", null));
                    params.add(new BasicNameValuePair("first", "您好!您提交的意见反馈已处理"));
                    params.add(new BasicNameValuePair("remark", "感谢你的意见"));
                    SimpleDateFormat formatDate = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
                    String newDate = formatDate.format(new Date());
                    String keywords = patientName + "," + typeName + "," + result + "," + newDate;
                    params.add(new BasicNameValuePair("keywords", keywords));
                    HttpClientUtil.post(url, params, "UTF-8");
                }
            } else if (identity == 2) {
                SimpleDateFormat formatDate = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
                String newDate = formatDate.format(new Date());
                String keywords = patientName + "," + typeName + "," + result + "," + newDate;
                params.add(new BasicNameValuePair("keywords", keywords));
                String title = "新增系统消息";
                String content = "您在" + newDate + "提交的意见反馈已处理,您可点此查看处理结果";
                Message message = new Message();
                message.setType(10);
                message.setCode(UUID.randomUUID().toString());
                message.setCzrq(new Date());
                message.setCreateTime(new Date());
                message.setContent(content);
                message.setRead(1);//设置未读
                message.setReceiver(creater);//设置接受医生的code
                message.setSender("system");//设置发送的用户
                message.setTitle(title);
                message.setReadonly(1);//是否只读消息
                //wlyy给医生发送系统消息
                Doctor doctor = doctorDao.findByCode(creater);
                String doctorOpenID = doctor.getOpenid();
                String url = wlyyService + "/patient/feedback/sendMessage";
                List<NameValuePair> params = new ArrayList<>();
                params.add(new BasicNameValuePair("receiver", creater));
                params.add(new BasicNameValuePair("title", title));
                params.add(new BasicNameValuePair("content",content));
                HttpClientUtil.post(url, params, "UTF-8");
                messageDao.save(message);
            }
        } else if (identity == 2) {
            SimpleDateFormat formatDate = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
            String newDate = formatDate.format(new Date());
            String title = "新增系统消息";
            String content = "您在" + newDate + "提交的意见反馈已处理,您可点此查看处理结果";
            Message message = new Message();
            message.setType(10);
            message.setCode(UUID.randomUUID().toString());
            message.setCzrq(new Date());
            message.setCreateTime(new Date());
            message.setContent(content);
            message.setRead(1);//设置未读
            message.setReceiver(creater);//设置接受医生的code
            message.setSender("system");//设置发送的用户
            message.setTitle(title);
            message.setReadonly(1);//是否只读消息
            //wlyy给医生发送系统消息
            Doctor doctor = doctorDao.findByCode(creater);
            String doctorOpenID = doctor.getOpenid();
            String url = wlyyService + "/patient/feedback/sendMessage";
            List<NameValuePair> params = new ArrayList<>();
            params.add(new BasicNameValuePair("receiver", creater));
            params.add(new BasicNameValuePair("title", title));
            params.add(new BasicNameValuePair("content",content));
            HttpClientUtil.post(url, params, "UTF-8");
            messageDao.save(message);
        }catch (Exception e){
            e.printStackTrace();
        }
        feedbackDao.save(feedback);
    }
}

+ 16 - 12
patient-co-manage/wlyy-manage/src/main/resources/application.yml

@ -51,17 +51,17 @@ spring:
  profiles: dev
  datasource:
    wlyy:
      url: jdbc:mysql://172.19.103.77:3306/wlyy?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
      username: root
      password: 123456
      url: jdbc:mysql://172.19.103.85:3306/wlyy?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
      username: linzhou
      password: linzhou
    device:
      url: jdbc:mysql://172.19.103.77:3306/device?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
      username: root
      password: 123456
      url: jdbc:mysql://172.19.103.85:3306/device?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
      username: linzhou
      password: linzhou
    medicine:
      url: jdbc:mysql://172.19.103.77:3306/medicine?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
      username: root
      password: 123456
      url: jdbc:mysql://172.19.103.85:3306/medicine?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
      username: linzhou
      password: linzhou
  sms: # SMS短信配置
    yihu_sms_url: https://smsapi.ums86.com:9600/sms/Api/Send.do
    yihu_sms_code: 229336
@ -77,7 +77,8 @@ doctorAssistant:
  api: http://192.168.131.113:8080
wlyyService:
  api: http://10.95.22.10:8011/wlyy/
image:
  imgUrlDomain: http://172.19.103.54/
---
spring:
  profiles: test
@ -111,7 +112,8 @@ doctorAssistant:
  api: http://172.19.103.88:10090/wlyy
wlyyService:
  api: http://ehr.yihu.com/wlyy/
image:
  imgUrlDomain: http://172.19.103.54/
---
spring:
  profiles: prod
@ -142,4 +144,6 @@ yueren:
doctorAssistant:
  api: http://www.xmtyw.cn/assistant
wlyyService:
  api: http://www.xmtyw.cn/wlyy/
  api: http://www.xmtyw.cn/wlyy/
image:
  imgUrlDomain: http://www.xmtyw.cn/

+ 11 - 1
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/appeal/appeal_detail.jsp

@ -137,10 +137,20 @@
                <input class="fd-input" type="text" id="phone" class="ajax min-length-2 validate-special-char"  />
            </div>
        </div>
        <div class="m-form-group" style="">
            <label class="label_title fd-label">身份证号:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="idcard" class="ajax min-length-2 validate-special-char"  />
            </div>
            <label class="label_title fd-label">申诉时间:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="createTime" class="ajax min-length-2 validate-special-char"  />
            </div>
        </div>
        <div class="m-form-group">
            <label class="label_title fd-padl fd-label">申诉详情描述:</label>
            <div class="fd-pd">
                <input class="fd-input fd-autoh" type="text" id="description" class="required useTitle ajax f-w240 validate-special-char" />
                <textarea class="fd-input fd-autoh" id="description" style="width: 600px; height: 100px"></textarea>
            </div>
        </div>
        <div class="fd-group">

+ 4 - 7
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/appeal/appeal_detail_js.jsp

@ -28,6 +28,8 @@
            $name: $("#name"),//姓名
            $identity:$("#identity"),//身份
            $phone:$("#phone"),//联系方式
            $createTime:$("#createTime"),//时间
            $idcard:$("#idcard"),//身份证
            $description:$("#description"),//申诉详情
            $result:$("#result1"),//处理结果
            $btndeal: $("#deal"),//处理按钮
@ -60,6 +62,8 @@
                                    _this.$identity.val("医生")
                                }
                                _this.$phone.val(data.phone);
                                _this.$idcard.val(data.idcard);
                                _this.$createTime.val(data.createTime);
                                _this.$description.val(data.description);
                                if (isNoEmpty(data.result)) {
                                    _this.$result.val(data.result);
@ -91,13 +95,6 @@
                    $("#dealDiv").show();
                    dialog.set('title', '处理结果');
                    $("#detail").hide();
                   /* self.dealDialog = $.ligerDialog.open({
                        height: 800,
                        width: 800,
                        urlParms: {"id": $("#id").val()},
                        title: '处理结果',
                        url: ctx + '/admin/appeal/dealInit'
                    })*/
                });
                $("#close").click(function () {
                    parent.window.closeParentInfoDialog();

+ 9 - 7
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/appeal/appeal_list_js.jsp

@ -150,7 +150,7 @@
                        ajaxHeaderValue: ajaxHeaderValue,
                        columns: [
                            {display: 'ID', name: 'id', hide: true},
                            {display: '申诉类型', name: 'type', width: '20%', align: "center",
                            {display: '申诉类型', name: 'type', width: '10%', align: "center",
                                render: function (row) {
                                    if (Util.isStrEquals(row.type, 1)) {
                                        return "手机号变更";
@ -160,9 +160,10 @@
                                    return "其他";
                                }
                            },
                            {display: '提出人', name: 'createrName', width: '20%', align: "center"},
                            {display: '提出人', name: 'name', width: '15%', align: "center"},
                            {display: '申诉时间', name: 'createTime', width: '20%', align: "center"},
                            {display: '联系方式', name: 'phone', width: '20%', align: "center"},
                            {display: '身份', name: 'identity', width: '20%', align: "center",
                            {display: '身份', name: 'identity', width: '15%', align: "center",
                                render:function (row) {
                                    if (Util.isStrEquals(row.identity,1)){
                                        return "患者";
@ -206,8 +207,9 @@
                                data.checked ="0";
                        },
                        onCheckAllRow:function(checked,gridElement){
                            if(checked){
                                $(".div-pldelete-btn").addClass("active");
                            var checkRowsList = master.grid.getCheckedRows();
                            if(checkRowsList.length==0){
                                $(".div-pldelete-btn").removeClass("active");
                            }else{
                                $(".div-pldelete-btn").addClass("active");
                            }
@ -236,8 +238,8 @@
                    var self = this;
                    $.subscribe('info:view', function (event, id) {
                        self.infoDialog = $.ligerDialog.open({
                            height: 430,
                            width: 600,
                            height: 480,
                            width: 700,
                            urlParms: {"id": id},
                            title: '查看',
                            url: ctx + '/admin/appeal/showDetail',

+ 98 - 27
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/feedback/feeback_detail.jsp

@ -78,45 +78,116 @@
        line-height: 35px;
        text-align: center;
    }
    .ad-padd{
        height: 280px;
        width: 100%;
        padding: 10px;
        border: solid 1px #dcdcdc;
        border-radius: 2px;
        font-size: 12px;
    }
    .ad-padd::-webkit-input-placeholder{
        color:#ccc;
    }
    .ad-padd::-moz-placeholder{
        color:#ccc;
    }
    .ad-padd:-moz-placeholder{
        color:#ccc;
    }
    .ad-padd:-ms-input-placeholder{
        color:#ccc;
    }
    .ad-result{
        margin: 20px 35px 0px 35px;
        border-top: solid 1px #ccc;
        padding-top:10px ;
    }
    .ad-label{
        text-align: left!important;
        padding-left: 0px!important;
        font-weight: bold!important;
    }
    .ad-pd{
        padding-top: 35px;
    }
</style>
<body>
<div id="div_roles_info_form" class="m-form-inline f-mt20" data-role-form>
    <input type="hidden" id="id" value='${id}'/>
    <div class="m-form-group">
        <label class="label_title fd-label">意见类型:</label>
        <div class="l-text-wrapper m-form-control">
            <input class="fd-input" type="text" id="type" />
    <div id="detail">
        <input type="hidden" id="id" value='${id}'/>
        <div class="m-form-group">
            <label class="label_title fd-label">意见类型:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="type" />
            </div>
            <label class="label_title fd-label">姓&#x3000;&#x3000;名:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="name"/>
            </div>
        </div>
        <div class="m-form-group" style="">
            <label class="label_title fd-label">身&#x3000;&#x3000;份:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="identity" />
            </div>
            <label class="label_title fd-label">联系方式:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="phone" />
            </div>
        </div>
        <div class="m-form-group" style="">
            <label class="label_title fd-label">身份证号:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="idcard" />
            </div>
            <label class="label_title fd-label">反馈时间:</label>
            <div class="l-text-wrapper m-form-control">
                <input class="fd-input" type="text" id="createTime" />
            </div>
        </div>
        <div class="m-form-group">
            <label class="label_title fd-padl fd-label">意见详情描述:</label>
            <div class="fd-pd">
                <textarea id="description" style="width: 650px; height: 160px"></textarea>
                <%--<input class="fd-input fd-autoh" type="text" id="description" />--%>
            </div>
        </div>
        <div class="fd-group">
            <div class="fd-file">附&#x3000;&#x3000;件:</div>
            <div class="fd-img" id="image">
        <label class="label_title fd-label">姓&#x3000;&#x3000;名:</label>
        <div class="l-text-wrapper m-form-control">
            <input class="fd-input" type="text" id="name"/>
            </div>
        </div>
    </div>
    <div class="m-form-group" style="">
        <label class="label_title fd-label">身&#x3000;&#x3000;份:</label>
        <div class="l-text-wrapper m-form-control">
            <input class="fd-input" type="text" id="identity" />
        <div class="m-form-group ad-result" id="dealResult" style="display: none;">
            <label class="label_title ad-label">处理结果:</label>
            <div class="ad-pd">
                <textarea class="fd-input fd-autoh"  id="result1"></textarea>
            </div>
        </div>
        <label class="label_title fd-label">联系方式:</label>
        <div class="l-text-wrapper m-form-control">
            <input class="fd-input" type="text" id="phone" />
        <div class="m-form-group" style="text-align: center;margin-top:30px;">
            <div id="deal" class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" >
                <span>处理</span>
            </div>
            <div id="close" class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam" >
                <span>关闭</span>
            </div>
        </div>
    </div>
    <div class="m-form-group">
        <label class="label_title fd-padl fd-label">意见详情描述:</label>
        <div class="fd-pd">
            <textarea id="description" style="width: 650px; height: 80px"></textarea>
            <%--<input class="fd-input fd-autoh" type="text" id="description" />--%>
    <div id="dealDiv" style="display: none;">
        <div class="m-form-group" style="padding:0px 15px">
            <textarea class="ad-padd" name="result" placeholder="请输入处理结果" id="result"></textarea>
        </div>
    </div>
    <div class="fd-group">
        <div class="fd-file">附&#x3000;&#x3000;件:</div>
        <div class="fd-img" id="image">
        <div class="m-form-group" style="text-align: center;margin-top: 20px; ">
            <div id="sure" class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam">
                <span>确认</span>
            </div>
            <div id="cancle" class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam" >
                <span>取消</span>
            </div>
        </div>
    </div>
    <div class="fd-bttn l-button u-btn u-btn-cancel u-btn-large f-ib f-vam" id="back">返回</div>
</div>
</body>
<%@ include file="../head/page_foot.jsp" %>

+ 49 - 2
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/feedback/feedback_detail_js.jsp

@ -8,6 +8,7 @@
      var rolesInfo = null;
      // 表单校验工具类
      var jValidation = $.jValidation;
      var dialog = frameElement.dialog;
      /* *************************** 函数定义 ******************************* */
      function pageInit() {
          rolesInfo.init();
@ -26,6 +27,9 @@
            $name: $("#name"),
            $identity:$("#identity"),
            $phone:$("#phone"),
            $idcard:$("#idcard"),
            $createTime:$("#createTime"),
            $result:$("#result1"),//处理结果
            $image:$("#image"),
            $description:$("#description"),
            init: function () {
@ -56,14 +60,21 @@
                                }else{
                                    _this.$identity.val("医生");
                                }
                                _this.$phone.val(data.contact);
                                _this.$phone.val(data.phone);
                                _this.$idcard.val(data.idcard);
                                _this.$createTime.val(data.createTime);
                                _this.$description.val(data.description);
                                if (isNoEmpty(data.result)) {
                                    _this.$result.val(data.result);
                                    $("#dealResult").show();
                                    $("#deal").hide();
                                }
                                if(data.images){
                                    var arr = data.images.split(',');
                                    var html="";
                                    for(var i=0;i<arr.length;i++){
                                        html += '<img src="'+arr[i]+'" alt="."/>';
                                        html += '<img src="'+data.imgUrlDomain+arr[i]+'" alt="."/>';
                                    }
                                    _this.$image.html(html);
                                }else{
@ -79,9 +90,45 @@
                this.bindEvents();
            },
            bindEvents: function () {
                $("#deal").click(function () {
                    $("#dealDiv").show();
                    dialog.set('title', '处理结果');
                    $("#detail").hide();
                });
                $("#back").click(function () {
                    parent.window.closeParentInfoDialog();
                });
                $("#sure").click(function () {
                    var result = $("#result").val();
                    var id = $("#id").val();
                    if (isNoEmpty(result)) {
                        $.ajax({
                            url: ctx + "/admin/feedback/dealFeedback",
                            method: "post",
                            dataType: "json",
                            data: {id: id,
                                result:result
                            },
                            success: function (result) {
                                if (result.status == '200') {
                                    //todo  操作成功后的处理
                                    alert("操作成功");
                                    parent.window.closeParentInfoDialog();
                                }else{
                                    $.Notice.error(result.msg);
                                }
                            },
                        })
                    }else{
                        //todo
                        $.Notice.error("请输入处理结果");
                    }
                });
                $("#cancle").click(function () {
                    $("#dealDiv").hide();
                    dialog.set('title', '查看');
                    $("#detail").show();
                });
            }
        };
      /* *************************** 页面初始化 **************************** */

+ 11 - 7
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/feedback/feedback_list_js.jsp

@ -144,7 +144,7 @@
                        ajaxHeaderValue: ajaxHeaderValue,
                        columns: [
                            {display: 'ID', name: 'id', hide: true},
                            {display: '意见反馈', name: 'type', width: '20%', align: "center",
                            {display: '意见反馈', name: 'type', width: '10%', align: "center",
//                            反馈类别:1、优化建议、2、提交bug、3、新功能建议、4、其他
                                render: function (row) {
                                    if (Util.isStrEquals(row.type, 1)) {
@ -157,7 +157,9 @@
                                    return "其他";
                                }
                            },
                            {display: '姓名', name: 'createrName', width: '20%', align: "center"},
                            {display: '提出人', name: 'createrName', width: '10%', align: "center"},
                            {display: '反馈时间', name: 'createTime', width: '20%', align: "center"},
                            {display: '联系方式', name: 'phone', width: '20%', align: "center"},
                            {display: '身份', name: 'identity', width: '20%', align: "center",
                                render:function (row) {
                                    if (Util.isStrEquals(row.identity,1)){
@ -166,14 +168,15 @@
                                    return "医生";}
                            },
                            {display: '联系方式', name: 'contact', width: '20%', align: "center"},
                            {display: '状态', name: 'status', width: '10%', align: "center",
//                                对返回结果进行处理
                                render: function (row) {
                                    if (Util.isStrEquals(row.status, 0)) {
                                        return "未读";
                                    } else if (Util.isStrEquals(row.status, 1)) {
                                        return "待处理";
                                    }
                                    return "已读";
                                    return "已处理";
                                }
                            },
                            {
@ -201,8 +204,9 @@
                                data.checked ="0";
                        },
                        onCheckAllRow:function(checked,gridElement){
                            if(checked){
                                $(".div-pldelete-btn").addClass("active");
                            var checkRowsList = master.grid.getCheckedRows();
                            if(checkRowsList.length==0){
                                $(".div-pldelete-btn").removeClass("active");
                            }else{
                                $(".div-pldelete-btn").addClass("active");
                            }
@ -231,7 +235,7 @@
                    var self = this;
                    $.subscribe('info:view', function (event, id) {
                        self.infoDialog = $.ligerDialog.open({
                            height: 430,
                            height: 520,
                            width: 800,
                            urlParms: {"id": id},
                            title: '查看详情',