Selaa lähdekoodia

1.7.2社工/助老员

吴世龙 3 vuotta sitten
vanhempi
commit
378d11b20a
20 muutettua tiedostoa jossa 1141 lisäystä ja 62 poistoa
  1. 36 1
      common/common-entity/sql记录
  2. 101 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/handover/BaseDayHandover.java
  3. 9 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/BaseEmergencyWarnLogDO.java
  4. 170 0
      common/common-entity/src/main/java/com/yihu/jw/entity/patient/BaseDeviceRepairEntity.java
  5. 9 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseDeviceRepairDao.java
  6. 20 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/handover/BaseDayHandoverDao.java
  7. 2 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/security/BaseEmergencyWarnLogDao.java
  8. 149 21
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/DoctorDeviceController.java
  9. 100 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorDayHandoverController.java
  10. 24 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/lifeCare/DoctorLifeCareEndpoint.java
  11. 23 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/lifeCare/PatientLifeCareEndpoint.java
  12. 97 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/orderLogProcess/OrderLogProcessController.java
  13. 89 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  14. 159 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/DeviceManageService.java
  15. 62 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/DayHandoverService.java
  16. 17 22
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java
  17. 11 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/org/BaseOrgService.java
  18. 32 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  19. 18 16
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/data/SaveDataPushJob.java
  20. 13 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/InitializeDataJobService.java

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

@ -1696,4 +1696,39 @@ ALTER table base_visit add COLUMN `health` VARCHAR(500) DEFAULT NULL COMMENT '
ALTER table base_visit add COLUMN `life_consult` VARCHAR(500) DEFAULT NULL COMMENT '生活咨询';
-- 2022-03-14 ysj
ALTER TABLE base_login_log ADD token varchar(50) COMMENT '登录token 做权限验证用' ;
ALTER TABLE base_login_log ADD token varchar(50) COMMENT '登录token 做权限验证用' ;
-- 2022-03-21 wsl
CREATE TABLE `base_device_repair` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `device_sn` varchar(50) DEFAULT NULL COMMENT '设备sn码',
  `bind_user` varchar(50) DEFAULT NULL COMMENT '绑定人code',
  `bind_user_name` varchar(20) DEFAULT NULL COMMENT '绑定人',
  `status` int(2) DEFAULT NULL COMMENT '报修状态:0 报修中、1 已完成',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `repair_peoper` varchar(50) DEFAULT NULL COMMENT '报修人code',
  `repair_peoper_name` varchar(10) DEFAULT NULL COMMENT '报修人',
  `show` varchar(200) DEFAULT NULL COMMENT '说明',
  `img` varchar(2500) DEFAULT NULL COMMENT '图片地址“,”分割',
  `deal_peoper` varchar(50) DEFAULT NULL COMMENT '处理人',
  `deal_peoper_name` varchar(10) DEFAULT NULL COMMENT '处理人',
  `deal_time` datetime DEFAULT NULL COMMENT '处理时间',
  `feedback` varchar(50) DEFAULT NULL COMMENT '反馈',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备报修表';
-- 2022-03-22 wsl
CREATE TABLE `base_day_handover` (
  `id` varchar(50) NOT NULL COMMENT '表id',
  `create_user` varchar(50) DEFAULT NULL COMMENT '提交人',
  `create_user_name` varchar(10) DEFAULT NULL COMMENT '提交人',
  `handover_user` varchar(50) DEFAULT NULL COMMENT '交接人',
  `handover_user_name` varchar(10) DEFAULT NULL COMMENT '交接人',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `device_overview` varchar(200) DEFAULT NULL COMMENT '设备概况',
  `old_overview` varchar(200) DEFAULT NULL COMMENT '老人概况',
  `note` varchar(200) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日常交接';

+ 101 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/handover/BaseDayHandover.java

@ -0,0 +1,101 @@
package com.yihu.jw.entity.care.handover;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by wsl on 2022/03/22.
 */
@Entity
@Table(name = "base_day_handover")
public class BaseDayHandover extends UuidIdentityEntityWithCreateTime {
    private String createUser; //提交人
    private String createUserName; //
    private String handoverUser; //交接人
    private String handoverUserName; //
    private Date createTime; //创建时间
    private String deviceOverview; //设备概况
    private String oldOverview; //老人概况
    private String note; //备注
    @Column(name = "create_user")
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    @Column(name = "create_user_name")
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    @Column(name = "handover_user")
    public String getHandoverUser() {
        return handoverUser;
    }
    public void setHandoverUser(String handoverUser) {
        this.handoverUser = handoverUser;
    }
    @Column(name = "handover_user_name")
    public String getHandoverUserName() {
        return handoverUserName;
    }
    public void setHandoverUserName(String handoverUserName) {
        this.handoverUserName = handoverUserName;
    }
    @Override
    public Date getCreateTime() {
        return createTime;
    }
    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "device_overview")
    public String getDeviceOverview() {
        return deviceOverview;
    }
    public void setDeviceOverview(String deviceOverview) {
        this.deviceOverview = deviceOverview;
    }
    @Column(name = "old_overview")
    public String getOldOverview() {
        return oldOverview;
    }
    public void setOldOverview(String oldOverview) {
        this.oldOverview = oldOverview;
    }
    @Column(name = "note")
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
}

+ 9 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/BaseEmergencyWarnLogDO.java

