Browse Source

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

wangzhinan 2 years ago
parent
commit
d0d3f9493d
15 changed files with 97 additions and 31 deletions
  1. 11 3
      server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java
  2. 5 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/dao/doctor/BaseDoctorDao.java
  3. 27 4
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java
  4. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/CommonEndpoint.java
  5. 4 2
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java
  6. 19 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java
  7. 2 2
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/device/DeviceWatchRemainingPowerJob.java
  8. 1 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/pushRecord/PushRecordJob.java
  9. 0 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/pushRecord/PushWeatherForecastJob.java
  10. 3 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  11. 4 3
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/PushTimeIntegerPointService.java
  12. 1 1
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/PushWeatherForecastService.java
  13. 13 6
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java
  14. 1 2
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/SystemPushMessageUtil.java
  15. 5 5
      svr/svr-cloud-job/src/main/resources/system.properties

+ 11 - 3
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -1,6 +1,5 @@
package com.yihu.jw.security.core.userdetails.jdbc;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
@ -10,6 +9,7 @@ import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.care.common.GetuiClientDO;
import com.yihu.jw.entity.hospital.family.WlyyPatientFamilyMemberDO;
import com.yihu.jw.security.core.userdetails.SaltUser;
import com.yihu.jw.security.dao.doctor.BaseDoctorDao;
import com.yihu.jw.security.dao.patient.BaseGetuiClientDao;
import com.yihu.jw.security.dao.patient.BasePatientDao;
import com.yihu.jw.security.dao.patient.BasePatientWechatDao;
@ -19,7 +19,6 @@ import com.yihu.jw.security.model.WlyyUserSimple;
import com.yihu.jw.security.service.HcyyService;
import com.yihu.jw.security.utils.IdCardUtil;
import com.yihu.jw.security.utils.ImUtil;
import com.yihu.jw.util.common.StringUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.utils.security.MD5;
@ -106,6 +105,8 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
    private HttpClientUtil httpClientUtil;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private WlyyPatientFamilyMemberDao familyMemberDao;
@ -150,6 +151,13 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        return new SaltUser(username, users.get(0).getPassword(), users.get(0).getSalt(), isEnabled, isLocked, getGrantedAuthorities(username));
    }
    //医生注销注销
    @Transactional(rollbackFor = Exception.class)
    public void logOff(String id){
        baseDoctorDao.logOff(id);
    }
    public void unlocked(String username) {
        String loginType = getLogintype();
@ -1108,7 +1116,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
    public static void main(String arg[]){
        String ps = MD5.md5Hex("327127" + "{" + "Ar8f2" + "}");
        String ps = MD5.md5Hex("123456" + "{" + "wyIlL" + "}");
        System.out.println(ps);
    }
}

