|
@@ -279,6 +279,108 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 销售统计(数据看板-销售分析页面开发)
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> salesStatistics(ContractDto dto) {
|
|
|
+ //添加查询条件
|
|
|
+ QueryWrapper<Contract> query = Wrappers.<Contract>query();
|
|
|
+ selectTime(query,dto);
|
|
|
+ query.select("sum(amount) amount");
|
|
|
+
|
|
|
+ //查询销售额
|
|
|
+ Contract contract = baseMapper.selectOne(query);
|
|
|
+ query.clear();
|
|
|
+ //查询订单数
|
|
|
+ selectTime(query,dto);
|
|
|
+
|
|
|
+ Long count = baseMapper.selectCount(query);
|
|
|
+
|
|
|
+ //查询下单的客户人数
|
|
|
+ query.clear();
|
|
|
+ selectTime(query,dto);
|
|
|
+ query.select("count(DISTINCT(buy_corporation_id)) count");
|
|
|
+ Contract contract1 = baseMapper.selectOne(query);
|
|
|
+
|
|
|
+ //存放销售统计数据
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ //初始化数据
|
|
|
+ map.put("amount",new BigDecimal(0));
|
|
|
+ map.put("contractCount",count);
|
|
|
+ map.put("customerCount",new BigDecimal(0));
|
|
|
+
|
|
|
+ //赋值
|
|
|
+ if (ObjectUtil.isNotEmpty(contract)){
|
|
|
+ map.put("amount",contract.getAmount());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ObjectUtil.isNotEmpty(contract1)){
|
|
|
+ map.put("customerCount",contract1.getCount());
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 国家销售统计(数据看板-销售分析页面开发)
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<ContractDto> countrySalesStatistics(ContractDto dto) {
|
|
|
+ QueryWrapper<Object> query = Wrappers.query();
|
|
|
+ query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getBeginTime());
|
|
|
+ query.le("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getEndTime());
|
|
|
+ query.groupBy("cc.buy_country_id");
|
|
|
+ query.orderByDesc("amount");
|
|
|
+ //查询销售国家统计信息
|
|
|
+ List<ContractDto> contractDtoList = baseMapper.countrySalesStatistics(query);
|
|
|
+ return contractDtoList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 客户销售统计(数据看板-销售分析页面开发)
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<ContractDto> customSalesStatistics(ContractDto dto) {
|
|
|
+ QueryWrapper<Object> query = Wrappers.query();
|
|
|
+ query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getBeginTime());
|
|
|
+ query.le("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getEndTime());
|
|
|
+ query.groupBy("cc.buy_corporation_id");
|
|
|
+ query.orderByDesc("amount");
|
|
|
+ //查询销售国家统计信息
|
|
|
+ List<ContractDto> contractDtoList = baseMapper.customSalesStatistics(query);
|
|
|
+ return contractDtoList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 业务员销售统计(数据看板-销售分析页面开发)
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<ContractDto> salesmanSalesStatistics(ContractDto dto) {
|
|
|
+ QueryWrapper<Object> query = Wrappers.query();
|
|
|
+ query.ge("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getBeginTime());
|
|
|
+ query.le("DATE_FORMAT(cc.create_time,'%Y-%m')",dto.getEndTime());
|
|
|
+ query.groupBy("cc.create_user");
|
|
|
+ query.orderByDesc("amount");
|
|
|
+ //查询销售国家统计信息
|
|
|
+ List<ContractDto> contractDtoList = baseMapper.salesmanSalesStatistics(query);
|
|
|
+ return contractDtoList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 产品销售统计(数据看板-销售分析页面开发)
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<ContractDto> productSalesStatistics(ContractDto dto) {
|
|
|
+ QueryWrapper<Object> query = Wrappers.query();
|
|
|
+ query.ge("DATE_FORMAT(cp.create_time,'%Y-%m')",dto.getBeginTime());
|
|
|
+ query.le("DATE_FORMAT(cp.create_time,'%Y-%m')",dto.getEndTime());
|
|
|
+ query.groupBy("cp.product_id");
|
|
|
+ query.orderByDesc("amount");
|
|
|
+ //查询销售国家统计信息
|
|
|
+ List<ContractDto> contractDtoList = baseMapper.productSalesStatistics(query);
|
|
|
+ return contractDtoList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 赋值外销合同信息
|
|
|
*
|
|
|
* @param contractPdfInfoVo param
|
|
@@ -483,4 +585,10 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
contractPdfInfoVo.setBeneficiaryAddress(accountManagement.getBeneficiaryAddress());
|
|
|
}
|
|
|
|
|
|
+ //添加时间的查询条件
|
|
|
+ private void selectTime(QueryWrapper<Contract> query,ContractDto dto){
|
|
|
+ query.ge("DATE_FORMAT(create_time,'%Y-%m')",dto.getBeginTime());
|
|
|
+ query.le("DATE_FORMAT(create_time,'%Y-%m')",dto.getEndTime());
|
|
|
+ }
|
|
|
+
|
|
|
}
|