|
|
@@ -1806,43 +1806,46 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(in.getOrderNo());
|
|
|
TOrderNewBo t = tOrderNewMapper.getOrderNewDetail(in.getOrderNo());
|
|
|
OutPublicRelease outPublicRelease=null;
|
|
|
- BigDecimal count = BigDecimal.ZERO;
|
|
|
- int timesCount=0;
|
|
|
+ //实际公出
|
|
|
+ BigDecimal actualDuration = BigDecimal.ZERO;
|
|
|
+ //公出次数
|
|
|
+ int frequency=0;
|
|
|
List<String> peopleList = new ArrayList<>();
|
|
|
+ //判定是不是新增获取原数据,是新增数量加1
|
|
|
if (in.getId()!=null){
|
|
|
outPublicRelease= publicReleaseMapper.selectDtails(in.getId());
|
|
|
}else {
|
|
|
peopleList.add(TokenManager.getAdminId());
|
|
|
- count=count.add(BigDecimal.valueOf(in.getDuration()));
|
|
|
- timesCount++;
|
|
|
+ actualDuration=actualDuration.add(BigDecimal.valueOf(in.getDuration()));
|
|
|
+ frequency++;
|
|
|
}
|
|
|
for (PublicRelease e : list) {
|
|
|
//新增直接计算
|
|
|
if (in.getId()==null){
|
|
|
if (e.getDuration()!=null){
|
|
|
- count=count.add(BigDecimal.valueOf(e.getDuration()));
|
|
|
+ actualDuration=actualDuration.add(BigDecimal.valueOf(e.getDuration()));
|
|
|
if (!peopleList.contains(e.getAid())){
|
|
|
peopleList.add(e.getAid());
|
|
|
}
|
|
|
- timesCount++;
|
|
|
+ frequency++;
|
|
|
}
|
|
|
}else {
|
|
|
//修改当前数据要从修改后获取
|
|
|
if (!e.getId().equals(in.getId())){
|
|
|
if (e.getDuration()!=null){
|
|
|
- count=count.add(BigDecimal.valueOf(e.getDuration()));
|
|
|
+ actualDuration=actualDuration.add(BigDecimal.valueOf(e.getDuration()));
|
|
|
if (!peopleList.contains(e.getAid())){
|
|
|
peopleList.add(e.getAid());
|
|
|
}
|
|
|
- timesCount++;
|
|
|
+ frequency++;
|
|
|
}
|
|
|
}else {
|
|
|
if (outPublicRelease != null && outPublicRelease.getDuration() != null) {
|
|
|
- count = count.add(BigDecimal.valueOf(outPublicRelease.getDuration()));
|
|
|
+ actualDuration = actualDuration.add(BigDecimal.valueOf(outPublicRelease.getDuration()));
|
|
|
if (!peopleList.contains(outPublicRelease.getAid())) {
|
|
|
peopleList.add(outPublicRelease.getAid());
|
|
|
}
|
|
|
- timesCount++;
|
|
|
+ frequency++;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1858,17 +1861,17 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
if (type==1||type==2){
|
|
|
TOrderPublicReleaseCount update=new TOrderPublicReleaseCount();
|
|
|
update.setOrderNo(in.getOrderNo());
|
|
|
- update.setFrequency(timesCount);
|
|
|
- update.setActualDuration(count.doubleValue());
|
|
|
+ update.setFrequency(frequency);
|
|
|
+ update.setActualDuration(actualDuration.doubleValue());
|
|
|
update.setPeopleCount(peopleList.size());
|
|
|
tOrderPublicReleaseCountMapper.updateByOrderNo(update);
|
|
|
}
|
|
|
- data.setTimesCount(timesCount);
|
|
|
+ data.setTimesCount(frequency);
|
|
|
data.setPeopleCount(peopleList.size());
|
|
|
data.setUserName(t.getUserName());
|
|
|
data.setContractNo(t.getContractNo());
|
|
|
data.setAdminName(t.getSalesmanName());
|
|
|
- data.setDurationCount(count);
|
|
|
+ data.setDurationCount(actualDuration);
|
|
|
// 0=0-1 1=1-3 2=3-5 3=5-10 4=10以上
|
|
|
if (t.getTotalAmount().compareTo(BigDecimal.valueOf(1)) < 0) {
|
|
|
data.setAmountType(0);
|
|
|
@@ -1878,7 +1881,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
} else if (t.getTotalAmount().compareTo(BigDecimal.valueOf(3))<0) {
|
|
|
data.setAmountType(1);
|
|
|
data.setDurationMax(BigDecimal.valueOf(15));
|
|
|
- if (count.compareTo(data.getDurationMax())<1){
|
|
|
+ if (actualDuration.compareTo(data.getDurationMax())<1){
|
|
|
map.put("code",true);
|
|
|
map.put("data",null);
|
|
|
}else {
|
|
|
@@ -1888,7 +1891,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
} else if (t.getTotalAmount().compareTo(BigDecimal.valueOf(5))<0) {
|
|
|
data.setAmountType(2);
|
|
|
data.setDurationMax(BigDecimal.valueOf(45));
|
|
|
- if (count.compareTo(data.getDurationMax())<1){
|
|
|
+ if (actualDuration.compareTo(data.getDurationMax())<1){
|
|
|
map.put("code",true);
|
|
|
map.put("data",null);
|
|
|
}else {
|
|
|
@@ -1898,7 +1901,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
} else if (t.getTotalAmount().compareTo(BigDecimal.valueOf(10))<0) {
|
|
|
data.setAmountType(3);
|
|
|
data.setDurationMax(BigDecimal.valueOf(120));
|
|
|
- if (count.compareTo(data.getDurationMax())<1){
|
|
|
+ if (actualDuration.compareTo(data.getDurationMax())<1){
|
|
|
map.put("code",true);
|
|
|
map.put("data",null);
|
|
|
}else {
|
|
|
@@ -1989,6 +1992,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
|
|
|
@Override
|
|
|
@Cacheable(value = "releaseAndExpenseCount#300", key = "'getCounts:key='+#in.buyerName+#in.contractNo+#in.aid+#in.depId+#in.allStatus+#in.startTime+#in.endTime")
|
|
|
public List<releaseAndExpenseCountOut> releaseAndExpenseCount(InputreleaseAndExpenseCount in) {
|
|
|
+ if (in.getEndTime()!=null)in.setEndTime(in.getEndTime()+" 23:59:59");
|
|
|
List<releaseAndExpenseCountOut> expenseCountsOrders = publicReleaseMapper.releaseAndExpenseCount(in);
|
|
|
expenseCountsOrders.forEach(e->{
|
|
|
if (e.getExceedDuration()!=null){
|