|
@@ -6,6 +6,7 @@ import cn.hutool.json.JSONArray;
|
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -16,12 +17,14 @@ import com.inspur.device.mapper.SmsbDeviceGroupRelMapper;
|
|
|
import com.inspur.digital.domain.SmsbAppointmentInfo;
|
|
import com.inspur.digital.domain.SmsbAppointmentInfo;
|
|
|
import com.inspur.digital.domain.SmsbDeviceChatScCase;
|
|
import com.inspur.digital.domain.SmsbDeviceChatScCase;
|
|
|
import com.inspur.digital.domain.SmsbDeviceChatScReport;
|
|
import com.inspur.digital.domain.SmsbDeviceChatScReport;
|
|
|
|
|
+import com.inspur.digital.domain.SmsbDeviceScScanCode;
|
|
|
import com.inspur.digital.domain.bo.SmsbAppointmentInfoBo;
|
|
import com.inspur.digital.domain.bo.SmsbAppointmentInfoBo;
|
|
|
import com.inspur.digital.domain.bo.SmsbStartInfoBo;
|
|
import com.inspur.digital.domain.bo.SmsbStartInfoBo;
|
|
|
import com.inspur.digital.domain.vo.*;
|
|
import com.inspur.digital.domain.vo.*;
|
|
|
import com.inspur.digital.mapper.SmsbAppointmentInfoMapper;
|
|
import com.inspur.digital.mapper.SmsbAppointmentInfoMapper;
|
|
|
import com.inspur.digital.mapper.SmsbDeviceChatScCaseMapper;
|
|
import com.inspur.digital.mapper.SmsbDeviceChatScCaseMapper;
|
|
|
import com.inspur.digital.mapper.SmsbDeviceChatScReportMapper;
|
|
import com.inspur.digital.mapper.SmsbDeviceChatScReportMapper;
|
|
|
|
|
+import com.inspur.digital.mapper.SmsbDeviceScScanCodeMapper;
|
|
|
import com.inspur.digital.service.ISmsbAppointmentInfoService;
|
|
import com.inspur.digital.service.ISmsbAppointmentInfoService;
|
|
|
import com.inspur.digital.util.DifyStreamUtil;
|
|
import com.inspur.digital.util.DifyStreamUtil;
|
|
|
import com.inspur.digital.util.EncryptUtil;
|
|
import com.inspur.digital.util.EncryptUtil;
|
|
@@ -44,10 +47,7 @@ import java.nio.charset.StandardCharsets;
|
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
import java.nio.file.Paths;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.Collection;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -65,6 +65,7 @@ public class SmsbAppointmentInfoServiceImpl implements ISmsbAppointmentInfoServi
|
|
|
private final SmsbDeviceGroupRelMapper smsbDeviceGroupRelMapper;
|
|
private final SmsbDeviceGroupRelMapper smsbDeviceGroupRelMapper;
|
|
|
private final SmsbDeviceChatScReportMapper smsbDeviceChatScReportMapper;
|
|
private final SmsbDeviceChatScReportMapper smsbDeviceChatScReportMapper;
|
|
|
private final SmsbDeviceChatScCaseMapper smsbDeviceChatScCaseMapper;
|
|
private final SmsbDeviceChatScCaseMapper smsbDeviceChatScCaseMapper;
|
|
|
|
|
+ private final SmsbDeviceScScanCodeMapper smsbDeviceScScanCodeMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
|
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
|
|
@Value("${sc.api.url}")
|
|
@Value("${sc.api.url}")
|
|
@@ -475,6 +476,14 @@ public class SmsbAppointmentInfoServiceImpl implements ISmsbAppointmentInfoServi
|
|
|
return R.ok(result);
|
|
return R.ok(result);
|
|
|
}
|
|
}
|
|
|
// 存在预约
|
|
// 存在预约
|
|
|
|
|
+ // 更新到访 生成扫码记录
|
|
|
|
|
+ SmsbAppointmentInfo updateArrived = new SmsbAppointmentInfo();
|
|
|
|
|
+ updateArrived.setIsArrived(1);
|
|
|
|
|
+ updateArrived.setArrivedTime(new Date());
|
|
|
|
|
+ baseMapper.update(updateArrived, new LambdaUpdateWrapper<SmsbAppointmentInfo>().eq(SmsbAppointmentInfo::getId, appointmentInfo.getId()));
|
|
|
|
|
+ // 记录扫码记录
|
|
|
|
|
+ recordScanCode(appointmentInfo,smsbStartInfoBo);
|
|
|
|
|
+
|
|
|
result.setPhone(appointmentInfo.getPhone());
|
|
result.setPhone(appointmentInfo.getPhone());
|
|
|
result.setEnterprise(appointmentInfo.getEnterprise());
|
|
result.setEnterprise(appointmentInfo.getEnterprise());
|
|
|
result.setAppointmentId(appointmentInfo.getId());
|
|
result.setAppointmentId(appointmentInfo.getId());
|
|
@@ -533,6 +542,18 @@ public class SmsbAppointmentInfoServiceImpl implements ISmsbAppointmentInfoServi
|
|
|
return R.ok(result);
|
|
return R.ok(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private void recordScanCode(SmsbAppointmentInfo appointmentInfo, SmsbStartInfoBo smsbStartInfoBo) {
|
|
|
|
|
+ SmsbDeviceScScanCode scanCode = new SmsbDeviceScScanCode();
|
|
|
|
|
+ scanCode.setIdentifier(smsbStartInfoBo.getIdentifier());
|
|
|
|
|
+ scanCode.setEnterprise(smsbStartInfoBo.getEnterprise());
|
|
|
|
|
+ scanCode.setPhone(smsbStartInfoBo.getPhone());
|
|
|
|
|
+ scanCode.setRegionCode(smsbStartInfoBo.getRegionCode());
|
|
|
|
|
+ scanCode.setRegion(smsbStartInfoBo.getRegion());
|
|
|
|
|
+ scanCode.setPersonNum(smsbStartInfoBo.getPersonNum());
|
|
|
|
|
+ scanCode.setTenantId(appointmentInfo.getTenantId());
|
|
|
|
|
+ smsbDeviceScScanCodeMapper.insert(scanCode);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private List<String> createCaseContentList(List<SmsbDeviceChatScCaseVo> caseVoList) {
|
|
private List<String> createCaseContentList(List<SmsbDeviceChatScCaseVo> caseVoList) {
|
|
|
List<String> contentList = new ArrayList<>();
|
|
List<String> contentList = new ArrayList<>();
|
|
|
for (SmsbDeviceChatScCaseVo caseVo : caseVoList) {
|
|
for (SmsbDeviceChatScCaseVo caseVo : caseVoList) {
|
|
@@ -554,7 +575,7 @@ public class SmsbAppointmentInfoServiceImpl implements ISmsbAppointmentInfoServi
|
|
|
allContentStr.append("###").append("\n");
|
|
allContentStr.append("###").append("\n");
|
|
|
allContentStr.append(content).append("\n");
|
|
allContentStr.append(content).append("\n");
|
|
|
}
|
|
}
|
|
|
- String filePath = createTempFile(allContentStr.toString());
|
|
|
|
|
|
|
+ String filePath = createTempFile(allContentStr.toString(), "report_");
|
|
|
log.info("syncDatasetsReport thread createTempFile success tempFilePath = " + filePath);
|
|
log.info("syncDatasetsReport thread createTempFile success tempFilePath = " + filePath);
|
|
|
boolean uploadResult = uploadDatasetsToDify(datasetsId,filePath);
|
|
boolean uploadResult = uploadDatasetsToDify(datasetsId,filePath);
|
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
@@ -576,7 +597,7 @@ public class SmsbAppointmentInfoServiceImpl implements ISmsbAppointmentInfoServi
|
|
|
allContentStr.append("###").append("\n");
|
|
allContentStr.append("###").append("\n");
|
|
|
allContentStr.append(content).append("\n");
|
|
allContentStr.append(content).append("\n");
|
|
|
}
|
|
}
|
|
|
- String filePath = createTempFile(allContentStr.toString());
|
|
|
|
|
|
|
+ String filePath = createTempFile(allContentStr.toString(), "case_");
|
|
|
log.info("syncDatasetsCase thread createTempFile success tempFilePath = " + filePath);
|
|
log.info("syncDatasetsCase thread createTempFile success tempFilePath = " + filePath);
|
|
|
boolean uploadResult = uploadDatasetsToDify(datasetsId,filePath);
|
|
boolean uploadResult = uploadDatasetsToDify(datasetsId,filePath);
|
|
|
} catch (IOException e) {
|
|
} catch (IOException e) {
|
|
@@ -686,13 +707,13 @@ public class SmsbAppointmentInfoServiceImpl implements ISmsbAppointmentInfoServi
|
|
|
return datasetsFiles;
|
|
return datasetsFiles;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private String createTempFile(String datasetsContent) throws IOException {
|
|
|
|
|
|
|
+ private String createTempFile(String datasetsContent,String type) throws IOException {
|
|
|
// 创建一个临时路径
|
|
// 创建一个临时路径
|
|
|
String localPath = tempDir + "/" + System.currentTimeMillis();
|
|
String localPath = tempDir + "/" + System.currentTimeMillis();
|
|
|
Path path = Paths.get(localPath);
|
|
Path path = Paths.get(localPath);
|
|
|
Files.createDirectories(path);
|
|
Files.createDirectories(path);
|
|
|
// 将datasetsContent保存到临时路径
|
|
// 将datasetsContent保存到临时路径
|
|
|
- String filePath = localPath + "/" + System.currentTimeMillis() + ".txt";
|
|
|
|
|
|
|
+ String filePath = localPath + "/" + type + System.currentTimeMillis() + ".txt";
|
|
|
Path filePathObj = Paths.get(filePath);
|
|
Path filePathObj = Paths.get(filePath);
|
|
|
byte[] contentBytes = datasetsContent.getBytes(StandardCharsets.UTF_8);
|
|
byte[] contentBytes = datasetsContent.getBytes(StandardCharsets.UTF_8);
|
|
|
Files.write(filePathObj, contentBytes);
|
|
Files.write(filePathObj, contentBytes);
|