@ -7,7 +7,6 @@ import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.xml.crypto.Data;
import java.util.Date;
/**
@ -24,6 +23,7 @@ public class BaseEmergencyWarnLogDO extends IdEntity {
    public Integer userType; //用户类型 1居民 2社工
    public String content;
    public Date createTime;
    public Integer type; //保存类型(1已知悉,2前往,3 110,4 120,5小结)
    public String timeInfo;
@ -84,4 +84,12 @@ public class BaseEmergencyWarnLogDO extends IdEntity {
    public void setTimeInfo(String timeInfo) {
        this.timeInfo = timeInfo;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
}

+ 170 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/patient/BaseDeviceRepairEntity.java

@ -0,0 +1,170 @@
package com.yihu.jw.entity.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_device_repair")
@SequenceGenerator(name = "id_generated", sequenceName = "seq_base_device_repair")
public class BaseDeviceRepairEntity extends IdEntity {
    private String orderId; //
    private String deviceSn; //设备sn码
    private String deviceName;//设备名称
    private String bindUser; //绑定人code
    private String bindUserName; //绑定人
    private Integer status; //报修状态:0 报修中、1 已完成
    private Date createTime; //创建时间
    private String repairPeoper; //报修人code
    private String repairPeoperName; //
    private String showContent; //说明
    private String img; //图片地址“,”分割
    private String dealPeoper; //处理人
    private String dealPeoperName; //
    private Date dealTime; //处理时间
    private String feedback; //反馈
    @Column(name = "order_id")
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    @Column(name = "device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name = "bind_user")
    public String getBindUser() {
        return bindUser;
    }
    public void setBindUser(String bindUser) {
        this.bindUser = bindUser;
    }
    @Column(name = "bind_user_name")
    public String getBindUserName() {
        return bindUserName;
    }
    public void setBindUserName(String bindUserName) {
        this.bindUserName = bindUserName;
    }
    @Column(name = "status")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "repair_peoper")
    public String getRepairPeoper() {
        return repairPeoper;
    }
    public void setRepairPeoper(String repairPeoper) {
        this.repairPeoper = repairPeoper;
    }
    @Column(name = "repair_peoper_name")
    public String getRepairPeoperName() {
        return repairPeoperName;
    }
    public void setRepairPeoperName(String repairPeoperName) {
        this.repairPeoperName = repairPeoperName;
    }
    @Column(name = "show_content")
    public String getShowContent() {
        return showContent;
    }
    public void setShowContent(String showContent) {
        this.showContent = showContent;
    }
    @Column(name = "img")
    public String getImg() {
        return img;
    }
    public void setImg(String img) {
        this.img = img;
    }
    @Column(name = "deal_peoper")
    public String getDealPeoper() {
        return dealPeoper;
    }
    public void setDealPeoper(String dealPeoper) {
        this.dealPeoper = dealPeoper;
    }
    @Column(name = "deal_peoper_name")
    public String getDealPeoperName() {
        return dealPeoperName;
    }
    public void setDealPeoperName(String dealPeoperName) {
        this.dealPeoperName = dealPeoperName;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "deal_time")
    public Date getDealTime() {
        return dealTime;
    }
    public void setDealTime(Date dealTime) {
        this.dealTime = dealTime;
    }
    @Column(name = "feedback")
    public String getFeedback() {
        return feedback;
    }
    public void setFeedback(String feedback) {
        this.feedback = feedback;
    }
    @Column(name = "device_name")
    public String getDeviceName() {
        return deviceName;
    }
    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }
}

+ 9 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseDeviceRepairDao.java

@ -0,0 +1,9 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.patient.BaseDeviceRepairEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseDeviceRepairDao extends PagingAndSortingRepository<BaseDeviceRepairEntity,Long>,
        JpaSpecificationExecutor<BaseDeviceRepairEntity> {
}

+ 20 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/handover/BaseDayHandoverDao.java

@ -0,0 +1,20 @@
package com.yihu.jw.care.dao.handover;
import com.yihu.jw.entity.care.handover.BaseDayHandover;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by wsl on 2022/03/22
 */
public interface BaseDayHandoverDao extends PagingAndSortingRepository<BaseDayHandover, String>, JpaSpecificationExecutor<BaseDayHandover> {
    @Query("select h from BaseDayHandover h where h.createUser = ?1 order by h.createTime DESC")
    List<BaseDayHandover> findByCreateUser(String code);
    // Map<String,Object> findById(String id);
}

+ 2 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/security/BaseEmergencyWarnLogDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.care.dao.security;
import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
@ -12,5 +13,6 @@ import java.util.List;
public interface BaseEmergencyWarnLogDao extends PagingAndSortingRepository<BaseEmergencyWarnLogDO, Long>,
        JpaSpecificationExecutor<BaseEmergencyWarnLogDO> {
    @Query("select w from BaseEmergencyWarnLogDO w where w.orderId = ?1 and w.type is null ")
    List<BaseEmergencyWarnLogDO> findByOrderIdOrderByCreateTimeDesc(String oderId);
}

+ 149 - 21
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/DoctorDeviceController.java

