package com.web.jhsop.websocket.service.internal; import com.alibaba.fastjson.JSONObject; import com.app.base.data.ApiResponseResult; import com.app.base.service.FtpClientService; import com.web.ftp.service.FileCheckService; import com.web.jhsop.service.JhSopDataService; import com.web.jhsop.websocket.dao.SopDeviceDao; import com.web.jhsop.websocket.dao.SopFileDao; import com.web.jhsop.websocket.entity.SopDevice; import com.web.jhsop.websocket.entity.SopFile; import com.web.jhsop.websocket.service.SopSendService; import com.web.jhsop.websocket.util.WebSocketUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Transactional(propagation = Propagation.REQUIRED) public class SopSendServiceImpl implements SopSendService { @Autowired private WebSocketUtil webSocketUtil; @Autowired private FtpClientService ftpClientService; @Autowired private FileCheckService fileCheckService; @Autowired private SopDeviceDao sopDeviceDao; @Autowired private SopFileDao sopFileDao; @Autowired private JhSopDataService jhSopDataService; @Override public ApiResponseResult sendSop(String deviceCode, String url, String account, String password, String path, String root, String fileName, String workOrder, String processLine, Integer page) throws Exception { //接收设备id 文件ip地址 返回文件url地址和文件流 // ApiResponseResult download = ftpClientService.download(url, 21, account, password, path, fileName, root); // Object data = download.getData(); StringBuilder sb = new StringBuilder(); sb.append("sop/getFtpFile?"); sb.append("deviceCode="+(deviceCode==null?"":deviceCode)); sb.append("&url="+(url==null?"":url)); sb.append("&account="+(account==null?"":account)); sb.append("&password="+(password==null?"":password)); sb.append("&path="+(path==null?"":path)); sb.append("&root="+(root==null?"":root)); sb.append("&fileName="+(fileName==null?"":fileName)); String ftpFilePath = sb.toString(); Map resMap = new HashMap<>(); String[] split = deviceCode.split(","); // ApiResponseResult result = jhSopDataService.getProcessLine(workOrder); // Object orderData = result.getData(); resMap.put("ftpFilePath",ftpFilePath); resMap.put("workOrder",workOrder); resMap.put("processLine",processLine); resMap.put("fileName",fileName); resMap.put("page",page); String res = JSONObject.toJSONString(resMap); webSocketUtil.sendMoreMessage(split,res); return ApiResponseResult.success().data(resMap); } @Override public ApiResponseResult getFtpFile(String deviceCode, String url, String account, String password, String path, String root, String fileName, HttpServletResponse response) throws Exception { fileCheckService.onlineViewPdf(url,21,account,password,path,fileName,root,response); return null; } @Override public ApiResponseResult sendAllSop(String url, String account, String password, String path, String root, String fileName, String workOrder, String processLine, Integer page) { StringBuilder sb = new StringBuilder(); sb.append("sop/getFtpFile?"); sb.append("&url="+(url==null?"":url)); sb.append("&account="+(account==null?"":account)); sb.append("&password="+(password==null?"":password)); sb.append("&path="+(path==null?"":path)); sb.append("&root="+(root==null?"":root)); sb.append("&fileName="+(fileName==null?"":fileName)); String ftpFilePath = sb.toString(); // webSocketUtil.sendAllMessage(ftpFilePath); Map resMap = new HashMap<>(); resMap.put("ftpFilePath",ftpFilePath); resMap.put("workOrder",workOrder); resMap.put("processLine",processLine); resMap.put("fileName",fileName); resMap.put("page",page); String res = JSONObject.toJSONString(resMap); webSocketUtil.sendAllMessage(res); return null; } @Override public ApiResponseResult toSheetByPage(String deviceId, String page) { webSocketUtil.sendOneMessage(deviceId,page); return ApiResponseResult.success(); } @Override public ApiResponseResult getAllDevice() { List list = sopDeviceDao.findByIsDel(0); return ApiResponseResult.success().data(list); } @Override public ApiResponseResult distributeFile(String deviceId, SopFile sopFile, String order) throws Exception { return sendSop(deviceId,sopFile.getBsUrl(),sopFile.getBsAccount(),sopFile.getBsPassword(),sopFile.getBsPath(),sopFile.getBsRoot(),sopFile.getBsName(),order,"",1); } @Override public ApiResponseResult getSopFile() { List list = sopFileDao.findByIsDel(0); return ApiResponseResult.success().data(list); } }