+ 5 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/dao/doctor/BaseDoctorDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.security.dao.doctor;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -22,6 +23,10 @@ import java.util.List;
public interface BaseDoctorDao extends PagingAndSortingRepository<BaseDoctorDO, String>, JpaSpecificationExecutor<BaseDoctorDO>  {
    @Modifying
    @Query("UPDATE BaseDoctorDO SET idcard = CONCAT(idcard,'-'),password = CONCAT(password,'-'), mobile = CONCAT(mobile,'-')   WHERE id = ?1")
    void logOff(String id);
    BaseDoctorDO findById(String id);
    @Query("from BaseDoctorDO d where d.idcard=?1 and d.del ='1'")
    BaseDoctorDO findByIdcard(String idcard);

+ 27 - 4
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -1,6 +1,5 @@
package com.yihu.jw.security.oauth2.provider.endpoint;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.code.kaptcha.impl.DefaultKaptcha;
@ -28,12 +27,17 @@ import com.yihu.jw.security.oauth2.core.redis.WlyyRedisVerifyCodeService;
import com.yihu.jw.security.oauth2.provider.WlyyTokenGranter;
import com.yihu.jw.security.oauth2.provider.error.WlyyOAuth2ExceptionTranslator;
import com.yihu.jw.security.service.*;
import com.yihu.jw.security.utils.*;
import com.yihu.jw.security.utils.AES;
import com.yihu.jw.security.utils.DateUtil;
import com.yihu.jw.security.utils.IdCardUtil;
import com.yihu.jw.security.utils.SerializeUtil;
import com.yihu.jw.sms.dao.BaseSmsDao;
import com.yihu.jw.sms.service.*;
import com.yihu.jw.sms.service.TXYSmsService;
import com.yihu.jw.sms.service.YkyyINSMSService;
import com.yihu.jw.sms.service.ZBSmsService;
import com.yihu.jw.sms.service.ZhongShanSMSService;
import com.yihu.jw.sms.util.ykyy.vo.ResultMsg;
import com.yihu.jw.util.common.NetworkUtil;
import com.yihu.jw.util.common.StringUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.utils.network.HttpResponse;
import com.yihu.utils.network.HttpUtils;
@ -250,6 +254,25 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        return statusObject;
    }
    @PostMapping(value = "/doctor/logOff")
    public JSONObject doctorLogOff(HttpServletRequest request){
        JSONObject jsonObject = new JSONObject();
        try {
            String userAgent = request.getHeader("userAgent");
            org.json.JSONObject json = new org.json.JSONObject(userAgent);
            userDetailsService.logOff(json.getString("uid"));
            jsonObject.put("msg","注销成功");
            jsonObject.put("status",200);
            return jsonObject;
        } catch (Exception e) {
            e.printStackTrace();
            jsonObject.put("msg","注销失败!");
            jsonObject.put("status",500);
            return jsonObject;
        }
    }
    /**
     * 登陆
     *

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/CommonEndpoint.java

@ -64,7 +64,7 @@ public class CommonEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "open/getToken")
    @ApiOperation(value = "文字转语音")
    @ApiOperation(value = "红领巾平台获取token")
    public Envelop getToken() {
        try {
            hongLingJinUtil.getToken();

+ 4 - 2
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java

@ -182,12 +182,13 @@ public class DeviceUploadService {
                        messageDO.setReceiver(patientDO.getId());
                        messageDO.setReceiverName(patientDO.getName());
                        messageDO.setOver("1");
                        String url = "";
                        ResponseEntity<String> forEntity = restTemplate.getForEntity("http://127.0.0.1:10301/common/open/wordToVoice?text={1}", String.class, typeName);
                        com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(forEntity.getBody());
                        if (jsonObject.getInteger("status") == 200) {
                            //语音生成
                            messageDO.setAudioUrl(jsonObject.getString("message"));
                            url = jsonObject.getString("message");
                            messageDO.setAudioUrl(url);
                        }
                        messageDO.setCode(type);//与体征类型对应
                        JSONArray errorIndex = healthIndexUtil.verifyHealthIndex(Integer.parseInt(type), result.getValue1(), result.getValue2(),
@ -204,6 +205,7 @@ public class DeviceUploadService {
                        message.put("relation_code", messageDO.getRelationCode());
                        message.put("content_type", 42);
                        message.put("content_notice", "");
                        message.put("audioUrl", url);
                        String content_notice = "";
                        for (int i = 0; i < errorIndex.size(); i++) {
                            com.alibaba.fastjson.JSONObject tmp = errorIndex.getJSONObject(i);

+ 19 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java

@ -13,6 +13,8 @@ import com.yihu.jw.care.job.order.DailyWaterJob;
import com.yihu.jw.care.job.order.EmeWarnOrderDayJob;
import com.yihu.jw.care.job.order.EmeWarnOrderJob;
import com.yihu.jw.care.job.pushRecord.PushRecordJob;
import com.yihu.jw.care.job.pushRecord.PushTimeIntegerPointJob;
import com.yihu.jw.care.job.pushRecord.PushWeatherForecastJob;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowDayJob;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowMonthJob;
import com.yihu.jw.care.job.sim.UpdateSimsJob;
@ -254,6 +256,23 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
            }else {
                logger.info("DEVICE_WATCH_REMAINING_POWER_JOB exist");
            }
            //时间整点报时:早上10点到下午18点进行准点播报
            if(!quartzHelper.isExistJob("PUSH_MASSAGE_TIME_INTEGER_POINT_JOB")){
               String trigger =  SystemConf.getInstance().getSystemProperties().getProperty("PUSH_MASSAGE_TIME_INTEGER_POINT_JOB");
               quartzHelper.addJob(PushTimeIntegerPointJob.class,trigger,"PUSH_MASSAGE_TIME_INTEGER_POINT_JOB",new HashMap<String,Object>());
                logger.info("PUSH_MASSAGE_TIME_INTEGER_POINT_JOB success");
            }else {
                logger.info("PUSH_MASSAGE_TIME_INTEGER_POINT_JOB success");
            }
            //天气预报:每天早上11点播报
            if (!quartzHelper.isExistJob("PUSH_MESSAGE_WEATHER_FORECAST_JOB")){
                String trigger =  SystemConf.getInstance().getSystemProperties().getProperty("PUSH_MESSAGE_WEATHER_FORECAST_JOB");
                quartzHelper.addJob(PushWeatherForecastJob.class,trigger,"PUSH_MESSAGE_WEATHER_FORECAST_JOB",new HashMap<String,Object>());
                logger.info("PUSH_MESSAGE_WEATHER_FORECAST_JOB success");
            }else {
                logger.info("PUSH_MESSAGE_WEATHER_FORECAST_JOB success");
            }
        } catch (Exception e) {
            logger.info(" job start failed");

+ 2 - 2
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/device/DeviceWatchRemainingPowerJob.java

@ -21,9 +21,9 @@ public class DeviceWatchRemainingPowerJob implements Job {
    private PatientDeviceService patientDeviceService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        System.out.println("====================系统推送设备电量低start==================");
        logger.info("DeviceWatchRemainingPowerJob start");
        try {
            System.out.println("====================系统推送设备电量低start==================");
            logger.info("DeviceWatchRemainingPowerJob start");
            patientDeviceService.deviceWatchRemainingPower();
            logger.info("DeviceWatchRemainingPowerJob end");
            System.out.println("====================系统推送设备电量低end==================");

+ 1 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/pushRecord/PushRecordJob.java

@ -83,7 +83,7 @@ public class PushRecordJob implements Job {
                for (SystemMessageDO messageDO : messageDOS) {
                    devicelostMessageUtil.patientMessageSocket(messageDO);
                    devicelostMessageUtil.patientMessageSocket(messageDO,null);
                }
                systemMessageDao.save(messageDOS);
                basePushrecordLogInfoDao.save(logInfoEntityList);

+ 0 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/pushRecord/PushWeatherForecastJob.java

@ -26,7 +26,6 @@ public class PushWeatherForecastJob implements Job {
    public void execute(JobExecutionContext context) throws JobExecutionException {
        try {
            if (deviceLostMessageUtil.messageOnOff(7)) {
                System.out.println("====================系统推送天气预报start==================");
                logger.info("PushWeatherForecastJob start");
                pushWeatherForecastService.weatherForecastS();

+ 3 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java

@ -349,6 +349,7 @@ public class PatientDeviceService {
            List<Map<String, Object>> patientList = jdbcTemplate.queryForList(deviceWatchSql);
            for (Map<String, Object> map : patientList) {
                JSONObject response = getAqgDeviceInfo2(map.get("device_sn").toString());
                logger.info(map.get("device_sn").toString()+" 设备电量:"+response.getInteger("remaining_power"));
                if (response.containsKey("remaining_power") && response.get("remaining_power") != null&&response.getInteger("remaining_power")<=20){
                    JSONObject patients = new JSONObject();
                    patients.put("patient",map.get("id"));
@ -356,10 +357,12 @@ public class PatientDeviceService {
                    patients.put("sex",map.get("sex"));
                    patients.put("photo",map.get("photo"));
                    patients.put("category_code",map.get("category_code"));
                    patients.put("deviceSn",map.get("device_sn").toString());
                    rslist.add(patients);
                }
                Thread.sleep(1000);
            }
            System.out.println("离线居民人数:"+rslist.size());
            if (rslist.size()>0) {
                deviceLostMessageUtil.watchRemainingPower(rslist);
            }

+ 4 - 3
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/PushTimeIntegerPointService.java

@ -35,20 +35,21 @@ public class PushTimeIntegerPointService {
        List<SystemMessageDO> systemMessageDOList = new ArrayList<>();
        List<Map<String, Object>> signOldPatientList = systemPushMessageUtil.signOldPatient();
        String url = deviceLostMessageUtil.audioUrl(content);
        int num = 0;
        for (Map<String, Object> map : signOldPatientList) {
            String patient = map.get("id").toString();
            if (!systemPushMessageUtil.findPatientPushOnOff(patient,1)){
                continue;
            }
            num+=1;
            SystemMessageDO messageDO = systemPushMessageUtil.systemMessageDOSave("整点报时", content,"996","0","system","整点报时通知助手",patient,map.get("name").toString(),"1",map.get("photo").toString(),url);
            /*socket 推送*/
            deviceLostMessageUtil.patientMessageSocket(messageDO);
            deviceLostMessageUtil.patientMessageSocket(messageDO,null);
            systemMessageDOList.add(messageDO);
        }
        systemMessageDao.save(systemMessageDOList);
        systemPushMessageUtil.basePushRecordLogEntitySave(content,"2",new Date(),signOldPatientList.size(),1,"签约老人",1,8);
        systemPushMessageUtil.basePushRecordLogEntitySave(content,"2",new Date(),num,1,"签约老人",1,8);
    }

