|
@ -8,18 +8,21 @@ import com.yihu.iot.service.common.ElasticSearchQueryGenerator;
|
|
|
import com.yihu.jw.device.LocationDataDO;
|
|
|
import com.yihu.jw.entity.iot.device.IotPatientDeviceDO;
|
|
|
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
|
|
|
import com.yihu.jw.restmodel.web.MixEnvelop;
|
|
|
import com.yihu.jw.rm.iot.IotRequestMapping;
|
|
|
import com.yihu.jw.util.common.LatitudeUtils;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
|
import io.searchbox.client.JestResult;
|
|
|
import iot.device.LocationDataVO;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|
|
import org.slf4j.Logger;
|
|
|
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.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
@ -275,16 +278,91 @@ public class IotPatientDeviceService extends BaseJpaService<IotPatientDeviceDO,
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
public List<IotPatientDeviceVO> createRepairDevice(String deviceSn, Integer status, String damageDescription, String damageImages) {
|
|
|
/**
|
|
|
* 新增编辑维修记录
|
|
|
* @param deviceSn
|
|
|
* @param status
|
|
|
* @param damageDescription
|
|
|
* @param damageImages
|
|
|
* @param repairDescription
|
|
|
* @return
|
|
|
*/
|
|
|
public List<IotPatientDeviceVO> createRepairDevice(String deviceSn, Integer status, String damageDescription, String damageImages, String repairDescription) {
|
|
|
List<IotPatientDeviceDO> patientDeviceDOList = iotPatientDeviceDao.findByDeviceSn(deviceSn);
|
|
|
for(IotPatientDeviceDO patientDeviceDO : patientDeviceDOList){
|
|
|
patientDeviceDO.setStatus(status);
|
|
|
patientDeviceDO.setDamageDescription(damageDescription);
|
|
|
patientDeviceDO.setDamageImages(damageImages);
|
|
|
if(StringUtils.isNotBlank(damageDescription)) {
|
|
|
patientDeviceDO.setDamageDescription(damageDescription);
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(damageImages)) {
|
|
|
patientDeviceDO.setDamageImages(damageImages);
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(repairDescription)) {
|
|
|
patientDeviceDO.setRepairDescription(repairDescription);
|
|
|
}
|
|
|
patientDeviceDO.setUpdateTime(new Date());
|
|
|
}
|
|
|
iotPatientDeviceDao.save(patientDeviceDOList);
|
|
|
List<IotPatientDeviceVO> patientDeviceVOS = new ArrayList<>();
|
|
|
return convertToModels(patientDeviceDOList, patientDeviceVOS, IotPatientDeviceVO.class);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据设备码获取相关厂商信息
|
|
|
* @param deviceSn
|
|
|
* @return
|
|
|
*/
|
|
|
public List<IotPatientDeviceVO> getDeviceInfoByDeviceSn(String deviceSn) {
|
|
|
String sql = "SELECT p.id,p.device_sn,p.device_id,p.device_name, GROUP_CONCAT(p.patient_name) as patientName,p.idcard,p.mobile,d.manufacturer_id, c.`name` manufacturerName,c.contacts_name, c.contacts_mobile " +
|
|
|
"FROM `iot_patient_device` p, iot_device d LEFT JOIN iot_company c on d.manufacturer_id = c.id and c.status = 1 " +
|
|
|
"where p.device_sn = '" + deviceSn + "' and p.del = 1 and p.device_id= d.id GROUP BY p.device_sn ";
|
|
|
List<IotPatientDeviceVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(IotPatientDeviceVO.class));
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取设备维修记录
|
|
|
* @param deviceSn
|
|
|
* @param status
|
|
|
* @param manufacturerId
|
|
|
* @param page
|
|
|
* @param pageSize
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop<IotPatientDeviceVO, IotPatientDeviceVO> getRepairDeviceList(String deviceSn, Integer status, String manufacturerId, Integer page, Integer pageSize) {
|
|
|
String sql ="SELECT p.device_sn,p.device_id,p.device_name,GROUP_CONCAT(p.patient_name) as patientName,p.idcard,p.mobile,p.`status`,p.damage_description,p.damage_images,p.repair_description,d.manufacturer_id, c.`name` manufacturerName,c.contacts_name, c.contacts_mobile " +
|
|
|
"FROM `iot_patient_device` p, iot_device d LEFT JOIN iot_company c on d.manufacturer_id = c.id and c.status = 1 " +
|
|
|
"where p.del = 1 and p.`status` is not null and p.`status` > 0 and p.device_id= d.id ";
|
|
|
if(StringUtils.isNotBlank(deviceSn)){
|
|
|
sql += " and p.device_sn like '%" + deviceSn + "%' ";
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(manufacturerId)){
|
|
|
sql +=" and d.manufacturer_id = '" +manufacturerId + "' ";
|
|
|
}
|
|
|
if(status != null){
|
|
|
sql += " and p.status = " +status;
|
|
|
}else if(StringUtils.isNotBlank(manufacturerId)){
|
|
|
sql +=" and p.status in (2,3,4) ";//厂商只展示三种维修状态
|
|
|
}
|
|
|
|
|
|
sql +=" GROUP BY p.device_sn ORDER BY p.update_time desc ";
|
|
|
if (page != null && pageSize != null) {
|
|
|
String sqlCount = "SELECT count(DISTINCT p.device_sn) " + sql.substring(sql.indexOf("FROM"), sql.length());
|
|
|
Long count = jdbcTemplate.queryForObject(sqlCount, Long.class);
|
|
|
sql += "limit " +(page-1)* pageSize + "," +pageSize;
|
|
|
List<IotPatientDeviceVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(IotPatientDeviceVO.class));
|
|
|
return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Device.message_success_find, list,page, pageSize,count);
|
|
|
}
|
|
|
List<IotPatientDeviceVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(IotPatientDeviceVO.class));
|
|
|
return MixEnvelop.getSuccessList(IotRequestMapping.Device.message_success_find, list);
|
|
|
}
|
|
|
|
|
|
public void deleteRepairDevice(String deviceSn) {
|
|
|
List<IotPatientDeviceDO> patientDeviceDOList = iotPatientDeviceDao.findByDeviceSn(deviceSn);
|
|
|
for(IotPatientDeviceDO patientDeviceDO : patientDeviceDOList){
|
|
|
patientDeviceDO.setStatus(0);
|
|
|
patientDeviceDO.setUpdateTime(new Date());
|
|
|
}
|
|
|
iotPatientDeviceDao.save(patientDeviceDOList);
|
|
|
}
|
|
|
}
|