|
@@ -52,6 +52,8 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
|
|
|
IFusionMeterService fusionMeterService;
|
|
|
@Autowired
|
|
|
IFusionGuidePathService fusionGuidePathService;
|
|
|
+ @Autowired
|
|
|
+ ICaseTagService caseTagService;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -65,16 +67,20 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
|
|
|
@Override
|
|
|
public void addBatch(Integer caseId, List<SceneNumParam> sceneNumParam) {
|
|
|
|
|
|
- this.deleteByCaseId(caseId,true);
|
|
|
+ List<String> addNumList = this.updateByNumList(caseId, sceneNumParam);
|
|
|
+ if(addNumList == null || addNumList.size()<=0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
List<CaseNumEntity> newCaseNums = new ArrayList<>();
|
|
|
List<Model> modelList = new ArrayList<>();
|
|
|
- List<String> updateNumList = new ArrayList<>();
|
|
|
for (SceneNumParam param : sceneNumParam) {
|
|
|
List<String> numList = param.getNumList();
|
|
|
HashSet<String> setNum = new HashSet<>(numList);
|
|
|
for (String num : setNum) {
|
|
|
- updateNumList.add(num);
|
|
|
+ if(!addNumList.contains(num)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
CaseNumEntity caseNumEntity = new CaseNumEntity();
|
|
|
caseNumEntity.setCaseId(caseId);
|
|
|
caseNumEntity.setNumType(param.getType());
|
|
@@ -104,11 +110,9 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
|
|
|
if(modelList.size() >0){
|
|
|
modelService.saveOrUpdateBatch(modelList);
|
|
|
}
|
|
|
- fusionNumService.deleteByNumList(caseId,updateNumList);
|
|
|
- caseViewService.deleteByNumList(caseId,updateNumList);
|
|
|
- fusionMeterService.deleteByNumList(caseId,updateNumList);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private String getGlbUrl(Integer type, String num,Model model) {
|
|
|
if(type == 0 || type == 1){ //看看,看见
|
|
|
String objPath = String.format(OBJ_PATH ,num);
|
|
@@ -139,14 +143,56 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ private List<String> updateByNumList(Integer caseId, List<SceneNumParam> sceneNumParam) {
|
|
|
+ List<String> updateNumList = new ArrayList<>();
|
|
|
+ for (SceneNumParam param : sceneNumParam) {
|
|
|
+ List<String> numList = param.getNumList();
|
|
|
+ updateNumList.addAll(numList);
|
|
|
+ }
|
|
|
+ if(updateNumList.size()<=0){
|
|
|
+ deleteByCaseId(caseId);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(CaseNumEntity::getCaseId,caseId);
|
|
|
+ List<CaseNumEntity> list = this.list(wrapper);
|
|
|
+ List<String> hanNumList = list.parallelStream().map(CaseNumEntity::getNum).collect(Collectors.toList());
|
|
|
+ List<String> delList = new ArrayList<>();
|
|
|
+ List<String> addList = new ArrayList<>();
|
|
|
+ for (String num : hanNumList) {
|
|
|
+ if(!updateNumList.contains(num)){
|
|
|
+ delList.add(num);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (String num : updateNumList) {
|
|
|
+ if(!hanNumList.contains(num)){
|
|
|
+ addList.add(num);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.deleteByNum(caseId,delList);
|
|
|
+
|
|
|
+ return addList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void deleteByNum(Integer caseId, List<String> delList) {
|
|
|
+ LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(CaseNumEntity::getCaseId,caseId);
|
|
|
+ wrapper.in(CaseNumEntity::getNum,delList);
|
|
|
+ this.remove(wrapper);
|
|
|
+ fusionNumService.deleteByNumList(caseId,delList);
|
|
|
+ caseViewService.deleteByNumList(caseId,delList);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
- public void deleteByCaseId(Integer caseId,Boolean rest) {
|
|
|
+ public void deleteByCaseId(Integer caseId) {
|
|
|
LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(CaseNumEntity::getCaseId,caseId);
|
|
|
this.remove(wrapper);
|
|
|
- if(!rest){
|
|
|
- fusionNumService.deleteByCaseId(caseId);
|
|
|
- }
|
|
|
+ fusionNumService.deleteByCaseId(caseId);
|
|
|
+ caseViewService.deleteByCaseId(caseId);
|
|
|
+ fusionGuidePathService.deleteByCaseId(caseId);
|
|
|
+ fusionMeterService.deleteByCaseId(caseId);
|
|
|
+ caseTagService.deletePointByCaseId(caseId);
|
|
|
}
|
|
|
|
|
|
@Override
|