@ -1,20 +1,18 @@
package com.yihu.jw.care.endpoint.device;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.aop.ObserverRequired;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.endpoint.BaseController;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.contacts.ContactsService;
import com.yihu.jw.care.service.device.DeviceDetailService;
import com.yihu.jw.care.service.device.DeviceManageService;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.util.CommonUtil;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.care.useragent.UserAgent;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.entity.patient.BaseDeviceRepairEntity;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -23,10 +21,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -44,20 +43,13 @@ public class DoctorDeviceController extends BaseController {
	@Autowired
	private PatientDeviceService patientDeviceService;
	@Autowired
	private DeviceDetailService deviceDetailService;
	DeviceManageService deviceManageService;
	@Autowired
	private BasePatientDao patientDao;
	@Autowired
	private BaseDoctorDao doctorDao;
	@Autowired
	private CommonUtil commonUtil;
	@Autowired
	private PatientDeviceDao patientDeviceDao;
	@Autowired
	private JmsTemplate jmsTemplate;
	PermissionService permissionService;
	@Autowired
	private ContactsService contactsService;
	@Autowired
	UserAgent userAgent;
	private ObjectMapper  objectMapper=new ObjectMapper();
@ -153,5 +145,141 @@ public class DoctorDeviceController extends BaseController {
		}
	}
	@RequestMapping(value = "/getDeviceList", method = RequestMethod.POST)
	@ApiOperation(value = "获取居民设备绑定列表")
	public String getDeviceList(@ApiParam(name = "doctor", value = "医生code")
								@RequestParam(value = "doctor", required = false) String doctor,
								@ApiParam(name = "patientName", value = "居民名字或者idCard")
								@RequestParam(value = "patientName", required = false) String patientName,
								@ApiParam(name = "categoryCode", value = "设备类型标识 1血糖仪,2.血压计,3药盒,4智能手表,7 = 居家报警器,12 监控器 13 睡眠带 14气感报警器 15烟感报警器 16拐杖 17随身wifi")
								@RequestParam(value = "categoryCode", required = false) String categoryCode,
								@ApiParam(name = "page", value = "分页起始id", defaultValue = "1")
								@RequestParam(value = "page", required = true) int page,
								@ApiParam(name = "pagesize", value = "每页条数", defaultValue = "10")
								@RequestParam(value = "pagesize", required = true) int pagesize) {
		List<Map<String, Object>> deviceList = null;
		try {
			JSONObject param = new JSONObject();
			param.put("doctorId",doctor);
			if(permissionService.noPermission(2,param)){
				return write(-1,"该操作没有权限");
			}
			return write(200,"成功","data",deviceManageService.getDeviceList(doctor, patientName, categoryCode, page, pagesize));
		} catch (Exception e) {
			error(e);
			return  errorResult(e);
		}
	}
	@RequestMapping(value = "/getDeviceInfo",method = RequestMethod.POST)
	@ApiOperation(value = "设备详细信息")
	public String getDeviceInfo(@ApiParam(name = "patient",value = "居民code")
								@RequestParam(value = "patient")String patient,
								@ApiParam(name = "deviceSn",value = "设备SN码")
								@RequestParam(value = "deviceSn")String deviceSn){
		try {
			JSONObject param = new JSONObject();
			param.put("doctorId",permissionService.getUID());
			if(permissionService.noPermission(2,param)){
				return write(-1,"该操作没有权限");
			}
			org.json.JSONObject result = deviceManageService.getDeviceInfo(patient, deviceSn);
			if (result.getInt(ResponseContant.resultFlag)==ResponseContant.success){
				return write(200,"获取成功","data", JSON.parseObject(result.getString(ResponseContant.resultMsg)));
			}else {
				return error(-1,result.getString(ResponseContant.resultMsg));
			}
		} catch (Exception e) {
			error(e);
			return errorResult(e);
		}
	}
	@RequestMapping(value = "/getMonitoring",method = RequestMethod.POST)
    @ApiOperation(value = "监护信息")
	public String getMonitoring(@ApiParam(name = "patient", value = "居民code")
								@RequestParam(value = "patient") String patient,
								@ApiParam(name = "topicItem", value = "专题code,关联security_topic_dict字典", required = false)
								@RequestParam(value = "topicItem",required = false,defaultValue = "preventLost") String topicItem){
		try {
			JSONObject param = new JSONObject();
			param.put("doctorId",permissionService.getUID());
			if(permissionService.noPermission(2,param)){
				return write(-1,"该操作没有权限");
			}
			return write(200,"成功","data",deviceManageService.getMonitoring(patient,topicItem));
		} catch (Exception e) {
			error(e);
			return errorResult(e);
		}
	}
    @RequestMapping(value = "/getRepairList",method = RequestMethod.POST)
    @ApiOperation(value = "报修列表")
    public String getRepairList(@ApiParam(name = "doctor",value = "医生code")
                                @RequestParam(value = "doctor")String doctor,
								@ApiParam(name = "categoryCode",value = "设备类型标识")
								@RequestParam(name = "categoryCode",required = false)String categoryCode,
                                @ApiParam(name = "patientName",value = "居民code 或 身份证")
                                @RequestParam(value = "patientName",required = false)String patientName,
                                @ApiParam(name = "page")
                                @RequestParam(value = "page")Integer page,
                                @ApiParam(name = "pageSize")
                                @RequestParam(value = "pageSize")Integer pageSize
                                ){
        try {
            JSONObject param = new JSONObject();
            param.put("doctorId",doctor);
            if(permissionService.noPermission(2,param)){
                return write(-1,"该操作没有权限");
            }
            return write(200,"成功","data",deviceManageService.getRepairList(doctor,categoryCode,patientName,page,pageSize));
        } catch (Exception e) {
            error(e);
			return errorResult(e);
        }
    }
    @RequestMapping(value = "/getRepairInfo",method = RequestMethod.POST)
    @ApiOperation(value = "报修详细信息")
    public String getRepairInfo(@ApiParam(name = "orderId", value = "报修id")
                                @RequestParam(value = "orderId") String orderId) {
        try {
			JSONObject param = new JSONObject();
			param.put("doctorId",permissionService.getUID());
			if(permissionService.noPermission(2,param)){
				return write(-1,"该操作没有权限");
			}
            return write(200,"成功","data",deviceManageService.getRepairInfo(orderId));
        } catch (Exception e) {
            error(e);
			return errorResult(e);
        }
    }
    @RequestMapping(value = "/deviceRepair",method = RequestMethod.POST)
    @ApiOperation(value="报修")
    public String deviceRepair(@ApiParam(name = "repairJson",value = "报修对象")
                               @RequestParam(value = "repairJson")String repairJson){
        try {
			String doctor = permissionService.getUID();
			JSONObject param = new JSONObject();
			param.put("doctorId",userAgent.getUID());
			if(permissionService.noPermission(2,param)){
				return write(-1,"该操作没有权限");
			}
			BaseDeviceRepairEntity baseDeviceRepairEntity = JSON.parseObject(repairJson, BaseDeviceRepairEntity.class);
            return write(200,"成功","data",deviceManageService.deviceRepair(baseDeviceRepairEntity,doctor));
        } catch (Exception e) {
            error(e);
			return errorResult(e);
        }
    }
	
}

+ 100 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorDayHandoverController.java

@ -0,0 +1,100 @@
package com.yihu.jw.care.endpoint.doctor;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.endpoint.BaseController;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.doctor.DayHandoverService;
import com.yihu.jw.care.useragent.UserAgent;
import com.yihu.jw.entity.care.handover.BaseDayHandover;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by Bing on 2021/7/16.
 */
@RestController
@RequestMapping(value = "doctor/handover")
@Api(tags = "社工端-日常交接", description = "日常交接")
public class DoctorDayHandoverController extends BaseController {
    @Autowired
    DayHandoverService dayHandoverService;
    @Autowired
    UserAgent userAgent;
    @Autowired
    PermissionService permissionService;
    @PostMapping("/saveHandover")
    @ApiOperation(value = "保存日常交接")
    public String saveHandover(@ApiParam(name = "dayHandoverJson", value = "交接对象")
                               @RequestParam(value = "dayHandoverJson") String dayHandoverJson) {
        try {
            JSONObject param = new JSONObject();
            param.put("doctorId", userAgent.getUID());
            if (permissionService.noPermission(1, param)) {
                return write(-1, "该操作没有权限");
            }
            if (dayHandoverService.doctorIf(param.get("doctorId").toString())) {
                return write(-1, "该操作仅支持社工");
            }
            BaseDayHandover baseDayHandover = JSON.parseObject(dayHandoverJson, BaseDayHandover.class);
            if (null == baseDayHandover) {
                return write(-1, "参数错误!");
            }
            return write(200, "成功", "data", dayHandoverService.saveDayHandover(baseDayHandover));
        } catch (Exception e) {
            error(e);
            return errorResult(e);
        }
    }
    @PostMapping("/getDayHandoverList")
    @ApiOperation(value = "获取交接列表")
    public String getDayHandoverList(@ApiParam(name = "doctor")
                                     @RequestParam(value = "doctor") String doctor) {
        try {
            JSONObject param = new JSONObject();
            param.put("doctorId", doctor);
            if (permissionService.noPermission(1, param)) {
                return write(-1, "该操作没有权限");
            }
            if (dayHandoverService.doctorIf(doctor)) {
                return write(-1, "该操作仅支持社工");
            }
            return write(200, "成功", "data", dayHandoverService.getDayHandoverList(doctor));
        } catch (Exception e) {
            error(e);
            return errorResult(e);
        }
    }
    @PostMapping("/getTeamMember")
    @ApiOperation(value = "获取团队成员")
    public String getTeamMember(@ApiParam(name = "doctor")
                                @RequestParam(value = "doctor") String doctor) {
        try {
            JSONObject param = new JSONObject();
            param.put("doctorId", doctor);
            if (permissionService.noPermission(1, param)) {
                return write(-1, "该操作没有权限");
            }
            return write(200, "成功", "data", dayHandoverService.getTeamMember(doctor));
        } catch (Exception e) {
            error(e);
            return errorResult(e);
        }
    }
}

+ 24 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/lifeCare/DoctorLifeCareEndpoint.java

@ -2,7 +2,9 @@ package com.yihu.jw.care.endpoint.lifeCare;
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.lifeCare.LifeCareOrderService;
import com.yihu.jw.care.service.org.BaseOrgService;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.Envelop;
@ -28,6 +30,10 @@ public class DoctorLifeCareEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private LifeCareOrderService lifeCareOrderService;
    @Autowired
    private BaseOrgService baseOrgService;
    @Autowired
    private PermissionService permissionService;
    @GetMapping(value = "queryBriefList")
    @ApiOperation(value = "调度员查询工单列表")
@ -188,4 +194,22 @@ public class DoctorLifeCareEndpoint extends EnvelopRestEndpoint {
            return failedException2(e);
        }
    }
    @PostMapping("getLifeOrg")
    @ApiOperation(value = "医生端-获取生活服务照例机构")
    public Envelop getLifeOrg(){
        try {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("doctorId",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return ObjEnvelop.getError("该操作没有权限",-1);
            }
            return ObjEnvelop.getSuccess("获取成功",baseOrgService.findLifeOrg(),200);
        } catch (Exception e) {
           return failedObjEnvelopException2(e);
        }
    }
}

+ 23 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/lifeCare/PatientLifeCareEndpoint.java

@ -2,7 +2,9 @@ package com.yihu.jw.care.endpoint.lifeCare;
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.lifeCare.LifeCareOrderService;
import com.yihu.jw.care.service.org.BaseOrgService;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.Envelop;
@ -28,6 +30,10 @@ public class PatientLifeCareEndpoint  extends EnvelopRestEndpoint {
    @Autowired
    private LifeCareOrderService lifeCareOrderService;
    @Autowired
    private BaseOrgService baseOrgService;
    @Autowired
    private PermissionService permissionService;
    @PostMapping(value = "create")
    @ApiOperation(value = "申请生活照料")
@ -153,4 +159,21 @@ public class PatientLifeCareEndpoint  extends EnvelopRestEndpoint {
            return failedObjEnvelopException2(e);
        }
    }
    @PostMapping("getLifeOrg")
    @ApiOperation(value = "医生端-获取生活服务照例机构")
    public Envelop getLifeOrg(){
        try {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("patient",permissionService.getUID());
            if (permissionService.noPermission(1, jsonObject)) {
                return ObjEnvelop.getError("该操作没有权限",-1);
            }
            return ObjEnvelop.getSuccess("获取成功",baseOrgService.findLifeOrg(),200);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
}

+ 97 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/orderLogProcess/OrderLogProcessController.java

@ -0,0 +1,97 @@
package com.yihu.jw.care.endpoint.orderLogProcess;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.endpoint.BaseController;
import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.useragent.UserAgent;
import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Author: wsl
 * @Date: 2022/03/23
 */
@RestController
@RequestMapping("orderLogProcess/")
@Api(tags = "流程日志保存")
public class OrderLogProcessController extends BaseController {
    @Autowired
    EmergencyAssistanceService easervice;
    @Autowired
    PermissionService permissionService;
    @Autowired
    UserAgent userAgent;
    @RequestMapping(value = "phoneLogSave", method = RequestMethod.POST)
    @ApiOperation(value = "110/120拨打日志保存")
    public String phoneLogSave(@ApiParam(name = "logJson")
                               @RequestParam(value = "logJson") String logJson,
                               @ApiParam(name = "type")
                               @RequestParam(value = "type") Integer type) {
        try {
             JSONObject param = new JSONObject();
            param.put("doctorId", permissionService.getUID());
            if (permissionService.noPermission(1, param)) {
                return write(-1, "该操作没有权限");
            }
            if (StringUtils.isNotBlank(logJson)) {
                BaseEmergencyWarnLogDO baseEmergencyWarnLogDO = JSON.parseObject(logJson, BaseEmergencyWarnLogDO.class);
                int i = easervice.phoneLogSave(baseEmergencyWarnLogDO, type);
                switch (i) {
                    case 1:
                        return write(200, "成功");
                    case -1:
                        return error(-1, "类型错误");
                    default:
                        return write(400, "参数错误");
                }
            }else {
                return error(400,"参数错误");
            }
        } catch (Exception e) {
            error(e);
            return errorResult(e);
        }
    }
    @RequestMapping(value = "processLog", method = RequestMethod.POST)
    @ApiOperation(value = "紧急救助工单流程")
    public String processLog(@ApiParam(name = "orderid")
                             @RequestParam(value = "orderid") String orderid) {
        try {
            JSONObject param = new JSONObject();
            param.put("doctorId", permissionService.getUID());
            if (permissionService.noPermission(1, param)) {
                return write(-1, "该操作没有权限");
            }
            JSONObject emergencyAssistanceProcess = easervice.getEmergencyAssistanceProcess(orderid);
            if (null == emergencyAssistanceProcess) {
                return error(400, "工单不存在");
            }
            return write(200, "成功", "data", emergencyAssistanceProcess);
        } catch (Exception e) {
            error(e);
            return errorResult(e);
        }
    }
}

+ 89 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -1075,6 +1075,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            BaseDoctorDO doctorDO = doctorDao.findById(doctor);
            if (null!=doctorDO){
                BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
                BaseEmergencyWarnLogDO logTypeDO = new BaseEmergencyWarnLogDO();
                logDO.setUserCode(doctor);
                logDO.setUserName(doctorDO.getName());
                logDO.setOrderId(orderId);
@ -1082,6 +1083,15 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
                logDO.setCreateTime(new Date());
                logDO.setContent("前往定位");
                logDao.save(logDO);
                logTypeDO.setUserCode(doctor);
                logTypeDO.setUserName(doctorDO.getName());
                logTypeDO.setOrderId(orderId);
                logTypeDO.setUserType(2);
                logTypeDO.setCreateTime(new Date());
                logTypeDO.setContent("前往定位");
                logTypeDO.setType(2);
                logDao.save(logTypeDO);
            }
        }
