Jelajahi Sumber

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

Conflicts:
	svr/svr-door-serivce/src/main/java/com/yihu/jw/door/service/DoorServiceApplicationService.java
	svr/svr-door-serivce/src/main/java/com/yihu/jw/door/service/WlyyDoorServiceOrderService.java
	svr/svr-door-serivce/src/main/java/com/yihu/jw/door/util/MessageUtil.java
	svr/svr-door-serivce/src/main/resources/application.yml
yeshijie 4 tahun lalu
induk
melakukan
0591ee31e6

+ 5 - 6
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/service/DoorOrderService.java

@ -128,6 +128,8 @@ public class DoorOrderService {
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private WlyyDoorCommentDao doorCommentDao;
    @Autowired
    private SystemMessageDao systemMessageDao;
    /**
     * 顶部状态栏订单各分类总条数
     * @param doctor
@ -558,7 +560,7 @@ public class DoorOrderService {
                }
                else{
                    message.setOver("0");
                    messageUtil.saveSystemMessage(message);
                    systemMessageDao.save(message);
                }
            });
@ -628,11 +630,8 @@ public class DoorOrderService {
        }
        data.put("msg", msg);
        messageDO.setData(msg);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = messageDO.getCreateTime();
        String dateTime=format.format(date);
        messageDO.setCreateTime(date);
        messageUtil.saveSystemMessage(messageDO);
        messageDO.setCreateTime(new Date());
        systemMessageDao.save(messageDO);
    }
    /**

+ 7 - 2
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/service/DoorServiceApplicationService.java

@ -7,11 +7,13 @@ import com.yihu.jw.door.dao.DoorServiceVoucherDao;
import com.yihu.jw.door.util.MessageUtil;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.door.WlyyDoorServiceApplicationDo;
import com.yihu.jw.entity.door.WlyyDoorServiceVoucherDo;
import com.yihu.jw.entity.hospital.family.WlyyPatientFamilyMemberDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.family.dao.WlyyPatientFamilyMemberDao;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.message.dao.MessageDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.common.IdCardUtil;
@ -22,6 +24,7 @@ import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -72,6 +75,8 @@ public class DoorServiceApplicationService {
    private MessageUtil messageUtil;
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
    private SystemMessageDao systemMessageDao;
    @PostConstruct
    public void init() {
@ -506,7 +511,7 @@ public class DoorServiceApplicationService {
            List<SystemMessageDO> messages = messageUtil.findSystemMesage(String.valueOf(id),null);
            messages.forEach(item->{
                item.setOver("0");
                messageUtil.saveSystemMessage(item);
                systemMessageDao.save(item);
            });
/*            List<Message> messages=messageDao.findMessageByRelationCode(String.valueOf(id));
            messages.forEach(item->{
@ -544,7 +549,7 @@ public class DoorServiceApplicationService {
            List<SystemMessageDO> messages = messageUtil.findSystemMesage(String.valueOf(id),null);
            messages.forEach(item->{
                item.setOver("0");
                messageUtil.saveSystemMessage(item);
                systemMessageDao.save(item);
            });
/*            List<Message> messages=messageDao.findMessageByRelationCode(String.valueOf(id));
            messages.forEach(item->{

+ 64 - 15
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/service/WlyyDoorServiceOrderService.java

@ -3,6 +3,7 @@ package com.yihu.jw.door.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.netflix.discovery.converters.Auto;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
@ -164,9 +165,12 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
    @Autowired
    private DoorServiceApplicationService doorServiceApplicationService;
    @Autowired
    private SystemMessageDao systemMessageDao;
    @Autowired
    private MessageUtil messageUtil;
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
    private SystemMessageDao systemMessageDao;
    /**
     * 上门服务工单服务基本信息
     *
@ -1361,6 +1365,7 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
            orderDO.setDispatcher(dispatcher);
            orderDO.setDispatcherName(dispatcherName);
        }
        //如果是调度员取消,推送IM取消工单json消息,
        orderDO.setStatus(WlyyDoorServiceOrderDO.Status.cancel.getType());
        this.save(orderDO);
        if(type == WlyyDoorServiceOrderDO.CancelType.dispatcher.getType()){
@ -1377,12 +1382,26 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
                                        dispatcher,dispatcherName,null,msg,message.getOver());
                            }else{
                                message.setOver("0");
                                messageUtil.saveSystemMessage(message);
                                systemMessageDao.save(message);
                            }
                        }
                );
            }
        }
        else if(type == WlyyDoorServiceOrderDO.CancelType.patient.getType()){                   //居民取消,消息列表也应该不显示
            List<SystemMessageDO> messages = messageUtil.findSystemMesage(orderId,"402,403");
            if(CollectionUtils.isEmpty(messages)){
                logger.error("当前工单没有系统消息!!orderId:" + orderId);
            } else {
                messages.forEach(
                        message -> {
                            message.setOver("0");
                            systemMessageDao.save(message);
                        }
                );
            }
        }
//        else if(type == WlyyDoorServiceOrderDO.CancelType.patient.getType()){                   //居民取消,消息列表也应该不显示
//
//            List<Message> messages = messageDao.queryByRelationCodeAndTypeIn(orderId,new Integer[]{402,403});
@ -1459,6 +1478,27 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        JSONObject confirmInfoJson = new JSONObject();
        confirmInfoJson.put("confirmInfo",confirmInfo);
        this.orderWithConfirmLogAdd(result,confirmInfo,orderId);
        ConsultDo consult = consultDao.queryByRelationCode(orderId);
        // 发送微信模板消息,通知居民工单已取消(smyyyqx-上门预约已取消)
        String first = "key1,您好,您的上门预约服务已退回,点击查看原因";
        BasePatientDO patient = patientDao.findById(orderDO.getPatient());
        first  = first.replace("key1", null != patient.getName() ? patient.getName() : "");
//        if(consult != null) {
//            json.put("consult", consult.getCode());
//        }else {
//            json.put("id", orderDO.getId());
//        }
//        if(json.has("consult")) {
//            temp.setUrl(url + json.getString("url") + "?openid=" + openid + "&consult=" + json.getString("consult"));
//        }else if (json.has("id")){
//            temp.setUrl(url + json.getString("url") + "?openid=" + openid + "&id=" + json.getString("id"));
//        }else if(json.has("relationCode")){
//            temp.setUrl(url + json.getString("url") + "?openid=" + openid );
//        }else if(json.has("resultCode")){
//            temp.setUrl(url + json.getString("url") + "?resultCode=" + json.getString("resultCode"));
//        }
        messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",patient.getOpenid(),first,null,null,DateUtil.dateToStrShort(new Date()),"上门预约已取消");
/*        Consult consult = consultDao.queryByRelationCode(orderId);
        // 发送微信模板消息,通知居民工单已取消(smyyyqx-上门预约已取消)
@ -1496,6 +1536,18 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        WlyyDoorServiceOrderDO orderDO = wlyyDoorServiceOrderDao.findOne(orderId);
        ConsultDo consult = consultDao.queryByRelationCode(orderId);
        // 发送微信模板消息,通知居民工单已取消(smyyyqx-上门预约已取消)
        BasePatientDO patient = patientDao.findById(orderDO.getPatient());
        String first="key1,您好,您的上门预约服务已退回,点击查看原因";
        first = first.replace("key1", null != patient.getName() ? patient.getName() : "");
//        json.put("url", "appoint_service/html/appoint-serviceDetail.html?id="+orderId);
//        json.put("remark", templateConfig.getRemark());
//        if(consult != null) {
//            json.put("consult", consult.getCode());
//        }else {
//            json.put("id", orderDO.getId());
//        }
        messageUtil.putTemplateWxMessage(wxId,"template_process_feedback","smyyyqx",patient.getOpenid(),first,null,null,DateUtil.dateToStrShort(new Date()),"知情同意书已推送");
/*        BasePatientDO patient = patientDao.findById(orderDO.getPatient());
        WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_process_feedback","smyyyqx");
        String first = templateConfig.getFirst().replace("key1", null != patient.getName() ? patient.getName() : "");
@ -2222,31 +2274,31 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        imUtill.updateParticipant(sessionId,doctor,null);
        // 调度员处理完该单(新增预约的,或者是拒单重新派单的)
/*        List<Message> messages = messageDao.queryByRelationCodeAndTypeIn(orderId,new Integer[]{402,404,430,435});
        List<SystemMessageDO> messages = messageUtil.findSystemMesage(orderId,"402,404,430,435");
        if(CollectionUtils.isEmpty(messages)){
            logger.error("当前工单没有 居民新增预约 消息!!orderId:" + orderId);
        }else{
            // 设置消息处理完毕
            messages.forEach(
                    message -> {
                        messageUtil.orderMessageDel(message.getId(),message.getRelationCode(),message.getType(),message.getReceiver());
                        String title = "调度员派单(派给本社区医生)";
                        if("system".equals(dispatcher)){
                            title = "系统派单(派给服务医生)";
                        }
                        if (message.getType() == 430) {
                        if (message.getType() .equals("430")) {
                            message.setTitle(title);
                            message.setContent(doorServiceOrderDO.getDispatcherName() + "已将服务工单" + doorServiceOrderDO.getNumber() + "指派给" + doctorName + "医生");
                            message.setType(431);
                            message.setReceiver(dispatcher);
                            message.setSender(dispatcher);
                            message.setCreateTime(new Date());
                            String msg = doorServiceOrderDO.getDispatcherName() + "已将服务工单" + doorServiceOrderDO.getNumber() + "指派给" + doctorName + "医生";
                            messageUtil.saveSystemMessage(message.getId(),message.getRelationCode(),title,"431",dispatcher,dispathcherName,
                                    dispatcher,dispathcherName,null,msg,message.getOver());
                        }else{
                            message.setOver("0");
                            systemMessageDao.save(message);
                        }
                        messageDao.save(message);
                    }
            );
        }*/
        }
        // 工单状态变更记录
        WlyyDoorProcessLogDO processLogDO = new WlyyDoorProcessLogDO();
