|
@@ -17,6 +17,8 @@ import com.bz.smart_city.excel.download.column.GeneralDownload;
|
|
|
import com.bz.smart_city.excel.download.template.GdDeviceDownloadExcelTemplate;
|
|
|
import com.bz.smart_city.excel.download.template.GeneralDownloadExcelTemplate;
|
|
|
import com.bz.smart_city.excel.download.template.WaterDownloadExcelTemplate;
|
|
|
+import com.bz.smart_city.rabbitmq.model.RabbitDeviceParamData;
|
|
|
+import com.bz.smart_city.rabbitmq.model.RabbitInstallParamData;
|
|
|
import com.bz.smart_city.service.*;
|
|
|
import com.bz.smart_city.service.udip.*;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
@@ -28,6 +30,8 @@ import org.jdom.Document;
|
|
|
import org.jdom.Element;
|
|
|
import org.jdom.output.Format;
|
|
|
import org.jdom.output.XMLOutputter;
|
|
|
+import org.springframework.amqp.rabbit.connection.SimpleResourceHolder;
|
|
|
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
@@ -40,6 +44,7 @@ import java.io.File;
|
|
|
import java.math.BigInteger;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
@@ -125,6 +130,20 @@ public class DeviceServiceImpl implements DeviceService {
|
|
|
private MessageService messageService;
|
|
|
@Autowired
|
|
|
private ChannelDeviceTypeUseMapper channelDeviceTypeUseMapper;
|
|
|
+ @Autowired
|
|
|
+ private RabbitTemplate rabbitTemplate;
|
|
|
+
|
|
|
+ @Value("${spring.rabbitmq.exchange}")
|
|
|
+ private String exchange;
|
|
|
+ @Value("${spring.rabbitmq.download-device-queue}")
|
|
|
+ private String deviceQueue;
|
|
|
+ @Value("${spring.rabbitmq.download-install-queue}")
|
|
|
+ private String installQueue;
|
|
|
+ @Value("${service.domain}")
|
|
|
+ private String domain;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TaskMapper taskMapper;
|
|
|
|
|
|
@Override
|
|
|
public int insert(Device device) {
|
|
@@ -196,14 +215,111 @@ public class DeviceServiceImpl implements DeviceService {
|
|
|
@Override
|
|
|
public void getDeviceListExcel(String alias, Integer sysId, Integer buildingId, String deviceNo, Integer status, Integer floor, String locDesc, Integer province, Integer city, Integer region, Integer community, Integer concentratorId, String concentratorNo, Integer collectorId, String collectorNo,Integer channelNumberId, String errorType, Integer customerId, Integer days, Integer deviceTypeId, Integer valveStatus, Integer registerStatus, Integer issueStatus, Integer syncStatus, Double startReading, Double endReading, String sortColumn, String sortOrder, HttpServletResponse httpServletResponse) {
|
|
|
LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
-
|
|
|
- List<DeviceDto> list = deviceMapper.getList(sysId, buildingId, loginUser.getSiteId(), UserUtil.getCurrentSiteProgramItems(loginUser), deviceNo, status,
|
|
|
- floor, locDesc, province, city, region, community, concentratorId, concentratorNo, collectorId, collectorNo, null, errorType, customerId,
|
|
|
- days, deviceTypeId, valveStatus, registerStatus, issueStatus, syncStatus, startReading, endReading, sortColumn, sortOrder);
|
|
|
String title = "设备列表";
|
|
|
|
|
|
+ RabbitDeviceParamData paramData = new RabbitDeviceParamData();
|
|
|
+ paramData.setAlias(alias);
|
|
|
+ paramData.setUserId(loginUser.getId());
|
|
|
+ paramData.setSysId(sysId);
|
|
|
+ paramData.setBuildingId(buildingId);
|
|
|
+ paramData.setSiteId(loginUser.getSiteId());
|
|
|
+ paramData.setDeviceNo(deviceNo);
|
|
|
+ paramData.setStatus(status);
|
|
|
+ paramData.setFloor(floor);
|
|
|
+ paramData.setLocDesc(locDesc);
|
|
|
+ paramData.setProvince(province);
|
|
|
+ paramData.setCity(city);
|
|
|
+ paramData.setRegion(region);
|
|
|
+ paramData.setCommunity(community);
|
|
|
+ paramData.setConcentratorId(concentratorId);
|
|
|
+ paramData.setConcentratorNo(concentratorNo);
|
|
|
+ paramData.setCollectorId(collectorId);
|
|
|
+ paramData.setCollectorNo(collectorNo);
|
|
|
+ paramData.setErrorType(errorType);
|
|
|
+ paramData.setCustomerId(customerId);
|
|
|
+ paramData.setDays(days);
|
|
|
+ paramData.setDeviceTypeId(deviceTypeId);
|
|
|
+ paramData.setValveStatus(valveStatus);
|
|
|
+ paramData.setRegisterStatus(registerStatus);
|
|
|
+ paramData.setIssueStatus(issueStatus);
|
|
|
+ paramData.setSyncStatus(syncStatus);
|
|
|
+ paramData.setStartReading(startReading);
|
|
|
+ paramData.setEndReading(endReading);
|
|
|
+ paramData.setSortColumn(sortColumn);
|
|
|
+ paramData.setSortOrder(sortOrder);
|
|
|
+ paramData.setProgramItemList(UserUtil.getCurrentSiteProgramItems(loginUser));
|
|
|
+ paramData.setTitle(title);
|
|
|
+
|
|
|
+
|
|
|
+ Channel channel = channelMapper.findById(sysId);
|
|
|
+
|
|
|
+
|
|
|
+ DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
|
|
+ LocalDateTime date = LocalDateTime.now();
|
|
|
+ String fileName = channel.getChannelName()+ title + "-" + date.format(f) + ".xls";
|
|
|
+
|
|
|
+ Task task = new Task();
|
|
|
+ task.setName(fileName);
|
|
|
+ task.setType(1);
|
|
|
+ task.setStatus(1);
|
|
|
+ task.setCreateDate(LocalDateTime.now());
|
|
|
+ task.setUpdateDate(LocalDateTime.now());
|
|
|
+ taskMapper.insertSelective(task);
|
|
|
+ paramData.setTaskId(task.getId());
|
|
|
+
|
|
|
+ String message = JSON.toJSONString(paramData);
|
|
|
+
|
|
|
+
|
|
|
+ SimpleResourceHolder.bind(rabbitTemplate.getConnectionFactory(), "platform");
|
|
|
+
|
|
|
+ rabbitTemplate.convertAndSend(exchange,deviceQueue, message);
|
|
|
+
|
|
|
+ SimpleResourceHolder.unbind(rabbitTemplate.getConnectionFactory());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- generalDownload.export(title,alias,list,httpServletResponse);
|
|
|
+ public void executeDeviceListExcel(RabbitDeviceParamData paramData){
|
|
|
+ List<DeviceDto> list = deviceMapper.getList(paramData.getSysId(), paramData.getBuildingId(), paramData.getSiteId(), paramData.getProgramItemList(), paramData.getDeviceNo(), paramData.getStatus(),
|
|
|
+ paramData.getFloor(), paramData.getLocDesc(), paramData.getProvince(), paramData.getCity(), paramData.getRegion(), paramData.getCommunity(), paramData.getConcentratorId(), paramData.getConcentratorNo(), paramData.getCollectorId(), paramData.getCollectorNo(), null, paramData.getErrorType(), paramData.getCustomerId(),
|
|
|
+ paramData.getDays(), paramData.getDeviceTypeId(), paramData.getValveStatus(), paramData.getRegisterStatus(), paramData.getIssueStatus(), paramData.getSyncStatus(), paramData.getStartReading(), paramData.getEndReading(), paramData.getSortColumn(), paramData.getSortOrder());
|
|
|
+ Task taskTemp = taskMapper.findById(paramData.getTaskId());
|
|
|
+ try {
|
|
|
+ String filePath = generalDownload.export(paramData.getTitle(),paramData.getAlias(),list,null);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Task task = new Task();
|
|
|
+ task.setId(paramData.getTaskId());
|
|
|
+ task.setPath(filePath);
|
|
|
+ task.setUpdateDate(LocalDateTime.now());
|
|
|
+ taskMapper.updateByPrimaryKeySelective(task);
|
|
|
+
|
|
|
+
|
|
|
+ Message message = new Message();
|
|
|
+ message.setSiteId(paramData.getSiteId());
|
|
|
+ message.setUserId(paramData.getUserId());
|
|
|
+ message.setMessageType(2);
|
|
|
+ message.setMessageTitle(paramData.getTitle()+"-导出");
|
|
|
+ message.setMessageContent(taskTemp.getName()+"导出完成");
|
|
|
+ message.setMessageUrl(domain+"/api/file/task/download?objId="+paramData.getTaskId());
|
|
|
+ message.setObjId(paramData.getTaskId());
|
|
|
+ message.setRead(0);
|
|
|
+ messageService.insertSelective(message);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("Exception {},{}",e.getMessage(),e);
|
|
|
+ Message message = new Message();
|
|
|
+ message.setSiteId(paramData.getSiteId());
|
|
|
+ message.setUserId(paramData.getUserId());
|
|
|
+ message.setMessageType(2);
|
|
|
+ message.setMessageTitle(paramData.getTitle()+"-导出");
|
|
|
+ message.setMessageContent(taskTemp.getName()+"导出失败");
|
|
|
+ message.setObjId(paramData.getTaskId());
|
|
|
+ message.setRead(0);
|
|
|
+ messageService.insertSelective(message);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1124,16 +1240,114 @@ public class DeviceServiceImpl implements DeviceService {
|
|
|
public void exportInstallList(Integer channelId, String deviceNo, Integer status, String errorType, Integer customerId, Integer province, Integer city, Integer region, Integer community, Integer buildingId, String locDesc, Integer deviceTypeId, Integer registerStatus, Integer issueStatus, Integer concentratorId, Integer channelNumberId, String collectorNo, LocalDateTime startDate, LocalDateTime endDate, String sortColumn, String sortOrder, HttpServletResponse httpServletResponse) {
|
|
|
String title = "已装水表列表";
|
|
|
LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
- List<Integer> deviceTypeIdList = channelDeviceTypeUseMapper.findDeviceTypeByChannelId(channelId);
|
|
|
- List<DeviceDto> rtnList = deviceMapper.getInstallList(loginUser.getSiteId(), channelId, deviceNo, status, errorType, customerId, province, city, region, community, buildingId, locDesc, deviceTypeId, registerStatus, issueStatus, concentratorId, channelNumberId, collectorNo, startDate, endDate,UserUtil.getCurrentSiteProgramItems(loginUser), deviceTypeIdList, sortColumn,sortOrder);
|
|
|
- if(55 == channelId){
|
|
|
- generalDownload.export(title,"installRemoteMeter",rtnList,httpServletResponse);
|
|
|
+
|
|
|
+
|
|
|
+ RabbitInstallParamData data = new RabbitInstallParamData();
|
|
|
+ data.setUserId(loginUser.getId());
|
|
|
+ data.setSiteId(loginUser.getSiteId());
|
|
|
+ data.setChannelId(channelId);
|
|
|
+ data.setDeviceNo(deviceNo);
|
|
|
+ data.setStatus(status);
|
|
|
+ data.setErrorType(errorType);
|
|
|
+ data.setCustomerId(customerId);
|
|
|
+ data.setProvince(province);
|
|
|
+ data.setCity(city);
|
|
|
+ data.setRegion(region);
|
|
|
+ data.setCommunity(community);
|
|
|
+ data.setBuildingId(buildingId);
|
|
|
+ data.setLocDesc(locDesc);
|
|
|
+ data.setDeviceTypeId(deviceTypeId);
|
|
|
+ data.setRegisterStatus(registerStatus);
|
|
|
+ data.setIssueStatus(issueStatus);
|
|
|
+ data.setConcentratorId(concentratorId);
|
|
|
+ data.setChannelNumberId(channelNumberId);
|
|
|
+ data.setCollectorNo(collectorNo);
|
|
|
+ data.setStartDate(startDate);
|
|
|
+ data.setEndDate(endDate);
|
|
|
+ data.setSortColumn(sortColumn);
|
|
|
+ data.setSortOrder(sortOrder);
|
|
|
+ data.setTitle(title);
|
|
|
+ data.setProgramItemList(UserUtil.getCurrentSiteProgramItems(loginUser));
|
|
|
+
|
|
|
+ Channel channel = channelMapper.findById(channelId);
|
|
|
+
|
|
|
+
|
|
|
+ DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
|
|
+ LocalDateTime date = LocalDateTime.now();
|
|
|
+ String fileName = channel.getChannelName()+ title + "-" + date.format(f) + ".xls";
|
|
|
+
|
|
|
+ Task task = new Task();
|
|
|
+ task.setName(fileName);
|
|
|
+ task.setType(1);
|
|
|
+ task.setStatus(1);
|
|
|
+ task.setCreateDate(LocalDateTime.now());
|
|
|
+ task.setUpdateDate(LocalDateTime.now());
|
|
|
+ taskMapper.insertSelective(task);
|
|
|
+ data.setTaskId(task.getId());
|
|
|
+
|
|
|
+ String message = JSON.toJSONString(data);
|
|
|
+
|
|
|
+
|
|
|
+ SimpleResourceHolder.bind(rabbitTemplate.getConnectionFactory(), "platform");
|
|
|
+
|
|
|
+ rabbitTemplate.convertAndSend(exchange,installQueue, message);
|
|
|
+
|
|
|
+ SimpleResourceHolder.unbind(rabbitTemplate.getConnectionFactory());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void executeExportInstallList(RabbitInstallParamData data) {
|
|
|
+ String title = "已装水表列表";
|
|
|
+
|
|
|
+ List<Integer> deviceTypeIdList = channelDeviceTypeUseMapper.findDeviceTypeByChannelId(data.getChannelId());
|
|
|
+ List<DeviceDto> rtnList = deviceMapper.getInstallList(data.getSiteId(), data.getChannelId(), data.getDeviceNo(), data.getStatus(), data.getErrorType(), data.getCustomerId(), data.getProvince(), data.getCity(), data.getRegion(), data.getCommunity(), data.getBuildingId(), data.getLocDesc(),
|
|
|
+ data.getDeviceTypeId(), data.getRegisterStatus(), data.getIssueStatus(), data.getConcentratorId(), data.getChannelNumberId(), data.getCollectorNo(), data.getStartDate(), data.getEndDate(),data.getProgramItemList(), deviceTypeIdList, data.getSortColumn(),data.getSortOrder());
|
|
|
+ String filePath = null;
|
|
|
+ if(55 == data.getChannelId()){
|
|
|
+ filePath = generalDownload.export(title,"installRemoteMeter",rtnList,null);
|
|
|
}
|
|
|
- if(40 == channelId){
|
|
|
- generalDownload.export(title,"installLoraMeter",rtnList,httpServletResponse);
|
|
|
+ if(40 == data.getChannelId()){
|
|
|
+ filePath = generalDownload.export(title,"installLoraMeter",rtnList,null);
|
|
|
}
|
|
|
- if(58 == channelId){
|
|
|
- generalDownload.export(title,"installNbiotMeter",rtnList,httpServletResponse);
|
|
|
+ if(58 == data.getChannelId()){
|
|
|
+ filePath = generalDownload.export(title,"installNbiotMeter",rtnList,null);
|
|
|
+ }
|
|
|
+
|
|
|
+ Task taskTemp = taskMapper.findById(data.getTaskId());
|
|
|
+ try {
|
|
|
+
|
|
|
+
|
|
|
+ Task task = new Task();
|
|
|
+ task.setId(data.getTaskId());
|
|
|
+ task.setPath(filePath);
|
|
|
+ task.setUpdateDate(LocalDateTime.now());
|
|
|
+ taskMapper.updateByPrimaryKeySelective(task);
|
|
|
+
|
|
|
+
|
|
|
+ Message message = new Message();
|
|
|
+ message.setSiteId(data.getSiteId());
|
|
|
+ message.setUserId(data.getUserId());
|
|
|
+ message.setMessageType(2);
|
|
|
+ message.setMessageTitle(data.getTitle()+"-导出");
|
|
|
+ message.setMessageContent(taskTemp.getName()+"导出完成");
|
|
|
+ message.setMessageUrl(domain+"/api/file/task/download?objId="+data.getTaskId());
|
|
|
+ message.setObjId(data.getTaskId());
|
|
|
+ message.setRead(0);
|
|
|
+ messageService.insertSelective(message);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("Exception {},{}",e.getMessage(),e);
|
|
|
+ Message message = new Message();
|
|
|
+ message.setSiteId(data.getSiteId());
|
|
|
+ message.setUserId(data.getUserId());
|
|
|
+ message.setMessageType(2);
|
|
|
+ message.setMessageTitle(data.getTitle()+"-导出");
|
|
|
+ message.setMessageContent(taskTemp.getName()+"导出失败");
|
|
|
+ message.setObjId(data.getTaskId());
|
|
|
+ message.setRead(0);
|
|
|
+ messageService.insertSelective(message);
|
|
|
}
|
|
|
|
|
|
}
|