@ -1391,4 +1401,83 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        return result;
    }
    public JSONObject getEmergencyAssistanceProcess(String orderId){
        JSONObject jsonObject = new JSONObject();
        String eaSql = "SELECT `status`,create_time AS createTime,complete_time AS completeTime " +
                "from base_emergency_assistance_order WHERE id = '"+orderId+"'";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(eaSql);
        if (maps.size()==0) {
            return null;
        }
        for (Map<String, Object> map : maps) {
            jsonObject.put("status",map.get("status"));
            jsonObject.put("createTime",map.get("createTime"));
        }
        String sql = "select * from base_emergency_warn_log where user_type = 2 and order_id = '"+orderId+"' and type IS NOT NULL ";
        List<BaseEmergencyWarnLogDO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BaseEmergencyWarnLogDO.class));
        for (BaseEmergencyWarnLogDO baseEmergencyWarnLogDO : query) {
            jsonObject.put("type1_status",0);
            jsonObject.put("type2_status",0);
            jsonObject.put("type3_status",0);
            jsonObject.put("type4_status",0);
            jsonObject.put("type5_status",0);
            switch (baseEmergencyWarnLogDO.getType()){
                case 1:
                    jsonObject.put("type1_status",1);
                    jsonObject.put("type1_name",baseEmergencyWarnLogDO.getUserName());
                    jsonObject.put("type1_content",baseEmergencyWarnLogDO.getContent());
                    jsonObject.put("type1_time",baseEmergencyWarnLogDO.getCreateTime());
                    break;
                case 2:
                    jsonObject.put("type2_status",1);
                    jsonObject.put("type2_name",baseEmergencyWarnLogDO.getUserName());
                    jsonObject.put("type2_content",baseEmergencyWarnLogDO.getContent());
                    jsonObject.put("type2_time",baseEmergencyWarnLogDO.getCreateTime());
                    break;
                case 3:
                    jsonObject.put("type3_status",1);
                    jsonObject.put("type3_name",baseEmergencyWarnLogDO.getUserName());
                    jsonObject.put("type3_content",baseEmergencyWarnLogDO.getContent());
                    jsonObject.put("type3_time",baseEmergencyWarnLogDO.getCreateTime());
                    break;
                case 4:
                    jsonObject.put("type4_status",1);
                    jsonObject.put("type4_name",baseEmergencyWarnLogDO.getUserName());
                    jsonObject.put("type4_content",baseEmergencyWarnLogDO.getContent());
                    jsonObject.put("type4_time",baseEmergencyWarnLogDO.getCreateTime());
                    break;
                case 5:
                    jsonObject.put("type5_status",1);
                    jsonObject.put("type5_name",baseEmergencyWarnLogDO.getUserName());
                    jsonObject.put("type5_content",baseEmergencyWarnLogDO.getContent());
                    jsonObject.put("type5_time",baseEmergencyWarnLogDO.getCreateTime());
                    break;
                default:
                    break;
            }
        }
        return jsonObject;
    }
    public int phoneLogSave(BaseEmergencyWarnLogDO baseEmergencyWarnLogDO,Integer type){
        switch (type) {
            case 1:
                baseEmergencyWarnLogDO.setContent("呼叫110");
                break;
            case 2:
                baseEmergencyWarnLogDO.setContent("呼叫120");
                break;
            default:
                return -1;
        }
        baseEmergencyWarnLogDO.setUserType(2);
        baseEmergencyWarnLogDO.setType(4);
        baseEmergencyWarnLogDO.setCreateTime(new Date());
        logDao.save(baseEmergencyWarnLogDO);
        return 1;
    }
}

+ 159 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/DeviceManageService.java