@ -2447,9 +2499,6 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        }
        data.put("msg", msg);
        messageDO.setData(msg);
//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        Date date = messageDO.getCreateTime();
//        String dateTime=format.format(date);
        messageDO.setCreateTime(new Date());
        systemMessageDao.save(messageDO);
    }

+ 14 - 90
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/util/MessageUtil.java

@ -2,6 +2,8 @@ package com.yihu.jw.door.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
@ -9,15 +11,19 @@ import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.exception.code.ExceptionCode;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.rm.base.WechatRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.util.wechat.wxhttp.HttpUtil;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
import com.yihu.jw.wechat.dao.WxAccessTokenDao;
import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import com.yihu.utils.network.HttpUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -51,6 +57,10 @@ public class MessageUtil {
    private WxTemplateConfigDao wxTemplateConfigDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private SystemMessageDao systemMessageDao;
    @Autowired
    private WxAccessTokenDao wxAccessTokenDao;
    //发送微信模板消息
    public static String sendMessageUrl ="http://172.16.100.37:8090/hospitalPortal-sms/sms/sendMessage";
@ -224,8 +234,6 @@ public class MessageUtil {
            logger.info("--------------wechat token return:"+result+"---------------");
            org.json.JSONObject json = new org.json.JSONObject(result);
            if (json.has("access_token")) {
                sql="INSERT INTO `base`.`wx_access_token` (`id`, `wechat_id`, `access_token`, `add_timestamp`, `expires_in`, `czrq`, `code`) \n" +
                        "VALUES ('?1', '?2', '?3', '?4', '?5', '?6', '?7') ";
                String token = json.get("access_token").toString();
                String expires_in = json.get("expires_in").toString();
                WxAccessTokenDO newaccessToken = new WxAccessTokenDO();
@ -235,15 +243,7 @@ public class MessageUtil {
                newaccessToken.setCzrq(new Date());
                newaccessToken.setCode(UUID.randomUUID().toString().replace("-",""));
                newaccessToken.setWechatId(wechatId);
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                sql.replace("?1",UUID.randomUUID().toString().replace("-",""));
                sql.replace("?2",newaccessToken.getWechatId());
                sql.replace("?3",newaccessToken.getAccessToken());
                sql.replace("?4",newaccessToken.getAddTimestamp()+"");
                sql.replace("?5",newaccessToken.getExpiresIn()+"");
                sql.replace("?6",format.format(newaccessToken.getCzrq()));
                sql.replace("?7",newaccessToken.getCode());
                jdbcTemplate.execute(sql);
                wxAccessTokenDao.save(newaccessToken);
                return newaccessToken;
            } else {
                return null;
@ -279,88 +279,12 @@ public class MessageUtil {
        }
        data.put("msg", msg);
        messageDO.setData(data.toString());
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = messageDO.getCreateTime();
        String dateTime=format.format(date);
        String sql="INSERT INTO `base`.`base_system_message` (`id`, `type`, `title`, `sender`, `sender_name`, `receiver`, `receiver_name`, `relation_code`, `data`, `is_read`, `del`, `create_time`,`over`) \n" +
                "VALUES ('?!', '?2', '?3', '?4', '?5', '?6', '?7', '?8', '?9', '0', '1', '?10')";
        messageDO.setCreateTime(date);
        sql.replace("?1",messageDO.getId());
        sql.replace("?2",messageDO.getType());
        sql.replace("?3",messageDO.getTitle());
        sql.replace("?4",messageDO.getSender());
        sql.replace("?5",messageDO.getSenderName());
        sql.replace("?6",messageDO.getReceiver());
        sql.replace("?7",messageDO.getReceiverName());
        sql.replace("?8",messageDO.getRelationCode());
        sql.replace("?9",messageDO.getData());
        sql.replace("?10",dateTime);
        sql.replace("?11",over);
        jdbcTemplate.execute(sql);
        return messageDO;
    }
    public SystemMessageDO saveSystemMessage(SystemMessageDO messageDO){
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if (StringUtils.isBlank(messageDO.getId())){
            messageDO.setId(UUID.randomUUID().toString().replace("-",""));
        }
        Date date = messageDO.getCreateTime();
        String dateTime=format.format(date);
        String sql="INSERT INTO `base`.`base_system_message` (`id`, `type`, `title`, `sender`, `sender_name`, `receiver`, `receiver_name`, `relation_code`, `data`, `is_read`, `del`, `create_time`,`over`) \n" +
                "VALUES ('?!', '?2', '?3', '?4', '?5', '?6', '?7', '?8', '?9', '0', '1', '?10','?11')";
        messageDO.setCreateTime(date);
        sql.replace("?1",messageDO.getId());
        sql.replace("?2",messageDO.getType());
        sql.replace("?3",messageDO.getTitle());
        sql.replace("?4",messageDO.getSender());
        sql.replace("?5",messageDO.getSenderName());
        sql.replace("?6",messageDO.getReceiver());
        sql.replace("?7",messageDO.getReceiverName());
        sql.replace("?8",messageDO.getRelationCode());
        sql.replace("?9",messageDO.getData());
        sql.replace("?10",dateTime);
        sql.replace("?11",messageDO.getOver());
        jdbcTemplate.execute(sql);
        messageDO.setOver(over);
        messageDO.setCreateTime(new Date());
        systemMessageDao.save(messageDO);
        return messageDO;
    }
//    public void updateMessageByList(String orderId,String typeCondition,String title) {
//        List<SystemMessageDO> messages = findSystemMesage(orderId, "403,407");
//        if (CollectionUtils.isEmpty(messages)) {
//            logger.error("当前工单没有医生待接单消息!orderId:" + orderId);
//        } else {
//            messages.forEach(message -> {
//                orderMessageDel(message.getId(), message.getRelationCode(), message.getType(), message.getReceiver());
//                if (message.getType().equals("403")) {
//                    message.setTitle("医生接单");
//                    message.setType(434 + "");
//                    message.setReceiver(doorServiceOrder.getDispatcher());
//                    message.setReceiverName(doorServiceOrder.getDispatcherName());
//                    message.setSender(doorServiceOrder.getDoctor());
//                    message.setSenderName(doorServiceOrder.getDoctorName());
//                    message.setCreateTime(new Date());
//                    JSONObject data = JSONObject.parseObject(message.getData());
//                    String msg = doorServiceOrder.getDispatcherName() + "接受了服务工单" + doorServiceOrder.getNumber();
//                    BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doorServiceOrder.getDispatcher());//·
//                    data.put("name", message.getReceiverName());
//                    data.put("age", IdCardUtil.getAgeForIdcard(baseDoctorDO.getIdcard()));
//                    try {
//                        data.put("gender", IdCardUtil.getSexForIdcard(baseDoctorDO.getIdcard()));
//                    } catch (Exception e) {
//                        e.printStackTrace();
//                    }
//                    data.put("msg", msg);
//                    message.setData(data.toJSONString());
//                }
////                else{
////                    message.setOver("0");
////                }
//                saveSystemMessage(message);
//
//            });
//        }
//    }
    public List<SystemMessageDO> findSystemMesage(String relationCode,String type){