|
|
@@ -1,6 +1,7 @@
|
|
|
package com.sckw.contract.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -397,24 +398,33 @@ public class KwcContractLogisticsScoreServiceImpl implements IKwcContractLogisti
|
|
|
KwcContractLogisticsScore logisticsScore = kwcContractLogisticsScoreMapper.selectLogisticsScoreByEntId(detailDto.getProviderEntId(),detailDto.getLogisticsEntId());
|
|
|
//1、更新企业评分
|
|
|
BigDecimal score = logisticsScore.getScore();
|
|
|
- BigDecimal resultScore = score.add(detailDto.getScoreChange());
|
|
|
- logisticsScore.setScore(resultScore);
|
|
|
- logisticsScore.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
- logisticsScore.setUpdateTime(new Date());
|
|
|
- kwcContractLogisticsScoreMapper.updateKwcContractLogisticsScore(logisticsScore);
|
|
|
- //2.插入评分明细记录
|
|
|
- LogisticsScoreDetailAddDto detailAddDto = new LogisticsScoreDetailAddDto();
|
|
|
- detailAddDto.setScoreId(logisticsScore.getId());
|
|
|
- detailAddDto.setInfluenceBy(detailDto.getInfluenceBy());
|
|
|
- detailAddDto.setAction(detailDto.getAction());
|
|
|
- detailAddDto.setScoreChange(detailDto.getScoreChange());
|
|
|
- detailAddDto.setScore(resultScore);
|
|
|
- //2.设置评分状态为通过
|
|
|
- detailAddDto.setStatus(NumberConstant.ONE);
|
|
|
- //3.构建评分明细记录
|
|
|
- KwcContractLogisticsScoreDetail logisticsScoreDetail = buildLogisticsScoreDetail(detailAddDto);
|
|
|
- //4.插入数据
|
|
|
- return SqlHelper.retBool(kwcContractLogisticsScoreDetailMapper.insertKwcContractLogisticsScoreDetail(logisticsScoreDetail));
|
|
|
+ //查询物流企业下所有的司机
|
|
|
+ HttpResult result = driverScoreFeignService.countDriver(detailDto.getLogisticsEntId());
|
|
|
+ if(result.getCode() == HttpStatus.SUCCESS_CODE && (Integer)result.getData()>0){
|
|
|
+ Integer driverCount =(Integer)result.getData();
|
|
|
+ //企业变动评分
|
|
|
+ BigDecimal entScoreChange = detailDto.getScoreChange().divide(new BigDecimal(driverCount),2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal resultScore = score.add(entScoreChange);
|
|
|
+ logisticsScore.setScore(resultScore);
|
|
|
+ logisticsScore.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ logisticsScore.setUpdateTime(new Date());
|
|
|
+ kwcContractLogisticsScoreMapper.updateKwcContractLogisticsScore(logisticsScore);
|
|
|
+ //2.插入评分明细记录
|
|
|
+ LogisticsScoreDetailAddDto detailAddDto = new LogisticsScoreDetailAddDto();
|
|
|
+ detailAddDto.setScoreId(logisticsScore.getId());
|
|
|
+ detailAddDto.setInfluenceBy(detailDto.getInfluenceBy());
|
|
|
+ detailAddDto.setAction(detailDto.getAction());
|
|
|
+ detailAddDto.setScoreChange(entScoreChange);
|
|
|
+ detailAddDto.setScore(resultScore);
|
|
|
+ //2.设置评分状态为通过
|
|
|
+ detailAddDto.setStatus(NumberConstant.ONE);
|
|
|
+ //3.构建评分明细记录
|
|
|
+ KwcContractLogisticsScoreDetail logisticsScoreDetail = buildLogisticsScoreDetail(detailAddDto);
|
|
|
+ //4.插入数据
|
|
|
+ return SqlHelper.retBool(kwcContractLogisticsScoreDetailMapper.insertKwcContractLogisticsScoreDetail(logisticsScoreDetail));
|
|
|
+ }else{
|
|
|
+ throw new BusinessException("查询物流企业司机数量失败");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|