|
@@ -3,8 +3,10 @@ package com.dayou.service.impl;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.dayou.common.BaseEntity;
|
|
|
+import com.dayou.dto.MajorTargetMergeNumberDTO;
|
|
|
import com.dayou.dto.TakeNumberDTO;
|
|
|
import com.dayou.dto.TaskRecordDTO;
|
|
|
import com.dayou.entity.MajorTarget;
|
|
@@ -26,6 +28,8 @@ import java.util.List;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.dayou.enums.ProductionEnum.*;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 大中型项目评估对象 服务实现类
|
|
@@ -49,12 +53,14 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
|
|
|
|
|
|
@Override
|
|
|
public List<MajorTarget> getList(MajorTarget majorTarget){
|
|
|
- return this.list(new LambdaQueryWrapper<MajorTarget>().eq(MajorTarget::getMajorId,majorTarget.getMajorId())
|
|
|
- .eq(StrUtil.isNotEmpty(majorTarget.getStatementNo()), MajorTarget::getStatementNo,majorTarget.getStatementNo())
|
|
|
- .eq(StrUtil.isNotEmpty(majorTarget.getReportNo()), MajorTarget::getReportNo,majorTarget.getReportNo())
|
|
|
- .eq(StrUtil.isNotEmpty(majorTarget.getLetterNo()), MajorTarget::getLetterNo,majorTarget.getLetterNo())
|
|
|
- .eq(BaseEntity::getDeleted,Boolean.FALSE)
|
|
|
- .orderByAsc(BaseEntity::getCreated));
|
|
|
+// return this.list(new LambdaQueryWrapper<MajorTarget>().eq(MajorTarget::getMajorId,majorTarget.getMajorId())
|
|
|
+// .eq(StrUtil.isNotEmpty(majorTarget.getStatementNo()), MajorTarget::getStatementNo,majorTarget.getStatementNo())
|
|
|
+// .eq(StrUtil.isNotEmpty(majorTarget.getReportNo()), MajorTarget::getReportNo,majorTarget.getReportNo())
|
|
|
+// .eq(StrUtil.isNotEmpty(majorTarget.getLetterNo()), MajorTarget::getLetterNo,majorTarget.getLetterNo())
|
|
|
+// .eq(BaseEntity::getDeleted,Boolean.FALSE)
|
|
|
+// .orderByAsc(BaseEntity::getCreated));
|
|
|
+ List<MajorTarget> list = majorTargetMapper.getList(majorTarget);
|
|
|
+ return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -93,13 +99,13 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
|
|
|
@Override
|
|
|
public synchronized String takeNumber(TakeNumberDTO takeNumberDTO) {
|
|
|
ProductionEnum productionType = takeNumberDTO.getProductionType();
|
|
|
- if (productionType.equals(ProductionEnum.STATEMENT)){
|
|
|
+ if (productionType.equals(STATEMENT)){
|
|
|
return majorTargetService.majorTakeStatementNo(takeNumberDTO);
|
|
|
}
|
|
|
if (productionType.equals(ProductionEnum.REPORT)){
|
|
|
return majorTargetService.majorTakeReportNo(takeNumberDTO);
|
|
|
}
|
|
|
- if (productionType.equals(ProductionEnum.LETTER)){
|
|
|
+ if (productionType.equals(LETTER)){
|
|
|
return majorTargetService.majorTakeLetterNo(takeNumberDTO);
|
|
|
}
|
|
|
return null;
|
|
@@ -150,6 +156,7 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
|
|
|
public String majorTakeReportNo(TakeNumberDTO takeNumberDTO){
|
|
|
Long businessId = takeNumberDTO.getBusinessId();
|
|
|
List<IdNameVO> takeNumberTargets = takeNumberDTO.getTargets();
|
|
|
+ String existStatementNo = takeNumberDTO.getStatementNo();
|
|
|
//如果选择不同的价值意见书号,来取同一个报告号。则不允许,此处selectedTargetStatementNos的size只能是1
|
|
|
List<String> selectedTargetStatementNos = takeNumberTargets.stream()
|
|
|
.filter(x->StrUtil.isNotBlank(x.getName())).map(IdNameVO::getName).distinct().collect(Collectors.toList());
|
|
@@ -176,12 +183,12 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
|
|
|
List<MajorTarget> sorted = taken.stream().sorted((t1, t2) -> t2.getReportNo().compareTo(t1.getReportNo())).collect(Collectors.toList());
|
|
|
if (CollectionUtils.isEmpty(taken)){
|
|
|
List<IdNameVO> subNumbers = businessNumberService.takeSubNumber(takeNumberDTO,null);
|
|
|
- majorTargetMapper.updateSubReportNo(subNumbers);
|
|
|
+ majorTargetMapper.updateSubReportNo(subNumbers,existStatementNo);
|
|
|
return subNumbers.get(0).getName();
|
|
|
}else {
|
|
|
//已取过主号,后续取子号主号都一致。
|
|
|
List<IdNameVO> subNumbers = businessNumberService.takeSubNumber(takeNumberDTO,sorted.get(0).getReportNo());
|
|
|
- majorTargetMapper.updateSubReportNo(subNumbers);
|
|
|
+ majorTargetMapper.updateSubReportNo(subNumbers,existStatementNo);
|
|
|
return subNumbers.get(0).getName();
|
|
|
}
|
|
|
}else {
|
|
@@ -199,6 +206,7 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
|
|
|
public String majorTakeLetterNo(TakeNumberDTO takeNumberDTO){
|
|
|
Long businessId = takeNumberDTO.getBusinessId();
|
|
|
List<IdNameVO> takeNumberTargets = takeNumberDTO.getTargets();
|
|
|
+ String existStatementNo = takeNumberDTO.getStatementNo();
|
|
|
String orderId = takeNumberDTO.getOrderId();
|
|
|
TakeNumberEnum takeType = takeNumberDTO.getTakeType();
|
|
|
//如果选择不同的价值意见书号,来取同一个复评函号。则不允许,此处selectedTargetStatementNos的size只能是1
|
|
@@ -227,12 +235,12 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
|
|
|
List<MajorTarget> sorted = taken.stream().sorted((t1, t2) -> t2.getLetterNo().compareTo(t1.getLetterNo())).collect(Collectors.toList());
|
|
|
if (CollectionUtils.isEmpty(taken)){
|
|
|
List<IdNameVO> subNumbers = businessNumberService.takeLetterSubNumber(orderId,takeType,null,takeNumberDTO.getTargets());
|
|
|
- majorTargetMapper.updateSubLetterNo(subNumbers);
|
|
|
+ majorTargetMapper.updateSubLetterNo(subNumbers,existStatementNo);
|
|
|
return subNumbers.get(0).getName();
|
|
|
}else {
|
|
|
//已取过主号,后续取子号主号都一致。
|
|
|
List<IdNameVO> subNumbers = businessNumberService.takeLetterSubNumber(orderId,takeType,sorted.get(0).getLetterNo(),takeNumberDTO.getTargets());
|
|
|
- majorTargetMapper.updateSubLetterNo(subNumbers);
|
|
|
+ majorTargetMapper.updateSubLetterNo(subNumbers,existStatementNo);
|
|
|
return subNumbers.get(0).getName();
|
|
|
}
|
|
|
}else {
|
|
@@ -245,4 +253,28 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Boolean mergeNumber(MajorTargetMergeNumberDTO mergeDTO) {
|
|
|
+ String mergeType = mergeDTO.getMergeType();
|
|
|
+ String toMergeNumber = mergeDTO.getToMergeNumber();
|
|
|
+ List<Long> targetIds = mergeDTO.getTargetIds();
|
|
|
+ if (mergeType.equals(STATEMENT.name())){
|
|
|
+ return this.update(new LambdaUpdateWrapper<MajorTarget>().set(MajorTarget::getStatementNo,toMergeNumber)
|
|
|
+ .in(BaseEntity::getId,targetIds));
|
|
|
+ }
|
|
|
+ if (mergeType.equals(REPORT.name())){
|
|
|
+ MajorTarget one = this.list(new LambdaQueryWrapper<MajorTarget>().eq(MajorTarget::getReportNo, toMergeNumber)).get(0);
|
|
|
+ return this.update(new LambdaUpdateWrapper<MajorTarget>().set(MajorTarget::getStatementNo,one.getStatementNo())
|
|
|
+ .set(MajorTarget::getReportNo,toMergeNumber)
|
|
|
+ .in(BaseEntity::getId,targetIds));
|
|
|
+ }
|
|
|
+ if (mergeType.equals(LETTER.name())){
|
|
|
+ MajorTarget one = this.list(new LambdaQueryWrapper<MajorTarget>().eq(MajorTarget::getLetterNo, toMergeNumber)).get(0);
|
|
|
+ return this.update(new LambdaUpdateWrapper<MajorTarget>().set(MajorTarget::getStatementNo,one.getStatementNo())
|
|
|
+ .set(MajorTarget::getLetterNo,toMergeNumber)
|
|
|
+ .in(BaseEntity::getId,targetIds));
|
|
|
+ }
|
|
|
+ return Boolean.FALSE;
|
|
|
+ }
|
|
|
+
|
|
|
}
|