+ 1 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/PushWeatherForecastService.java

@ -59,7 +59,7 @@ public class PushWeatherForecastService {
            }
            SystemMessageDO messageDO = systemPushMessageUtil.systemMessageDOSave("天气预报",content,"995","0","system","天气预报通知助手",patient,map.get("name").toString(),"1",map.get("photo").toString(),url);
            /*socket 推送*/
            deviceLostMessageUtil.patientMessageSocket(messageDO);
            deviceLostMessageUtil.patientMessageSocket(messageDO,null);
            messageDOList.add(messageDO);
        }
        systemMessageDao.save(messageDOList);

+ 13 - 6
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java

@ -204,7 +204,6 @@ public class DeviceLostMessageUtil {
                    }
                }
            }
            if (StringUtils.isNotBlank(deivceName)){
                String sContent = content;
                sContent = sContent.replace("{name}",patient.get("name").toString());
@ -228,7 +227,7 @@ public class DeviceLostMessageUtil {
                messageDOS.add(messageDO);
                //socket推送
                patientMessageSocket(messageDO);
                patientMessageSocket(messageDO,deviceSnS);
            }
        }
        if (messageDOS.size()>0){
@ -310,16 +309,24 @@ public class DeviceLostMessageUtil {
    public void patientMessageSocket(SystemMessageDO messageDOWatch){
    //只有设备需要穿deviceSn码,其他socket推送 deviceSN为null就行
    public void patientMessageSocket(SystemMessageDO messageDOWatch,String deviceSn){
        JSONObject message = new JSONObject();
        message.put("title",messageDOWatch.getTitle());
        message.put("type",messageDOWatch.getType());
        message.put("content",messageDOWatch.getContent());
        message.put("audioUrl",messageDOWatch.getAudioUrl());
        message.put("content_type",999);
        if (StringUtils.isNotBlank(deviceSn)){
            message.put("deviceSn",deviceSn);
            message.put("content_type",991);
        }else {
            message.put("content_type",999);
        }
        imUtil.sendPatientSystemMessage(messageDOWatch.getReceiver(), JSON.toJSONString(message, SerializerFeature.WriteMapNullValue));
    }
    /**
     * 手表 报警器 电量低通知
     * @param patientList
@ -367,7 +374,7 @@ public class DeviceLostMessageUtil {
                            watchName+=jsonObject.getString("name");
                        }
                        /*socket 推送*/
                        patientMessageSocket(messageDOWatch);
                        patientMessageSocket(messageDOWatch, jsonObject.getString("deviceSn"));
                    }
                    break;
                case 7:
@ -395,7 +402,7 @@ public class DeviceLostMessageUtil {
                            SOSName += jsonObject.getString("patient");
                        }
                        /*socket 推送*/
                        patientMessageSocket(messageDO);
                        patientMessageSocket(messageDO,jsonObject.getString("deviceSn"));
                    }
                    break;
            }