@ -0,0 +1,159 @@
package com.yihu.jw.care.service.device;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.device.BaseDeviceRepairDao;
import com.yihu.jw.care.dao.sign.BasePatientHelperDao;
import com.yihu.jw.care.service.security.SecurityMonitoringOrderService;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.patient.BaseDeviceRepairEntity;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@Service
public class DeviceManageService extends BaseJpaService<BaseDeviceRepairEntity,BaseDeviceRepairDao> {
    @Autowired
    JdbcTemplate jdbcTemplate;
    @Autowired
    PatientDeviceService patientDeviceService;
    @Autowired
    SecurityMonitoringOrderService securityMonitoringOrderService;
    @Autowired
    BaseDeviceRepairDao baseDeviceRepairDao;
    @Autowired
    private BasePatientHelperDao patientHelperDao;
    @Autowired
    BaseDoctorDao baseDoctorDao;
    /*获取设备清单 数据范围为我关联的居民绑定的设备清单*/
    public List<Map<String, Object>> getDeviceList(String doctor, String patientName, String categoryCode, int page, int pageSize) {
        String sql = "select Distinct p.id,p.`name`,dd.photo,pd.device_id deviceId,pd.category_code categoryCode,pd.device_name deviceName, " +
                " pd.device_sn deviceSn,pd.czrq,pd.doctor,pd.doctor_name doctorName,pd.agent,pd.agent_name agentName " +
                " from wlyy_patient_device pd,wlyy_devices wd,base_patient p,dm_device dd where p.id = pd.`user`  and pd.del = 0 " +
                " and pd.device_sn = wd.device_code and pd.category_code = dd.category_code and dd.model = wd.device_model and p.del=1 ";
        if (StringUtils.isNotBlank(patientName)) {
            sql += " AND (p.`name` LIKE '%" + patientName + "%' or  p.idcard LIKE '%" + patientName + "%') ";
        }
        if (StringUtils.isNotBlank(categoryCode)) {
            sql += " and pd.category_code ='" + categoryCode + "'";
        }
        if (StringUtils.isNotBlank(doctor)) {//
            BaseDoctorDO doctorByid = baseDoctorDao.findById(doctor);
            if (doctorByid.getLevel() == 2) {
                sql += " and EXISTS (SELECT ph.patient from base_patient_helper ph WHERE pd.user = ph.patient AND ph.doctor = '"+doctor+"' and ph.del = '1')";
            } else {
                sql += " and EXISTS (SELECT sr.patient from base_service_package_sign_record sr,base_service_package_record r,base_team_member m " +
                        " WHERE sr.patient = p.id and sr.status=1 and m.team_code = r.team_code and sr.id=r.sign_id " +
                        " and m.doctor_code = '" + doctor + "' and m.del = '1') ";
            }
        }
        sql += " ORDER BY pd.czrq DESC LIMIT " + (page - 1) * pageSize + " , " + pageSize + " ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
    /*设备详细信息*/
    public org.json.JSONObject getDeviceInfo(String patient, String deviceSn) throws Exception {
        return patientDeviceService.getPatientDeviceDetail(patient, deviceSn, null);
    }
    /*监护信息*/
    public JSONObject getMonitoring(String patient, String topicItem) {
        return securityMonitoringOrderService.patientMonitoringInfo(patient, topicItem, null, true);
    }
    /*报修列表*/
    public List<Map<String, Object>> getRepairList(String doctor,String categoryCode, String patientName, int page, int pageSize) {
        BaseDoctorDO doctorById = baseDoctorDao.findById(doctor);
        String repairSql = "";
        if (null != doctorById) {
            //level == 2 社工
            //level == 4 助老员
            if (doctorById.getLevel() == 4) {
                 repairSql ="SELECT DISTINCT" +
                         " pd.device_name AS deviceName,dr.`status` AS `status` ,dr.bind_user_name AS bindName,dr.deal_peoper_name AS dealName,dr.create_time AS createTime" +
                         " FROM" +
                         " wlyy_patient_device pd," +
                         " base_device_repair dr," +
                         " base_patient_helper ph," +
                         " base_patient p" +
                         " WHERE" +
                         " p.id = pd.`user`" +
                         " AND pd.del = 0" +
                         " AND dr.repair_peoper = ph.doctor" +
                         " AND dr.device_sn = pd.device_sn" +
                         " AND pd. USER = ph.patient" +
                         " AND ph.doctor = '"+doctor+"'" +
                         " AND ph.del = '1'";
            } else {
                 repairSql = "SELECT DISTINCT dr.order_id AS id,dr.bind_user_name AS patientName," +
                        " dr.`status` AS `status`,dr.create_time AS createTime,dr.repair_peoper_name AS repairName,wd.device_name AS deviceName" +
                        " FROM" +
                        " wlyy_patient_device pd," +
                        " wlyy_devices wd," +
                        " base_patient p," +
                        " dm_device dd," +
                        " base_device_repair dr" +
                        " WHERE" +
                        " p.id = pd.`user`" +
                        " AND pd.del = 0" +
                        " AND pd.device_sn = wd.device_code" +
                        " AND pd.category_code = dd.category_code" +
                        " AND dd.model = wd.device_model" +
                        " AND p.del = 1" +
                        " AND pd.device_sn = dr.device_sn" +
                        " and EXISTS (SELECT sr.patient from base_service_package_sign_record sr,base_service_package_record r,base_team_member m " +
                        " WHERE sr.patient = p.id and sr.status=1 and m.team_code = r.team_code and sr.id=r.sign_id AND dr.repair_peoper = m.doctor_code" +
                        " and m.doctor_code = '" + doctor + "' and m.del = '1')";
            }
        }
        if (StringUtils.isNotBlank(patientName)) {
            repairSql += " AND (p.`name` LIKE '%" + patientName + "%' or  p.idcard LIKE '%" + patientName + "%') ";
        }
        if (StringUtils.isNotBlank(categoryCode)) {
            repairSql += " and pd.category_code ='" + categoryCode + "'";
        }
        repairSql += " ORDER BY pd.czrq DESC LIMIT " + (page - 1) * pageSize + " , " + pageSize + " ";
        return jdbcTemplate.queryForList(repairSql);
    }
    /*报修详细信息*/
    public List<BaseDeviceRepairEntity> getRepairInfo(String orderId) {
        return jdbcTemplate.query("SELECT * from base_device_repair WHERE order_id = '" + orderId + "'", new BeanPropertyRowMapper<>(BaseDeviceRepairEntity.class));
    }
    /*报修*/
    public BaseDeviceRepairEntity deviceRepair(BaseDeviceRepairEntity repairEntity,String doctor) {
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
            if (2==doctorDO.getLevel()||4==doctorDO.getLevel()){
                repairEntity.setOrderId(UUID.randomUUID().toString().replaceAll("-", ""));
                repairEntity.setStatus(0);
                repairEntity.setCreateTime(DateUtil.getNowDate());
            }else{
                repairEntity.setStatus(1);
            }
        return baseDeviceRepairDao.save(repairEntity);
    }
}

+ 62 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/DayHandoverService.java

@ -0,0 +1,62 @@
package com.yihu.jw.care.service.doctor;
import com.yihu.jw.care.dao.handover.BaseDayHandoverDao;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.care.handover.BaseDayHandover;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * 2022/03/22  wsl
 */
@Service
public class DayHandoverService {
    @Autowired
    JdbcTemplate jdbcTemplate;
    @Autowired
    BaseDayHandoverDao baseDayHandoverDao;
    @Autowired
    BaseDoctorDao baseDoctorDao;
    //保存日常交接
    public BaseDayHandover saveDayHandover(BaseDayHandover baseDayHandover) {
        return baseDayHandoverDao.save(baseDayHandover);
    }
    //获取交接列表
    public List<BaseDayHandover> getDayHandoverList(String doctor) {
        return baseDayHandoverDao.findByCreateUser(doctor);
    }
    //获取团队成员
    public List<Map<String, Object>> getTeamMember(String doctor) {
        String memberSql = "SELECT Distinct" +
                " d. NAME AS `name`, d.id AS id " +
                " FROM base_team_member m, base_doctor d" +
                " WHERE " +
                " m.team_code = (SELECT team_code FROM base_team_member WHERE doctor_code ='" + doctor + "' AND del = '1') and m.doctor_code = d.id " +
                " and m.del = '1'";
        return jdbcTemplate.queryForList(memberSql);
    }
    //判断是否是社工医生
    public boolean doctorIf(String doctorCode){
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorCode);
        if (doctorDO.getLevel()!=1) {
            return false;
        }
        return true;
    }
}

+ 17 - 22
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java

