|  | @ -0,0 +1,157 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.care.endpoint.device;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.device.PatientDeviceDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.endpoint.BaseController;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.service.device.DeviceDetailService;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.service.device.PatientDeviceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.service.device.PatientHealthIndexService;
 | 
	
		
			
				|  |  | 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.base.sync.BaseSyncDataDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.device.DevicePatientDevice;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.base.BaseRequestMapping;
 | 
	
		
			
				|  |  | 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.data.domain.Page;
 | 
	
		
			
				|  |  | 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.Date;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /***
 | 
	
		
			
				|  |  |  * @ClassName: PadDeviceController
 | 
	
		
			
				|  |  |  * @Description:
 | 
	
		
			
				|  |  |  * @Auther: shi kejing
 | 
	
		
			
				|  |  |  * @Date: 2021/5/7 13:39
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @RestController
 | 
	
		
			
				|  |  | @RequestMapping(value = "pad/device")
 | 
	
		
			
				|  |  | @Api(value = "患者设备管理(平板端)", description = "患者设备管理")
 | 
	
		
			
				|  |  | public class PadDeviceController extends BaseController {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private PatientDeviceService patientDeviceService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private DeviceDetailService deviceDetailService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BasePatientDao patientDao;
 | 
	
		
			
				|  |  |     private ObjectMapper objectMapper = new ObjectMapper();
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseDoctorDao baseDoctorDao;
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 设备列表获取
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return 操作结果
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @ApiOperation("管理员获取设备列表")
 | 
	
		
			
				|  |  |     @RequestMapping(value = "PatientDeviceList", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     public String getDeviceByPatient(@ApiParam(name = "patientName", value = "居民姓名", defaultValue = "张")
 | 
	
		
			
				|  |  |                                      @RequestParam(value = "patientName", required = false) String patientName,
 | 
	
		
			
				|  |  |                                      @ApiParam(name = "idcard", value = "身份证号", defaultValue = "")
 | 
	
		
			
				|  |  |                                      @RequestParam(value = "idcard", required = false) String idcard,
 | 
	
		
			
				|  |  |                                      @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) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List<Map<String , Object>> list = patientDeviceService.findDeviceFromAdmin(patientName, idcard, page, pagesize);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return write(200, "查询成功", "data", list);
 | 
	
		
			
				|  |  |         } catch (Exception ex) {
 | 
	
		
			
				|  |  |             error(ex);
 | 
	
		
			
				|  |  |             return invalidUserException(ex, -1, ex.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation("平板端,添加设备时获取设备类型(大类)")
 | 
	
		
			
				|  |  |     @RequestMapping(value = "getDeviceTypeBig", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     public String getDeviceTypeBig(@ApiParam(name = "pyCode", value = "获取设备类型(默认为null,获取大类)", defaultValue = "")
 | 
	
		
			
				|  |  |                                        @RequestParam(value = "pyCode", required = false) String pyCode) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List<Map<String , Object>> list = patientDeviceService.getDeviceType(1,pyCode);
 | 
	
		
			
				|  |  |             return write(200, "查询成功", "data", list);
 | 
	
		
			
				|  |  |         } catch (Exception ex) {
 | 
	
		
			
				|  |  |             error(ex);
 | 
	
		
			
				|  |  |             return invalidUserException(ex, -1, ex.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation("平板端,添加设备时获取设备类型(小类)")
 | 
	
		
			
				|  |  |     @RequestMapping(value = "getDeviceTypeSmall", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     public String getDeviceTypeSmall(@ApiParam(name = "pyCode", value = "获取设备类型(默认为 watch,获取小类(智能手表多类型))", defaultValue = "watch")
 | 
	
		
			
				|  |  |                                          @RequestParam(value = "pyCode", required = false) String pyCode) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List<Map<String , Object>> list = patientDeviceService.getDeviceType(0,pyCode);
 | 
	
		
			
				|  |  |             return write(200, "查询成功", "data", list);
 | 
	
		
			
				|  |  |         } catch (Exception ex) {
 | 
	
		
			
				|  |  |             error(ex);
 | 
	
		
			
				|  |  |             return invalidUserException(ex, -1, ex.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation("设备保存接口(平板端绑定设备  设备为报警器时需要填写投放地址)")
 | 
	
		
			
				|  |  |     @RequestMapping(value = "SavePatientDevice", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     public String saveDevice(@ApiParam(name = "json", value = "设备数据json", defaultValue = "{     \"deviceId\":\"3\",     \"deviceName\":\"血压计-优瑞恩\",     \"deviceSn\":\"7052169111\",     \"categoryCode\":\"7\",     \"userType\":\"-1\", \"sosAddress\":\"福建省厦门市思明区望海路55号之1\" }")
 | 
	
		
			
				|  |  |                              @RequestParam(value = "json", required = true) String json,
 | 
	
		
			
				|  |  |                              @ApiParam(name = "patient", value = "居民code") @RequestParam(value = "patient", required = false) String patientCode
 | 
	
		
			
				|  |  |                              ) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             DevicePatientDevice device = objectMapper.readValue(json, DevicePatientDevice.class);
 | 
	
		
			
				|  |  |             // 设置患者标识
 | 
	
		
			
				|  |  |             device.setUser(patientCode);
 | 
	
		
			
				|  |  |             //患者和设备是否首绑
 | 
	
		
			
				|  |  |             Map<String,Object> checkMap = patientDeviceService.checkBindingFirstAndType(device);
 | 
	
		
			
				|  |  |             boolean flag = (Boolean)checkMap.get("flag");
 | 
	
		
			
				|  |  |             int code = (Integer)checkMap.get("code");
 | 
	
		
			
				|  |  |             if (code==-30000){
 | 
	
		
			
				|  |  |                 return write(-1,"设备不存在或者数据存在错误!");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             BaseDoctorDO doctor = baseDoctorDao.findById(getUID());
 | 
	
		
			
				|  |  |             device.setAgent(getUID());
 | 
	
		
			
				|  |  |             device.setAgentName(doctor.getName());
 | 
	
		
			
				|  |  |             String sn = device.getDeviceSn();
 | 
	
		
			
				|  |  |             synchronized (sn.intern()){
 | 
	
		
			
				|  |  |                 Boolean flagDevice = patientDeviceService.saveDevice(device);
 | 
	
		
			
				|  |  |                 if (flagDevice == false){
 | 
	
		
			
				|  |  |                     return write(-1,"请填写投放地址");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //修改设备表中{"1":"0", "2":"0"}的绑定次数 和其他绑定信息
 | 
	
		
			
				|  |  |             deviceDetailService.updateAfterBinding(device,new Date(),flag);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return success("设备保存成功!");
 | 
	
		
			
				|  |  |         } catch (Exception ex) {
 | 
	
		
			
				|  |  |             error(ex);
 | 
	
		
			
				|  |  |             return invalidUserException(ex, -1, ex.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation("设备解绑接口(平板端解绑设备 )")
 | 
	
		
			
				|  |  |     @RequestMapping(value = "delDeviceByDeviceSn", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     public String delDeviceByDeviceSn(
 | 
	
		
			
				|  |  |                              @ApiParam(name = "deviceSn", value = "设备sn码") @RequestParam(value = "deviceSn", required = false) String deviceSn
 | 
	
		
			
				|  |  |     ) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |                 int flagDevice = patientDeviceService.delDeviceByDeviceSn(deviceSn);
 | 
	
		
			
				|  |  |                 if (flagDevice == 1){
 | 
	
		
			
				|  |  |                     return success("设备解绑成功!");
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     return write(-1,"解绑失败,请确认设备sn码");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |         } catch (Exception ex) {
 | 
	
		
			
				|  |  |             error(ex);
 | 
	
		
			
				|  |  |             return invalidUserException(ex, -1, ex.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |