|  | @ -0,0 +1,44 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.service.device;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.iot.dao.message.IotMessageDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.iot.message.IotMessageDO;
 | 
	
		
			
				|  |  | import io.swagger.models.auth.In;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.util.Date;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /*
 | 
	
		
			
				|  |  |  * 库存预警提醒相关逻辑
 | 
	
		
			
				|  |  |  * create by hmf on 2020/5/13
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @Service
 | 
	
		
			
				|  |  | public class InventoryWarningService {
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private JdbcTemplate jdbcTemplate;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private IotMessageDao iotMessageDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void remind() {
 | 
	
		
			
				|  |  |         String sql = "select d.product_id,d.`name`,d.category_code,d.category_name,d.manufacturer_id,d.manufacturer_name,d.hospital,d.hospital_name,count(d.id) inventoryCount ,p.inventory_floor,p.inventory_upper " +
 | 
	
		
			
				|  |  |                 "FROM `iot_device` d LEFT JOIN iot_product_base_info p on d.product_id = p.id and p.del = 1 where p.del=1 and is_grant=0 GROUP BY d.product_id, d.manufacturer_id, d.hospital, d.category_code ";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         for (Map<String, Object> map : list){
 | 
	
		
			
				|  |  |             Integer inventoryCount = map.get("inventoryCount") == null ? 0: Integer.parseInt(map.get("inventoryCount") + "");
 | 
	
		
			
				|  |  |             Integer inventoryFloor = map.get("inventory_floor") == null ? 0: Integer.parseInt(map.get("inventory_floor") + "");
 | 
	
		
			
				|  |  |             Integer inventoryUpper = map.get("inventory_upper") == null ? 0: Integer.parseInt(map.get("inventory_upper") + "");
 | 
	
		
			
				|  |  |             if(inventoryCount < inventoryFloor || inventoryCount > inventoryUpper){
 | 
	
		
			
				|  |  |                 IotMessageDO iotMessageDO = new IotMessageDO();
 | 
	
		
			
				|  |  |                 iotMessageDO.setTitle("库存预警提醒");
 | 
	
		
			
				|  |  |                 iotMessageDO.setContent("您的库存" + map.get("name") + "设备已达到预警数量,当前数量为:" + inventoryCount + "台,请及时维护库存。");
 | 
	
		
			
				|  |  |                 iotMessageDO.setReadMsg("0");
 | 
	
		
			
				|  |  |                 iotMessageDO.setDel("0");
 | 
	
		
			
				|  |  |                 iotMessageDO.setType("2");
 | 
	
		
			
				|  |  |                 iotMessageDao.save(iotMessageDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |