|  | @ -2,13 +2,19 @@ package com.yihu.iot.service.device;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | import com.yihu.elasticsearch.ElasticSearchHelper;
 | 
	
		
			
				|  |  | import com.yihu.iot.dao.device.IotDeviceDao;
 | 
	
		
			
				|  |  | import com.yihu.iot.dao.device.IotDeviceOverhaulDao;
 | 
	
		
			
				|  |  | import com.yihu.iot.dao.device.IotPatientDeviceDao;
 | 
	
		
			
				|  |  | import com.yihu.iot.datainput.util.ConstantUtils;
 | 
	
		
			
				|  |  | import com.yihu.iot.service.common.ElasticSearchQueryGenerator;
 | 
	
		
			
				|  |  | import com.yihu.iot.service.dict.IotSystemDictService;
 | 
	
		
			
				|  |  | import com.yihu.jw.device.LocationDataDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.iot.device.IotDeviceOverhaulDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.iot.device.IotPatientDeviceDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.iot.dict.IotSystemDictDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.base.BaseRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.iot.IotRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.LatitudeUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
	
		
			
				|  | @ -22,7 +28,9 @@ import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.data.domain.Pageable;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.BeanPropertyRowMapper;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.io.IOException;
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
	
		
			
				|  | @ -40,17 +48,48 @@ public class IotPatientDeviceService extends BaseJpaService<IotPatientDeviceDO,
 | 
	
		
			
				|  |  |     private ElasticSearchHelper elasticSearchHelper;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ElasticSearchQueryGenerator elasticSearchQueryGenerator;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotDeviceDao iotDeviceDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private JdbcTemplate jdbcTempalte;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotSystemDictService iotSystemDictService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotDeviceOverhaulDao deviceOverhaulDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 新增
 | 
	
		
			
				|  |  |      * @param patientDevice
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public IotPatientDeviceDO create(IotPatientDeviceDO patientDevice) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         patientDevice.setSaasId(getCode());
 | 
	
		
			
				|  |  |         patientDevice.setDel(1);
 | 
	
		
			
				|  |  |         return iotPatientDeviceDao.save(patientDevice);
 | 
	
		
			
				|  |  |         IotPatientDeviceDO patientDeviceDO = iotPatientDeviceDao.save(patientDevice);
 | 
	
		
			
				|  |  |         //更新设备绑定状态,减库存
 | 
	
		
			
				|  |  |         iotDeviceDao.updateIsGrantById(patientDevice.getDeviceId(), 1);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //生成一年检修记录
 | 
	
		
			
				|  |  |         List<IotSystemDictDO> systemDictDOS = iotSystemDictService.getListByDictName("OVERHAUL_FREQUENCY");//获取设备检修时间
 | 
	
		
			
				|  |  |         if(systemDictDOS.size() == 1){
 | 
	
		
			
				|  |  |             List<IotDeviceOverhaulDO> deviceOverhaulDOS = new ArrayList<>();
 | 
	
		
			
				|  |  |             int day = Integer.parseInt(systemDictDOS.get(0).getValue());//检修间隔天数
 | 
	
		
			
				|  |  |             int count = 365/day;
 | 
	
		
			
				|  |  |             for(int i = 0 ; i< count; i++){
 | 
	
		
			
				|  |  |                 IotDeviceOverhaulDO deviceOverhaulDO = new IotDeviceOverhaulDO();
 | 
	
		
			
				|  |  |                 deviceOverhaulDO.setSaasId(getCode());
 | 
	
		
			
				|  |  |                 deviceOverhaulDO.setPatientDeviceId(patientDeviceDO.getId());
 | 
	
		
			
				|  |  |                 deviceOverhaulDO.setStatus(0);
 | 
	
		
			
				|  |  |                 deviceOverhaulDO.setTime(DateUtil.dateToStr(DateUtil.getNextDay1(new Date(), day*(i+1)), "yyyy年MM月dd日"));
 | 
	
		
			
				|  |  |                 deviceOverhaulDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                 deviceOverhaulDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |                 deviceOverhaulDOS.add(deviceOverhaulDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             deviceOverhaulDao.save(deviceOverhaulDOS);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return patientDeviceDO;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -365,4 +404,37 @@ public class IotPatientDeviceService extends BaseJpaService<IotPatientDeviceDO,
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         iotPatientDeviceDao.save(patientDeviceDOList);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Transactional
 | 
	
		
			
				|  |  |     public void delPatientDevice(String id, Integer del) {
 | 
	
		
			
				|  |  |         IotPatientDeviceDO patientDeviceDO = iotPatientDeviceDao.findOne(id);
 | 
	
		
			
				|  |  |         patientDeviceDO.setDel(del);
 | 
	
		
			
				|  |  |         iotPatientDeviceDao.save(patientDeviceDO);
 | 
	
		
			
				|  |  |         //更新设备绑定状态,加库存
 | 
	
		
			
				|  |  |         iotDeviceDao.updateIsGrantById(patientDeviceDO.getDeviceId(), 0);
 | 
	
		
			
				|  |  |         if(del == -1){
 | 
	
		
			
				|  |  |             //核销设备
 | 
	
		
			
				|  |  |             iotDeviceDao.updateDelById(patientDeviceDO.getDeviceId(), 0);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public MixEnvelop<IotPatientDeviceVO,IotPatientDeviceVO> getOverhaulDeviceList(String deviceSn, String patientName, Integer page, Integer pageSize) {
 | 
	
		
			
				|  |  |         String sql = "SELECT DISTINCT d.* FROM `iot_patient_device` d , iot_device_overhaul o where d.del= 1 and  d.id = o.patient_device_id ";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(deviceSn)){
 | 
	
		
			
				|  |  |             sql += "and d.device_sn like '%" + deviceSn + "'% ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(patientName)){
 | 
	
		
			
				|  |  |             sql += "and d.patientName like '%" + patientName + "'% ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //判断是否需要分页
 | 
	
		
			
				|  |  |         if (page != null && pageSize != null) {
 | 
	
		
			
				|  |  |             Long count = Long.valueOf(jdbcTempalte.queryForList(sql).size());
 | 
	
		
			
				|  |  |             sql += "limit " + (page - 1) * pageSize + "," + pageSize;
 | 
	
		
			
				|  |  |             List<IotPatientDeviceVO> deviceVOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotPatientDeviceVO.class));
 | 
	
		
			
				|  |  |             return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find, deviceVOList, page, pageSize, count);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             List<IotPatientDeviceVO> deviceVOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotPatientDeviceVO.class));
 | 
	
		
			
				|  |  |             return MixEnvelop.getSuccessList(IotRequestMapping.Common.message_success_find, deviceVOList);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |