diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java index 8474d02..a8ef0f7 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/HomeController.java @@ -73,16 +73,25 @@ public class HomeController extends BaseController { return R.ok(homeService.getUserContractAmountsByDeptId(type,deptId)); } /** - * 首页大盘数据:各渠道成交 + * 首页大盘数据:各渠道成交(公司总数居) * @param type 1本月 2上月 3本季度 4本年 5所有 * @return */ @SaCheckPermission("business:salary:list") @GetMapping("/byChannel") public R byChannel(@RequestParam() Integer type) { - return R.ok(homeService.byChannel(type)); + return R.ok(homeService.byChannel(type,1)); + } + /** + * 首页大盘数据:销售个人数据 + * @param type 1本月 2上月 3本季度 4本年 5所有 + * @return + */ + @SaCheckPermission("business:salary:list") + @GetMapping("/channelByUser") + public R channelByUser(@RequestParam() Integer type) { + return R.ok(homeService.byChannel(type,2)); } - /** * 首页大盘数据:任务完成情况 * @param type 1本月 2上月 3本季度 4本年 5所有 @@ -102,4 +111,14 @@ public class HomeController extends BaseController { public R> getTaskTime(@RequestParam() Integer type) { return R.ok(homeService.getTaskTime(type)); } + + /** + * 首页大盘数据:销售数据统计 + * @param type 1本月 2上月 3本季度 4本年 5所有 + * @return + */ + @GetMapping("/salasData") + public R> salasData(@RequestParam() Integer type) { + return R.ok(homeService.salasData(type)); + } } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java index c4c26b2..1ed9f6d 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java @@ -48,8 +48,8 @@ public class PsCustomController extends BaseController { @SaCheckPermission("business:customInfo:list") @GetMapping("/listByLoginUser") - public R>> listByLoginUser() { - return R.ok(psCustomInfoService.listByLoginUser()); + public R>> listByLoginUser(String name) { + return R.ok(psCustomInfoService.listByLoginUser(name)); } /** * 查询客户信息列表 @@ -211,7 +211,7 @@ public class PsCustomController extends BaseController { */ @SaCheckPermission("business:customInfo:list") @RepeatSubmit - @Log(title = "主动认领") + @Log(title = "指派") @GetMapping("/assign") public R assign(@NotNull Long customerId,@NotNull Long userId) { psCustomInfoService.assign(customerId,userId); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java index 6489ac8..956f301 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCustomInfo.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.util.Date; /** * 客户基本信息对象 ps_custom_info @@ -88,6 +89,9 @@ public class PsCustomInfo extends TenantEntity { */ @TableLogic private Integer delFlag; - + /** + * 接受时间 + */ + private Date acceptDate; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java index 2e3f719..15f0f7d 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsContractInfoMapper.java @@ -50,4 +50,10 @@ public interface PsContractInfoMapper extends BaseMapperPlus byChannel(@Param(Constants.WRAPPER) Wrapper queryWrapper); + //首页查询各个渠道成交的合同 + @DataPermission({ + @DataColumn(key = "deptName", value = "info.create_dept"), + @DataColumn(key = "userName", value = "info.custom_manager") + }) + List byChannelUser(@Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java index e6faed7..4e5e194 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/HomeService.java @@ -20,7 +20,7 @@ public interface HomeService { * @param type * @return */ - ChannelAmountVo byChannel(Integer type); + ChannelAmountVo byChannel(Integer type,Integer dateType); /** * 首页大盘数据:任务完成率 @@ -34,4 +34,10 @@ public interface HomeService { * @return */ Map getTaskTime(Integer type); + /** + * 首页大盘数据:销售数据统计 + * @param type + * @return + */ + Map salasData(Integer type); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java index d7fd914..f274f26 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCustomInfoService.java @@ -31,7 +31,7 @@ public interface IPsCustomInfoService { * 查询登陆人下所有的客户名称和id * @return 客户id和姓名 */ - List> listByLoginUser(); + List> listByLoginUser(String name); /** * 分页查询客户基本信息列表 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java index 523c644..c559dc6 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java @@ -29,10 +29,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -61,6 +58,7 @@ public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl { PsCustomInfo info = customInfoMapper.selectById(Long.valueOf(psApproverRecord.getBusinessId())); info.setCustomStatus(CustomerStatusEnum.INIT.getCode()); info.setCustomManager(Long.valueOf(psApproverRecord.getUpdateData())); + info.setAcceptDate(new Date()); customInfoMapper.updateById(info); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java index bf5402a..655c93b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/HomeServiceImpl.java @@ -20,6 +20,7 @@ import com.pusong.business.mapper.PsTaskAppointMapper; import com.pusong.business.mapper.PsTaskMainMapper; import com.pusong.business.service.HomeService; import com.pusong.common.core.constant.CacheNames; +import com.pusong.common.core.utils.DateUtils; import com.pusong.system.domain.bo.SysDictDataBo; import com.pusong.system.domain.vo.SysDictDataVo; import com.pusong.system.service.ISysDictDataService; @@ -33,6 +34,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.stream.Collectors; @@ -297,11 +299,12 @@ public class HomeServiceImpl implements HomeService { /** * 首页大盘数据:各渠道成交 * @param type + * @param dateType 1查全部数据 2查个人权限的数据 * @return */ - @Cacheable(cacheNames = CacheNames.HOME_C, key = "#type") - public ChannelAmountVo byChannel(Integer type){ - Map mapParam = this.getDate(type); + @Cacheable(cacheNames = CacheNames.HOME_C, key = "#type+'_'+#dateType") + public ChannelAmountVo byChannel(Integer type,Integer dateType){ + Map mapParam = dateType == 1?this.getDate(type):this.getDateByUser(type); LocalDate startDate = (LocalDate)mapParam.get("startDate"); LocalDate endDate = (LocalDate)mapParam.get("endDate"); String date = (String)mapParam.get("date"); @@ -309,10 +312,17 @@ public class HomeServiceImpl implements HomeService { ChannelAmountVo res = new ChannelAmountVo(); res.setDateStr(date); log.info("查询日期:{}到{}",startDate,endDate); - List list = psContractInfoMapper.byChannel(new QueryWrapper() + QueryWrapper wq = new QueryWrapper() .ne("info.is_due", CommonStatusEnum.SUCCESS.getCode()).ne("info.contract_status", ContractStatusEnum.INIT.getCode()) - .eq("pay.pay_status",PayStatusEnum.SUCCESS.getCode()) - .ge(startDate != null,"info.apply_date",startDate).le(endDate != null,"info.apply_date",endDate)); + .eq("pay.pay_status", PayStatusEnum.SUCCESS.getCode()) + .ge(startDate != null, "info.apply_date", startDate).le(endDate != null, "info.apply_date", endDate); + List list; + if(dateType == 1){//所有的数据权限 + list = psContractInfoMapper.byChannel(wq); + }else{//用户个人的数据权限 + list = psContractInfoMapper.byChannelUser(wq); + } + //查询各个渠道的字典表 SysDictDataBo dictData = new SysDictDataBo(); dictData.setInDictType(List.of("custom_source")); @@ -411,6 +421,8 @@ public class HomeServiceImpl implements HomeService { map.put("inAvg",0);//内勤 map.put("outAvg",0);//外勤 map.put("secAvg",0);//特勤 + map.put("dateStr",date);// + map.put("currentDate", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm",new Date()));//当前时间 for(Map appointMap : appointList){ if(StringUtils.equals("1",appointMap.get("appoint_type").toString())){ appointMap.put("inAvg",appointMap.get("avg")); @@ -422,4 +434,66 @@ public class HomeServiceImpl implements HomeService { } return map; } + /** + * 首页大盘数据:销售数据统计 + * @param type + * @return + */ + public Map salasData(Integer type){ + Map mapParam = this.getDateByUser(type); + LocalDate startDate = (LocalDate)mapParam.get("startDate"); + LocalDate endDate = (LocalDate)mapParam.get("endDate"); + String date = (String)mapParam.get("date"); + + + + + //返回map + Map map = new HashMap<>(); + map.put("dateStr",date);// + map.put("currentDate", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm",new Date()));//当前时间 + return null; + } + + public static Map getDateByUser(Integer type){ + LocalDate startDate = null; + LocalDate endDate = null; + String date = ""; + LocalDate now = LocalDate.now(); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + switch (type){ + case 1://今日 + startDate = now; + date =startDate.format(df); + break; + case 2: //昨日 + startDate = now.plusDays(-1); + endDate = now; + date =startDate.format(df); + break; + case 3: //本周 + startDate = now.with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY)); + date =startDate.format(df) + " 至今"; + break; + case 4: //上周 + endDate = now.with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY)); + startDate = endDate.plusDays(-7); + date =startDate.format(df) +" 至 "+ endDate.format(df); + break; + case 5: //本月 + startDate = now.withDayOfMonth(1); + date =startDate.format(DateTimeFormatter.ofPattern("yyyy-MM")); + break; + case 6: //上月 + startDate = now.minusMonths(1).withDayOfMonth(1); + endDate = now.withDayOfMonth(1); + date =startDate.format(DateTimeFormatter.ofPattern("yyyy-MM")); + break; + } + Map map = new HashMap<>(); + map.put("startDate",startDate); + map.put("endDate",endDate); + map.put("date",date); + return map; + } } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java index 0e1810b..803fc67 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java @@ -74,15 +74,18 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { * @return 客户id和姓名 */ @Override - public List> listByLoginUser() { + public List> listByLoginUser(String name) { + //查询客户基本信息 - List list = baseMapper.selectList(new QueryWrapper().select("id", "custom_name") - .lambda().eq(PsCustomInfo::getDelFlag, 0).isNotNull(PsCustomInfo::getCustomName).ne(PsCustomInfo::getCustomName,"").ne(PsCustomInfo::getCustomName,"无")); + List list = baseMapper.selectList(new QueryWrapper().select("id", "custom_name","custom_mobile") + .lambda().eq(PsCustomInfo::getDelFlag, 0).isNotNull(PsCustomInfo::getCustomName).ne(PsCustomInfo::getCustomName,"").ne(PsCustomInfo::getCustomName,"无") + .and(StringUtils.isNotBlank(name),wq->wq.like(PsCustomInfo::getCustomName,name).or().like(PsCustomInfo::getCustomMobile,name))); List> listmap = new ArrayList<>(); list.forEach(item->{ Map map = new HashMap<>(); map.put("id",item.getId()); map.put("customName",item.getCustomName()); + map.put("custom_mobile",item.getCustomMobile()); listmap.add(map); }); @@ -246,6 +249,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { add.setCustomManager(LoginHelper.getUserId()); add.setBlack(CommonStatusEnum.N.getCode()); add.setCustomStatus(CustomerStatusEnum.INIT.getCode()); + add.setAcceptDate(new Date()); boolean flag = baseMapper.insert(add) > 0; if(CollectionUtils.isNotEmpty(bo.getPriceBos())){ bo.getPriceBos().forEach(item->item.setCustomId(add.getId())); @@ -495,6 +499,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { PsCustomInfo psCustomInfo = baseMapper.selectById(customerId); psCustomInfo.setCustomStatus(CustomerStatusEnum.INIT.getCode()); psCustomInfo.setCustomManager(userId); + psCustomInfo.setAcceptDate(new Date()); baseMapper.updateById(psCustomInfo); } diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml index e3f9ad0..04d2a28 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml @@ -112,7 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + ${ew.getCustomSqlSegment} +