@ -16,20 +16,17 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareCancelLogDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareFeeDetailDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareItemDictDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.entity.door.BaseAdminServiceDynamic;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.entity.patient.Patient;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.EntityUtils;
@ -42,6 +39,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -669,27 +667,24 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
        }
        //给签约医生发送预约短信
        String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack  \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id and i.del = 1 and sr.`status`=1 \n" +
                "and  sr.patient  = '"+orderDO.getPatient()+"' and i.code='lifeCare' ";
        List<Map<String,Object>> items = jdbcTemplate.queryForList(sql);
        if(items.size()==0){
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            String failMsg = "居民未签约生活照料服务,无法发起申请";
            result.put(ResponseContant.resultMsg, failMsg);
            logger.error(failMsg);
            return result;
        }
        Map<String,Object> mapTmp = items.get(0);
        List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembersByLevel(mapTmp.get("team_code").toString(),2);
        for (BaseDoctorDO doctorDO:doctorDOS){
            try {
                if (StringUtils.isNotBlank(doctorDO.getMobile())){
                    messageUtil.sendTXYSJson("1099807",doctorDO.getMobile(),orderDO.getPatientName(),"生活照料");
        try {
            String hospitalDoctorSql = "SELECT d.mobile AS mobile FROM base_doctor_hospital h,base_doctor d WHERE h.doctor_code = d.id " +
                    " AND d.doctor_level = 4" +
                    " AND h.org_code = '"+orderDO.getHospital()+"'" +
                    " AND h.del = 1" +
                    " AND d.del = 1" +
                    " AND d.mobile IS NOT NULL" +
                    " AND d.mobile != ''";
            List<Map<String, Object>> maps = jdbcTemplate.queryForList(hospitalDoctorSql);
            if (maps.size() != 0) {
                for (Map<String, Object> map : maps) {
                    messageUtil.sendTXYSJson("1099807", map.get("mobile").toString(), orderDO.getPatientName(), "生活照料");
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        } catch (DataAccessException e) {
            e.printStackTrace();
        }
        return result;

+ 11 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/org/BaseOrgService.java

@ -9,6 +9,7 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * Created by yeshijie on 2021/3/3.
@ -39,4 +40,14 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
        BaseOrgDO orgDO = orgDao.findByCode(orgCode);
        return orgDO;
    }
    //生活照料服务机构 存在服务项的机构
    public List<Map<String, Object>> findLifeOrg(){
        String findLifesql = "SELECT DISTINCT o.`code` as code,o.`name` as name FROM base_org o,base_life_care_item_dict d WHERE o.type = '3' and o.del = 1 and o.`code` = d.org_code";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(findLifesql);
        if (maps.size()==0) {
            return null;
        }
        return maps;
    }
}

+ 32 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -50,7 +50,6 @@ import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.EntityUtils;
import com.yihu.jw.util.healthIndex.HealthIndexUtil;
import com.yihu.mysql.query.BaseJpaService;
import jdk.nashorn.internal.runtime.FindProperty;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -1371,6 +1370,16 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        one.setConclusionStatus(2);
        securityMonitoringOrderDao.save(one);
        BaseEmergencyWarnLogDO logTypeDO = new BaseEmergencyWarnLogDO();
        logTypeDO.setUserCode(doctor);
        logTypeDO.setUserName(one.getDoctor());
        logTypeDO.setOrderId(orderId);
        logTypeDO.setUserType(2);
        logTypeDO.setCreateTime(new Date());
        logTypeDO.setContent("完成服务小结");
        logTypeDO.setType(5);
        logDao.save(logTypeDO);
        //完成工单向pc管理端发送消息
        JSONObject message = new JSONObject();
        String latLon = one.getServeLat() + "," + one.getServeLon();
@ -2191,6 +2200,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
            if (null != doctorDO) {
                BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
                BaseEmergencyWarnLogDO logTypeDO = new BaseEmergencyWarnLogDO();
                logDO.setUserCode(doctor);
                logDO.setUserName(doctorDO.getName());
                logDO.setOrderId(orderId);
@ -2198,6 +2209,15 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                logDO.setCreateTime(new Date());
                logDO.setContent("社工" + doctorDO.getName() + "前往定位");
                logDao.save(logDO);
                logTypeDO.setUserCode(doctor);
                logTypeDO.setUserName(doctorDO.getName());
                logTypeDO.setOrderId(orderId);
                logTypeDO.setUserType(2);
                logTypeDO.setCreateTime(new Date());
                logTypeDO.setContent("前往定位");
                logTypeDO.setType(2);
                logDao.save(logTypeDO);
            }
        }
        result.put("resultFlag", 1);
@ -2213,13 +2233,24 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
        if (null != doctorDO) {
            BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
            BaseEmergencyWarnLogDO logTypeDD = new BaseEmergencyWarnLogDO();
            logDO.setUserCode(doctor);
            logDO.setUserName(doctorDO.getName());
            logDO.setOrderId(orderId);
            logDO.setUserType(2);
            logDO.setCreateTime(new Date());
            logDO.setContent("社工" + doctorDO.getName() + "已知悉");
            logTypeDD.setUserCode(doctor);
            logTypeDD.setUserName(doctorDO.getName());
            logTypeDD.setOrderId(orderId);
            logTypeDD.setUserType(2);
            logTypeDD.setCreateTime(new Date());
            logTypeDD.setContent("已知悉");
            logTypeDD.setType(1);
            logDao.save(logDO);
            logDao.save(logTypeDD);
        }
    }

+ 18 - 16
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/data/SaveDataPushJob.java

@ -107,12 +107,10 @@ public class SaveDataPushJob implements Job {
        Map<String,String> signOlderMap = signOlderList.stream().collect(Collectors.toMap(String::toString,String::toString));
        //签约幼儿id
/*
        String signInfantSql = "SELECT DISTINCT p.id FROM base_patient p INNER JOIN base_service_package_sign_record sr on p.id = sr.patient and sr.`status`=1 and " +
                " p.id not in ("+filterUser+") WHERE p.del = 1 and p.archive_type =2 ";
        List<String> signInfantList = jdbcTemplate.queryForList(signInfantSql, String.class);
        Map<String,String> signInfanMap = signInfantList.stream().collect(Collectors.toMap(String::toString,String::toString));
*/
        //System.out.println(date);
        saveSecurityMonitoringOrder(date,signOlderMap);
@ -261,17 +259,19 @@ public class SaveDataPushJob implements Job {
    //幼儿基本信息
    public void saveInfantInfo(String date){
        String infantInfoSql = "SELECT DISTINCT" +
                " p.`name` AS `name`, TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age , t.status AS `status` ,h.org_code orgCode,h.org_name AS orgName, p.address AS address,p.create_time AS createTime, p.update_time AS updateTime" +
        String infantInfoSql = "SELECT DISTINCT p.id AS id,o.address AS address,p.name AS `name`,t.status AS `status`,o.name AS `orgName`," +
                " TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.create_time AS createTime,p.update_time AS updateTime" +
                " FROM" +
                " base_doctor_patient_tmp t" +
                " LEFT JOIN base_patient p ON t.patient = p.id" +
                " LEFT JOIN base_doctor_hospital h ON h.org_code = t.org_code" +
                " base_doctor_patient_tmp t," +
                " base_patient p," +
                " base_org o" +
                " WHERE" +
                " p.archive_type = 2" +
                " t.patient = p.id" +
                " AND p.archive_type = 2" +
                " AND t.del = 1" +
                " AND p.del = 1" +
                " AND t.type = 3" +
                " AND p.update_time >= '"+date +"'";
                " AND t.org_code = o.code" +
                " AND p.update_time >= '2021-05-31'";
        List<Map<String, Object>> infantInfoList = jdbcTemplate.queryForList(infantInfoSql);
        List list = new ArrayList();
        for (Map<String, Object> map : infantInfoList) {
@ -281,7 +281,6 @@ public class SaveDataPushJob implements Job {
            zhBaseInfantInfoDO.setAge(map.get("age").toString());
            zhBaseInfantInfoDO.setName(map.get("name").toString());
            zhBaseInfantInfoDO.setCreateTime(DateUtil.strToDate(map.get("createTime").toString()));
            zhBaseInfantInfoDO.setEnterSchool(map.get("orgCode").toString());
            zhBaseInfantInfoDO.setEnterSchoolName(map.get("orgName").toString());
            zhBaseInfantInfoDO.setUpdateTime(DateUtil.strToDate(map.get("updateTime").toString()));
            zhBaseInfantInfoDO.setIfEnterSchool(map.get("status").toString());
@ -323,28 +322,31 @@ public class SaveDataPushJob implements Job {
        String devicePushLogSql = "SELECT * FROM device_data_push_log WHERE create_time >= '"+date+"' ";
        List<ZhDeviceDataPushLogDO> devicePushLogList = jdbcTemplate.query(devicePushLogSql, new BeanPropertyRowMapper<>(ZhDeviceDataPushLogDO.class));
        zhDeviceDataPushLogDao.save(devicePushLogList);
        devicePushLogList = null;
        //烟感气感实时数据
        String deviceHealthIndexSql ="SELECT * FROM base_device_health_index WHERE create_time >= '"+date+"'";
        List<ZhBaseDeviceHealthIndexDO> deviceHealthIndexList = jdbcTemplate.query(deviceHealthIndexSql, new BeanPropertyRowMapper<>(ZhBaseDeviceHealthIndexDO.class));
        zhBaseDeviceHealthIndexDao.save(deviceHealthIndexList);
        deviceHealthIndexList = null;
        //拐杖
        String yxIndexSql = "SELECT * FROM base_yxdevice_index WHERE create_time >= '"+date+"'";
        List<ZhBaseYxdeviceIndexDO> yxIndexList = jdbcTemplate.query(yxIndexSql, new BeanPropertyRowMapper<>(ZhBaseYxdeviceIndexDO.class));
        zhBaseYxdeviceIndexDao.save(yxIndexList);
        yxIndexList = null;
        //睡眠带
        String sleepSql = "SELECT * FROM base_sleep_device where create_time >= '"+date +"'";
        List<ZhBaseSleepDeviceDO> sleepList = jdbcTemplate.query(sleepSql, new BeanPropertyRowMapper<>(ZhBaseSleepDeviceDO.class));
        zhBaseSleepDeviceDao.save(sleepList);
        sleepList = null;
        //手表
        String sleepX1Sql ="SELECT * FROM base_sleep_x1device WHERE create_time >= '"+date+"'";
        List<ZhBaseSleepX1deviceDO> sleepX1List = jdbcTemplate.query(sleepX1Sql, new BeanPropertyRowMapper<>(ZhBaseSleepX1deviceDO.class));
        zhBaseSleepX1deviceDao.save(sleepX1List);
        sleepX1List = null;
        sleepList = null;
        yxIndexList = null;
        deviceHealthIndexList = null;
        devicePushLogList = null;
    }
    //设备表

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

@ -56,15 +56,18 @@ public class InitializeDataJobService {
        switch(type){
            case "1":
                //安防监护工单
                System.out.println("初始化安防监护");
                saveDataPushJob.saveSecurityMonitoringOrder(date,signOlderMap);
                break;
            case "2":
                System.out.println("初始化上门辅导");
                //上门辅导工单
                saveDataPushJob.saveDoorCoachOrder(date,jkzlUserMap);
                //上门辅导 服务工单价格
                saveDataPushJob.saveDoorCoachFeeDetail(date);
                break;
            case "3":
                System.out.println("初始化生活照料");
                // 生活照料 工单
                saveDataPushJob.saveLifeCareOrder(date,signOlderMap);
                //生活照料 价格
@ -72,21 +75,28 @@ public class InitializeDataJobService {
                break;
            case "4":
                //紧急救助工单
                System.out.println("初始化紧急救助工单");
                saveDataPushJob.saveEmergencyAssistanceOrder(date,signOlderMap);
                break;
            case "5":
                System.out.println("初始化老人居民信息");
                //老人居民信息
                saveDataPushJob.saveOlderInfo(date,signOlderMap);
                System.out.println("初始化幼儿基本信息");
                //幼儿基本信息
                saveDataPushJob.saveInfantInfo(date);
                System.out.println("初始化服务项");
                //服务项
                saveDataPushJob.saveServicePackageItem(date);
                break;
            case "6":
                System.out.println("初始化设备表");
                //设备表
                saveDataPushJob.saveWlyyDevice(date);
                System.out.println("初始化老人签约信息");
                //老人签约信息
                saveDataPushJob.saveSignOlderInfo(date);
                System.out.println("初始化教师信息");
                //教师信息
                saveDataPushJob.saveTeacherInfo(date);
                break;
@ -96,14 +106,17 @@ public class InitializeDataJobService {
                break;
            case "8":
                //机构
                System.out.println("初始化机构");
                saveDataPushJob.saveOldOrg(date,jkzlOrgMap);
                saveDataPushJob.saveHospitalOrg(date,jkzlOrgMap);
                saveDataPushJob.saveInfantOrg(date,jkzlOrgMap);
                break;
            case "9":
                System.out.println("初始化幼儿 活动 公艺 报名");
                //幼儿 活动 公艺 报名
                saveDataPushJob.saveActivity(date);
                //日常走访
                System.out.println("初始化日常走访");
                saveDataPushJob.saveVisit(date);
                break;
        }