+ 1 - 2
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/SystemPushMessageUtil.java

@ -4,7 +4,6 @@ import com.yihu.jw.care.dao.pushLog.BasePushRecordLogDao;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.log.BasePushRecordLogEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -36,7 +35,7 @@ public class SystemPushMessageUtil {
    public Boolean findPatientPushOnOff(String patient, Integer type) {
        String sql = "select on_off from base_patient_pad_pushonoff where patient = '" + patient + "' and type ='" + type + "'";
        Integer integer = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Integer.class));
        Integer integer = jdbcTemplate.queryForObject(sql,Integer.class);
        return integer == 0 ? false : true;
    }

+ 5 - 5
svr/svr-cloud-job/src/main/resources/system.properties

@ -40,13 +40,13 @@ SYN_FACE_RECORD_JOB= 0 0/30 * * * ? *
SYN_ELECTRIC_RECORD_JOB= 0 0 8 * * ? *
#\u63A8\u9001\u8BB0\u5165\u624B\u52A8\u5B9A\u65F6 \u6BCF\u4E94\u5206\u949F\u8DD1\u4E00\u6B21
PUSHRECORD_LOG_INFO_JOB= 0 0/5 * * * ? *
#\u6BCF\u5929\u65E9\u4E0A\u4E5D\u70B9\u534A\u8DD1\u4E00\u6B21
#\u8BBE\u5907\u79BB\u7EBF\u6BCF\u5929\u65E9\u4E0A\u4E5D\u70B9\u534A\u8DD1\u4E00\u6B21
PUSH_DEVICE_OFF_LONE_JOB= 0 30 9 * * ?
#\u6BCF\u5929\u65E9\u4E0A\u5341\u4E00\u70B9 \u624B\u8868\u4F69\u6234\u63D0\u9192
DEVICE_WATCH_OFF_WEAR_JOB= 0 0 11 * * ?
#\u624B\u8868\u7535\u91CF\u4F4E  \u6BCF\u4E00\u4E2A\u5C0F\u65F6\u83B7\u53D6\u4E00\u6B21 \u7535\u91CF
DEVICE_WATCH_REMAINING_POWER_JOB= 0 0 0/1 * * ?
#\u624B\u8868\u7535\u91CF\u4F4E \u6BCF\u4E00\u4E2A\u5C0F\u65F6\u83B7\u53D6\u4E00\u6B21 \u7535\u91CF
DEVICE_WATCH_REMAINING_POWER_JOB= 0 0 8,9,10,14,15,16,17,18,19,20 * * ?
#\u65F6\u95F4\u6574\u70B9\u62A5\u65F6\uFF1A\u65E9\u4E0A10\u70B9\u5230\u4E0B\u534818\u70B9\u8FDB\u884C\u51C6\u70B9\u64AD\u62A5
PUSH_MASSAGE_TIME_INTEGER_POINT= 0 10,11,12,13,14,15,16,17,18 * * ?
PUSH_MASSAGE_TIME_INTEGER_POINT_JOB= 0 0 10,11,12,13,14,15,16,17,18 * * ?
#\u5929\u6C14\u9884\u62A5\uFF1A\u6BCF\u5929\u65E9\u4E0A11\u70B9\u64AD\u62A5
PUSH_MESSAGE_WEATHER_FORECAST= 0 0 11 * * ?
PUSH_MESSAGE_WEATHER_FORECAST_JOB= 0 0 11 * * ?