Jelajahi Sumber

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

xiaoyunquan 2 tahun lalu
induk
melakukan
4b930f79f4

+ 17 - 1
common/common-entity/sql记录

@ -1804,4 +1804,20 @@ CREATE TABLE `base_patient_monitor_data` (
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_patient` (`patient`)
) ENGINE=InnoDB AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 COMMENT='设备监测日志记录表';
) ENGINE=InnoDB AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 COMMENT='设备监测日志记录表';
-- 2022-05-18
CREATE TABLE `base_visit_sign` (
  `id` varchar(50) NOT NULL,
  `visit_id` varchar(50) DEFAULT NULL COMMENT '走访id',
  `type` int(2) DEFAULT NULL COMMENT '签到方式1.定位,2.拍照',
  `doctor` varchar(50) DEFAULT NULL COMMENT '医生',
  `doctor_name` varchar(50) DEFAULT NULL COMMENT '医生姓名',
  `lon` varchar(20) DEFAULT NULL COMMENT '经度',
  `lat` varchar(20) DEFAULT NULL COMMENT '纬度',
  `address` varchar(255) DEFAULT NULL COMMENT '地址',
  `img` varchar(2500) DEFAULT NULL COMMENT '图片地址“,”分割',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `del` int(2) DEFAULT NULL COMMENT '是否删除1为删除,0.为正常',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=257 DEFAULT CHARSET=utf8mb4 COMMENT='日常走访签到';

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/visit/BaseVisitDO.java

@ -17,7 +17,7 @@ public class BaseVisitDO extends UuidIdentityEntityWithCreateTime {
    private String patient;
    private String patientName;
    private String type;//类型 1老人日常走访 2老人日常临时走访(管理端直接新增记录没有计划)
    private String status;//状态 0计划中 1 已完成 2计划超时
    private String status;//状态 0计划中 1 已完成 2计划超时 3 已签到
    private Date visitDate;//完成走访时间
    private Date visitPlanDate;//计划走访时间
    private String doctor;

+ 97 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/visit/BaseVisitSignDO.java

@ -0,0 +1,97 @@
package com.yihu.jw.entity.care.visit;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2022/5/18.
 * 日常走访签到表
 */
@Entity
@Table(name = "base_visit_sign")
public class BaseVisitSignDO extends UuidIdentityEntityWithCreateTime {
    private String visitId; //走访id
    private Integer type;  // 签到方式1.定位,2.拍照
    private String doctor; //签到医生
    private String doctorName;
    private String lon; //经度
    private String lat; //纬度
    private String address;//签到地址
    private String img;//图片 多张逗号隔开
    private Integer del; //0无效 1有效
    public String getVisitId() {
        return visitId;
    }
    public void setVisitId(String visitId) {
        this.visitId = visitId;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public String getLon() {
        return lon;
    }
    public void setLon(String lon) {
        this.lon = lon;
    }
    public String getLat() {
        return lat;
    }
    public void setLat(String lat) {
        this.lat = lat;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getImg() {
        return img;
    }
    public void setImg(String img) {
        this.img = img;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

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

@ -7,6 +7,7 @@ import com.google.code.kaptcha.util.Config;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.util.AesEncryptUtils;
@ -27,11 +28,10 @@ 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.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.dao.BaseSmsDao;
import com.yihu.jw.sms.service.*;
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;
@ -169,7 +169,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    private HttpClientUtil httpClientUtil;
    @Autowired
    private HcyyService hcyyService;
    @Autowired
    private BaseSmsDao baseSmsDao;
    @PostConstruct
    private void init() {
@ -834,6 +835,16 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        }else {
            //发送短信获取验证码
            String captcha = wlyyRedisVerifyCodeService.getCodeNumber();
            SmsDO smsDO = new SmsDO();
            smsDO.setCaptcha(captcha);
            smsDO.setClientId(client_id);
            smsDO.setContent("您好,你的手机登录短信验证码是:"+captcha+",5分钟内有效。");
            smsDO.setMobile(username);
            smsDO.setDeadline(DateUtil.getNextMin(new Date(),5));
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            smsDO.setRequestIp(NetworkUtil.getIpAddress(request));
            smsDO.setCreateTime(new Date());
            baseSmsDao.save(smsDO);
            //
            String result =  txySmsService.sendMessage(username,captcha);
            if ("Ok".equals(result)) {

+ 11 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/visit/BaseVisitSignDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.care.dao.visit;
import com.yihu.jw.entity.care.visit.BaseVisitSignDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2022/5/18.
 */
public interface BaseVisitSignDao extends PagingAndSortingRepository<BaseVisitSignDO,String>, JpaSpecificationExecutor<BaseVisitSignDO> {
}

+ 0 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java

@ -497,9 +497,5 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
            e.printStackTrace();
            return failedObjEnvelopException2(e);
        }
    }
}

+ 41 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/visit/VisitEndpoint.java

@ -1,9 +1,12 @@
package com.yihu.jw.care.endpoint.visit;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.aop.ObserverRequired;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.visit.BaseVisitService;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.entity.care.visit.BaseVisitDO;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -13,7 +16,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -32,6 +34,9 @@ public class VisitEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseVisitService baseVisitService;
    @Autowired
    private PermissionService permissionService;
    @ApiOperation("获取日常走访列表")
    @RequestMapping(value = "/getListByDoctor", method = RequestMethod.GET)
    public ListEnvelop getListByDoctor(@ApiParam(name = "startTime", value = "开始时间", defaultValue = "2021-11-11 00:00:00")
@ -137,7 +142,7 @@ public class VisitEndpoint extends EnvelopRestEndpoint {
        }
    }
    @ApiOperation("直接新增走访--管理员端")
    @ApiOperation("直接新增走访--管理员端--管理员端取消日常走访")
    @RequestMapping(value = "/adminAddVisit",method = RequestMethod.POST)
    public Envelop adminAddVisit(@ApiParam(name = "doctor", value = "医生id")
                                 @RequestParam(value = "doctor", required = true) String doctor,
@ -154,10 +159,43 @@ public class VisitEndpoint extends EnvelopRestEndpoint {
                                 @ApiParam(name = "lifeConsult", value = "生活咨询")
                                 @RequestParam(value = "lifeConsult", required = false) String lifeConsult) {
        try {
            baseVisitService.adminAddVisit(doctor,patient,visitContent,visitImg,deviceMaintenance,health,lifeConsult);
//            baseVisitService.adminAddVisit(doctor,patient,visitContent,visitImg,deviceMaintenance,health,lifeConsult);
            return Envelop.getSuccess("操作成功");
        } catch (Exception e) {
            return failedException2(e);
        }
    }
    @PostMapping("signIn")
    @ApiOperation(value = "日常走访签到")
    @ObserverRequired
    public ObjEnvelop signIn(
            @ApiParam(value = "走访id", name = "visitId")
            @RequestParam(value = "visitId", required = true) String visitId,
            @ApiParam(value = "签到方式:1.定位,2.拍照", name = "signWay")
            @RequestParam(value = "signWay", required = true) Integer signWay,
            @ApiParam(value = "签到纬度", name = "signLat")
            @RequestParam(value = "signLat", required = false) String signLat,
            @ApiParam(value = "签到经度", name = "signLon")
            @RequestParam(value = "signLon", required = false) String signLon,
            @ApiParam(value = "签到地址", name = "address")
            @RequestParam(value = "address", required = false) String address,
            @ApiParam(value = "签到照片", name = "signImg")
            @RequestParam(value = "signImg", required = false) String signImg) {
        try {
            String doctorId = permissionService.getUID();
            JSONObject param = new JSONObject();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(1,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject result = baseVisitService.signIn(visitId, signWay, signLat,signLon, address,signImg,doctorId);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return ObjEnvelop.getError(result.getString("resultMsg"));
            }
            return ObjEnvelop.getSuccess("操作成功",result.getString(ResponseContant.resultMsg));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
}

+ 50 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/visit/BaseVisitService.java

@ -1,5 +1,6 @@
package com.yihu.jw.care.service.visit;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.visit.BaseVisitDao;
@ -7,7 +8,9 @@ import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.visit.BaseVisitDO;
import com.yihu.jw.entity.care.visit.BaseVisitSignDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang.StringUtils;
@ -103,6 +106,9 @@ public class BaseVisitService {
        if("1".equals(visitDO.getStatus())){
            return "走访已完成不能删除";
        }
        if ("3".equals(visitDO.getStatus())){
            return "走访已签到不能删除";
        }
        baseVisitDao.delete(id);
        return null;
    }
@ -256,4 +262,48 @@ public class BaseVisitService {
        }
    }
    /**
     * 日常走访签到
     * @return
     */
    public JSONObject signIn(String visitId,Integer signWay,String signLat,String signLon,String address,String signImg,String doctorId){
        BaseVisitDO visitDO = baseVisitDao.findOne(visitId);
        BaseDoctorDO doctorDO = doctorDao.findById(doctorId);
        JSONObject result = new JSONObject();
        if (null==doctorDO){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"当前登录用户不存在无法签到");
            return result;
        }
        if (null==visitDO){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"未找到走访计划");
            return result;
        }
        if ("3".equals(visitDO.getStatus())){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"已完成签到,无法重复签到");
            return result;
        }
        BaseVisitSignDO signDO = new BaseVisitSignDO();
        signDO.setVisitId(visitId);
        signDO.setDoctor(doctorId);
        signDO.setDoctorName(doctorDO.getName());
        signDO.setDel(1);
        signDO.setType(signWay);
        if (1==signWay){//拍照
            signDO.setImg(signImg);
        } else if (2==signWay) {//定位
            signDO.setAddress(address);
            signDO.setLat(signLat);
            signDO.setLon(signLon);
        }else {
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"签到方式错误");
        }
        result.put(ResponseContant.resultFlag,ResponseContant.success);
        result.put(ResponseContant.resultMsg,"success");
        return result;
    }
}