统计修改

This commit is contained in:
mx 2024-12-31 16:40:57 +08:00
parent 79a441234f
commit 66bd0f7991
4 changed files with 57 additions and 27 deletions

View File

@ -297,4 +297,7 @@ public class PsContractInfoVo implements Serializable {
private PsContractCountVo psContractCountVo; private PsContractCountVo psContractCountVo;
private long countNum;
private BigDecimal sumAmount;
} }

View File

@ -27,12 +27,26 @@ public class OldOrNewCusContractCountVo {
private Long oldContractNum; private Long oldContractNum;
/** /**
* 新客户 新签 占比 * 新客户 新签 金额
*/ */
private BigDecimal newContractPer; private BigDecimal newPrice;
/** /**
* 老客户 新签 占比 * 老客户 新签 金额
*/ */
private BigDecimal oldContractPer; private BigDecimal oldPrice;
/**
* 新客户 新签 金额 占比
*/
private BigDecimal newPricePer;
/**
* 老客户 新签 金额 占比
*/
private BigDecimal oldPricePer;
private BigDecimal all;
} }

View File

@ -30,7 +30,6 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.chrono.ChronoLocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.Temporal; import java.time.temporal.Temporal;
import java.time.temporal.TemporalAdjusters; import java.time.temporal.TemporalAdjusters;
@ -318,36 +317,46 @@ public class HomeServiceImpl implements HomeService {
OldOrNewCusContractCountVo ret = new OldOrNewCusContractCountVo(); OldOrNewCusContractCountVo ret = new OldOrNewCusContractCountVo();
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.select("count(1) countNum, IFNULL(sum(contract_amount), 0) sumAmount");
queryWrapper.eq("is_old_cus", 1); queryWrapper.eq("is_old_cus", 1);
queryWrapper.eq("is_due", "0"); queryWrapper.eq("is_due", "0");
queryWrapper.ge(startDate != null,"apply_date", startDate) queryWrapper.ge(startDate != null,"apply_date", startDate)
.lt(endDate != null,"apply_date", endDate); .lt(endDate != null,"apply_date", endDate);
Long oldCusNum = psContractInfoMapper.selectCount(queryWrapper); List<Map<String, Object>> maps = psContractInfoMapper.selectMaps(queryWrapper);
Map<String, Object> oldVal = maps.get(0);
Long oldCusNum = (Long)oldVal.get("countNum");
BigDecimal oldSumPrice = (BigDecimal)oldVal.get("sumAmount");
queryWrapper.clear(); queryWrapper.clear();
queryWrapper.select("count(1) countNum, IFNULL(sum(contract_amount), 0) sumAmount");
queryWrapper.eq("is_old_cus", 0); queryWrapper.eq("is_old_cus", 0);
queryWrapper.eq("is_due", "0"); queryWrapper.eq("is_due", "0");
queryWrapper.ge(startDate != null,"apply_date", startDate) queryWrapper.ge(startDate != null,"apply_date", startDate)
.lt(endDate != null,"apply_date", endDate); .lt(endDate != null,"apply_date", endDate);
Long newCusNum = psContractInfoMapper.selectCount(queryWrapper); maps = psContractInfoMapper.selectMaps(queryWrapper);
Map<String, Object> stringObjectMap = maps.get(0);
long newCountNum = (Long)stringObjectMap.get("countNum");
BigDecimal newSumPrice = (BigDecimal)stringObjectMap.get("sumAmount");
long sum = oldCusNum + newCusNum; BigDecimal sum = newSumPrice.add(oldSumPrice);
ret.setOldContractNum(oldCusNum); ret.setOldContractNum(oldCusNum);
ret.setNewContractNum(newCusNum); ret.setNewContractNum(newCountNum);
if (oldCusNum != 0){ ret.setOldPrice(oldSumPrice);
ret.setOldContractPer(new BigDecimal(oldCusNum).divide(new BigDecimal(sum), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100))); ret.setNewPrice(newSumPrice);
if (oldSumPrice.doubleValue() != 0){
ret.setOldPricePer(oldSumPrice.divide(sum, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
} else{ } else{
ret.setOldContractPer(new BigDecimal(0)); ret.setOldPricePer(new BigDecimal(0));
} }
if (newCusNum != 0){ if (newSumPrice.doubleValue() != 0){
ret.setNewContractPer((new BigDecimal(100).subtract(ret.getOldContractPer()))); ret.setNewPricePer((new BigDecimal(100).subtract(ret.getOldPricePer())));
} else{ } else{
ret.setNewContractPer(new BigDecimal(0)); ret.setNewPricePer(new BigDecimal(0));
} }
ret.setDateStr(date); ret.setDateStr(date);
ret.setAll(ret.getOldPrice().add(ret.getNewPrice()));
return ret; return ret;
} }
private String contractSource = "转介绍"; private String contractSource = "转介绍";

View File

@ -554,17 +554,17 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
psContractCompanyMapper.delete(qw1); psContractCompanyMapper.delete(qw1);
//服务公司删则删任务重新校验合同状态可能已完成 //服务公司删则删任务重新校验合同状态可能已完成
QueryWrapper<PsTaskMain> qw = Wrappers.query(); // QueryWrapper<PsTaskMain> qw = Wrappers.query();
qw.eq( "service_company_id", psCompanyInfoBo.getId()); // qw.eq( "service_company_id", psCompanyInfoBo.getId());
qw.eq( "contract_code", updateBo.getContractCode()); // qw.eq( "contract_code", updateBo.getContractCode());
List<PsTaskMain> psTaskMainList = taskMainMapper.selectList(qw); // List<PsTaskMain> psTaskMainList = taskMainMapper.selectList(qw);
taskMainMapper.delete(qw); // taskMainMapper.delete(qw);
//
//服务公司删则删任务重新校验合同状态可能已完成 // //服务公司删则删任务重新校验合同状态可能已完成
List<Long> taskIds = psTaskMainList.stream().map(stTask1 -> stTask1.getId()).collect(Collectors.toList()); // List<Long> taskIds = psTaskMainList.stream().map(stTask1 -> stTask1.getId()).collect(Collectors.toList());
if (!taskIds.isEmpty()){ // if (!taskIds.isEmpty()){
taskAppointMapper.deleteByIds(taskIds); // taskAppointMapper.deleteByIds(taskIds);
} // }
} }
@ -592,6 +592,10 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
wrapper.set("task_status", TaskStatusEnum.DISABLED.getCode()); wrapper.set("task_status", TaskStatusEnum.DISABLED.getCode());
taskMainMapper.update(wrapper); taskMainMapper.update(wrapper);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq( "contract_code", updateBo.getContractCode());
taskAppointMapper.delete(queryWrapper);
if(!"1".equals(updateBo.getIsDue())){ if(!"1".equals(updateBo.getIsDue())){
List<PsTaskMain> psTaskMainList = new ArrayList<>(); List<PsTaskMain> psTaskMainList = new ArrayList<>();
for (PsCompanyInfoBo companyInfoBo : updateBo.getServiceCompanyInfoList()){ for (PsCompanyInfoBo companyInfoBo : updateBo.getServiceCompanyInfoList()){